
:root{--ink:#263e50;--muted:#7d8990;--teal:#477a98;--line:#e4e7e7;--paper:#f8f7f2;--green:#e2edf3}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 'Segoe UI','Microsoft YaHei',sans-serif}button,input,select,textarea{font:inherit}button,a,label{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit}aside{position:fixed;inset:0 auto 0 0;width:230px;padding:35px 24px;background:#fffefa;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{font-size:40px;font-weight:750;letter-spacing:-2px}.brand-icon{font-size:48px;color:var(--teal);margin-right:12px}.brand-dot{color:#a8c4d5}.aside-label{font-size:10px;letter-spacing:2.3px;color:var(--muted);margin:0 0 44px 4px}nav a{display:flex;align-items:center;gap:14px;padding:12px 16px;margin:7px 0;border-radius:10px;color:#78858d}nav a.active{background:#e8f0f5;color:#3c647e;font-weight:600}nav a span{width:22px;font-size:19px}.aside-bottom{margin-top:auto;color:var(--muted);font-size:12px}.aside-bottom button,.restore{display:block;margin-top:13px;cursor:pointer}.aside-bottom small{display:block;font-size:10px;margin-top:26px}.status-dot{display:inline-block;width:6px;height:6px;background:#6c9c63;border-radius:50%;margin-right:7px}main{margin-left:230px;padding:0 48px;max-width:1800px}header{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.breadcrumb{color:#96a2ab;font-size:11px;letter-spacing:1.5px;margin-right:8px}.btn{padding:9px 16px;border:1px solid var(--line);border-radius:8px;background:#fffefa;font-size:12px;display:inline-block}.btn:hover{border-color:#88aabd}.primary{background:var(--teal);color:white;border-color:var(--teal)}.text-btn{color:var(--teal);font-size:12px}.eyebrow{font-size:10px;letter-spacing:2px;color:#7995a5;font-weight:600}.page-title{font-size:30px;font-weight:600;letter-spacing:-1px;margin:8px 0}p.sub{color:var(--muted);margin:6px 0 26px}.hero{position:relative;overflow:hidden;background:#e8f0f4;border-radius:18px;padding:35px 38px;margin:28px 0;min-height:230px}.hero h1{font-size:34px;line-height:1.5;font-weight:500;letter-spacing:1px;margin:15px 0 8px;position:relative;z-index:1}.hero p{color:#708694;font-size:12px;position:relative;z-index:1}.hero svg{position:absolute;right:0;bottom:0;width:50%;height:100%;opacity:.8}.hero .tag{position:absolute;right:28px;top:24px;background:#ffffff80}.tag{display:inline-block;font-size:10px;border-radius:5px;padding:3px 8px;background:#edf2f5;color:#6d8798}.grid{display:grid;grid-template-columns:1.25fr 1fr;gap:22px}.card{background:#fffefa;border:1px solid var(--line);border-radius:13px;padding:24px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.section-head h2{font-size:17px;font-weight:600;margin:0}.empty{padding:25px 0;color:var(--muted);font-size:13px}.empty strong{display:block;color:#607987;font-weight:500;margin-bottom:5px}.thin-row{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #eef0ee;padding:14px 0}.thin-row:last-child{padding-bottom:0}.thin-row .title{font-size:13px}.muted{color:var(--muted)}small{font-size:11px}.rank{font-size:22px;color:var(--teal);font-weight:600}.lower{margin-top:22px}.page-intro{padding-top:30px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:20px 0}.pill{border:1px solid var(--line);padding:6px 12px;border-radius:30px;font-size:12px;background:#fffefa}.pill.active{background:var(--ink);color:#fff}.table-wrap{overflow-x:auto;background:#fffefa;border:1px solid var(--line);border-radius:12px;max-height:none}table{border-collapse:separate;border-spacing:5px;width:100%;font-size:12px}th{font-weight:500;color:#82909a;padding:9px;position:sticky;top:0;background:#fffefa;z-index:2}td{height:63px;text-align:center;min-width:55px}.contest-name{min-width:235px;max-width:235px;text-align:left;padding:12px;position:sticky;left:0;background:#fffefa;z-index:3;border-radius:7px}.contest-name a{display:block;font-weight:600;line-height:1.45;font-size:12px}.contest-name small{display:block;margin-top:5px;color:var(--muted)}.pcell{position:relative;border-radius:7px;font-variant-numeric:tabular-nums}.pcell>.cell-open{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:12px 4px 5px;font-size:12px}.pcell small{font-size:9px;opacity:.75}.pcell .star{position:absolute;left:4px;top:0;color:#a77b17;font-size:12px}.pcell .check{position:absolute;right:3px;top:2px;color:#28724c;background:#fffefa;border-radius:3px;font-size:9px;padding:0 2px}.pcell .more{position:absolute;right:1px;bottom:0;font-size:10px;opacity:0}.pcell:hover .more,.pcell:focus-within .more{opacity:1}.na{background:#f2f3f1;color:#bfc6ca}.legend{display:flex;gap:15px;flex-wrap:wrap;font-size:11px;color:#7e8b94;margin:16px 0}.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px}.queue-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.task{background:white;border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:16px}.task h3{font-size:14px;margin:6px 0}.task p{font-size:12px;color:#75818a}.task.done{opacity:.6}.task-actions{display:flex;gap:10px;align-items:center;font-size:11px}.priority{font-size:10px;color:#a66b41}.post{margin-bottom:16px}.post h3{margin:7px 0;font-size:18px}.post p{white-space:pre-wrap}.event{display:flex;gap:20px;align-items:center;margin-bottom:12px}.event-date{min-width:90px;padding:16px;border-radius:9px;background:#eaf1f6;text-align:center}.event-date b{font-size:23px;display:block}.event h3{margin:0;font-size:16px}footer{border-top:1px solid var(--line);margin:40px 0 0;padding:20px 0;color:#97a1a8;font-size:11px;display:flex;justify-content:space-between}footer span{font-size:9px;letter-spacing:1px}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;max-width:640px;width:calc(100% - 32px);max-height:88vh;color:var(--ink);background:#fffefa}dialog::backdrop{background:#263e5044;backdrop-filter:blur(3px)}dialog h2{margin:0 0 15px;font-size:21px}label.field{display:block;margin:13px 0;font-size:12px;color:#758591}input,select,textarea{display:block;width:100%;border:1px solid #dbe2e6;border-radius:7px;background:#fff;padding:10px;color:var(--ink);margin-top:5px}textarea{min-height:110px;resize:vertical}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.info{padding:12px;background:#edf3f6;border-radius:8px;font-size:12px;white-space:pre-line}.split{display:grid;grid-template-columns:1fr 1fr;gap:15px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#35596e;color:white;border-radius:8px;padding:12px 22px;z-index:20;display:none}.review-text{white-space:pre-wrap}.week{display:flex;gap:6px;margin-top:18px}.week span{width:23px;height:23px;background:#e9eff3;border-radius:4px}.week span.on{background:#95b8cc}.save-error{color:#b64535}.link-note{font-size:11px;color:#9b8970}@media(max-width:1100px){main{padding:0 24px;margin-left:190px}aside{width:190px;padding:25px 18px}.queue-grid{grid-template-columns:1fr}.hero svg{opacity:.35}}@media(max-width:720px){aside{position:relative;width:100%;padding:15px 20px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:27px}.brand-icon{font-size:30px}.aside-label,.aside-bottom{display:none}nav{display:flex;overflow:auto}nav a{white-space:nowrap;padding:8px;margin:0;font-size:12px}nav a span{display:none}main{margin:0;padding:0 16px}header{height:68px}.grid{grid-template-columns:1fr}.hero{padding:25px;min-height:210px}.hero h1{font-size:27px}.hero .tag{display:none}.split{grid-template-columns:1fr}footer span{display:none}.pcell .more{opacity:1}}

[hidden]{display:none!important}

.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.cal-day{min-height:90px;background:#f2f5f7;border-radius:7px;padding:9px;overflow:hidden}.cal-day b{display:block;font-size:19px;font-weight:500}.cal-day small{color:#89959e}.cal-day.has-event{background:#e0ecf4}.cal-day button{display:block;width:100%;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;padding:3px 0;color:#47718c}@media(max-width:720px){.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.cal-day{padding:4px;min-height:65px}.cal-day button{font-size:9px}}

/* The home archive uses the same interactive table as the full archive. */
.recent-training{padding:24px 18px}.recent-training>.section-head{padding:0 6px}.recent-training .table-wrap{border:0;border-radius:8px;max-height:none}.recent-hint{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 6px 0;color:var(--muted);font-size:11px}.grid>*{min-width:0}@media(max-width:720px){.recent-training{padding:18px 10px}.recent-hint span{display:none}.recent-training .contest-name{min-width:170px;max-width:170px}}

.form-error{color:#9b493b;background:#fff1e9;border:1px solid #edcbbf;border-radius:8px;padding:12px 14px;font-size:12px;margin:16px 0 0}.form-error:focus{outline:2px solid #c88a73;outline-offset:2px}

/* Team markers are visible at a glance, and never block cell actions. */
.pcell .star{left:2px;top:-3px;font-size:26px;line-height:1.2;color:#e6ac16;text-shadow:0 1px 1px #9d6a26,0 0 3px #fff;z-index:2;pointer-events:none}
.pcell .check{inset:4px;right:4px;top:4px;display:flex;align-items:center;justify-content:center;background:none;padding:0;border-radius:0;pointer-events:none;z-index:1}
.pcell .check svg{width:100%;height:100%;max-height:68px;fill:none;stroke:#21864a;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px #fff)}
.pcell:has(.check)>.cell-open{opacity:.38}.pcell:has(.check):hover>a{opacity:1}.pcell:has(.check):hover .check{opacity:.22}.pcell .more{z-index:3}
.account-button{text-align:left;padding:12px 0!important;font-size:14px;color:var(--ink);width:100%}.account-button small{margin:3px 0 12px!important;font-size:10px!important;overflow-wrap:anywhere}.member-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.member-list p{overflow-wrap:anywhere}.signed-out nav,.signed-out .aside-bottom,.signed-out #import{display:none}.login-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;min-height:70vh;max-width:920px;margin:auto}.login-welcome h1{font-weight:500;font-size:38px;line-height:1.6}.login-welcome p{color:var(--muted)}.login-layout .card{padding:30px}.remember{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:20px 0}.remember input{width:auto;margin:0}.login-layout .primary{width:100%;margin-top:12px}@media(max-width:720px){.login-layout{grid-template-columns:1fr;gap:16px;padding:24px 0}.login-welcome h1{font-size:28px;margin:10px 0}.aside-bottom:has(#account){display:block}.aside-bottom>button,.aside-bottom>.restore,.aside-bottom>small{display:none}.account-button{padding:0!important}.account-button small{margin:0!important}.member-list{grid-template-columns:1fr}}

/* Three compact, live layouts. Navigation becomes a quiet horizontal bar. */
body{--page-width:1480px}aside{position:relative;inset:auto;width:100%;height:62px;padding:0 max(24px,calc((100vw - var(--page-width))/2));flex-direction:row;align-items:center;gap:28px;border-right:0;border-bottom:1px solid var(--line);z-index:6}.brand{font-size:26px;white-space:nowrap;letter-spacing:-1px}.brand-icon{font-size:29px;margin-right:4px}.aside-label{display:none}nav{display:flex;gap:3px;flex:1}nav a{padding:7px 12px;margin:0;font-size:12px;white-space:nowrap}nav a span{display:none}.aside-bottom{position:relative;margin:0;white-space:nowrap}.aside-bottom summary{cursor:pointer;list-style:none;font-size:12px;color:var(--muted)}.account-menu{position:absolute;right:0;top:32px;width:245px;background:#fffefa;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 35px #263e5015;padding:16px 20px;white-space:normal}.account-menu>button,.account-menu>.restore{display:block;margin-top:12px}.account-menu>small{display:block;margin-top:20px}.account-menu .account-button{margin-top:0!important}.account-menu .status-dot{margin-top:10px}main{margin:0 auto;padding:0 24px;max-width:var(--page-width)}header{height:50px;border-bottom:0;gap:16px}.breadcrumb{font-size:9px}#page-name{font-size:12px}.layout-picker{display:flex;gap:3px;margin-left:auto;padding:3px;background:#edeFEB;border-radius:7px}.layout-choice{font-size:11px;padding:4px 12px;border-radius:5px;color:var(--muted)}.layout-choice.selected{background:#fffefa;color:var(--ink);box-shadow:0 1px 3px #263e5010}header .btn{font-size:11px;padding:6px 12px}.hero{margin:4px 0 18px;padding:22px 28px;min-height:0;height:174px;border-radius:12px}.hero h1{font-size:27px;line-height:1.2;margin:10px 0 7px;letter-spacing:.5px}.hero h1 br{display:none}.hero p{margin:0 0 16px;font-size:11px}.hero .eyebrow{font-size:9px;letter-spacing:2px}.hero .tag{top:20px;right:24px;font-size:9px}.hero svg{width:43%;opacity:.55}.hero-actions{position:relative;z-index:2;display:flex;align-items:center;gap:9px}.hero-actions .btn{font-size:11px;padding:6px 13px;background:#fffefaad;border-color:#ffffff70}.hero-actions .primary{background:#477a98;color:white;border-color:#477a98}.hero-link{font-size:11px;color:var(--teal);padding:5px 8px}.recent-training{padding:18px 14px}.recent-training>.section-head{margin-bottom:8px}.section-head h2{font-size:15px}.recent-hint{padding-top:8px;font-size:10px}.lower{margin-top:18px}.grid{gap:18px}.card{border-radius:11px}.hero-actions .btn:hover{background:#fffefa;color:var(--ink)}.hero-actions .primary:hover{background:#365f78;color:white}.signed-out aside{justify-content:flex-start}.signed-out .layout-picker{display:none}.signed-out header{height:30px}.signed-out .login-layout{min-height:70vh}
/* 02: a short start line, with a stronger blue accent. */
body[data-layout="start"]{--paper:#f5f6f7;--ink:#203a50;--teal:#316c9b}body[data-layout="start"] .hero{background:#24485f;color:#fffefa;height:145px;padding:19px 28px}body[data-layout="start"] .hero h1{font-size:29px;margin-top:6px}body[data-layout="start"] .hero .eyebrow,body[data-layout="start"] .hero p{color:#c1d5e1}body[data-layout="start"] .hero .tag{background:#ffffff14;color:#d1e1eb}body[data-layout="start"] .hero svg{opacity:.18;width:48%}body[data-layout="start"] .hero p{margin-bottom:12px}body[data-layout="start"] .hero-actions .primary{background:#f1dfac;color:#294458;border-color:#f1dfac}body[data-layout="start"] .hero-actions .btn:not(.primary){background:#ffffff0d;color:#e1ebf0;border-color:#ffffff25}body[data-layout="start"] .hero-link{color:#d0e2ee}body[data-layout="start"] .recent-training{border-top:3px solid #88aabb}body[data-layout="start"] nav a.active{background:#24485f;color:#fff}
/* 03: paper, a fine rule, and more room for the actual work. */
body[data-layout="paper"]{--paper:#fbfaf6;--ink:#343e44;--teal:#526e7e;--line:#e8e6df}body[data-layout="paper"] aside{background:transparent}body[data-layout="paper"] .hero{height:125px;background:transparent;padding:13px 0 17px;border-radius:0;border-bottom:1px solid #d9dfe0;margin-top:0}body[data-layout="paper"] .hero svg,body[data-layout="paper"] .hero>.eyebrow,body[data-layout="paper"] .hero>.tag{display:none}body[data-layout="paper"] .hero h1{font-size:28px;margin:0 0 7px;font-family:Georgia,'SimSun',serif;letter-spacing:2px}body[data-layout="paper"] .hero p{margin-bottom:13px}body[data-layout="paper"] .hero-actions .btn{padding:4px 12px;border-color:#e3e5df;background:transparent}body[data-layout="paper"] .hero-actions .primary{color:var(--ink);border-color:#a8b9c2}body[data-layout="paper"] .card{background:#fffefa;border-radius:5px}body[data-layout="paper"] nav a.active{background:#eeeDE5;color:#344b58}body[data-layout="paper"] .recent-training{padding:14px 10px}
@media(min-width:1100px){body[data-layout="paper"] .hero-actions{position:absolute;right:0;top:35px}body[data-layout="paper"] .hero{height:98px;padding-top:12px}body[data-layout="paper"] .hero p{margin:0}}
@media(max-width:1000px){aside{gap:16px;padding:0 20px}nav{gap:0}nav a{padding:7px 9px;font-size:11px}.hero svg{opacity:.4}}
@media(max-width:720px){aside{height:auto;min-height:54px;padding:10px 16px;gap:12px;flex-wrap:wrap}.brand{font-size:23px}nav{order:3;flex-basis:100%;overflow:auto}nav a{flex:1;text-align:center;justify-content:center;padding:6px 8px}.aside-bottom{margin-left:auto;display:block}.account-menu{top:28px}.aside-bottom>summary{font-size:11px}main{padding:0 14px}header{height:46px;gap:8px}header>div:first-child{display:none}.layout-picker{margin-left:0;margin-right:auto}.layout-choice{padding:4px 9px}.hero{height:170px;padding:18px}.hero h1,body[data-layout="start"] .hero h1,body[data-layout="paper"] .hero h1{font-size:23px}.hero-actions{gap:6px;flex-wrap:wrap}.hero-actions .btn{padding:5px 8px;font-size:10px}.hero-link{padding:4px;font-size:10px}.hero .tag{display:none}.hero svg{width:48%;opacity:.25}body[data-layout="start"] .hero{height:166px;padding:18px}body[data-layout="paper"] .hero{height:136px}.recent-training{padding:14px 9px}.recent-training .contest-name{min-width:165px;max-width:165px}.account-menu>button,.account-menu>.restore,.account-menu>small{display:block}.signed-out nav,.signed-out .aside-bottom{display:none}}

body[data-layout='start'] .hero>.eyebrow{display:none}body[data-layout='start'] .hero{padding-top:16px;padding-bottom:16px}body[data-layout='start'] .hero h1{margin-top:0}


.pcell .more{opacity:.8;bottom:2px;right:3px;padding:1px 4px;font-size:9px;border-radius:3px;background:#fffefaab}.pcell>.cell-open{padding-bottom:18px}.pcell .more:hover{opacity:1;background:#fffefa}.cell-meta{font-size:12px;color:var(--muted);margin:0 0 14px}.cell-evidence{margin:12px 0}.cell-evidence summary{font-size:12px;cursor:pointer;color:var(--teal)}.cell-assignment{border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0}.cell-assignment h3{margin:0;font-size:14px}.cell-assignment textarea{min-height:65px}.cell-new{padding-top:8px;border-top:1px solid var(--line)}.cell-assignment details summary{font-size:12px;color:var(--teal);cursor:pointer}.actions{position:sticky;bottom:-28px;background:#fffefa;padding:14px 0;margin-top:10px;z-index:4}
/* Optional experiments live away from the home page. */
.lab-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0}.lab-tab{text-align:left;background:#fffefa;border:1px solid var(--line);border-radius:12px;padding:18px 20px;display:grid;grid-template-columns:30px 1fr;gap:3px 10px}.lab-tab small{grid-row:span 2;color:#9caeb7;font-size:18px}.lab-tab strong{font-size:15px;font-weight:600}.lab-tab span{font-size:11px;color:var(--muted)}.lab-tab.active{border-color:#9ebfcf;background:#eaf2f6}.lab-body{padding-bottom:20px}.focus-panel{background:linear-gradient(120deg,#eaf2f6,#f9f6ec);border:1px solid #dce7eb;border-radius:14px;padding:28px 32px}.focus-panel>h2{font-size:25px;font-weight:500;margin:10px 0}.focus-panel>p{margin:8px 0 22px;font-size:13px}.focus-task{max-width:780px;padding:24px;background:#fffefa;border-radius:10px;border:1px solid #e4e8e6}.focus-task h3{font-size:22px;margin:12px 0}.focus-task p{white-space:pre-wrap;font-size:13px;color:#657c89}.focus-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:16px}.checkpoint{border-left:3px solid #a9c8d7;padding:8px 14px;background:#f4f7f8;margin:18px 0}.checkpoint p{margin:5px 0}.checkpoint small{color:#65889c}.focus-swap{max-width:780px;margin-top:20px}.focus-swap summary{font-size:12px;color:var(--teal);cursor:pointer}.focus-option{display:flex;justify-content:space-between;width:100%;padding:12px;text-align:left;border-bottom:1px solid var(--line);font-size:13px}.focus-option small{color:var(--muted)}.progress-note{border-top:1px solid var(--line);padding:14px 0}.progress-note h3{font-size:14px;margin:6px 0}.progress-note p{font-size:13px;white-space:pre-wrap;margin:4px 0 8px}.progress-note small{color:var(--muted)}.relay-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.relay-card{position:relative}.relay-card h3{font-size:24px;margin:10px 0}.relay-card>p{font-size:12px;color:var(--muted);min-height:40px}.relay-star{position:absolute;right:20px;top:16px;color:#dca51f;font-size:28px}.relay-owners{min-height:48px;display:flex;gap:6px;flex-wrap:wrap;align-content:flex-start}.relay-card>.btn{margin-top:14px}.review-intro{background:#f0f4f6;border-radius:12px;padding:22px 26px;margin-bottom:18px}.review-intro>h2{font-size:21px;font-weight:500;margin:0 0 18px}.review-prompts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.review-prompts p{margin:0;font-size:12px}.review-prompts b{display:block;color:#8ba7b7;font-size:23px;font-weight:400;margin-bottom:8px}.review-choice{display:flex;align-items:center;gap:18px;margin-bottom:12px}.review-choice>div{flex:1}.review-choice h3{font-size:15px;margin:6px 0}.review-choice p{font-size:12px;margin:4px 0}.review-choice small{color:var(--muted)}.team-next{margin-top:24px;display:flex;justify-content:space-between;align-items:center;gap:18px}.team-next h2{font-size:19px;margin:6px 0}.team-next p{font-size:12px;margin:0}.signed-out footer a{display:none}
@media(max-width:900px){.relay-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-tab{padding:14px 12px;grid-template-columns:22px 1fr}.lab-tab span{font-size:10px}.lab-tab strong{font-size:13px}}
@media(max-width:600px){.lab-tabs{gap:6px}.lab-tab{display:flex;flex-direction:column;padding:12px 10px}.lab-tab span{display:none}.lab-tab small{font-size:14px}.focus-panel{padding:20px 16px}.focus-panel>h2{font-size:22px}.focus-task{padding:18px}.relay-grid,.review-prompts{grid-template-columns:1fr}.review-prompts p{display:flex;align-items:center;gap:14px}.review-prompts b{margin:0;font-size:19px}.review-choice{flex-wrap:wrap;gap:10px;padding:18px}.review-choice>div{flex-basis:100%}.team-next{align-items:flex-start;flex-direction:column}.lab-body>.section-head{align-items:flex-start;flex-wrap:wrap}}
.pcell .silver-star{position:absolute;right:3px;top:-3px;font-size:25px;line-height:1.2;color:#9eabb7;text-shadow:0 1px 1px #52677b,0 0 3px #fff;pointer-events:none;z-index:2}.pcell .need-circle{position:absolute;left:calc(50% - 7px);top:4px;width:14px;height:14px;border:3px solid #b83d36;border-radius:50%;background:#fffefa9c;pointer-events:none;z-index:2}.gold-text{color:#cf9610}.red-text{color:#b83d36}.silver-text{color:#879aaa}.auto-need{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}.auto-need input{width:auto;margin:0}.admin-users{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-users h2{font-size:19px;overflow-wrap:anywhere}.account-menu #admin-link{display:block;margin:8px 0 14px}.account-menu #admin-link[hidden]{display:none}.hero-actions .primary{background:#477a98!important;color:#fff!important}.mark-legend b{font-size:16px}@media(max-width:720px){.admin-users{grid-template-columns:1fr}.auto-need{flex-basis:100%}}

/* Formality labels do not replace the self-assessment color. */
.contest-name .contest-kind{display:inline-flex;align-items:center;gap:4px;border:0;padding:0;margin:0;font-size:10px;line-height:1.4;font-weight:500;white-space:nowrap;background:transparent}.contest-kind::before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;flex:none}.contest-kind.kind-competition{color:#795719}.contest-kind.kind-formal{color:#355f7a}.contest-kind.kind-daily{color:#64716b}.highlight-marked .pcell.has-mark{outline:3px solid #365e79;outline-offset:-3px}.highlight-marked .pcell.has-mark .more{font-weight:700;color:#234d69}.highlight-marked .pcell:not(.has-mark)>.cell-open{opacity:.65}

.pcell{cursor:pointer}.pcell>.cell-open{width:100%;min-height:64px;border:0;border-radius:7px;background:transparent;color:inherit;font-family:inherit;padding:16px 4px 10px;cursor:pointer}.pcell>.cell-open:focus-visible{outline:3px solid #365e79;outline-offset:-3px}.pcell:hover{box-shadow:inset 0 0 0 2px #477a9870}

.contest-name small.contest-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:5px;font-size:10px;line-height:1.4}.contest-meta>span{white-space:nowrap}.contest-meta>.text-btn{padding:0;font-size:10px;line-height:1.4;margin-left:auto}.contest-name{padding:9px 10px}

.contest-kind.kind-past{color:#756883}

/* Absolute corner bookmarks keep formality visible without a badge row. */
.contest-name .contest-ribbon{position:absolute;left:3px;top:0;width:15px;height:29px;display:flex;align-items:flex-start;justify-content:center;padding-top:5px;box-sizing:border-box;clip-path:polygon(0 0,100% 0,100% 100%,50% 79%,0 100%);pointer-events:none;line-height:1;font-size:11px;color:#fffdf3}.contest-ribbon.ribbon-competition{background:linear-gradient(110deg,#c58a18,#dfad36);text-shadow:0 1px 1px #926218}.contest-ribbon.ribbon-formal{background:linear-gradient(110deg,#356d94,#6198bb);text-shadow:0 1px 1px #2d5979}.contest-name.has-ribbon>a{padding-left:14px}.contest-kind.kind-competition,.contest-kind.kind-formal{font-weight:600}

/* Nonexistent columns are crossed out, never styled as unsolved tasks. */
td.na{background:repeating-linear-gradient(135deg,#edf0ef 0,#edf0ef 7px,#dde3e2 7px,#dde3e2 8px);border-radius:7px;color:#9ba8ad;cursor:default}td.na>span{display:block;font-size:24px;font-weight:300;line-height:1;user-select:none}
/* Team calendar: document scroll, shared day structure in both views. */
.month-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.month-pair .card{padding:18px}.weekdays{margin-bottom:6px;text-align:center;font-size:11px;color:var(--muted)}.cal-day{position:relative;min-height:116px;padding:8px;background:#f6f7f5;overflow:hidden}.day-slots{position:absolute;inset:0;display:grid;grid-template-rows:repeat(3,1fr);pointer-events:none}.day-slots span{border-bottom:1px solid #e4e9eb70}.day-slots .occupied{background:#cce2ed}.day-content{position:relative;z-index:1}.day-content b{display:flex;gap:5px;align-items:center}.day-content b small{font-size:9px;color:#3c7393}.cal-day button{white-space:normal;overflow-wrap:anywhere;line-height:1.4;margin:4px 0}.cal-day.is-today{outline:2px solid #6196b1;outline-offset:-2px}.outside-month{opacity:.35}.now-line{position:absolute;left:0;right:0;border-top:1px solid #bc795b;pointer-events:none}.calendar-clock{color:var(--muted);font-variant-numeric:tabular-nums}.calendar-key{font-size:11px;color:var(--muted);margin:0 0 12px}.month-pair .section-head{flex-wrap:wrap}.month-pair .cal-day{min-height:104px}@media(max-width:1100px){.month-pair{grid-template-columns:1fr}}@media(max-width:720px){.cal-day,.month-pair .cal-day{min-height:100px;padding:4px}.calendar-clock{font-size:10px}.day-content b{font-size:16px;flex-wrap:wrap}.month-pair .card{padding:12px}}
.coach-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:26px}.coach-counts{display:flex;gap:18px;flex-wrap:wrap;margin:15px 0}.coach-counts b{font-size:22px;color:var(--teal)}.coach-teams summary{cursor:pointer;color:var(--teal);font-size:12px}.coach-teams p{overflow-wrap:anywhere}.coach-teams .thin-row{align-items:flex-start}@media(max-width:900px){.coach-teams{grid-template-columns:1fr}}
dialog.archive-dialog{max-width:calc(100vw - 48px);width:1500px}.archive-dialog .table-wrap{overflow-x:auto}.archive-dialog td details{min-width:55px;padding:10px 4px}.archive-dialog td details[open]{min-width:160px}.archive-dialog td p{max-width:240px;white-space:pre-wrap}.archive-dialog summary{cursor:pointer}
