:root{--ink:#152949;--muted:#6c7c93;--navy:#14294c;--blue:#2456bb;--border:#e4eaf3;--bg:#f5f8fc;--gold:#d89325;--shadow:0 9px 32px rgba(19,42,76,.07)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft Yahei','Segoe UI',Arial,sans-serif;background:var(--bg);font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer;transition:background .15s,transform .15s}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #71a1ff;outline-offset:2px}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:0 max(26px,calc((100vw - 1400px)/2));position:sticky;top:0;z-index:90}.brand{display:flex;align-items:center;gap:12px}.brandmark{height:42px;width:42px;border-radius:13px;background:var(--navy);color:white;display:grid;place-items:center;font-size:23px;font-weight:750;letter-spacing:-2px}.brandmark span{color:#ebc16b;font-size:13px;align-self:start;letter-spacing:0}.brand strong{display:block;font-size:16px;letter-spacing:.02em}.brand small{display:block;font-size:11px;color:var(--muted)}.toplinks{display:flex;gap:20px;align-items:center}.toplinks a{font-size:13px;font-weight:700}.textbtn{border:0;background:transparent;color:var(--muted);font-size:13px}.shell{max-width:1410px;padding:32px 26px 70px;margin:auto}.login-screen{min-height:calc(100vh - 180px);display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:7vw}.smalllabel{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#4171ba}.login-copy{padding:55px 15px}.login-copy h1{font-size:clamp(46px,5vw,76px);line-height:1.12;font-weight:730;letter-spacing:-.06em;margin:24px 0}.login-copy h1 em{font-style:normal;color:#3172d0}.login-copy p{font-size:17px;color:var(--muted);max-width:490px}.feature-line{margin-top:37px;color:#9a6b26;font-weight:700}.login-box{background:white;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:37px;max-width:470px;width:100%;margin:auto}.login-box h2{margin:10px 0 29px;font-size:26px}.login-box label,.form label{display:block;font-size:13px;color:var(--muted);font-weight:700;margin-bottom:17px}.login-box input,.form input,.form select,.form textarea{width:100%;margin-top:7px;border:1px solid #d6dfeb;padding:12px 13px;border-radius:10px;background:white;color:var(--ink);outline-color:#4b82d4}.login-box button{width:100%;margin-top:10px}.primary{background:var(--blue);border:1px solid var(--blue);color:white;padding:11px 20px;border-radius:10px;font-size:14px;font-weight:700}.primary:hover{background:#1b4499}.outline{border:1px solid #c9d7ea;background:white;padding:10px 14px;border-radius:9px;color:var(--navy);font-size:13px;font-weight:700}.outline:hover{background:#eaf1fc}.smallbtn{padding:6px 9px;font-size:12px;border:1px solid #bacee9;background:#fff;border-radius:7px;color:#1f4d9a;font-weight:700}.smallbtn:hover{background:#edf4ff}.micro{font-size:12px!important;color:var(--muted)!important;margin:15px 0 0}.err{color:#bd3434;font-size:13px;margin-top:9px}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:14px 0 22px}.pagehead h1{font-size:clamp(27px,3vw,39px);letter-spacing:-.045em;margin:8px 0}.hl{font-size:.58em;color:#6385b8;font-weight:550;letter-spacing:0}.muted{color:var(--muted)}.pagehead p{margin-bottom:0}.head-actions{display:flex;align-items:center;gap:12px}.who{font-size:12px;color:var(--muted);white-space:nowrap}.coverage{border:1px solid;border-radius:12px;padding:13px 16px;margin-bottom:18px;font-size:13px}.coverage.warning{background:#fff7e9;color:#88570b;border-color:#f1dbb4}.coverage.ok{background:#e8f7ed;color:#1e673a;border-color:#c2e5cb}.coverage.danger{background:#fff1f1;color:#993b3d;border-color:#f0c8c8}.statgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:30px}.stat{background:white;border:1px solid var(--border);border-radius:14px;padding:17px 20px;box-shadow:0 3px 15px #162c4a06}.stat label{font-size:12px;color:var(--muted);display:block;margin-bottom:8px}.stat strong{font-size:29px;font-weight:760;letter-spacing:-.04em}.stat small{display:block;color:var(--muted);font-size:11px}.sectionhead{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:30px 0 14px}.sectionhead h2{font-size:22px;letter-spacing:-.03em;margin:0}.sectionhead h2 span{font-weight:500;color:#8ca0bf;font-size:13px;margin-left:8px;letter-spacing:0}.sectionhead p{font-size:12px;color:var(--muted);margin:6px 0 0}.sectionhead.compact{margin:0 0 18px}.sectionhead.compact h2{font-size:19px}.toolbar label{font-size:12px;color:var(--muted)}.toolbar select{border:1px solid var(--border);background:white;border-radius:9px;padding:9px;margin-left:8px;color:var(--ink)}.table-scroll{overflow:auto;max-height:63vh;border:1px solid #dce5f0;background:white;border-radius:15px;box-shadow:var(--shadow);scrollbar-color:#bccbe0 transparent;isolation:isolate}.board-table{width:100%;border-spacing:0;border-collapse:separate;min-width:930px;table-layout:fixed}.board-table th{background:#1b385f;color:#fff;text-align:left;font-size:13px;font-weight:700;padding:15px 16px;border-right:1px solid #ffffff2d;position:sticky;top:0;z-index:5}.board-table th small{display:inline-block;color:#baccdf;font-size:11px;font-weight:500}.board-table th:nth-child(1){width:190px}.board-table th:nth-child(2){width:29%}.board-table td{vertical-align:top;padding:15px 16px;border-bottom:1px solid #e9eef5;border-right:1px solid #edf1f7;background:white;font-size:13px;overflow-wrap:anywhere}.board-table tr:last-child td{border-bottom:0}.board-table .sticky-col{position:sticky;left:0;z-index:4}.board-table thead .sticky-col{z-index:7;background:#1b385f}.board-table tbody .sticky-col{background:#f4f7fd;box-shadow:2px 0 4px #15294910}.board-table .section-row td{padding:9px 16px;background:#e6eef9;color:#204a80;font-weight:750;font-size:13px}.board-table .section-row .sticky-col{z-index:3;background:#e6eef9}.row-topic{display:block;font-weight:720;font-size:13px;margin-bottom:4px}.subtext{display:block;font-size:11px;color:#6b7e97;margin-top:3px}.stamp{display:inline-block;border-radius:6px;padding:2px 7px;font-size:11px;margin:5px 4px 5px 0;font-weight:700}.stamp.warn{background:#fff0d6;color:#90580f}.stamp.info{background:#e7f0ff;color:#2957a0}.stamp.done{background:#e3f6e9;color:#247d41}.stamp.bad{background:#feecec;color:#ad4146}.due{color:#a0462b;font-weight:760}.done-title{text-decoration:line-through;color:#74869b}.taskline{padding:7px 0;border-bottom:1px dashed #e2eaf5}.taskline:last-child{border-bottom:0}.taskline input{accent-color:#2460c8;margin:2px 7px 0 0;transform:scale(1.25)}.taskline label{display:flex;align-items:flex-start;cursor:pointer}.taskcontent{min-width:0}.footnote{color:#7084a0;font-size:12px;line-height:1.7;margin:12px 0}.secondary-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:26px}.panel{background:white;border:1px solid var(--border);border-radius:16px;padding:21px;box-shadow:var(--shadow);margin-bottom:17px}.reward-item{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #edf1f7;padding:12px 0}.reward-item:first-child{border-top:0}.reward-item p{margin:3px 0;color:var(--muted);font-size:12px}.gold{color:#a7731c;font-weight:800;white-space:nowrap}.rules-list{padding-left:19px;color:#485f7c;font-size:13px;line-height:1.9}.rules-list li{margin:4px 0}.admin-tabs{display:flex;flex-wrap:wrap;gap:7px;padding:5px;background:#eaf0f9;border-radius:12px;width:fit-content;margin:14px 0}.tab{border:0;background:transparent;border-radius:9px;padding:10px 14px;color:#546c8d;font-size:13px;font-weight:700}.tab.active{background:#fff;color:#1f4a88;box-shadow:0 2px 8px #1e437515}.adminContent{background:white;border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:var(--shadow);min-height:240px}.adminContent h3{font-size:17px;margin:0 0 14px}.admin-row{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid #edf1f8;padding:12px 0}.admin-row:last-child{border:0}.admin-row p{color:var(--muted);font-size:12px;margin:3px 0 0}.action-set{display:flex;gap:8px;flex-wrap:wrap}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form input,.form select,.form textarea{margin-top:6px}.form .wide{grid-column:1/-1}.form label{margin:0}.form .primary{margin-top:16px}.mini{font-size:12px;color:var(--muted)}.empty{padding:24px;text-align:center;color:var(--muted);font-size:13px;background:#f8fafd;border-radius:11px}.row-alert{padding:12px 14px;background:#fff5df;border-radius:10px;color:#795619;font-size:13px;margin:8px 0}.pill{border-radius:40px;padding:5px 11px;font-weight:750;font-size:11px;background:#edf3fc;color:#2a578d}#toast{position:fixed;bottom:24px;right:24px;z-index:999;background:#1d355a;color:#fff;border-radius:12px;padding:12px 20px;box-shadow:0 12px 30px #19345733;max-width:460px;font-size:13px;display:none}#toast.show{display:block}footer{font-size:12px;color:#91a1b7;text-align:center;padding:15px}#historyPanel{margin-top:13px}input[type=checkbox]{cursor:pointer}@media(max-width:900px){.topbar{padding:0 16px}.shell{padding:18px 12px 60px}.login-screen{grid-template-columns:1fr;gap:10px}.login-copy{padding:30px 8px}.login-copy h1{font-size:43px}.login-box{max-width:100%}.pagehead{align-items:start;flex-direction:column}.statgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.secondary-grid{grid-template-columns:1fr}.board-table{min-width:900px}.board-table th:nth-child(1){width:153px}.board-table th,.board-table td{padding:11px 12px}.toplinks{gap:9px}.toplinks a{font-size:12px}.toplinks button{font-size:11px}.formgrid{grid-template-columns:1fr}}@media(max-width:480px){.brand small{display:none}.brandmark{width:33px;height:33px}.topbar{height:62px}.stat{padding:13px}.stat strong{font-size:24px}.login-copy h1{font-size:38px}.login-box{padding:23px}.adminContent{padding:14px}.sectionhead{align-items:start;flex-direction:column}.sectionhead.compact{flex-direction:row}.who{display:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
[hidden]{display:none!important}
