:root{--ink:#183c48;--blue:#1d5f73;--cream:#f8f6ef;--line:#d6e0dd;--muted:#57707a;--light:#e7f1f2;--red:#c0533a;--green:#1b6346;--amber:#9a6b00}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:17px/1.7 system-ui,-apple-system,"PingFang TC",sans-serif}
button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #d98a2b;outline-offset:3px}
header{max-width:900px;margin:auto;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{font-weight:800;font-size:20px;color:var(--blue);text-decoration:none}header span{color:var(--muted)}
main{max-width:900px;margin:auto;padding:16px 18px 60px}h1{font-size:28px;margin:10px 0}
.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;min-height:56px;border-radius:14px;padding:10px 20px;font-weight:750;text-decoration:none;border:0;font-size:18px}.primary{background:var(--blue);color:#fff}.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.primary:disabled{background:#b9c6c4}
.big{font-size:20px}.center{text-align:center}.m0{margin:0 0 6px}.note{font-size:15px;color:var(--muted)}.file{cursor:pointer}
.stat{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stat div{background:#fff;border:2px solid var(--line);border-radius:16px;padding:10px;text-align:center}.stat b{display:block;font-size:34px;line-height:1.2;color:var(--blue)}.stat .main{border-color:#e9b949;background:#fffbea}.stat .main b{font-size:44px;color:var(--amber)}
.panel{background:#fff;border:2px solid var(--line);border-radius:18px;padding:16px;margin-top:14px}.panel h2{margin:0 0 8px;font-size:21px}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips button{min-height:46px;border-radius:12px;border:2px solid var(--line);background:#fff;padding:4px 14px;font-weight:700}.chips button[aria-pressed=true]{background:var(--blue);color:#fff;border-color:var(--blue)}
.lv{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.lv button{min-height:64px;border-radius:14px;border:2px solid var(--line);background:#fff;font-weight:800;font-size:18px;line-height:1.2}.lv button small{display:block;font-weight:500;font-size:13px;color:var(--muted)}.lv button[aria-pressed=true]{background:#d9692b;border-color:#d9692b;color:#fff}.lv button[aria-pressed=true] small{color:#fff}
.go{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.go>*{flex:1;min-width:220px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.card{background:#fff;border:3px solid var(--line);border-radius:18px;padding:12px 14px}.card .w{font-size:40px;font-weight:800;letter-spacing:4px;line-height:1.2}.zy{color:#1b6346;font-size:19px;letter-spacing:1px}.card p{margin:4px 0;font-size:16px}.card .h{color:#9a4317}
.mini{min-height:42px;border-radius:10px;border:0;background:#e7f3ea;color:var(--green);padding:2px 12px;font-weight:700}.ghost{background:#f3f3ee!important;color:var(--muted)!important;border:1px solid var(--line)!important}
.timer{height:12px;background:#eef2ea;border-radius:8px;overflow:hidden;margin:8px 0}.timer i{display:block;height:100%;background:#d9692b;width:100%;transition:width 1s linear}
.q{background:#fff;border:3px solid var(--line);border-radius:22px;padding:22px;text-align:center}.q .no{color:var(--muted);font-size:18px}.big2{font-size:32px;letter-spacing:3px;margin:6px 0}.q .cue{font-size:24px;line-height:1.7;margin:8px 0 14px}
.row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:8px}.q .row button{min-width:160px;min-height:62px;font-size:20px}
.cheer{font-size:28px;font-weight:800;color:var(--amber)}.hero{font-size:44px;color:var(--amber)}
.marks{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.mk{background:#fff;border:3px solid var(--line);border-radius:18px;padding:12px;text-align:center}.mk.ok{border-color:#7fb596;background:#f2fbf4}.mk.ng{border-color:#e3a08f;background:#fff4f1}.mk.uk{border-color:#e9b949;background:#fffbea}
.mk .n{color:var(--muted);font-size:15px}.mk .w{font-size:36px;font-weight:800;letter-spacing:3px}.mk .ai{font-size:15px;background:rgba(255,255,255,.7);border-radius:10px;padding:6px 8px;margin:6px 0;text-align:left}
.mk button{min-height:50px;min-width:100px;border-radius:12px;border:2px solid var(--line);background:#fff;font-weight:700}.mk button.sel.ok{background:var(--green);color:#fff;border-color:var(--green)}.mk button.sel.ng{background:var(--red);color:#fff;border-color:var(--red)}
.bank{display:flex;flex-wrap:wrap;gap:6px}.bank button{min-height:44px;border-radius:10px;border:2px solid;padding:2px 10px;font-size:18px;font-weight:700;background:#fff}.srch{margin:12px 0 6px;font-size:17px}
.L0{border-color:#d6e0dd!important;color:#8aa0a6}.Lw{border-color:var(--red)!important;background:#fdeee9!important;color:#9b3a24}.L1{border-color:#e9b949!important;background:#fffbea!important}.L2{border-color:#7fb596!important;background:#eef7f1!important}.L4{border-color:var(--green)!important;background:var(--green)!important;color:#fff}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:14px;color:var(--muted);margin:6px 0}.legend span::before{content:'';display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:4px;vertical-align:-1px;background:var(--c)}
.chart{display:flex;align-items:flex-end;gap:3px;height:120px;border-bottom:1px solid var(--line);padding-top:18px}.chart div{flex:1;background:#7fb596;border-radius:4px 4px 0 0;position:relative;min-width:6px}.chart div span{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:12px;color:var(--muted)}
.axis{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.detail{font-size:16px;background:var(--light);border-radius:12px;padding:10px 14px;margin-top:10px}.sync{font-size:13px;color:var(--muted);text-align:right}
table{width:100%;border-collapse:collapse;font-size:15px}th,td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}th{background:var(--light)}
@media(max-width:620px){.stat{grid-template-columns:repeat(2,1fr)}.lv{grid-template-columns:repeat(3,1fr)}}
