:root {
  --ink: #1e1929;
  --ink-soft: #40384d;
  --muted: #6f687b;
  --paper: #f7f6fa;
  --card: #ffffff;
  --card-subtle: #fbfaff;
  --field: #ffffff;
  --field-border: #cfc7da;
  --line: #e5dfed;
  --brand: #5827d8;
  --brand-dark: #3d159f;
  --brand-soft: #eee8ff;
  --on-brand: #ffffff;
  --pink: #f24f9d;
  --on-pink: #ffffff;
  --pink-soft: #ffe2f0;
  --pink-ink: #a21359;
  --green: #167c52;
  --green-soft: #e7f8f0;
  --red: #bb2d3b;
  --red-soft: #ffeaed;
  --amber: #8a5a00;
  --amber-soft: #fff2cf;
  --neutral-soft: #f0edf4;
  --neutral-dot: #d7d1df;
  --surface-hover: #f8f5fd;
  --page-glow: rgba(88, 39, 216, .07);
  --topbar: rgba(247, 246, 250, .86);
  --focus: rgba(88, 39, 216, .34);
  --shadow: 0 14px 38px rgba(44, 27, 76, .075);
  --shadow-raised: 0 20px 48px rgba(44, 27, 76, .12);
  --sidebar-start: #211044;
  --sidebar-mid: #3c198d;
  --sidebar-end: #6125d6;
  --sidebar-text: rgba(255,255,255,.76);
  --sidebar-muted: rgba(255,255,255,.68);
  --sidebar-hover: rgba(255,255,255,.12);
  --sidebar-panel: rgba(0,0,0,.15);
  --avatar-ink: #3d159f;
  --avatar-bg: #efe9ff;
  --auth-glow: #efe7ff;
  --auth-start: #faf9fc;
  --auth-end: #eee8f8;
  --auth-card: rgba(255,255,255,.92);
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html[data-theme="dark"] {
  --ink: #f3eff9;
  --ink-soft: #d7cfdf;
  --muted: #aaa2b7;
  --paper: #100d17;
  --card: #191521;
  --card-subtle: #211b2c;
  --field: #15111d;
  --field-border: #473d58;
  --line: #30283d;
  --brand: #a78bfa;
  --brand-dark: #c0adff;
  --brand-soft: #30234f;
  --on-brand: #1b102f;
  --pink: #ff76b7;
  --on-pink: #2b0d20;
  --pink-soft: #4a2037;
  --pink-ink: #ff9dca;
  --green: #66d9a4;
  --green-soft: #16382c;
  --red: #ff8995;
  --red-soft: #451f29;
  --amber: #f2c66d;
  --amber-soft: #403319;
  --neutral-soft: #292331;
  --neutral-dot: #5a5066;
  --surface-hover: #211b2d;
  --page-glow: rgba(117, 78, 214, .13);
  --topbar: rgba(16, 13, 23, .84);
  --focus: rgba(167, 139, 250, .46);
  --shadow: 0 16px 42px rgba(0,0,0,.22);
  --shadow-raised: 0 24px 58px rgba(0,0,0,.34);
  --sidebar-start: #160c2d;
  --sidebar-mid: #28115c;
  --sidebar-end: #351278;
  --sidebar-text: rgba(255,255,255,.78);
  --sidebar-muted: rgba(255,255,255,.64);
  --sidebar-hover: rgba(255,255,255,.1);
  --sidebar-panel: rgba(0,0,0,.22);
  --avatar-ink: #3d159f;
  --avatar-bg: #efe9ff;
  --auth-glow: #28184b;
  --auth-start: #100d17;
  --auth-end: #171020;
  --auth-card: rgba(25,21,33,.94);
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--paper); }
body { min-height: 100vh; margin: 0; color: var(--ink); background: radial-gradient(circle at 86% -10%, var(--page-glow), transparent 34rem), var(--paper); background-attachment: fixed; line-height: 1.5; -webkit-font-smoothing: antialiased; }
a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea, summary { outline-offset: 3px; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid var(--focus); }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: .55rem; font-size: clamp(2rem, 4vw, 2.85rem); font-weight: 820; letter-spacing: -.045em; line-height: 1.05; }
h2 { font-size: 1.15rem; letter-spacing: -.015em; }
h3 { font-size: 1rem; }
small, .muted { color: var(--muted); }
hr { border: 0; border-top: 1px solid var(--line); margin: 1.25rem 0; }

.skip-link { position: fixed; top: -4rem; left: 1rem; z-index: 100; padding: .75rem 1rem; background: var(--brand); color: var(--on-brand); border-radius: .5rem; }
.skip-link:focus { top: 1rem; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.grow { flex: 1; min-width: 0; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 264px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 1.35rem 1rem; display: flex; flex-direction: column; gap: 1.7rem; overflow-y: auto; color: white; background: linear-gradient(165deg, var(--sidebar-start), var(--sidebar-mid) 62%, var(--sidebar-end)); box-shadow: 10px 0 40px rgba(20, 10, 42, .16); z-index: 20; }
.sidebar-header { display: flex; align-items: center; justify-content: space-between; gap: .65rem; }
.brand { display: inline-flex; align-items: center; gap: .7rem; color: inherit; font-size: 1.2rem; font-weight: 800; letter-spacing: -.03em; }
.brand:hover { text-decoration: none; }
.brand-mark { display: block; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; }
.sidebar nav { display: flex; flex-direction: column; gap: .35rem; }
.nav-separator { height: 1px; margin: .55rem .55rem .3rem; background: rgba(255,255,255,.2); }
.nav-link { display: flex; align-items: center; gap: .75rem; min-height: 2.8rem; padding: .62rem .72rem; color: var(--sidebar-text); border: 1px solid transparent; border-radius: .8rem; font-size: .88rem; font-weight: 650; transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.nav-link:hover, .nav-link.active { color: white; text-decoration: none; background: var(--sidebar-hover); }
.nav-link:hover { transform: translateX(2px); }
.nav-link.active { border-color: rgba(255,255,255,.12); box-shadow: inset 3px 0 0 var(--pink); }
.nav-icon { display: inline-grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: .55rem; background: rgba(255,255,255,.08); font-size: .95rem; }
.nav-link .badge { margin-left: auto; }
.badge { display: inline-grid; min-width: 1.2rem; min-height: 1.2rem; place-items: center; padding: 0 .3rem; border-radius: 2rem; color: var(--on-pink); background: var(--pink); font-size: .68rem; font-weight: 800; }
.badge:empty { display: none; }
.sidebar-account { position: relative; margin-top: auto; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .75rem; overflow: hidden; padding: .9rem; border: 1px solid rgba(255,255,255,.14); background: linear-gradient(145deg, rgba(255,255,255,.11), var(--sidebar-panel)); border-radius: 1rem; box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.sidebar-account::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(var(--pink), #ae72ff); }
.sidebar-account-copy { min-width: 0; }
.sidebar-account-copy strong, .sidebar-account-email { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-account-copy strong { margin-top: .05rem; color: white; font-size: .82rem; }
.sidebar-account-kicker { display: block; color: var(--sidebar-muted); font-size: .58rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sidebar-account-email { margin-top: .08rem; color: var(--sidebar-muted); font-size: .63rem; }
.sidebar-role-pill { display: inline-flex; align-items: center; margin-top: .45rem; padding: .18rem .42rem; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; color: rgba(255,255,255,.88); background: rgba(0,0,0,.12); font-size: .6rem; font-weight: 750; }
.sidebar-mode-switch { margin-top: .45rem; }
.sidebar-mode-switch label { display: block; }
.sidebar-mode-switch select { width: 100%; min-height: 1.85rem; padding: .25rem 1.65rem .25rem .5rem; border-color: rgba(255,255,255,.16); border-radius: 999px; color: white; background-color: rgba(0,0,0,.18); color-scheme: dark; font-size: .64rem; font-weight: 750; }
.sidebar-mode-switch select:hover { border-color: rgba(255,255,255,.34); background-color: rgba(0,0,0,.26); }
.sidebar-mode-switch select:focus { border-color: rgba(255,255,255,.52); box-shadow: 0 0 0 3px rgba(255,255,255,.12); }
.avatar { display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; flex: 0 0 auto; border-radius: 50%; color: var(--avatar-ink); background: var(--avatar-bg); font-weight: 800; }
.sidebar-close { display: none; min-height: 2.15rem; align-items: center; gap: .35rem; padding: .35rem .55rem; border: 1px solid rgba(255,255,255,.14); border-radius: .7rem; color: white; background: rgba(255,255,255,.08); cursor: pointer; font-size: .7rem; font-weight: 750; }
.sidebar-close span[aria-hidden] { font-size: 1.2rem; font-weight: 400; line-height: .8; }
.sidebar-close:hover { background: rgba(255,255,255,.16); }
.menu-backdrop { display: none; }

.content-shell { min-width: 0; }
.topbar { min-height: 4.1rem; display: flex; align-items: center; justify-content: flex-end; gap: .8rem; padding: .7rem clamp(1rem, 4vw, 3rem); border-bottom: 1px solid var(--line); background: var(--topbar); backdrop-filter: blur(16px); position: sticky; top: 0; z-index: 10; }
.menu-button { display: none; min-height: 2.35rem; align-items: center; gap: .42rem; margin-right: auto; padding: .4rem .7rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: var(--card); box-shadow: 0 4px 14px rgba(20,12,36,.05); cursor: pointer; font-size: .76rem; font-weight: 750; }
.menu-button:hover, .menu-button[aria-expanded="true"] { border-color: var(--brand); background: var(--brand-soft); }
.menu-button-icon { font-size: 1.05rem; line-height: 1; }
.session-controls { display: flex; align-items: center; gap: .5rem; }
.topbar-logout { margin: 0; }
.topbar-logout button { min-height: 2.35rem; padding: .4rem .72rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: var(--card); cursor: pointer; font-size: .76rem; font-weight: 750; box-shadow: 0 4px 14px rgba(20,12,36,.05); }
.topbar-logout button:hover { border-color: var(--red); color: var(--red); background: var(--red-soft); }
.connection-status { font-size: .78rem; color: var(--green); }
.connection-status::before { content: ""; display: inline-block; width: .5rem; height: .5rem; margin-right: .35rem; border-radius: 50%; background: currentColor; }
.connection-status.offline { color: var(--amber); }
.topbar-update { color: var(--ink); font-size: .85rem; font-weight: 700; }
.theme-toggle { display: inline-flex; min-height: 2.35rem; align-items: center; gap: .45rem; padding: .4rem .7rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: var(--card); cursor: pointer; font-size: .76rem; font-weight: 750; box-shadow: 0 4px 14px rgba(20,12,36,.05); }
.theme-toggle:hover { border-color: var(--brand); background: var(--brand-soft); }
.theme-toggle [data-theme-icon] { font-size: 1rem; line-height: 1; }
main { width: min(1460px, 100%); margin: 0 auto; padding: clamp(1.25rem, 4vw, 3rem); }

.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin: .55rem 0 2.1rem; }
.page-heading > div:first-child { max-width: 760px; }
.eyebrow { margin-bottom: .45rem; color: var(--brand); font-size: .72rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.lede { max-width: 680px; margin-bottom: 0; color: var(--muted); font-size: 1rem; line-height: 1.6; }
.heading-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .6rem; }
.back-link { display: inline-block; margin-bottom: .5rem; color: var(--muted); font-size: .85rem; }

.button { display: inline-flex; min-height: 2.55rem; align-items: center; justify-content: center; gap: .4rem; padding: .6rem 1rem; border: 1px solid var(--brand); border-radius: .72rem; color: var(--on-brand); background: var(--brand); font-weight: 760; cursor: pointer; box-shadow: 0 7px 18px var(--page-glow); transition: transform .15s ease, background .15s ease, border-color .15s ease; }
.button:hover { color: var(--on-brand); text-decoration: none; background: var(--brand-dark); transform: translateY(-1px); }
.button:active { transform: translateY(0); }
.button.secondary { color: var(--brand); background: var(--card); box-shadow: none; }
.button.secondary:hover { background: var(--brand-soft); }
.button.danger { border-color: var(--red); background: var(--red); }
.button.full { width: 100%; }
.text-button { padding: 0; border: 0; color: var(--brand); background: transparent; cursor: pointer; font-weight: 700; }

.metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; margin-bottom: 2rem; }
.metric-card, .panel, .event-card, .price-card, .score-card, .pace-card { border: 1px solid var(--line); border-radius: 1rem; background: var(--card); box-shadow: var(--shadow); }
.metric-card { position: relative; overflow: hidden; padding: 1.2rem; }
.metric-card::after { content: ""; position: absolute; inset: auto 1rem 0; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--brand), var(--pink)); opacity: .65; }
.metric-card > span, .metric-card > small, .metric-card > strong { display: block; }
.metric-card > span { color: var(--muted); font-size: .8rem; }
.metric-card > strong { margin: .3rem 0; font-size: 1.8rem; letter-spacing: -.04em; }
.section-block { margin: 1.5rem 0; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.section-heading h2, .section-heading p { margin-bottom: 0; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 1rem; }
.card-grid.one-column { grid-template-columns: 1fr; }
.event-card { padding: 1.2rem; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.event-card:hover { border-color: color-mix(in srgb, var(--brand) 38%, var(--line)); box-shadow: var(--shadow-raised); transform: translateY(-2px); }
.event-card-top, .event-meta, .card-actions, .act-title { display: flex; align-items: center; gap: .75rem; }
.event-card-top { justify-content: space-between; margin-bottom: 1rem; }
.event-card h3 { margin-bottom: .35rem; font-size: 1.15rem; }
.event-host { margin: -.2rem 0 .75rem; color: var(--muted); font-size: .75rem; }
.event-host strong { color: var(--ink-soft); }
.event-meta { flex-wrap: wrap; margin: 1.1rem 0; color: var(--muted); font-size: .78rem; }
.card-actions { justify-content: space-between; }
.competition-calendar { margin-bottom: 1.5rem; overflow: hidden; }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.calendar-toolbar h2, .calendar-toolbar p { margin-bottom: 0; }
.calendar-navigation { display: flex; align-items: center; gap: .55rem; }
.calendar-navigation .button { min-height: 2.3rem; padding: .45rem .75rem; font-size: .75rem; }
.calendar-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: .8rem; background: var(--card); }
.calendar-scroll:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.calendar-table { width: 100%; min-width: 720px; table-layout: fixed; border-collapse: collapse; }
.calendar-table th { height: 2.25rem; padding: .4rem; color: var(--muted); background: var(--card-subtle); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-align: left; text-transform: uppercase; }
.calendar-table th + th, .calendar-day + .calendar-day { border-left: 1px solid var(--line); }
.calendar-table tbody tr { border-top: 1px solid var(--line); }
.calendar-day { height: 7.5rem; padding: .45rem; vertical-align: top; background: var(--card); }
.calendar-day.outside-month { background: var(--neutral-soft); opacity: .5; }
.calendar-date { display: inline-grid; width: 1.65rem; height: 1.65rem; margin-bottom: .3rem; place-items: center; border-radius: 50%; color: var(--muted); font-size: .72rem; font-weight: 750; }
.calendar-day.today { background: linear-gradient(145deg, var(--card), var(--brand-soft)); }
.calendar-day.today .calendar-date { color: var(--on-brand); background: var(--brand); }
.calendar-events { display: flex; flex-direction: column; gap: .25rem; }
.calendar-event { display: flex; min-width: 0; flex-direction: column; padding: .3rem .38rem; overflow: hidden; border-left: 3px solid var(--muted); border-radius: .35rem; color: var(--ink); background: var(--neutral-soft); font-size: .68rem; font-weight: 700; line-height: 1.25; }
.calendar-event:hover { color: var(--ink); text-decoration: none; filter: brightness(.98); }
.calendar-event > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event-time { color: var(--muted); font-size: .6rem; font-weight: 650; }
.calendar-event.info { border-left-color: var(--brand); background: var(--brand-soft); }
.calendar-event.live { border-left-color: var(--pink); background: var(--pink-soft); }
.calendar-event.success { border-left-color: var(--green); background: var(--green-soft); }
.status { display: inline-flex; align-items: center; width: max-content; padding: .25rem .55rem; border-radius: 2rem; color: var(--muted); background: var(--neutral-soft); font-size: .7rem; font-weight: 800; }
.status.live { color: var(--pink-ink); background: var(--pink-soft); }
.status.success { color: var(--green); background: var(--green-soft); }
.status.info { color: var(--brand); background: var(--brand-soft); }
.status.warning { color: var(--amber); background: var(--amber-soft); }
.status.danger { color: var(--red); background: var(--red-soft); }

.event-flow { margin-bottom: 1rem; overflow: visible; }
.event-flow-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem; }
.event-flow-copy { max-width: 720px; }
.event-flow-copy h2 { margin-bottom: .25rem; font-size: 1.25rem; }
.event-flow-copy > p { margin-bottom: 0; }
.event-flow-status-line { display: flex; align-items: center; gap: .55rem; margin-bottom: .55rem; color: var(--muted); font-size: .72rem; }
.event-flow-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; }
.event-flow-actions form { margin: 0; }
.event-status-details { position: relative; }
.event-status-details > summary { color: var(--brand); cursor: pointer; font-size: .8rem; font-weight: 750; white-space: nowrap; }
.event-status-details > form { position: absolute; right: 0; z-index: 8; width: min(280px, calc(100vw - 3rem)); margin-top: .45rem; padding: .85rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--card); box-shadow: var(--shadow-raised); }
.event-flow-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.event-flow-steps li { display: flex; min-width: 0; align-items: center; gap: .6rem; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: .75rem; color: var(--muted); background: var(--card-subtle); }
.event-flow-steps li.current { border-color: color-mix(in srgb, var(--brand) 45%, var(--line)); color: var(--ink); background: var(--brand-soft); }
.event-flow-steps li.complete { color: var(--green); background: var(--green-soft); }
.event-flow-steps li > span:last-child, .event-flow-steps strong, .event-flow-steps small { display: block; min-width: 0; }
.event-flow-steps strong { overflow: hidden; color: inherit; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.event-flow-steps small { margin-top: .05rem; color: inherit; font-size: .65rem; }
.event-flow-step-number { display: inline-grid; width: 1.75rem; height: 1.75rem; flex: 0 0 auto; place-items: center; border-radius: 50%; color: var(--muted); background: var(--neutral-soft); font-size: .72rem; font-weight: 850; }
.event-flow-steps .current .event-flow-step-number { color: var(--on-brand); background: var(--brand); }
.event-flow-steps .complete .event-flow-step-number { color: var(--green); background: var(--card); }
.event-readiness { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: .9rem; overflow: hidden; border: 1px solid var(--line); border-radius: .75rem; background: var(--card); }
.event-readiness-item { display: flex; min-width: 0; flex-direction: column; gap: .08rem; padding: .65rem .75rem; color: var(--ink); }
.event-readiness-item + .event-readiness-item { border-left: 1px solid var(--line); }
a.event-readiness-item:hover { color: var(--brand); text-decoration: none; background: var(--surface-hover); }
.event-readiness-item.attention { background: color-mix(in srgb, var(--amber-soft) 55%, var(--card)); }
.event-readiness-item small { font-size: .64rem; }
.event-readiness-item strong { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }

.split-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 380px); gap: 1.25rem; align-items: start; }
.sticky-panel { position: sticky; top: 5.25rem; }
.panel { padding: clamp(1rem, 2.5vw, 1.4rem); }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.detail-grid > * { min-width: 0; }
.span-two { grid-column: 1 / -1; }
.resource-download-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.resource-download-card { display: flex; min-width: 0; flex-direction: column; gap: .85rem; }
.resource-download-card > * { margin-block: 0; }
.resource-download-card > .button { margin-top: auto; }
.resource-download-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; }
.resource-download-heading h2 { margin: 0; font-size: 1.2rem; }
.resource-facts li { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; font-size: .8rem; }
.resource-facts span { min-width: 0; }
.resource-facts strong { flex: 0 0 auto; text-align: right; }
.resource-path-example, .resource-path-example code { overflow-wrap: anywhere; }
.resource-path-example code { white-space: normal; }
.resource-gap-list { margin: 0; padding-left: 1.1rem; color: var(--red); font-size: .78rem; line-height: 1.45; }
.resource-gap-list li + li { margin-top: .4rem; }
.resource-more-gaps { color: var(--red); font-size: .78rem; }
.resource-more-gaps > summary { width: max-content; max-width: 100%; cursor: pointer; font-weight: 800; }
.resource-more-gaps[open] > summary { margin-bottom: .55rem; }
.resource-setup-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; font-size: .8rem; }
.resource-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem 1.4rem; padding-left: 1.25rem; }
.resource-checklist li { padding-left: .25rem; line-height: 1.5; }
.resource-music-rooms { display: grid; gap: .75rem; }
.resource-music-room { overflow: hidden; border: 1px solid var(--line); border-radius: .85rem; background: var(--surface); }
.resource-music-room > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; cursor: pointer; background: var(--card-subtle); }
.resource-music-room > summary span { color: var(--muted); font-size: .76rem; }
.resource-room-summary-meta { display: inline-flex; align-items: center; gap: .8rem; }
.resource-disclosure-label::after { content: "Show"; color: var(--brand); font-weight: 800; }
.resource-music-room[open] .resource-disclosure-label::after { content: "Hide"; }
.resource-music-section { padding: 1rem; border-top: 1px solid var(--line); }
.resource-music-section h3 { margin-bottom: .55rem; font-size: 1rem; }
.resource-music-list { display: grid; }
.resource-music-row { display: grid; min-width: 0; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .8rem; padding: .75rem 0; border-top: 1px solid var(--line); }
.resource-music-row:first-child { border-top: 0; }
.resource-music-row strong, .resource-music-row small { display: block; }
.resource-music-row small { color: var(--muted); font-size: .75rem; line-height: 1.4; }
.resource-filename { overflow-wrap: anywhere; }
.resource-music-action { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .55rem; }
.resource-music-action .button { min-height: 2.2rem; padding: .4rem .7rem; font-size: .75rem; }
.table-list { display: flex; flex-direction: column; }
.table-row { display: flex; align-items: center; gap: .85rem; min-height: 3.6rem; padding: .65rem .25rem; border-bottom: 1px solid var(--line); color: var(--ink); }
.table-row:hover { text-decoration: none; background: var(--surface-hover); }
.table-row strong, .table-row small { display: block; }
.access-list, .assignment-list { display: grid; gap: .65rem; }
.access-row, .assignment-row { display: flex; align-items: center; gap: .85rem; padding: .9rem; border: 1px solid var(--line); border-radius: .85rem; background: var(--surface); }
.access-row strong, .access-row small, .access-context { display: block; }
.access-row small, .access-context { color: var(--muted); font-size: .76rem; }
.access-context { margin-top: .18rem; }
.access-badges { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; }
.avatar.pending { color: var(--muted); background: var(--surface-hover); }
.assignment-row { align-items: end; }
.assignment-row h2 { margin: .15rem 0; font-size: 1rem; }
.assignment-control { display: flex; align-items: end; gap: .55rem; min-width: min(27rem, 48vw); }
.assignment-control label { flex: 1; }
.panel-assignment-control { display: grid; width: min(34rem, 52vw); min-width: min(34rem, 52vw); grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.panel-assignment-control > .button, .panel-assignment-control > .panel-member-picker { grid-column: 1 / -1; }
.panel-member-picker, .assignment-mode-picker { min-width: 0; margin: 0; padding: .7rem; border: 1px solid var(--line); border-radius: .75rem; }
.panel-member-picker legend, .assignment-mode-picker legend { padding: 0 .3rem; color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.panel-member-picker .check-row, .assignment-mode-picker .check-row { align-items: flex-start; padding: .35rem; }
.assignment-mode-picker .check-row { display: grid; grid-template-columns: 1rem minmax(0, 1fr); gap: .55rem; line-height: 1.4; }
.assignment-mode-picker .check-row span { min-width: 0; }
.panel-member-picker .check-row span, .panel-member-picker .check-row small { display: block; min-width: 0; }
.panel-member-picker .check-row small { color: var(--muted); font-weight: 500; overflow-wrap: anywhere; }
.panel-member-picker.is-disabled { opacity: .58; background: var(--card-subtle); }
.room-panel-assignment { scroll-margin-top: 5.25rem; }
.performer-headshot { object-fit: cover; }
.performer-row-meta { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .7rem; }
.performer-headshot-details > summary { white-space: nowrap; }
.performer-headshot-details[open] { z-index: 12; }
.performer-headshot-menu { position: absolute; right: 0; z-index: 10; width: min(390px, 86vw); padding: .85rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--card); box-shadow: var(--shadow-raised); }
.performer-headshot-menu .form-stack { position: static; width: auto; margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.performer-award-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: .85rem; margin-top: 1rem; }
.performer-award-card { display: flex; min-width: 0; flex-direction: column; gap: .75rem; padding: 1rem; border: 1px solid color-mix(in srgb, var(--amber) 38%, var(--line)); border-radius: .9rem; background: linear-gradient(145deg, var(--card), color-mix(in srgb, var(--amber-soft) 42%, var(--card))); }
.performer-award-card header { display: flex; align-items: flex-start; gap: .75rem; }
.performer-award-card h3, .performer-award-card p { margin-bottom: .18rem; }
.award-emblem { display: inline-grid; flex: 0 0 2.5rem; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: 50%; color: var(--amber); background: var(--amber-soft); font-size: 1.2rem; }
.performer-award-description { white-space: pre-wrap; overflow-wrap: anywhere; }
.performer-award-card footer { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem .75rem; margin-top: auto; padding-top: .65rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .68rem; }
.award-issue-panel .performer-picker { max-width: 46rem; }
.consent-note, .privacy-note { margin: 0; padding: .55rem .65rem; border-radius: .6rem; font-size: .72rem; line-height: 1.45; }
.consent-note { color: var(--amber); background: var(--amber-soft); }
.privacy-note { color: var(--muted); background: var(--card-subtle); }
.section-number { display: inline-grid; width: 2.8rem; min-height: 2.2rem; place-items: center; border-radius: .6rem; color: var(--brand); background: var(--brand-soft); }
.clean-list, .compact-list { margin: 0; padding: 0; list-style: none; }
.clean-list li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--line); }

.form-stack { display: flex; flex-direction: column; gap: .85rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
label { display: flex; flex-direction: column; gap: .35rem; color: var(--ink-soft); font-size: .8rem; font-weight: 700; }
label small { font-weight: 450; line-height: 1.4; }
input, select, textarea { width: 100%; min-height: 2.55rem; padding: .6rem .72rem; border: 1px solid var(--field-border); border-radius: .65rem; color: var(--ink); background: var(--field); transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: .78; }
input:focus, select:focus, textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
textarea { resize: vertical; }
input[type="checkbox"] { width: 1rem; min-height: auto; accent-color: var(--brand); }
input[type="radio"] { flex: 0 0 1rem; width: 1rem; height: 1rem; min-height: 1rem; margin: .08rem 0 0; padding: 0; accent-color: var(--brand); }
.checkbox-row { flex-direction: row; align-items: center; gap: .55rem; }
.file-drop { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .35rem .7rem; align-items: center; width: 100%; padding: .8rem; overflow: hidden; border: 1.5px dashed var(--field-border); border-radius: .8rem; color: var(--ink-soft); background: var(--card-subtle); cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .15s ease; }
.file-drop:hover, .file-drop:focus-within, .file-drop.is-dragover { border-color: var(--brand); background: var(--brand-soft); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 14%, transparent); }
.file-drop.is-dragover { transform: translateY(-1px); }
.file-drop.has-file { border-style: solid; border-color: color-mix(in srgb, var(--green) 58%, var(--field-border)); background: var(--green-soft); }
.file-drop.is-invalid { border-style: solid; border-color: var(--red); background: var(--red-soft); }
.file-drop.is-uploading { border-style: solid; border-color: var(--brand); background: var(--brand-soft); }
.file-drop-input { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0; opacity: 0; border: 0; cursor: pointer; }
.file-drop-input:focus { border: 0; box-shadow: none; }
.file-drop-icon { display: inline-grid; width: 2.35rem; height: 2.35rem; grid-row: 1 / span 2; place-items: center; border-radius: .7rem; color: var(--brand); background: var(--brand-soft); font-size: 1.15rem; font-weight: 900; }
.file-drop.has-file .file-drop-icon { color: var(--green); background: color-mix(in srgb, var(--green-soft) 72%, var(--card)); }
.file-drop.is-invalid .file-drop-icon { color: var(--red); background: color-mix(in srgb, var(--red-soft) 72%, var(--card)); }
.file-drop-copy { display: flex; min-width: 0; flex-direction: column; gap: .1rem; line-height: 1.35; }
.file-drop-copy strong { color: var(--ink); font-size: .8rem; }
.file-drop-copy > span { color: var(--muted); font-size: .72rem; font-weight: 520; }
.file-drop-copy small { color: var(--muted); font-size: .66rem; }
.file-drop-action { color: var(--brand); font-weight: 800; text-decoration: underline; text-underline-offset: .12rem; }
.file-drop-selection { min-width: 0; overflow: hidden; color: var(--muted); font-size: .68rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.file-drop.has-file .file-drop-selection { color: var(--green); }
.file-drop.is-invalid .file-drop-selection { color: var(--red); }
.file-drop-compact { width: min(18rem, 100%); padding: .55rem .65rem; }
.file-drop-compact .file-drop-icon { width: 1.9rem; height: 1.9rem; border-radius: .55rem; font-size: .95rem; }
.file-drop-compact .file-drop-copy small { display: none; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.template-picker-field { display: flex; flex-direction: column; gap: .35rem; }
.template-picker-field > small { color: var(--muted); font-size: .72rem; line-height: 1.4; }
.search-select { position: relative; }
.search-select.enhanced > select { position: absolute !important; width: 1px; height: 1px; min-height: 0; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.search-select-control { position: relative; }
.search-select-input { padding-right: 2.75rem; }
.search-select-toggle { position: absolute; top: 50%; right: .35rem; width: 2rem; height: 2rem; padding: 0; transform: translateY(-50%); border: 0; border-radius: .5rem; color: var(--muted); background: transparent; cursor: pointer; font-size: 1rem; }
.search-select-toggle:hover { color: var(--brand); background: var(--brand-soft); }
.search-select-listbox { position: absolute; top: calc(100% + .35rem); right: 0; left: 0; z-index: 40; max-height: 17rem; padding: .35rem; overflow-y: auto; border: 1px solid var(--field-border); border-radius: .75rem; background: var(--card); box-shadow: var(--shadow-raised); }
.search-select-option { display: flex; width: 100%; padding: .65rem .7rem; flex-direction: column; gap: .15rem; align-items: flex-start; border: 0; border-radius: .55rem; color: var(--ink); background: transparent; cursor: pointer; text-align: left; }
.search-select-option:hover, .search-select-option.active { background: var(--brand-soft); }
.search-select-option[aria-selected="true"] { color: var(--brand-dark); }
.search-select-option strong { font-size: .82rem; }
.search-select-option small { color: var(--muted); font-size: .7rem; font-weight: 500; }
.search-select-empty { margin: 0; padding: .75rem; color: var(--muted); font-size: .78rem; text-align: center; }
.section-scorecard-manager { overflow: visible; }
.section-manager-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem; margin-bottom: 1.1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.section-manager-heading h2, .section-manager-heading p { margin-bottom: .25rem; }
.section-manager-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.event-default-scorecard { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 430px); gap: 1.25rem; align-items: start; margin-bottom: 1.2rem; padding: 1.2rem; border: 1px solid color-mix(in srgb, var(--brand) 35%, var(--line)); border-radius: .95rem; background: linear-gradient(145deg, var(--card), var(--brand-soft)); }
.event-default-scorecard.missing { border-style: dashed; }
.event-default-controls { padding: .9rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--card); }
.scorecard-assignment-label { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; margin-bottom: .55rem; color: var(--muted); font-size: .72rem; }
.assignment-badge { display: inline-flex; align-items: center; min-height: 1.65rem; padding: .25rem .55rem; border-radius: 999px; font-size: .67rem; font-weight: 850; letter-spacing: .035em; text-transform: uppercase; }
.assignment-badge.default { color: var(--brand-dark); background: var(--brand-soft); }
.assignment-badge.override { color: var(--pink-ink); background: var(--pink-soft); }
.assignment-badge.inherited { color: var(--green); background: var(--green-soft); }
.scorecard-template-summary h3 { margin-bottom: .22rem; font-size: 1.08rem; }
.scorecard-template-summary p { margin-bottom: .35rem; color: var(--ink-soft); }
.scorecard-template-summary small { overflow-wrap: anywhere; }
.scorecard-template-summary.missing h3 { color: var(--amber); }
.template-manager-links { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .7rem; margin-top: .8rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.inline-details.template-create-details form { width: min(420px, calc(100vw - 3rem)); }
.day-planner { margin: 1.3rem 0; padding: 1rem; border: 1px solid var(--line); border-radius: .95rem; background: var(--card-subtle); scroll-margin-top: 5.5rem; }
.day-planner-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; }
.day-planner-heading h3, .day-planner-heading p { margin-bottom: .2rem; }
.room-plan-shell { min-width: 0; }
.room-plan-navigator { display: none; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: .75rem; margin-bottom: .8rem; padding: .7rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--card); }
.room-plan-shell.enhanced .room-plan-navigator { display: flex; }
.room-plan-picker { width: min(20rem, 100%); }
.room-plan-picker select { min-height: 2.25rem; padding-block: .35rem; }
.room-plan-navigator-actions { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .45rem; }
.room-plan-progress { min-width: 6.5rem; color: var(--muted); font-size: .72rem; font-weight: 750; text-align: center; }
.room-plan-grid { display: grid; max-width: 100%; grid-auto-flow: column; grid-auto-columns: clamp(22rem, 31vw, 30rem); grid-template-rows: minmax(min-content, max-content); align-items: start; gap: 1rem; overflow-x: auto; overscroll-behavior-inline: contain; padding: .15rem .15rem .8rem; scroll-padding-inline: .15rem; scroll-snap-type: inline proximity; scrollbar-color: var(--field-border) transparent; }
.room-plan-lane { min-width: 0; padding: .8rem; border: 1px solid var(--line); border-radius: .85rem; background: var(--card); scroll-margin-top: 9rem; scroll-snap-align: start; }
.room-plan-lane.unassigned { border-color: var(--amber); background: var(--amber-soft); }
.room-plan-heading { display: grid; gap: .55rem; margin-bottom: .7rem; }
.room-plan-heading h4, .room-plan-heading p, .room-plan-staffing { margin: 0; }
.room-plan-heading-top { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.room-plan-count { flex: 0 0 auto; padding: .22rem .5rem; border-radius: 999px; color: var(--muted); background: var(--neutral-soft); font-size: .66rem; font-weight: 800; }
.room-plan-staffing { display: grid; gap: .32rem; padding: .55rem .6rem; border-radius: .65rem; background: var(--card-subtle); }
.room-plan-staffing > div { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); align-items: start; gap: .5rem; }
.room-plan-staffing dt { color: var(--muted); font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .035em; }
.room-plan-staffing dd { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; gap: .35rem; margin: 0; color: var(--ink-soft); font-size: .7rem; overflow-wrap: anywhere; }
.room-plan-staffing .assignment-badge { min-height: 1.35rem; padding: .15rem .4rem; font-size: .58rem; }
.room-plan-panel-link { width: max-content; font-size: .72rem; }
.room-plan-list { min-height: 4.5rem; }
.room-plan-empty { margin: .25rem 0 .65rem; padding: .75rem; border: 1px dashed var(--field-border); border-radius: .7rem; text-align: center; }
.room-move-control { min-width: 9rem; font-size: .68rem; }
.room-move-control select { min-height: 2.2rem; padding: .35rem .5rem; font-size: .72rem; }
.day-plan-list { display: flex; flex-direction: column; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.day-plan-card { display: flex; width: 100%; min-height: 4.5rem; align-items: center; gap: .65rem; padding: .7rem; border: 1px solid var(--line); border-left: 4px solid var(--brand); border-radius: .75rem; background: var(--card); box-shadow: 0 5px 16px rgba(35,22,62,.045); transition: border-color .15s ease, box-shadow .15s ease, opacity .15s ease, transform .15s ease; }
.day-plan-card.break { width: 100%; border-left-color: var(--amber); background: linear-gradient(90deg, var(--card), var(--amber-soft)); }
.day-plan-card.dragging { opacity: .48; border-color: var(--brand); box-shadow: var(--shadow-raised); transform: scale(.995); }
.day-plan-drag { min-width: 2.5rem; padding: .3rem; font-size: .68rem; font-weight: 750; }
.day-plan-kind { display: inline-flex; min-width: 3.7rem; min-height: 1.65rem; align-items: center; justify-content: center; padding: .25rem .48rem; border-radius: 999px; color: var(--brand-dark); background: var(--brand-soft); font-size: .64rem; font-weight: 850; letter-spacing: .035em; text-transform: uppercase; }
.day-plan-kind.break { color: var(--amber); background: var(--amber-soft); }
.day-plan-copy { min-width: 8rem; }
.day-plan-copy h4 { margin: 0 0 .12rem; font-size: .88rem; }
.day-plan-copy p { margin: 0; color: var(--muted); font-size: .7rem; }
.day-plan-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .35rem; }
.room-day-planner .day-plan-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "summary actions"; align-items: center; }
.room-day-planner .day-plan-card.editable { grid-template-columns: auto 3.6rem minmax(0, 1fr) auto; grid-template-areas: "drag position summary summary" "room room room actions"; }
.room-day-planner .day-plan-summary { display: flex; min-width: 0; grid-area: summary; align-items: center; gap: .6rem; }
.room-day-planner .day-plan-copy { min-width: 0; }
.room-day-planner .day-plan-drag { grid-area: drag; }
.room-day-planner .position-input { grid-area: position; }
.room-day-planner .room-move-control { min-width: 0; grid-area: room; }
.room-day-planner .day-plan-actions { grid-area: actions; }
.room-day-planner .day-plan-actions:empty { display: none; }
.room-setup-list { display: grid; gap: .65rem; margin-bottom: 1rem; }
.room-setup-card { display: flex; align-items: center; gap: .75rem; padding: .75rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--card); }
.room-setup-card strong, .room-setup-card small { display: block; }
.room-name-form { display: flex; align-items: end; gap: .45rem; }
.room-name-form input { min-width: 10rem; }
.room-name-form .button { flex: 0 0 auto; min-height: 2.25rem; padding: .42rem .72rem; font-size: .75rem; white-space: nowrap; }
.room-add-form { padding-top: .85rem; border-top: 1px solid var(--line); }
.event-build-panel { scroll-margin-top: 5.5rem; }
.event-build-panel > .eyebrow { margin-bottom: .25rem; }
.event-build-panel > h2 { margin-bottom: .25rem; }
.event-build-panel > .muted { margin-bottom: .5rem; }
.section-create-options { border: 1px solid var(--line); border-radius: .8rem; background: var(--card-subtle); }
.section-create-options > summary { padding: .7rem .8rem; color: var(--brand); cursor: pointer; font-size: .78rem; font-weight: 750; }
.section-create-options[open] > summary { border-bottom: 1px solid var(--line); }
.section-create-options-content { display: grid; gap: .9rem; padding: .9rem; }
.section-create-options-content fieldset { margin: 0; }
.break-remove-details { position: relative; }
.break-remove-details > summary { padding: .3rem .2rem; color: var(--red); cursor: pointer; font-size: .7rem; font-weight: 750; }
.break-remove-details > form { position: absolute; right: 0; z-index: 8; width: min(280px, calc(100vw - 3rem)); padding: .8rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--card); box-shadow: var(--shadow-raised); }
.break-remove-details p { margin-bottom: .65rem; font-size: .75rem; }
.section-manager-subheading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-top: 1.4rem; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.section-manager-subheading h3, .section-manager-subheading p { margin-bottom: .2rem; }
.section-manager-search { margin-top: .4rem; }
.section-manager-list { display: flex; flex-direction: column; gap: .55rem; }
.section-manager-row { scroll-margin-top: 5.5rem; overflow: visible; border: 1px solid var(--line); border-left: 3px solid var(--green); border-radius: .8rem; background: var(--card); }
.section-manager-row.override { border-left-color: var(--pink); }
.section-manager-row-main { display: flex; align-items: center; gap: .75rem; padding: .75rem .85rem; }
.section-manager-row-copy { min-width: 8rem; }
.section-manager-row-title { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.section-manager-row-title h3 { min-width: 0; margin: 0 .2rem 0 0; font-size: .92rem; }
.section-manager-row-facts { margin: .18rem 0 0; color: var(--muted); font-size: .7rem; }
.section-manager-row-actions { display: flex; flex: 0 0 auto; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; }
.section-manager-row-actions > .text-button { font-size: .78rem; }
.section-manager-row-setup { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(8rem, .7fr) minmax(9rem, 1fr); border-top: 1px solid var(--line); background: var(--card-subtle); }
.section-setup-fact { display: flex; min-width: 0; flex-direction: column; gap: .16rem; padding: .55rem .85rem; }
.section-setup-fact + .section-setup-fact { border-left: 1px solid var(--line); }
.section-setup-fact small { font-size: .62rem; }
.section-setup-fact > strong { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.section-setup-fact.attention { background: color-mix(in srgb, var(--amber-soft) 55%, transparent); }
.section-setup-value { display: flex; min-width: 0; align-items: center; gap: .45rem; }
.section-setup-value strong { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.section-setup-value .assignment-badge { min-height: 1.3rem; flex: 0 0 auto; padding: .15rem .4rem; font-size: .58rem; }
.section-scorecard-details { position: relative; }
.section-scorecard-details > summary { color: var(--brand); cursor: pointer; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.section-scorecard-menu { position: absolute; right: 0; z-index: 8; width: min(430px, calc(100vw - 3rem)); margin-top: .45rem; padding: .9rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--card); box-shadow: var(--shadow-raised); }
.section-template-form { display: flex; flex-direction: column; gap: .65rem; }
.section-scorecard-reset { margin: .7rem 0; padding-top: .65rem; border-top: 1px solid var(--line); text-align: right; }
.section-scorecard-menu > a { display: inline-block; font-size: .75rem; }
#event-default-scorecard, #new-template, .template-library-card { scroll-margin-top: 5.5rem; }
.template-library-layout { grid-template-columns: minmax(0, 1fr) minmax(300px, 390px); }
.template-library-list { display: flex; flex-direction: column; gap: 1rem; }
.template-library-card { padding: 1.1rem; }
.template-library-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.template-library-card-header h2, .template-library-card-header p { margin-bottom: .2rem; }
.template-usage-counts { display: flex; flex-direction: column; gap: .28rem; align-items: flex-end; color: var(--muted); font-size: .7rem; white-space: nowrap; }
.template-usage-counts strong { color: var(--ink); }
.scorecard-criteria { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .55rem; margin: 1rem 0; padding: 0; list-style: none; }
.scorecard-criteria li { padding: .65rem .7rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--card-subtle); }
.scorecard-criteria strong, .scorecard-criteria span { display: block; }
.scorecard-criteria strong { font-size: .8rem; }
.scorecard-criteria span { margin-top: .12rem; color: var(--muted); font-size: .68rem; }
.criteria-builder { min-width: 0; margin: 0; padding: .85rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--card-subtle); }
.criteria-builder legend { padding: 0 .25rem; color: var(--ink-soft); font-size: .8rem; font-weight: 800; }
.criteria-builder-help { margin: 0 0 .65rem; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.criteria-builder-list { display: flex; flex-direction: column; gap: .5rem; }
.criterion-builder-row { display: grid; grid-template-columns: auto minmax(120px, 1fr) auto; align-items: center; gap: .45rem; padding: .5rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--card); transition: border-color .15s ease, box-shadow .15s ease, opacity .15s ease; }
.criterion-builder-row:focus-within { border-color: var(--brand); box-shadow: 0 0 0 2px var(--brand-soft); }
.criterion-builder-row.dragging { opacity: .48; border-color: var(--brand); background: var(--brand-soft); }
.criterion-builder-row label { min-width: 0; }
.criterion-builder-row input[type="text"] { min-height: 2.25rem; padding-block: .45rem; }
.criterion-drag-handle, .criterion-action { min-height: 2rem; padding: .35rem .5rem; border: 1px solid var(--line); border-radius: .5rem; color: var(--muted); background: var(--card-subtle); cursor: pointer; font-size: .68rem; font-weight: 750; }
.criterion-drag-handle { cursor: grab; touch-action: none; }
.criterion-drag-handle:active { cursor: grabbing; }
.criterion-drag-handle:hover, .criterion-action:hover { color: var(--brand); border-color: var(--brand); background: var(--brand-soft); }
.criterion-action.danger-text:hover { color: var(--red); border-color: var(--red); background: var(--red-soft); }
.criterion-drag-handle:disabled, .criterion-action:disabled, .criterion-add:disabled { cursor: not-allowed; opacity: .42; }
.criterion-row-actions { display: flex; align-items: center; gap: .3rem; }
.criterion-add { min-height: 2.2rem; margin-top: .65rem; padding: .4rem .7rem; font-size: .72rem; }
.criteria-builder-count { display: block; margin-top: .55rem; color: var(--muted); text-align: right; font-size: .68rem; }
.criteria-builder.locked { background: var(--neutral-soft); }
.age-rule-settings, .challenge-settings { min-width: 0; margin: 0; padding: .85rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--card-subtle); }
.age-rule-settings legend, .challenge-settings legend { padding: 0 .25rem; color: var(--ink-soft); font-size: .8rem; font-weight: 800; }
.age-rule-settings > .check-row { margin-bottom: .7rem; font-weight: 750; }
.age-rule-inputs[hidden] { display: none; }
.age-rule-settings .criteria-builder-help { margin: .65rem 0 0; }
.challenge-settings > .muted { margin-bottom: .75rem; }
.template-edit-details { margin-top: .85rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.template-edit-details > summary { width: max-content; max-width: 100%; color: var(--brand); cursor: pointer; font-size: .78rem; font-weight: 750; }
.template-edit-details > form { margin-top: .9rem; padding: .9rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--card-subtle); }
.template-edit-details .notice { margin-bottom: .8rem; font-size: .75rem; }
.template-library-card-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .6rem; padding-top: .75rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; }
.template-create-panel textarea { min-height: 7rem; }
.performer-picker { display: flex; min-width: 0; flex-direction: column; gap: .35rem; }
.performer-picker > label { display: block; }
.performer-picker > small { color: var(--muted); font-size: .72rem; font-weight: 450; line-height: 1.4; }
.performer-picker.enhanced > select { position: absolute !important; width: 1px; height: 1px; min-height: 0; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.performer-picker-selected { display: flex; min-height: 2.3rem; align-items: center; flex-wrap: wrap; gap: .4rem; padding: .4rem; border: 1px dashed var(--field-border); border-radius: .65rem; background: var(--card-subtle); }
.performer-picker-no-selection { padding-inline: .3rem; color: var(--muted); font-size: .75rem; font-weight: 500; }
.performer-picker-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .28rem .35rem .28rem .6rem; border-radius: 999px; color: var(--brand-dark); background: var(--brand-soft); font-size: .74rem; font-weight: 750; }
.performer-picker-chip button { display: inline-grid; width: 1.35rem; height: 1.35rem; padding: 0; place-items: center; border: 0; border-radius: 50%; color: inherit; background: color-mix(in srgb, var(--brand) 13%, transparent); cursor: pointer; font-size: .68rem; font-weight: 900; }
.performer-picker-chip button:hover { color: var(--on-brand); background: var(--brand); }
.performer-picker-control { position: relative; }
.performer-picker-input:disabled { color: var(--muted); background: var(--neutral-soft); cursor: not-allowed; }
.performer-picker-listbox { position: absolute; top: calc(100% + .35rem); right: 0; left: 0; z-index: 45; max-height: 18rem; padding: .35rem; overflow-y: auto; border: 1px solid var(--field-border); border-radius: .75rem; background: var(--card); box-shadow: var(--shadow-raised); }
.performer-picker-option { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .8rem; padding: .65rem .7rem; border: 0; border-radius: .55rem; color: var(--ink); background: transparent; cursor: pointer; text-align: left; }
.performer-picker-option:hover, .performer-picker-option.active { background: var(--brand-soft); }
.performer-picker-option strong, .performer-picker-option small { display: block; }
.performer-picker-option strong { font-size: .82rem; }
.performer-picker-option small { margin-top: .1rem; color: var(--muted); font-size: .68rem; font-weight: 500; }
.performer-picker-add { flex: 0 0 auto; color: var(--brand); font-size: .72rem; font-weight: 800; }
.performer-picker-empty { margin: 0; padding: .75rem; color: var(--muted); font-size: .76rem; font-weight: 500; text-align: center; }
.performer-picker-disabled .performer-picker-selected { opacity: .78; }
.check-row { flex-direction: row; align-items: center; }
.check-list { display: grid; gap: .4rem; max-height: 230px; padding: .75rem; overflow: auto; border: 1px solid var(--line); border-radius: .7rem; }
.check-list label { flex-direction: row; align-items: center; padding: .3rem; }
.check-list legend { font-size: .8rem; font-weight: 800; }
.align-end { align-self: end; }
.inline-form { display: flex; align-items: center; gap: .5rem; }
.inline-form input { width: 6rem; }
.account-working-roles { flex-wrap: wrap; padding: .25rem .4rem; border-radius: .65rem; background: var(--card-subtle); }
.account-working-roles .check-label { flex-direction: row; align-items: center; gap: .3rem; white-space: nowrap; }
.account-working-roles input[type="checkbox"] { width: 1rem; }
.tabs { display: flex; gap: .2rem; margin: 1rem 0; overflow-x: auto; border-bottom: 1px solid var(--line); }
.tab { padding: .65rem .85rem; border: 0; border-bottom: 2px solid transparent; color: var(--muted); background: transparent; cursor: pointer; white-space: nowrap; }
.tab.active { border-bottom-color: var(--brand); color: var(--brand); font-weight: 800; }

.empty-state { display: grid; min-height: 190px; place-items: center; align-content: center; padding: 2rem; text-align: center; border: 1px dashed var(--field-border); border-radius: .9rem; background: var(--card-subtle); }
.empty-state h2 { margin: .6rem 0 .35rem; }
.empty-state p { max-width: 440px; margin-bottom: 0; color: var(--muted); }
.empty-icon { color: var(--brand); font-size: 2rem; }
.notice { padding: .8rem 1rem; border-radius: .7rem; color: var(--brand-dark); background: var(--brand-soft); }
.notice.error, .notice.danger { color: var(--red); background: var(--red-soft); }
.notice.warning { color: var(--amber); background: var(--amber-soft); }
.notice.compact { padding: .55rem .7rem; font-size: .76rem; }

.running-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 1rem; align-items: start; }
.running-board { min-width: 0; }
.running-refresh-state { margin: 0 0 .55rem; font-size: .72rem; }
.pace-card { position: sticky; top: 5.25rem; padding: 1.25rem; background: linear-gradient(145deg, #271353, #5523c5); color: white; }
.pace-card .eyebrow, .pace-card .muted { color: rgba(255,255,255,.7); }
.pace-value { display: block; margin: .35rem 0 1rem; font-size: 2rem; letter-spacing: -.04em; }
.timeline { position: relative; display: flex; flex-direction: column; gap: .9rem; margin-top: 1rem; }
.timeline-section { position: relative; padding: 1.15rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--card); box-shadow: var(--shadow); }
.timeline-section > header { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.timeline-section > header time, .timeline-section > header small { display: block; }
.timeline-section h2 { margin-bottom: .2rem; }
.timeline-break { display: flex; align-items: center; gap: 1rem; padding: .85rem 1.1rem; border: 1px dashed var(--field-border); border-radius: .8rem; color: var(--brand-dark); background: var(--brand-soft); }
.timeline-break time { font-weight: 800; }
.timeline-break strong, .timeline-break small { display: block; }
.timeline-times { min-width: 9.5rem; }
.timeline-times small { color: var(--muted); font-size: .66rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.timeline-times small.projected { margin-top: .28rem; color: var(--brand); }
.timeline-times small.duration { margin-top: .35rem; color: var(--muted); letter-spacing: normal; text-transform: none; }
.timeline-times time { display: block; font-weight: 800; white-space: nowrap; }
.room-running-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); align-items: start; gap: 1rem; }
.room-running-grid.single { display: block; }
.room-running-lane { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--card-subtle); }
.room-running-lane.unassigned { border-color: var(--amber); }
.room-running-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.room-running-heading h2, .room-running-heading p { margin: 0; }
.room-running-heading small { text-align: right; }
.room-live-state { display: flex; align-items: flex-end; flex-direction: column; gap: .2rem; text-align: right; }
.room-live-state > strong { color: var(--brand-dark); font-size: 1rem; }
.room-pace-form { justify-content: flex-end; margin-top: .25rem; }
.room-pace-form input { width: 5rem; }
.current-room-callout { display: flex; align-items: center; gap: .65rem; padding: .7rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--card-subtle); }
.current-room-callout span { color: var(--muted); font-size: .72rem; }
.current-room-callout .text-button { margin-left: auto; }
.section-editor, #section-status, #section-details, #section-settings { scroll-margin-top: 5.5rem; }
.section-editor-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.section-editor-heading h2, .section-editor-heading p { margin-bottom: .2rem; }
.section-editor-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .5rem; }
.section-editor-grid { display: grid; grid-template-columns: minmax(15rem, .8fr) minmax(20rem, 1.2fr); gap: .8rem; margin: 1rem 0 .8rem; }
.section-editor-block { min-width: 0; padding: .9rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--card-subtle); }
.section-editor-block h3, .section-editor-block p { margin-bottom: .45rem; }
.section-editor-block-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; }
.section-status-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .65rem; margin-top: .75rem; }
.section-status-form .button { min-height: 2.55rem; white-space: nowrap; }
.sortable-list, .act-order { margin: 0; padding: 0; list-style: none; }
.sortable-list li, .act-order li { display: flex; align-items: center; gap: .65rem; min-height: 2.7rem; padding: .4rem .3rem; border-bottom: 1px solid var(--line); }
.sortable-list li.dragging { opacity: .45; background: var(--brand-soft); }
.drag-handle { color: var(--muted); cursor: grab; }
.position-input { width: 3.6rem; min-height: 2rem; padding: .25rem; text-align: center; }
.running-number { display: inline-grid; width: 1.85rem; height: 1.85rem; flex: 0 0 auto; place-items: center; border-radius: 50%; color: var(--on-brand); background: var(--brand); font-size: .78rem; font-weight: 850; }
.running-number.large { width: 2.5rem; height: 2.5rem; font-size: 1rem; }
.cancelled { opacity: .55; text-decoration: line-through; }
.compact { margin: .55rem 0 0; }
.order-form + .timeline { margin-top: 1.25rem; }

.act-cards { display: flex; flex-direction: column; }
.act-card { display: flex; align-items: center; gap: .85rem; min-height: 4.8rem; padding: .75rem 0; border-bottom: 1px solid var(--line); }
.act-card.cancelled { background: linear-gradient(90deg, transparent, var(--red-soft)); }
.act-title h3 { margin-bottom: 0; }
.act-card p { margin-bottom: 0; }
.act-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .6rem; }
.track-line { margin-top: .25rem !important; font-size: .75rem; }
.inline-details { position: relative; }
.inline-details summary { color: var(--brand); cursor: pointer; font-size: .8rem; font-weight: 700; }
.inline-details form { position: absolute; right: 0; z-index: 5; width: 260px; padding: .8rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--card); box-shadow: var(--shadow-raised); }
.performer-headshot-menu form { position: static; width: auto; padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.performer-headshot-menu form + form { margin-top: .7rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.form-stack.compact { gap: .5rem; }
.suggestion-card { border-color: var(--brand); background: linear-gradient(145deg, var(--card), var(--brand-soft)); }
.compact-list { margin: .8rem 0; counter-reset: item; }
.compact-list li { padding: .25rem 0; }

.score-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; }
.score-card { padding: 1.1rem; }
.score-card > header { display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.score-card h2, .score-card p { margin-bottom: 0; }
.score-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.score-form label > span { display: flex; justify-content: space-between; }
.score-card.current { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft), var(--shadow-raised); }
.score-card.completed { border-color: color-mix(in srgb, var(--green) 35%, var(--line)); background: linear-gradient(145deg, var(--card), var(--green-soft)); }
.adjudication-performers { display: flex; flex-wrap: wrap; gap: .65rem; margin: -.2rem 0 1rem; padding: .75rem; border-radius: .75rem; background: var(--card-subtle); }
.adjudication-performer { display: flex; min-width: 0; align-items: center; gap: .5rem; }
.adjudication-performer strong { max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .78rem; }
.adjudication-headshot, .adjudication-headshot-fallback { width: 3.25rem; height: 3.25rem; flex: 0 0 auto; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--card), 0 0 0 3px var(--line); }
.adjudication-headshot-fallback { display: inline-grid; place-items: center; }
.private-shortlist { margin: .9rem 0 1rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--card-subtle); }
.private-shortlist.starred { border-color: color-mix(in srgb, var(--amber) 48%, var(--line)); background: linear-gradient(145deg, var(--card), var(--amber-soft)); }
.private-shortlist > summary { display: flex; align-items: center; gap: .55rem; padding: .75rem .85rem; cursor: pointer; list-style: none; }
.private-shortlist > summary::-webkit-details-marker { display: none; }
.star-mark { color: var(--amber); font-size: 1.45rem; line-height: 1; }
.star-mark.large { font-size: 2rem; }
.private-shortlist-form { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(0, 1.3fr); gap: .75rem; padding: 0 .85rem .85rem; }
.private-shortlist-form.compact { margin-top: 1rem; padding: 1rem; border-top: 1px solid var(--line); }
.private-shortlist-form label:not(.check-row) { display: flex; flex-direction: column; gap: .35rem; font-weight: 700; }
.private-shortlist-form .privacy-note { margin: 0; color: var(--muted); font-size: .78rem; }
.private-shortlist-notice { margin-bottom: 1rem; }
.starred-act-list { display: flex; flex-direction: column; gap: 1rem; }
.starred-act-card { padding: 1rem; border: 1px solid color-mix(in srgb, var(--amber) 35%, var(--line)); border-radius: 1rem; background: linear-gradient(145deg, var(--card), color-mix(in srgb, var(--amber-soft) 38%, var(--card))); }
.starred-act-card > header { display: flex; align-items: flex-start; gap: .75rem; }
.starred-act-card h2, .starred-act-card p { margin-bottom: .2rem; }
.starred-act-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.award-label { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.award-label span { padding: .15rem .55rem; border-radius: 999px; color: var(--amber); background: var(--amber-soft); font-weight: 750; }
.private-note-copy { margin-top: .75rem; padding: .8rem; border-left: 3px solid var(--amber); border-radius: .25rem .65rem .65rem .25rem; background: var(--card-subtle); }
.private-note-copy p { margin: .2rem 0 0; white-space: pre-wrap; }
.score-music { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin: -.25rem 0 1rem !important; padding: .6rem .7rem; border-radius: .65rem; background: var(--card-subtle); font-size: .76rem; }
.context-trail { margin: 0 0 .8rem; overflow-x: auto; }
.context-trail ol { display: flex; align-items: center; gap: .45rem; margin: 0; padding: 0; list-style: none; white-space: nowrap; color: var(--muted); font-size: .8rem; }
.context-trail li + li::before { content: "›"; margin-right: .45rem; color: var(--field-border); }
.context-trail li[aria-current="page"] { color: var(--ink); font-weight: 750; }
.adjudication-progress { margin: -1rem 0 1.4rem; padding: 1rem 1.15rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--card); box-shadow: var(--shadow); }
.adjudication-progress.complete { border-color: color-mix(in srgb, var(--green) 40%, var(--line)); background: linear-gradient(145deg, var(--card), var(--green-soft)); }
.adjudication-progress .section-heading { margin-bottom: .7rem; }
.panel-progress-summary { display: grid; margin-top: .8rem; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
.panel-progress-summary p { margin: 0; padding: .55rem .65rem; border-radius: .65rem; background: var(--card-subtle); font-size: .76rem; }
.panel-progress-board { margin-bottom: 1rem; }
.panel-judge-list { display: grid; gap: .55rem; }
.panel-judge-row { display: flex; align-items: center; gap: .65rem; padding: .65rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--card-subtle); }
.panel-judge-row strong, .panel-judge-row small { display: block; }
.public-feedback, .chair-shortlist-note { grid-column: 1 / -1; padding: .7rem; border-radius: .65rem; }
.public-feedback { background: var(--brand-soft); }
.chair-shortlist-note { background: var(--amber-soft); }
.public-feedback p, .chair-shortlist-note p { margin: .25rem 0 0; }
.result-reopen-form { margin-top: .8rem; }
progress { width: 100%; height: .72rem; overflow: hidden; border: 0; border-radius: 999px; color: var(--brand); background: var(--neutral-soft); accent-color: var(--brand); }
progress::-webkit-progress-bar { border-radius: 999px; background: var(--neutral-soft); }
progress::-webkit-progress-value { border-radius: 999px; background: linear-gradient(90deg, var(--brand), var(--pink)); }
progress::-moz-progress-bar { border-radius: 999px; background: linear-gradient(90deg, var(--brand), var(--pink)); }
.section-step-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .8rem; margin-top: .75rem; font-size: .78rem; }
.section-step-nav > :last-child { justify-self: end; }
.adjudication-events { display: flex; flex-direction: column; gap: 1rem; }
.adjudication-event { padding: 1.15rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--card-subtle); }
.adjudication-event.complete { border-color: color-mix(in srgb, var(--green) 38%, var(--line)); }
.adjudication-event-header { display: flex; align-items: flex-start; gap: 1rem; }
.adjudication-event-header h2, .adjudication-event-header p { margin-bottom: .2rem; }
.event-score-progress { margin: 1rem 0; }
.event-score-progress > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .45rem; font-size: .8rem; }
.event-score-progress span { color: var(--muted); }
.event-score-progress.chair-progress { padding: .7rem .8rem; border: 1px solid color-mix(in srgb, var(--brand) 24%, var(--line)); border-radius: .75rem; background: var(--brand-soft); }
.event-score-progress.chair-progress > div { margin-bottom: 0; }
.adjudication-section-steps { margin: 0; padding: 0; list-style: none; }
.adjudication-section-steps li { display: flex; align-items: center; gap: .75rem; padding: .65rem .25rem; border-top: 1px solid var(--line); }
.adjudication-section-steps li.current { margin-inline: -.45rem; padding-inline: .7rem; border: 1px solid var(--brand); border-radius: .75rem; background: var(--brand-soft); }
.adjudication-section-steps li.blocked { opacity: .65; }
.adjudication-section-steps strong, .adjudication-section-steps small { display: block; }
.step-marker { display: inline-grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border-radius: 50%; color: var(--muted); background: var(--neutral-soft); font-size: .75rem; font-weight: 850; }
.adjudication-section-steps .complete .step-marker { color: var(--green); background: var(--green-soft); }
.adjudication-section-steps .current .step-marker { color: var(--on-brand); background: var(--brand); }
.adjudication-event-actions { display: flex; justify-content: flex-end; margin-top: 1rem; }

.act-library-list { display: flex; flex-direction: column; gap: 1rem; }
.act-library-card { padding: 1rem; border: 1px solid var(--line); border-radius: .9rem; background: var(--card-subtle); }
.act-library-header { display: flex; align-items: flex-start; gap: 1rem; }
.act-library-header h3, .act-library-header p { margin-bottom: .2rem; }
.performer-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: .8rem 0; }
.chip { display: inline-flex; padding: .25rem .55rem; border-radius: 999px; color: var(--brand-dark); background: var(--brand-soft); font-size: .72rem; font-weight: 750; }
.act-library-actions, .music-version-actions, .music-version-title { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem; }
.act-library-actions { margin: .8rem 0; padding: .7rem 0; border-block: 1px solid var(--line); }
.act-library-actions .inline-details form { width: min(360px, 82vw); }
.music-empty { margin: .8rem 0 0; padding: .75rem; border: 1px dashed var(--field-border); border-radius: .7rem; }
.music-version-list { display: flex; flex-direction: column; }
.music-version { display: flex; align-items: center; gap: .9rem; padding: .75rem .2rem; border-bottom: 1px solid var(--line); }
.music-version.default { margin-inline: -.35rem; padding-inline: .55rem; border: 1px solid color-mix(in srgb, var(--green) 35%, var(--line)); border-radius: .7rem; background: var(--green-soft); }
.music-version p { margin: .15rem 0 0; font-size: .75rem; }
.music-version-actions { justify-content: flex-end; }
.music-version-actions form { display: inline-flex; }
.danger-text { color: var(--red); }
.danger-details summary { color: var(--red); }
.account-performer-list[hidden] { display: none; }
.result-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.placement-board { display: flex; flex-direction: column; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.placement-board > li { display: flex; align-items: center; gap: .8rem; min-height: 3rem; padding: .55rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--card-subtle); }
.place-badge { display: inline-grid; width: 2.6rem; height: 2.6rem; place-items: center; border-radius: .7rem; color: var(--on-brand); background: linear-gradient(145deg, var(--brand), var(--pink)); }
.placement-act { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; }
.placement-performers { margin-top: .25rem; }
.placement-performers summary { color: var(--brand-strong); cursor: pointer; font-size: .88rem; font-weight: 700; }
.placement-performers .compact-list { margin: .4rem 0 0; }
.average-score-board { display: flex; flex-direction: column; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.average-score-board li { display: flex; align-items: center; gap: .8rem; min-height: 3.2rem; padding: .65rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--card-subtle); }
.average-score-board .grow { display: flex; min-width: 0; flex-direction: column; }
.score-rank-badge, .score-order-position { display: inline-grid; width: 2.8rem; height: 2.8rem; flex: 0 0 2.8rem; place-items: center; border: 1px solid var(--brand); border-radius: .7rem; color: var(--brand-strong); background: var(--brand-soft); font-weight: 800; }
.average-score-value { margin-left: auto; white-space: nowrap; }
.placement-place-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(17rem, 100%), 1fr)); gap: .8rem; }
.placement-drop-zone { min-width: 0; padding: .7rem; border: 1px dashed var(--field-border); border-radius: .85rem; background: var(--card-subtle); transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.placement-drop-zone:focus-within { border-color: var(--brand); }
.placement-drop-zone.is-dragover { border-color: var(--pink); background: var(--pink-soft); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pink) 16%, transparent); }
.placement-drop-zone.has-joint-place { border-style: solid; border-color: color-mix(in srgb, var(--pink) 55%, var(--line)); }
.placement-zone-heading { display: flex; align-items: center; gap: .7rem; }
.placement-zone-heading .grow { display: flex; min-width: 0; flex-direction: column; }
.placement-zone-heading .status { margin-left: auto; white-space: nowrap; }
.placement-card-list { display: flex; min-height: 3.25rem; flex-direction: column; gap: .55rem; margin-top: .65rem; }
.placement-zone-empty { margin: -.1rem 0 .2rem; padding: .7rem .25rem .25rem; font-size: .78rem; text-align: center; }
.placement-zone-empty[hidden] { display: none; }
.placement-act-card { display: flex; align-items: flex-start; gap: .6rem; padding: .65rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--card); box-shadow: var(--shadow-soft); cursor: grab; }
.placement-act-card:active { cursor: grabbing; }
.placement-act-card.dragging { opacity: .45; border-color: var(--brand); background: var(--brand-soft); }
.placement-drag-handle { display: inline-grid; width: 1.8rem; height: 1.8rem; flex: 0 0 1.8rem; place-items: center; border-radius: .45rem; color: var(--brand-strong); background: var(--brand-soft); font-size: 1rem; font-weight: 800; }
.placement-card-copy { display: flex; min-width: 8rem; flex-direction: column; }
.placement-card-copy > small { margin-top: .12rem; }
.placement-move-control { width: 7.8rem; flex: 0 0 7.8rem; font-size: .68rem; }
.placement-move-control select { min-height: 2.25rem; padding: .35rem 1.8rem .35rem .5rem; font-size: .76rem; }
.placement-pool { margin-top: .85rem; border-style: solid; }
.pool-icon { display: inline-grid; width: 2.6rem; height: 2.6rem; flex: 0 0 2.6rem; place-items: center; border: 1px solid var(--field-border); border-radius: .7rem; color: var(--brand-strong); background: var(--card); font-size: 1.35rem; }
.published-amendment-confirmation { padding: .7rem; border: 1px solid color-mix(in srgb, var(--red) 35%, var(--line)); border-radius: .7rem; background: var(--red-soft); }
.scorecard-list { display: flex; flex-direction: column; }
.scorecard-summary { border-bottom: 1px solid var(--line); }
.scorecard-summary summary { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem .2rem; cursor: pointer; }
.score-items { display: flex; flex-wrap: wrap; gap: .7rem; padding: .75rem; background: var(--card-subtle); }
.score-items span { display: flex; gap: .4rem; }
.score-items p, .score-items small { width: 100%; margin: 0; }

.notification-list { display: flex; flex-direction: column; }
.notification { display: flex; align-items: center; gap: .8rem; padding: .9rem .3rem; border-bottom: 1px solid var(--line); color: var(--ink); }
.notification:hover { text-decoration: none; background: var(--surface-hover); }
.notification p { margin: .2rem 0; color: var(--muted); }
.notification-dot { width: .55rem; height: .55rem; border-radius: 50%; background: var(--neutral-dot); }
.list-search { display: flex; align-items: end; flex-wrap: wrap; gap: .65rem; margin: .8rem 0 1rem; }
.list-search input[type="search"] { min-width: min(22rem, 70vw); }
.list-result-count { margin-left: auto; color: var(--muted); font-size: .8rem; white-space: nowrap; }
.pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .8rem; margin-top: 1rem; padding-top: .85rem; border-top: 1px solid var(--line); }
.pagination p { margin: 0; color: var(--muted); font-size: .8rem; }
.pagination-links { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; }
.page-link { display: inline-grid; min-width: 2.2rem; min-height: 2.2rem; padding: .4rem .65rem; place-items: center; border: 1px solid var(--line); border-radius: .55rem; background: var(--card); font-size: .8rem; font-weight: 700; }
.page-link:hover { text-decoration: none; border-color: var(--brand); }
.page-link.current { color: var(--on-brand); border-color: var(--brand); background: var(--brand); }
.notification.unread .notification-dot { background: var(--pink); box-shadow: 0 0 0 5px var(--pink-soft); }
.pill-list { display: flex; flex-wrap: wrap; gap: .55rem; }
.plan-pill { padding: .45rem .7rem; border-radius: 2rem; color: var(--green); background: var(--green-soft); font-size: .78rem; font-weight: 750; }
.plan-list { display: flex; flex-direction: column; }
.plan-row { padding: 1rem .2rem; border-bottom: 1px solid var(--line); }
.plan-row-main { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.plan-row-main p { margin: .2rem 0 0; color: var(--muted); font-size: .8rem; }
.plan-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; margin: .85rem 0; }
.plan-meta div { min-width: 0; }
.plan-meta dt { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.plan-meta dd { margin: .15rem 0 0; overflow-wrap: anywhere; font-size: .76rem; }
.plan-actions { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: .8rem; padding-top: .75rem; border-top: 1px dashed var(--line); }
.plan-change-form { display: flex; align-items: end; flex-wrap: wrap; gap: .55rem; }
.plan-change-form label { min-width: min(18rem, 70vw); }
.plan-change-form > .muted { align-self: center; font-size: .8rem; }
.pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 1rem; }
.price-card { display: flex; flex-direction: column; padding: 1.25rem; transition: border-color .16s ease, transform .16s ease; }
.price-card:hover { border-color: var(--brand); transform: translateY(-2px); }
.price-card > p:not(.eyebrow) { min-height: 3rem; color: var(--muted); }
.price-card form { margin-top: auto; }

.auth-body { display: grid; min-height: 100vh; place-items: center; padding: 1.2rem; background: radial-gradient(circle at top left, var(--auth-glow), transparent 45%), linear-gradient(145deg, var(--auth-start), var(--auth-end)); }
.auth-card { width: min(460px, 100%); padding: clamp(1.4rem, 5vw, 2.4rem); border: 1px solid var(--line); border-radius: 1.25rem; background: var(--auth-card); box-shadow: var(--shadow-raised); backdrop-filter: blur(18px); }
.auth-card.wide { width: min(500px, 100%); }
.auth-card .brand { margin-bottom: 2rem; color: var(--ink); }
.auth-card h1 { font-size: 2rem; }
.auth-links { display: flex; justify-content: space-between; gap: 1rem; margin: 1.2rem 0 0; font-size: .82rem; }
.fine-print { margin: 1.2rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.auth-alternative { margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--line); }
.auth-alternative summary { color: var(--brand); cursor: pointer; font-weight: 700; }
.auth-alternative form { margin-top: .9rem; }
.demo-personas { margin-top: 1.25rem; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.demo-personas .eyebrow { margin-bottom: .25rem; }
.demo-personas h2 { margin-bottom: .25rem; }
.demo-personas > .muted { margin-bottom: .8rem; font-size: .78rem; }
.demo-persona-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.demo-persona-grid form { min-width: 0; }
.demo-persona-button { display: flex; align-items: center; width: 100%; min-height: 4rem; padding: .65rem; gap: .6rem; border: 1px solid var(--line); border-radius: .75rem; color: var(--ink); background: var(--card-subtle); cursor: pointer; text-align: left; transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.demo-persona-button:hover { border-color: var(--brand); background: var(--brand-soft); transform: translateY(-1px); }
.demo-persona-mark { display: inline-grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border-radius: .6rem; color: var(--on-brand); background: linear-gradient(145deg, var(--brand), var(--pink)); font-size: .75rem; font-weight: 850; }
.demo-persona-copy { flex: 1; min-width: 0; }
.demo-persona-copy strong, .demo-persona-copy small { display: block; }
.demo-persona-copy strong { font-size: .78rem; }
.demo-persona-copy small { margin-top: .08rem; color: var(--muted); font-size: .65rem; font-weight: 500; line-height: 1.25; }
.demo-persona-arrow { color: var(--brand); font-weight: 800; }
.demo-personas .fine-print { margin-top: .7rem; }
.code-input { text-transform: uppercase; letter-spacing: .35em; text-align: center; font-size: 1.5rem; font-weight: 800; }
input[readonly] { color: var(--ink); background: var(--card-subtle); }
.auth-theme-toggle { position: fixed; top: 1rem; right: 1rem; z-index: 5; }

@media (max-width: 960px) {
  .app-shell { grid-template-columns: 1fr; }
  body.menu-open { overflow: hidden; }
  .sidebar { position: fixed; inset: 0 auto 0 0; width: min(19rem, 88vw); height: 100vh; height: 100dvh; transform: translateX(calc(-100% - 1rem)); visibility: hidden; box-shadow: 18px 0 55px rgba(15,7,31,.35); transition: transform .22s ease, visibility 0s linear .22s; z-index: 40; }
  .menu-open .sidebar { transform: translateX(0); visibility: visible; transition-delay: 0s; }
  .sidebar-close { display: inline-flex; }
  .menu-backdrop { position: fixed; inset: 0; display: block; visibility: hidden; opacity: 0; padding: 0; border: 0; background: rgba(17,8,35,.58); backdrop-filter: blur(2px); cursor: pointer; transition: opacity .22s ease, visibility 0s linear .22s; z-index: 35; }
  .menu-open .menu-backdrop { visibility: visible; opacity: 1; transition-delay: 0s; }
  .menu-button { display: inline-flex; }
  .running-layout { grid-template-columns: 1fr; }
  .pace-card { position: static; }
  .split-layout { grid-template-columns: 1fr; }
  .sticky-panel { position: static; }
  .resource-download-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 680px) {
  main { padding: 1rem; }
  .topbar { padding: .7rem 1rem; }
  .page-heading { align-items: stretch; flex-direction: column; }
  .heading-actions { justify-content: flex-start; }
  .event-flow-heading { flex-direction: column; }
  .event-flow-actions { width: 100%; justify-content: flex-start; }
  .event-status-details[open] { width: 100%; }
  .event-status-details > form { position: static; width: 100%; margin-top: .45rem; }
  .event-flow-steps { gap: .35rem; }
  .event-flow-steps li { align-items: flex-start; flex-direction: column; gap: .3rem; padding: .55rem; }
  .event-flow-step-number { width: 1.45rem; height: 1.45rem; }
  .event-readiness { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .event-readiness-item + .event-readiness-item { border-left: 0; }
  .event-readiness-item:nth-child(even) { border-left: 1px solid var(--line); }
  .event-readiness-item:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .calendar-toolbar { align-items: flex-start; flex-direction: column; }
  .calendar-navigation { width: 100%; justify-content: space-between; }
  .metric-grid, .detail-grid, .result-layout { grid-template-columns: minmax(0, 1fr); }
  .span-two { grid-column: auto; }
  .average-score-board li { align-items: flex-start; flex-wrap: wrap; }
  .average-score-value { width: calc(100% - 3.6rem); margin-left: 3.6rem; }
  .placement-act-card { flex-wrap: wrap; }
  .placement-card-copy { min-width: calc(100% - 2.4rem); }
  .placement-move-control { width: 100%; flex-basis: 100%; padding-left: 2.4rem; }
  .form-grid, .field-grid, .score-form { grid-template-columns: 1fr; }
  .score-form .span-two { grid-column: auto; }
  .act-card { align-items: flex-start; flex-wrap: wrap; }
  .act-actions { width: 100%; justify-content: flex-start; padding-left: 2.7rem; }
  .timeline-section > header { align-items: flex-start; flex-wrap: wrap; }
  .timeline-break { align-items: flex-start; flex-wrap: wrap; }
  .plan-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plan-actions, .plan-change-form { align-items: stretch; flex-direction: column; }
  .plan-change-form label { min-width: 0; }
  .auth-links { flex-direction: column; }
  .section-step-nav { grid-template-columns: 1fr 1fr; }
  .section-step-nav > :nth-child(2) { display: none; }
  .music-version, .adjudication-event-header { align-items: flex-start; flex-direction: column; }
  .performer-row-meta { width: 100%; justify-content: flex-start; padding-left: 3.1rem; }
  .performer-headshot-menu { right: auto; left: 0; }
  .music-version-actions, .adjudication-event-actions { width: 100%; justify-content: flex-start; }
  .private-shortlist-form { grid-template-columns: 1fr; }
  .starred-act-card > footer { align-items: flex-start; flex-direction: column; }
  .score-music { align-items: flex-start; flex-direction: column; }
  .access-row, .assignment-row { align-items: stretch; flex-direction: column; }
  .access-row .avatar { align-self: flex-start; }
  .assignment-control { width: 100%; min-width: 0; flex-direction: column; align-items: stretch; }
  .panel-assignment-control { display: grid; width: 100%; min-width: 0; grid-template-columns: 1fr; }
  .panel-assignment-control > * { grid-column: auto; }
  .panel-progress-summary { grid-template-columns: 1fr; }
  .panel-judge-row { align-items: flex-start; flex-wrap: wrap; }
  .section-manager-heading, .template-library-card-header { flex-direction: column; }
  .section-manager-actions { width: 100%; justify-content: flex-start; }
  .event-default-scorecard { grid-template-columns: 1fr; }
  .section-manager-row-main { align-items: flex-start; flex-wrap: wrap; }
  .section-manager-row-copy { min-width: calc(100% - 3.7rem); }
  .section-manager-row-actions { width: 100%; justify-content: flex-start; padding-left: 3.55rem; }
  .section-manager-row-setup { grid-template-columns: 1fr; }
  .section-setup-fact + .section-setup-fact { border-top: 1px solid var(--line); border-left: 0; }
  .section-scorecard-details[open] { width: 100%; }
  .section-scorecard-menu { position: static; width: 100%; }
  .template-create-details[open] form { position: static; width: 100%; margin-top: .65rem; }
  .template-manager-links { align-items: stretch; flex-direction: column; }
  .template-usage-counts { align-items: flex-start; }
  .criterion-builder-row { grid-template-columns: auto minmax(0, 1fr); }
  .criterion-row-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .day-planner-heading { flex-direction: column; }
  .day-plan-card { align-items: flex-start; flex-wrap: wrap; }
  .day-plan-copy { min-width: calc(100% - 10rem); }
  #rooms > .section-heading { align-items: stretch; flex-direction: column; }
  #rooms > .section-heading .button { align-self: stretch; text-align: center; }
  .room-plan-heading, .room-setup-card, .room-name-form { align-items: stretch; flex-direction: column; }
  .room-name-form .button { align-self: flex-start; }
  .room-running-heading, .current-room-callout, .section-editor-heading { align-items: flex-start; flex-direction: column; }
  .section-editor-actions { width: 100%; align-items: stretch; flex-direction: column; }
  .section-editor-actions .button { width: 100%; text-align: center; }
  .section-editor-grid { grid-template-columns: 1fr; }
  .section-status-form { grid-template-columns: 1fr; }
  .section-status-form .button { width: 100%; }
  .room-live-state { align-items: flex-start; text-align: left; }
  .room-plan-heading small { max-width: none; text-align: left; }
  .room-running-heading small { text-align: left; }
  .current-room-callout .text-button { margin-left: 0; }
  .room-move-control { width: 100%; }
  .day-plan-actions { width: 100%; justify-content: flex-end; }
  .break-remove-details[open] { width: 100%; }
  .break-remove-details > form { position: static; width: 100%; margin-top: .45rem; }
  .room-day-planner { padding: .75rem; }
  .room-plan-shell.enhanced .room-plan-navigator { position: sticky; top: 4.55rem; z-index: 6; align-items: stretch; flex-direction: column; box-shadow: 0 8px 22px rgba(35,22,62,.08); }
  .room-plan-picker { width: 100%; }
  .room-plan-navigator-actions { width: 100%; }
  .room-plan-grid { display: block; overflow: visible; padding: 0; }
  .room-plan-lane { width: 100%; }
  .room-day-planner .day-plan-card.editable { grid-template-columns: auto 3.6rem minmax(0, 1fr); grid-template-areas: "summary summary summary" "room room room" "drag position ." "actions actions actions"; }
  .room-day-planner .day-plan-summary { align-items: flex-start; }
  .room-day-planner .day-plan-actions { width: 100%; justify-content: flex-start; }
  .resource-checklist { grid-template-columns: minmax(0, 1fr); }
  .resource-music-room > summary { align-items: flex-start; flex-direction: column; }
  .resource-room-summary-meta { width: 100%; justify-content: space-between; }
  .resource-music-row { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
  .resource-music-action { grid-column: 1 / -1; justify-content: flex-start; padding-left: 3.6rem; }
}

@media (max-width: 430px) {
  .topbar { gap: .55rem; }
  .session-controls { gap: .35rem; }
  .topbar-logout button { padding-inline: .6rem; }
  .theme-toggle-label { display: none; }
  .theme-toggle { width: 2.35rem; justify-content: center; padding: .35rem; }
  .connection-status { display: none; }
  .topbar-update { font-size: 0; }
  .topbar-update .badge { font-size: .68rem; }
  .menu-button { width: 2.35rem; justify-content: center; padding: .35rem; }
  .menu-button-label { display: none; }
  .auth-theme-toggle { width: auto; padding-inline: .7rem; }
  .auth-theme-toggle .theme-toggle-label { display: inline; }
  .demo-persona-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
