:root{--ink:#15383c;--paper:#f6f2e8;--white:#fffdf8;--teal:#168277;--coral:#de5c46;--yellow:#f1bd45;--line:#15383c26}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans TC',system-ui,sans-serif;line-height:1.65}.shell{width:min(1120px,calc(100% - 30px));margin:auto}.top{padding:28px 0 20px;border-bottom:3px solid var(--ink);display:flex;justify-content:space-between;gap:20px;align-items:end}.top h1{margin:4px 0;font-size:clamp(2rem,5vw,3.5rem);letter-spacing:0}.eyebrow{color:var(--coral);font-weight:800}.actions,.mode-switch{display:flex;gap:8px;flex-wrap:wrap}.btn,.mode-switch button{min-height:44px;padding:9px 14px;border:1px solid var(--line);border-radius:5px;background:var(--white);color:var(--ink);font:800 15px inherit;text-decoration:none;cursor:pointer}.btn.primary,.mode-switch button.active{background:var(--ink);color:#fff}.privacy{margin:18px 0;padding:13px 15px;background:#fff3cf;border-left:5px solid var(--yellow)}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:18px 0}.metric{padding:15px;background:var(--white);border:1px solid var(--line)}.metric b{display:block;font-size:1.8rem}.panel{margin:18px 0;padding:20px;background:var(--white);border:1px solid var(--line)}.panel h2{margin-top:0}.week-table{width:100%;border-collapse:collapse}.week-table th,.week-table td{padding:9px;border:1px solid var(--line);text-align:left}.week-table button{border:0;background:transparent;color:var(--teal);font-weight:800;cursor:pointer}.report-output{min-height:480px}.report-output h1{font-size:2rem}.report-output h2{margin-top:24px;border-bottom:2px solid var(--ink)}.report-output table{width:100%;border-collapse:collapse}.report-output th,.report-output td{border:1px solid #9eaaa7;padding:8px;vertical-align:top}.report-edit{width:100%;min-height:120px;padding:11px;border:1px solid var(--line);font:inherit}.confirm{display:flex;gap:9px;padding:12px;background:#e5f1ee}.confirm input{width:20px;height:20px}.file-input{display:none}@media(max-width:760px){.top{align-items:flex-start;flex-direction:column}.summary{grid-template-columns:1fr 1fr}.week-table{font-size:.85rem}.week-table th:nth-child(4),.week-table td:nth-child(4){display:none}}@media print{body{background:#fff}.top,.privacy,.mode-switch,.actions,.data-panel,.confirm{display:none!important}.shell{width:100%}.panel{border:0;padding:0}.report-output{min-height:0}}
