:root{--ink:#182a24;--muted:#6b7871;--paper:#f5f7f1;--line:#dce4db;--forest:#173f34;--forest-2:#245b4a;--mint:#dbe9db;--gold:#d5a652;--rose:#b65d54;--white:#fff;--shadow:0 20px 60px rgba(20,42,32,.08)}
*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:"Inter","PingFang SC","Microsoft YaHei",sans-serif}body{margin:0;min-height:100vh;background:var(--paper)}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.page-noise{position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:radial-gradient(#789184 .5px,transparent .5px);background-size:11px 11px;mask-image:linear-gradient(180deg,rgba(0,0,0,.3),transparent 60%)}
.topbar{height:74px;padding:0 max(24px,calc((100vw - 1240px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(245,247,241,.9);position:relative;z-index:2}.brand-lockup{display:flex;gap:12px;align-items:center}.brand-mark{width:34px;height:34px;border-radius:9px;background:var(--forest);color:#f2e7c7;display:grid;place-items:center;font-family:serif;font-size:19px}.brand-lockup strong{font-size:14px;display:block;letter-spacing:.04em}.brand-lockup small{font-size:10px;color:var(--muted);display:block;margin-top:2px;letter-spacing:.06em}.topbar-right{font-size:11px;color:var(--muted);display:flex;gap:8px;align-items:center}.live-dot{width:7px;height:7px;background:#53a77d;border-radius:50%;box-shadow:0 0 0 4px #d9efe1}.admin-link{margin-left:15px;color:var(--forest-2);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.app-shell{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:30px 0 130px}.page-switcher{display:flex;gap:30px;border-bottom:1px solid var(--line);margin-bottom:44px}.switcher-tab{border:0;background:none;color:#87928a;padding:0 0 15px;font-size:13px;position:relative;display:flex;gap:12px;align-items:baseline}.switcher-tab.active{color:var(--ink);font-weight:700}.switcher-tab.active:after{content:"";height:3px;border-radius:3px;background:var(--gold);position:absolute;bottom:-1px;left:0;right:0}.tab-kicker{font-size:10px;color:var(--gold);font-family:monospace}.view{display:none}.view.active{display:block}.hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:34px}.eyebrow{font:600 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.18em;color:var(--forest-2);margin:0 0 12px}.hero-row h1{font-family:"Noto Serif SC","Songti SC",serif;font-size:clamp(35px,5vw,67px);font-weight:500;letter-spacing:0;line-height:1.05;margin:0;color:var(--ink)}h1 em{font-style:normal;color:var(--forest-2)}.hero-copy{color:var(--muted);line-height:1.8;max-width:550px;font-size:13px;margin:18px 0 0}.hero-note{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px;line-height:1.5;text-align:right}.note-line{width:38px;height:1px;background:var(--gold)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:60px}.stat-card{min-height:128px;padding:18px 19px;border:1px solid var(--line);background:rgba(255,255,255,.55);display:flex;flex-direction:column;justify-content:space-between}.stat-card strong{font-family:"Noto Serif SC","Songti SC",serif;font-size:38px;font-weight:500;line-height:1}.stat-card>span:last-child{font-size:11px;color:var(--muted)}.stat-primary{background:var(--forest);color:#f9f4e9;border-color:var(--forest)}.stat-primary .stat-label,.stat-primary>span:last-child{color:#b7cdc0}.stat-label{font-size:10px;color:var(--muted);letter-spacing:.06em}.stat-chart{padding-bottom:14px}.mini-bars{height:54px;display:flex;align-items:flex-end;gap:12px}.mini-bar{flex:1;display:flex;flex-direction:column;gap:5px;align-items:center}.mini-bar i{display:block;width:100%;background:var(--forest-2);min-height:4px}.mini-bar b{font-size:9px;font-weight:500;color:var(--muted)}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px}.section-heading h2,.result-head h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:29px;font-weight:500;margin:0}.table-tools{display:flex;align-items:center;gap:10px}.search-box{display:flex;align-items:center;border:1px solid var(--line);background:var(--white);height:39px;padding:0 11px;gap:8px;color:var(--muted)}.search-box input{border:0;outline:0;width:140px;background:transparent;font-size:12px}.outline-btn,.solid-btn{height:40px;padding:0 17px;border-radius:4px;font-size:12px;font-weight:700;letter-spacing:.01em;border:1px solid var(--forest-2);display:inline-flex;gap:8px;align-items:center;justify-content:center;transition:.2s}.outline-btn{color:var(--forest-2);background:transparent}.outline-btn:hover{background:var(--mint)}.solid-btn{color:#fff;background:var(--forest-2);border-color:var(--forest-2)}.solid-btn:hover{background:var(--forest)}.text-btn{border:0;background:none;color:var(--forest-2);font-size:11px;padding:4px}.table-wrap{border-top:2px solid var(--ink);background:rgba(255,255,255,.58);min-height:150px}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;font-size:10px;color:var(--muted);font-weight:600;letter-spacing:.08em;padding:14px 16px;border-bottom:1px solid var(--line)}td{padding:16px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}tbody tr:hover{background:#eef4eb}td:first-child{font-family:ui-monospace,monospace;letter-spacing:.04em;width:24%}td:nth-child(2){font-weight:700;color:var(--forest-2);font-size:15px}td:nth-child(4){font-size:11px;color:var(--muted)}.status{display:inline-flex;gap:6px;align-items:center;font-size:11px}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:#b8c2ba}.status.confirmed{color:var(--forest-2)}.status.confirmed:before{background:#4ea579}.empty-state,.self-empty{text-align:center;color:var(--muted);padding:45px 20px;font-size:12px}.hidden{display:none!important}.lookup-panel{border-top:2px solid var(--ink);border-bottom:1px solid var(--line);padding:22px 0 19px;margin:12px 0 32px}.lookup-panel label{display:block;font-size:11px;font-weight:700;margin-bottom:9px}.lookup-row{display:flex;gap:10px}.lookup-row input{height:43px;flex:1;border:1px solid var(--line);background:#fff;padding:0 14px;outline:0;font-size:14px;letter-spacing:.05em}.lookup-row input:focus,.modal-card input:focus,textarea:focus{border-color:var(--forest-2);box-shadow:0 0 0 3px #dbe9db}.field-hint{margin:9px 0 0;font-size:10px;color:var(--muted)}.result-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}.result-head h2 small{font:11px ui-monospace,monospace;color:var(--muted);margin-left:12px}.record-pill{font-size:11px;color:#8e6e2e;background:#f8ecd0;padding:7px 11px}.record-pill.done{color:#2a7653;background:#dcefe2}.score-timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.score-year{border:1px solid var(--line);background:rgba(255,255,255,.65);padding:20px;min-height:155px;position:relative;overflow:hidden}.score-year:after{content:"";position:absolute;right:0;bottom:0;width:58px;height:58px;background:#edf3e9;clip-path:polygon(100% 0,100% 100%,0 100%)}.score-year .year-label{font:700 11px ui-monospace,monospace;color:var(--forest-2)}.score-year strong{display:block;font-family:"Noto Serif SC","Songti SC",serif;font-size:42px;font-weight:500;margin:20px 0 4px}.score-year small{font-size:10px;color:var(--muted)}.score-year.empty strong{color:#a4afa8;font-size:24px;margin-top:29px}.score-year .score-rule{height:3px;background:var(--gold);width:30px;margin-top:21px}.self-actions{display:flex;gap:10px;margin-top:25px}.self-empty{border-top:1px solid var(--line);padding:72px 20px}.empty-icon{font-size:33px;color:var(--gold);margin-bottom:12px}.self-empty h3{font-family:"Noto Serif SC","Songti SC",serif;font-weight:500;font-size:22px;color:var(--ink);margin:0 0 9px}.self-empty p{margin:0}
.island-switcher{position:fixed;z-index:5;bottom:23px;left:50%;transform:translateX(-50%);height:48px;border:1px solid #273c33;background:#182d25;color:#dbe9db;display:flex;align-items:center;gap:12px;padding:0 15px;border-radius:30px;box-shadow:0 12px 30px rgba(15,34,26,.25);font-size:10px}.island-dot{width:8px;height:8px;border-radius:50%;padding:0;border:0;background:#65766e}.island-dot.active{background:var(--gold);box-shadow:0 0 0 4px rgba(213,166,82,.2)}.island-caption{font:10px ui-monospace,monospace;color:#8ea59b;margin-left:2px}
.modal-backdrop{position:fixed;inset:0;z-index:10;background:rgba(16,34,29,.56);display:grid;place-items:center;padding:20px}.modal-card{width:min(520px,100%);background:var(--paper);padding:31px 32px 27px;position:relative;box-shadow:var(--shadow)}.modal-close{position:absolute;right:18px;top:13px;border:0;background:none;color:var(--muted);font-size:25px;line-height:1}.modal-card h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:30px;font-weight:500;margin:0}.modal-intro{color:var(--muted);font-size:12px;line-height:1.7;margin:9px 0 21px}.modal-label{display:block;font-size:11px;font-weight:700;margin-bottom:8px}.modal-card input,.feedback-id{height:40px;width:100%;border:1px solid var(--line);background:#fff;outline:0;padding:0 12px;font-size:13px}.canvas-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;margin:20px 0 8px}.signature-pad{height:174px;background:#fff;border:1px solid var(--line);position:relative}.signature-pad canvas{width:100%;height:100%;display:block;touch-action:none}.signature-pad span{position:absolute;inset:0;display:grid;place-items:center;color:#cbd3ce;font-family:"Noto Serif SC","Songti SC",serif;font-size:20px;pointer-events:none}.signature-pad.has-ink span{display:none}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.modal-error{min-height:16px;color:var(--rose);font-size:11px;margin:9px 0 0}.feedback-card textarea{width:100%;resize:vertical;border:1px solid var(--line);outline:0;padding:12px;font-size:12px;line-height:1.7;background:#fff}.feedback-id{display:flex;align-items:center;color:var(--muted);font-family:ui-monospace,monospace;font-size:11px;margin-bottom:10px;background:#f0f4ed}.toast{position:fixed;z-index:30;left:50%;bottom:90px;transform:translate(-50%,10px);background:var(--ink);color:white;padding:11px 18px;font-size:12px;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.topbar{height:64px;padding:0 18px}.topbar-right>span:not(.live-dot){display:none}.admin-link{margin-left:7px}.app-shell{width:calc(100% - 32px);padding-top:22px}.page-switcher{gap:20px;margin-bottom:34px;overflow:auto;white-space:nowrap}.switcher-tab{font-size:12px}.hero-row{display:block}.hero-row h1{font-size:42px}.hero-note{margin-top:22px;text-align:left}.stat-grid{grid-template-columns:repeat(2,1fr);margin-bottom:45px}.stat-card{min-height:110px}.stat-chart{grid-column:span 2}.section-heading{display:block}.table-tools{margin-top:16px;display:flex}.search-box{flex:1}.search-box input{width:100%}.table-wrap{overflow-x:auto}table{min-width:650px}.lookup-row{display:block}.lookup-row input{width:100%;margin-bottom:9px}.lookup-row .solid-btn{width:100%}.score-timeline{grid-template-columns:1fr}.score-year{min-height:130px}.score-year strong{margin:12px 0 3px}.self-actions{flex-direction:column}.self-actions button{width:100%}.modal-card{padding:27px 20px 22px}.modal-card h2{font-size:27px}.island-switcher{bottom:16px}.year-stamp{margin-top:22px}.self-hero{margin-bottom:23px}}
.self-hero h1{font-size:clamp(30px,4vw,52px);line-height:1.2;max-width:900px}
.bottom-switcher{position:fixed;z-index:5;bottom:23px;left:50%;transform:translateX(-50%);display:flex;gap:3px;padding:4px;border:1px solid #273c33;border-radius:6px;background:#182d25;box-shadow:0 12px 30px rgba(15,34,26,.25)}.bottom-switch{border:0;border-radius:3px;background:transparent;color:#b9c9c1;padding:9px 16px;font-size:11px}.bottom-switch.active{background:#f1dfb4;color:#182d25;font-weight:700}
@media(max-width:760px){.self-hero h1{font-size:31px;line-height:1.3}.bottom-switcher{bottom:16px}}
.completion-card{width:min(430px,100%);background:var(--paper);padding:42px 34px 34px;text-align:center;box-shadow:0 24px 70px rgba(9,30,23,.28)}.completion-check{width:68px;height:68px;margin:0 auto 22px;border-radius:50%;display:grid;place-items:center;background:var(--forest-2);color:#fff;font-size:37px;font-weight:500}.completion-card h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:34px;font-weight:500;margin:0 0 12px}.completion-card p:not(.eyebrow){color:var(--muted);font-size:13px;margin:0;line-height:1.7}.completion-close{margin-top:28px;min-width:120px}
