:root{--fin-bg:#f2f5f3;--fin-panel:#fff;--fin-raised:#eaefec;--fin-edge:#d3dcd7;--fin-normal:#2e7d32;--fin-finish:#0f766e;--fin-money:#9a6b0f;--fin-watch:#b45309;--fin-risk:#b91c1c;--fin-text:#16211d;--fin-muted:#5a6b65;--fin-on-accent:#fff;--fin-scrim:#10211d73;--fin-shadow:0 1px 2px #10211d0f, 0 1px 1px #10211d0a;--fin-hud-font:"Roboto Condensed", "Arial Narrow", ui-sans-serif, system-ui, sans-serif;--fin-num-font:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--fin-text-font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fin-radius:10px;--fin-gap:16px}.fin-root{background:var(--fin-bg);min-height:100dvh;color:var(--fin-text);font-family:var(--fin-text-font);font-size:15px;line-height:1.5}.fin-shell{max-width:1440px;margin:0 auto;padding:20px}@media (max-width:640px){.fin-shell{padding:12px}}.fin-hud{font-family:var(--fin-hud-font);letter-spacing:.12em;text-transform:uppercase;color:var(--fin-muted);font-size:11px;font-weight:600}.fin-num{font-family:var(--fin-num-font);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.fin-panel{background:var(--fin-panel);border:1px solid var(--fin-edge);border-radius:var(--fin-radius);box-shadow:var(--fin-shadow);padding:16px}.fin-raised{background:var(--fin-raised)}.fin-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.fin-header__brand{align-items:baseline;gap:10px;min-width:0;display:flex}.fin-header__title{font-family:var(--fin-hud-font);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:20px;font-weight:700}.fin-header__user{color:var(--fin-muted);align-items:center;gap:12px;font-size:13px;display:flex}.fin-nav{border-bottom:1px solid var(--fin-edge);scrollbar-width:thin;gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.fin-nav__link{font-family:var(--fin-hud-font);letter-spacing:.1em;text-transform:uppercase;color:var(--fin-muted);border-bottom:2px solid #0000;flex:none;padding:10px 14px;font-size:12px;font-weight:600;text-decoration:none;transition:color .15s,border-color .15s}.fin-nav__link:hover{color:var(--fin-text)}.fin-nav__link[aria-current=page]{color:var(--fin-text);border-bottom-color:var(--fin-money)}.fin-root :focus-visible,.fin-login :focus-visible{outline:2px solid var(--fin-money);outline-offset:2px;border-radius:4px}.fin-sync{color:var(--fin-muted);align-items:center;gap:8px;font-size:12px;display:flex}.fin-sync--stale{background:color-mix(in srgb, var(--fin-watch) 10%, var(--fin-panel));border:1px solid var(--fin-watch);border-radius:var(--fin-radius);color:var(--fin-text);padding:8px 12px}.fin-sync__dot{background:var(--fin-normal);border-radius:50%;flex:none;width:8px;height:8px}.fin-sync--stale .fin-sync__dot{background:var(--fin-watch)}.fin-tiles{gap:var(--fin-gap);margin-bottom:var(--fin-gap);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.fin-tile{background:var(--fin-panel);border:1px solid var(--fin-edge);border-radius:var(--fin-radius);box-shadow:var(--fin-shadow);padding:14px 16px}.fin-tile__value{font-family:var(--fin-num-font);font-variant-numeric:tabular-nums;word-break:break-word;margin-top:6px;font-size:26px;font-weight:600}.fin-tile__unit{color:var(--fin-muted);white-space:nowrap;margin-left:4px;font-size:13px}.fin-tile__hint{color:var(--fin-muted);margin-top:4px;font-size:12px}.fin-tile--money .fin-tile__value{color:var(--fin-money)}.fin-tile--risk .fin-tile__value{color:var(--fin-risk)}.fin-tile--normal .fin-tile__value{color:var(--fin-normal)}.fin-tile--watch .fin-tile__value{color:var(--fin-watch)}.fin-status{font-family:var(--fin-hud-font);letter-spacing:.1em;text-transform:uppercase;border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.fin-status--risk{color:var(--fin-risk)}.fin-status--watch{color:var(--fin-watch)}.fin-status--finish{color:var(--fin-finish)}.fin-status--normal{color:var(--fin-normal)}.fin-hexmap{background:var(--fin-panel);border:1px solid var(--fin-edge);border-radius:var(--fin-radius);box-shadow:var(--fin-shadow);padding:16px}.fin-hexmap__grid{touch-action:manipulation;max-width:100%;height:auto;display:block}.fin-hex{cursor:pointer;transform-origin:50%;transition:filter .15s,transform .15s}.fin-hex:hover,.fin-hex:focus-visible{filter:saturate(1.2)brightness(1.12)}.fin-hex__fill--risk{fill:var(--fin-risk)}.fin-hex__fill--watch{fill:var(--fin-watch)}.fin-hex__fill--finish{fill:var(--fin-finish)}.fin-hex__fill--normal{fill:var(--fin-normal)}.fin-hex__base{fill:var(--fin-edge);opacity:.9}.fin-hex__label{font-family:var(--fin-num-font);fill:var(--fin-on-accent);pointer-events:none;font-size:13px;font-weight:700}.fin-hex__overdue{fill:var(--fin-money);stroke:var(--fin-on-accent);stroke-width:1px;pointer-events:none}.fin-legend{color:var(--fin-muted);flex-wrap:wrap;gap:14px;margin-top:14px;font-size:12px;display:flex}.fin-legend__item{align-items:center;gap:6px;display:flex}.fin-legend__swatch{border-radius:3px;flex:none;width:12px;height:12px}.fin-table-wrap{border:1px solid var(--fin-edge);border-radius:var(--fin-radius);box-shadow:var(--fin-shadow);background:var(--fin-panel);overflow-x:auto}.fin-table{border-collapse:collapse;width:100%;min-width:640px;font-size:13px}.fin-table th,.fin-table td{text-align:left;border-bottom:1px solid var(--fin-edge);white-space:nowrap;padding:9px 12px}.fin-table th{font-family:var(--fin-hud-font);letter-spacing:.1em;text-transform:uppercase;color:var(--fin-muted);background:var(--fin-raised);z-index:1;font-size:11px;font-weight:600;position:sticky;top:0}.fin-table td.fin-num,.fin-table th.fin-num{text-align:right}.fin-table tbody tr:hover{background:var(--fin-raised)}.fin-table tbody tr:last-child td{border-bottom:none}.fin-table__total td{background:var(--fin-raised);font-weight:700}.fin-state{text-align:center;color:var(--fin-muted);background:var(--fin-panel);border:1px solid var(--fin-edge);border-radius:var(--fin-radius);box-shadow:var(--fin-shadow);padding:32px 20px}.fin-state__title{color:var(--fin-text);font-family:var(--fin-hud-font);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:14px;font-weight:600}.fin-state__text{max-width:52ch;margin:0 auto;font-size:13px}.fin-state--error{border-color:var(--fin-risk);background:color-mix(in srgb, var(--fin-risk) 5%, var(--fin-panel))}.fin-state--warn{border-color:var(--fin-watch);background:color-mix(in srgb, var(--fin-watch) 6%, var(--fin-panel))}.fin-skeleton{background:linear-gradient(90deg, var(--fin-panel) 25%, var(--fin-raised) 50%, var(--fin-panel) 75%);border-radius:var(--fin-radius);background-size:200% 100%;animation:1.4s linear infinite fin-shimmer}@keyframes fin-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.fin-skeleton{animation:none}.fin-hex,.fin-nav__link,.fin-drawer{transition:none!important}.fin-drawer{animation:none!important}}.fin-drawer__backdrop{background:var(--fin-scrim);z-index:40;position:fixed;inset:0}.fin-drawer{background:var(--fin-panel);border-left:1px solid var(--fin-edge);z-index:41;width:min(560px,100vw);padding:20px;animation:.18s ease-out fin-slide-in;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-8px 0 24px #10211d1f}@keyframes fin-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.fin-drawer__head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.fin-drawer__title{margin:0;font-size:17px;font-weight:600}.fin-drawer__section{margin-top:20px}.fin-drawer__section>h3{font-family:var(--fin-hud-font);letter-spacing:.12em;text-transform:uppercase;color:var(--fin-muted);margin:0 0 8px;font-size:11px;font-weight:600}.fin-kv{grid-template-columns:1fr auto;gap:4px 12px;font-size:13px;display:grid}.fin-kv__key{color:var(--fin-muted)}.fin-kv__val{font-family:var(--fin-num-font);font-variant-numeric:tabular-nums;text-align:right}.fin-button{font-family:var(--fin-hud-font);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--fin-radius);border:1px solid var(--fin-money);background:var(--fin-money);color:var(--fin-on-accent);cursor:pointer;width:100%;padding:10px 16px;font-size:12px;font-weight:600}.fin-button:hover{filter:brightness(1.08)}.fin-button--ghost{color:var(--fin-text);border-color:var(--fin-edge);background:0 0;margin-top:8px}.fin-button--small{width:auto;color:var(--fin-muted);border-color:var(--fin-edge);background:0 0;padding:6px 12px}.fin-field{margin-bottom:14px;display:block}.fin-input,.fin-select{background:var(--fin-panel);border:1px solid var(--fin-edge);border-radius:var(--fin-radius);width:100%;color:var(--fin-text);font-family:var(--fin-text-font);margin-top:6px;padding:9px 12px;font-size:14px}.fin-select{width:auto;font-family:var(--fin-hud-font);letter-spacing:.08em;text-transform:uppercase;margin-top:0;font-size:12px}.fin-filters{margin-bottom:var(--fin-gap);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fin-login{background:var(--fin-bg);min-height:100dvh;color:var(--fin-text);font-family:var(--fin-text-font);place-items:center;padding:20px;display:grid}.fin-login__card{background:var(--fin-panel);border:1px solid var(--fin-edge);border-radius:var(--fin-radius);width:min(380px,100%);box-shadow:var(--fin-shadow);padding:24px}.fin-login__eyebrow{margin:0 0 4px}.fin-login__title{font-family:var(--fin-hud-font);letter-spacing:.06em;text-transform:uppercase;margin:0 0 20px;font-size:22px;font-weight:700}.fin-login__error{background:color-mix(in srgb, var(--fin-risk) 8%, var(--fin-panel));border:1px solid var(--fin-risk);border-radius:var(--fin-radius);margin:0 0 16px;padding:10px 12px;font-size:13px}.fin-chart{background:var(--fin-panel);border:1px solid var(--fin-edge);border-radius:var(--fin-radius);box-shadow:var(--fin-shadow);margin-bottom:var(--fin-gap);padding:16px 8px 8px}.fin-chart__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;padding:0 8px 12px;display:flex}.fin-chart__svg{width:100%;height:auto;display:block}.fin-chart__tick{font-family:var(--fin-num-font);font-variant-numeric:tabular-nums;fill:var(--fin-muted);font-size:11px}.fin-tooltip{background:var(--fin-panel);border:1px solid var(--fin-edge);box-shadow:var(--fin-shadow);border-radius:8px;padding:8px 10px;font-size:12px}.fin-tooltip__row{justify-content:space-between;gap:14px;display:flex}.fin-tooltip__label{color:var(--fin-muted)}.fin-tooltip__value{font-family:var(--fin-num-font);font-variant-numeric:tabular-nums}@media (max-width:400px){.fin-tile__value{font-size:21px}.fin-header__title{font-size:16px}.fin-tiles{grid-template-columns:1fr 1fr;gap:8px}.fin-tile{padding:10px}}.fin-page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.fin-button--compact{width:auto;padding:8px 14px;text-decoration:none;display:inline-block}.fin-form__crumbs{margin-bottom:8px}.fin-form__crumbs a{color:var(--fin-muted);text-decoration:none}.fin-form__crumbs a:hover{color:var(--fin-text)}.fin-form__title{font-family:var(--fin-hud-font);letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px;font-size:22px;font-weight:700}.fin-form__lead{color:var(--fin-muted);max-width:78ch;margin:0 0 16px;font-size:13px}.fin-form__section{margin-bottom:var(--fin-gap)}.fin-form__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.fin-form__legend{font-family:var(--fin-hud-font);letter-spacing:.12em;text-transform:uppercase;color:var(--fin-muted);margin:0 0 12px;font-size:12px;font-weight:600}.fin-form__grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px;display:grid}.fin-field--wide{grid-column:1/-1}.fin-field__hint{color:var(--fin-muted);margin-top:4px;font-size:12px;display:block}.fin-form__inline{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.fin-form__inline .fin-input{flex:220px;margin-top:0}.fin-form__bin{flex:0 200px}.fin-form__output{background:var(--fin-raised);color:var(--fin-text);display:block}.fin-form__table td{vertical-align:middle;padding:6px 8px}.fin-form__table .fin-input{margin-top:0;padding:6px 8px;font-size:13px}.fin-form__table{min-width:720px}.fin-form__empty{color:var(--fin-muted);margin:8px 0 12px;font-size:13px}.fin-form__error{color:var(--fin-risk);margin-top:4px;font-size:12px;display:block}.fin-form__errors{text-align:left;margin:8px 0 0;padding-left:18px;font-size:13px}.fin-form__banner{margin-bottom:var(--fin-gap);text-align:left}.fin-form__actions{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:32px;display:flex}.fin-form__actions .fin-button{width:auto;min-width:220px}.fin-form__note{color:var(--fin-muted);max-width:60ch;margin:0;font-size:12px}.fin-groups{margin-bottom:var(--fin-gap);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.fin-group-card{text-align:left;background:var(--fin-panel);border:1px solid var(--fin-edge);border-radius:var(--fin-radius);box-shadow:var(--fin-shadow);cursor:pointer;font:inherit;color:inherit;flex-direction:column;gap:2px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.fin-group-card:hover{border-color:var(--fin-money)}.fin-group-card--active{border-color:var(--fin-money);box-shadow:inset 0 0 0 1px var(--fin-money)}.fin-group-card__value{font-family:var(--fin-num-font);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600}.fin-group-card__meta{color:var(--fin-muted);font-size:11px}.fin-product{margin-bottom:24px}.fin-product__head{border-bottom:1px solid var(--fin-edge);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;padding:0 2px 10px;display:flex}.fin-product__title{font-family:var(--fin-hud-font);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:15px;font-weight:700}.fin-product__hint{color:var(--fin-muted);max-width:60ch;margin:2px 0 0;font-size:12px}.fin-product__stats{flex-wrap:wrap;gap:18px;margin:0;display:flex}.fin-product__stat{min-width:90px}.fin-product__stat dt{margin:0}.fin-product__stat-value{margin:2px 0 0;font-size:17px;font-weight:600}.fin-product__stat-unit{color:var(--fin-muted);white-space:nowrap;margin-left:4px;font-size:11px}.fin-link-button{color:var(--fin-text);cursor:pointer;font:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--fin-muted);text-decoration-color:var(--fin-muted);background:0 0;border:none;padding:0}@media (max-width:640px){.fin-product__stats{gap:12px}.fin-product__stat-value{font-size:15px}}.fin-legend-row{margin-bottom:var(--fin-gap);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.fin-legend-row .fin-legend{margin-top:0}.fin-product .fin-hexmap{padding:10px 12px}.fin-cash-cuts{gap:var(--fin-gap);margin-top:var(--fin-gap);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.fin-cash-cuts .fin-table{min-width:0}.fin-week-actions{align-items:center;gap:12px;margin-top:12px;display:flex}.fin-week-form{margin-top:12px}.fin-week-form .fin-form__actions{margin-top:12px;margin-bottom:0}.fin-week-note{white-space:normal;max-width:60ch;font-size:12px;line-height:1.45}.fin-week-form textarea.fin-input{font-family:var(--fin-text-font);resize:vertical}.fin-fp-form{margin-top:12px}.fin-fp-head{grid-template-columns:200px minmax(240px,1fr);gap:12px;margin-bottom:12px;display:grid}.fin-fp-inputs .fin-input{width:100%;max-width:200px}.fin-fp-inputs td{vertical-align:top}.fin-fp-preview{border-top:1px solid var(--fin-edge);margin-top:16px;padding-top:12px}.fin-fp-rule+.fin-fp-rule{margin-top:20px}.fin-fp-rule .fin-hud{margin-bottom:6px}.fin-mono{font-family:var(--fin-num-font);letter-spacing:.02em;color:var(--fin-muted);font-size:12px}.fin-row--active>td{background:var(--fin-raised)}.fin-button[aria-current=page]{border-color:var(--fin-money);color:var(--fin-money)}.fin-proc-groups{margin-bottom:12px}.fin-proc-name{white-space:normal;max-width:52ch;line-height:1.4}.fin-proc-spec{color:var(--fin-muted);white-space:pre-line;font-size:11px;display:block}.fin-proc-form{margin:8px 0 16px}.fin-proc-form textarea.fin-input{font-family:var(--fin-text-font);resize:vertical}.fin-proc-danger{border-top:1px solid var(--fin-edge);align-items:center;gap:10px;margin-top:12px;padding-top:12px;display:flex}.fin-proc-danger .fin-button{border-color:var(--fin-risk);color:var(--fin-risk)}.fin-pause{border:1px solid var(--fin-watch);font-family:var(--fin-hud-font);letter-spacing:.06em;text-transform:uppercase;color:var(--fin-watch);vertical-align:middle;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:10px;display:inline-block}.fin-freeze{border:1px solid var(--fin-edge);border-radius:var(--fin-radius);background:var(--fin-raised);margin-top:12px;padding:12px}.fin-freeze__title{font-family:var(--fin-hud-font);letter-spacing:.06em;text-transform:uppercase;color:var(--fin-muted);margin:0 0 8px;font-size:12px}.fin-freeze textarea.fin-input{font-family:var(--fin-text-font);resize:vertical;width:100%}.fin-freeze__actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.fin-tile--link{color:inherit;text-decoration:none;transition:border-color .12s;display:block}.fin-tile--link:hover,.fin-tile--link:focus-visible{border-color:var(--fin-money)}.fin-row--risk>td{background:color-mix(in srgb, var(--fin-risk) 6%, transparent)}.fin-decision{flex-direction:column;gap:6px;min-width:230px;display:flex}.fin-decision__buttons{flex-wrap:wrap;gap:6px;display:flex}.fin-decision .fin-input{font-size:12px}
