:root{font-family:Segoe UI,Arial,sans-serif;line-height:1.4;font-weight:400;color:#102a43;background:#f3f6f8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{height:100%}body{margin:0;min-width:320px;min-height:100%;min-height:100svh;min-height:100dvh}#root{min-height:100%;min-height:100svh;min-height:100dvh}button,input,select{font-family:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.45}h1,h2,h3,p{margin-top:0}:root{--ink: #102a43;--muted: #627d98;--line: #d9e2ec;--surface: #ffffff;--soft: #eef3f6;--navy: #123c5a;--blue: #0d6e8a;--amber: #b45309;--red: #a93636;--green: #17745b}#root,.app{min-height:100vh}.app{background:#f3f6f8}.skip-link{position:fixed;top:-60px;left:16px;z-index:100;background:var(--ink);color:#fff;padding:12px 16px;border-radius:8px}.skip-link:focus{top:8px}.app-bar{height:56px;padding:0 20px;display:flex;align-items:center;gap:18px;background:var(--ink);color:#fff;border-bottom:1px solid #214862}.brand{display:flex;align-items:center;gap:9px;min-width:180px;padding:0;border:0;background:none;color:#fff;text-align:left}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#d7eef3;color:var(--ink);font:800 20px Georgia,serif;transform:rotate(-4deg)}.brand strong,.brand small{display:block}.brand strong{letter-spacing:.12em;font-size:14px}.brand small{color:#bcccdc;font-size:10px}.role-switch{display:flex;padding:3px;margin-left:auto;border-radius:9px;background:#0a2237}.role-switch button,.role-switch a{display:inline-flex;min-height:38px;padding:0 18px;align-items:center;border:0;border-radius:7px;color:#c8d7e2;background:transparent;font-weight:700;text-decoration:none}.role-switch button.active,.role-switch a.active{color:var(--ink);background:#fff}.account-badges{display:flex;gap:4px;margin-top:6px}.account-badges a{padding:3px 6px;border:1px solid #55758d;border-radius:6px;color:#dbeaf2;font-size:10px;text-decoration:none}.account-badges a.active{border-color:#fff;background:#fff;color:var(--ink)}.catalog-editor-list{display:grid;gap:8px;margin:12px 0 20px}.catalog-editor-list form{display:grid;grid-template-columns:32px minmax(220px,1fr) auto auto;gap:8px;align-items:center}.catalog-editor-list input{width:100%;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:7px}.role-label{min-width:126px;font-size:13px;color:#bcccdc}.logout-button{min-height:36px;margin-left:auto;padding:0 14px;border:1px solid #55758d;border-radius:7px;background:transparent;color:#fff;font-weight:700}.access-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#e9f1f5,#f8fafb)}.access-card{width:min(440px,100%);padding:32px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 20px 60px #102a431f}.access-card .brand-mark{margin-bottom:20px}.access-card h1{margin:6px 0 10px;font-size:32px;letter-spacing:-.035em}.access-card>p{color:var(--muted)}.access-card form{display:grid;gap:12px;margin-top:24px}.access-card label span{display:block;margin-bottom:5px;font-size:12px;font-weight:800}.access-card input{width:100%;min-height:48px;padding:0 12px;border:1px solid var(--line);border-radius:8px;font-size:18px;letter-spacing:.08em;text-transform:uppercase}.access-error{margin:0;color:var(--red);font-size:13px;font-weight:700}.judge-shell{min-height:100svh;min-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);box-sizing:border-box}.score-context{padding:14px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.event-line{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:28px}.event-line-start{display:flex;align-items:center;gap:12px;min-width:0}.home-link{flex:0 0 auto;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:12px;font-weight:800;white-space:nowrap}.home-link:hover{border-color:#9fb3c8}.event-kicker,.eyebrow{color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.status-strip{display:flex;gap:8px}.status-item{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:3px 9px;border-radius:99px;background:var(--soft);color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}.status-item.is-ok{color:var(--green);background:#e7f5ef}.status-item.is-warn{color:var(--amber);background:#fff3dc}.status-button{border:0}.connection-alert{position:fixed;inset:0 0 auto;z-index:100;display:flex;justify-content:center;align-items:center;gap:12px;min-height:58px;padding:10px 20px;border-bottom:3px solid #d97706;background:#ffdf8a;color:#713f12;box-shadow:0 8px 28px #713f1247;text-align:center}.connection-alert strong{font-size:17px;white-space:nowrap}.connection-alert span{font-size:13px;font-weight:700}.context-main{display:grid;grid-template-columns:minmax(260px,1.5fr) 110px minmax(200px,1fr) minmax(130px,.65fr);gap:22px;align-items:end}.context-main h1{margin:2px 0 0;font-size:clamp(20px,2vw,28px);line-height:1.1;letter-spacing:-.025em}.level-select span,.element-heading span,.progress-block span{display:block;margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:700}.level-select select{width:100%;min-height:44px;padding:0 9px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;font-weight:700}.element-heading strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px}.element-advance-note{margin:4px 0 0;color:var(--blue);font-size:12px;font-weight:700}progress{overflow:hidden;width:100%;height:8px;border:0;border-radius:99px;background:var(--line);accent-color:var(--blue)}.score-board{display:grid;align-content:center;gap:7px;padding:8px 20px;min-height:0;background:#eaf0f3}.scale-header{display:grid;grid-template-columns:minmax(205px,1.35fr) 5fr 1fr 5fr;gap:8px;padding:0 7px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-align:center;text-transform:uppercase}.scale-header span:first-child{text-align:left}.scale-negative{color:var(--red)}.scale-positive{color:var(--green)}.athlete-row{display:grid;grid-template-columns:minmax(205px,1.35fr) 11fr;align-items:center;gap:12px;min-width:0;margin:0;padding:7px;border:1px solid var(--line);border-radius:10px;background:#fff}.athlete-info{display:flex;align-items:center;gap:10px;width:100%;padding:0;min-width:0}.athlete-info>span:last-child{min-width:0}.athlete-info strong,.athlete-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.athlete-info strong{font-size:14px}.athlete-info small{margin-top:2px;color:var(--muted);font-size:10px}.start-number{flex:0 0 36px;display:grid;place-items:center;height:36px;border-radius:50%;background:var(--soft);color:var(--ink);font-weight:800}.goe-grid{display:grid;grid-template-columns:repeat(11,minmax(44px,1fr));gap:5px;min-width:0}.goe-button{min-width:44px;min-height:50px;padding:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:clamp(14px,1.7vw,20px);font-weight:800;transition:transform .12s ease,border .12s ease}.goe-button:active{transform:scale(.94)}.goe-button.negative{color:var(--red);background:#fff8f7}.goe-button.positive{color:var(--green);background:#f4fbf8}.goe-button.neutral{border-color:#9fb3c8}.goe-button.selected{border:3px solid currentColor;box-shadow:inset 0 0 0 2px #fff;color:#fff}.goe-button.negative.selected{background:var(--red)}.goe-button.positive.selected{background:var(--green)}.goe-button.neutral.selected{background:var(--ink)}.score-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;min-height:64px;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:#fff}.score-actions .button{flex:1 1 auto}.button{min-height:44px;padding:0 18px;border-radius:8px;border:1px solid transparent;font-size:14px;font-weight:800}.button.primary{background:var(--navy);color:#fff}.button.primary:hover{background:#0a2f49}.button.secondary{border-color:#9fb3c8;background:#fff;color:var(--ink)}.button.quiet{background:var(--soft);color:var(--ink)}.count-badge{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-left:5px;border-radius:99px;background:#d9e2ec}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#102a43b8}.dialog{width:min(580px,100%);max-height:88vh;overflow:auto;padding:24px;border-radius:14px;background:#fff;box-shadow:0 24px 80px #0000004d}.dialog-header,.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dialog h2,.panel h2{margin:4px 0 0;font-size:23px}.icon-button{min-width:44px;min-height:44px;border:0;border-radius:8px;background:var(--soft);color:var(--ink);font-size:26px}.missing-list{display:grid;gap:6px;max-height:42vh;overflow:auto;margin:18px 0}.missing-list button{display:flex;justify-content:space-between;align-items:center;min-height:56px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);text-align:left}.missing-list strong,.missing-list small{display:block}.missing-list small{color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.invite-summary{display:grid;gap:12px;margin:20px 0}.invite-summary div{display:grid;gap:2px}.invite-summary dt{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.invite-summary dd{margin:0;font-size:17px;font-weight:700}.review-copy{margin:20px 0;color:var(--muted)}.finish-state{padding:25px 15px 10px;text-align:center}.finish-state>span{display:grid;place-items:center;width:62px;height:62px;margin:auto auto 14px;border-radius:50%;background:#dff3ea;color:var(--green);font-size:30px;font-weight:900}.finish-state p{color:var(--muted)}.operator-shell{width:min(1320px,calc(100% - 40px));margin:0 auto;padding:28px 0 50px}.operator-title{display:flex;align-items:end;justify-content:space-between;gap:24px}.operator-title h1{margin:4px 0;font-size:clamp(28px,4vw,42px);letter-spacing:-.04em}.operator-title p{margin:0;color:var(--muted)}.operator-actions{display:flex;gap:8px}.tabs{display:flex;gap:24px;margin:26px 0 18px;border-bottom:1px solid var(--line)}.tabs button{min-height:46px;padding:0 2px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-weight:800}.tabs button.active{border-color:var(--blue);color:var(--ink)}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.panel{padding:20px;border:1px solid var(--line);border-radius:12px;background:#fff}.metric-panel>span,.metric-panel small{display:block;color:var(--muted)}.metric-panel strong{display:block;margin:6px 0;font-size:32px;line-height:1}.metric-panel progress{margin-top:10px}.access-panel{grid-column:span 1;display:flex;align-items:center;gap:16px}.access-panel h2{font-size:25px;letter-spacing:.08em}.access-panel p{color:var(--muted);font-size:13px}.qr{flex:0 0 108px;display:grid;grid-template-columns:repeat(9,1fr);width:108px;height:108px;padding:7px;border:1px solid var(--line);background:#fff}.qr i.filled{background:var(--ink)}.judges-panel{grid-column:span 2}.judge-progress{display:grid;grid-template-columns:38px 1fr 160px;gap:10px;align-items:center;min-height:55px;border-top:1px solid var(--line)}.judge-progress:first-of-type{margin-top:12px}.judge-progress strong,.judge-progress small{display:block}.judge-progress small{color:var(--muted);font-size:11px}.judge-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--soft);font-size:12px;font-weight:800}.schedule-panel{grid-column:1 / -1}.schedule-row{display:grid;grid-template-columns:65px 1fr auto;align-items:center;min-height:58px;border-top:1px solid var(--line)}.schedule-row:first-of-type{margin-top:12px}.schedule-row time{font-weight:800}.schedule-row strong,.schedule-row small{display:block}.schedule-row small{color:var(--muted)}.schedule-row b{padding:5px 9px;border-radius:99px;background:var(--soft);font-size:11px}.groups-layout{display:grid;grid-template-columns:2fr 1fr;gap:14px;align-items:start}.editable-groups{display:grid;gap:10px;margin-top:18px}.group-edit-row{display:grid;grid-template-columns:1.4fr 1fr 110px;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}.group-edit-row label span,.add-form label span{display:block;margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:700}.group-edit-row input,.group-edit-row select,.add-form input,.add-form select{width:100%;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.add-form{display:grid;gap:14px}.add-form h2{margin-bottom:4px}.athletes-panel{grid-column:1 / -1}.file-button{display:inline-flex;align-items:center;cursor:pointer}.file-button input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.import-hint{margin:10px 0;color:var(--muted);font-size:12px}.athlete-entry{display:grid;grid-template-columns:2fr 100px 1.4fr 1fr auto;gap:10px;align-items:end;padding:12px;border-radius:10px;background:var(--soft)}.athlete-entry label span{display:block;margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:700}.athlete-entry input,.athlete-entry select{width:100%;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.operator-notice{margin:8px 0 0;color:var(--blue);font-size:13px;font-weight:700}.operations-metrics{margin:14px 0}.checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;margin-top:18px}.checklist p{display:flex;align-items:center;gap:10px;margin:0;padding:12px;border-radius:9px;background:#fff3dc;color:var(--amber);font-weight:700}.checklist p strong{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fff}.checklist p.is-complete{background:#e7f5ef;color:var(--green)}.compact-staff-form{grid-template-columns:1.3fr 1.3fr 1fr auto;align-items:end;margin-top:18px}.compact-staff-form .button{margin-bottom:0}@media (max-width: 900px){.compact-staff-form{grid-template-columns:1fr}}.table-wrap{overflow-x:auto;margin-top:16px}table{width:100%;border-collapse:collapse}th{padding:10px 12px;background:var(--soft);color:var(--muted);font-size:11px;letter-spacing:.05em;text-align:left;text-transform:uppercase}td{padding:11px 12px;border-bottom:1px solid var(--line)}td small{display:block;color:var(--muted)}.numeric{text-align:right;font-variant-numeric:tabular-nums}.place{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--soft);font-weight:800}.result-status{display:inline-flex;align-items:center;min-height:28px;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:800}.result-status.passed{color:var(--green);background:#e7f5ef}.result-status.failed{color:var(--red);background:#fff0ef}@media (max-width: 900px){.app-bar{padding:0 10px}.brand{min-width:44px}.brand>span:last-child,.role-label{display:none}.score-context,.score-board,.score-actions{padding-left:10px;padding-right:10px}.context-main{grid-template-columns:minmax(210px,1fr) 88px minmax(150px,.8fr);gap:10px}.progress-block{display:none}.athlete-row{grid-template-columns:185px 11fr;gap:7px}.scale-header{grid-template-columns:185px 5fr 1fr 5fr}.goe-grid{gap:3px}.goe-button{min-width:40px;min-height:46px}.dashboard-grid{grid-template-columns:repeat(2,1fr)}.metric-panel:last-of-type{grid-column:span 2}.access-panel,.judges-panel{grid-column:span 1}}@media (max-height: 600px) and (orientation: landscape){.app-bar{height:38px}.brand-mark{width:30px;height:30px}.role-switch button{min-height:32px}.judge-shell{height:100svh;height:100dvh;min-height:0;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.score-context{padding-top:max(10px,env(safe-area-inset-top,0px));padding-bottom:10px;padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px));overflow:visible}.event-line{min-height:28px;margin-bottom:6px}.event-kicker,.eyebrow{font-size:11px;line-height:1.25}.status-item{min-height:28px;padding:3px 9px;font-size:12px}.context-main{gap:10px 14px;align-items:end;grid-template-columns:minmax(180px,1.4fr) 72px minmax(160px,1fr) minmax(110px,.7fr)}.context-main h1{margin:2px 0 0;font-size:18px;line-height:1.25;overflow:visible}.level-select span,.element-heading span,.progress-block span{margin-bottom:2px;line-height:1.2}.level-select strong,.element-heading strong{line-height:1.25;overflow:visible}.level-select select{min-height:36px}.element-heading strong{font-size:15px;white-space:normal}.score-board{align-content:stretch;gap:4px;padding-top:4px;padding-bottom:4px;overflow:auto;-webkit-overflow-scrolling:touch}.athlete-row{min-height:0;padding:4px 5px}.goe-button{min-height:44px}.score-actions{min-height:60px;padding-top:10px;padding-bottom:max(10px,env(safe-area-inset-bottom,0px))}}@media (max-width: 700px) and (orientation: portrait){.judge-shell{display:block}.context-main{grid-template-columns:1fr 100px}.element-heading{grid-column:1 / -1}.score-board{overflow-x:auto;align-content:start}.athlete-row{min-width:850px}.scale-header{display:none}.score-actions{position:sticky;bottom:0}.button{padding:0 10px}.operator-title{align-items:start;flex-direction:column}.dashboard-grid,.groups-layout,.athlete-entry{grid-template-columns:1fr}.metric-panel,.access-panel,.judges-panel,.schedule-panel,.athletes-panel{grid-column:1}.operator-shell{width:min(100% - 24px,1320px)}.tabs{overflow-x:auto}}@media print{.app-bar,.tabs,.operator-actions,.add-form{display:none!important}.operator-shell{width:100%;padding:0}.panel{border:0;padding:0}.result-panel{display:block}body{background:#fff}}.judge-shell{min-height:100svh;min-height:100dvh}.route-loading{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.link-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.muted{color:var(--muted)}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(340px,1fr) minmax(480px,.72fr);background:#f7f5f1}.login-brand{display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,8vw,120px);background:var(--ink);color:#fff}.login-brand .brand-mark{width:54px;height:54px;margin-bottom:44px;font-size:30px}.login-brand .eyebrow{color:#8dd4df}.login-brand h1{max-width:720px;margin:16px 0 24px;font:700 clamp(42px,5vw,72px)/1.02 Georgia,serif;letter-spacing:-.045em}.login-brand p{max-width:560px;color:#bcccdc;font-size:19px}.login-card{align-self:center;width:min(460px,calc(100% - 48px));margin:auto;padding:40px;border:1px solid var(--line);border-radius:18px;background:#fff}.login-card h2{margin:6px 0;font-size:31px}.login-card>div:first-child p{color:var(--muted)}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:24px 0;padding:4px;border-radius:10px;background:var(--soft)}.segmented button{min-height:44px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-weight:800}.segmented button[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 1px 5px #102a431a}.login-card form{display:grid;gap:16px}.login-card label span,.form-grid label span{display:block;margin-bottom:6px;font-size:13px;font-weight:800}.login-card input,.form-grid input,.form-grid select{width:100%;min-height:48px;padding:0 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;font-size:16px}.demo-help{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.demo-help summary{color:var(--ink);cursor:pointer;font-weight:800}.demo-help p{margin:10px 0 0}.admin-app{min-height:100vh;display:grid;grid-template-columns:248px 1fr;background:#f4f6f7}.admin-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:22px 14px 14px;background:var(--ink);color:#fff}.admin-brand{display:flex;align-items:center;gap:11px;min-height:52px;padding:0 10px 20px;border-bottom:1px solid #29475d}.admin-brand strong,.admin-brand small{display:block}.admin-brand strong{font-size:15px;letter-spacing:.14em}.admin-brand small{color:#9fb3c8;font-size:10px}.admin-sidebar nav{display:grid;gap:3px;margin-top:18px;overflow-y:auto}.admin-sidebar nav a{display:grid;grid-template-columns:28px 1fr;align-items:center;min-height:44px;padding:0 12px;border-radius:8px;color:#c8d7e2;text-decoration:none;font-size:14px;font-weight:700}.admin-sidebar nav a:hover{background:#183d57;color:#fff}.admin-sidebar nav a.active{background:#dff4f2;color:var(--ink)}.admin-sidebar nav a>span{color:inherit;font-size:18px}.sidebar-user{display:grid;grid-template-columns:38px 1fr 34px;align-items:center;gap:9px;margin-top:auto;padding:14px 8px 2px;border-top:1px solid #29475d}.sidebar-user .avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#dff4f2;color:var(--ink);font-weight:900}.sidebar-user strong,.sidebar-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user strong{font-size:12px}.sidebar-user small{color:#9fb3c8;font-size:10px}.sidebar-user button{min-height:34px;border:0;border-radius:6px;background:transparent;color:#c8d7e2;font-size:18px}.admin-stage{min-width:0}.admin-topbar{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 32px;border-bottom:1px solid var(--line);background:#fff;color:var(--green);font-size:12px}.admin-topbar strong{color:var(--amber)}.admin-content{width:min(1260px,calc(100% - 64px));margin:0 auto;padding:34px 0 60px}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.page-heading h1{margin:5px 0 0;font:700 clamp(32px,4vw,48px)/1.05 Georgia,serif;letter-spacing:-.035em}.event-card{display:flex;align-items:center;justify-content:space-between;gap:24px}.event-card h2{margin:16px 0 6px}.event-card p{margin:0;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;align-items:start}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.check-list{display:grid;gap:14px;padding:0;color:var(--muted);list-style:none}.upload-zone{display:grid;place-items:center;min-height:190px;padding:30px;border:2px dashed #9fb3c8;border-radius:12px;background:#f8fbfc;text-align:center;cursor:pointer}.upload-zone strong{font-size:20px}.upload-zone span{margin:6px 0 18px;color:var(--muted)}.upload-zone input{max-width:270px}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;font-weight:700}.group-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.group-cards.is-moving{opacity:.92;pointer-events:none}.group-cards .panel-heading p{margin:4px 0 0;color:var(--muted)}.group-card{min-height:180px;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.group-card.is-drop-target{border-color:var(--green);background:#f3fbf7;box-shadow:0 0 0 2px #17745b1f}.group-card.is-drop-blocked{opacity:.55}.group-athletes{display:grid;gap:6px;margin:14px 0 0;padding:0;list-style:none}.group-athletes li{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#f8fafb;cursor:grab;-webkit-user-select:none;user-select:none}.group-athletes li small{color:#9fb3c8;font-size:12px;letter-spacing:.08em}.group-athletes li:active{cursor:grabbing}.group-athletes li.is-dragging{opacity:.45;border-style:dashed}.group-empty{margin:14px 0 0;color:var(--muted);font-size:13px}.results-tree{display:grid;gap:12px}.results-event{padding:0;overflow:hidden}.results-event-toggle,.results-athlete-toggle{width:100%;display:grid;grid-template-columns:24px 1fr auto auto;gap:12px;align-items:center;padding:16px 18px;border:0;background:transparent;text-align:left;cursor:pointer}.results-event-toggle strong,.results-athlete-toggle strong{display:block}.results-event-toggle small,.results-athlete-toggle small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.results-caret{color:var(--muted);font-size:16px}.results-event-meta,.results-athlete-scores{color:var(--muted);font-size:12px;font-weight:700;text-align:right}.results-athlete-scores strong{display:block;color:var(--ink);font-size:18px;font-variant-numeric:tabular-nums}.results-event-body{border-top:1px solid var(--line);padding:0 10px 12px}.results-event-actions{display:flex;justify-content:flex-end;padding:12px 8px 4px}.results-athlete{margin-top:8px;border:1px solid var(--line);border-radius:10px;background:#f8fafb}.results-athlete.is-open{background:#fff}.results-elements{padding:0 14px 12px 38px}.results-panel-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f4f8fa;font-size:13px}.results-panel-legend span{display:grid;gap:2px;min-width:140px}.results-panel-legend strong{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.results-panel-legend.is-compact{margin:0 0 8px;padding:8px 0;border:0;border-radius:0;background:transparent}.results-elements-head,.results-element-row{display:grid;grid-template-columns:minmax(160px,1.4fr) 88px repeat(3,minmax(64px,72px));gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:13px}.results-elements-head{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border-top:0}.results-element-row strong,.results-element-row small{font-variant-numeric:tabular-nums}.results-element-row.is-total{margin-top:4px;border-top:2px solid var(--line);font-weight:800}@media (max-width: 700px){.results-event-toggle,.results-athlete-toggle{grid-template-columns:20px 1fr}.results-event-meta,.results-athlete-scores,.result-status{grid-column:2;text-align:left}.results-elements{padding-left:14px;overflow-x:auto}.results-elements-head,.results-element-row{grid-template-columns:minmax(140px,1.2fr) 64px repeat(3,56px);min-width:420px}}.member-list{display:grid;gap:4px;margin:16px 0 0;padding:0;list-style:none}.member-list li{display:grid;grid-template-columns:32px 1fr;align-items:center;min-height:42px;border-top:1px solid var(--line);font-size:13px}.member-list li span{color:var(--muted);font-variant-numeric:tabular-nums}.archive-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-top:20px;padding:14px;border-radius:9px;background:var(--soft)}.archive-row small{color:var(--muted)}.empty-state{max-width:560px;margin:44px auto;text-align:center}.empty-state>span{display:grid;place-items:center;width:64px;height:64px;margin:auto auto 18px;border-radius:50%;background:var(--soft);color:var(--blue);font-size:32px}.empty-state p{color:var(--muted)}.audit-list article{display:grid;grid-template-columns:150px 1fr auto;gap:20px;align-items:center;min-height:68px;border-bottom:1px solid var(--line)}.audit-list time,.audit-list small{color:var(--muted);font-size:12px}.audit-list strong,.audit-list small{display:block}.audit-list code{color:var(--muted)}@media (max-width: 900px){.login-shell{grid-template-columns:1fr}.login-brand{display:none}.admin-app{grid-template-columns:78px 1fr}.admin-sidebar{padding-inline:10px}.admin-brand>span:last-child,.admin-sidebar nav a:not(.active){font-size:0}.admin-sidebar nav a{grid-template-columns:1fr;place-items:center;padding:0;font-size:0}.admin-sidebar nav a.active{font-size:0}.admin-sidebar nav a>span{font-size:20px}.sidebar-user{grid-template-columns:1fr;place-items:center}.sidebar-user>span:nth-child(2),.sidebar-user button{display:none}.admin-content{width:min(100% - 32px,1260px)}.group-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width: 650px){.login-card{width:min(100% - 24px,460px);padding:24px}.admin-app{display:block;padding-bottom:68px}.admin-sidebar{position:fixed;inset:auto 0 0;z-index:30;width:100%;height:64px;padding:7px 10px}.admin-brand,.sidebar-user{display:none}.admin-sidebar nav{grid-auto-flow:column;grid-auto-columns:58px;overflow-x:auto;margin:0}.admin-sidebar nav a{min-height:50px}.admin-topbar{padding:0 16px}.admin-topbar strong{display:none}.admin-content{width:min(100% - 24px,1260px);padding-top:24px}.page-heading,.event-card{align-items:flex-start;flex-direction:column}.page-heading .operator-actions{width:100%;overflow-x:auto}.detail-grid,.form-grid,.group-cards{grid-template-columns:1fr}.archive-row,.audit-list article{grid-template-columns:1fr;gap:6px;padding-block:12px}}@media (max-height: 600px) and (orientation: landscape){.judge-shell{height:100svh;height:100dvh;grid-template-rows:auto minmax(0,1fr) auto}}.judge-home{min-height:100vh;background:#f2f5f6}.judge-home-header{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:max(12px,env(safe-area-inset-top,0px)) clamp(20px,4vw,56px) 12px;background:var(--ink);color:#fff}.judge-home-header .admin-brand{min-height:auto;padding:0;border:0}.judge-identity{display:flex;align-items:center;gap:14px}.judge-identity>span:nth-child(2) strong,.judge-identity>span:nth-child(2) small{display:block}.judge-identity>span:nth-child(2) small{color:#9fb3c8;font-size:11px}.judge-home-content{width:min(1120px,calc(100% - 40px));margin:auto;padding:28px 0 64px}.assignment-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.assignment-intro h1{margin:6px 0;font:700 clamp(38px,5vw,58px)/1 Georgia,serif;letter-spacing:-.045em}.assignment-intro p{margin:0;color:var(--muted)}.completion-banner{display:grid;grid-template-columns:auto 1fr;gap:5px 18px;margin-bottom:18px;padding:16px 18px;border-left:4px solid var(--amber);border-radius:8px;background:#fff6df;color:#754b0d}.completion-banner:before{content:"◷";grid-row:span 2;font-size:24px}.completion-banner span{font-size:13px}.completion-banner.is-submitted{border-color:var(--green);background:#e7f5ef;color:#115844}.completion-banner.is-submitted:before{content:"✓"}.assignment-list{display:grid;gap:10px}.assignment-card{display:grid;grid-template-columns:100px 1fr minmax(170px,auto);align-items:center;gap:24px;min-height:112px;padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:#fff;transition:border-color .16s ease,transform .16s ease,background .16s ease}.assignment-card:hover{border-color:#9fb3c8}.assignment-card.is-highlighted{border-color:var(--green);box-shadow:0 0 0 2px #17745b1a}.assignment-card.is-finished{border-color:#8dcfb5;background:linear-gradient(180deg,#f3fbf7,#e7f5ef)}.assignment-card.is-finished:hover{border-color:var(--green)}.assignment-card.is-finished time{border-right-color:#b7e0cd;color:#115844}.assignment-card time{align-self:stretch;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--line)}.assignment-card time strong{font:700 25px Georgia,serif}.assignment-card time small{margin-top:5px;color:var(--muted);font-size:10px}.assignment-main h2{margin:5px 0 3px;font-size:20px}.assignment-main p,.assignment-progress{margin:0;color:var(--muted);font-size:13px}.assignment-card.is-finished .assignment-main h2{color:#0f3d31}.assignment-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px 12px;margin:10px 0 0;padding:0;list-style:none}.assignment-results li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-height:34px;padding:6px 10px;border-radius:8px;background:#ffffffb8;color:#115844;font-size:13px}.assignment-results strong{font-weight:800}.assignment-results span{font-variant-numeric:tabular-nums;font-weight:800}.assignment-status{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.assignment-status:before{content:"";width:7px;height:7px;border-radius:50%;background:#9fb3c8}.assignment-status.status-in_progress{color:var(--blue)}.assignment-status.status-in_progress:before{background:var(--blue)}.assignment-status.status-awaiting_sync,.assignment-status.status-submitted{color:var(--green)}.assignment-status.status-awaiting_sync:before,.assignment-status.status-submitted:before{background:var(--green)}.assignment-action{display:grid;justify-items:end;gap:8px}.lock-note{color:var(--muted);font-size:11px;font-weight:700}.assignment-card.is-finished .lock-note{color:#115844}.protocol-athletes{display:grid;grid-template-columns:1fr 1fr;gap:6px}.protocol-athletes>span{padding:10px;border-radius:8px;background:var(--soft)}.protocol-athletes strong,.protocol-athletes small{display:block}.protocol-athletes small{margin-top:3px;color:var(--muted)}.locked-protocol{min-height:100vh;display:grid;place-items:center;padding:24px;background:#eef3f6}.locked-protocol .panel{width:min(560px,100%);text-align:center}.locked-protocol .panel>span{display:grid;place-items:center;width:64px;height:64px;margin:auto auto 18px;border-radius:50%;background:#e7f5ef;color:var(--green);font-size:28px}.locked-protocol p{color:var(--muted)}@media (max-width: 700px){.judge-home-header{min-height:84px;padding:max(14px,env(safe-area-inset-top,0px)) 14px 14px;align-items:flex-start;flex-wrap:wrap;gap:10px 16px}.judge-identity{flex:1 1 auto;justify-content:flex-end;flex-wrap:wrap;gap:8px}.judge-identity>span:nth-child(2){display:block;min-width:0}.judge-identity>span:nth-child(2) strong,.judge-identity>span:nth-child(2) small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46vw}.assignment-intro{align-items:flex-start;flex-direction:column}.assignment-card{grid-template-columns:76px 1fr;gap:14px}.assignment-action{grid-column:1 / -1;justify-items:stretch}.lock-note{text-align:right}.protocol-athletes{grid-template-columns:1fr}}
