:root{--bg:#fff8f0;--text:#8b5a2b;--accent:#ff8c00;--accent-dark:#e07a00;--card:#fff;--line:#f3e3d0;--ok:#3f8f4a;--warn:#b7791f;--bad:#c0392b;--chart-accent:#b35a00;--chart-muted:#e8a04f;--chart-track:#fbe3c6;--radius-card:24px;--radius-btn:16px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Prompt,Noto Sans Thai,system-ui,sans-serif}.page{max-width:560px;margin:0 auto;padding:32px 16px 48px}.hero{text-align:center;margin-bottom:24px}.hero-dog{font-size:64px;line-height:1}.hero h1{margin:8px 0 4px;font-size:32px}.hero p{opacity:.8;margin:0}.card{background:var(--card);border:2px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:16px;padding:24px;display:flex;box-shadow:0 8px 24px #8b5a2b14}.field-label{font-weight:600}.text-input{font:inherit;color:inherit;border:2px solid var(--line);border-radius:var(--radius-btn);background:var(--bg);padding:12px 16px}.text-input:focus{border-color:var(--accent);outline:none}.notice{color:var(--bad);margin:0}.btn{font:inherit;border-radius:var(--radius-btn);cursor:pointer;text-align:center;border:2px solid #0000;padding:14px 20px;font-weight:600;transition:transform .1s,background .2s}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-dark)}.btn-outline{background:var(--bg);color:var(--text);border-color:var(--accent)}.btn-ghost{color:var(--text);background:0 0}.upload{border-style:dashed;padding:24px;display:block}.slip-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.slip{border:2px solid var(--line);border-radius:var(--radius-btn);gap:12px;padding:12px;display:flex;position:relative}.slip-remove{background:var(--bg);width:32px;height:32px;color:var(--bad);font:inherit;cursor:pointer;border:none;border-radius:50%;font-weight:600;position:absolute;top:8px;right:8px}.slip-error .slip-body{padding-right:32px}.slip-remove:hover{background:#f1c9c4}.slip img{object-fit:cover;background:var(--bg);border-radius:12px;flex-shrink:0;width:72px;height:96px}.slip-body{flex:1;min-width:0}.slip-status{margin:0 0 6px;font-weight:600}.slip-success{border-color:#cfe8d2}.slip-success .slip-status{color:var(--ok)}.slip-duplicate{border-color:#f1dfb8}.slip-duplicate .slip-status{color:var(--warn)}.slip-error{border-color:#f1c9c4}.slip-error .slip-status{color:var(--bad)}.slip-working{border-color:var(--accent)}.slip-data{grid-template-columns:auto 1fr;gap:2px 12px;margin:0;font-size:14px;display:grid}.slip-data dt{opacity:.7}.slip-data dd{overflow-wrap:anywhere;margin:0}.slip-message{overflow-wrap:anywhere;margin:0;font-size:14px}.sniff{margin-right:6px;animation:.6s ease-in-out infinite alternate sniff;display:inline-block}@keyframes sniff{0%{transform:translate(-2px)rotate(-8deg)}to{transform:translate(2px)rotate(8deg)}}.actions{flex-direction:column;gap:8px;display:flex}.footer{text-align:center;opacity:.7;margin-top:24px;font-size:14px}.card.notice{margin:0 0 16px}.card+.card{margin-top:16px}.tabs{gap:8px;margin-bottom:16px;display:flex}.tab{font:inherit;color:var(--text);background:var(--card);border:2px solid var(--line);border-radius:var(--radius-btn);cursor:pointer;flex:1;padding:12px 8px;font-weight:600}.tab-active{background:var(--accent);border-color:var(--accent);color:#fff}.dash-message{text-align:center;align-items:center}.dash-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.dash-title{text-align:center;margin:0;font-size:20px}.month-nav{width:44px;height:44px;font:inherit;color:var(--text);background:var(--bg);border:2px solid var(--line);cursor:pointer;border-radius:50%;flex-shrink:0;font-size:24px}.month-nav:disabled{opacity:.35;cursor:not-allowed}.hero-figure{flex-direction:column;align-items:center;gap:4px;display:flex}.hero-value{font-size:40px;font-weight:600;line-height:1.1}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.stat{background:var(--bg);border-radius:var(--radius-btn);text-align:center;min-width:0;padding:12px 8px}.stat-label{opacity:.75;font-size:13px}.stat-value{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:4px 0 0;font-weight:600}.delta-up{color:var(--bad)}.delta-down{color:var(--ok)}.section-title{margin:0;font-size:17px}.chart-readout{font-variant-numeric:tabular-nums;min-height:1.4em;margin:-8px 0 0;font-size:14px}.bars{border-bottom:1px solid var(--line);align-items:stretch;height:180px;display:flex}.bar-col{min-width:0;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:4px;padding:0 1px;display:flex}.bar-track{flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.bar{background:var(--chart-muted);border-radius:4px 4px 0 0;width:100%;max-width:24px;min-height:2px}.bar-col:hover .bar,.bar-col:focus-visible .bar{background:var(--accent)}.bar-col-selected .bar,.bar-col-selected:hover .bar{background:var(--chart-accent)}.bar-label{opacity:.75;white-space:nowrap;font-size:11px}.bar-col-selected .bar-label{opacity:1;font-weight:600}.dash-empty{opacity:.75;margin:0}.receivers{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.receiver-row{justify-content:space-between;gap:12px;display:flex}.receiver-name{overflow-wrap:anywhere;min-width:0}.receiver-total{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.meter{background:var(--chart-track);border-radius:4px;height:8px;margin-top:4px;overflow:hidden}.meter-fill{background:var(--chart-accent);border-radius:4px;height:100%;display:block}.receiver-count{opacity:.7;font-size:12px}.expense-list{margin:0;padding:0;list-style:none}.expense{border-top:1px solid var(--line);grid-template-columns:56px 1fr auto;align-items:start;gap:12px;padding:10px 0;display:grid}.expense:first-child{border-top:none}.expense-when{opacity:.75;font-variant-numeric:tabular-nums;font-size:13px}.expense-what{overflow-wrap:anywhere;min-width:0}.expense-memo{opacity:.7;font-size:13px;display:block}.expense-amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.logout{margin:16px auto 0;display:block}
