:root,[data-bs-theme=light]{--canvas:#f3f2ed;--surface:#fff;--surface-2:#faf9f5;--surface-3:#f1f0ea;--text:#18211c;--text-muted:#5e6b62;--text-faint:#8a948c;--border:#18281f1a;--border-strong:#18281f29;--accent:#0b6b4f;--accent-strong:#095a42;--accent-contrast:#fff;--accent-soft:#0b6b4f1a;--accent-rgb:11, 107, 79;--pos:#0f8a52;--neg:#c0492f;--shadow-sm:0 1px 2px #18281f0f, 0 1px 3px #18281f0d;--shadow-md:0 4px 12px #18281f12, 0 2px 6px #18281f0d;--shadow-lg:0 18px 50px -18px #18281f4d, 0 8px 20px -12px #18281f2e;--radius:16px;--radius-sm:11px;--radius-xs:8px;--breakpoint-md:1200px;--color-red:var(--neg);--color-green:var(--pos);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-bs-theme=dark]{--canvas:#0d1311;--surface:#161d19;--surface-2:#1c2420;--surface-3:#232c27;--text:#e8ece9;--text-muted:#9bab9f;--text-faint:#6e7c73;--border:#ffffff1a;--border-strong:#ffffff2b;--accent:#34d39b;--accent-strong:#5fe0b3;--accent-contrast:#06231a;--accent-soft:#34d39b24;--accent-rgb:52, 211, 155;--pos:#43cd86;--neg:#f0735c;--shadow-sm:0 1px 2px #0006;--shadow-md:0 6px 18px #00000073;--shadow-lg:0 24px 60px -20px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--bs-body-font-family:var(--font-body), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--bs-body-bg:var(--canvas);--bs-body-color:var(--text);--bs-secondary-color:var(--text-muted);--bs-secondary-bg:var(--surface-2);--bs-tertiary-bg:var(--surface-3);--bs-emphasis-color:var(--text);--bs-border-color:var(--border);--bs-primary:var(--accent);--bs-primary-rgb:var(--accent-rgb);--bs-link-color:var(--accent);--bs-link-color-rgb:var(--accent-rgb);--bs-link-hover-color:var(--accent-strong);--bs-border-radius:var(--radius-sm);--bs-border-radius-lg:var(--radius);--bs-border-radius-sm:var(--radius-xs);--bs-card-bg:var(--surface);--bs-card-border-color:var(--border);--bs-card-cap-bg:var(--surface-2);--bs-emphasis-color-rgb:24, 40, 31}[data-bs-theme=dark]{--bs-emphasis-color-rgb:232, 236, 233}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--canvas);background-image:radial-gradient(1100px 560px at 102% -8%, var(--accent-soft), transparent 55%), radial-gradient(820px 480px at -8% 4%, var(--accent-soft), transparent 50%);letter-spacing:.005em;background-attachment:fixed;min-height:100vh}.container{max-width:1080px}h1,h2,h3,h4,.navbar-brand{font-family:var(--font-display), Georgia, serif;font-optical-sizing:auto;letter-spacing:-.015em;color:var(--text)}h1{margin-bottom:.6rem;font-size:clamp(1.7rem,1.2rem + 1.7vw,2.5rem);font-weight:600;line-height:1.1}h2{margin-top:.4rem;font-size:clamp(1.3rem,1.05rem + .9vw,1.7rem);font-weight:600}h3{color:var(--text);font-size:1.15rem;font-weight:500}p{color:var(--text-muted)}a{text-underline-offset:.18em;text-decoration-thickness:1px;transition:color .16s}::selection{background:var(--accent-soft);color:var(--text)}hr{border-color:var(--border);opacity:1}.num,.amount,td.amount,.kpi-value,pre{font-family:var(--font-mono), ui-monospace, "SF Mono", monospace;font-variant-numeric:tabular-nums}.app-navbar{z-index:1030;background:color-mix(in oklab, var(--surface) 80%, transparent);-webkit-backdrop-filter:saturate(160%)blur(14px);backdrop-filter:saturate(160%)blur(14px);border-bottom:1px solid var(--border);--bs-navbar-color:var(--text-muted);--bs-navbar-hover-color:var(--text);--bs-navbar-active-color:var(--accent);--bs-navbar-brand-color:var(--text);--bs-navbar-brand-hover-color:var(--text);--bs-navbar-toggler-border-color:var(--border);padding-block:.55rem;position:sticky;top:0}.app-navbar .navbar-brand{letter-spacing:-.02em;align-items:center;gap:.5rem;font-size:1.32rem;font-weight:600;display:inline-flex}.app-navbar .navbar-brand img{filter:none}.app-navbar .nav-link{font-family:var(--font-body);border-radius:var(--radius-xs);padding-inline:.85rem;font-size:.95rem;font-weight:500;transition:color .16s,background-color .16s;position:relative}.app-navbar .nav-link:hover{background:var(--accent-soft)}.app-navbar .nav-link.active{color:var(--accent)}.app-navbar .navbar-toggler{border-radius:var(--radius-xs);padding:.35rem .5rem}.app-navbar .navbar-toggler:focus{box-shadow:0 0 0 3px var(--accent-soft)}.status-pill{border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:.5rem;padding:.32rem .72rem;font-size:.82rem;font-weight:500;display:inline-flex}.status-pill .status-dot{background:var(--text-faint);border-radius:50%;width:.55rem;height:.55rem;box-shadow:0 0 #0000}.status-pill.is-loaded{color:var(--accent);border-color:color-mix(in oklab, var(--accent) 35%, var(--border));background:var(--accent-soft)}.status-pill.is-loaded .status-dot{background:var(--pos);box-shadow:0 0 0 4px color-mix(in oklab, var(--pos) 22%, transparent)}.theme-toggle{border:1px solid var(--border);background:var(--surface-2);width:2.3rem;height:2.3rem;color:var(--text);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;transition:background-color .16s,border-color .16s,transform .16s;display:inline-flex}.theme-toggle:hover{background:var(--accent-soft);border-color:color-mix(in oklab, var(--accent) 30%, var(--border));color:var(--accent)}.theme-toggle:active{transform:scale(.93)}.theme-toggle svg{width:1.15rem;height:1.15rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .18s,transform .18s,border-color .18s}.card:hover{box-shadow:var(--shadow-md)}.card .card-body{flex-direction:column;padding:1.15rem 1.25rem;display:flex}.card .card-body>div:first-child{color:var(--text-muted);letter-spacing:.01em;font-size:.82rem;font-weight:500}.card .card-body strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--text);margin-top:auto;padding-top:.5rem;font-size:1.5rem;font-weight:600;display:block}.table{--bs-table-bg:transparent;--bs-table-color:var(--text);border-collapse:separate;border-spacing:0;margin-bottom:0}.table thead th{color:var(--text-faint);font-family:var(--font-body);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--border-strong);background:0 0;padding-block:.7rem;font-size:.72rem;font-weight:600}.table tbody td,.table tbody th{border-top:1px solid var(--border);vertical-align:middle;color:var(--text);padding-block:.65rem}.table.table-striped>tbody>tr>td,.table.table-striped>tbody>tr>th,.table tbody tr:nth-child(odd)>td,.table tbody tr:nth-child(odd)>th,.table tbody tr:nth-child(2n)>td,.table tbody tr:nth-child(2n)>th{background-color:#0000!important}.table tbody tr{transition:background-color .12s}.table tbody tr:hover>td,.table tbody tr:hover>th{background-color:var(--accent-soft)!important}.table th{cursor:pointer}.table-responsive{border-radius:var(--radius)}.amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:600}.btn{--bs-btn-border-radius:var(--radius-xs);font-family:var(--font-body);font-weight:500;transition:background-color .16s,border-color .16s,color .16s,transform .1s,box-shadow .16s}.btn:active{transform:translateY(1px)}.btn-primary{--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-color:var(--accent-contrast);--bs-btn-hover-bg:var(--accent-strong);--bs-btn-hover-border-color:var(--accent-strong);--bs-btn-hover-color:var(--accent-contrast);--bs-btn-active-bg:var(--accent-strong);--bs-btn-active-border-color:var(--accent-strong);--bs-btn-active-color:var(--accent-contrast);--bs-btn-disabled-bg:var(--accent);--bs-btn-disabled-border-color:var(--accent);box-shadow:var(--shadow-sm)}.btn-success{--bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-color:var(--accent-contrast);--bs-btn-hover-bg:var(--accent-strong);--bs-btn-hover-border-color:var(--accent-strong);--bs-btn-hover-color:var(--accent-contrast)}.btn-secondary{--bs-btn-bg:var(--surface-3);--bs-btn-border-color:var(--border-strong);--bs-btn-color:var(--text);--bs-btn-hover-bg:var(--surface-2);--bs-btn-hover-border-color:var(--accent);--bs-btn-hover-color:var(--text);--bs-btn-active-bg:var(--surface-2);--bs-btn-active-color:var(--text)}.btn-link{--bs-btn-color:var(--accent);--bs-btn-hover-color:var(--accent-strong);font-weight:500;text-decoration:none}.btn-link:hover{text-decoration:underline}.btn:focus-visible,.form-control:focus,.form-select:focus{box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent);outline:none}.form-control,.form-select{background-color:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-xs);color:var(--text);padding:.55rem .8rem}.form-control::placeholder{color:var(--text-faint)}.input-group-text{background:var(--surface-2);border-color:var(--border-strong);color:var(--text-muted);border-radius:var(--radius-xs)}.form-control[type=file]{padding:.5rem .8rem}.form-control[type=file]::file-selector-button{background:var(--surface-3);color:var(--text);border-radius:var(--radius-xs);border:0;margin-inline-end:.8rem;padding:.4rem .8rem;font-weight:500;transition:background-color .16s}.form-control[type=file]::file-selector-button:hover{background:var(--accent-soft);color:var(--accent)}.form-check-input:checked{background-color:var(--accent);border-color:var(--accent)}.form-check-input:focus{box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent)}.alert{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.alert-info{background:var(--accent-soft);color:var(--text);border-color:color-mix(in oklab, var(--accent) 28%, var(--border))}.alert-success{background:color-mix(in oklab, var(--pos) 14%, var(--surface));color:var(--text);border-color:color-mix(in oklab, var(--pos) 40%, var(--border))}.alert-danger{background:color-mix(in oklab, var(--neg) 13%, var(--surface));color:var(--text);border-color:color-mix(in oklab, var(--neg) 40%, var(--border))}.upload-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:640px;box-shadow:var(--shadow-lg);margin:clamp(1.5rem,5vh,4rem) auto 0;padding:clamp(1.4rem,3vw,2.4rem)}.upload-panel h1{letter-spacing:-.03em}.upload-panel .form-control,.upload-panel .form-select{background:var(--surface-2)}.chart-card,canvas{max-width:100%}pre{box-sizing:border-box;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1rem 1.1rem;font-size:.85rem;overflow:auto;background:var(--surface)!important}footer{border-top:1px solid var(--border);color:var(--text-muted);padding-top:1.5rem;padding-bottom:2.5rem;margin-top:4rem!important}footer .btn-link{padding-inline:.35rem}.red{color:var(--neg)}.green{color:var(--pos)}.dot{border-radius:50%;width:22px;height:22px;display:inline-block}.dot__green{background-color:var(--pos)}.dot__red{background-color:var(--neg)}.linkdecoration__none{color:var(--accent-contrast);text-decoration:none}@media only screen and (min-width:576px){.mobile__show{display:none}}@media only screen and (max-width:575.98px){.mobile__hide{display:none}}@keyframes ez-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.main-content>*{animation:.5s cubic-bezier(.22,.61,.36,1) both ez-rise}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}
