:root{--bg:#f6f4ef;--fg:#1a1a1a;--fg-muted:#6e6e6f;--fg-soft:#5e5e5f;--fg-body:#3a3a3b;--card:#fff;--border:#eceae3;--border-strong:#dedbd2;--accent:#1f8389;--accent-hover:#2ba4ac;--accent-dark:#0e3b40;--accent-soft-bg:#e6f7f8;--accent-soft-fg:#134b4f;--accent-glow:#38c1ca52;--warn-bg:#fff1ed;--warn-border:#ffc7b8;--warn-fg:#9e2b15;--warn-strong-fg:#c5371b;--error-fg:#d14b4b;--hidden-dot:#e0a23a;--font-heading:"Montserrat", system-ui, sans-serif;--font-body:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"Roboto Mono", ui-monospace, Menlo, Consolas, monospace;--shadow-card:0 2px 6px #0e3b400f, 0 1px 2px #0e3b400a;--shadow-pop:0 18px 48px #0e3b401a, 0 4px 12px #0e3b400d;--shadow-cta:0 14px 40px var(--accent-glow);--radius-card:24px;--radius-pill:999px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--accent-hover);outline-offset:2px}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:content-box;border:3px solid #0000;border-radius:99px}::-webkit-scrollbar-track{background:0 0}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.app-shell{align-items:stretch;min-height:100vh;display:flex}.app-sidebar{background:var(--card);border-right:1px solid var(--border);flex-direction:column;flex:none;gap:22px;width:232px;padding:20px 14px 40px;display:flex}.app-logo{align-items:center;gap:10px;padding:0 8px;display:flex}.app-logo img{flex:none;width:26px;height:26px}.app-logo-title{font-family:var(--font-heading);letter-spacing:-.02em;font-size:15px;font-weight:700;line-height:1.2}.app-logo-sub{color:var(--fg-muted);font-size:12px;line-height:1.3}.app-nav{flex-direction:column;gap:2px;display:flex}.app-nav a{text-align:left;border-radius:var(--radius-pill);width:100%;color:var(--fg);border:0;align-items:center;gap:8px;padding:9px 12px;font-size:13.5px;transition:background .14s cubic-bezier(.16,1,.3,1);display:flex}.app-nav a:hover{background:var(--accent-soft-bg);color:var(--fg)}.app-nav a[aria-current=page]{background:var(--accent-soft-bg);font-weight:600}.app-badge{font-family:var(--font-mono);border-radius:var(--radius-pill);color:var(--warn-fg);cursor:help;background:#ffe8e0;padding:2px 8px;font-size:12px}.app-content{flex-direction:column;flex:1;min-width:0;display:flex}.app-header{z-index:20;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#f6f4efdb;justify-content:space-between;align-items:center;gap:16px;padding:16px 28px 14px;display:flex;position:sticky;top:0}.app-header-title{font-family:var(--font-heading);font-size:16px;font-weight:700}.app-main{flex:1;width:100%;min-width:0;max-width:1240px;margin:0 auto;padding:22px 28px 100px}@media (max-width:700px){.app-shell{display:block}.app-sidebar{border-right:0;border-bottom:1px solid var(--border);gap:10px;width:100%;padding:12px 16px}.app-logo{padding:0}.app-nav{flex-flow:wrap;gap:4px}.app-nav a{width:auto;padding:7px 10px}.app-main{padding:16px 12px 64px}}.pill-input,.pill-select{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--card);color:var(--fg);padding:9px 13px;font-size:13px}.pill-input{flex:1;min-width:240px;max-width:400px;padding:10px 16px;font-size:13.5px}.pill-toggle{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--card);display:flex;overflow:hidden}.pill-toggle a,.pill-toggle button{cursor:pointer;color:var(--fg);background:0 0;border:0;padding:8px 14px;font-size:13px}.pill-toggle a[aria-pressed=true],.pill-toggle button[aria-pressed=true]{background:var(--accent);color:#fff}.pill-button{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--card);cursor:pointer;padding:9px 14px;font-size:12.5px}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-pill);cursor:pointer;box-shadow:var(--shadow-cta);border:0;padding:11px 22px;font-size:13.5px;font-weight:600}.btn-primary:hover{background:var(--accent-hover);color:#fff}.scope-line{font-family:var(--font-mono);color:var(--fg-muted);flex-wrap:wrap;gap:10px;font-size:12px;line-height:1.4;display:flex}.scope-line .sep{color:#c5c1b6}.card{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;padding:18px 24px 14px;display:flex}.card-head h2{font-family:var(--font-heading);margin:0;font-size:16px;font-weight:700;line-height:1.2}.card-head .meta{font-family:var(--font-mono);color:var(--fg-muted);font-size:12px}.panel-grid{grid-template-columns:repeat(auto-fit,minmax(min(390px,100%),1fr));align-items:start;gap:16px;display:grid}.panel-stack{flex-direction:column;gap:16px;display:flex}.kpi-row{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.kpi-tile{text-align:left;border:0;border-right:1px solid var(--border);cursor:pointer;font:inherit;color:inherit;background:0 0;flex-direction:column;gap:8px;padding:18px 20px 20px;transition:background .14s cubic-bezier(.16,1,.3,1);display:flex}.kpi-tile:hover{background:var(--bg)}.kpi-tile.static{cursor:default}.kpi-label{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:600}.kpi-value{font-family:var(--font-mono);letter-spacing:-.02em;font-size:26px;font-weight:500;line-height:1.05}.kpi-sub{color:var(--fg-soft);font-size:12.5px;line-height:1.45}.kpi-sub a{color:var(--fg-soft);text-decoration:underline}.kpi-marker-warn,.kpi-marker-ok{align-items:center;gap:5px;margin-top:2px;font-size:12px;font-weight:600;display:inline-flex}.kpi-marker-warn{color:var(--warn-fg)}.kpi-marker-ok{color:var(--accent-soft-fg)}.kpi-marker-warn a,.kpi-marker-ok{text-decoration:none}.kpi-strip{background:var(--bg);flex-wrap:wrap;align-items:center;gap:18px;padding:14px 24px;font-size:13px;display:flex}.kpi-strip .eq{font-family:var(--font-mono);color:var(--fg-body)}.status-dot{align-items:center;gap:7px;display:inline-flex}.status-dot .dot{border-radius:var(--radius-pill);flex:none;width:8px;height:8px}.breakdown-row{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:0;grid-template-columns:minmax(0,1fr) minmax(48px,100px) minmax(126px,max-content);align-items:center;gap:14px;padding:9px 24px;transition:background .14s cubic-bezier(.16,1,.3,1);display:grid}.breakdown-row:hover{background:var(--bg)}.breakdown-name{align-items:center;gap:9px;min-width:0;display:flex}.cat-dot{border-radius:3px;flex:none;width:9px;height:9px}.breakdown-name span:last-child{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;overflow:hidden}.breakdown-bar{border-radius:var(--radius-pill);background:var(--border);height:7px;overflow:hidden}.breakdown-bar>span{height:7px;display:block}.breakdown-amount{font-family:var(--font-mono);text-align:right;white-space:nowrap;font-size:13px}.breakdown-count{font-family:var(--font-body);margin-top:2px;font-size:11px;font-weight:500;display:block}@media (max-width:440px){.breakdown-row{grid-template-columns:minmax(0,1fr) max-content;gap:10px;padding-inline:14px}.breakdown-bar{display:none}}.breakdown-total{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) 100px 126px;gap:14px;margin-top:8px;padding:12px 24px 0;font-size:13.5px;font-weight:600;display:grid}.breakdown-total .num{text-align:right}.action-item{border:0;border-top:1px solid var(--border);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;align-items:center;gap:14px;padding:14px 24px;transition:background .14s cubic-bezier(.16,1,.3,1);display:flex}.action-item:hover{background:var(--bg)}.action-item .title{font-size:13.5px;font-weight:600;line-height:1.4;display:block}.action-item .sub{color:var(--fg-soft);margin-top:3px;font-size:12.5px;line-height:1.5;display:block}.action-item .go{color:var(--accent);flex:none;font-size:12.5px;font-weight:600}.empty-note{color:var(--fg-body);padding:4px 24px 18px;font-size:13.5px;line-height:1.6}.tx-toolbar{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.tx-chip{border-radius:var(--radius-pill);background:var(--accent-soft-bg);color:var(--accent-soft-fg);align-items:center;gap:8px;padding:5px 8px 5px 13px;font-size:12.5px;display:inline-flex}.tx-chip button{border-radius:var(--radius-pill);cursor:pointer;width:18px;height:18px;color:var(--accent-soft-fg);background:#c7eef0;border:0;padding:0;font-size:12px;line-height:1}.clear-filters{cursor:pointer;color:var(--accent);background:0 0;border:0;font-size:12.5px;font-weight:600;text-decoration:underline}.tx-table-wrap{overflow-x:auto}.tx-head-row{border-bottom:1px solid var(--border);background:var(--bg);letter-spacing:.09em;text-transform:uppercase;height:42px;color:var(--fg-soft);align-items:center;padding:0 22px;font-size:12px;font-weight:600;display:grid}.tx-row{border-bottom:1px solid var(--border);cursor:default;align-items:center;height:52px;padding:0 22px;display:grid}.tx-row.amount-in{color:var(--fg)}.tx-cell-amount{font-family:var(--font-mono);text-align:right;font-size:13.5px}.tx-cell-date{font-family:var(--font-mono);color:var(--fg-soft);font-size:12.5px}.hidden-tag{font-size:10px;font-family:var(--font-mono);background:var(--warn-bg);color:var(--warn-fg);border-radius:var(--radius-pill);cursor:help;margin-left:6px;padding:1px 7px}.summary-strip{background:var(--bg);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;padding:14px 22px;display:flex}.category-select{border:1px solid var(--border-strong);font:inherit;background:var(--card);border-radius:8px;min-width:150px;padding:5px 8px;font-size:13px}.save-state{color:var(--fg-muted);margin-left:6px;font-size:11px}.save-state.error{color:var(--warn-strong-fg);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.status-chip{border-radius:var(--radius-pill);padding:2px 9px;font-size:12px;display:inline-block}.status-chip.open{color:var(--warn-fg);background:#ffe8e0}.status-chip.resolved{background:var(--accent-soft-bg);color:var(--accent-soft-fg)}.status-chip.none,.status-chip.snoozed,.status-chip.dismissed{background:var(--border);color:var(--fg-muted)}.error-banner{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-fg);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;padding:9px 14px;font-size:13px;display:flex}.error-banner button{background:var(--accent);color:#fff;border-radius:var(--radius-pill);cursor:pointer;border:0;padding:6px 14px;font-size:12.5px;font-weight:600}.skeleton{background:linear-gradient(90deg, var(--border) 25%, #eceef1 37%, var(--border) 63%);background-size:400% 100%;border-radius:12px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100%}to{background-position:0}}.rep-scroll{scrollbar-width:thin;overflow-x:auto}.rep-scroll:focus-visible{outline-offset:-2px}.rep-table{border-collapse:collapse;width:100%;min-width:720px;font-size:13.5px}.rep-table th,.rep-table td{border-bottom:1px solid var(--border);text-align:left;height:46px;padding:0 16px;font-weight:400}.rep-table thead th{background:var(--bg);letter-spacing:.09em;text-transform:uppercase;height:42px;color:var(--fg-soft);white-space:nowrap;font-size:12px;font-weight:600}.rep-table th:first-child,.rep-table td:first-child{padding-left:24px}.rep-table th:last-child,.rep-table td:last-child{padding-right:24px}.rep-table .num-col{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;width:150px}.rep-table .muted{color:#c5c1b6}.rep-table .soft,.soft{color:var(--fg-soft)}.rep-table .pos{color:#186468}.rep-table .strong,.strong{font-weight:600}.precision-marker{cursor:help;vertical-align:super;margin-left:2px;font-size:.75em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.warn{color:var(--warn-fg)}.rep-row.is-open{background:var(--bg)}.rep-row th{font-weight:600}.rep-toggle{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding:0;display:flex}.rep-toggle.static{cursor:default}.rep-toggle .chev{width:12px;color:var(--fg-muted);flex:none;font-size:11px}.rep-name{flex-wrap:wrap;align-items:center;gap:9px;display:inline-flex}.rep-badge{font-family:var(--font-mono);border-radius:var(--radius-pill);background:var(--bg);color:var(--fg-soft);padding:1px 8px;font-size:11px;font-weight:400}.rep-badge.warn{color:var(--warn-fg);background:#ffe8e0}.rep-sub td{height:38px;color:var(--fg-body);font-size:12.5px}.rep-sub td:first-child{padding-left:50px}.rep-sub-label{color:var(--fg-soft);font-size:12.5px;font-weight:400}.rep-table tfoot th,.rep-table tfoot td{background:var(--bg);border-bottom:0;height:50px;font-weight:600}.rep-months{min-width:1400px}.rep-months .num-col{width:96px;font-size:12.5px}.rep-result{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:22px;padding:14px 24px;font-size:14px;display:flex}.rep-result-main .num,.rep-result-warn .num{font-family:var(--font-mono);font-size:15px}.rep-result-warn{color:var(--warn-fg);font-weight:600}.rep-result-warn:hover{color:var(--warn-strong-fg)}.rep-foot-note{color:var(--fg-muted);margin:0;padding:12px 24px 18px;font-size:12.5px;line-height:1.5}.bridge{border-top:1px solid var(--border)}.bridge summary{cursor:pointer;color:var(--accent);padding:14px 24px;font-size:13.5px;font-weight:600}.bridge[open] summary{padding-bottom:10px}.bridge-table{min-width:560px}.bridge-sign{width:12px;font-family:var(--font-mono);color:var(--fg-muted);display:inline-block}.rep-empty-toggle th{font-size:13px;font-weight:400}.rep-scroll-hint{background:linear-gradient(to right, var(--card) 30%, #fff0) left center / 40px 100% no-repeat local, linear-gradient(to left, var(--card) 30%, #fff0) right center / 40px 100% no-repeat local, radial-gradient(farthest-side at 0 50%, #0e3b4024, transparent) left center / 14px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, #0e3b4024, transparent) right center / 14px 100% no-repeat scroll;scrollbar-width:auto}.rep-scroll-hint .rep-table thead th{background:0 0}.rep-scroll-hint::-webkit-scrollbar-thumb{background-color:var(--border-strong)}
