:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface:#1a1a19;--surface-raised:#232322;--text-primary:#fff;--text-secondary:#c3c2b7;--text-muted:#8a8a86;--border:#33322f;--grid:#33322f;--warning-bg:#332a12;--warning-border:#8a6a1f;--warning-text:#e8c477;--warning-row-bg:#e8c4771a;--outlier-bg:#211c33;--outlier-border:#9085e9;--outlier-text:#9085e9;--outlier-row-bg:#9085e91f;--critical-bg:#33201e;--critical-border:#e2685c;--critical-text:#f0897d;--persistent-bg:#211c33;--persistent-border:#9085e9;--persistent-text:#9085e9;--persistent-row-bg:#9085e91f;--kpi-positive:#3fcf8e;--kpi-negative:#e2685c;--accent:#a855f7;--accent-text-on-accent:#14100a;--shadow-xs:0 0 0 1px #ffffff05;--shadow-sm:0 0 0 1px #ffffff08, 0 2px 4px #0000004d;--shadow-md:0 0 0 1px #ffffff0a, 0 6px 16px #0006;--shadow-lg:0 0 0 1px #ffffff0f, 0 16px 32px #00000080;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-16:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:999px;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:.9375rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-hero:2.25rem;--text-2xl:2rem;--text-3xl:2.5rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--ease-standard:cubic-bezier(.2, 0, 0, 1);--duration-fast:.1s;--duration-base:.15s;--duration-slow:.2s;--font-body:system-ui, "Segoe UI", Roboto, sans-serif;--font-display:"Cormorant Garamond", Georgia, serif;font:16px/1.5 var(--font-body);background:var(--surface);color:var(--text-primary)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface:#fcfcfb;--surface-raised:#fff;--text-primary:#0b0b0b;--text-secondary:#52514e;--text-muted:#8a8a86;--border:#e5e4e0;--grid:#d8d7d2;--warning-bg:#fdf3e3;--warning-border:#e8c477;--warning-text:#8a5a00;--warning-row-bg:#e8c47729;--outlier-bg:#f1eefa;--outlier-border:#8a7fd1;--outlier-text:#4a3aa7;--outlier-row-bg:#4a3aa714;--critical-bg:#fce9e7;--critical-border:#d03b3b;--critical-text:#a12a2a;--persistent-bg:#f1eefa;--persistent-border:#8a7fd1;--persistent-text:#4a3aa7;--persistent-row-bg:#4a3aa714;--kpi-positive:#1a7f4b;--kpi-negative:#a03329;--accent:#7c3aed;--accent-text-on-accent:#fff;--shadow-xs:0 1px 2px #1018280a;--shadow-sm:0 1px 3px #1018280f, 0 1px 2px #1018280a;--shadow-md:0 4px 10px #10182814, 0 2px 4px #1018280a;--shadow-lg:0 12px 28px #10182824, 0 4px 8px #1018280f}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.skeleton{background-position:0 0!important;animation:none!important}}*{box-sizing:border-box}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}body{background:radial-gradient(1100px 640px at 50% -8%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 65%), var(--surface);min-height:100vh;color:var(--text-primary);background-attachment:fixed;margin:0}#app{max-width:1200px;padding:var(--space-10) var(--space-8) var(--space-16);margin:0 auto}.page-header h1{font-family:var(--font-display);font-size:var(--text-hero);font-weight:var(--weight-regular);margin:0 0 4px}.eyebrow{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 var(--space-1)}.page-subtitle{color:var(--text-secondary);margin:0 0 var(--space-6);max-width:68ch}.month-select-label{align-items:center;gap:var(--space-2);font-size:var(--text-base);color:var(--text-secondary);margin-bottom:var(--space-6);display:inline-flex}.month-select-label select{font:inherit;padding:4px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary)}.page-nav{gap:var(--space-1);margin:var(--space-3) 0 var(--space-5);border-bottom:1px solid var(--border);display:flex}.page-nav a{color:var(--text-secondary);font-size:var(--text-base);font-weight:var(--weight-medium);padding:var(--space-2) 4px;margin-right:var(--space-5);transition:color var(--duration-fast) ease;border-bottom:2px solid #0000;text-decoration:none}.page-nav a:hover{color:var(--text-primary)}.page-nav a.page-nav-link--active{color:var(--accent);border-bottom-color:var(--accent)}.tab-strip{max-width:100%;margin:0 0 var(--space-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);gap:2px;padding:3px;display:inline-flex;overflow-x:auto}.tab-strip-link{padding:6px var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);white-space:nowrap;transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;text-decoration:none;display:inline-block}.tab-strip-link:hover{color:var(--text-primary)}.tab-strip-link--active{background:var(--surface-raised);color:var(--accent);box-shadow:var(--shadow-xs)}.kpi-value--positive{color:var(--kpi-positive)}.kpi-value--negative{color:var(--kpi-negative)}.kpi-row{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.kpi-tile{background:linear-gradient(180deg, color-mix(in srgb, var(--surface-raised) 100%, white 4%), var(--surface-raised) 65%);border:1px solid color-mix(in srgb, var(--border) 65%, transparent);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-base) ease, border-color var(--duration-base) ease, transform var(--duration-base) ease}.kpi-tile:hover{box-shadow:var(--shadow-md);border-color:color-mix(in srgb, var(--text-primary) 12%, var(--border));transform:translateY(-1px)}.kpi-tile--positive{border-top:3px solid var(--kpi-positive)}.kpi-tile--negative{border-top:3px solid var(--kpi-negative)}.kpi-row--featured .kpi-tile{padding:var(--space-6) var(--space-8);box-shadow:var(--shadow-md), 0 0 32px #dcbe8c0d}:root[data-theme=light] .kpi-row--featured .kpi-tile{box-shadow:var(--shadow-md)}.kpi-row--featured .kpi-value{font-size:var(--text-3xl)}.kpi-value{font-size:var(--text-2xl);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.kpi-label{color:var(--text-secondary);font-size:var(--text-sm);margin-top:var(--space-1)}.chart-section{gap:var(--space-6);margin-bottom:var(--space-8);grid-template-columns:1fr;display:grid}.chart-section--split{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}@media (width<=480px){.chart-section--split{grid-template-columns:1fr}}.budget-split-pane{align-items:start;gap:var(--space-6);grid-template-columns:3fr 1fr;display:grid}@media (width<=800px){.budget-split-pane{grid-template-columns:1fr!important}}.budget-split-pane-chart,.budget-split-pane-panel{min-width:0;transition:box-shadow var(--duration-base) ease, border-color var(--duration-base) ease}.budget-split-pane-panel{flex-direction:column;height:100%;display:flex}.budget-split-pane-chart:not(.budget-split-pane-side--primary),.budget-split-pane-panel:not(.budget-split-pane-side--primary){cursor:pointer}.budget-split-pane-chart:not(.budget-split-pane-side--primary):hover,.budget-split-pane-panel:not(.budget-split-pane-side--primary):hover{border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.compact-transaction-list{margin:var(--space-2) 0 0;flex-direction:column;gap:1px;padding:0;list-style:none;display:flex;overflow-y:auto}.compact-transaction-row{gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--border);font-size:var(--text-sm);grid-template-columns:44px 1fr auto;align-items:baseline;display:grid}.compact-transaction-row:last-child{border-bottom:none}.compact-transaction-date{color:var(--text-muted);white-space:nowrap}.compact-transaction-desc{text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);overflow:hidden}.compact-transaction-amount{font-variant-numeric:tabular-nums;white-space:nowrap}#budget-panel-more a{color:var(--accent);text-decoration:none}#budget-panel-more a:hover{text-decoration:underline}.chart-section--featured{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}@media (width<=800px){.chart-section--featured{grid-template-columns:1fr}}.chart-card--primary{box-shadow:var(--shadow-md)}.chart-card--primary .chart-heading h2{font-size:var(--text-lg)}.heatmap-scroll{overflow-x:auto}.chart-card{background:linear-gradient(180deg, color-mix(in srgb, var(--surface-raised) 100%, white 4%), var(--surface-raised) 65%);border:1px solid color-mix(in srgb, var(--border) 65%, transparent);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6) var(--space-2);box-shadow:var(--shadow-sm)}.chart-card h2{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-medium);margin:0 0 var(--space-2)}.chart-heading{gap:var(--space-2);margin-bottom:var(--space-2);flex-direction:column;display:flex}.chart-heading h2{margin:0}.chart-drill-total{color:var(--text-secondary);font-size:var(--text-sm)}.chart-breadcrumb{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.chart-breadcrumb-sep{color:var(--text-secondary);font-size:var(--text-xs)}.chart-breadcrumb-link{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;transition:background-color var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease;padding:3px 10px}.chart-breadcrumb-link:hover{background:var(--surface-raised);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, var(--border))}.chart-breadcrumb-link:active{transform:scale(.97)}.chart-breadcrumb-link--current{color:var(--text-primary);font-weight:var(--weight-medium);cursor:default;pointer-events:none;background:0 0;border-color:#0000}.chart-container{width:100%}.legend{gap:var(--space-4);margin-bottom:var(--space-1);display:flex}.legend-item{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);display:inline-flex}.legend-swatch{width:10px;height:10px;transition:transform var(--duration-fast) ease;border-radius:2px;display:inline-block}.legend-item--clickable{cursor:pointer}.legend-item--clickable:hover{color:var(--text-primary)}.legend-item--clickable:hover .legend-swatch{transform:scale(1.2)}.legend-item--selected{color:var(--text-primary);font-weight:var(--weight-semibold)}.bar-chart{overflow:visible}.bar-chart .chart-gridline{stroke:var(--grid);stroke-width:1px}.bar-chart .chart-axis-label{fill:var(--text-secondary);font-size:11px}.bar-chart .chart-bar{transition:opacity var(--duration-base) ease, filter var(--duration-fast) ease}.bar-chart .chart-bar--clickable{cursor:pointer}.bar-chart .chart-bar--dimmed{opacity:.35}.bar-chart .chart-bar:not(.chart-bar--dimmed):hover{filter:brightness(1.08)}.chart-container--transitioning svg{opacity:.4;transition:opacity var(--duration-fast) ease}.scroll-focus{transition:transform var(--duration-slow) var(--ease-standard), opacity var(--duration-slow) var(--ease-standard), filter var(--duration-slow) var(--ease-standard);transform-origin:50% 0}.scroll-focus--focused{opacity:1;filter:none;z-index:1;position:relative;transform:scale(1.015)}.scroll-focus--receded{opacity:.5;filter:saturate(.75);transform:scale(.96)}.chart-tooltip{pointer-events:none;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow-lg);z-index:1000;font-size:var(--text-sm);opacity:0;transition:opacity var(--duration-fast) ease;display:none;position:fixed}.chart-tooltip--visible{opacity:1;display:block}.chart-tooltip-label{color:var(--text-secondary)}.chart-tooltip-value{color:var(--text-primary);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.chart-tooltip-linekey{vertical-align:middle;width:10px;height:2px;margin-right:6px;display:inline-block}.line-chart{overflow:visible}.line-chart .chart-line-marker{stroke:var(--surface-raised);stroke-width:2px;transition:r var(--duration-fast) ease}.line-chart .chart-line-hover-dot{stroke:var(--surface-raised);stroke-width:2px;transition:r var(--duration-fast) ease;pointer-events:none}.line-chart .chart-crosshair{stroke:var(--text-muted);stroke-width:1px;opacity:0;pointer-events:none}.line-chart .chart-crosshair--visible{opacity:1}.line-chart .chart-hit-column{fill:#0000;cursor:crosshair}.line-chart .chart-hit-column--clickable{cursor:pointer}.bar-chart .chart-zeroline{stroke:var(--text-muted);stroke-width:1.5px}.heatmap-table{border-collapse:collapse;font-size:var(--text-xs);font-variant-numeric:tabular-nums;min-width:100%}.heatmap-table th{color:var(--text-secondary);text-align:left;white-space:nowrap;padding:6px 10px;font-weight:500}.heatmap-table thead th{border-bottom:1px solid var(--border);text-align:center}.heatmap-table tbody th{text-align:right;border-right:1px solid var(--border)}.heatmap-cell{text-align:center;color:#0b0b0b;white-space:nowrap;padding:10px 12px;transition:opacity .15s}.heatmap-cell--emphasis{font-weight:600}.heatmap-cell--empty{color:var(--text-muted)}.heatmap-cell--clickable{cursor:pointer}.heatmap-cell--clickable:hover{filter:brightness(1.08)}.table-section{background:linear-gradient(180deg, color-mix(in srgb, var(--surface-raised) 100%, white 4%), var(--surface-raised) 65%);border:1px solid color-mix(in srgb, var(--border) 65%, transparent);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-6);box-shadow:var(--shadow-sm);overflow-x:auto}.table-section--scroll{max-height:560px;overflow-y:auto}.table-section h2{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-medium);margin:0 0 var(--space-3)}.drilldown-header{justify-content:space-between;align-items:center;display:flex}.pagination{justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-3);font-size:var(--text-sm);display:flex}.pagination-status{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.pagination-btn{font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-raised);color:var(--text-primary);cursor:pointer;transition:background-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;padding:5px 12px}.pagination-btn:hover:not(:disabled){background:var(--surface);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, var(--border));box-shadow:var(--shadow-xs)}.pagination-btn:active:not(:disabled){transform:scale(.97)}.pagination-btn:disabled{color:var(--text-muted);cursor:default;opacity:.6}.drilldown-filter{color:var(--text-secondary);font-size:var(--text-base);margin:0 0 var(--space-3)}#drilldown-clear,#budget-drilldown-clear{border:1px solid var(--border);background:var(--surface);color:var(--text-primary);border-radius:var(--radius-sm);padding:4px var(--space-3);cursor:pointer;font-size:var(--text-base)}.hidden{display:none}.duplicate-banner,.outlier-banner{align-items:center;gap:var(--space-4);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-6);font-size:var(--text-base);box-shadow:var(--shadow-xs);flex-wrap:wrap;display:flex}.duplicate-banner{background:var(--warning-bg);border:1px solid var(--warning-border);border-left:3px solid var(--warning-border);justify-content:space-between}.duplicate-banner-text{color:var(--warning-text)}.duplicate-banner-toggle{align-items:center;gap:var(--space-2);color:var(--warning-text);white-space:nowrap;cursor:pointer;display:inline-flex}.outlier-banner{background:var(--outlier-bg);border:1px solid var(--outlier-border);border-left:3px solid var(--outlier-border)}.outlier-banner-text{color:var(--outlier-text)}.banner-icon{color:currentColor;flex:none;width:18px;height:18px}.banner-message{align-items:center;gap:var(--space-2);display:flex}.early-warnings{margin-bottom:var(--space-6)}.early-warnings-empty{color:var(--text-secondary);font-size:var(--text-base);margin:0}.alert-subsection{padding-top:var(--space-4);border-top:1px solid var(--border)}.alert-subsection:first-of-type{border-top:none;padding-top:0}.alert-subsection-summary{align-items:center;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;display:flex}.alert-subsection-summary::-webkit-details-marker{display:none}.alert-subsection-summary:after{content:"";border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);width:6px;height:6px;transition:transform var(--duration-fast) ease;margin-left:auto;transform:rotate(-45deg)}.alert-subsection[open]>.alert-subsection-summary:after{transform:rotate(45deg)}.alert-subsection-summary:hover .alert-subsection-title{color:var(--text-secondary)}.alert-subsection .alert-list{margin-top:var(--space-2)}.alert-subsection-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);transition:color var(--duration-fast) ease}.alert-count-badge{font-size:var(--text-xs);font-weight:var(--weight-bold);border-radius:var(--radius-full);background:color-mix(in srgb, var(--text-muted) 18%, transparent);color:var(--text-secondary);text-align:center;min-width:1.4em;padding:1px 7px}.alert-count-badge--warning{background:var(--warning-border);color:var(--surface-raised)}.alert-count-badge--critical{background:var(--critical-border);color:var(--surface-raised)}.alert-count-badge--persistent{background:var(--persistent-border);color:var(--surface-raised)}.alert-list{margin:0 0 var(--space-3);gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.alert-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-base);border-left:3px solid #0000;display:flex}.alert-item-badge{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;border-radius:4px;padding:1px 6px}.alert-item--warning{background:var(--warning-row-bg);border-left-color:var(--warning-border);color:var(--warning-text)}.alert-item--warning .alert-item-badge{background:var(--warning-border);color:var(--surface-raised)}.alert-item--critical{background:var(--critical-bg);border-left-color:var(--critical-border);color:var(--critical-text)}.alert-item--critical .alert-item-badge{background:var(--critical-border);color:var(--surface-raised)}.alert-item--persistent{background:var(--persistent-row-bg);border-left-color:var(--persistent-border);color:var(--persistent-text)}.alert-item--persistent .alert-item-badge{background:var(--persistent-border);color:var(--surface-raised)}.narrative-driver-list{margin:0 0 var(--space-3);flex-direction:column;gap:1px;padding:0;list-style:none;display:flex}.narrative-driver{gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border);font-size:var(--text-sm);grid-template-columns:3.5em 1fr auto;align-items:baseline;display:grid}.narrative-driver:last-child{border-bottom:none}.narrative-driver-badge{font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.narrative-driver--favorable .narrative-driver-badge{color:var(--kpi-positive)}.narrative-driver--unfavorable .narrative-driver-badge{color:var(--kpi-negative)}.narrative-driver-label{color:var(--text-primary)}.narrative-driver-amount{color:var(--text-secondary);white-space:nowrap}.row-duplicate{background:var(--warning-row-bg)}.row-duplicate:hover{background:color-mix(in srgb, var(--warning-row-bg) 100%, var(--text-primary) 4%)}.row-duplicate td:first-child{box-shadow:inset 3px 0 0 var(--warning-border)}.row-outlier{background:var(--outlier-row-bg)}.row-outlier:hover{background:color-mix(in srgb, var(--outlier-row-bg) 100%, var(--text-primary) 4%)}.row-outlier td:first-child{box-shadow:inset 3px 0 0 var(--outlier-border)}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.data-table th{text-align:left;color:var(--text-secondary);font-weight:var(--weight-medium);border-bottom:1px solid var(--border);padding:6px var(--space-3);white-space:nowrap}.data-table thead th{background:var(--surface-raised);z-index:1;box-shadow:0 1px 0 var(--border);border-bottom:none;position:sticky;top:0}.data-table td{padding:6px var(--space-3);border-bottom:1px solid var(--border);white-space:nowrap}.data-table .num{text-align:right}.data-table-total-row td{font-weight:var(--weight-semibold);border-top:2px solid var(--border);border-bottom:none}.cell-muted{color:var(--text-secondary);font-style:italic}.data-table tbody tr{transition:background-color var(--duration-fast) ease}.data-table tbody tr:hover{background:color-mix(in srgb, var(--text-primary) 4%, transparent)}.clickable-row{cursor:pointer}.clickable-row:hover{background:var(--surface)}.clickable-row--selected{background:color-mix(in srgb, var(--text-primary) 6%, transparent);font-weight:var(--weight-semibold)}.chart-empty-state{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-4);color:var(--text-muted);flex-direction:column;min-height:180px;display:flex}.chart-empty-icon{opacity:.5;width:32px;height:32px}.chart-empty-text{font-size:var(--text-sm);margin:0}.skeleton-overlay{z-index:500;background:var(--surface);position:fixed;inset:0;overflow-y:auto}.skeleton-page{max-width:1200px;padding:var(--space-10) var(--space-8) var(--space-16);margin:0 auto}.skeleton{background:linear-gradient(100deg, var(--border) 30%, color-mix(in srgb, var(--border) 50%, var(--surface-raised)) 50%, var(--border) 70%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-sweep}@keyframes skeleton-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-title{width:320px;height:28px;margin-bottom:var(--space-2)}.skeleton-subtitle{width:560px;max-width:100%;height:16px;margin-bottom:var(--space-6)}.skeleton-kpi-row{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.skeleton-kpi{height:78px}.skeleton-chart{height:320px;margin-bottom:var(--space-8)}.app-error{text-align:center;max-width:480px;padding:var(--space-8) var(--space-6);margin:15vh auto 0}.app-error-icon{width:40px;height:40px;margin:0 auto var(--space-4);color:var(--critical-border)}.app-error-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-medium);margin:0 0 var(--space-2)}.app-error-body{color:var(--text-secondary);font-size:var(--text-base);margin:0 0 var(--space-5)}.app-error-retry{font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-raised);color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-xs);padding:8px 20px}.app-error-retry:hover{background:var(--surface);box-shadow:var(--shadow-sm)}.theme-toggle{top:var(--space-4);right:var(--space-4);z-index:600;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-raised);width:36px;height:36px;color:var(--text-primary);cursor:pointer;box-shadow:var(--shadow-sm);transition:background-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;justify-content:center;align-items:center;padding:0;display:flex;position:fixed}.theme-toggle svg{width:18px;height:18px}.theme-toggle:hover{background:var(--surface);box-shadow:var(--shadow-md)}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-400-normal-B-1hWBU7.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-400-normal-B7YtguxJ.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-ext-400-normal-Drx2k2n9.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-400-normal-uvC0WHQr.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-normal-DYeaGGzO.woff)format("woff")}
