:root{--bg: #f6f7f9;--card: #fff;--ink: #1d2733;--muted: #6b7684;--line: #dde2e8;--brand: #1f4e79;--brand-ink: #fff;--warn-bg: #fff4d6;--warn: #8a5a00;--err-bg: #fde8e8;--err: #b42318;--ok: #18794e;--pending: #fffaf0;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;font-size:16px}h1,h2,h3{margin:.4em 0}h2{font-size:1.25rem}a{color:var(--brand)}.muted{color:var(--muted)}.small{font-size:.85rem}.center{padding:4rem;text-align:center}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.ok{color:var(--ok)}button,.button{font:inherit;padding:.55rem 1rem;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block;min-height:42px}button.primary,.button.primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}button.danger{color:var(--err)}button.small{padding:.25rem .6rem;min-height:32px;font-size:.85rem}button.link{border:0;background:none;color:var(--brand);padding:0 .4rem;min-height:auto}button:disabled{opacity:.55;cursor:default}input,select{font:inherit;width:100%;padding:.5rem .6rem;border:1px solid var(--line);border-radius:8px;background:#fff;min-height:42px}label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--muted)}label.check{flex-direction:row;align-items:center;color:var(--ink)}label.check input{width:auto;min-height:auto}fieldset{border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;display:grid;gap:.6rem}legend{color:var(--muted);font-size:.85rem}.top{display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;background:var(--brand);color:#fff;flex-wrap:wrap}.top .brand{font-weight:700}.top .date{flex-direction:row;align-items:center;color:#fff;gap:.4rem}.top .datenav{display:flex;gap:.3rem;flex-wrap:wrap}.top .datenav button{min-height:36px;padding:.2rem .6rem;background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:6px;cursor:pointer;font-size:.9rem}.top .datenav button:hover{background:#ffffff4d}.top .date input{width:auto;min-height:36px;padding:.2rem .4rem}.top .who{margin-left:auto}.top .who .link{color:#fff;text-decoration:underline}.tabs{display:flex;gap:.2rem;padding:0 1rem;background:#fff;border-bottom:1px solid var(--line);overflow-x:auto}.tab{padding:.75rem 1rem;text-decoration:none;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}.tab.on{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}main{padding:1rem;max-width:1100px;margin:0 auto}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem;margin:.8rem 0}.form{display:grid;gap:.8rem;max-width:720px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.6rem}.hint{background:#eef3f8;border-radius:8px;padding:.5rem .7rem;font-size:.9rem}.error{background:var(--err-bg);color:var(--err);border-radius:8px;padding:.6rem .8rem;margin:.6rem 0}.warnbar{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:.5rem .7rem;margin-top:.6rem}.badge{font-size:.8rem;padding:.1rem .5rem;border-radius:999px;background:#e9edf2;color:var(--muted);white-space:nowrap}.badge.warn{background:var(--warn-bg);color:var(--warn)}.chips{display:flex;gap:.4rem;flex-wrap:wrap}.chip{min-height:32px;padding:.2rem .7rem;border-radius:999px;font-size:.85rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.8rem;margin-top:.8rem}.gcard{display:grid;gap:.25rem;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.9rem;text-decoration:none;color:var(--ink)}.gcard:hover{border-color:var(--brand)}.gname{font-size:1.05rem;font-weight:600}.total{font-weight:700;color:var(--brand)}.ghead .payers{margin-top:.4rem}.seg{display:flex;flex-wrap:wrap;gap:.3rem}.seg button{min-height:38px}.seg button.on{background:var(--brand);color:#fff;border-color:var(--brand)}.lines .day{background:#fff;border:1px solid var(--line);border-radius:12px;margin:.8rem 0;overflow-x:auto}.dayhead{padding:.6rem .8rem;border-bottom:1px solid var(--line)}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:500;font-size:.82rem}td.num{text-align:right;white-space:nowrap}td.actions{white-space:nowrap}td.actions button{margin-left:.25rem}tr.pending{background:var(--pending)}.login{min-height:100vh;display:grid;place-items:center;padding:1rem}.login .card{width:min(380px,100%);display:grid;gap:.8rem}.login h1{font-size:1.3rem}@media (max-width: 640px){.grid2,.grid3{grid-template-columns:1fr}.top .who{margin-left:0}main{padding:.75rem}}
