:root{--bg:#f6f7f9;--card:#fff;--ink:#1f2328;--muted:#6b7280;--line:#e3e6ea;--line-strong:#c9cfd6;--accent:#2f54eb;--accent-soft:#eaeefb;--good:#16794a;--good-soft:#e7f4ee;--bad:#b42318;--bad-soft:#fbeae8;--radius:12px;color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}button{cursor:pointer;font-family:inherit}input{font-family:inherit}.app{max-width:1000px;margin:0 auto;padding:0 16px 64px}.topbar{z-index:10;background:var(--bg);border-bottom:1px solid var(--line);margin-bottom:20px;padding:14px 0 12px;position:sticky;top:0}.topbar-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.brand{margin-right:auto;font-size:16px;font-weight:700}.brand small{color:var(--muted);font-weight:500}.chips{background:var(--card);border:1px solid var(--line);border-radius:10px;gap:4px;padding:3px;display:inline-flex}.chip{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600;line-height:1.1}.chip small{opacity:.8;font-size:11px;font-weight:500;display:block}.chip[aria-pressed=true]{background:var(--accent);color:#fff}.toggle{border:1px solid var(--line-strong);border-radius:8px;gap:0;display:inline-flex;overflow:hidden}.toggle button{background:var(--card);color:var(--muted);border:0;padding:6px 12px;font-size:12px;font-weight:700}.toggle button[aria-pressed=true]{background:var(--ink);color:#fff}.pill{background:var(--good-soft);color:var(--good);white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700}.pill.warn{background:var(--bad-soft);color:var(--bad)}.tabs{-webkit-overflow-scrolling:touch;gap:4px;max-width:100%;display:inline-flex;overflow-x:auto}.tabs button{white-space:nowrap}.tab{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:7px 12px;font-size:14px;font-weight:600}.tab[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.metric .label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}.metric .value{margin-top:6px;font-size:26px;font-weight:700}.metric .value.good{color:var(--good)}.metric .value.bad{color:var(--bad)}.metric .sub{color:var(--muted);margin-top:4px;font-size:12px}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:26px 0 10px;font-size:13px;font-weight:700}.chart-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 8px 8px}.banner{border-radius:10px;align-items:flex-start;gap:10px;margin-top:4px;padding:12px 14px;font-size:14px;display:flex}.banner.good{background:var(--good-soft);color:var(--good)}.banner.bad{background:var(--bad-soft);color:var(--bad)}.banner b{font-weight:700}details.workings{margin-top:12px;font-size:13px}details.workings summary{cursor:pointer;color:var(--accent);font-weight:600}.workings table{border-collapse:collapse;width:100%;margin-top:10px;font-size:13px}.workings td{border-bottom:1px solid var(--line);padding:5px 0}.workings td:last-child{text-align:right;font-variant-numeric:tabular-nums}.workings tr.total td{border-bottom:0;font-weight:700}.ybytable{border-collapse:collapse;min-width:720px;font-size:12.5px}.ybytable th{text-align:right;color:var(--muted);border-bottom:1px solid var(--line-strong);white-space:nowrap;padding:6px 10px;font-weight:600}.ybytable th:first-child{text-align:left}.ybytable td{text-align:right;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap;padding:5px 10px}.ybytable td.yr{text-align:left;font-weight:600}.ybytable tr.short td{background:var(--bad-soft)}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--muted);font-size:12px;font-weight:600}.field input{border:1px solid var(--line-strong);border-radius:8px;width:140px;padding:9px 11px;font-size:15px}.catchips{flex-wrap:wrap;gap:6px;display:flex}.catchip{border:1px solid var(--line-strong);background:var(--card);color:var(--ink);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600}.catchip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.btn{background:var(--accent);color:#fff;border:0;border-radius:9px;padding:10px 16px;font-size:14px;font-weight:700}.btn.ghost{background:var(--card);color:var(--ink);border:1px solid var(--line-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.log{margin:12px 0 0;padding:0;list-style:none}.log li{border-bottom:1px solid var(--line);align-items:baseline;gap:12px;padding:9px 0;font-size:14px;display:flex}.log .amt{font-variant-numeric:tabular-nums;font-weight:700}.log .cat{color:var(--accent);font-weight:600}.log .date{color:var(--muted);margin-left:auto;font-size:12px}.log .note{color:var(--muted)}.log .del{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;margin-left:12px;padding:2px 6px;font-size:14px;line-height:1}.log .del:hover{background:var(--bad-soft);color:var(--bad)}.fresh{color:var(--muted);font-size:12px}.fresh.stale{color:var(--bad)}.muted{color:var(--muted)}.hint{color:var(--muted);margin-top:6px;font-size:13px}.pacebar{background:var(--line);border-radius:999px;height:12px;margin-top:14px;position:relative;overflow:visible}.pacebar-fill{border-radius:999px;height:100%;transition:width .2s}.pacebar-target{background:var(--ink);width:2px;height:18px;position:absolute;top:-3px}.pacebar-legend{color:var(--muted);justify-content:space-between;margin-top:5px;font-size:11px;display:flex}.catbars{flex-direction:column;gap:6px;margin-top:14px;display:flex}.catbar{grid-template-columns:90px 1fr 72px;align-items:center;gap:10px;font-size:13px;display:grid}.catbar-name{color:var(--muted)}.catbar-track{background:var(--line);border-radius:999px;height:9px;overflow:hidden}.catbar-fill{background:var(--accent);border-radius:999px;height:100%;display:block}.catbar-amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.effect-note{background:var(--accent-soft);border-radius:10px;margin-top:14px;padding:12px 14px;font-size:13.5px;line-height:1.5}.recent{margin-top:12px;font-size:12.5px}
