@font-face{font-family:Geist;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/geist-v5-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/geist-v5-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/geist-mono-v6-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/geist-mono-v6-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #F4F7FB;--surface: #FFFFFF;--surface-2: #F8FAFD;--ink: #0B2545;--ink-2: #2A3E5C;--ink-3: #4F6078;--ink-4: #5D718A;--muted: #5D718A;--line: #E5EBF2;--line-2: #D6DEEA;--chip: #E8EFF7;--accent: #3B82B8;--accent-soft: #CFE0EF;--accent-deep: #1A4A7A;--warn: #C97A3B;--good: #4A8A6E;--danger: #C0392B;--danger-soft: #F7E4E0;--idx-1: #6B46C1;--idx-2: #3B82B8;--idx-3: #C97A3B;--idx-opp: #2E7D5B;--idx-ned: #C0392B;--ink-fixed: #0B2545;--on-ink: #E8EFF7;--on-ink-2: rgba(207, 224, 239, .78);--on-ink-3: rgba(207, 224, 239, .62);--wx-cloud: var(--surface);--wx-cloud-line: var(--line-2);--font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--grid: 8px;--radius: 4px;--radius-lg: 6px;--side-w: 232px;--topbar-h: 64px}[data-theme=dark]{--bg: #07101F;--surface: #0E1A2D;--surface-2: #11203A;--ink: #E8EFF7;--ink-2: #C2CEDF;--ink-3: #8FA0B6;--ink-4: #7B8CA0;--muted: #8A99AD;--line: #1B2A45;--line-2: #243553;--chip: #182946;--accent: #6BA9D6;--accent-soft: #1F3454;--accent-deep: #9CC4E0;--warn: #D9A06A;--good: #7AB394;--danger: #E07070;--danger-soft: #36211F;--idx-1: #A98BEA;--idx-2: #6BA9D6;--idx-3: #E3A15E;--idx-opp: #7AB394;--idx-ned: #E07070;--ink-fixed: #102744;--wx-cloud: #6F86A4;--wx-cloud-line: #92A6C1}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.5;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}*{-webkit-tap-highlight-color:transparent}button,a,[role=button]{touch-action:manipulation}button{font-family:inherit;color:inherit;align-items:normal}input,textarea,select{font-family:inherit;color:inherit}input,textarea,select{color-scheme:light}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select{color-scheme:dark}.app{display:grid;grid-template-columns:var(--side-w) 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:24px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:24px;min-height:0}.brand{display:flex;align-items:center;gap:10px;padding:0 8px}.brand-mark{width:28px;height:28px;border-radius:4px;background:var(--ink);color:var(--surface);display:grid;place-items:center;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:-.02em}.brand-name{font-size:15px;font-weight:600;letter-spacing:-.01em}.brand-sub{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em}.nav-section-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-4);padding:0 8px;margin-bottom:8px}.nav-list{display:flex;flex-direction:column;gap:1px}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:4px;font-size:13px;color:var(--ink-2);cursor:default;background:transparent;border:0;width:100%;text-align:left;position:relative}.nav-item:hover{background:var(--chip);color:var(--ink)}.nav-item.active{background:var(--ink);color:var(--surface)}.nav-item.active .nav-icon{opacity:.7}.nav-icon{width:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--ink-4)}.nav-item:hover .nav-icon,.nav-item.active .nav-icon{color:inherit}.nav-label{flex:1}.nav-badge{font-family:var(--font-mono);font-size:11px;color:var(--ink-4)}.nav-item.active .nav-badge{color:var(--surface);opacity:.6}.sidebar nav{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.sidebar nav::-webkit-scrollbar{width:6px}.sidebar nav::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;padding-left:8px;flex-shrink:0}.couple{display:flex;align-items:center}.avatar{width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--ink);display:grid;place-items:center;font-family:var(--font-mono);font-size:11px;font-weight:600;border:2px solid var(--surface)}.avatar.lg{width:36px;height:36px;font-size:12px}.avatar+.avatar{margin-left:-8px}.avatar-m{background:#CFE0EF;color:#0b2545}.avatar-l{background:#0B2545;color:#f4f7fb}[data-theme=dark] .avatar-m{background:#2C4A6E;color:#e8eff7}[data-theme=dark] .avatar-l{background:#6BA9D6;color:#07101f}.couple-meta{display:flex;flex-direction:column;font-size:12px;line-height:1.2}.couple-meta b{font-weight:500}.couple-meta span{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;position:sticky;top:0;background:color-mix(in oklab,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10}.crumbs{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;color:var(--ink-3);letter-spacing:.02em}.crumbs .sep{color:var(--ink-4)}.crumbs .here{color:var(--ink)}.topbar-right{display:flex;align-items:center;gap:16px}.tb-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);display:flex;align-items:center;gap:8px}.tb-meta .dot{width:6px;height:6px;border-radius:50%;background:var(--good)}.page{--page-pad: 32px;padding:32px;max-width:1400px;width:100%;display:flex;flex-direction:column;gap:24px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:16px;border-bottom:1px solid var(--line)}.page-title{font-size:32px;font-weight:500;letter-spacing:-.02em;margin:0;line-height:1.1}.page-actions{display:flex;gap:8px}.sticky-bar{position:sticky;top:var(--topbar-h);z-index:9;display:flex;flex-direction:column;margin:-6px calc(-1 * var(--page-pad, 0px));padding:6px var(--page-pad, 0px);background:var(--bg);transition:box-shadow var(--dur-base, .22s) var(--ease-out, ease)}.sticky-bar.is-stuck{box-shadow:0 1px 0 var(--line),0 10px 18px -14px #0b254573}.sticky-side{position:sticky;top:calc(var(--topbar-h) + var(--sticky-bar-h, 0px) + 16px)}@media (max-width: 768px){.sticky-bar .chip-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.sticky-bar .chip-row::-webkit-scrollbar{display:none}}.to-top{position:fixed;z-index:140;right:calc(24px + env(safe-area-inset-right,0px));bottom:calc(24px + env(safe-area-inset-bottom,0px));width:44px;height:44px;border-radius:50%;padding:0;display:grid;place-items:center;cursor:pointer;background:var(--surface);color:var(--ink-2);border:1px solid var(--line-2);box-shadow:0 6px 18px #0b25452e;opacity:0;transform:translateY(10px);visibility:hidden;pointer-events:none;transition:opacity var(--dur-base, .22s) var(--ease-out, ease),transform var(--dur-base, .22s) var(--ease-out, ease),visibility 0s linear var(--dur-base, .22s),background-color var(--dur-fast, .14s) var(--ease-out, ease)}.to-top.show{opacity:1;transform:none;visibility:visible;pointer-events:auto;transition-delay:0s}.to-top:hover{background:var(--chip)}body.has-fab .to-top{bottom:calc(88px + env(safe-area-inset-bottom,0px))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:16px}.card.flat{background:transparent;border:1px solid var(--line)}.card.dark{background:var(--ink-fixed);color:var(--on-ink);border-color:var(--ink-fixed)}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.card-eyebrow{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3)}.card.dark .card-eyebrow{color:#cfe0ef;opacity:.8}.card-title{font-size:16px;font-weight:500;letter-spacing:-.01em;margin:0}.card-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-4)}.btn{font-family:var(--font-sans);font-size:12px;font-weight:500;padding:7px 12px;border-radius:4px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:default;display:inline-flex;align-items:center;gap:6px;letter-spacing:-.005em}.btn:hover{background:var(--chip)}.btn.primary{background:var(--ink);color:var(--surface);border-color:var(--ink)}.btn.primary:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-3)}.btn.ghost:hover{color:var(--ink);background:var(--chip)}.btn.danger{background:var(--danger-soft);border-color:transparent;color:var(--danger)}.btn.danger:hover{background:var(--danger);color:#fff}.btn .ico{font-family:var(--font-mono);font-size:13px;line-height:1}.btn.sm{padding:4px 8px;font-size:11px}.hairline{height:1px;background:var(--line);border:0;margin:0}.row{display:flex;align-items:center;gap:12px}.row.between{justify-content:space-between}.col{display:flex;flex-direction:column;gap:8px}.mono{font-family:var(--font-mono)}.muted{color:var(--ink-3)}.tabular{font-variant-numeric:tabular-nums}.kpi-num{font-size:36px;font-weight:500;letter-spacing:-.025em;line-height:1;font-variant-numeric:tabular-nums}.kpi-sub{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.prog{position:relative;height:4px;background:var(--chip);border-radius:2px;overflow:hidden}.prog>i{display:block;height:100%;background:var(--ink);border-radius:2px}.prog.tall{height:8px}.prog.thin{height:2px}.prog .ticks{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;pointer-events:none}.prog .ticks i{flex:1;border-right:1px solid var(--surface)}.prog .ticks i:last-child{border-right:0}:root{--chip-h: 32px;--chip-gap: 8px}@media (max-width: 768px){:root{--chip-h: 40px}}.chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--chip-gap)}.chip,.chip-select{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;min-height:var(--chip-h);padding:0 14px;border:1px solid var(--chip-tone, var(--line-2));border-radius:999px;background:transparent;color:var(--chip-tone, var(--ink-3));font-family:var(--font-sans);font-size:13px;font-weight:500;line-height:1.2;white-space:nowrap;cursor:pointer}.chip:hover:not(.on):not(:disabled){color:var(--chip-tone, var(--ink));border-color:var(--chip-tone, var(--ink-4))}.chip.on{background:var(--chip-on, var(--ink));border-color:var(--chip-on, var(--ink));color:var(--chip-on-text, var(--surface))}.chip.dashed{border-style:dashed}.chip.lg{min-height:44px;padding:0 18px;font-size:15px}.chip:disabled{opacity:.5;cursor:default}.chip .chip-n{font-family:var(--font-mono);font-size:11px;font-variant-numeric:tabular-nums;opacity:.7}.chip-select{padding:0 12px;background:var(--surface);color:var(--ink-2);font-weight:600}.seg{display:inline-flex;gap:2px;padding:3px;box-sizing:border-box;min-height:var(--chip-h);border-radius:999px;background:var(--chip);align-items:stretch}.seg.fit{width:fit-content}.seg.fill{display:flex}.seg.fill>button{flex:1 1 0}.seg>button{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;border:0;border-radius:999px;background:transparent;color:var(--ink-3);font-family:var(--font-sans);font-size:13px;font-weight:500;line-height:1.2;white-space:nowrap;cursor:pointer}.seg.cap>button{text-transform:capitalize}.seg>button:disabled{opacity:.35;cursor:not-allowed}.seg>button:hover:not(.on){color:var(--ink)}.seg>button.on{background:var(--seg-on, var(--ink));color:var(--seg-on-text, var(--surface));box-shadow:0 1px 2px #0b25452e}.lab-tile{display:flex;flex-direction:column;gap:4px;min-width:0;padding:16px 18px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line)}.lab-tile.free{background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.lab-tile-name{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.lab-tile-desc{font-size:12px;line-height:1.4;color:var(--ink-4)}.lab-tile-when{display:flex;flex-direction:column;gap:4px;margin-top:8px}.lab-tile-goal{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}.lab-tile-date{font-size:28px;font-weight:500;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}.lab-tile.free .lab-tile-date{color:var(--accent-deep)}.lab-tile-vs{font-family:var(--font-mono);font-size:12px;font-weight:600}.lab-tile-last{margin-top:2px;font-family:var(--font-mono);font-size:11px;color:var(--ink-4)}@media (max-width: 768px){.lab-tile{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:baseline;padding:12px 14px}.lab-tile-when{flex-direction:row;align-items:baseline;gap:8px;margin-top:0;grid-column:2;grid-row:1;justify-self:end}.lab-tile-date{font-size:20px}.lab-tile-desc{grid-column:1;grid-row:2}.lab-tile-vs{grid-column:2;grid-row:2;text-align:right}.lab-tile-last{display:none}}.range{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;box-sizing:border-box;width:100%;height:28px;margin:0;padding:0;background:transparent;cursor:pointer;touch-action:pan-y}.range::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--line-2)}.range::-moz-range-track{height:4px;border-radius:2px;background:var(--line-2)}.range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:var(--thumb, 20px);height:var(--thumb, 20px);margin-top:calc(2px - var(--thumb, 20px) / 2);border:2px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:0 1px 3px #0b254559}.range::-moz-range-thumb{box-sizing:border-box;width:var(--thumb, 20px);height:var(--thumb, 20px);border:2px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:0 1px 3px #0b254559}.range:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.lab-group{display:flex;flex-direction:column;gap:14px}.lab-lever{--thumb: 20px;display:flex;flex-direction:column;gap:4px}.lab-lever-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.lab-lever-head label{font-size:12px;line-height:1.35;color:var(--ink-4)}.lab-lever-head label b{font-size:13px;font-weight:600;color:var(--ink)}.lab-num{width:132px;flex-shrink:0}.lab-note{font-size:12px;line-height:1.4;color:var(--ink-4)}.lab-marks{position:relative;height:24px}.lab-mark,.lab-tick{left:calc(var(--thumb) / 2 + (100% - var(--thumb)) * var(--t))}.lab-mark{position:absolute;top:0;transform:translate(-50%);height:24px;padding:0 7px;border:0;border-radius:6px;background:var(--chip);color:var(--ink-3);font-family:var(--font-mono);font-size:11px;white-space:nowrap;cursor:pointer}.lab-mark:hover{color:var(--ink)}.lab-mark.real{background:color-mix(in srgb,var(--warn) 18%,var(--surface));color:var(--ink-2)}.lab-mark.start{transform:translate(calc(var(--thumb) / -2))}.lab-mark.end{transform:translate(calc(-100% + var(--thumb) / 2))}.lab-rail,.lab-rail .range{position:relative}.lab-tick{position:absolute;top:50%;width:2px;height:16px;margin:-8px 0 0 -1px;border-radius:1px;background:var(--ink-4);pointer-events:none}.lab-tick.real{background:var(--warn)}.lab-key{width:2px;height:12px;border-radius:1px;background:var(--ink-4)}.lab-key.real{background:var(--warn)}@media (max-width: 768px){.lab-lever{--thumb: 26px}.range{height:40px}.lab-marks,.lab-mark{height:30px}}.lab-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.lab-table{width:100%;min-width:880px;border-collapse:collapse;font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums}.lab-table th,.lab-table td{padding:7px 0 7px 14px;text-align:right;white-space:nowrap}.lab-table thead th{padding-top:0;padding-bottom:6px;vertical-align:bottom;font-size:11px;font-weight:400;color:var(--ink-4);white-space:normal}.lab-table thead .lab-table-group{padding-bottom:4px;border-bottom:1px solid var(--line-2);text-align:center;color:var(--ink-3)}.lab-table tbody th,.lab-table tbody td{border-top:1px solid var(--line)}.lab-table .sep{padding-left:28px}.lab-table .strong{font-weight:600;color:var(--ink)}.lab-table thead .strong{color:var(--ink-2)}.lab-table .neg{color:var(--warn)}.lab-table .lab-table-when{position:sticky;left:0;z-index:1;padding-left:0;padding-right:14px;background:var(--surface);text-align:left;font-family:var(--font-sans);font-size:13px;font-weight:600}.lab-table thead .lab-table-when{font-family:var(--font-mono);font-size:11px;font-weight:400}.lab-table-sub{display:block;font-family:var(--font-mono);font-size:11px;font-weight:400;color:var(--ink-4)}.lab-table-sub.wrap{max-width:9ch;white-space:normal}.lab-table-goal{display:block;width:fit-content;margin-top:3px;padding:1px 7px;border-radius:999px;font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--accent-deep);background:color-mix(in srgb,var(--accent) 16%,transparent)}.lab-table tr.goal,.lab-table tr.goal .lab-table-when{background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.lab-table tr.now+tr>*{border-top-color:var(--line-2)}.ch-axis{font-family:var(--font-mono);font-size:11px;font-variant-numeric:tabular-nums}.ch-halo{paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.ch-tip{position:absolute;z-index:5;pointer-events:none;white-space:nowrap;min-width:128px;display:flex;flex-direction:column;gap:3px;padding:9px 11px;border-radius:10px;background:var(--ink-fixed);color:var(--on-ink);box-shadow:0 8px 22px #00000047;font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums}.ch-tip-title{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--on-ink-3)}.ch-tip-head{font-size:16px;font-weight:700}.ch-tip-row{display:flex;align-items:center;gap:8px}.ch-tip-row i{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ch-tip-row span{flex:1;color:var(--on-ink-2)}.ch-tip-row b{font-weight:600}.ch-tip-note{margin-top:2px;padding-top:4px;border-top:1px solid rgba(255,255,255,.14);font-size:11px;color:var(--on-ink-3)}.ch-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0;padding:0;list-style:none}.ch-legend li{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-3);white-space:nowrap}.ch-swatch{width:11px;height:11px;border-radius:3px;flex-shrink:0;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 16%,transparent)}.ch-bars{display:flex;align-items:flex-end}.ch-bar{position:relative;flex:1 1 0;min-width:0;padding:0;border:0;background:none;font:inherit;color:inherit;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:default}.ch-bar-val,.ch-bar-lbl{font-family:var(--font-mono);font-size:11px;font-variant-numeric:tabular-nums;color:var(--ink-3);line-height:14px;min-height:14px}.ch-bar-track{width:100%;display:flex;align-items:flex-end}.ch-bar-fill{width:100%;flex-shrink:0;display:flex;flex-direction:column-reverse;overflow:hidden;border-radius:4px 4px 0 0}.ch-bar-fill>i{display:block;width:100%;flex-shrink:0}.ch-hbar{position:relative;height:8px;margin:3px 0;border-radius:4px;background:var(--chip)}.ch-hbar-fill{display:block;height:100%;border-radius:4px}.ch-hbar-mark{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;border-radius:1px}.tag{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:3px;background:var(--chip);color:var(--ink-2);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.tag.outline{background:transparent;border:1px solid var(--line-2)}.tag.dark{background:var(--ink);color:var(--surface)}.tag.accent{background:var(--accent-soft);color:var(--accent-deep)}.tag .who{width:6px;height:6px;border-radius:50%}.tag .who.m{background:var(--accent)}.tag .who.l{background:var(--ink)}.tag .who.f{background:var(--good)}.check{position:relative;width:18px;height:18px;border:1.5px solid var(--ink-4);border-radius:4px;flex-shrink:0;background:var(--surface);display:grid;place-items:center;cursor:default;padding:0}.check:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}.check.on{background:var(--ink);border-color:var(--ink)}.check:after{content:"";width:9px;height:5px;border-left:1.5px solid var(--surface);border-bottom:1.5px solid var(--surface);transform:rotate(-45deg) translate(1px,-1px) scale(0);opacity:0;transition:transform var(--dur-base, .22s) var(--ease-spring, ease),opacity var(--dur-fast, .14s) ease}.check.on:after{transform:rotate(-45deg) translate(1px,-1px) scale(1);opacity:1}.grid{display:grid;gap:16px}.grid-12{grid-template-columns:repeat(12,1fr)}.grid-6{grid-template-columns:repeat(6,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-6{grid-column:span 6}.col-5{grid-column:span 5}.col-4{grid-column:span 4}.col-3{grid-column:span 3}.col-7{grid-column:span 7}.col-9{grid-column:span 9}.section-h{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--line)}.section-h h3{margin:0;font-size:13px;font-weight:500;letter-spacing:-.005em}.section-h .meta{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}.list{display:flex;flex-direction:column}.list>*{padding:10px 0;border-bottom:1px solid var(--line)}.list>*:last-child{border-bottom:0}.list.tight>*{padding:6px 0}.list.borderless>*{border-bottom:0}.li-row{display:flex;align-items:center;gap:12px}.li-row .grow{flex:1;min-width:0}.li-row .ttl{font-size:13px}.li-row .sub{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);margin-top:2px}.li-row.done .ttl{color:var(--ink-4);text-decoration:line-through;text-decoration-color:var(--line-2)}.thumb{background:linear-gradient(135deg,var(--accent-soft),var(--chip));border-radius:4px;aspect-ratio:4/3;position:relative;overflow:hidden}.thumb.tall{aspect-ratio:3/4}.thumb.wide{aspect-ratio:16/9}.thumb-label{position:absolute;bottom:6px;left:6px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);background:var(--surface);padding:2px 5px;border-radius:2px}.thumb svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden}.cal-cell{background:var(--surface);aspect-ratio:1;padding:6px;font-family:var(--font-mono);font-size:11px;color:var(--ink-3);display:flex;flex-direction:column;gap:2px;position:relative}.cal-cell.dim{color:var(--ink-4);background:var(--surface-2)}.cal-cell.today{background:var(--ink);color:var(--surface)}.cal-cell.today .cal-dot{background:var(--surface)}.cal-dot{width:4px;height:4px;border-radius:50%;background:var(--accent);margin-top:auto}.cal-cell .ev{font-family:var(--font-mono);font-size:11px;color:var(--ink-2);background:var(--accent-soft);padding:1px 3px;border-radius:2px;margin-top:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-cell.today .ev{background:var(--surface);color:var(--ink)}.cal-head{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:8px}.cal-head span{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4);text-align:center;padding:4px 0}.scroll{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}.scroll::-webkit-scrollbar{width:6px}.scroll::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:3px}.input{background:var(--surface);border:1px solid var(--line-2);border-radius:4px;padding:8px 12px;font-size:13px;width:100%}.input:focus{border-color:var(--ink)}.input:focus-visible{outline-offset:1px}.input.sm{padding:5px 8px;font-size:12px}.stat{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat-lbl{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}.stat-val{font-size:22px;font-weight:500;letter-spacing:-.015em;font-variant-numeric:tabular-nums}.stat-delta{font-family:var(--font-mono);font-size:11px;color:var(--good)}.stat-delta.down{color:var(--warn)}:root{--twk-bg: rgba(248,250,253,.85);--twk-fg: #0B2545}[data-theme=dark]{--twk-bg: rgba(14,26,45,.88);--twk-fg: #E8EFF7}.viz-house{display:block}.viz-house path{fill:none;stroke:var(--ink);stroke-width:1}.viz-house path.fill{fill:var(--accent-soft);stroke:none}.placeholder-img{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-soft);display:grid;place-items:center;font-family:var(--font-mono);font-size:11px;color:var(--accent-deep);text-transform:uppercase;letter-spacing:.1em}.page{animation:fadeIn var(--dur-slow, .34s) var(--ease-out, ease) backwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes deal-pop{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes hallgeir-peek{0%{transform:translateY(110%)}65%{transform:translateY(-7%)}to{transform:translateY(0)}}@keyframes hallgeir-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}details>summary{cursor:default;list-style:none;display:flex;align-items:center;gap:8px}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"+";font-family:var(--font-mono);font-size:14px;color:var(--ink-4);width:14px}details[open]>summary:before{content:"−"}.menu-btn{display:none;align-items:center;justify-content:center;background:transparent;border:0;padding:13px;margin-left:-13px;color:var(--ink-2);cursor:default;border-radius:4px;flex-shrink:0}.menu-btn:hover{background:var(--chip)}@media (max-width: 768px){.app{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;height:100dvh;z-index:200;transform:translate(calc(-1 * (var(--side-w) + 16px)));transition:transform .22s cubic-bezier(.4,0,.2,1);box-shadow:none;will-change:transform}.sidebar.open{transform:translate(0);box-shadow:4px 0 32px #0b25452e}.menu-btn{display:flex}.topbar{padding:0 16px;gap:12px}.topbar-right .tb-meta{display:none}.page{--page-pad: 16px;padding:16px;gap:16px;padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.page-title{font-size:22px}.page-head{padding-bottom:12px;gap:12px;flex-direction:column;align-items:stretch}.page-actions{flex-wrap:wrap}.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9{grid-column:span 12}.seg.tabs{display:flex;width:100%}.seg.tabs>button{flex:1 1 0;padding:0 6px}.seg.fill>button{padding:0 8px}.nav-item{padding:11px 10px;font-size:15px;gap:12px}.nav-icon{width:20px}.nav-section-label{font-size:11px;margin-bottom:6px}.check{width:22px;height:22px;border-radius:5px}.check:after{width:11px;height:6px}.check:before{top:-10px;right:-10px;bottom:-10px;left:-10px}.input,input,select,textarea{font-size:16px!important}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes ptr-spin{to{transform:rotate(360deg)}}@keyframes confirm-fade{0%{opacity:0}to{opacity:1}}@keyframes confirm-pop{0%{transform:scale(.94) translateY(8px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}@keyframes snack-in{0%{transform:translate(-50%,16px);opacity:0}to{transform:translate(-50%);opacity:1}}@keyframes quick-sheet-up{0%{transform:translateY(100%);opacity:.6}to{transform:translateY(0);opacity:1}}@keyframes snack-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes confetti-fly{0%{transform:translate(0) rotate(0) scale(1);opacity:1}80%{opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(.2);opacity:0}}.map-mock{background:var(--surface);border:1px solid var(--line);border-radius:4px;aspect-ratio:16/9;position:relative;overflow:hidden}.map-mock svg{width:100%;height:100%;display:block}button:not(:disabled),a[href],[role=button],.btn,.nav-item,.check,.seg>button,.menu-btn,summary,select{cursor:pointer}button:not(:disabled),[role=button],.nav-item,.check,.seg>button{transition:filter .12s ease,background-color .12s ease,color .12s ease,opacity .12s ease,border-color .12s ease}button:not(:disabled):hover,[role=button]:not([aria-disabled=true]):hover{filter:brightness(.96)}@media (hover: none){button:hover,[role=button]:hover{filter:none}}:where(button,a,[role=button],input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.merchant-row{transition:background-color .12s ease}.merchant-row:hover,.merchant-row.expanded{background:var(--bg)}.merchant-del{color:var(--muted)}.merchant-del:hover{color:#e57373;filter:none}.leaflet-container .leaflet-popup-content-wrapper{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px #00000047}.leaflet-container .leaflet-popup-content{margin:14px 16px;font-family:var(--font-sans);font-size:13px;line-height:1.4}.leaflet-container .leaflet-popup-tip{background:var(--surface);box-shadow:0 6px 16px #0003}.leaflet-container a.leaflet-popup-close-button{color:var(--ink-4);top:6px;right:6px}.leaflet-container a.leaflet-popup-close-button:hover{color:var(--ink);background:transparent}.leaflet-container .leaflet-control-attribution{background:color-mix(in srgb,var(--surface) 78%,transparent);color:var(--ink-4);font-size:11px;border-radius:8px 0 0}.leaflet-container .leaflet-control-attribution a{color:var(--ink-3)}.row-acts{display:flex;gap:4px;flex-shrink:0}.row-act{position:relative;min-width:40px;min-height:40px;padding:0;background:transparent;border:1px solid var(--line);border-radius:6px;color:var(--ink-4);font-size:14px;-moz-appearance:none;appearance:none;-webkit-appearance:none}.row-act[aria-pressed=true]{background:var(--chip);color:var(--ink-2)}.row-act.danger:hover{color:var(--danger);border-color:var(--danger)}@media (hover: hover) and (pointer: fine){.row-act{min-width:30px;min-height:30px}.has-row-acts .row-acts{opacity:0;transition:opacity .12s ease}.has-row-acts:hover .row-acts,.has-row-acts:focus-within .row-acts{opacity:1}}.row-menu-btn{flex-shrink:0;width:40px;height:40px;margin:-6px -8px -6px 0;display:grid;place-items:center;padding:0 0 4px;background:transparent;border:0;border-radius:8px;color:var(--ink-3);font-size:22px;line-height:1;letter-spacing:.04em}.row-menu-btn[aria-expanded=true]{background:var(--chip);color:var(--ink)}.row-menu-strip{display:flex;gap:8px;margin-top:10px}.row-menu-act{flex:1;min-height:44px;padding:0 10px;display:flex;align-items:center;justify-content:center;gap:7px;background:transparent;border:1px solid var(--line-2);border-radius:8px;color:var(--ink-2);font-size:14px;font-weight:500;font-family:inherit}.row-menu-act[aria-pressed=true]{background:var(--chip)}.row-menu-act.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--line-2))}.scroll-tabs{display:flex;gap:4px;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}.scroll-tabs::-webkit-scrollbar{display:none}.scroll-tabs>*{scroll-snap-align:center}.scroll-tabs.fade-end{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}.scroll-tabs.fade-start{-webkit-mask-image:linear-gradient(to left,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to left,#000 calc(100% - 28px),transparent)}.scroll-tabs.fade-start.fade-end{-webkit-mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,transparent,#000 28px,#000 calc(100% - 28px),transparent)}.amt-edit{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:right;font-variant-numeric:tabular-nums}.amt-edit:hover,.amt-edit:focus-visible{text-decoration:underline dotted var(--ink-4);text-underline-offset:3px}.imp{display:flex;flex-direction:column;gap:14px;min-width:0}.imp-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.imp-step{width:100%;min-width:0;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);font:inherit;color:var(--ink-3);text-align:left}.imp-step[aria-current=step]{border-color:var(--ink);color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink)}.imp-step[aria-disabled=true]{opacity:.5;cursor:not-allowed}.imp-step-n{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:var(--chip);color:var(--ink-2);font-family:var(--font-mono);font-size:12px;font-weight:600}.imp-step[aria-current=step] .imp-step-n{background:var(--ink);color:var(--surface)}.imp-step.is-done .imp-step-n{background:var(--good);color:#fff}.imp-step.is-warn .imp-step-n{background:color-mix(in oklab,var(--warn) 22%,var(--surface));color:var(--warn)}.imp-step-t{display:flex;flex-direction:column;gap:1px;min-width:0}.imp-step-t b{font-size:13px;font-weight:600;color:inherit}.imp-step-t span{font-family:var(--font-mono);font-size:11px;color:var(--ink-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.imp-step-t span.warn{color:var(--warn)}@media (max-width: 768px){.imp-steps{gap:4px}.imp-step{flex-direction:column;gap:4px;padding:8px 2px;text-align:center}.imp-step-t span{display:none}.imp-step-t b{font-size:12px}}.imp-bar{position:sticky;bottom:0;z-index:8;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px calc(-1 * var(--page-pad, 0px)) 0;padding:12px var(--page-pad, 0px) calc(12px + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--line);box-shadow:0 -12px 20px -16px #0b254573}.imp-bar-status{flex:1 1 220px;min-width:0;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}.imp-bar-status button{background:none;border:0;padding:0;font:inherit;color:var(--warn);text-align:left;text-decoration:underline dotted;text-underline-offset:3px}.imp-bar-acts{display:flex;gap:8px;margin-left:auto}.imp-bar .btn{min-height:40px;padding:0 16px;font-size:13px}.imp-bar .btn[aria-disabled=true]{opacity:.55}@media (max-width: 768px){.imp-bar-acts{width:100%}.imp-bar-acts .btn{flex:1 1 0;justify-content:center}.imp-bar-acts .btn.ghost{flex:0 0 auto}}.imp-drop{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:30px 20px;border:1.5px dashed var(--line-2);border-radius:var(--radius-lg);background:var(--surface);transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.imp-drop.is-over{border-color:var(--accent);background:color-mix(in oklab,var(--accent-soft) 55%,var(--surface))}.imp-drop.compact{flex-direction:row;justify-content:center;flex-wrap:wrap;padding:14px 16px}.imp-drop-ico{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--chip);font-size:22px}.imp-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px;display:flex;flex-direction:column;gap:10px;min-width:0}.imp-card.warn{border-color:color-mix(in oklab,var(--warn) 55%,var(--line))}.imp-card.bad{border-color:color-mix(in oklab,var(--danger) 55%,var(--line))}.imp-card.ok{border-color:color-mix(in oklab,var(--good) 45%,var(--line))}.imp-card-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-width:0}.imp-card-head h3{margin:0;font-size:14px;font-weight:600;min-width:0;overflow-wrap:anywhere}.imp-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-4);font-variant-numeric:tabular-nums}.imp-note{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;line-height:1.45;color:var(--ink-2)}.imp-note.warn{color:var(--warn)}.imp-note.bad{color:var(--danger)}.imp-note.good{color:var(--good)}.imp-raw{font-family:var(--font-mono);font-size:11px;line-height:1.4;color:var(--ink-3);overflow-wrap:anywhere}.imp-lead{margin:0;font-size:13px;line-height:1.5;color:var(--ink-3);max-width:70ch}.imp-list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.imp-list-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:10px 14px 6px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);border-top:1px solid var(--line);background:var(--surface-2)}.imp-list>:first-child.imp-list-head{border-top:0}.imp-row{border-top:1px solid var(--line)}.imp-list>.imp-row:first-child{border-top:0}.imp-row.is-off>.imp-row-main{opacity:.6}.imp-row.is-open{background:var(--surface-2)}.imp-row-main{display:grid;grid-template-columns:26px 58px minmax(0,1fr) auto 30px 112px 22px;align-items:center;gap:10px;padding:9px 14px;cursor:pointer}.imp-row-main:hover{background:color-mix(in oklab,var(--chip) 45%,transparent)}.imp-row-store{min-width:0;display:flex;flex-direction:column;gap:2px;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left}.imp-row-store b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.imp-row-store b.unknown{font-weight:500;color:var(--ink-3)}.imp-row-store span{font-family:var(--font-mono);font-size:11px;color:var(--ink-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.imp-row-main>.c-cat{display:flex;gap:6px;align-items:center;justify-content:flex-end;min-width:0}.imp-amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;text-align:right;white-space:nowrap}.imp-amt.in{color:var(--good)}.imp-chev{color:var(--ink-4);font-size:14px;text-align:center;transition:transform var(--dur-fast) var(--ease-out)}.imp-row.is-open .imp-chev{transform:rotate(90deg)}.imp-row-detail{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px 14px;align-items:center;padding:4px 14px 16px 50px}.imp-row-detail>dt{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}.imp-row-detail>dd{margin:0;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.imp-flag{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:1px 7px;border-radius:4px;white-space:nowrap}.imp-flag.warn{color:var(--warn);background:color-mix(in oklab,var(--warn) 14%,var(--surface))}.imp-flag.info{color:var(--accent-deep);background:color-mix(in oklab,var(--accent-soft) 70%,var(--surface))}.imp-flag.muted{color:var(--ink-3);background:var(--chip)}@media (max-width: 768px){.imp-row-main{grid-template-columns:26px minmax(0,1fr) auto;grid-template-areas:"chk store amt" "chk sub sub";gap:2px 10px;padding:10px 12px}.imp-row-main>.c-chk{grid-area:chk;align-self:start;padding-top:2px}.imp-row-main>.c-store{grid-area:store}.imp-row-main>.c-amt{grid-area:amt}.imp-row-main>.c-sub{grid-area:sub;display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.imp-row-main>.c-date,.imp-row-main>.c-cat,.imp-row-main>.c-owner,.imp-row-main>.c-chev{display:none}.imp-row-detail{grid-template-columns:minmax(0,1fr);gap:4px;padding:4px 12px 16px 48px}.imp-row-detail>dt{margin-top:8px}}@media (min-width: 769px){.imp-row-main>.c-sub{display:none}}.imp-store{display:flex;flex-direction:column;gap:6px;min-width:0;width:100%;max-width:640px}.imp-store-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.imp-store-row>.input{width:auto;flex:1 1 200px;min-width:0;max-width:300px}@media (max-width: 768px){.imp-store-row>.input{max-width:none;flex-basis:100%}}.imp-picker-list{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.imp-picker-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:9px 12px;border:0;border-top:1px solid var(--line);background:transparent;font:inherit;color:var(--ink);text-align:left}.imp-picker-list>.imp-picker-opt:first-child{border-top:0}.imp-picker-opt.is-hi{background:color-mix(in oklab,var(--accent-soft) 70%,var(--surface));box-shadow:inset 2px 0 0 var(--accent)}.imp-picker-opt span{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.imp-picker-hint{font-family:var(--font-mono);font-size:11px;color:var(--ink-4)}.imp-picker-hint kbd{font-family:var(--font-mono);font-size:11px;border:1px solid var(--line-2);border-radius:3px;padding:0 4px;color:var(--ink-2)}.is-attn{outline:2px solid var(--warn);outline-offset:3px;animation:imp-attn var(--dur-slow) var(--ease-out) 2}@keyframes imp-attn{50%{outline-offset:7px}}.ov{display:flex;flex-direction:column;gap:14px;min-width:0}.ov-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:14px;align-items:stretch}.ov-grid>*{min-width:0}.ov-people{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}@media (max-width: 1100px){.ov-grid{grid-template-columns:minmax(0,1fr)}.ov-people{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 768px){.ov-people{grid-template-columns:minmax(0,1fr)}}.ov-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.ov-kpi{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-right:1px solid var(--line);min-width:0;text-align:left;background:none;border-top:0;border-bottom:0;border-left:0;font:inherit;color:inherit}.ov-kpis>.ov-kpi:last-child{border-right:0}.ov-kpi-v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ov-kpi-s{font-family:var(--font-mono);font-size:11px;color:var(--ink-4);line-height:1.35}@media (max-width: 768px){.ov-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ov-kpi{padding:12px 14px}.ov-kpis>.ov-kpi:nth-child(2n){border-right:0}.ov-kpis>.ov-kpi:nth-child(-n+2){border-bottom:1px solid var(--line)}.ov-kpi-v{font-size:19px}}.ov-cat{display:grid;grid-template-columns:minmax(96px,150px) minmax(0,1fr) 78px 64px;align-items:center;gap:12px;width:100%;padding:7px 8px;margin:0 -8px;border:0;border-radius:6px;background:none;font:inherit;color:inherit;text-align:left}.ov-cat:hover{background:var(--surface-2)}.ov-cat-name{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px}.ov-cat-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-cat-amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:600;text-align:right;white-space:nowrap}.ov-cat-d{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600;text-align:right;white-space:nowrap}@media (max-width: 768px){.ov-cat{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name amt d" "bar bar bar";gap:6px 10px}.ov-cat>.ov-cat-name{grid-area:name}.ov-cat>.ch-hbar{grid-area:bar}.ov-cat>.ov-cat-amt{grid-area:amt}.ov-cat>.ov-cat-d{grid-area:d;min-width:44px}}.ov-split{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--chip)}.ov-split>i{display:block;height:100%;transform-origin:left center;animation:m-grow-x var(--dur-slow) var(--ease-out) backwards}.ov-split>i+i{box-shadow:inset 2px 0 0 var(--surface)}.ov-line{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:12.5px}.ov-line>span:first-child{color:var(--ink-3)}.ov-line>span:last-child{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.ov-line.total{border-top:1px solid var(--line);padding-top:7px;font-size:13px}.ov-line.total>span:first-child{color:var(--ink);font-weight:600}.day-note-btn{font-family:var(--font-mono);font-size:11px;color:var(--ink-4);background:transparent;border:0;border-radius:8px;cursor:pointer;padding:10px 12px;margin:-10px -12px -10px 0;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.day-note-btn:hover{color:var(--ink);background:var(--chip)}:root{--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--dur-fast: .14s;--dur-base: .22s;--dur-slow: .34s}@keyframes m-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes m-fade{0%{opacity:0}to{opacity:1}}@keyframes m-fade-out{to{opacity:0}}@keyframes m-pop{0%{opacity:0;transform:scale(.97) translateY(8px)}to{opacity:1;transform:none}}@keyframes m-pop-out{to{opacity:0;transform:scale(.98) translateY(6px)}}@keyframes m-sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes m-sheet-down{to{transform:translateY(100%)}}@keyframes m-slide-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes m-snack-out{to{opacity:0;transform:translate(-50%,10px)}}@keyframes m-grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes m-grow-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes m-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}.page>*{animation:m-rise var(--dur-slow) var(--ease-out) backwards}.page>:nth-child(2){animation-delay:30ms}.page>:nth-child(3){animation-delay:60ms}.page>:nth-child(4){animation-delay:90ms}.page>:nth-child(5){animation-delay:.12s}.page>:nth-child(n+6){animation-delay:.15s}.page>.page-head{animation:none}.m-rise{animation:m-rise var(--dur-slow) var(--ease-out) backwards}.m-fade{animation:m-fade var(--dur-base) var(--ease-out) backwards}.m-row{animation:m-rise var(--dur-base) var(--ease-out) backwards}.vrows .m-row{animation:none}button:not(:disabled),[role=button],.nav-item,.check,.btn,.tag,a{transition:filter var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn:active:not(:disabled),.chip:active:not(:disabled),.seg>button:active:not(:disabled),.tag[role=button]:active,button.tag:active{transform:scale(.97)}.nav-item:active{transform:scale(.985)}.check:active{transform:scale(.88)}.input,input,select,textarea{transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.card{transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out)}.seg>button,.chip,.chip-select{transition:background-color var(--dur-base) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}details>summary{transition:color var(--dur-fast) var(--ease-out)}.prog>i{transform-origin:left center;animation:m-grow-x .62s var(--ease-out) backwards;transition:width var(--dur-slow) var(--ease-out),background-color var(--dur-base) var(--ease-out)}.m-leaving{pointer-events:none}.m-leaving .m-strike{text-decoration:line-through;text-decoration-color:var(--line-2);color:var(--ink-3);transition:color var(--dur-base) var(--ease-out)}.m-backdrop{animation:m-fade var(--dur-base) var(--ease-out) both}.m-backdrop.is-leaving{animation:m-fade-out .16s var(--ease-in-out) both}.m-panel{animation:m-pop var(--dur-base) var(--ease-out) both}.m-panel.is-leaving{animation:m-pop-out .16s var(--ease-in-out) both}.m-sheet{animation:m-sheet-up var(--dur-slow) var(--ease-out) both}.m-sheet.is-leaving{animation:m-sheet-down .2s var(--ease-in-out) both}.m-full{animation:m-slide-up var(--dur-slow) var(--ease-out) both}.m-full.is-leaving{animation:m-pop-out .18s var(--ease-in-out) both}.m-snack{animation:snack-in var(--dur-base) var(--ease-out) both}.m-snack.is-leaving{animation:m-snack-out .18s var(--ease-in-out) both}.m-img{opacity:0;transition:opacity var(--dur-slow) var(--ease-out)}.m-img.is-loaded{opacity:1}@keyframes m-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}.m-draw{stroke-dasharray:1;animation:m-draw .9s var(--ease-out) backwards}.m-area{animation:m-fade .7s var(--ease-out) .26s backwards}.ch-bar-fill{transform-origin:bottom;animation:m-grow-y var(--dur-slow) var(--ease-out) backwards}.ch-hbar-fill{transform-origin:left center;animation:m-grow-x var(--dur-slow) var(--ease-out) backwards}.skel{background-color:var(--chip);background-image:linear-gradient(100deg,transparent 20%,color-mix(in srgb,var(--ink) 7%,transparent) 50%,transparent 80%);background-size:220% 100%;background-repeat:no-repeat;animation:m-shimmer 1.7s var(--ease-in-out) infinite}@media (max-width: 768px){.shell-skel-side{display:none!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-delay:0s!important;transition-delay:0s!important}.skel{animation:none!important;background-image:none}.btn:active:not(:disabled),.chip:active,.seg>button:active,.nav-item:active,.check:active{transform:none}}
