:root{--ink: #15171b;--ink-soft: #2b2f37;--brand: #f05a28;--brand-strong: #d8481b;--brand-ink: #b23c12;--bg: #f5f6f9;--surface: #ffffff;--surface-2: #fbfbfd;--surface-fade: rgba(255, 255, 255, 0);--muted: #575e6b;--muted-soft: #676e7a;--line: #e7e9ef;--line-strong: #d6dae2;--ok: #16a34a;--ok-bg: #e9f7ee;--ok-ink: #15803d;--warn: #b7791f;--warn-bg: #fdf3e2;--warn-ink: #8f5f04;--off: #6b7280;--off-bg: #eef0f3;--off-ink: #4b5563;--danger: #dc2626;--danger-bg: #fdecec;--danger-ink: #b91c1c;--info: #2563eb;--info-bg: #e8effd;--info-ink: #1d4ed8;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono: ui-monospace, "Cascadia Mono", Consolas, "Liberation Mono", monospace;--fs-3xs: .6875rem;--fs-2xs: .75rem;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--fs-3xl: clamp(2rem, 1.55rem + 1.5vw, 2.5rem);--fs-4xl: clamp(2.375rem, 1.6rem + 2.6vw, 3.25rem);--lh-tight: 1.1;--lh-snug: 1.3;--lh-base: 1.55;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--ls-tight: -.02em;--ls-heading: -.012em;--ls-label: .04em;--measure: 68ch;--measure-narrow: 46ch;--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-12: 48px;--space-16: 64px;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(16, 18, 22, .06), 0 1px 3px rgba(16, 18, 22, .04);--shadow-md: 0 8px 24px rgba(16, 18, 22, .08);--shadow-lg: 0 18px 48px rgba(16, 18, 22, .12);--tap: 44px;--tap-sm: 36px;--focus-ring: 3px solid color-mix(in srgb, var(--brand) 55%, white);--container: 1200px;--container-narrow: 780px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font);font-size:var(--fs-md);color:var(--ink);background:var(--bg);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;line-height:var(--lh-tight);letter-spacing:var(--ls-heading);font-weight:var(--fw-bold)}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}p{margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font-family:inherit}strong{font-weight:var(--fw-semibold)}code{font-family:var(--font-mono);font-size:.86em;background:var(--off-bg);padding:2px 6px;border-radius:6px}:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:4px}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}.container--narrow{max-width:var(--container-narrow)}.hidden{display:none!important}.muted{color:var(--muted)}.text-link{color:var(--brand-ink);font-weight:var(--fw-semibold)}.text-link:hover{text-decoration:underline}.page-title{font-size:var(--fs-2xl);font-weight:var(--fw-bold);letter-spacing:var(--ls-heading);line-height:var(--lh-tight)}.page-subtitle{margin-top:var(--space-1);font-size:var(--fs-md);color:var(--muted);max-width:var(--measure)}.section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-4)}.section-head__meta{font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}.eyebrow{display:block;font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.text-lead{font-size:var(--fs-lg);line-height:var(--lh-snug);color:var(--ink-soft);max-width:var(--measure)}.text-sm{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.measure{max-width:var(--measure)}.measure--narrow{max-width:var(--measure-narrow)}.nowrap{white-space:nowrap}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.money{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;white-space:nowrap;text-align:right}.money--pos{color:var(--ok-ink)}.money--neg{color:var(--danger-ink)}.money--zero{color:var(--muted)}.unit{font-weight:var(--fw-semibold);font-size:.86em;color:var(--muted-soft)}.visually-hidden,.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.stack{display:grid;gap:var(--space-4);align-content:start}.stack--sm{gap:var(--space-2)}.stack--lg{gap:var(--space-6)}.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.cluster--between{justify-content:space-between}.cluster--end{justify-content:flex-end}.divider{height:1px;border:0;margin:var(--space-6) 0;background:var(--line)}.button{--btn-bg: var(--brand);--btn-fg: #fff;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap);padding:12px 20px;border:1px solid transparent;border-radius:var(--r-pill);background:var(--btn-bg);color:var(--btn-fg);font-weight:var(--fw-semibold);font-size:var(--fs-sm);line-height:1.2;cursor:pointer;transition:transform .12s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease;text-align:center}.button:hover{background:var(--brand-strong);box-shadow:0 8px 20px color-mix(in srgb,var(--brand) 30%,transparent);transform:translateY(-1px)}.button:active{transform:translateY(0)}.button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.button:focus-visible{outline:var(--focus-ring);outline-offset:2px}.button--ghost{--btn-bg: transparent;--btn-fg: var(--ink);border-color:var(--line-strong)}.button--ghost:hover{--btn-bg: var(--surface);background:var(--surface);border-color:var(--ink);box-shadow:var(--shadow-sm)}.button--danger{--btn-bg: var(--danger)}.button--danger:hover{background:#b91c1c}.button--quiet{--btn-bg: transparent;--btn-fg: var(--muted);border-color:transparent;padding-left:var(--space-3);padding-right:var(--space-3)}.button--quiet:hover{background:var(--off-bg);color:var(--ink);box-shadow:none;transform:none}.button--icon{min-width:var(--tap);padding:0;font-size:var(--fs-md)}.button--sm{min-height:var(--tap-sm);padding:7px 14px;font-size:var(--fs-xs)}.button--icon.button--sm{min-width:var(--tap-sm);padding:0}.button--block{width:100%}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card--pad{padding:var(--space-5)}.card--quiet{background:var(--surface-2);border-color:var(--line);box-shadow:none}.card--flush{border:0;background:none;box-shadow:none;padding:0}.card--accent{border-color:color-mix(in srgb,var(--brand) 26%,var(--line));box-shadow:var(--shadow-md)}.section{margin-top:var(--space-8)}.section--tight{margin-top:var(--space-5)}.section--loose{margin-top:var(--space-12)}.section-title{font-size:var(--fs-xl);letter-spacing:var(--ls-heading);line-height:var(--lh-tight)}.section-title span{color:var(--muted);font-weight:var(--fw-semibold);font-size:var(--fs-sm);letter-spacing:0;font-variant-numeric:tabular-nums;margin-left:var(--space-1)}.metric-grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:stretch}.metric-grid--tight{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.metric{display:grid;gap:var(--space-2);align-content:start;min-width:0}.metric__label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--muted);line-height:var(--lh-snug)}.metric__value{font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;overflow-wrap:anywhere}.metric__note{font-size:var(--fs-xs);line-height:1.45;color:var(--muted);max-width:var(--measure-narrow)}.metric__foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-1)}.metric__delta{font-size:var(--fs-xs);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;color:var(--muted)}.metric--quiet .metric__value{font-size:var(--fs-xl);color:var(--ink-soft)}.metric--positive .metric__value{color:var(--ok-ink)}.metric--negative .metric__value{color:var(--danger-ink)}.metric--primary{gap:var(--space-3);padding:var(--space-6);border:1px solid color-mix(in srgb,var(--brand) 24%,var(--line));border-radius:var(--r-lg);background:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--brand) 9%,var(--surface)),var(--surface) 62%);box-shadow:var(--shadow-md)}.metric--primary .metric__label{font-size:var(--fs-md);color:var(--ink-soft)}.metric--primary .metric__value{font-size:var(--fs-3xl)}.metric--primary .metric__note{font-size:var(--fs-sm);max-width:var(--measure)}.metric-grid>.metric--primary,.admin-form-grid>.metric--primary{grid-column:1 / -1}.form-grid{display:grid;gap:var(--space-4);margin-top:var(--space-4)}.admin-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4);align-items:start}.field{display:grid;gap:var(--space-2);min-width:0}.field label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--ink-soft);line-height:var(--lh-snug)}.field input,.field select,.field textarea{width:100%;min-height:var(--tap);padding:11px 14px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-sm);transition:border-color .15s ease,box-shadow .15s ease}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:var(--focus-ring);outline-offset:1px}.field input::placeholder{color:var(--muted-soft)}.field input[type=date],.field input[type=number]{font-variant-numeric:tabular-nums}.field input[type=file]{padding:8px 10px;font-size:var(--fs-xs);cursor:pointer}.field input[type=file]::file-selector-button{margin-right:var(--space-3);min-height:var(--tap-sm);padding:7px 14px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink);font:inherit;font-size:var(--fs-xs);font-weight:var(--fw-semibold);cursor:pointer}.field input[type=file]:hover::file-selector-button{border-color:var(--ink);background:var(--surface)}.admin-form-grid>.field select,.admin-form-grid>.field input[type=file],.admin-form-grid>.field input[type=date]{max-width:440px}.field--narrow input,.field--narrow select{max-width:260px}.field--inline{grid-template-columns:auto 1fr;align-items:center}.field-hint{font-size:var(--fs-xs);line-height:1.45;color:var(--muted);max-width:var(--measure)}.password-wrap{position:relative}.password-wrap input{padding-right:var(--tap)}.password-reveal{position:absolute;top:0;right:0;height:100%;min-height:var(--tap);width:var(--tap);display:flex;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;font-size:var(--fs-md);line-height:1;color:var(--ink-soft);border-radius:var(--r-md)}.form-actions{display:flex;gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--r-md);border-left:3px solid var(--info);background:var(--info-bg);color:var(--info-ink);font-size:var(--fs-sm);line-height:1.5;margin:var(--space-3) 0}.notice--error{background:var(--danger-bg);border-left-color:var(--danger);color:var(--danger-ink)}.notice--success{background:var(--ok-bg);border-left-color:var(--ok);color:var(--ok-ink)}.notice--warn{background:var(--warn-bg);border-left-color:var(--warn);color:var(--warn-ink)}.notice--quiet{background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--line-strong);color:var(--ink-soft)}.notice strong{font-weight:var(--fw-bold)}.notice .button{vertical-align:middle;margin-top:var(--space-1)}.state{display:grid;gap:var(--space-3);justify-items:start;padding:var(--space-10) var(--space-6);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}.state--center{justify-items:center;text-align:center}.state__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--off-bg);color:var(--muted);font-size:var(--fs-xl);line-height:1}.state__title{font-size:var(--fs-lg);font-weight:var(--fw-bold);letter-spacing:var(--ls-heading);line-height:var(--lh-snug)}.state__text{font-size:var(--fs-sm);line-height:1.55;color:var(--muted);max-width:var(--measure)}.state__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}.state__ref{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--muted-soft);word-break:break-all}.state--empty{background:var(--surface-2);border:1px dashed var(--line-strong)}.state--empty .state__icon{background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand-ink)}.state--error{border-color:color-mix(in srgb,var(--danger) 30%,var(--line));border-left:4px solid var(--danger);padding:var(--space-6);box-shadow:var(--shadow-sm)}.state--error .state__icon{background:var(--danger-bg);color:var(--danger-ink)}.state--error .state__title{color:var(--danger-ink)}.state--error .state__text{color:var(--ink-soft)}.state--loading{padding:var(--space-6);border-style:solid;background:var(--surface)}.state--loading .state__title{font-size:var(--fs-md);color:var(--muted);font-weight:var(--fw-semibold)}.is-busy{opacity:.55;transition:opacity .18s ease}.is-stale{opacity:.34;filter:saturate(.3);transition:opacity .18s ease}.spinner{display:inline-block;width:18px;height:18px;vertical-align:-3px;border-radius:50%;border:2px solid color-mix(in srgb,var(--brand) 28%,var(--line));border-top-color:var(--brand);animation:tm-spin .7s linear infinite}.spinner--lg{width:28px;height:28px;border-width:3px}.loading-row{display:flex;align-items:center;gap:var(--space-3);font-size:var(--fs-sm);color:var(--muted)}.skeleton{display:block;border-radius:var(--r-sm);background-color:var(--line);background-image:linear-gradient(90deg,var(--line) 0%,var(--surface-2) 50%,var(--line) 100%);background-size:200% 100%;animation:tm-shimmer 1.4s linear infinite}.skeleton--text{height:12px;margin:var(--space-2) 0}.skeleton--title{height:18px;width:42%;margin-bottom:var(--space-3)}.skeleton--value{height:30px;width:62%}.skeleton--short{width:55%}.skeleton--block{height:180px;border-radius:var(--r-md)}.skeleton-stack{display:grid;gap:var(--space-3)}.skeleton-grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}@keyframes tm-spin{to{transform:rotate(360deg)}}@keyframes tm-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.badge{display:inline-block;padding:3px 10px;border-radius:var(--r-pill);border:1px solid transparent;font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:1.45;background:var(--off-bg);color:var(--off-ink);font-variant-numeric:tabular-nums;white-space:nowrap}.badge--ok{background:var(--ok-bg);color:var(--ok-ink)}.badge--warn{background:var(--warn-bg);color:var(--warn-ink)}.badge--danger{background:var(--danger-bg);color:var(--danger-ink)}.badge--info{background:var(--info-bg);color:var(--info-ink)}.badge--muted{background:var(--surface-2);border-color:var(--line-strong);color:var(--muted)}.badge--outline{background:transparent;border-color:currentColor}.badge--soft{font-weight:var(--fw-medium)}.table-wrap{background-color:var(--surface);background-image:linear-gradient(to right,var(--surface),var(--surface-fade)),linear-gradient(to left,var(--surface),var(--surface-fade)),radial-gradient(farthest-side at 0 50%,#10121621,#10121600),radial-gradient(farthest-side at 100% 50%,#10121621,#10121600);background-position:left center,right center,left center,right center;background-repeat:no-repeat;background-size:28px 100%,28px 100%,12px 100%,12px 100%;background-attachment:local,local,scroll,scroll;border:1px solid var(--line);border-radius:var(--r-lg);overflow-x:auto;overscroll-behavior-x:contain;box-shadow:var(--shadow-sm)}.table-wrap table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table-wrap th{text-align:left;font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-label);line-height:1.3;color:var(--muted);background:var(--surface-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);white-space:normal;hyphens:none}.table-wrap th.nowrap{white-space:nowrap}.table-wrap td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);vertical-align:middle;line-height:1.45}.table-wrap tbody tr:last-child td{border-bottom:none}.table-wrap tbody tr:hover{background:var(--surface-2)}.table-wrap .num,.table-wrap th.num{text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.table-wrap td.num{white-space:nowrap}.table-wrap--dense th,.table-wrap--dense td{padding:var(--space-2) var(--space-3)}.table-wrap--sticky{max-height:min(70vh,640px);overflow-y:auto}.table-wrap--sticky th{position:sticky;top:0;z-index:1}.table-wrap tfoot td,.table-wrap .row-total td{background:var(--surface-2);border-top:2px solid var(--line-strong);border-bottom:none;font-weight:var(--fw-bold)}.table-wrap tbody tr.row-sub td{background:var(--surface-2);color:var(--ink-soft);font-size:var(--fs-xs);border-bottom-color:color-mix(in srgb,var(--line) 60%,var(--surface-2))}.table-wrap tbody tr.row-sub td:first-child{padding-left:var(--space-8)}.table-wrap tbody tr.row-sub:hover td{background:color-mix(in srgb,var(--line) 30%,var(--surface-2))}.cell-title{font-weight:var(--fw-semibold);color:var(--ink)}.cell-meta{display:block;margin-top:2px;font-size:var(--fs-2xs);color:var(--muted)}.col-shrink{width:1%;white-space:nowrap}.table-note{margin-top:var(--space-2);font-size:var(--fs-xs);color:var(--muted);max-width:var(--measure)}.row-actions{display:flex;gap:var(--space-2);justify-content:flex-end;white-space:nowrap}td.row-actions{display:table-cell;text-align:right;white-space:normal}td.row-actions>*{vertical-align:middle;margin:2px 0 2px var(--space-2)}.charts{display:grid;gap:var(--space-4);margin:var(--space-4) 0}.charts-row{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.chart{position:relative;min-width:0;margin:0;padding:var(--space-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.chart-head{margin:0 0 var(--space-3)}.chart-title{font-size:var(--fs-md);letter-spacing:var(--ls-heading)}.chart-note{font-size:var(--fs-xs);line-height:1.45;margin-top:var(--space-1);max-width:var(--measure)}.chart-legend{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin-bottom:var(--space-3);font-size:var(--fs-xs);color:var(--muted)}.chart-key{display:inline-flex;align-items:center;gap:var(--space-2)}.chart-key i{width:12px;height:12px;border-radius:3px}.chart-key--up i{background:var(--info)}.chart-key--down i{background:var(--danger)}.chart-plot{min-width:0;overflow-x:auto}.chart-plot svg{display:block}.chart-mark--up{fill:var(--info)}.chart-mark--down{fill:var(--danger)}.chart-mark--faded{opacity:.28}.chart-axis{stroke:var(--line-strong);stroke-width:1;fill:none}.chart-zero{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:3 3;fill:none}.chart-link{stroke:var(--line-strong);stroke-width:1;fill:none}.chart-name{fill:var(--ink);font-size:12px;font-weight:var(--fw-semibold)}.chart-figure{fill:var(--ink-soft);font-size:12px;font-variant-numeric:tabular-nums}.chart-figure--down{fill:var(--danger-ink)}.chart-tick{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.chart-hit{fill:transparent}.chart-item{outline:none}.chart-item:hover .chart-mark,.chart-item:focus-visible .chart-mark{opacity:.75}.chart-item:focus-visible .chart-hit{stroke:var(--brand);stroke-width:2}.chart-tip{position:absolute;z-index:2;pointer-events:none;max-width:min(260px,78vw);padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow-md);font-size:var(--fs-xs);line-height:1.4;transform:translate(-50%,-100%)}.chart-tip strong{display:block;font-size:var(--fs-sm);font-weight:var(--fw-bold)}.chart-tip dl{display:grid;grid-template-columns:auto auto;gap:2px var(--space-3);margin:var(--space-2) 0 0}.chart-tip dt{color:var(--muted)}.chart-tip dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.admin-layout{padding:var(--space-8) 0 var(--space-16);min-height:100vh}.page-brand{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);border-radius:var(--r-md)}.page-brand img{height:26px}.page-brand span{font-weight:var(--fw-semibold);font-size:var(--fs-sm);color:var(--muted);letter-spacing:0}.page-brand .page-brand__role{color:var(--muted-soft);font-weight:var(--fw-regular)}.admin-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4)}.admin-topbar--flush{margin-bottom:0}.card--gap{margin-bottom:var(--space-4)}.admin-topbar__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.admin-tabs{display:flex;gap:var(--space-1);margin:var(--space-5) 0 var(--space-1);border-bottom:1px solid var(--line);overflow-x:auto}.admin-tab{border:none;background:none;min-height:var(--tap);padding:var(--space-3) var(--space-4);font-weight:var(--fw-semibold);font-size:var(--fs-sm);color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color .15s ease,border-color .15s ease,background .15s ease;border-radius:var(--r-sm) var(--r-sm) 0 0}.admin-tab:hover{color:var(--ink);background:var(--surface-2)}.admin-tab.is-active,.admin-tab[aria-selected=true]{color:var(--brand-ink);border-bottom-color:var(--brand)}.admin-tab:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.admin-tab span{color:var(--muted);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;margin-left:var(--space-1)}.login-panel{max-width:440px;margin:8vh auto 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:var(--space-8)}.login-panel h1{font-size:var(--fs-xl);margin-bottom:var(--space-2)}.login-panel .muted{font-size:var(--fs-sm)}.panel-footnote{margin-top:var(--space-4);font-size:var(--fs-xs);line-height:1.5;max-width:var(--measure)}.landing{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-6)}.landing-hero{max-width:560px;width:100%;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:var(--space-10) var(--space-8) var(--space-8)}.landing-hero img{height:44px;margin:0 auto var(--space-4)}.landing-hero h1{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.landing-tagline{color:var(--ink);font-size:var(--fs-xl);font-weight:var(--fw-semibold);line-height:var(--lh-snug);letter-spacing:var(--ls-heading);margin:var(--space-3) auto 0;max-width:26ch}.landing-features{display:grid;gap:var(--space-3);margin:var(--space-6) 0;text-align:left;counter-reset:tm-step}.landing-feature{display:flex;gap:var(--space-3);align-items:flex-start;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-soft);counter-increment:tm-step}.landing-feature:before{content:counter(tm-step);flex:0 0 24px;height:24px;margin-top:1px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--brand) 14%,var(--surface));color:var(--brand-ink);font-size:var(--fs-2xs);font-weight:var(--fw-bold);line-height:1}.landing-actions{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.landing-footer{margin-top:var(--space-5);font-size:var(--fs-xs);color:var(--muted);text-align:center}.landing-footer a:hover{color:var(--ink);text-decoration:underline}@media (max-width: 900px){.metric--primary{padding:var(--space-5)}}@media (max-width: 720px){.container{padding:0 var(--space-4)}.admin-layout{padding:var(--space-6) 0 var(--space-12)}.login-panel{padding:var(--space-6) var(--space-5);margin-top:4vh}.section-title,.page-title{font-size:var(--fs-lg)}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3)}.metric__value{font-size:var(--fs-xl)}.table-wrap th,.table-wrap td{padding:var(--space-3) var(--space-3)}.row-actions{flex-direction:column;align-items:stretch}td.row-actions{text-align:left}td.row-actions>*{margin:2px var(--space-2) 2px 0}.chart{padding:var(--space-4) var(--space-3)}.landing{padding:var(--space-8) var(--space-4)}.landing-hero{padding:var(--space-8) var(--space-5) var(--space-6)}.landing-actions .button{flex:1 1 100%}.state{padding:var(--space-8) var(--space-5)}}@media (max-width: 420px){.admin-topbar__actions,.form-actions{width:100%}.admin-topbar__actions .button,.form-actions .button{flex:1 1 auto}}@media (pointer: coarse){.button--sm{min-height:40px}.button--sm:after{content:"";position:absolute;inset:-4px;border-radius:inherit}.admin-tab{padding-left:var(--space-5);padding-right:var(--space-5)}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.button:hover{transform:none}}@media print{body{background:#fff}.notice{display:none}.table-wrap{border:1px solid #ccc;box-shadow:none;background-image:none;overflow:visible}.card,.chart,.metric--primary{box-shadow:none}.skeleton,.spinner{display:none}}.sticky-actions{position:sticky;bottom:0;z-index:2;display:flex;gap:var(--space-3);align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm)}.money-input,.note-input{min-height:var(--tap-sm);padding:7px 10px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:inherit}.money-input{width:8rem;font-variant-numeric:tabular-nums;text-align:right}.note-input{width:100%;min-width:9rem}.money-input:focus,.note-input:focus{border-color:var(--brand);outline:2px solid color-mix(in srgb,var(--brand) 35%,transparent);outline-offset:1px}.money-input.is-changed,.note-input.is-changed{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,var(--surface))}.money-input[aria-invalid=true]{border-color:var(--danger, #b91c1c)}
