@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@700;800&family=IBM+Plex+Sans:wght@400;600&display=swap";:root{--color-paper:oklch(97% .01 125);--color-paper-2:oklch(94% .016 125);--color-paper-3:oklch(90% .022 125);--color-surface:oklch(99% .006 125);--color-ink:oklch(20% .025 145);--color-ink-soft:oklch(34% .022 145);--color-muted:oklch(44% .02 145);--color-rule:oklch(83% .022 125);--color-rule-strong:oklch(68% .035 130);--color-accent:oklch(44% .13 147);--color-accent-deep:oklch(34% .11 147);--color-accent-soft:oklch(91% .055 145);--color-accent-ink:oklch(98% .008 125);--color-focus:oklch(62% .18 52);--color-error:oklch(48% .17 28);--color-error-soft:oklch(94% .035 28);--color-success:oklch(42% .12 147);--color-warning:oklch(52% .13 70);--color-shadow:oklch(18% .025 145/.12);--font-display:"Bricolage Grotesque", "Arial Narrow", sans-serif;--font-body:"IBM Plex Sans", "Segoe UI", sans-serif;--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.25rem;--text-lg:1.5625rem;--text-xl:1.953rem;--text-2xl:2.441rem;--text-display:clamp(2.25rem, 7vw, 4.25rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--rule-thin:1px;--radius-input:.5rem;--radius-surface:.75rem;--radius-round:999px;--z-base:1;--z-raised:10;--z-sticky:200}html,body{overflow-x:clip}.tournament-admin-shell,.tournament-public-shell,.tournament-parent-shell{color:var(--color-ink);font-family:var(--font-body)}.tournament-admin-shell h1,.tournament-admin-shell h2,.tournament-admin-shell h3,.tournament-public-shell h1,.tournament-public-shell h2,.tournament-public-shell h3,.tournament-parent-shell h1{font-family:var(--font-display);letter-spacing:-.025em;overflow-wrap:anywhere;font-style:normal}.tournament-admin-shell .button,.tournament-public-shell .button,.tournament-parent-shell .button{border:var(--rule-thin) solid transparent;border-radius:var(--radius-input);min-height:44px;padding:var(--space-sm) var(--space-md);font-family:var(--font-body);white-space:nowrap;transition:background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out)}.tournament-admin-shell .button:active,.tournament-public-shell .button:active,.tournament-parent-shell .button:active{transform:translateY(0)}.tournament-admin-shell .button:disabled,.tournament-public-shell .button:disabled,.tournament-parent-shell .button:disabled{opacity:.55;cursor:not-allowed}.tournament-admin-shell .button-primary,.tournament-public-shell .button-primary,.tournament-parent-shell .button-primary{background:var(--color-accent);color:var(--color-accent-ink)}.tournament-admin-shell .button-secondary,.tournament-public-shell .button-secondary,.tournament-parent-shell .button-secondary{border-color:var(--color-rule-strong);background:var(--color-surface);color:var(--color-accent-deep)}.tournament-admin-shell .button-danger,.tournament-public-shell .button-danger,.tournament-parent-shell .button-danger{border-color:var(--color-error);background:var(--color-error-soft);color:var(--color-error)}.tournament-admin-shell :is(button,a,input,select):focus-visible,.tournament-public-shell :is(button,a,input,select):focus-visible,.tournament-parent-shell :is(button,a,input,select):focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.tournament-admin-shell :is(input,select),.tournament-parent-shell :is(input,select){border:var(--rule-thin) solid var(--color-rule-strong);border-radius:var(--radius-input);outline-offset:1px;background:var(--color-surface);min-height:44px;color:var(--color-ink);padding:var(--space-sm) var(--space-md);outline:2px solid #0000}.tournament-admin-shell :is(input,select):disabled,.tournament-parent-shell :is(input,select):disabled{opacity:.55;cursor:not-allowed}.tournament-admin-shell :is(input,select):focus-visible,.tournament-parent-shell :is(input,select):focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.tournament-admin-main{width:min(100% - 2rem,82rem);padding-block:var(--space-lg) var(--space-2xl);margin-inline:auto}.tournament-page-heading,.tournament-event-heading,.tournament-section-heading,.tournament-division-heading,.tournament-match-actions{gap:var(--space-md);flex-direction:column;display:flex}.tournament-page-heading,.tournament-event-heading{margin-block-end:var(--space-xl)}.tournament-page-heading h1,.tournament-event-heading h1{max-width:15ch;font-size:var(--text-display);margin:0;line-height:1.02}.tournament-page-heading p,.tournament-event-heading p,.tournament-section-heading p,.tournament-division-heading p,.tournament-match-actions p{max-width:65ch;color:var(--color-muted);margin:0;line-height:1.55}.tournament-create-surface{padding-block:var(--space-lg) var(--space-xl);border-block:var(--rule-thin) solid var(--color-rule)}.tournament-create-surface>h2,.tournament-list-section>h2,.tournament-workbench-section>.tournament-section-heading h2{font-size:var(--text-xl);margin:0}.tournament-create-form{gap:var(--space-xl);margin-block-start:var(--space-lg);display:grid}.tournament-form-section{gap:var(--space-md);display:grid}.tournament-form-section h3,.tournament-form-section p{margin:0}.tournament-form-section p{color:var(--color-muted)}.tournament-form-grid,.tournament-timing-grid,.tournament-team-seed-grid,.tournament-team-settings{gap:var(--space-md);grid-template-columns:minmax(0,1fr);display:grid}.tournament-timing-fields{gap:var(--space-sm);padding:var(--space-md);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-surface);grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin:0;display:grid}.tournament-timing-fields legend{padding-inline:var(--space-xs);font-family:var(--font-display);font-weight:700}.tournament-create-form>.button{justify-self:stretch}.tournament-list-section{gap:var(--space-lg);padding-block-start:var(--space-xl);display:grid}.tournament-event-list{border-block-start:var(--rule-thin) solid var(--color-rule);display:grid}.tournament-event-row{justify-content:space-between;align-items:flex-start;gap:var(--space-lg);min-height:72px;padding-block:var(--space-md);border-block-end:var(--rule-thin) solid var(--color-rule);text-decoration:none;display:flex}.tournament-event-row>div{gap:var(--space-2xs);display:grid}.tournament-event-row>div:last-child{text-align:end;justify-items:end}.tournament-event-row span,.tournament-event-row>div:last-child strong{color:var(--color-muted);font-size:var(--text-sm)}.tournament-event-row:active{background:var(--color-paper-3)}.tournament-status{min-height:28px;padding-inline:var(--space-sm);border-radius:var(--radius-round);background:var(--color-paper-3);color:var(--color-ink-soft);text-transform:capitalize;align-items:center;font-weight:600;display:inline-flex}.tournament-status-open,.tournament-status-active{background:var(--color-accent-soft);color:var(--color-accent-deep)}.tournament-event-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.tournament-event-actions label{gap:var(--space-2xs);font-size:var(--text-sm);font-weight:600;display:grid}.tournament-metrics{border-block:var(--rule-thin) solid var(--color-rule);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.tournament-metrics>div{gap:var(--space-2xs);padding:var(--space-md) var(--space-xs);text-align:center;display:grid}.tournament-metrics>div+div{border-inline-start:var(--rule-thin) solid var(--color-rule)}.tournament-metrics span,.tournament-metrics small{color:var(--color-muted)}.tournament-metrics strong{font-family:var(--font-display);font-size:var(--text-xl);font-variant-numeric:tabular-nums}.tournament-metrics small{font-size:var(--text-xs);line-height:1.35}.tournament-stage-nav,.tournament-public-nav{gap:var(--space-xs);z-index:var(--z-sticky);margin-block:var(--space-lg);padding:var(--space-xs);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-surface);background:var(--color-paper);box-shadow:0 8px 24px -18px var(--color-shadow);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:sticky;inset-block-start:0}.tournament-stage-nav a,.tournament-public-nav a{min-height:44px;padding-inline:var(--space-sm);border-radius:var(--radius-input);color:var(--color-accent-deep);white-space:nowrap;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.tournament-stage-nav a:active,.tournament-public-nav a:active{background:var(--color-paper-3)}.tournament-workbench-section{gap:var(--space-lg);padding-block:var(--space-xl);scroll-margin-block-start:6rem;display:grid}.tournament-workbench-section+.tournament-workbench-section{border-block-start:var(--rule-thin) solid var(--color-rule)}.tournament-checkin-grid,.tournament-division-stack{gap:var(--space-lg);grid-template-columns:minmax(0,1fr);display:grid}.tournament-checkin-grid>article{padding:var(--space-md);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-surface);background:var(--color-surface)}.tournament-checkin-grid article>div{justify-content:space-between;align-items:baseline;gap:var(--space-md);display:flex}.tournament-checkin-grid h3,.tournament-checkin-grid p{margin:0}.tournament-checkin-grid article>div strong{font-family:var(--font-display);font-size:var(--text-xl);font-variant-numeric:tabular-nums}.tournament-checkin-grid ul,.tournament-roster ul{margin:var(--space-md) 0 0;gap:0;padding:0;list-style:none;display:grid}.tournament-checkin-grid li{justify-content:space-between;align-items:baseline;gap:var(--space-md);padding-block:var(--space-xs);border-block-start:var(--rule-thin) solid var(--color-rule);display:flex}.tournament-checkin-grid small{color:var(--color-muted);text-align:end}.tournament-division-block{min-width:0;padding:var(--space-lg);border-radius:var(--radius-surface);background:var(--color-surface);box-shadow:0 1px 2px var(--color-shadow)}.tournament-division-heading{margin-block-end:var(--space-lg)}.tournament-division-heading h3{font-size:var(--text-lg);margin:0}.tournament-team-create{gap:var(--space-lg);display:grid}.tournament-team-count{gap:var(--space-xs);display:grid}.tournament-team-count label{align-items:center;gap:var(--space-md);font-weight:600;display:flex}.tournament-team-count p{color:var(--color-muted);margin:0}.tournament-team-seed{align-items:end;gap:var(--space-sm);padding:var(--space-sm);border-block-start:var(--rule-thin) solid var(--color-rule);grid-template-columns:minmax(0,1fr) auto;display:grid}.tournament-team-seed label,.tournament-team-setting label{gap:var(--space-2xs);font-size:var(--text-sm);font-weight:600;display:grid}.tournament-team-seed input[type=color],.tournament-team-setting input[type=color]{inline-size:52px;padding:var(--space-2xs)}.tournament-team-settings{margin-block-end:var(--space-lg)}.tournament-team-setting{align-items:end;gap:var(--space-sm);padding-block:var(--space-sm);border-block-start:var(--rule-thin) solid var(--color-rule);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.tournament-team-setting>i,.tournament-team-label i,.tournament-standing-team i,.tournament-team-chips i{border-radius:var(--radius-round);background:var(--team-color);flex:none;block-size:.85rem;inline-size:.85rem;display:inline-block}.tournament-color-field{grid-column:3}.tournament-team-setting>.button{grid-column:2/-1;justify-self:end}.tournament-team-setting>.error-message{grid-column:1/-1}.tournament-roster-grid{gap:var(--space-md);grid-template-columns:minmax(0,1fr);display:grid}.tournament-roster{border-block-start:3px solid var(--team-color);background:var(--color-paper);padding:var(--space-md)}.tournament-roster-unassigned{border:var(--rule-thin) dashed var(--color-warning);background:var(--color-paper-2)}.tournament-roster h4{align-items:center;gap:var(--space-xs);font-family:var(--font-display);margin:0;display:flex}.tournament-roster h4 i{border-radius:var(--radius-round);background:var(--team-color);block-size:.75rem;inline-size:.75rem}.tournament-roster h4 span{color:var(--color-muted);font-family:var(--font-body);font-size:var(--text-sm);margin-inline-start:auto}.tournament-roster p{margin:var(--space-md) 0 0;color:var(--color-muted)}.tournament-roster li{align-items:center;gap:var(--space-sm);padding-block:var(--space-xs);border-block-start:var(--rule-thin) solid var(--color-rule);grid-template-columns:minmax(0,1fr) auto;display:grid}.tournament-roster li>div{min-width:0;display:grid}.tournament-roster strong{overflow-wrap:anywhere}.tournament-roster small{color:var(--color-muted)}.tournament-roster select{max-width:9.5rem}.tournament-team-select{justify-items:end;gap:var(--space-2xs);display:grid}.tournament-team-select .error-message{max-width:18rem;color:var(--color-error);text-align:end}.tournament-empty{color:var(--color-muted);margin:0;line-height:1.55}.tournament-empty-action{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-paper-2);flex-wrap:wrap;display:flex}.tournament-match-panel{gap:var(--space-md);display:grid}.tournament-match-list{gap:var(--space-sm);grid-template-columns:minmax(0,1fr);display:grid}.tournament-match{gap:var(--space-sm);padding:var(--space-md);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-surface);background:var(--color-paper);display:grid}.tournament-match.is-completed{border-color:var(--color-rule-strong)}.tournament-match-meta{justify-content:space-between;align-items:center;gap:var(--space-sm);color:var(--color-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;display:flex}.tournament-scoreline,.tournament-score-editor{align-items:center;gap:var(--space-xs);grid-template-columns:minmax(4rem,1fr) 2.5rem auto 2.5rem minmax(4rem,1fr);display:grid}.tournament-scoreline strong{font-family:var(--font-display);font-size:var(--text-lg);font-variant-numeric:tabular-nums}.tournament-scoreline>:nth-child(4),.tournament-score-editor>:nth-child(4){text-align:center}.tournament-scoreline .tournament-team-label:last-child,.tournament-score-editor .tournament-team-label:last-child{text-align:end;justify-content:flex-end}.tournament-score-editor input{inline-size:2.5rem;min-height:44px;padding-inline:var(--space-xs);text-align:center;font-variant-numeric:tabular-nums}.tournament-score-form>.button{justify-self:end}.tournament-team-label{align-items:center;gap:var(--space-xs);overflow-wrap:normal;word-break:normal;min-width:0;font-weight:600;display:inline-flex}.tournament-standings{gap:var(--space-xs);font-variant-numeric:tabular-nums;display:grid}.tournament-standing-row{align-items:center;gap:var(--space-xs);padding:var(--space-sm);border-block-start:var(--rule-thin) solid var(--color-rule);grid-template-columns:minmax(0,1fr) repeat(3,auto);display:grid}.tournament-standing-head,.tournament-standing-row>span:nth-child(n+3):nth-child(-n+7){display:none}.tournament-standing-row>span:not(.tournament-standing-team):before{content:attr(data-label);color:var(--color-muted);font-size:var(--text-xs);margin-inline-end:var(--space-2xs)}.tournament-standing-team{align-items:center;gap:var(--space-xs);min-width:0;font-weight:600;display:inline-flex}.tournament-standing-team strong{inline-size:1.25rem;color:var(--color-muted)}.tournament-standing-points{font-family:var(--font-display);font-size:var(--text-md)}.tournament-public-shell{background:var(--color-paper);min-height:100dvh}.tournament-public-header,.tournament-public-main,.tournament-public-nav,.tournament-public-footer{width:min(100% - 2rem,78rem);margin-inline:auto}.tournament-public-header{gap:var(--space-lg);padding-block:var(--space-lg) var(--space-xl);display:grid}.tournament-public-header h1{max-width:13ch;font-size:var(--text-display);margin:0;line-height:1.02}.tournament-public-header p{color:var(--color-muted);margin:0}.tournament-public-header>div{gap:var(--space-sm);display:grid}.tournament-public-header>.button{justify-self:start}.tournament-public-nav{inset-block-start:var(--space-xs)}.tournament-public-main{gap:var(--space-2xl);padding-block:var(--space-lg) var(--space-2xl);display:grid}.tournament-public-division{gap:var(--space-lg);scroll-margin-block-start:6rem;display:grid}.tournament-public-division+.tournament-public-division{border-block-start:var(--rule-thin) solid var(--color-rule);padding-block-start:var(--space-xl)}.tournament-public-division>header{gap:var(--space-md);display:grid}.tournament-public-division h2,.tournament-public-division h3{margin:0}.tournament-public-division h2{font-size:var(--text-2xl)}.tournament-public-division h3{font-size:var(--text-md);margin-block-end:var(--space-md)}.tournament-public-division header p{color:var(--color-muted);margin:0}.tournament-team-chips{gap:var(--space-xs);flex-wrap:wrap;display:flex}.tournament-team-chips span{align-items:center;gap:var(--space-xs);min-height:36px;padding-inline:var(--space-sm);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-round);background:var(--color-surface);white-space:nowrap;display:inline-flex}.tournament-public-layout{gap:var(--space-xl);grid-template-columns:minmax(0,1fr);display:grid}.tournament-public-footer{gap:var(--space-sm);padding-block:var(--space-xl);border-block-start:var(--rule-thin) solid var(--color-rule);display:grid}.tournament-public-footer strong{font-family:var(--font-display);font-size:var(--text-lg)}.tournament-public-footer span{color:var(--color-muted)}.tournament-public-footer a{color:var(--color-accent-deep);text-decoration-thickness:var(--rule-thin);text-underline-offset:var(--space-2xs);white-space:nowrap;justify-self:start;font-weight:600}.tournament-public-footer a:active{color:var(--color-accent)}.tournament-public-empty{width:min(100% - 2rem,36rem);padding-block:var(--space-2xl);margin-inline:auto}.tournament-public-empty h1{font-size:var(--text-display);margin:0}.tournament-parent-shell{min-height:100dvh;padding:var(--space-md);background:var(--color-accent-soft);place-items:center;display:grid}.tournament-parent-panel{width:min(100%,36rem);padding:var(--space-lg);border:var(--rule-thin) solid var(--color-rule);border-radius:var(--radius-surface);background:var(--color-surface);box-shadow:0 12px 32px -24px var(--color-shadow)}.tournament-parent-panel h1{margin:0;font-size:clamp(2rem,8vw,3.25rem);line-height:1.05}.tournament-parent-panel .lead{margin:var(--space-md) 0 0;color:var(--color-muted);line-height:1.5}.tournament-parent-panel .form-stack{gap:var(--space-md);margin-block-start:var(--space-xl)}.tournament-parent-label{margin:0 0 var(--space-xs);color:var(--color-accent-deep);font-weight:600}.tournament-parent-result{gap:var(--space-md);border-block-start:var(--rule-thin) solid var(--color-rule);margin-block-start:var(--space-xl);padding-block-start:var(--space-lg);display:grid}.tournament-parent-result strong{font-family:var(--font-display);font-size:var(--text-lg)}.tournament-parent-result p,.tournament-privacy-note{color:var(--color-muted);margin:0;line-height:1.55}.tournament-choice-link{background:var(--color-accent-deep)}@media (hover:hover) and (pointer:fine){.tournament-admin-shell .button:hover,.tournament-public-shell .button:hover,.tournament-parent-shell .button:hover{transform:translateY(-1px)}.tournament-event-row:hover{background:var(--color-paper-2)}.tournament-stage-nav a:hover,.tournament-public-nav a:hover{background:var(--color-accent-soft)}.tournament-admin-shell :is(input,select):hover,.tournament-parent-shell :is(input,select):hover{background:var(--color-paper-2)}}@media (width>=40rem){.tournament-admin-main,.tournament-public-header,.tournament-public-main,.tournament-public-nav,.tournament-public-footer{width:min(100% - 3rem,82rem)}.tournament-page-heading,.tournament-event-heading,.tournament-section-heading,.tournament-division-heading,.tournament-match-actions{flex-direction:row;justify-content:space-between;align-items:flex-end}.tournament-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tournament-timing-grid,.tournament-checkin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tournament-team-seed-grid,.tournament-team-settings,.tournament-roster-grid,.tournament-match-list{grid-template-columns:repeat(2,minmax(0,1fr))}.tournament-create-form>.button{justify-self:start}.tournament-team-setting{grid-template-columns:auto minmax(0,1fr) auto auto}.tournament-color-field,.tournament-team-setting>.button{grid-column:auto}.tournament-standing-row{grid-template-columns:minmax(10rem,1fr) repeat(8,minmax(2rem,auto))}.tournament-standing-head{color:var(--color-muted);font-size:var(--text-xs);font-weight:600;display:grid}.tournament-standing-head>span:not(:first-child),.tournament-standing-row>span:not(:first-child){text-align:end}.tournament-standing-row>span:nth-child(n+3):nth-child(-n+7){display:inline}.tournament-standing-row>span:not(.tournament-standing-team):before{display:none}.tournament-public-header{grid-template-columns:minmax(0,1fr) auto;align-items:end}.tournament-public-header>.button{justify-self:end}.tournament-public-nav,.tournament-stage-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.tournament-public-division>header{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end}.tournament-team-chips{justify-content:flex-end}.tournament-public-footer{grid-template-columns:minmax(0,1fr) auto;align-items:baseline}.tournament-public-footer span{grid-column:1}.tournament-public-footer a{grid-area:1/2}}@media (width>=60rem){.tournament-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.tournament-roster-grid,.tournament-match-list{grid-template-columns:repeat(3,minmax(0,1fr))}.tournament-public-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start}.tournament-public-layout .tournament-match-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.tournament-admin-shell *,.tournament-public-shell *,.tournament-parent-shell *{scroll-behavior:auto;transition-duration:var(--dur-micro)}}:root{color:#17211b;font-synthesis:none;text-rendering:optimizelegibility;background:#f7f5ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}a{color:inherit}button,input,select,textarea{font:inherit}.public-shell{background:linear-gradient(135deg,#144a2cd1,#17211b94),repeating-linear-gradient(90deg,#2f8f52 0 68px,#348f57 68px 136px);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.public-panel,.form-panel{background:#fffdf7;border-radius:8px;width:min(100%,680px);padding:32px;box-shadow:0 22px 80px #08130c3d}.compact-panel{width:min(100%,520px)}.success-panel{text-align:center}.eyebrow{color:#1f6840;letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:.8rem;font-weight:800}h1{letter-spacing:0;margin:0;font-size:clamp(2rem,8vw,4.4rem);line-height:1}h2{letter-spacing:0;margin:0;font-size:1.25rem}.lead{color:#46544c;margin:16px 0 0;font-size:1.1rem;line-height:1.5}.upcoming-sessions{text-align:left;background:#f8faf6;border:1px solid #d9e1d7;border-radius:8px;margin-top:28px;padding:16px}.upcoming-sessions-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.upcoming-session-item{border-top:1px solid #e4e9e1;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 0;display:flex}.upcoming-sessions-list .upcoming-session-item:first-child{border-top:0;padding-top:0}.upcoming-session-date,.upcoming-session-group{align-items:center;gap:8px;margin:0;display:flex}.upcoming-session-date{color:#173d2a;font-weight:800}.upcoming-session-group{color:#4d5b51;margin-top:4px;font-size:.96rem;font-weight:700}.upcoming-session-meta{color:#607068;gap:6px;font-size:.94rem;display:grid}.upcoming-session-meta span{align-items:center;gap:6px;display:inline-flex}.qr-section .section-header{align-items:center}.qr-layout{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px;display:grid}.qr-panel{background:#fff;border:1px solid #dce3dc;border-radius:8px;place-items:center;min-width:220px;padding:12px;display:grid}.qr-image{width:220px;height:220px;image-rendering:pixelated}.qr-actions{gap:12px;display:grid}.qr-actions .muted{word-break:break-word;margin:0}.action-stack,.form-stack{gap:16px;margin-top:28px;display:grid}.choice-link,.button{cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:54px;padding:14px 18px;font-weight:800;text-decoration:none;display:inline-flex}.choice-link{color:#fff;background:#173d2a;justify-content:flex-start;font-size:1.05rem}.choice-link svg{width:24px;height:24px}.button-primary{color:#fff;background:#176b3b}.button-secondary{color:#173d2a;background:#e7eee7}.button-danger{color:#8b1d16;background:#ffe1df}.button-compact{min-height:36px;padding:8px 12px;font-size:.9rem}.button-row{flex-wrap:wrap;gap:8px;display:flex}.button:disabled{opacity:.6;cursor:not-allowed}.back-link{color:#176b3b;margin-bottom:18px;font-weight:800;text-decoration:none;display:inline-block}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field{color:#253128;gap:7px;font-size:.94rem;font-weight:750;display:grid}.field input,.field select,.field textarea{color:#17211b;background:#fff;border:1px solid #c9d3ca;border-radius:8px;width:100%;padding:13px 14px}.field textarea{resize:vertical}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.checkbox{background:#fbfaf5;border:1px solid #dce3dc;border-radius:8px;align-items:flex-start;gap:10px;padding:12px;line-height:1.35;display:flex}.checkbox input{accent-color:#176b3b;width:18px;height:18px;margin-top:1px}.error-message{color:#a22c22;margin:0;font-weight:750}.success-message{color:#176b3b;margin:0;font-weight:750}.muted{color:#607068}.selection-list{gap:10px;display:grid}.result-icon{width:64px;height:64px;margin-bottom:18px}.result-icon-success{color:#176b3b}.result-icon-warning{color:#a75b10}.result-icon-info{color:#315b77}.admin-login-shell{background:#f4f7f2;place-items:center;min-height:100vh;padding:24px;display:grid}.admin-login-panel{background:#fff;border-radius:8px;width:min(100%,420px);padding:28px;box-shadow:0 18px 48px #121f161f}.admin-login-panel h1{font-size:2rem}.admin-shell{background:#f5f6f2;min-height:100vh}.admin-shell main{width:min(100% - 32px,1280px);margin:0 auto;padding:26px 0 48px}.admin-nav{color:#fff;background:#17211b;justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex}.admin-brand{font-weight:850;text-decoration:none}.admin-nav nav{align-items:center;gap:12px;display:flex}.admin-nav a,.admin-nav button{color:#fff;cursor:pointer;background:0 0;border:0;font-weight:750;text-decoration:none}.admin-heading{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.admin-heading h1{font-size:2.25rem}.admin-heading p{color:#617065;margin:0}.admin-heading>div{gap:6px;display:grid}.session-meta{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:100%;display:flex}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px;display:grid}.metric{background:#fff;border:1px solid #dce3dc;border-radius:8px;padding:16px}.metric span{color:#607068;font-size:.86rem;font-weight:750;display:block}.metric strong{margin-top:6px;font-size:1.8rem;display:block}.admin-section{background:#fff;border:1px solid #dce3dc;border-radius:8px;margin-top:20px;padding:16px}.section-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.section-header p{color:#607068;margin:0}.section-header h2{font-size:1rem}.admin-warning{color:#73400d;background:#fff8e8;border:1px solid #e5bc79;border-radius:8px;align-items:flex-start;gap:10px;margin:12px 0 16px;padding:12px 14px;display:flex}.admin-warning svg{flex:none;margin-top:2px}.admin-warning p{margin:3px 0 0;line-height:1.45}.attendance-status-stack{gap:5px;display:grid}.attendance-status-stack .muted{font-size:.78rem}.table-wrap{margin-top:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #edf0ed;padding:10px}th{color:#4d5b51;text-transform:uppercase;font-size:.78rem}.status-pill{color:#4d5b51;text-transform:capitalize;background:#f3f6f3;border:1px solid #dce3dc;border-radius:999px;padding:4px 8px;font-size:.82rem;font-weight:750;display:inline-block}.compact-select{color:#253128;min-width:118px;font:inherit;background:#fff;border:1px solid #c9d3ca;border-radius:7px;padding:7px 8px}.asset-preview-button{cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.asset-thumbnail{object-fit:cover;background:#f3f6f3;border:1px solid #dce3dc;border-radius:6px;width:72px;height:72px;display:block}.asset-placeholder{color:#8d9a90;background:#f3f6f3;border:1px solid #dce3dc;border-radius:6px;justify-content:center;align-items:center;width:72px;height:72px;display:inline-flex}.asset-placeholder svg{width:20px;height:20px}.asset-modal{z-index:40;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.asset-modal-backdrop{background:#0d120fb8;position:absolute;inset:0}.asset-modal-panel{z-index:1;background:#fffdf7;border-radius:8px;gap:16px;width:min(100%,820px);max-height:calc(100vh - 48px);padding:18px;display:grid;position:relative;overflow:auto;box-shadow:0 24px 70px #040b0752}.asset-modal-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.asset-modal-header h2{font-size:1.2rem}.asset-modal-eyebrow{color:#607068;letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:800}.asset-modal-header p{color:#617065;margin:4px 0 0}.asset-modal-image{object-fit:contain;background:#f3f6f3;border-radius:6px;width:100%;max-height:calc(100vh - 240px)}.asset-modal-description{color:#46544c;margin:0;line-height:1.45}.row-actions{flex-wrap:wrap;gap:6px;min-width:230px;display:flex}.row-actions .button,.inline-form .button{min-height:34px;padding:7px 10px;font-size:.78rem}.inline-form{grid-template-columns:minmax(180px,360px) auto;align-items:end;gap:12px;margin:16px 0;display:grid}.session-note-editor{background:#f8faf6;border:1px solid #dce3dc;border-radius:8px;gap:10px;margin:14px 0;padding:14px;display:grid}.session-note-editor .muted{margin:0;font-size:.82rem}.session-form{grid-template-columns:minmax(150px,.95fr) minmax(120px,.65fr) minmax(110px,.7fr) minmax(110px,.7fr) minmax(180px,1fr) auto;align-items:end;gap:10px;margin-top:16px;display:grid}.session-form .button{min-height:47px}@media (width<=720px){.public-shell{align-items:stretch;padding:14px}.public-panel,.form-panel{padding:22px}.form-grid,.check-grid,.inline-form,.session-form{grid-template-columns:1fr}.admin-nav,.admin-heading{flex-direction:column;align-items:flex-start}.admin-nav nav{flex-wrap:wrap}.session-meta{justify-content:flex-start}.mobile-card-table-wrap{overflow:visible}.mobile-card-table,.mobile-card-table tbody,.mobile-card-table tr,.mobile-card-table td{width:100%;display:block}.mobile-card-table thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mobile-card-table tr{background:#fff;border:1px solid #dce3dc;border-radius:8px;margin-bottom:14px;padding:6px 12px}.mobile-card-table tr:last-child{margin-bottom:0}.mobile-card-table td{word-break:break-word;border-bottom:1px solid #edf0ed;grid-template-columns:minmax(82px,.38fr) minmax(0,.62fr);gap:12px;padding:9px 0;display:grid}.mobile-card-table td:last-child{border-bottom:0}.mobile-card-table td:before{content:attr(data-label);color:#4d5b51;text-transform:uppercase;font-size:.75rem;font-weight:800}.mobile-card-table td[colspan]:before{display:none}.mobile-card-table td[colspan]{display:block}.mobile-card-table .button-row,.mobile-card-table .button{width:100%}}
