:root{color-scheme:light;--bg:#f5f4ee;--paper:#fffefa;--ink:#222b26;--muted:#5e695f;--line:#dfE2d8;--accent:#225641;--soft:#e4eee4;--hero:#173d31;--gold:#e7bd71;font-family:"Noto Sans SC","Microsoft YaHei",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--paper);border-radius:9px;padding:.6rem .9rem}button:hover{filter:brightness(.96)}:focus-visible{outline:2px solid #a87323;outline-offset:3px}.primary{background:var(--accent);color:white;border-color:var(--accent)}.shell{min-height:100vh;display:grid;grid-template-columns:228px minmax(0,1fr)}aside{background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:27px 18px;position:sticky;top:0;height:100vh}.brand{font-size:27px;font-weight:800;margin:0 12px 42px;display:block}.brand span{color:var(--accent)}.brand small{display:block;font-size:12px;color:var(--muted);font-weight:500;margin:4px 0 0 30px;letter-spacing:.16em}nav{display:grid;gap:6px}nav a{padding:12px;border-radius:9px;color:var(--muted);font-size:14px}nav a:hover,nav a[aria-current]{background:var(--soft);color:var(--accent)}.sidefoot{margin:auto 8px 0;color:var(--muted);font-size:12px}.sidefoot i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#55916b;margin-right:5px}main{min-width:0}header{border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:15px clamp(16px,4vw,58px);font-weight:700}#view{max-width:1340px;margin:auto;padding:27px clamp(16px,4vw,58px) 55px}.hero{position:relative;overflow:hidden;background:var(--hero);color:white;border-radius:18px;padding:30px 34px;min-height:210px;display:flex;align-items:center;justify-content:space-between;gap:18px}.hero:after{content:"";position:absolute;width:320px;height:320px;border:1px solid #ffffff26;border-radius:50%;right:-40px;top:-40px;box-shadow:0 0 0 24px #ffffff0b,0 0 0 53px #ffffff08;pointer-events:none}.hero>*{z-index:1}.hero p,.hero small{color:#d1e1d6}.hero .primary{display:inline-block;background:var(--gold);color:#2e291e;padding:.65rem .9rem;border-radius:9px;font-size:14px}.hero h1,h1{margin:8px 0;font-size:clamp(26px,4vw,43px);letter-spacing:-.04em}.ring{flex:none;width:116px;height:116px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gold) calc(var(--p)*1%),#ffffff25 0)}.ring div{border-radius:50%;background:var(--hero);width:99px;height:99px;display:grid;place-content:center;text-align:center}.ring strong{font-size:24px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}.card,.panel{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:18px}.card strong{display:block;font-size:24px;margin:8px 0 0}.muted,.card small{color:var(--muted)}.split{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin:16px 0}.panel h2{font-size:17px;margin:0 0 14px}.panel+.panel.block,.block{margin-top:16px}.bars{display:flex;align-items:stretch;gap:8px;height:172px}.bar{flex:1;min-width:0;text-align:center;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.bar b{width:min(30px,80%);min-height:3px;border-radius:5px 5px 2px 2px;background:#71a389}.bar:last-child b{background:var(--accent)}.empty{color:var(--muted);padding:18px 0}.row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.row p{margin:4px 0}.row .actions{flex:none}.actions,.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions button{font-size:13px}.toolbar{margin-bottom:14px}input,select,textarea{min-width:0;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:9px}label{display:grid;gap:5px;font-size:14px}textarea{resize:vertical;min-height:85px}form{display:grid;gap:12px}.formrow{display:grid;grid-template-columns:1fr 1fr;gap:10px}dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:15px;width:min(460px,calc(100% - 28px));padding:22px}dialog h2{margin:0}dialog::backdrop{background:#152a22a0}dialog .actions{justify-content:flex-end}.clock{font-size:clamp(54px,12vw,104px);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.06em;margin:12px 0}.pill{background:var(--soft);color:var(--accent);padding:3px 7px;border-radius:6px;font-size:12px}.heat{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:5px}.heat span{aspect-ratio:1;border-radius:3px}.check{display:flex;align-items:center;gap:8px}.check input{accent-color:var(--accent)}progress{width:100%;accent-color:var(--accent)}#notice{position:fixed;bottom:18px;right:18px;z-index:5;background:var(--hero);color:white;border-radius:9px;padding:11px 16px}html[data-theme=dark]{color-scheme:dark;--bg:#17221d;--paper:#202d26;--ink:#ecf2e9;--muted:#b8c7bb;--line:#415047;--accent:#39755c;--soft:#283e32}html[data-theme=dark] .pill,html[data-theme=dark] nav a[aria-current]{color:#b6dfc4}@media(max-width:850px){.shell{grid-template-columns:165px minmax(0,1fr)}aside{padding:22px 10px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media(max-width:600px){.shell{display:block}aside{height:auto;position:static;padding:12px 14px;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0 0 8px;font-size:22px}.brand small,.sidefoot{display:none}nav{display:flex;overflow:auto;gap:4px}nav a{white-space:nowrap;padding:8px;font-size:12px}.hero{padding:20px;min-height:160px}.ring{width:84px;height:84px}.ring div{width:72px;height:72px}.ring strong{font-size:19px}.card,.panel{padding:13px}.row .actions{max-width:100px}}
.brand{font-size:23px}.brand small{margin-left:28px}.more{float:right;font-size:13px;font-weight:500}.notes{white-space:pre-wrap}.range{width:max-content;max-width:100%;margin-bottom:14px}.heat{max-width:650px}.bar[title]{cursor:default}.block button{margin-bottom:4px}
