@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-cyrillic-ext-wght-normal-okcGN4Nq.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-cyrillic-wght-normal-BS41q_Tv.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-greek-ext-wght-normal-DQgQPNk4.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-greek-wght-normal-sS1B39LI.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-vietnamese-wght-normal-TKKdAiBA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-latin-ext-wght-normal-B4u9PlvR.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-tight-latin-wght-normal-DX-nOvPD.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--neutral-950:#09090b;--neutral-925:#0d0d10;--neutral-900:#111113;--neutral-875:#151518;--neutral-850:#1a1a1e;--neutral-800:#222226;--neutral-600:#52525b;--neutral-500:#80808a;--neutral-400:#a1a1aa;--neutral-200:#e4e4e7;--neutral-50:#fafafa;--color-app-bg:var(--neutral-950);--color-sidebar-bg:var(--neutral-950);--color-panel-dark:var(--neutral-900);--color-panel-dark-raised:var(--neutral-850);--color-shell-border:#ffffff12;--color-shell-border-strong:#ffffff24;--color-shell-text:var(--neutral-50);--color-shell-text-muted:var(--neutral-400);--color-content-bg:var(--neutral-950);--color-surface:var(--neutral-900);--color-surface-muted:var(--neutral-850);--color-surface-sunken:var(--neutral-925);--color-border:#ffffff12;--color-border-strong:#ffffff24;--color-text-primary:var(--neutral-50);--color-text-secondary:var(--neutral-400);--color-text-muted:var(--neutral-500);--color-text-faint:var(--neutral-600);--color-text-inverse:var(--neutral-50);--color-accent:var(--neutral-50);--color-accent-strong:var(--neutral-50);--color-accent-strong-hover:var(--neutral-200);--color-accent-soft:#fafafa14;--color-accent-ring:#fafafa47;--color-accent-on:var(--neutral-950);--color-nav-wave:linear-gradient(90deg, #fafafa14 0%, #fafafa04 100%);--color-positive:#4ade80;--color-positive-soft:#4ade801a;--color-positive-border:#4ade8047;--color-negative:#f87171;--color-negative-soft:#f871711a;--color-negative-border:#f8717147;--color-warning:#fbbf24;--color-warning-soft:#fbbf241a;--color-warning-border:#fbbf2447;--color-stale:#d4b45a;--color-unavailable:#71717a;--qr-surface:#fff;--qr-module:#0b0f14;--brand-surface-lunch-flow:#080f28;--brand-surface-claude:#f0efea;--brand-surface-openai:#000;--brand-logo-width:188px;--brand-logo-auth-width:296px;--brand-logo-mobile-width:168px;--brand-mark-size:40px;--mobile-topbar-height:80px;--chart-line-primary:#f4f4f5;--chart-line-secondary:#8fa3c8;--chart-line-tertiary:#b29ad6;--chart-line-forecast:var(--chart-line-tertiary);--chart-line-positive:#4ade80;--chart-line-warning:#e2b55b;--chart-line-negative:#f87171;--chart-categorical-1:#4d8dff;--chart-categorical-2:#ff9a3c;--chart-categorical-3:#2dd4ea;--chart-categorical-4:#ff6fae;--chart-categorical-5:#9b7bff;--chart-categorical-6:#f2c94c;--chart-categorical-7:#e26ce8;--chart-categorical-8:#cbb59a;--chart-other:#71717a;--chart-grid:#ffffff0d;--chart-neutral-fill-strong:#3f3f46;--chart-axis:var(--neutral-500);--chart-axis-strong:var(--neutral-400);--chart-tooltip-bg:var(--neutral-850);--chart-tooltip-text:var(--neutral-50);--chart-line-width-total:1.75;--chart-line-width-instrument:1.5;--chart-area-opacity:.08;--chart-label-font:var(--font-sans);--chart-label-font-weight:500;--speso-cat-uncategorized:#71717a;--speso-category-selection-mix:14%;--sidebar-width:232px;--sidebar-collapsed-width:68px;--content-max-width:1600px;--issuer-logo-width:112px;--issuer-logo-height:37px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--page-padding-block:var(--space-6);--page-padding-inline:var(--space-4);--page-padding-block-mobile:var(--space-4);--page-padding-inline-mobile:var(--space-3);--page-section-gap:var(--space-6);--section-padding-block:var(--space-5);--section-padding-inline:var(--space-5);--section-padding-block-lg:var(--space-6);--section-padding-inline-lg:var(--space-6);--row-padding-block:var(--space-3);--row-padding-inline:var(--space-3);--control-block-size:36px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--shadow-card:none;--shadow-card-hover:none;--shadow-panel:0 0 0 1px #ffffff14, 0 24px 48px -16px #000000d9;--shadow-pill:none;--focus-ring:0 0 0 2px var(--color-content-bg), 0 0 0 4px var(--color-accent-ring);--motion-fast:.14s cubic-bezier(.25, .8, .35, 1);--motion-medium:.22s cubic-bezier(.25, .8, .35, 1);--font-sans:"Inter Variable", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Inter Tight Variable", "Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif;--font-size-xs:12px;--font-size-sm:14px;--font-size-md:15px;--font-size-lg:18px;--font-size-xl:28px;--font-size-display:40px;--font-size-hero:56px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-display:-.03em;--tracking-heading:-.015em;--line-height-tight:1.15;--line-height-normal:1.45}*{box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{display:none}html{background:var(--color-app-bg);min-inline-size:320px;color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--font-size-sm);letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}::selection{background:var(--color-accent-ring);color:var(--color-text-primary)}body{background:var(--color-content-bg);caret-color:#0000;cursor:default;-webkit-user-select:none;user-select:none;min-block-size:100vh;margin:0}button,input{font:inherit}input,textarea,[contenteditable=true],[contenteditable=plaintext-only]{caret-color:auto;-webkit-user-select:text;user-select:text}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]):not([type=button]):not([type=submit]):not([type=reset]),textarea,[contenteditable=true],[contenteditable=plaintext-only]{cursor:text}input[type=checkbox],input[type=radio],input[type=file],input[type=range],input[type=color],input[type=button],input[type=submit],input[type=reset],select,a[href]{cursor:pointer}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.58}button:focus-visible,input:focus-visible{outline:2px solid var(--color-accent-ring);outline-offset:2px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}h1{font-family:var(--font-display);font-size:var(--font-size-xl);letter-spacing:var(--tracking-display)}h2{font-size:var(--font-size-lg);letter-spacing:var(--tracking-heading)}h3{font-size:var(--font-size-md)}small{color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:var(--line-height-normal)}svg{display:block}.app-shell{grid-template-columns:var(--active-sidebar-width,var(--sidebar-width)) minmax(0, 1fr);background:var(--color-content-bg);min-block-size:100vh;transition:grid-template-columns var(--motion-fast);display:grid}.app-shell.sidebar-collapsed{--active-sidebar-width:var(--sidebar-collapsed-width)}.sidebar{block-size:100vh;padding:var(--space-5) var(--space-3) var(--space-4);background:var(--color-sidebar-bg);color:var(--color-text-inverse);border-inline-end:1px solid var(--color-shell-border);flex-direction:column;display:flex;position:sticky;inset-block-start:0}.sidebar.is-collapsed{padding:var(--space-5) var(--space-3) var(--space-4);align-items:center}.brand-lockup{align-items:center;gap:var(--space-3);min-block-size:36px;min-inline-size:0;display:flex}.sidebar:not(.is-collapsed) .brand-lockup{padding-inline:var(--space-2)}.brand-logo{inline-size:var(--brand-logo-width);align-items:center;min-inline-size:0;max-inline-size:100%;display:inline-flex}.brand-logo.is-mark-only{inline-size:var(--brand-mark-size)}.brand-mark,.brand-wordmark{block-size:auto;inline-size:100%;display:block}.brand-logo-auth{inline-size:var(--brand-logo-auth-width)}.mobile-topbar .brand-logo{inline-size:var(--brand-logo-mobile-width)}.sr-only{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.avatar{border-radius:var(--radius-pill);background:var(--color-surface-muted);block-size:34px;inline-size:34px;box-shadow:inset 0 0 0 1px var(--color-border-strong);color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);object-fit:cover;flex:none;place-items:center;display:inline-grid}.sidebar-nav{gap:2px;margin-block-start:var(--space-6);display:grid}.nav-button{align-items:center;gap:var(--space-3);min-block-size:38px;inline-size:100%;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:start;transition:color var(--motion-fast), inline-size var(--motion-fast);background:0 0;display:flex;position:relative;overflow:hidden}.nav-button:before{content:"";z-index:0;background:var(--color-nav-wave);transition:transform var(--motion-medium);position:absolute;inset:0;transform:translate(-100%)}.nav-icon{z-index:2;transition:transform var(--motion-fast), color var(--motion-fast);flex:none;place-items:center;display:inline-grid;position:relative}.nav-label{z-index:2;position:relative}.nav-button:not(.is-compact) .nav-label{white-space:nowrap;text-overflow:ellipsis;min-inline-size:0;overflow:hidden}.nav-button:not(.is-compact):hover{color:var(--color-text-inverse)}.nav-button:not(.is-compact):hover:before{transform:translate(0)}.nav-button:not(.is-compact):hover .nav-icon{color:var(--color-text-inverse);transform:translate(3px)}.nav-button:not(.is-compact).is-active{color:var(--color-text-inverse)}.nav-button:not(.is-compact).is-active .nav-icon{color:var(--color-accent)}.nav-button:not(.is-compact).is-active:hover .nav-icon{color:var(--color-text-inverse)}.nav-button:focus-visible{box-shadow:var(--focus-ring);outline:none}@media (prefers-reduced-motion:reduce){.nav-button:before,.nav-button:after,.nav-icon{transition-duration:1ms}.nav-button:hover .nav-icon{transform:none}}.sidebar.is-collapsed .nav-button{justify-content:center;min-block-size:40px;inline-size:40px;padding-inline:0}.sidebar.is-collapsed .nav-button:hover .nav-icon{transform:none}.sidebar-spacer{min-block-size:var(--space-4);flex:auto}.sidebar-nav-secondary{align-items:center;gap:var(--space-1);grid-template-columns:minmax(0,1fr) auto;display:grid}.sidebar.is-collapsed .sidebar-nav-secondary{grid-template-columns:1fr;justify-items:center;inline-size:100%}.sidebar-footer{gap:var(--space-2);border-block-start:1px solid var(--color-shell-border);padding-block-start:var(--space-3);display:grid}.sidebar.is-collapsed .sidebar-footer{justify-items:center;inline-size:100%}.money-privacy-toggle{align-items:center;gap:var(--space-2);min-block-size:32px;inline-size:fit-content;padding-inline:var(--space-2);border-radius:var(--radius-sm);color:var(--color-shell-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:start;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast);background:0 0;border:1px solid #0000;display:flex}.money-privacy-toggle:hover,.money-privacy-toggle.is-concealed{background:var(--color-panel-dark-raised);color:var(--color-shell-text)}.money-privacy-toggle:focus-visible{box-shadow:var(--focus-ring);outline:none}.money-privacy-toggle-icon{color:var(--color-accent);flex:none;place-items:center;display:inline-grid}.money-privacy-toggle-label{text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;overflow:hidden}.money-privacy-toggle.is-compact{justify-content:center;min-block-size:40px;inline-size:40px;padding-inline:0}.profile-button{align-items:center;gap:var(--space-3);min-block-size:48px;inline-size:100%;padding:var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-inverse);text-align:start;transition:background var(--motion-fast);background:0 0;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.profile-button:hover{background:var(--color-panel-dark-raised)}.sidebar.is-collapsed .profile-button{min-block-size:40px;inline-size:40px;color:var(--color-text-muted);background:0 0;grid-template-columns:1fr;justify-items:center;padding:0;display:inline-grid}.sidebar.is-collapsed .profile-button:hover{color:var(--color-text-inverse)}.profile-button span:not(.avatar){min-inline-size:0;display:grid}.profile-button strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile-row{border-radius:var(--radius-md);background:0 0;border:1px solid #0000;align-items:center;gap:0;min-inline-size:0;padding:0;display:flex}.profile-row .profile-button{flex:auto;min-inline-size:0}.profile-logout{border-radius:var(--radius-sm);inline-size:40px;color:var(--color-shell-text-muted);cursor:pointer;transition:background var(--motion-fast), color var(--motion-fast);background:0 0;border:none;flex:none;align-self:stretch;place-items:center;display:inline-grid;position:relative}.profile-logout:before{content:"";background:var(--color-shell-border);inline-size:1px;position:absolute;inset-block:22%;inset-inline-start:0}.profile-logout:hover{background:var(--color-panel-dark-raised);color:var(--color-shell-text)}.profile-logout:focus-visible{box-shadow:var(--focus-ring);outline:none}.sidebar.is-collapsed .profile-row{align-items:center;gap:var(--space-1);background:0 0;border-color:#0000;flex-direction:column;padding:0}.sidebar.is-collapsed .profile-row .profile-button{flex:none}.sidebar.is-collapsed .profile-logout{align-self:center;block-size:40px}.sidebar.is-collapsed .profile-logout:before{display:none}.demo-pill{align-items:center;gap:var(--space-2);inline-size:fit-content;padding:var(--space-1) var(--space-2);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:0 0;display:inline-flex}.sidebar.is-collapsed .demo-pill{block-size:40px;inline-size:40px;color:var(--color-text-muted);background:0 0;border-color:#0000;justify-content:center;padding-inline:0}.sidebar.is-collapsed .ghost-icon-button{color:var(--color-text-muted);background:0 0;border-color:#0000}.sidebar.is-collapsed .ghost-icon-button:hover,.sidebar.is-collapsed .demo-pill:hover{color:var(--color-text-inverse)}.sidebar.is-collapsed .nav-label,.sidebar.is-collapsed .demo-pill span,.sidebar.is-collapsed .profile-button span:not(.avatar){clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.ghost-icon-button{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);block-size:38px;inline-size:38px;color:var(--color-text-secondary);transition:border-color var(--motion-fast), color var(--motion-fast);place-items:center;display:inline-grid}.mobile-topbar-actions{align-items:center;gap:var(--space-2);display:flex}.content-shell{inline-size:100%;min-inline-size:0;max-inline-size:var(--content-max-width);padding-block:var(--page-padding-block);padding-inline:var(--page-padding-inline);margin-inline:auto}.page-stack{gap:var(--space-5);grid-template-columns:minmax(0,1fr);min-inline-size:0;display:grid}.page-header{justify-content:space-between;gap:var(--space-4);align-items:start;padding-block-end:var(--space-2);display:flex}.page-header h1{letter-spacing:var(--tracking-display);font-size:32px}.settings-page-header{justify-content:flex-start;align-items:center;gap:var(--space-3)}.settings-back-button{border:1px solid var(--color-border);background:var(--color-surface);block-size:42px;inline-size:42px;min-inline-size:42px;color:var(--color-text-primary);cursor:pointer;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast);border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid}.settings-back-button:focus-visible{box-shadow:var(--focus-ring);outline:none}.page-header p,.section-title-row p{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-block-start:var(--space-2)}.admin-panel-card,.settings-panel,.speso-panel,.overview-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.is-positive{color:var(--color-positive)}.is-negative{color:var(--color-negative)}.is-neutral{color:var(--color-text-secondary)}.formatted-value,.target-range-value,.target-deviation-label{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:.24em;min-inline-size:0;display:inline-flex}.formatted-value.is-concealed,.money-input-concealed{letter-spacing:.08em}.money-input-concealed{cursor:not-allowed}.formatted-value-unit,.formatted-value-sign{color:currentColor;font-size:1.08em;font-weight:var(--font-weight-regular);flex:none;line-height:1}.formatted-value-sign{margin-inline-end:-.02em;font-size:1em}.plus-minus-mark{color:currentColor;font-size:1.08em;font-weight:var(--font-weight-regular);align-items:center;gap:.1em;line-height:1;display:inline-flex}.plus-minus-mark span{text-align:center;min-inline-size:.55em;display:inline-block}.formatted-value>.formatted-value-unit,.formatted-value>.formatted-value-sign,.plus-minus-mark>span{font-weight:var(--font-weight-regular)}.target-range-value{flex-wrap:wrap;row-gap:.1em}.target-deviation-label{justify-content:flex-end}.section-title-row,.button-row{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.primary-button,.secondary-button{min-block-size:var(--control-block-size);padding:0 var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.secondary-button{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);transition:background var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast);display:inline-flex}.primary-button{justify-content:center;align-items:center;gap:var(--space-2);background:var(--color-accent-strong);color:var(--color-accent-on);transition:background var(--motion-fast), border-color var(--motion-fast);border:1px solid #0000;display:inline-flex}.secondary-button:hover:not(:disabled),.ghost-button:not(.ghost-button-danger):hover:not(:disabled),.ghost-icon-button:hover:not(:disabled),.admin-secondary-button:hover:not(:disabled),.data-back-button:hover:not(:disabled),.settings-back-button:hover:not(:disabled),.admin-back-link:hover:not(:disabled),.auth-back:hover:not(:disabled),.speso-step:hover:not(:disabled),.speso-bank-status:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-text-primary)}.primary-button:hover:not(:disabled){border-color:var(--color-accent-strong-hover);background:var(--color-accent-strong-hover)}.portfolio-allocation-grid{--portfolio-allocation-panel-min-block-size:608px;align-items:stretch;gap:var(--space-5);grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);min-inline-size:0;display:grid}.instrument-identity{grid-template-columns:minmax(0,1fr);align-items:center;min-inline-size:0;display:grid}.instrument-identity.has-leading{grid-template-columns:var(--issuer-logo-width) minmax(0, 1fr);gap:var(--space-3)}.instrument-identity-leading{min-inline-size:0;display:inline-grid}.instrument-identity-content{gap:2px;min-inline-size:0;display:grid}.instrument-identity-inline .instrument-identity-content{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.instrument-identity-name{min-inline-size:0;color:var(--color-text-primary);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.instrument-identity-meta{align-items:center;gap:var(--space-1);min-inline-size:0;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);display:inline-flex}.instrument-identity-isin{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;overflow:hidden}.instrument-isin-copy{border:1px solid var(--color-border);background:var(--color-surface);block-size:24px;inline-size:24px;min-inline-size:24px;color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--motion-fast), color var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast);border-radius:50%;place-items:center;padding:0;display:inline-grid}.instrument-isin-copy:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px)}.instrument-isin-copy:focus-visible{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-accent);outline:none}.issue-row,.settings-status{align-items:center;gap:var(--space-3);color:var(--color-text-secondary);display:flex}.first-import,.auth-screen,.state-screen{min-block-size:calc(100vh - var(--space-7) * 2);place-items:center;display:grid}.auth-screen{isolation:isolate;min-block-size:100vh;padding-block:var(--space-6);padding-inline:var(--space-4);background:var(--color-app-bg);position:relative;overflow:hidden}.auth-screen:before{content:"";z-index:-1;background-image:radial-gradient(var(--color-border-strong) 1px, transparent 1px);pointer-events:none;background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 55%,#000 0%,#0000 100%);mask-image:radial-gradient(60% 55%,#000 0%,#0000 100%)}.first-import-copy,.auth-panel,.state-card{gap:var(--space-4);inline-size:min(100%,480px);padding-block:var(--section-padding-block-lg);padding-inline:var(--section-padding-inline-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-panel);display:grid}.auth-panel{z-index:1;border-color:var(--color-border);background:var(--color-surface);inline-size:min(100%,420px);box-shadow:var(--shadow-panel);position:relative}.auth-panel>.brand-lockup{align-items:flex-start;gap:var(--space-3);flex-direction:column;margin-block-end:var(--space-3)}.auth-tagline{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.auth-forgot{justify-content:flex-start;margin-block-start:calc(-1 * var(--space-2));display:flex}.auth-form{gap:var(--space-4);display:grid}.auth-intro{gap:var(--space-1);display:grid}.auth-intro h1,.auth-heading h1{color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.auth-intro p,.auth-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.auth-heading{align-items:center;gap:var(--space-3);display:flex}.auth-heading h1{min-inline-size:0}.auth-back{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast);flex-shrink:0;display:inline-flex}.auth-back:focus-visible{box-shadow:var(--focus-ring);outline:none}.auth-back:disabled{cursor:not-allowed;opacity:.55}.auth-resend{justify-self:start;margin-block-start:calc(-1 * var(--space-2))}.auth-status{justify-items:center;gap:var(--space-4);text-align:center;display:grid}.auth-status-mark{background:var(--color-positive-soft);block-size:56px;inline-size:56px;color:var(--color-positive);box-shadow:inset 0 0 0 1px var(--color-positive-border);border-radius:50%;place-items:center;display:inline-grid}.data-layout,.settings-grid{gap:var(--space-5);grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);display:grid}.admin-panel-card,.settings-panel{gap:var(--space-4);padding-block:var(--section-padding-block);padding-inline:var(--section-padding-inline);align-content:start;display:grid}.settings-grid{align-content:start}.data-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);align-content:start;display:grid;overflow:hidden}.data-panel-head{align-items:center;gap:var(--space-3);min-block-size:56px;padding-block:var(--space-3);padding-inline:var(--space-4);border-block-end:1px solid var(--color-border);background:var(--color-surface-muted);display:flex}.data-panel-head-icon{border-radius:var(--radius-sm);background:var(--color-accent-soft);block-size:32px;inline-size:32px;color:var(--color-accent);flex:none;place-items:center;display:inline-grid}.data-panel-head h2{min-inline-size:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-panel-head-meta{flex:none;align-items:center;margin-inline-start:auto;display:inline-flex}.data-panel-body{gap:var(--space-4);padding:var(--space-4);align-content:start;display:grid}.import-wizard .data-panel-body{padding:var(--space-5)}.wizard-progress{padding:3px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;white-space:nowrap}.wizard-layout{row-gap:var(--space-5);grid-template-columns:minmax(0,1fr)}.wizard-stepper{align-items:flex-start;margin:0;padding-block-start:var(--space-1);padding-inline:0;list-style:none;display:flex}.wizard-step{align-items:center;gap:var(--space-2);text-align:center;min-inline-size:0;color:var(--color-text-muted);flex-direction:column;flex:1 1 0;display:flex;position:relative}.wizard-step:not(:first-child):before,.wizard-step:not(:first-child):after{content:"";border-radius:var(--radius-pill);z-index:0;block-size:2px;position:absolute;inset-block-start:17px;inset-inline:-50% 50%}.wizard-step:not(:first-child):before{background:var(--color-border-strong)}.wizard-step:not(:first-child):after{background:var(--color-accent);transform-origin:0;transition:transform .44s cubic-bezier(.16,1,.3,1);transform:scaleX(0)}.wizard-step.is-active:after,.wizard-step.is-complete:after{transform:scaleX(1)}.wizard-step-marker{z-index:1;border:1px solid var(--color-border-strong);background:var(--color-surface-muted);block-size:34px;inline-size:34px;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), box-shadow var(--motion-fast);border-radius:50%;place-items:center;display:inline-grid;position:relative}.wizard-step-number,.wizard-step-check{transition:opacity var(--motion-fast), transform var(--motion-fast);grid-area:1/1}.wizard-step-check,.wizard-step.is-complete .wizard-step-number{opacity:0;transform:scale(.5)}.wizard-step.is-complete .wizard-step-check{opacity:1;transform:scale(1)}.wizard-step-label{max-inline-size:100%;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wizard-step.is-active{color:var(--color-text-primary)}.wizard-step.is-active .wizard-step-marker{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-soft)}.wizard-step.is-complete{color:var(--color-text-secondary)}.wizard-step.is-complete .wizard-step-marker{border-color:var(--color-accent-strong);background:var(--color-accent-strong);color:var(--color-accent-on)}.wizard-stage{min-inline-size:0}.wizard-body{gap:var(--space-4);min-inline-size:0;animation:.32s cubic-bezier(.16,1,.3,1) both wizardStepIn;display:grid}.wizard-body-header{gap:var(--space-1);display:grid}.wizard-body-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.wizard-body-header p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.wizard-privacy{color:var(--color-text-muted);font-size:var(--font-size-xs);margin:0}.bank-toolbar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.bank-search{align-items:center;gap:var(--space-2);min-block-size:40px;min-inline-size:0;padding-inline:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-muted);transition:border-color var(--motion-fast), box-shadow var(--motion-fast), color var(--motion-fast);flex:240px;display:inline-flex}.bank-search:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);color:var(--color-accent)}.bank-search svg{flex:none}.bank-search-input{inline-size:100%;min-inline-size:0;color:var(--color-text-primary);font-size:var(--font-size-sm);background:0 0;border:0}.bank-search-input:focus{outline:none}.bank-search-input::placeholder{color:var(--color-text-muted)}.bank-filter{align-items:center;gap:var(--space-2);flex:none;display:inline-flex}.bank-filter-label{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.bank-refresh{border-radius:var(--radius-pill);flex:none;min-block-size:40px}.bank-refresh .is-spinning{animation:.9s linear infinite spin}.bank-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(272px,1fr));display:grid}.bank-empty-state{padding:var(--space-6);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface-sunken);color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:center;margin:0}.bank-card{gap:var(--space-3);min-block-size:158px;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);color:var(--color-text-primary);text-align:start;flex-direction:column;display:flex}.bank-card.is-actionable{cursor:pointer;text-align:center;transition:background var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast);justify-content:center;align-items:center}.bank-card.is-actionable:hover{border-color:var(--color-accent);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.bank-card.is-actionable:focus-visible{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-accent);outline:none}.bank-card.is-disabled{opacity:.6}.bank-card-head{align-items:center;gap:var(--space-3);display:flex}.bank-card-brand{flex:none;align-items:center;block-size:30px;display:inline-flex}.bank-card-brand .provider-logo{block-size:26px;inline-size:auto;max-inline-size:132px}.bank-card-brand .provider-monogram{border-radius:var(--radius-sm);block-size:34px;inline-size:34px;font-size:var(--font-size-sm)}.bank-card.is-actionable .bank-card-brand{justify-content:center;align-items:center;block-size:56px;inline-size:100%;display:flex}.bank-card.is-actionable .provider-logo{object-fit:contain;block-size:100%;inline-size:100%;max-inline-size:100%}.bank-card.is-actionable .provider-monogram{block-size:52px;inline-size:52px;font-size:var(--font-size-md)}.bank-card-head .availability-chip{margin-inline-start:auto}.bank-card-body{gap:var(--space-1);min-inline-size:0;display:grid}.bank-card-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.bank-card-tagline{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.provider-logo{block-size:34px;inline-size:auto}.provider-monogram{border-radius:var(--radius-sm);background:var(--color-accent-strong);block-size:40px;inline-size:40px;color:var(--color-accent-on);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);place-items:center;display:inline-grid}.bank-card.is-disabled .provider-monogram{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted)}.availability-chip{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.02em;flex:none;display:inline-flex}.availability-chip.is-coming-soon{background:var(--color-surface);color:var(--color-text-muted);box-shadow:inset 0 0 0 1px var(--color-border)}.data-workspace-header{justify-content:flex-start;align-items:center;gap:var(--space-3);flex-wrap:wrap}.data-back-button{border:1px solid var(--color-border);background:var(--color-surface);block-size:42px;inline-size:42px;min-inline-size:42px;color:var(--color-text-primary);cursor:pointer;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast);border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid}.data-back-button:focus-visible{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-accent);outline:none}.data-workspace-brand{align-items:center;gap:var(--space-3);min-inline-size:0;display:flex}.data-workspace-brand-mark{flex:none;align-items:center;block-size:32px;display:inline-flex}.data-workspace-brand-mark .provider-logo{block-size:28px;inline-size:auto;max-inline-size:140px}.data-workspace-brand-mark .provider-monogram{border-radius:var(--radius-sm);block-size:34px;inline-size:34px;font-size:var(--font-size-sm)}.data-workspace-brand-text{gap:1px;min-inline-size:0;display:grid}.data-workspace-brand-text strong{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.data-workspace-brand-text span{color:var(--color-text-secondary);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-workspace-actions{align-items:center;gap:var(--space-3);flex:none;margin-inline-start:auto;display:inline-flex}.data-workspace-new-import{min-block-size:40px}.data-overview{gap:var(--space-4);min-inline-size:0;display:grid}.data-tab-rail{gap:var(--space-2);padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-sunken);display:flex;overflow-x:auto}.data-tab{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:background var(--motion-fast), color var(--motion-fast), border-color var(--motion-fast);background:0 0;border:1px solid #0000;display:inline-flex}.data-tab:hover{color:var(--color-text-primary);background:var(--color-surface-muted)}.data-tab:focus-visible{box-shadow:var(--focus-ring);outline:none}.data-tab.is-active{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-text-primary)}.data-tab.is-active svg{color:var(--color-accent)}.data-tab-badge{border-radius:var(--radius-pill);background:var(--color-surface-muted);block-size:20px;min-inline-size:20px;color:var(--color-text-secondary);font-size:11px;font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;place-items:center;padding-inline:6px;display:inline-grid}.data-tab.is-active .data-tab-badge{background:var(--color-accent-soft);color:var(--color-accent)}.data-tab-dot{background:var(--color-unavailable);border-radius:50%;block-size:8px;inline-size:8px}.data-tab-dot.is-positive{background:var(--color-positive)}.data-tab-dot.is-warning{background:var(--color-warning)}.data-tab-dot.is-negative{background:var(--color-negative)}.data-tab-panel{min-inline-size:0}.data-status-summary{display:flex}.dropzone-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.file-dropzone{gap:var(--space-2);padding:var(--space-5) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-sunken);text-align:center;transition:background var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast);align-content:start;justify-items:center;display:grid;position:relative;overflow:hidden}.file-dropzone:not(.is-filled):not(.is-processing):hover{border-color:var(--color-accent);background:var(--color-accent-soft);transform:translateY(-2px)}.file-dropzone.is-dragging{border-style:solid;border-color:var(--color-accent);background:var(--color-accent-soft);box-shadow:0 0 0 3px var(--color-accent-soft), var(--shadow-card-hover);transform:scale(1.015)}.file-dropzone.is-filled{border-style:solid;border-color:var(--color-positive-border);background:var(--color-surface-muted)}.file-dropzone.is-processing{border-color:var(--color-accent)}.file-dropzone.is-processing .file-dropzone-actions{opacity:.5;pointer-events:none}.file-dropzone-bar{background:var(--color-accent-soft);block-size:3px;position:absolute;inset-block-start:0;inset-inline:0;overflow:hidden}.file-dropzone-bar:before{content:"";border-radius:var(--radius-pill);background:var(--color-accent);inline-size:40%;animation:1.1s ease-in-out infinite dropzoneBar;position:absolute;inset-block:0}.file-dropzone-input{clip-path:inset(50%);block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.file-dropzone:has(.file-dropzone-input:focus-visible){border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-accent)}.file-dropzone-icon{border:1px solid var(--color-border);background:var(--color-surface);block-size:46px;inline-size:46px;color:var(--color-text-secondary);transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), transform var(--motion-fast);border-radius:50%;place-items:center;display:inline-grid}.file-dropzone:not(.is-filled):not(.is-processing):hover .file-dropzone-icon{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-3px)}.file-dropzone.is-filled .file-dropzone-icon{border-color:var(--color-positive-border);background:var(--color-positive-soft);color:var(--color-positive);animation:.38s cubic-bezier(.16,1,.3,1) dropzonePop}.file-dropzone-title-row{justify-content:center;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.file-dropzone-title-row strong{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.file-required-badge{padding:1px var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.03em}.file-dropzone-file{max-inline-size:100%;color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-dropzone-prompt{color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer}.file-dropzone-help{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.file-dropzone-meta{color:var(--color-text-muted);font-size:11px}.file-dropzone-actions{align-items:center;gap:var(--space-2);margin-block-start:var(--space-1);display:inline-flex}.file-dropzone-actions .secondary-button{min-block-size:32px;padding-inline:var(--space-3);border-radius:var(--radius-pill);cursor:pointer}.validation-banner{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-weight:var(--font-weight-semibold);animation:.36s cubic-bezier(.16,1,.3,1) both wizardStepIn;display:flex}.validation-banner svg{animation:.48s cubic-bezier(.16,1,.3,1) 80ms both dropzonePop}.validation-banner.is-passed{background:var(--color-positive-soft);color:var(--color-positive);box-shadow:inset 0 0 0 1px var(--color-positive-border)}.validation-banner.is-failed{background:var(--color-negative-soft);color:var(--color-negative);box-shadow:inset 0 0 0 1px var(--color-negative-border)}.validation-metrics{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin:0;display:grid}.validation-metric{gap:var(--space-1);min-inline-size:0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);animation:.42s cubic-bezier(.16,1,.3,1) both wizardReveal;display:grid}.validation-metric:first-child{animation-delay:60ms}.validation-metric:nth-child(2){animation-delay:.12s}.validation-metric:nth-child(3){animation-delay:.18s}.validation-metric:nth-child(4){animation-delay:.24s}.validation-metric dt{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.validation-metric dd{color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;margin:0}.issue-group{gap:var(--space-2);display:grid}.issue-group-head{align-items:center;gap:var(--space-2);display:flex}.issue-group-head h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.issue-group.is-errors .issue-group-head{color:var(--color-negative)}.issue-group.is-warnings .issue-group-head{color:var(--color-warning)}.issue-group-hint{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin:0}.issue-card-list{gap:var(--space-2);display:grid}.issue-card{align-items:start;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);display:flex}.issue-card svg{flex:none;margin-block-start:1px}.issue-card.is-error{background:var(--color-negative-soft);box-shadow:inset 0 0 0 1px var(--color-negative-border)}.issue-card.is-error svg{color:var(--color-negative)}.issue-card.is-warning{background:var(--color-warning-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-warning) 32%, transparent)}.issue-card.is-warning svg{color:var(--color-warning)}.overwrite-row{align-items:start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-warning-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-warning) 32%, transparent);color:var(--color-text-primary);font-size:var(--font-size-sm);display:flex}.overwrite-row input{margin-block-start:3px}.wizard-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.wizard-actions-spacer{margin-inline-start:auto}.wizard-actions .primary-button{justify-content:center;min-inline-size:168px}.wizard-actions .is-spinning{animation:.9s linear infinite spin}.form-error{color:var(--color-negative)}.wizard-done{justify-items:center;gap:var(--space-3);padding-block:var(--space-6);text-align:center;animation:.34s cubic-bezier(.16,1,.3,1) both wizardStepIn;display:grid}.wizard-done-mark{background:var(--color-positive-soft);block-size:64px;inline-size:64px;color:var(--color-positive);box-shadow:inset 0 0 0 1px var(--color-positive-border);border-radius:50%;place-items:center;animation:.52s cubic-bezier(.34,1.56,.64,1) both doneMarkPop;display:inline-grid;position:relative}.wizard-done-mark>svg{z-index:1;position:relative}.wizard-done-ring{border:2px solid var(--color-positive);opacity:0;border-radius:50%;animation:1.4s cubic-bezier(.16,1,.3,1) .22s 2 doneRing;position:absolute;inset:0}.wizard-done-ring.is-delayed{animation-delay:.56s}.wizard-files-count{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.wizard-done h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.wizard-done p{max-inline-size:44ch;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.wizard-done-actions{justify-content:center;gap:var(--space-3);flex-wrap:wrap;margin-block-start:var(--space-2);display:flex}.history-count{block-size:24px;min-inline-size:24px;padding-inline:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;place-items:center;display:inline-grid}.status-pill{align-items:center;gap:var(--space-1);padding:3px var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;display:inline-flex}.status-pill.is-positive{background:var(--color-positive-soft);color:var(--color-positive);box-shadow:inset 0 0 0 1px var(--color-positive-border)}.status-pill.is-warning{background:var(--color-warning-soft);color:var(--color-warning);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-warning) 32%, transparent)}.status-pill.is-negative{background:var(--color-negative-soft);color:var(--color-negative);box-shadow:inset 0 0 0 1px var(--color-negative-border)}.status-pill.is-neutral{background:var(--color-surface-muted);color:var(--color-text-secondary);box-shadow:inset 0 0 0 1px var(--color-border)}.data-status-rows{gap:var(--space-2);display:grid}.data-status-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);grid-template-columns:auto minmax(0,1fr);display:grid}.data-status-row-icon{border-radius:var(--radius-sm);background:var(--color-surface-muted);block-size:30px;inline-size:30px;color:var(--color-text-secondary);place-items:center;display:inline-grid}.data-status-row-body{gap:1px;min-inline-size:0;display:grid}.data-status-row-label{color:var(--color-text-muted);font-size:var(--font-size-xs)}.data-status-row-value{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-status-issues{gap:var(--space-2);border-block-start:1px solid var(--color-border);padding-block-start:var(--space-3);display:grid}.data-status-issue{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);display:flex}.data-status-issue svg{flex:none}.data-status-issue.is-error svg{color:var(--color-negative)}.data-status-issue.is-warning svg{color:var(--color-warning)}.data-status-issue.is-info svg{color:var(--color-accent)}.data-status-issue.is-ok{color:var(--color-positive)}.history-timeline{gap:var(--space-4);padding-inline-start:var(--space-4);display:grid;position:relative}.history-timeline:before{content:"";border-radius:var(--radius-pill);background:var(--color-border);inline-size:2px;position:absolute;inset-block:6px;inset-inline-start:4px}.history-entry{gap:var(--space-2);display:grid;position:relative}.history-entry-dot{background:var(--color-unavailable);block-size:10px;inline-size:10px;box-shadow:0 0 0 3px var(--color-surface);border-radius:50%;position:absolute;inset-block-start:5px;inset-inline-start:calc(-1 * var(--space-4))}.history-entry.is-positive .history-entry-dot{background:var(--color-positive)}.history-entry.is-warning .history-entry-dot{background:var(--color-warning)}.history-entry.is-negative .history-entry-dot{background:var(--color-negative)}.history-entry-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.history-entry-date{gap:1px;min-inline-size:0;display:grid}.history-entry-date strong{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.history-entry-date small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.history-entry-metrics{gap:var(--space-1) var(--space-4);flex-wrap:wrap;margin:0;display:flex}.history-entry-metric{align-items:baseline;gap:var(--space-1);display:inline-flex}.history-entry-metric dt{color:var(--color-text-muted);font-size:11px}.history-entry-metric dd{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;margin:0}.history-entry-tags{gap:var(--space-1);flex-wrap:wrap;display:flex}.history-entry-tag{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-secondary);font-size:11px;font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;display:inline-flex}.history-entry-tag svg{flex:none}.history-entry-tag.is-warning{border-color:color-mix(in srgb, var(--color-warning) 32%, transparent);background:var(--color-warning-soft);color:var(--color-warning)}.history-entry-tag.is-error{border-color:var(--color-negative-border);background:var(--color-negative-soft);color:var(--color-negative)}.empty-line{color:var(--color-text-muted);font-size:var(--font-size-sm)}.field{gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:grid}.field input{border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);min-block-size:42px;inline-size:100%;padding:0 var(--space-3);background:var(--color-surface);color:var(--color-text-primary)}.form-error,.form-note{font-size:var(--font-size-sm)}.form-note{color:var(--color-positive)}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-submit{inline-size:fit-content}.mobile-topbar,.mobile-nav{display:none}.select{justify-content:space-between;align-items:center;gap:var(--space-2);min-block-size:42px;inline-size:100%;min-inline-size:0;padding-block:0;padding-inline:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background-color:var(--color-surface);color:var(--color-text-primary);font:inherit;text-align:start;cursor:pointer;transition:border-color var(--motion-fast), box-shadow var(--motion-fast), background-color var(--motion-fast);display:inline-flex}.select:hover:not(:disabled){background-color:var(--color-surface-muted)}.select:disabled{cursor:not-allowed;opacity:.58}.select:focus-visible,.select.is-open{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.select-value{white-space:nowrap;text-overflow:ellipsis;min-inline-size:0;overflow:hidden}.select.is-placeholder .select-value{color:var(--color-text-muted)}.select-chevron{color:var(--color-text-secondary);transition:transform var(--motion-fast);flex:none}.select.is-open .select-chevron{transform:rotate(180deg)}.select--pill{border-radius:var(--radius-pill);min-block-size:40px;inline-size:auto;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.select--compact{min-block-size:34px;padding-inline:var(--space-2);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.select-menu{z-index:1000;padding:var(--space-1);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background-color:var(--color-panel-dark-raised);box-shadow:var(--shadow-panel);color:var(--color-text-primary);overscroll-behavior:contain;animation:select-menu-in var(--motion-fast) both;flex-direction:column;gap:2px;margin:0;list-style:none;display:flex;position:fixed;overflow-y:auto}.select-menu--up{transform-origin:bottom}.select-menu--down{transform-origin:top}.select-option{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);line-height:var(--line-height-normal);cursor:pointer;display:flex}.select-option-label{overflow-wrap:anywhere;min-inline-size:0}.select-option.is-active{background-color:var(--color-surface-muted)}.select-option.is-selected{color:var(--color-accent);font-weight:var(--font-weight-medium)}.select-option.is-selected.is-active{background-color:var(--color-accent-soft)}.select-option.is-disabled{color:var(--color-text-muted);cursor:not-allowed}.select-option-check{color:var(--color-accent);flex:none}@keyframes select-menu-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:none}}.loading-indicator{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-4);color:var(--color-text-secondary);text-align:center;flex-direction:column;display:flex}.loading-indicator-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.loading-ring{border:3px solid var(--color-border);border-block-start-color:var(--color-accent);border-radius:50%;block-size:38px;inline-size:38px;animation:.9s linear infinite spin}.state-card{animation:state-enter var(--motion-medium) both}@keyframes state-enter{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes wizardStepIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes wizardReveal{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes dropzoneBar{0%{transform:translate(-100%)}to{transform:translate(350%)}}@keyframes dropzonePop{0%{transform:scale(.6)}60%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes doneMarkPop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes doneRing{0%{opacity:.5;transform:scale(.85)}to{opacity:0;transform:scale(1.9)}}@media (prefers-reduced-motion:reduce){.app-shell,.brand-logo,.nav-button,.select,.select-chevron{transition:none}.select-menu,.loading-ring,.state-card,.wizard-body,.validation-banner,.validation-banner svg,.validation-metric,.wizard-done,.wizard-done-mark,.wizard-done-ring,.file-dropzone.is-filled .file-dropzone-icon,.file-dropzone-bar:before{animation:none}.wizard-step:not(:first-child):after,.file-dropzone,.file-dropzone-icon{transition:none}.file-dropzone:not(.is-filled):not(.is-processing):hover,.file-dropzone.is-dragging,.file-dropzone:not(.is-filled):not(.is-processing):hover .file-dropzone-icon{transform:none}}@media (width<=1100px){.portfolio-allocation-grid,.data-layout,.settings-grid{grid-template-columns:1fr}}@media (width<=820px){.app-shell{grid-template-columns:1fr;padding-block-start:var(--mobile-topbar-height);padding-block-end:74px}.sidebar{display:none}.mobile-topbar,.mobile-nav{z-index:10;background:var(--color-sidebar-bg);color:var(--color-text-inverse);align-items:center;display:flex;position:fixed}.mobile-topbar{min-block-size:var(--mobile-topbar-height);padding:0 var(--space-4);border-block-end:1px solid var(--color-shell-border);justify-content:space-between;inset:0 0 auto}.mobile-nav{min-block-size:68px;padding:var(--space-2);border-block-start:1px solid var(--color-shell-border);justify-content:space-around;inset:auto 0 0}.nav-button.is-compact{justify-items:center;gap:var(--space-1);min-block-size:52px;min-inline-size:0;padding:var(--space-1) 2px;font-size:var(--font-size-xs);text-align:center;flex:1 1 0;display:grid}.nav-button.is-compact:before{display:none}.nav-button.is-compact:after{content:"";z-index:2;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--color-accent);block-size:3px;inline-size:22px;transition:transform var(--motion-fast);position:absolute;inset:0 auto auto 50%;transform:translate(-50%)scaleX(0)}.nav-button.is-compact.is-active,.nav-button.is-compact.is-active .nav-icon{color:var(--color-accent)}.nav-button.is-compact.is-active:after{transform:translate(-50%)scaleX(1)}.content-shell{padding-block:var(--page-padding-block-mobile);padding-inline:var(--page-padding-inline-mobile)}.button-row,.wizard-actions{flex-direction:column;align-items:stretch}.wizard-actions .primary-button,.wizard-actions .secondary-button{justify-content:center;inline-size:100%}.wizard-actions-spacer{margin-inline-start:0}.validation-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.spin{animation:.9s linear infinite spin}.settings-muted{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.settings-muted-sm{font-size:var(--font-size-xs)}.form-note-success{color:var(--color-positive);font-weight:var(--font-weight-medium)}.field-with-icon{align-items:center;gap:var(--space-2);display:inline-flex}.field-label{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.field-hint{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.chip{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:1;display:inline-flex}.chip-neutral{border:1px solid var(--color-border);background:var(--color-surface-muted);color:var(--color-text-secondary)}.chip-positive{border:1px solid var(--color-positive-border);background:var(--color-positive-soft);color:var(--color-positive)}.chip-ghost{border:1px solid var(--color-border);color:var(--color-text-muted);background:0 0}.ghost-button{justify-content:center;align-items:center;gap:var(--space-2);min-block-size:42px;padding:0 var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast);display:inline-flex}.ghost-button:focus-visible{box-shadow:var(--focus-ring);outline:none}.ghost-button:disabled{cursor:not-allowed;opacity:.55}.ghost-button-danger{border-color:var(--color-negative-border);color:var(--color-negative)}.ghost-button-danger:hover:not(:disabled){background:var(--color-negative-soft)}.text-button{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:underline;-webkit-text-decoration-color:var(--color-border-strong);text-decoration-color:var(--color-border-strong);text-underline-offset:3px;cursor:pointer;transition:text-decoration-color var(--motion-fast);background:0 0;border:none;display:inline-flex}.text-button:hover:not(:disabled){color:var(--color-text-primary);text-decoration-color:currentColor}.text-button:focus-visible{box-shadow:var(--focus-ring);outline:none}.text-button:disabled{cursor:not-allowed;opacity:.55}.text-button-danger{color:var(--color-negative)}.settings-section{gap:var(--space-3);min-inline-size:0;display:grid}.settings-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.settings-profile-card .settings-account-form{border-block-start:1px solid var(--color-border);padding-block-start:var(--space-4)}.settings-email{gap:var(--space-3);border-block-start:1px solid var(--color-border);padding-block-start:var(--space-4);display:grid}.settings-email-card{align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-muted);grid-template-columns:minmax(0,1fr);display:grid}.settings-email-head{align-items:center;gap:var(--space-3);min-inline-size:0;display:flex}.settings-email-icon{border-radius:var(--radius-md);background:var(--color-accent-soft);block-size:40px;inline-size:40px;color:var(--color-accent);flex-shrink:0;place-items:center;display:grid}.settings-email-value{gap:2px;min-inline-size:0;display:grid}.settings-email-head>.ghost-button{margin-inline-start:auto}.settings-email-current{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);overflow-wrap:anywhere}.settings-email-form{align-items:end;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;min-inline-size:0;max-inline-size:none;display:grid}.settings-email-card-editing,.settings-email-card-verifying{grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr)}.settings-email-card-editing .settings-email-head,.settings-email-card-verifying .settings-email-head{grid-column:1}.settings-email-card-editing .settings-email-form,.settings-email-card-verifying .settings-email-form{grid-column:2}.settings-email-input-field,.settings-email-helper,.settings-email-form>.form-error{min-inline-size:0}.settings-email-helper,.settings-email-form>.form-error{grid-column:1/-1;margin:0}.settings-email-actions{justify-content:flex-end;gap:var(--space-2)}.settings-email-form:not(.settings-email-form-verify) .settings-email-actions{grid-area:1/2}.settings-email-verify-actions{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;grid-column:1/-1;display:flex}.settings-email-verify-actions .settings-email-actions{flex:none}.settings-hero{align-items:center;gap:var(--space-5);grid-template-columns:auto minmax(0,1fr);display:grid}.settings-hero-info{gap:var(--space-2);min-inline-size:0;display:grid}.settings-hero-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight)}.settings-hero-email{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.settings-hero-chips{gap:var(--space-2);flex-wrap:wrap;margin-block-start:var(--space-1);display:flex}.settings-hero-hint{margin-block-start:var(--space-1)}.avatar-uploader{justify-items:center;gap:var(--space-2);display:grid}.avatar-uploader-frame{block-size:96px;inline-size:96px;position:relative}.avatar-uploader-image,.avatar-uploader-fallback{border:1px solid var(--color-border-strong);object-fit:cover;border-radius:50%;block-size:96px;inline-size:96px}.avatar-uploader-fallback{background:var(--color-panel-dark);color:var(--color-text-inverse);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);place-items:center;display:grid}.avatar-uploader-overlay{background:color-mix(in srgb, var(--color-app-bg) 62%, transparent);color:var(--color-text-inverse);border-radius:50%;place-items:center;display:grid;position:absolute;inset:0}.avatar-uploader-edit{border:2px solid var(--color-surface);background:var(--color-accent-strong);block-size:30px;inline-size:30px;color:var(--color-accent-on);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:absolute;inset-block-end:-2px;inset-inline-end:-2px}.avatar-uploader-edit:focus-within{box-shadow:var(--focus-ring);outline:none}.avatar-uploader-edit input{opacity:0;cursor:pointer;position:absolute;inset:0}.settings-account-form{align-items:start;gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.settings-account-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);flex-wrap:wrap;grid-column:1/-1;display:flex}.settings-account-actions .form-error,.settings-account-actions .form-note-success{margin-inline-end:auto}.settings-security-grid{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.security-card{gap:var(--space-3)}.security-status-row{align-items:center;gap:var(--space-2);display:flex}.mfa-enroll{gap:var(--space-3);display:grid}.mfa-qr{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--qr-surface);color:var(--qr-module);justify-self:start;display:inline-flex}.mfa-secret{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);flex-wrap:wrap;display:flex}.mfa-secret-value{gap:var(--space-1);min-inline-size:0;display:grid}.mfa-secret-value code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--font-size-sm);letter-spacing:.06em;color:var(--color-text-primary);word-break:break-all}.password-form{gap:var(--space-3);display:grid}.policy-checklist{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.policy-checklist li{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:flex}.policy-checklist li.is-satisfied{color:var(--color-positive)}.policy-check-icon{display:inline-flex}.security-demo{gap:var(--space-2)}@media (width<=900px){.settings-email-card-editing,.settings-email-card-verifying{grid-template-columns:minmax(0,1fr)}.settings-email-card-editing .settings-email-head,.settings-email-card-verifying .settings-email-head,.settings-email-card-editing .settings-email-form,.settings-email-card-verifying .settings-email-form{grid-column:1}.settings-email-form{grid-template-columns:minmax(0,1fr)}.settings-email-form .settings-email-actions{grid-area:auto/1}.settings-hero{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center}.settings-hero-chips{justify-content:center}.settings-account-form,.settings-security-grid{grid-template-columns:minmax(0,1fr)}}.admin-tabs,.speso-cats-tabs{gap:var(--space-2);padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-sunken);display:flex;overflow-x:auto}.admin-tab,.speso-cats-tab{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:background var(--motion-fast), color var(--motion-fast), border-color var(--motion-fast);background:0 0;border:1px solid #0000;display:inline-flex}.admin-tab:hover,.speso-cats-tab:hover{color:var(--color-text-primary);background:var(--color-surface-muted)}.admin-tab:focus-visible,.speso-cats-tab:focus-visible{box-shadow:var(--focus-ring);outline:none}.admin-tab.is-active,.speso-cats-tab.is-active{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-text-primary)}.admin-tab.is-active svg{color:var(--color-accent)}.admin-tab-panel{min-inline-size:0}.admin-view-stack{gap:var(--space-4);min-inline-size:0;display:grid}.admin-view-hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-back-link{align-items:center;gap:var(--space-2);min-block-size:38px;padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast);justify-self:start;display:inline-flex}.admin-back-link:focus-visible{box-shadow:var(--focus-ring);outline:none}.admin-form-head{gap:var(--space-1);display:grid}.admin-create-form{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-form-wide{grid-column:1/-1}.admin-form-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.admin-overview{gap:var(--space-5);display:grid}.admin-kpi-grid{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.admin-kpi-card{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);align-content:start;display:grid}.admin-kpi-card.is-warning{box-shadow:inset 0 0 0 1px var(--color-warning-border), var(--shadow-card)}.admin-kpi-card.is-danger{box-shadow:inset 0 0 0 1px var(--color-negative-border), var(--shadow-card)}.admin-kpi-card.is-positive{box-shadow:inset 0 0 0 1px var(--color-positive-border), var(--shadow-card)}.admin-kpi-head{align-items:center;gap:var(--space-2);display:flex}.admin-kpi-head h3{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.admin-kpi-icon{border-radius:var(--radius-md);background:var(--color-accent-soft);block-size:30px;inline-size:30px;color:var(--color-accent);place-items:center;display:inline-grid}.admin-kpi-value{color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;line-height:var(--line-height-tight)}.admin-kpi-details{gap:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-xs);margin:0;padding:0;list-style:none;display:grid}.admin-panel-card h2{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.admin-attention-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.admin-attention-list li{justify-content:space-between;align-items:center;gap:var(--space-3);min-block-size:52px;padding-block:var(--row-padding-block);padding-inline:var(--row-padding-inline);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-sm);display:flex}.admin-toolbar{align-items:end;gap:var(--space-3);flex-wrap:wrap;display:flex}.admin-search-input{min-block-size:42px;min-inline-size:220px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-primary)}.admin-filter{gap:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:grid}.admin-status-filter{inline-size:auto;min-inline-size:180px}.admin-toolbar-action{align-items:center;gap:var(--space-2);margin-inline-start:auto;display:inline-flex}.admin-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);overflow-x:auto}.admin-table{border-collapse:collapse;inline-size:100%;font-size:var(--font-size-sm)}.admin-table th,.admin-table td{padding:var(--space-3) var(--space-4);border-block-end:1px solid var(--color-border);text-align:start;vertical-align:middle;white-space:nowrap}.admin-table th{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.admin-table tbody tr:last-child td{border-block-end:none}.admin-sort-button{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:none;padding:0}.admin-sort-button:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}.admin-table-row{cursor:pointer;transition:background var(--motion-fast)}.admin-table-row:hover{background:var(--color-surface-muted)}.admin-table-row:focus-visible{box-shadow:inset var(--focus-ring);outline:none}.admin-user-cell{gap:1px;min-inline-size:0;display:grid}.admin-user-cell strong{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.admin-user-cell small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.admin-chip{align-items:center;gap:var(--space-1);inline-size:fit-content;padding:2px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:11px;font-weight:var(--font-weight-semibold);white-space:nowrap;display:inline-flex}.admin-chip.is-positive{border-color:var(--color-positive-border);background:var(--color-positive-soft);color:var(--color-positive)}.admin-chip.is-warning{border-color:var(--color-warning-border);background:var(--color-warning-soft);color:var(--color-warning)}.admin-chip.is-danger{border-color:var(--color-negative-border);background:var(--color-negative-soft);color:var(--color-negative)}.admin-chip.is-accent{border-color:var(--color-accent-ring);background:var(--color-accent-soft);color:var(--color-accent)}.admin-chip-row{gap:var(--space-1);flex-wrap:wrap;display:flex}.admin-jobs-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-jobs-group{gap:var(--space-3);min-inline-size:0;display:grid}.admin-jobs-group-head{gap:var(--space-1);display:grid}.admin-jobs-group-head h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.admin-job-head{justify-content:space-between;align-items:start;gap:var(--space-3);display:flex}.admin-job-head h2,.admin-job-head h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.admin-job-head small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.admin-job-head-main{align-items:center;gap:var(--space-3);min-inline-size:0;display:flex}.admin-job-card-icon{background:var(--color-accent-soft);block-size:38px;inline-size:38px;color:var(--color-accent);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.admin-pagination{justify-content:center;align-items:center;gap:var(--space-3);margin-block-start:var(--space-3);display:flex}.admin-pagination-button{border-radius:var(--radius-pill);justify-content:center;align-items:center;block-size:38px;inline-size:38px;min-inline-size:38px;padding:0;display:inline-flex}.admin-pagination-status{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.admin-job-card-button{gap:var(--space-3);text-align:start;cursor:pointer;transition:border-color var(--motion-fast), transform var(--motion-fast)}.admin-job-card-button:hover{border-color:var(--color-accent);transform:translateY(-1px)}.admin-job-card-button:focus-visible{box-shadow:var(--focus-ring);outline:none}.admin-job-section-head{gap:var(--space-1);display:grid}.admin-detail-section.admin-job-frequency-section{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.admin-job-frequency-section .admin-job-section-head{flex:0 14rem}.admin-job-frequency-section .admin-job-frequency-form{flex:auto}.admin-job-frequency-section .form-error,.admin-job-frequency-section .form-note{flex-basis:100%}.admin-job-frequency-form{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.admin-job-frequency-field{align-items:center;gap:var(--space-2);display:inline-flex}.admin-job-frequency-input{min-block-size:42px;inline-size:4.5rem;padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;text-align:center}.admin-job-frequency-unit{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.admin-job-stat-list{margin:0;display:grid}.admin-job-stat-row{justify-content:space-between;align-items:baseline;gap:var(--space-4);padding-block:var(--space-2);border-block-end:1px solid var(--color-border);display:flex}.admin-job-stat-row:first-child{padding-block-start:0}.admin-job-stat-row:last-child{border-block-end:none;padding-block-end:0}.admin-job-stat-row dt{color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-job-stat-row dd{color:var(--color-text-primary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;text-align:end;margin:0}.admin-job-card-meta{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.admin-job-card-run{gap:2px;min-inline-size:0;display:grid}.admin-job-meta-label{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.admin-job-meta-value{color:var(--color-text-primary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.admin-job-card-chevron{color:var(--color-text-muted);flex:none}.admin-error-code{color:var(--color-negative);font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.admin-detail-grid{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.admin-detail-grid dt{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.admin-detail-grid dd{color:var(--color-text-primary);font-size:var(--font-size-sm);margin:0}.admin-detail-wide{grid-column:1/-1}.admin-dialog-backdrop{z-index:40;padding:var(--space-4);background:#0009;place-items:center;display:grid;position:fixed;inset:0}.admin-dialog{gap:var(--space-4);max-block-size:min(86vh,720px);inline-size:min(560px,100%);padding:var(--space-5);border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-panel);display:grid;overflow-y:auto}.admin-dialog-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.admin-dialog-header h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.admin-dialog-body{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.admin-dialog-form{gap:var(--space-3);display:grid}.admin-dialog-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.admin-secondary-button,.admin-danger-button{align-items:center;gap:var(--space-2);min-block-size:38px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast);display:inline-flex}.admin-danger-button{border-color:var(--color-negative-border);color:var(--color-negative)}.admin-danger-button:hover:not(:disabled){background:var(--color-negative-soft)}.admin-secondary-button:focus-visible,.admin-danger-button:focus-visible{box-shadow:var(--focus-ring);outline:none}.admin-secondary-button:disabled,.admin-danger-button:disabled{opacity:.55;cursor:not-allowed}.admin-user-detail{gap:var(--space-4);display:grid}.admin-user-identity{gap:var(--space-1);display:grid}.admin-user-identity strong{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.admin-user-identity small{color:var(--color-text-muted)}.admin-detail-section{gap:var(--space-2);border-block-start:1px solid var(--color-border);padding-block-start:var(--space-3);display:grid}.admin-detail-section h3{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.admin-action-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.admin-muted-note{color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-live-note{min-block-size:1.2em;color:var(--color-positive);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.admin-mini-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.admin-mini-list li{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.admin-mini-list small{color:var(--color-text-muted);font-variant-numeric:tabular-nums;margin-inline-start:auto}.admin-section-state{justify-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);color:var(--color-text-secondary);text-align:center;display:grid}.admin-section-state-detail{color:var(--color-text-muted);font-size:var(--font-size-sm)}.admin-empty-state{align-items:center;gap:var(--space-2);padding:var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);color:var(--color-text-muted);font-size:var(--font-size-sm);display:flex}.admin-job-log-list{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);margin:0;padding:0;list-style:none;overflow:hidden}.admin-job-log-item{border-block-end:1px solid var(--color-border)}.admin-job-log-item:last-child{border-block-end:none}.admin-job-log-item>.admin-job-log-summary,.admin-job-log-item summary{align-items:center;gap:var(--space-2) var(--space-3);min-block-size:40px;padding-block:var(--space-2);padding-inline:var(--space-3);flex-wrap:wrap;display:flex}.admin-job-log-item summary{cursor:pointer;list-style:none}.admin-job-log-item summary::-webkit-details-marker{display:none}.admin-job-log-item summary:hover{background:var(--color-surface-muted)}.admin-job-log-item summary:focus-visible{box-shadow:var(--focus-ring);outline:none}.admin-job-log-summary{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;min-inline-size:0;display:flex}.admin-job-log-time{color:var(--color-text-muted);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.admin-job-log-summary strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.admin-job-log-item details[open] summary{border-block-end:1px solid var(--color-border);background:var(--color-surface-muted)}.admin-job-log-item details>.admin-detail-grid{padding:var(--space-3)}.admin-metadata-list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.admin-metadata-list li{gap:var(--space-2);font-size:var(--font-size-xs);display:flex}.admin-metadata-list code{color:var(--color-text-muted);font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.admin-load-more{justify-self:center}@media (width<=1100px){.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-jobs-grid{grid-template-columns:1fr}}@media (width<=640px){.admin-kpi-grid{grid-template-columns:1fr}.admin-toolbar-action{margin-inline-start:0}.admin-detail-grid,.admin-create-form{grid-template-columns:1fr}.admin-dialog{padding:var(--space-4)}}.spesometro-page>:not(.speso-titlebar){transition:opacity .16s}.spesometro-page.is-switching>:not(.speso-titlebar){opacity:.5;pointer-events:none;transition-delay:.12s}.speso-titlebar{align-items:center;gap:var(--space-4);flex-wrap:wrap}.speso-toolbar{min-block-size:var(--control-block-size);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);align-items:center;gap:2px;padding:3px;display:inline-flex}.speso-toolbar-divider{block-size:20px;inline-size:1px;margin-inline:var(--space-1);background:var(--color-border-strong)}.speso-month-stepper{align-items:center;gap:2px;display:inline-flex}.speso-month-stepper .select{border-radius:var(--radius-md);min-block-size:32px;inline-size:auto;min-inline-size:150px;color:var(--color-text-primary);font-weight:var(--font-weight-semibold);background-color:#0000;border-color:#0000}.speso-month-stepper .select:hover{background-color:var(--color-surface-muted)}.speso-step{border-radius:var(--radius-md);block-size:32px;inline-size:32px;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--motion-fast), color var(--motion-fast);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.speso-toolbar .speso-step:hover:not(:disabled),.speso-toolbar .speso-bank-status:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text-primary);border-color:#0000}.speso-step:disabled{cursor:default;opacity:.35}.speso-step:focus-visible,.speso-bank-status:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-titlebar-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-inline-start:auto;display:flex}.speso-bank-status{align-items:center;gap:var(--space-2);min-block-size:32px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:border-color var(--motion-fast), color var(--motion-fast);background:0 0;border:1px solid #0000;display:inline-flex}.speso-bank-status:disabled{cursor:progress}.speso-bank-dot{border-radius:var(--radius-pill);background:var(--color-unavailable);flex:none;block-size:8px;inline-size:8px}.speso-bank-status.is-connected .speso-bank-dot{background:var(--color-positive)}.speso-bank-status.is-syncing .speso-bank-dot{animation:1.6s ease-out infinite hero-market-pulse}.speso-bank-status.is-pending .speso-bank-dot{background:var(--color-warning)}.speso-bank-status.is-expired .speso-bank-dot,.speso-bank-status.is-error .speso-bank-dot{background:var(--color-negative)}.speso-count-badge{border-radius:var(--radius-pill);background:var(--color-surface-muted);min-inline-size:20px;color:var(--color-text-primary);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;text-align:center;padding:1px 6px}.speso-hero{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(320px,.75fr);display:grid;overflow:hidden}.speso-hero-zone{align-content:center;gap:var(--space-2);min-inline-size:0;padding:var(--space-6);display:grid}.speso-hero-zone+.speso-hero-zone{border-inline-start:1px solid var(--color-border)}.speso-hero>.speso-hero-pace{gap:var(--space-2);padding-block:var(--space-4);border-inline-start:0;border-block-start:1px solid var(--color-border);grid-area:2/1/auto/-1}.speso-forecast-details{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.speso-forecast-details summary{cursor:pointer;width:fit-content;padding-block:var(--space-2)}.speso-forecast-details summary:focus-visible{outline:2px solid}.speso-forecast-details dl{gap:var(--space-1);display:grid}.speso-forecast-details dl>div{gap:var(--space-2);flex-wrap:wrap;display:flex}.speso-forecast-details dd{font-variant-numeric:tabular-nums;margin:0}.speso-hero-label{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.speso-hero-headline{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.speso-hero-value{font-family:var(--font-display);font-size:var(--font-size-display);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;line-height:1}.speso-hero-value .formatted-value-fraction,.speso-hero-value .formatted-value-unit{color:var(--color-text-faint)}.speso-hero-value .formatted-value-unit{font-size:.72em}.speso-hero-chip{border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;cursor:default;padding:3px 10px;animation:.42s cubic-bezier(.2,.8,.2,1) .26s both speso-chip-in}.speso-hero-chip.is-negative{background:color-mix(in srgb, var(--color-negative) 14%, transparent);color:var(--color-negative)}.speso-hero-chip.is-positive{background:color-mix(in srgb, var(--color-positive) 14%, transparent);color:var(--color-positive)}.speso-hero-chip:focus-visible,.speso-months-month:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-hero-sub,.speso-hero-note{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;margin:0}.speso-hero-sub{color:var(--color-text-secondary);margin-block-end:var(--space-2)}.speso-hero-note b{font-weight:var(--font-weight-semibold)}.speso-hero-note.is-negative,.speso-hero-note b.is-negative{color:var(--color-negative)}.speso-hero-note b.is-positive{color:var(--color-positive)}.speso-hero-balance{justify-content:start;align-items:baseline;gap:var(--space-1) var(--space-4);white-space:nowrap;grid-template-columns:auto;display:grid}.speso-hero-balance.has-forecast{grid-template-columns:auto auto}.speso-hero-forecast{white-space:nowrap;color:var(--chart-line-forecast);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;cursor:default;align-items:baseline;gap:6px;display:inline-flex}.speso-hero-forecast b{font-family:var(--font-display);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.speso-hero-forecast-change{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.speso-hero-forecast-change.is-positive{color:var(--color-positive)}.speso-hero-forecast-change.is-negative{color:var(--color-negative)}.speso-hero-forecast:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}.speso-hero-flow{gap:var(--space-2);display:grid}.speso-hero-flow-bar{border-radius:var(--radius-pill);background:var(--color-surface-muted);gap:2px;block-size:10px;display:flex;overflow:hidden}.speso-hero-flow-segment{transform-origin:0;min-inline-size:4px;animation:.7s cubic-bezier(.25,.8,.35,1) backwards geo-strip-grow}.speso-hero-flow-keys{gap:var(--space-1) var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.speso-hero-flow-keys li{align-items:center;gap:6px;display:inline-flex}.speso-hero-flow-keys b{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.speso-hero-key-dot{background:var(--key-color);border-radius:50%;block-size:8px;inline-size:8px}.speso-hero-foot{gap:var(--space-1) var(--space-5);margin:var(--space-2) 0 0;border-block-start:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-xs);flex-wrap:wrap;padding-block-start:var(--space-3);display:flex}.speso-hero-foot b{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;margin-inline-start:4px}.speso-hero-foot b.is-positive{color:var(--color-positive)}.speso-hero-foot b.is-negative{color:var(--color-negative)}.speso-hero-trend{align-content:stretch}.speso-hero-zone-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.speso-months{gap:var(--space-2);grid-template-rows:minmax(0,1fr) auto;min-block-size:150px;display:grid}.speso-months-plot{grid-template-columns:repeat(var(--trend-columns), minmax(0, 1fr));gap:var(--space-1);border-block-end:1px solid var(--color-border);grid-template-rows:minmax(0,1fr);min-block-size:0;display:grid;position:relative}.speso-months-average{z-index:1;border-block-start:1px dashed var(--color-text-faint);pointer-events:none;position:absolute;inset-inline:0}.speso-months-month{border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;min-inline-size:0;transition:background var(--motion-fast);background:0 0;border:0;justify-content:center;align-items:flex-end;gap:3px;padding:0 2px;display:flex}.speso-months-month.is-static{cursor:default}.speso-months-month:hover{background:var(--color-surface-muted)}.speso-months-bar{transform-origin:bottom;border-radius:3px 3px 0 0;flex:0 12px;min-block-size:2px;animation:.64s cubic-bezier(.25,.8,.35,1) backwards speso-bar-rise}.speso-months-bar.is-income{background:color-mix(in srgb, var(--color-positive) 38%, transparent)}.speso-months-bar.is-expense{background:color-mix(in srgb, var(--color-negative) 38%, transparent)}.speso-months-month.is-selected .speso-months-bar.is-income{background:var(--color-positive)}.speso-months-month.is-selected .speso-months-bar.is-expense{background:var(--color-negative)}.speso-months-axis{grid-template-columns:repeat(var(--trend-columns), minmax(0, 1fr));gap:var(--space-1);color:var(--color-text-muted);text-align:center;font-size:11px;display:grid}.speso-months-axis .is-selected{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.speso-hero-account{grid-template-rows:1fr 1fr;align-content:stretch;gap:0;padding:0}.speso-hero-stat{align-content:start;gap:var(--space-1);padding:var(--space-4) var(--space-5);display:grid}.speso-hero-stat:first-child{padding-block-start:var(--space-6)}.speso-hero-stat+.speso-hero-stat{border-block-start:1px solid var(--color-border)}.speso-hero-stat-value{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.speso-hero-stat-value small{color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--font-size-xs);font-weight:var(--font-weight-regular)}.speso-hero-budget-track{border-radius:var(--radius-pill);background:var(--color-surface-muted);block-size:5px;margin-block:2px;display:block;overflow:hidden}.speso-hero-budget-fill{border-radius:inherit;background:var(--color-text-primary);transform-origin:0;block-size:100%;animation:.8s cubic-bezier(.25,.8,.35,1) .32s backwards geo-strip-grow;display:block}.speso-hero-budget-fill.is-warning{background:var(--color-warning)}.speso-hero-budget-fill.is-over{background:var(--color-negative)}@keyframes speso-bar-rise{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes speso-chip-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.speso-hero-chip,.speso-hero-flow-segment,.speso-months-bar,.speso-hero-budget-fill,.speso-bank-status.is-syncing .speso-bank-dot{animation:none}}@media (width<=1100px){.speso-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.speso-hero>.speso-hero-account{border-inline-start:0;border-block-start:1px solid var(--color-border);grid-column:1/-1;grid-template-rows:none;grid-template-columns:1fr 1fr}.speso-hero>.speso-hero-pace{grid-row:auto}.speso-hero-stat+.speso-hero-stat{border-block-start:0;border-inline-start:1px solid var(--color-border)}}@media (width<=760px){.speso-hero{grid-template-columns:minmax(0,1fr)}.speso-hero-zone+.speso-hero-zone{border-inline-start:0;border-block-start:1px solid var(--color-border)}.speso-hero-zone{padding:var(--space-5)}}.speso-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.speso-connect-hint{align-items:center;gap:var(--space-2);padding-block:var(--space-2);padding-inline:var(--space-3);border:1px solid var(--color-accent-soft);border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-text-secondary);font-size:var(--font-size-sm);display:flex}.speso-connect-hint svg{color:var(--color-accent);flex-shrink:0}.speso-connect-hint.is-error{border-color:var(--color-negative-soft);background:var(--color-negative-soft)}.speso-connect-hint.is-error svg{color:var(--color-negative)}.auto-dismiss-banner{transition:opacity var(--motion-medium), transform var(--motion-medium);transform:translateY(0)}.auto-dismiss-banner.is-leaving{opacity:0;pointer-events:none;transform:translateY(-4px)}@media (prefers-reduced-motion:reduce){.auto-dismiss-banner{transition:none}}.speso-integrations{gap:var(--space-5);display:grid}.speso-integrations-header,.speso-section-header{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.speso-integrations-aside,.speso-section-aside{margin-inline-start:auto}.speso-back-link,.speso-integrations-refresh{border:1px solid var(--color-border-strong);background:var(--color-surface);block-size:42px;inline-size:42px;color:var(--color-text-secondary);cursor:pointer;transition:color var(--motion-fast), border-color var(--motion-fast), background var(--motion-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.speso-back-link:hover,.speso-integrations-refresh:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-accent)}.speso-integrations-heading,.speso-section-heading{min-inline-size:0}.speso-back-link:focus-visible,.speso-integrations-refresh:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-integrations-heading h1,.speso-section-heading h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.speso-integrations-heading p,.speso-section-heading p{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-block-start:var(--space-1)}.speso-filter-chip{min-block-size:36px;padding-inline:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--motion-fast), border-color var(--motion-fast), background var(--motion-fast);align-items:center;display:inline-flex}.speso-filter-chip:hover{color:var(--color-text-primary);border-color:var(--color-accent)}.speso-filter-chip:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-filter-chip.is-active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent)}.speso-integrations-toolbar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.speso-search{flex:240px;max-inline-size:480px;position:relative}.speso-search svg{color:var(--color-text-muted);pointer-events:none;position:absolute;inset-block-start:50%;inset-inline-start:var(--space-3);transform:translateY(-50%)}.speso-search input{min-block-size:42px;inline-size:100%;padding-inline:calc(var(--space-3) + 24px) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-primary);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.speso-search input::placeholder{color:var(--color-text-muted)}.speso-search input:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring);outline:none}.speso-integrations-filters{gap:var(--space-2);flex-wrap:wrap;display:flex}.speso-integrations-refresh{margin-inline-start:auto}.speso-integrations-refresh:disabled{opacity:.6;cursor:default}.speso-integrations-empty{padding:var(--space-6) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:center}.speso-provider-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),340px));display:grid}.speso-integration-notice{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-positive-soft);color:var(--color-positive);font-size:var(--font-size-sm)}.speso-provider-card-button{align-items:stretch;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);text-align:start;cursor:pointer;transition:border-color var(--motion-fast), box-shadow var(--motion-fast);flex-direction:column;display:flex}.speso-provider-card-button:hover{border-color:var(--color-accent);box-shadow:var(--shadow-card-hover)}.speso-provider-card-button:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-provider-card-top{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.speso-provider-card-top .speso-provider-state{margin-inline-start:auto}.speso-tile-title{min-inline-size:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.speso-tile-desc{-webkit-line-clamp:2;color:var(--color-text-secondary);font-size:var(--font-size-sm);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.speso-tile-cta{align-items:center;gap:var(--space-1);color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-block-start:auto;display:inline-flex}.speso-provider-badge{border:1px solid var(--color-border-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.speso-provider-badge img{object-fit:contain;block-size:56%;inline-size:56%;display:block}.speso-provider-badge.is-lunchFlow{background:var(--brand-surface-lunch-flow)}.speso-provider-badge.is-lunchFlow img{block-size:100%;inline-size:100%}.speso-provider-badge.is-anthropic{background:var(--brand-surface-claude)}.speso-provider-badge.is-openai{background:var(--brand-surface-openai)}.speso-provider-badge.is-xs{block-size:26px;inline-size:26px}.speso-provider-badge.is-sm{block-size:34px;inline-size:34px}.speso-provider-badge.is-md{block-size:38px;inline-size:38px}.speso-provider-badge.is-lg{block-size:48px;inline-size:48px}.speso-detail-card{padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.speso-provider-state{padding:3px var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.speso-provider-state.is-connected,.speso-provider-state.is-active{background:var(--color-positive-soft);color:var(--color-positive)}.speso-provider-state.is-configured{background:var(--color-accent-soft);color:var(--color-accent)}.speso-provider-state.is-error,.speso-provider-state.is-expired{background:var(--color-negative-soft);color:var(--color-negative)}.speso-provider-body{gap:var(--space-5);display:grid}.speso-provider-note{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);display:flex}.speso-provider-note svg{color:var(--color-positive);flex-shrink:0}.speso-copy-row{align-items:center;gap:var(--space-2);display:flex}.speso-redirect-url{min-inline-size:0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-sunken);color:var(--color-text-primary);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:var(--font-size-xs);white-space:nowrap;flex:1;overflow-x:auto}.speso-integration-form{gap:var(--space-3);display:grid}.speso-key-input{min-block-size:96px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:var(--font-size-xs);resize:vertical}.speso-integration-status{gap:var(--space-2);display:grid}.speso-integration-connected{align-items:center;gap:var(--space-2);color:var(--color-positive);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:flex}.speso-integration-detail-error{color:var(--color-negative)}.speso-integration-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.speso-key-row{align-items:stretch;gap:var(--space-2);display:flex}.speso-key-row input{flex:auto;min-inline-size:0}.speso-model-field{gap:var(--space-1)}.speso-model-label{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.speso-model-label>span{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.speso-model-reload{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--motion-fast), border-color var(--motion-fast);display:inline-flex}.speso-model-reload:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-accent)}.speso-model-reload:disabled{opacity:.6;cursor:default}.speso-model-reload.is-icon{border-radius:50%;flex-shrink:0;justify-content:center;gap:0;block-size:42px;inline-size:42px;padding:0}.speso-model-hint{color:var(--color-text-muted);font-size:var(--font-size-xs)}.speso-model-warning{color:var(--color-warning)}.speso-detail-hero{gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);display:grid}.speso-detail-hero-top{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.speso-detail-status{align-items:center;gap:var(--space-2);min-inline-size:0;display:inline-flex}.speso-detail-status-icon{background:var(--color-surface-muted);block-size:32px;inline-size:32px;color:var(--color-text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.speso-detail-status-label{color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}.speso-detail-status.is-connected .speso-detail-status-icon,.speso-detail-status.is-active .speso-detail-status-icon{background:var(--color-positive-soft);color:var(--color-positive)}.speso-detail-status.is-configured .speso-detail-status-icon{background:var(--color-accent-soft);color:var(--color-accent)}.speso-detail-status.is-error .speso-detail-status-icon,.speso-detail-status.is-expired .speso-detail-status-icon{background:var(--color-negative-soft);color:var(--color-negative)}.speso-detail-facts{justify-content:space-evenly;align-items:center;gap:var(--space-1) var(--space-5);flex-wrap:wrap;flex:auto;min-inline-size:0;margin:0;display:flex}.speso-detail-fact{gap:2px;min-inline-size:0;display:grid}.speso-detail-fact dt{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.speso-detail-fact dd{overflow-wrap:anywhere;color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;margin:0}.speso-detail-alert{align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-negative-border);border-radius:var(--radius-md);background:var(--color-negative-soft);color:var(--color-negative);font-size:var(--font-size-sm);margin:0;display:flex}.speso-detail-alert svg{flex-shrink:0;margin-block-start:2px}.speso-detail-section{gap:var(--space-3) var(--space-7);border-block-start:1px solid var(--color-border);padding-block-start:var(--space-4);display:grid}@media (width>=1000px){.speso-detail-section{grid-template-columns:minmax(220px,300px) minmax(0,1fr);align-items:start}.speso-detail-section.is-vcentered{align-items:center}.speso-detail-section.is-hcentered .speso-detail-section-body{justify-items:center}}.speso-detail-section-head{gap:var(--space-1);display:grid}.speso-detail-section-head h2{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0}.speso-detail-section-head p{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.speso-detail-section-body{gap:var(--space-3);max-inline-size:640px;display:grid}.speso-setup-steps{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.speso-setup-step{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);grid-template-columns:auto 1fr;display:grid}.speso-step-marker{border:1px solid var(--color-border-strong);background:var(--color-surface-muted);block-size:28px;inline-size:28px;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:50%;justify-content:center;align-items:center;margin-block-start:2px;display:inline-flex}.speso-setup-step.is-done{border-color:var(--color-positive-soft)}.speso-setup-step.is-done .speso-step-marker{background:var(--color-positive-soft);color:var(--color-positive);border-color:#0000}.speso-step-body{gap:var(--space-2);min-inline-size:0;display:grid}.speso-step-body h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin:0}.speso-step-body>p{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin:0}.speso-step-done-note{align-items:center;gap:var(--space-1);color:var(--color-positive);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);display:inline-flex}.speso-device-panel{justify-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-sunken);text-align:center;display:grid}.speso-device-instructions{max-inline-size:52ch;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.speso-device-code-row{justify-content:center;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}a.admin-secondary-button,a.primary-button{text-decoration:none}.speso-device-code{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);letter-spacing:.14em}.speso-device-actions{justify-content:center;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.speso-device-waiting{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0;display:flex}.speso-inline-link{color:var(--color-accent);font:inherit;font-weight:var(--font-weight-medium);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.speso-spin{animation:.9s linear infinite speso-spin}@keyframes speso-spin{to{transform:rotate(360deg)}}.speso-engine-panel{align-items:center;gap:var(--space-3);display:inline-flex}.speso-engine-copy{text-align:end;min-inline-size:0;display:grid;position:relative}.speso-engine-copy-line{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;grid-area:1/1;animation:9s ease-in-out infinite speso-engine-copy-swap;overflow:hidden}.speso-engine-copy-line.is-state{color:var(--color-accent);animation-delay:-4.5s}@keyframes speso-engine-copy-swap{0%,42%{opacity:1;transform:translateY(0)}47%,95%{opacity:0;transform:translateY(-5px)}96%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.speso-switch{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface-sunken);color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:color var(--motion-fast), border-color var(--motion-fast);display:inline-flex}.speso-switch:hover:not(:disabled),.speso-switch.is-on{color:var(--color-text-primary)}.speso-switch.is-on{border-color:var(--color-accent)}.speso-switch:disabled{cursor:default;opacity:.6}.speso-switch:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-switch-track{border-radius:var(--radius-pill);background:var(--color-border-strong);block-size:22px;inline-size:40px;transition:background var(--motion-fast);flex-shrink:0;position:relative}.speso-switch.is-on .speso-switch-track{background:var(--color-accent-soft)}.speso-switch-thumb{border-radius:var(--radius-pill);background:var(--color-text-secondary);block-size:16px;inline-size:16px;transition:transform .28s cubic-bezier(.34, 1.56, .64, 1), background var(--motion-fast);position:absolute;inset-block:3px;inset-inline-start:3px}.speso-switch.is-on .speso-switch-thumb{background:var(--color-accent);transform:translate(18px)}.speso-engine-switch{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface-sunken);flex-shrink:0;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;display:grid;position:relative}.speso-engine-switch button{z-index:1;justify-content:center;align-items:center;gap:var(--space-2);min-block-size:36px;padding-inline:var(--space-3);border-radius:var(--radius-pill);color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;opacity:.55;transition:opacity var(--motion-fast), color var(--motion-fast);background:0 0;border:none;display:inline-flex;position:relative}.speso-engine-switch button:hover:not(:disabled),.speso-engine-switch button[aria-checked=true]{opacity:1}.speso-engine-switch button[aria-checked=true]{color:var(--color-text-primary)}.speso-engine-switch button[aria-checked=true],.speso-engine-switch button:disabled{cursor:default}.speso-engine-switch button:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-engine-switch-thumb{border:1px solid var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent-soft);inline-size:calc(50% - 4px);transition:transform .32s cubic-bezier(.34,1.56,.64,1);position:absolute;inset-block:4px;inset-inline-start:4px}.speso-engine-switch.is-openai .speso-engine-switch-thumb{transform:translate(100%)}.speso-engine-switch.is-busy .speso-engine-switch-thumb{animation:1.1s ease-in-out infinite speso-engine-busy-pulse}@keyframes speso-engine-busy-pulse{50%{border-color:var(--color-accent-ring)}}@media (prefers-reduced-motion:reduce){.speso-engine-copy-line{animation:none}.speso-engine-copy-line.is-purpose{visibility:hidden}.speso-engine-switch-thumb{transition:none;animation:none}.speso-engine-switch.is-busy .speso-engine-switch-thumb{animation:none}}.speso-freq{align-items:center;gap:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.speso-freq-switch{zoom:.85;border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface-sunken);flex-shrink:0;grid-template-columns:repeat(3,minmax(0,1fr));inline-size:min(300px,100%);padding:4px;display:grid;position:relative}.speso-freq-thumb{border:1px solid var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent-soft);inline-size:calc(33.3333% - 2.66667px);transition:transform .34s cubic-bezier(.34,1.45,.6,1);position:absolute;inset-block:4px;inset-inline-start:4px}.speso-freq-switch.is-2 .speso-freq-thumb{transform:translate(100%)}.speso-freq-switch.is-3 .speso-freq-thumb{transform:translate(200%)}.speso-freq-switch button{z-index:1;padding:8px var(--space-2);color:var(--color-text-secondary);font:inherit;cursor:pointer;border-radius:var(--radius-pill);transition:color var(--motion-fast);background:0 0;border:0;justify-content:center;align-items:center;gap:4px;display:inline-flex;position:relative}.speso-freq-switch button[aria-checked=true]{color:var(--color-text-primary);cursor:default}.speso-freq-switch button:disabled{cursor:default;opacity:.6}.speso-freq-switch button:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-freq-count{font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}.speso-freq-unit{color:var(--color-text-muted);font-size:var(--font-size-xs)}.speso-freq-switch button[aria-checked=true] .speso-freq-unit{color:var(--color-accent)}.speso-freq-times{gap:var(--space-2);flex-wrap:wrap;min-block-size:30px;display:flex}.speso-freq-chip{align-items:center;gap:var(--space-1);padding:5px var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-text-primary);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;animation:.36s cubic-bezier(.34,1.5,.6,1) both speso-freq-chip-in;display:inline-flex}.speso-freq-chip svg{color:var(--color-accent);flex-shrink:0}@keyframes speso-freq-chip-in{0%{opacity:0;transform:translateY(6px)scale(.85)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.speso-freq-thumb{transition:none}.speso-freq-chip{animation:none}}.speso-engine-fallback{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-warning);font-size:var(--font-size-sm)}@media (width<=640px){.speso-integrations-aside{flex-basis:100%;margin-inline-start:0}.speso-engine-panel{justify-content:space-between;inline-size:100%}}.speso-panel{gap:var(--space-4);padding-block:var(--section-padding-block);padding-inline:var(--section-padding-inline);min-inline-size:0;display:grid}.speso-panel-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.speso-panel-actions button{align-items:center;gap:var(--space-2);display:inline-flex}.speso-kind-toggle,.speso-direction-toggle{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface-sunken);padding:3px;display:inline-flex}.speso-direction-toggle{inline-size:100%}.speso-kind-option,.speso-direction-option{min-block-size:32px;padding-inline:var(--space-3);border-radius:var(--radius-pill);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:background var(--motion-fast), color var(--motion-fast);background:0 0;flex:1}.speso-kind-option.is-active,.speso-direction-option.is-active{background:var(--color-accent-soft);color:var(--color-text-primary)}.speso-direction-option.is-active.is-expense{background:var(--color-negative-soft);color:var(--color-negative)}.speso-direction-option.is-active.is-income{background:var(--color-positive-soft);color:var(--color-positive)}.speso-direction-option:disabled{opacity:.55;cursor:default}.speso-category-swatch{border-radius:var(--radius-pill);flex-shrink:0;block-size:12px;inline-size:12px}.speso-cats-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.speso-cats-title{align-items:center;gap:var(--space-2) var(--space-5);flex-wrap:wrap;min-inline-size:0;display:flex}.speso-cats-head h2{margin:0}.speso-cats-manage{flex-shrink:0}.speso-cats-tabs{grid-area:tabs;justify-self:center;inline-size:fit-content;max-inline-size:100%}.speso-cats-tab{gap:var(--space-3);padding-inline:var(--space-4)}.speso-cats-tab-amount{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.speso-cats-tab.is-active .speso-cats-tab-amount{color:var(--color-negative)}.speso-cats-tab.is-income.is-active .speso-cats-tab-amount{color:var(--color-positive)}.speso-cats-body{grid-template-columns:var(--speso-cats-ring-size) minmax(0, 1fr);align-items:start;gap:var(--space-4) var(--space-7);padding-block:var(--space-1);padding-inline:var(--space-2);grid-template-areas:"tabs.""ring list";display:grid}.speso-cats-ring{inline-size:var(--speso-cats-ring-size,240px);aspect-ratio:1;grid-area:ring;margin:0;position:relative}.speso-cats-ring svg{block-size:100%;inline-size:100%;display:block;overflow:visible}.speso-cats-ring-track{fill:none;stroke:var(--color-surface-muted)}.speso-cats-ring-slice{fill:none;cursor:pointer;transition:stroke-width .22s cubic-bezier(.2,.8,.2,1),opacity .22s;animation:.76s cubic-bezier(.2,.8,.2,1) both speso-ring-sweep}.speso-cats-body.has-active .speso-cats-ring-slice:not(.is-active){opacity:.28}.speso-cats-center{text-align:center;pointer-events:none;place-content:center;justify-items:center;gap:2px;animation:.26s both speso-cats-fade;display:grid;position:absolute;inset:22%}.speso-cats-center-label{max-inline-size:100%;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.speso-cats-center-value{font-family:var(--font-display);font-size:clamp(26px, calc(var(--speso-cats-ring-size,240px) * .11), 38px);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}.speso-cats-center-note{color:var(--color-text-muted);font-size:var(--font-size-sm)}.speso-cats-side{align-content:start;gap:var(--space-4);grid-area:list;min-inline-size:0;display:grid}.speso-cats-tally{align-items:center;gap:var(--space-2) var(--space-5);border-inline-start:1px solid var(--color-border-strong);color:var(--color-text-secondary);font-size:var(--font-size-md);flex-wrap:wrap;margin:0;padding-inline-start:var(--space-5);line-height:1.4;animation:.4s .12s both speso-cats-fade;display:flex}.speso-cats-tally-title{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.speso-cats-tally-item{align-items:center;gap:var(--space-2);display:inline-flex}.speso-cats-tally-item:before{content:"";border-radius:var(--radius-pill);background:var(--color-positive);block-size:8px;inline-size:8px}.speso-cats-tally-item.is-warning:before{background:var(--color-warning)}.speso-cats-tally-item.is-over:before{background:var(--color-negative)}.speso-cats-tally-item b{color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.speso-cats-list{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(var(--speso-cats-rows), auto);gap:2px var(--space-5);grid-auto-flow:column;margin:0;padding:0;list-style:none;display:grid}.speso-cats-list>li{min-inline-size:0;animation:.42s cubic-bezier(.2,.8,.2,1) both speso-cats-rise;animation-delay:calc(.16s + var(--speso-cat-index) * 35ms)}.speso-cat-row{align-items:center;gap:6px var(--space-3);inline-size:100%;padding:9px var(--space-3);border-radius:var(--radius-md);color:var(--color-text-primary);text-align:start;cursor:pointer;background:0 0;border:0;grid-template-columns:8px minmax(0,1fr) auto;grid-template-areas:"dot name amount"".foot foot";transition:background-color .18s,opacity .18s;display:grid}.speso-cat-row.has-budget{grid-template-areas:"dot name amount"".meter meter"".foot foot"}.speso-cat-foot{justify-content:space-between;align-items:baseline;gap:var(--space-3);grid-area:foot;min-inline-size:0;display:flex}.speso-cats-body.has-active .speso-cat-row:not(.is-active){opacity:.45}.speso-cat-row.is-active,.speso-cat-row.is-selected{background:var(--color-surface-muted)}.speso-cat-row:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-cat-dot{border-radius:var(--radius-pill);background:var(--speso-cat-color);grid-area:dot;block-size:8px;inline-size:8px}.speso-cat-name{min-inline-size:0;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;grid-area:name;align-items:center;gap:6px;display:inline-flex;overflow:hidden}.speso-cat-amount{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:amount;justify-self:end}.speso-cat-meter{border-radius:var(--radius-pill);background:var(--color-surface-muted);grid-area:meter;block-size:4px;position:relative}.speso-cat-row.is-active .speso-cat-meter,.speso-cat-row.is-selected .speso-cat-meter{background:var(--color-border-strong)}.speso-cat-meter-fill{border-radius:inherit;background:var(--speso-cat-color);transform-origin:0;animation:.7s cubic-bezier(.2,.8,.2,1) both speso-cats-grow;animation-delay:calc(.26s + var(--speso-cat-index) * 35ms);position:absolute;inset:0}.speso-cat-row.is-warning .speso-cat-meter-fill{background:var(--color-warning)}.speso-cat-row.is-over .speso-cat-meter-fill{background:var(--color-negative)}.speso-cat-meter-limit{background:var(--color-text-primary);border-radius:1px;inline-size:2px;margin-inline-start:-1px;position:absolute;inset-block:-3px}.speso-cat-meta{min-inline-size:0;color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.speso-cat-budget{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.speso-cat-budget b{color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}.speso-cat-row.is-warning .speso-cat-budget b{color:var(--color-warning)}.speso-cat-row.is-over .speso-cat-budget b{color:var(--color-negative)}@keyframes speso-ring-sweep{0%{stroke-dasharray:0 100}}@keyframes speso-cats-grow{0%{transform:scaleX(0)}}@keyframes speso-cats-rise{0%{opacity:0;transform:translateY(6px)}}@keyframes speso-cats-fade{0%{opacity:0}}@media (width<=1100px){.speso-cats-body{justify-items:center;gap:var(--space-5);grid-template-columns:1fr;grid-template-areas:"tabs""ring""list"}.speso-cats-side{inline-size:100%}}@media (width<=760px){.speso-cats-list{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-auto-flow:row}}@media (prefers-reduced-motion:reduce){.speso-cats-ring-slice,.speso-cats-center,.speso-cats-tally,.speso-cats-list>li,.speso-cat-meter-fill{animation:none}}.speso-catman{gap:var(--space-5);display:grid}.speso-catman-count{color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.speso-catman-budget-figures{white-space:nowrap;align-items:baseline;gap:4px;display:inline-flex}.speso-catman-budget-figures b{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.speso-catman-meter{border-radius:var(--radius-pill);background:var(--color-surface-muted);block-size:4px;display:block;position:relative}.speso-catman-meter-fill{border-radius:inherit;background:var(--color-positive);transform-origin:0;animation:.7s cubic-bezier(.2,.8,.2,1) both speso-cats-grow;animation-delay:calc(.18s + var(--speso-catman-index,0) * 22ms);position:absolute;inset:0}.is-warning>.speso-catman-meter .speso-catman-meter-fill,.is-warning .speso-catman-meter-fill{background:var(--color-warning)}.is-over>.speso-catman-meter .speso-catman-meter-fill,.is-over .speso-catman-meter-fill{background:var(--color-negative)}.speso-catman-meter-limit{background:var(--color-text-primary);border-radius:1px;inline-size:2px;margin-inline-start:-1px;position:absolute;inset-block:-3px}.speso-catman-action{border-radius:var(--radius-md);block-size:34px;inline-size:34px;color:var(--color-text-faint);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:color .16s,background-color .16s;display:inline-grid}.speso-catman-action:focus-visible{color:var(--color-text-secondary)}.speso-catman-action:hover{background:var(--color-surface);color:var(--color-text-primary)}.speso-catman-action.is-danger:hover{color:var(--color-negative)}.speso-catman-action:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-budget-form{gap:var(--space-5);display:grid}.speso-budget-form-label{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.speso-budget-amount{gap:var(--space-2);display:grid}.speso-category-name-input{inline-size:100%;min-inline-size:0;color:var(--color-text-primary);font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;padding:var(--space-2) var(--space-4);border:0;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:0 0;background:var(--color-surface-sunken);font-size:var(--font-size-lg);outline:none;transition:border-color .16s}.speso-category-name-input:focus{border-color:var(--color-accent)}.speso-budget-thresholds{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.speso-budget-thresholds small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.speso-budget-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.speso-budget-chip{min-inline-size:64px;padding:7px var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;transition:background-color .16s,color .16s,border-color .16s}.speso-budget-chip:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-text-primary)}.speso-budget-chip.is-active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-on)}.speso-budget-chip:disabled{cursor:default;opacity:.4}.speso-budget-chip:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-budget-switch{align-items:start;gap:var(--space-3);cursor:pointer;grid-template-columns:36px minmax(0,1fr);display:grid;position:relative}.speso-budget-switch input{opacity:0;pointer-events:none;position:absolute}.speso-budget-switch-track{border-radius:var(--radius-pill);background:var(--color-border-strong);block-size:20px;inline-size:36px;margin-block-start:1px;transition:background-color .18s;position:relative}.speso-budget-switch-track:after{content:"";border-radius:var(--radius-pill);background:var(--color-text-secondary);block-size:16px;inline-size:16px;transition:transform .18s cubic-bezier(.2,.8,.2,1),background-color .18s;position:absolute;inset-block-start:2px;inset-inline-start:2px}.speso-budget-switch input:checked+.speso-budget-switch-track{background:var(--color-accent)}.speso-budget-switch input:checked+.speso-budget-switch-track:after{background:var(--color-accent-on);transform:translate(16px)}.speso-budget-switch input:focus-visible+.speso-budget-switch-track{box-shadow:var(--focus-ring)}.speso-budget-switch-copy{font-size:var(--font-size-sm);gap:2px;display:grid}.speso-budget-switch-copy>span{align-items:center;gap:6px;display:inline-flex}.speso-budget-switch-copy small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.speso-budget-form-actions>.admin-danger-button{margin-inline-end:auto}@media (prefers-reduced-motion:reduce){.speso-catman-meter-fill{animation:none}}.speso-catdet{align-items:stretch;gap:var(--space-5);grid-template-columns:minmax(220px,300px) minmax(0,1fr);display:grid}.speso-catdet-nav{align-content:start;gap:var(--space-3);padding:var(--space-4) var(--space-3) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);display:grid}.speso-catdet-nav-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding-inline:var(--space-2) 0;display:flex}.speso-catdet-nav-head h2{align-items:center;gap:var(--space-2);color:var(--color-text-primary);font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0;display:inline-flex}.speso-catdet-nav-count{min-inline-size:26px;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-secondary);font-family:var(--font-sans);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;text-align:center}.speso-catdet-new{min-block-size:32px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:border-color var(--motion-fast), color var(--motion-fast);background:0 0;align-items:center;gap:6px;display:inline-flex}.speso-catdet-new:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.speso-catdet-new:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-catdet-search{align-items:center;gap:var(--space-2);min-block-size:36px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);color:var(--color-text-muted);transition:border-color var(--motion-fast);display:flex}.speso-catdet-search:focus-within{border-color:var(--color-accent);color:var(--color-text-secondary)}.speso-catdet-search input{min-inline-size:0;color:var(--color-text-primary);font-size:var(--font-size-sm);background:0 0;border:0;outline:none;flex:1}.speso-catdet-nav ul{padding:var(--space-2) 0 0;border-block-start:1px solid var(--color-border);gap:2px;margin:0;list-style:none;display:grid}.speso-catdet-nav-empty{padding:var(--space-4) var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;margin:0}.speso-catdet-item{align-items:center;gap:var(--space-2);inline-size:100%;padding:8px var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:start;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto auto;transition:background-color .14s,color .14s;display:grid}.speso-catdet-item:hover{background:var(--color-surface-muted);color:var(--color-text-primary)}.speso-catdet-item.is-selected{background:var(--color-surface-muted);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.speso-catdet-item.is-new{border:1px dashed var(--color-border-strong);color:var(--color-text-primary);cursor:default}.speso-catdet-head h2.is-placeholder{color:var(--color-text-muted)}.speso-catdet-item:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-catdet-item-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.speso-catdet-item-amount{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);font-variant-numeric:tabular-nums}.speso-catdet-item-amount.is-positive{color:var(--color-positive)}.speso-catdet-dot{border-radius:var(--radius-pill);background:var(--color-positive);block-size:7px;inline-size:7px}.speso-catdet-dot.is-warning{background:var(--color-warning)}.speso-catdet-dot.is-over{background:var(--color-negative)}.speso-catdet-panel{min-inline-size:0;padding:var(--space-6) var(--space-6) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;animation:.26s both speso-cats-fade;display:flex}.speso-catdet-panel.is-empty{justify-content:center;align-items:center;gap:var(--space-3);color:var(--color-text-muted);text-align:center}.speso-catdet-panel.is-empty strong{color:var(--color-text-secondary)}.speso-catdet-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.speso-catdet-title{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;min-inline-size:0;display:flex}.speso-catdet-head h2{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0}.speso-catdet-kinds{gap:var(--space-2);flex-wrap:wrap;display:flex}.speso-catdet-kind{padding:2px var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.speso-catdet-figures{margin:var(--space-5) 0 0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.speso-catdet-figure{align-content:start;gap:var(--space-2);min-inline-size:0;padding:var(--space-4) var(--space-5);display:grid}.speso-catdet-figure+.speso-catdet-figure{border-inline-start:1px solid var(--color-border)}.speso-catdet-figure dt{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.speso-catdet-figure dd{gap:4px;margin:0;display:grid}.speso-catdet-figure strong{font-family:var(--font-display);font-size:22px;font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;line-height:1.2}.speso-catdet-figure small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.speso-catdet-figure.is-income strong{color:var(--color-positive)}.speso-catdet-figure.is-warning strong{color:var(--color-warning)}.speso-catdet-figure.is-over strong{color:var(--color-negative)}.speso-catdet-figure .speso-catman-meter{background:var(--color-border-strong);margin-block:2px}.speso-catdet-form{margin-block-start:var(--space-3);display:grid}.speso-catdet-row{align-items:center;gap:var(--space-4);min-block-size:60px;padding-block:var(--space-2);border-block-end:1px solid var(--color-border);grid-template-columns:170px minmax(0,1fr);display:grid}.speso-catdet-label{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);align-items:center;gap:6px;display:inline-flex}.speso-catdet-info{border-radius:var(--radius-pill);block-size:20px;inline-size:20px;color:var(--color-text-faint);cursor:help;background:0 0;border:0;place-items:center;padding:0;display:inline-grid}.speso-catdet-info:hover,.speso-catdet-info:focus-visible{color:var(--color-text-primary)}.speso-catdet-info:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-catdet-input,.speso-catdet-amount{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-sunken);inline-size:min(100%,340px);transition:border-color .16s}.speso-catdet-input{padding:8px var(--space-3);color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);outline:none}.speso-catdet-input:focus,.speso-catdet-amount:focus-within{border-color:var(--color-accent)}.speso-catdet-amount{align-items:baseline;gap:var(--space-2);inline-size:min(100%,200px);padding:8px var(--space-3);display:inline-flex}.speso-catdet-amount input{inline-size:100%;min-inline-size:0;color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none}.speso-catdet-amount>span{color:var(--color-text-muted)}.speso-catdet-alerts{align-items:center;gap:var(--space-3) var(--space-6);flex-wrap:wrap;display:flex}.speso-catdet-alerts .speso-budget-switch{align-items:center}.speso-catdet-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;padding-block-start:var(--space-4);display:flex}.speso-catdet-remove{padding:7px var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:1px solid #0000;margin-inline-end:auto;transition:color .14s,border-color .14s}.speso-catdet-remove:hover:not(:disabled){border-color:var(--color-negative);color:var(--color-negative)}.speso-catdet-remove:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-catdet-form .form-error{margin:var(--space-3) 0 0}.speso-catdet-moves{gap:var(--space-2);border-block-start:1px solid var(--color-border);flex-direction:column;flex:auto;margin-block-start:var(--space-5);padding-block-start:var(--space-4);display:flex}.speso-catdet-moves h3{align-items:baseline;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:0;display:inline-flex}.speso-catdet-moves-list{contain:size;flex:1 1 0;min-block-size:96px;margin:0;padding:0;list-style:none;overflow-y:auto}.speso-catdet-move{align-items:center;gap:var(--space-3);padding:8px var(--space-2);border-radius:var(--radius-md);grid-template-columns:56px minmax(0,1fr) auto;animation:.32s cubic-bezier(.2,.8,.2,1) both speso-cats-rise;display:grid}.speso-catdet-move+.speso-catdet-move{border-block-start:1px solid var(--color-border)}.speso-catdet-move:hover{background:var(--color-surface-muted)}.speso-catdet-move-date{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.speso-catdet-move-text{gap:2px;min-inline-size:0;display:grid}.speso-catdet-move-text>span,.speso-catdet-move-text>small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.speso-catdet-move-text>span{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.speso-catdet-move-text>small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.speso-catdet-move>strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.speso-catdet-moves-empty{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;flex:auto;place-items:center;margin:0;display:grid}@media (width<=1100px){.speso-catdet-figures{grid-auto-flow:row}.speso-catdet-figure+.speso-catdet-figure{border-inline-start:0;border-block-start:1px solid var(--color-border)}.speso-catdet-row{gap:var(--space-2);padding-block:var(--space-3);grid-template-columns:1fr}}@media (width<=900px){.speso-catdet{grid-template-columns:1fr}.speso-catdet-nav{max-block-size:none;position:static}}@media (prefers-reduced-motion:reduce){.speso-catdet-panel{animation:none}}.speso-trend{gap:var(--space-3);display:grid}.speso-trend-legend{gap:var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.speso-trend-legend-item{align-items:center;gap:var(--space-2);display:inline-flex}.speso-trend-swatch{border-radius:var(--radius-sm);block-size:12px;inline-size:12px}.speso-trend-swatch.is-income,.speso-trend-bar.is-income{background:var(--color-positive)}.speso-trend-swatch.is-expense,.speso-trend-bar.is-expense{background:var(--color-negative)}.speso-trend-plot{align-items:end;gap:var(--space-2);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;block-size:180px;display:grid}.speso-trend-col{gap:var(--space-2);grid-template-rows:minmax(0,1fr) auto;block-size:100%;min-inline-size:0;display:grid}.speso-trend-bars{justify-content:center;align-items:flex-end;gap:var(--space-1);block-size:100%;display:flex}.speso-trend-bar{border-radius:var(--radius-sm) var(--radius-sm) 0 0;inline-size:12px;transition:height var(--motion-medium)}.speso-trend-col:focus-visible{outline:2px solid var(--color-accent);outline-offset:var(--space-1)}.speso-trend-month{color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:center}.speso-curve{gap:var(--space-2);margin:0;display:grid}.speso-curve-plot{inline-size:100%;min-inline-size:0;position:relative}.speso-curve-svg{touch-action:pan-y;border-radius:var(--radius-md);outline:none;block-size:auto;inline-size:100%;display:block;overflow:visible}.speso-curve-svg.is-keyboard-focused{outline:2px solid var(--color-accent);outline-offset:3px}.speso-curve-axis-line{stroke:var(--color-border);stroke-width:1px}.speso-curve-axis-x{fill:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:11px}.speso-curve-area{fill:color-mix(in srgb, var(--color-accent) 9%, transparent);stroke:none;animation:.7s .5s backwards speso-curve-fade}.speso-curve-line{fill:none;stroke-linejoin:round;stroke-linecap:round}.speso-curve-line.is-current{stroke:var(--color-accent);stroke-width:2.5px;stroke-dasharray:1;animation:1.1s cubic-bezier(.45,0,.2,1) .15s backwards speso-curve-draw}.speso-curve-line.is-previous{stroke:var(--color-text-secondary);stroke-width:1.75px;stroke-dasharray:6 4;animation:.6s .2s backwards speso-curve-fade}.speso-curve-line.is-projection{stroke:var(--chart-line-forecast);stroke-width:1.5px;stroke-dasharray:1 5;animation:.5s 1.2s backwards speso-curve-fade}.speso-curve-band{fill:color-mix(in srgb, var(--chart-line-forecast) 10%, transparent);stroke:none;animation:.6s 1.1s backwards speso-curve-fade}.speso-curve-line.is-forecast{stroke:var(--chart-line-forecast);stroke-width:1.5px;stroke-dasharray:.5 4;animation:.5s 1.2s backwards speso-curve-fade}.speso-curve-event{fill:var(--color-surface);stroke:var(--chart-line-forecast);stroke-width:1.25px;animation:.4s 1.35s backwards speso-curve-fade}.speso-curve-marker.is-forecast{fill:var(--chart-line-forecast)}.speso-curve-legend-status{color:var(--color-text-muted);font-size:var(--font-size-xs);animation:1.6s ease-in-out infinite speso-curve-breathe}.speso-curve-tooltip-event{justify-content:space-between;gap:var(--space-3);color:var(--color-text-secondary);display:flex}.speso-curve-tooltip-event strong{color:var(--color-negative);font-variant-numeric:tabular-nums}.speso-curve-tooltip-event.is-in strong{color:var(--color-positive)}.speso-curve-projection-end{fill:var(--color-surface);stroke:var(--chart-line-forecast);stroke-width:1.25px;animation:.5s 1.3s backwards speso-curve-fade}.speso-curve-now{animation:.4s 1.2s backwards speso-curve-fade}.speso-curve-now-dot{fill:var(--color-accent);stroke:var(--color-surface);stroke-width:2px}.speso-curve-now-ring{fill:none;stroke:var(--color-accent);stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:2.4s ease-out 1.4s infinite speso-curve-pulse}.speso-curve-crosshair{stroke:var(--color-text-faint);stroke-width:1px;stroke-dasharray:3 3}.speso-curve-marker{stroke:var(--color-surface);stroke-width:2px}.speso-curve-marker.is-current{fill:var(--color-accent)}.speso-curve-marker.is-previous{fill:var(--color-text-secondary)}.speso-curve-tooltip{min-inline-size:max-content;padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-card-hover);font-size:var(--font-size-xs);color:var(--color-text-secondary);pointer-events:none;z-index:3;gap:2px;display:grid;position:absolute;inset-block-start:-6px;transform:translate(-50%,-100%)}.speso-curve-tooltip-day{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.speso-curve-tooltip-row{align-items:center;gap:var(--space-2);display:inline-flex}.speso-curve-tooltip-row strong{color:var(--color-text-primary);font-variant-numeric:tabular-nums;margin-inline-start:auto;padding-inline-start:var(--space-3)}.speso-curve-tooltip-delta{border-block-start:1px solid var(--color-border);font-variant-numeric:tabular-nums;margin-block-start:2px;padding-block-start:2px}.speso-curve-tooltip-delta.is-up{color:var(--color-negative)}.speso-curve-tooltip-delta.is-down{color:var(--color-positive)}.speso-curve-legend{justify-content:center;gap:var(--space-1) var(--space-5);color:var(--color-text-secondary);font-size:var(--font-size-xs);flex-wrap:wrap;display:flex}.speso-curve-legend-item{align-items:center;gap:var(--space-2);display:inline-flex}.speso-curve-legend-item strong{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.speso-curve-swatch{border-block-start:2px solid var(--color-accent);block-size:0;inline-size:14px}.speso-curve-swatch.is-previous{border-block-start-style:dashed;border-block-start-color:var(--color-text-secondary)}.speso-curve-swatch.is-projection{border-block-start-style:dotted;border-block-start-width:3px;border-block-start-color:var(--chart-line-forecast)}@keyframes speso-curve-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes speso-curve-fade{0%{opacity:0}to{opacity:1}}@keyframes speso-curve-breathe{0%,to{opacity:.45}50%{opacity:1}}@keyframes speso-curve-pulse{0%{opacity:.8;transform:scale(1)}70%,to{opacity:0;transform:scale(3)}}@media (prefers-reduced-motion:reduce){.speso-curve-area,.speso-curve-band,.speso-curve-event,.speso-curve-legend-status,.speso-curve-line,.speso-curve-projection-end,.speso-curve-now,.speso-curve-now-ring{animation:none}}.speso-moves{gap:var(--space-5)}.speso-moves-head{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}.speso-moves-title{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;min-inline-size:0;display:flex}.speso-moves-title h2{margin:0}.speso-moves-count{color:var(--color-text-muted);font-size:var(--font-size-md);font-variant-numeric:tabular-nums}.speso-moves-filter{align-items:center;gap:var(--space-2);padding:5px var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--speso-move-color) 10%, transparent);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:border-color .16s;animation:.26s both speso-cats-fade;display:inline-flex}.speso-moves-filter:hover{border-color:var(--color-accent)}.speso-moves-filter:focus-visible{box-shadow:var(--focus-ring);outline:none}.speso-moves-filter-dot{border-radius:var(--radius-pill);background:var(--speso-move-color);block-size:8px;inline-size:8px}.speso-moves-search{flex:0 320px}.speso-moves-days{gap:var(--space-4);display:grid}.speso-moves-day{gap:2px;display:grid}.speso-moves-day-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-block-end:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);animation:.36s both speso-cats-fade;animation-delay:calc(var(--speso-move-index) * 18ms);display:flex}.speso-moves-day-head>span:first-child:first-letter{text-transform:uppercase}.speso-moves-day-net{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.speso-moves-day-net.is-positive{color:var(--color-positive)}.speso-moves-list{margin:0;padding:0;list-style:none;display:grid}.speso-move{align-items:center;gap:var(--space-4);min-block-size:60px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);animation:.38s cubic-bezier(.2,.8,.2,1) both speso-cats-rise;animation-delay:calc(60ms + var(--speso-move-index) * 18ms);grid-template-columns:38px minmax(0,1fr) minmax(170px,220px) minmax(110px,auto) 76px;transition:background-color .16s,opacity .16s;display:grid}.speso-move:hover,.speso-move:focus-within{background:var(--color-surface-muted)}.speso-move.is-pending{opacity:.6}.speso-move-icon{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-negative) 14%, transparent);block-size:38px;inline-size:38px;color:var(--color-negative);place-items:center;display:grid}.speso-move.is-in .speso-move-icon{background:color-mix(in srgb, var(--color-positive) 14%, transparent);color:var(--color-positive)}.speso-move-text{gap:3px;min-inline-size:0;display:grid}.speso-move-title{align-items:center;gap:var(--space-2);min-inline-size:0;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;display:flex;overflow:hidden}.speso-move-detail{color:var(--color-text-muted);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.speso-move-category{min-inline-size:0}.speso-move-amount{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;justify-self:end}.speso-move-actions{justify-content:flex-end;gap:2px;display:inline-flex}.speso-moves-pagination{justify-content:space-between;align-items:center;gap:var(--space-3);border-block-start:1px solid var(--color-border);flex-wrap:wrap;padding-block-start:var(--space-3);display:flex}.speso-moves-range{color:var(--color-text-muted);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.speso-moves-pages{align-items:center;gap:var(--space-3);display:inline-flex}.speso-moves-page{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}@media (width<=900px){.speso-move{row-gap:var(--space-2);grid-template-columns:38px minmax(0,1fr) auto;grid-template-areas:"icon text amount""icon category actions"}.speso-move-icon{grid-area:icon}.speso-move-text{grid-area:text}.speso-move-category{grid-area:category}.speso-move-amount{grid-area:amount}.speso-move-actions{grid-area:actions}}@media (prefers-reduced-motion:reduce){.speso-move,.speso-moves-day-head,.speso-moves-filter{animation:none}}.speso-empty{justify-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);color:var(--color-text-secondary);text-align:center;display:grid}.speso-empty strong{font-size:var(--font-size-md);color:var(--color-text-primary)}.speso-empty svg{color:var(--color-text-muted)}.speso-empty-inline{padding:var(--space-6) var(--space-2);color:var(--color-text-muted);text-align:center}.speso-manual-badge{padding-block:1px;padding-inline:var(--space-2);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);flex-shrink:0}.speso-field-row{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.speso-field{align-content:start;gap:var(--space-1);min-inline-size:0;display:grid}.speso-ai-config-row .speso-field>span,.speso-ai-config-row .speso-model-label{align-items:center;min-block-size:26px;display:flex}.speso-ai-config-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto}.speso-ai-config-save .primary-button{min-block-size:42px}.speso-field>span{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.speso-field input{min-block-size:42px;padding-inline:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-primary);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.speso-field input:focus-visible,.speso-key-input:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-ring);outline:none}.speso-hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}@media (width<=760px){.speso-field-row{grid-template-columns:1fr}}.overview-hero-card{align-items:stretch;gap:var(--space-6);padding-block:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.overview-hero-card:after{content:"";flex:1 1 0;order:1}.overview-hero-card>.month-summary{order:2}.overview-hero-main{align-items:center;gap:var(--space-7);flex:0 auto;grid-template-columns:minmax(0,1fr);min-inline-size:0;display:grid}.overview-hero-main.has-split,.portfolio-hero-split.has-split{--networth-ring-size:214px;grid-template-columns:var(--networth-ring-size) minmax(0, 1fr)}.overview-hero-body{align-content:center;justify-items:start;gap:var(--space-3);inline-size:min(520px,100%);min-inline-size:0;display:grid}.networth-ring{inline-size:var(--networth-ring-size,214px);aspect-ratio:1;margin:0;position:relative}.networth-ring svg{block-size:100%;inline-size:100%;overflow:visible}.networth-ring-track{stroke:var(--color-surface-muted)}.networth-ring-arc{stroke-dasharray:var(--arc-dash);cursor:pointer;transition:stroke-width var(--motion-fast), opacity var(--motion-fast);animation:1s cubic-bezier(.25,.8,.35,1) both asset-arc-sweep}.networth-ring-arc.is-dimmed{opacity:.3}.networth-ring-center{text-align:center;pointer-events:none;place-content:center;justify-items:center;gap:3px;padding:42px;animation:.26s both asset-center-in;display:grid;position:absolute;inset:0}.networth-ring-center strong{font-family:var(--font-display);font-size:33px;font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;line-height:1.05}.networth-ring-center span{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.3}.networth-parts{inline-size:100%;margin:var(--space-2) 0 0;padding:0;list-style:none;display:grid}.networth-parts li{animation:.36s both geo-row-in}.networth-parts li+li{border-block-start:1px solid var(--color-border)}.networth-part{align-items:center;column-gap:var(--space-3);inline-size:100%;padding:var(--space-3) var(--space-2);border-radius:var(--radius-md);color:var(--color-text-primary);text-align:start;cursor:pointer;transition:background var(--motion-fast), opacity var(--motion-fast);background:0 0;grid-template-columns:10px minmax(0,1fr) auto auto 16px;display:grid}.networth-part:hover,.networth-part.is-active{background:var(--color-surface-muted)}.networth-part.is-dimmed{opacity:.55}.networth-part:focus-visible{box-shadow:var(--focus-ring);outline:none}.networth-part-swatch{background:var(--part-color);border-radius:50%;block-size:10px;inline-size:10px}.networth-part-copy{gap:2px;min-inline-size:0;display:grid}.networth-part-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.networth-part-copy small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.networth-part-share{border-radius:var(--radius-pill);background:var(--color-surface-sunken);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;padding:2px 8px}.networth-part-value{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.networth-part-arrow{color:var(--color-text-muted);transition:color var(--motion-fast), transform var(--motion-fast)}.networth-part:hover .networth-part-arrow{color:var(--color-text-primary);transform:translate(2px)}.overview-hero-note{color:var(--color-text-muted);font-size:var(--font-size-xs)}@media (prefers-reduced-motion:reduce){.networth-ring-arc,.networth-ring-center,.networth-parts li,.networth-part,.networth-part-arrow{transition:none;animation:none}}@media (width<=760px){.overview-hero-main.has-split{grid-template-columns:minmax(0,1fr);justify-items:center}}.overview-hero-label{column-gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);flex-wrap:wrap;display:flex}.overview-hero-value{font-family:var(--font-display);font-size:var(--font-size-hero);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;line-height:1}.overview-hero-value .formatted-value-fraction,.overview-hero-value .formatted-value-unit{color:var(--color-text-faint)}.overview-hero-value .formatted-value-unit{font-size:.72em}.month-summary{--month-flow-spending:var(--color-negative);--month-flow-saved:var(--color-positive);align-content:space-between;gap:var(--space-4);min-inline-size:320px;padding:var(--space-5) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex:3 1 0;display:grid}.month-summary-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.month-summary-title{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.month-summary-rate{padding:3px var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;flex:none}.month-summary-rate.is-positive{background:var(--color-positive-soft);color:var(--color-positive)}.month-summary-rate.is-negative{background:var(--color-negative-soft);color:var(--color-negative)}.month-summary-main{justify-content:space-between;align-items:flex-end;gap:var(--space-7);display:flex}.month-summary-net{gap:var(--space-1);min-inline-size:0;display:grid}.month-summary-net>span{color:var(--color-text-muted);font-size:var(--font-size-xs)}.month-summary-net strong{font-family:var(--font-display);font-size:var(--font-size-display);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);line-height:1}.month-summary-flow{gap:var(--space-2);display:grid}.month-summary-bar{block-size:12px;position:relative}.month-summary-bar-fill{border-radius:var(--radius-pill);transform-origin:0;gap:3px;block-size:100%;animation:.7s cubic-bezier(.25,.8,.35,1) backwards month-summary-reveal;display:flex;position:relative;overflow:hidden}.month-summary-segment{border-radius:2px;flex-basis:0;min-inline-size:3px}.month-summary-segment.is-spending,.month-summary-keys .is-spending .month-summary-swatch{background:var(--month-flow-spending)}.month-summary-segment.is-invested,.month-summary-keys .is-invested .month-summary-swatch{background:var(--month-flow-invested)}.month-summary-segment.is-saved,.month-summary-keys .is-saved .month-summary-swatch{background:var(--month-flow-saved)}.month-summary-income-fill{background:var(--month-flow-saved);border-radius:0 2px 2px 0;position:absolute;inset-block:0;inset-inline-start:0}.month-summary-keys .is-covered .month-summary-swatch{background:var(--month-flow-saved)}.month-summary-income-mark{background:var(--color-text-primary);inline-size:2px;box-shadow:0 0 0 2px var(--color-surface);border-radius:1px;margin-inline-start:-1px;position:absolute;inset-block:-4px}.month-summary-keys .is-overspent .month-summary-swatch{background:var(--color-text-primary);border-radius:1px;inline-size:2px}.month-summary-keys{gap:var(--space-1) var(--space-5);color:var(--color-text-muted);font-size:var(--font-size-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.month-summary-keys li{align-items:center;gap:6px;display:inline-flex}.month-summary-keys b{color:var(--color-text-secondary);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.month-summary-swatch{border-radius:2px;block-size:8px;inline-size:8px}.month-summary-rows{gap:var(--space-3);border-inline-start:1px solid var(--color-border);flex:0 280px;margin:0;padding-inline-start:var(--space-5);display:grid}.month-summary-row{justify-content:space-between;align-items:baseline;gap:var(--space-5);font-size:var(--font-size-sm);grid-template-columns:auto auto;display:grid}.month-summary-row dt{color:var(--color-text-muted)}.month-summary-row dd{justify-content:flex-end;align-items:baseline;gap:var(--space-2);margin:0;display:flex}.month-summary-row strong{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.month-summary-change{font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:2px;display:inline-flex}.month-summary-change.is-neutral{color:var(--color-text-muted)}.month-summary-change svg{align-self:center}@keyframes month-summary-reveal{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.month-summary-bar-fill{animation:none}}.collapsible-section{min-inline-size:0;display:grid}.collapsible-section-heading{font-size:inherit;font-weight:inherit;letter-spacing:0;margin:0}.collapsible-section-toggle{align-items:center;gap:var(--space-4);inline-size:100%;padding:var(--space-2) var(--space-1);border-radius:var(--radius-md);color:var(--color-text-primary);text-align:start;background:0 0;display:flex}.collapsible-section-toggle:focus-visible{box-shadow:var(--focus-ring);outline:none}.collapsible-section-title{font-family:var(--font-display);font-size:22px;font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);flex:none;line-height:1.2}.collapsible-section-rule{background:var(--color-border);block-size:1px;transition:background var(--motion-fast);flex:auto}.collapsible-section-chevron{color:var(--color-text-muted);transition:transform var(--motion-medium), color var(--motion-fast);flex:none}.collapsible-section-toggle:hover .collapsible-section-rule{background:var(--color-border-strong)}.collapsible-section-toggle:hover .collapsible-section-chevron{color:var(--color-text-primary)}.collapsible-section.is-collapsed .collapsible-section-chevron{transform:rotate(-90deg)}.collapsible-section-body{transition:grid-template-rows var(--motion-medium);grid-template-rows:1fr;display:grid}.collapsible-section.is-collapsed .collapsible-section-body{grid-template-rows:0fr}.collapsible-section-clip{min-block-size:0;overflow:hidden}.collapsible-section-content{padding-block:var(--space-3) var(--space-1)}@media (prefers-reduced-motion:reduce){.collapsible-section-body,.collapsible-section-chevron{transition:none}}.overview-grid{align-items:stretch;gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.overview-grid>.span-1{grid-column:span 1}.overview-grid>.span-2{grid-column:span 2}.overview-grid>.span-3{grid-column:span 3}.overview-grid>.span-4{grid-column:1/-1}@media (width<=1280px){.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid>.span-2,.overview-grid>.span-3{grid-column:1/-1}}@media (width<=760px){.overview-grid{grid-template-columns:minmax(0,1fr)}.overview-grid>.span-1{grid-column:1/-1}}.overview-card{gap:var(--space-4);padding-block:var(--section-padding-block);padding-inline:var(--section-padding-inline);flex-direction:column;min-inline-size:0;display:flex}.overview-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.overview-card-header h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.overview-card-title-row{align-items:baseline;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.overview-card-title-row .overview-stat-line strong{font-size:var(--font-size-md)}.overview-card-header p{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-block-start:var(--space-1)}.overview-card-header-aside{flex-shrink:0;margin-inline-start:auto}.overview-card-header .ghost-icon-button{border-radius:var(--radius-md);flex-shrink:0;block-size:32px;inline-size:32px}.overview-valuation-chart{block-size:320px;min-inline-size:0}.overview-networth-chart{block-size:240px;min-inline-size:0}.overview-stat-label{color:var(--color-text-muted);font-size:var(--font-size-xs)}.overview-stat-line{align-items:baseline;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.overview-stat-line strong,.capital-headline-value strong{font-family:var(--font-display);font-size:22px;font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);font-variant-numeric:tabular-nums}.overview-stat-chip{padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.overview-stat-chip.is-positive{background:var(--color-positive-soft)}.overview-stat-chip.is-negative{background:var(--color-negative-soft)}.overview-stat-chip.is-neutral{background:var(--color-surface-muted)}.overview-stat-note{color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:var(--line-height-normal)}.overview-stat-note strong,.overview-stat-note .formatted-value{color:var(--color-text-secondary)}.liquidity-widget{gap:var(--space-5);display:grid}.composition{gap:var(--space-3);display:grid}.composition-bar{border-radius:var(--radius-pill);gap:3px;block-size:10px;display:flex;overflow:hidden}.composition-segment{border-radius:2px;flex-basis:0;min-inline-size:4px}.composition-segment.is-cash,.composition-keys .is-cash .composition-swatch{background:var(--chart-line-secondary)}.composition-segment.is-invested,.composition-keys .is-invested .composition-swatch{background:var(--chart-line-primary)}.composition-keys{gap:var(--space-2);margin:0;display:grid}.composition-keys>div{justify-content:space-between;align-items:baseline;gap:var(--space-3);font-size:var(--font-size-sm);display:flex}.composition-keys dt{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);display:inline-flex}.composition-keys dd{align-items:baseline;gap:var(--space-2);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;margin:0;display:inline-flex}.composition-keys small{min-inline-size:3.5em;color:var(--color-text-muted);text-align:end}.composition-swatch{border-radius:2px;block-size:8px;inline-size:8px}.runway{gap:var(--space-2);border-block-start:1px solid var(--color-border);padding-block-start:var(--space-4);display:grid}.runway-value{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);line-height:1.1}.runway-scale{grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;display:grid}.runway-cell{background:var(--color-surface-muted);border-radius:3px;block-size:14px;overflow:hidden}.runway-cell>span{background:var(--chart-line-secondary);block-size:100%;transform:scaleX(var(--runway-fill));transform-origin:0;display:block}.capital-widget{gap:var(--space-4);flex-direction:column;flex:auto;display:flex}.capital-headline{gap:var(--space-1);display:grid}.capital-headline-value{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.capital-chart{gap:var(--space-2);flex-direction:column;flex:auto;min-block-size:168px;display:flex}.capital-plot{gap:var(--space-4);border-block-end:1px solid var(--color-border-strong);flex:auto;grid-template-columns:repeat(2,minmax(0,1fr));padding-block-start:26px;display:grid;position:relative}.capital-overlay{z-index:1;pointer-events:none;position:absolute;inset:26px 0 0}.capital-reference{z-index:1;border-block-start:1px dashed var(--color-text-faint);pointer-events:none;margin-block-end:-1px;animation:.42s cubic-bezier(.25,.8,.35,1) .7s backwards geo-row-in;position:absolute;inset-inline:0}.capital-column{border-radius:var(--radius-sm) var(--radius-sm) 0 0;min-inline-size:0;transition:background-color var(--motion-fast);--capital-delay:0s;flex-direction:column;justify-content:flex-end;align-items:center;display:flex}.capital-column.is-current{--capital-delay:.12s}.capital-column:hover{background-color:var(--color-accent-soft)}.capital-column-value{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;animation:geo-row-in .42s cubic-bezier(.25, .8, .35, 1) calc(var(--capital-delay) + .52s) backwards;margin-block-end:6px}.capital-column-bar{transform-origin:bottom;min-block-size:2px;inline-size:min(62%,76px);animation:bar-rise .68s cubic-bezier(.25, .8, .35, 1) var(--capital-delay) backwards;transition:block-size var(--motion-medium);border-radius:6px 6px 1px 1px;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.capital-column.is-contributed .capital-column-bar{background:var(--chart-neutral-fill-strong)}.capital-column-cap{transform-origin:bottom;animation:bar-rise .52s cubic-bezier(.25, .8, .35, 1) calc(var(--capital-delay) + .42s) backwards;transition:block-size var(--motion-medium);flex-shrink:0;place-items:center;display:grid;overflow:hidden}.capital-column.has-gain .capital-column-cap{background:var(--color-positive)}.capital-column-cap-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;animation:geo-row-in .42s cubic-bezier(.25, .8, .35, 1) calc(var(--capital-delay) + .76s) backwards}.capital-column.has-gain .capital-column-cap-value{color:var(--color-content-bg)}.capital-column.has-loss .capital-column-cap-value{color:var(--color-negative)}.capital-column.has-loss .capital-column-cap{box-shadow:inset 0 0 0 1px var(--color-negative);background:var(--color-negative-soft);border-radius:6px 6px 0 0}.capital-column-base{background:var(--chart-line-primary);flex:auto}.capital-axis{gap:var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:center;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.capital-commissions{justify-content:space-between;align-items:baseline;gap:var(--space-1) var(--space-3);border-block-start:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-xs);flex-wrap:wrap;padding-block-start:var(--space-3);display:flex}.capital-commissions-value{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.capital-commissions-value strong{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){.capital-reference,.capital-column-cap-value,.capital-column-value,.capital-column-bar,.capital-column-cap,.category-strip-segment{animation:none}.capital-column,.capital-column-bar,.category-rank-row,.category-strip-segment{transition:none}}.savings-widget{gap:var(--space-4);display:grid}.savings-head{align-items:center;gap:var(--space-4);min-block-size:var(--overview-chart-head-height);color:var(--color-text-secondary);font-size:var(--font-size-xs);display:flex}.savings-key{align-items:center;gap:var(--space-2);display:inline-flex}.savings-total{line-height:var(--line-height-tight);text-align:end;justify-items:end;gap:2px;display:grid}.savings-total-value{align-items:center;gap:var(--space-2);display:flex}.savings-total-value strong{font-family:var(--font-display);font-size:22px;font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);font-variant-numeric:tabular-nums}.savings-swatch{border-radius:2px;block-size:8px;inline-size:8px}.savings-swatch.is-income{background:var(--chart-neutral-fill-strong)}.savings-swatch.is-saved{background:var(--color-positive)}.savings-swatch.is-invested{background:var(--chart-line-primary)}.savings-key-value{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.savings-plot{block-size:var(--overview-bar-plot-height);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;align-items:end;display:grid}.savings-col{gap:var(--space-2);grid-template-rows:minmax(0,1fr) auto;block-size:100%;min-inline-size:0;display:grid}.savings-bars{border-block-end:1px solid var(--color-border-strong);border-radius:var(--radius-sm) var(--radius-sm) 0 0;block-size:100%;transition:background-color var(--motion-fast);justify-content:center;align-items:flex-end;display:flex}.savings-col:hover .savings-bars{background-color:var(--color-accent-soft)}.savings-stack{--savings-delay:calc(var(--savings-index,0) * 45ms);flex-direction:column;justify-content:flex-end;align-items:center;block-size:calc(100% - 26px);inline-size:min(56%,40px);display:flex}.savings-rate{font-size:13px;font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;animation:geo-row-in .42s cubic-bezier(.25, .8, .35, 1) calc(var(--savings-delay) + .52s) backwards;transition:transform var(--motion-fast);margin-block-end:6px}.savings-col:hover .savings-rate{transform:translateY(-2px)}.savings-rate.is-neutral{color:var(--color-text-muted)}.savings-income{background:var(--chart-neutral-fill-strong);transform-origin:bottom;min-block-size:2px;inline-size:100%;animation:bar-rise .64s cubic-bezier(.25, .8, .35, 1) var(--savings-delay) backwards;transition:block-size var(--motion-medium);border-radius:5px 5px 1px 1px;flex-direction:column;flex-shrink:0;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.savings-fill{transform-origin:bottom;inline-size:100%;animation:bar-rise .56s cubic-bezier(.25, .8, .35, 1) calc(var(--savings-delay) + .26s) backwards;transition:block-size var(--motion-medium);flex-shrink:0;display:block}.savings-fill.is-invested{background:var(--chart-line-primary)}.savings-fill.is-saved{background:var(--color-positive)}.savings-overspend{background:var(--color-negative);transform-origin:bottom;inline-size:100%;animation:bar-rise .48s cubic-bezier(.25, .8, .35, 1) calc(var(--savings-delay) + .52s) backwards;border-radius:5px 5px 0 0;flex-shrink:0}.savings-overspend+.savings-income{border-radius:0 0 1px 1px}.savings-month{color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:center;padding-block-start:var(--space-1)}@keyframes bar-rise{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.savings-bars,.savings-rate,.savings-income,.savings-fill{transition:none}.savings-rate,.savings-income,.savings-fill,.savings-overspend{animation:none}}.overview-card-loading{place-content:center;min-block-size:260px;display:grid}.allocation-card{justify-items:center;gap:var(--space-5);margin:0;display:grid}.allocation-ring{aspect-ratio:1;inline-size:min(100%,176px);position:relative}.allocation-ring svg{block-size:100%;inline-size:100%}.allocation-ring-track{stroke:var(--color-surface-muted)}.allocation-ring-center{text-align:center;place-content:center;gap:2px;padding:28px;display:grid;position:absolute;inset:0}.allocation-ring-value{font-family:var(--font-display);font-size:22px;font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);font-variant-numeric:tabular-nums}.allocation-ring-label{color:var(--color-text-muted);font-size:11px;line-height:1.3}.allocation-legend{inline-size:100%;margin:0;padding:0;list-style:none;display:grid}.allocation-legend li{justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);padding-block:7px;display:flex}.allocation-legend li+li{border-block-start:1px solid var(--color-border)}.allocation-legend-name{align-items:center;gap:var(--space-2);min-inline-size:0;color:var(--color-text-secondary);display:inline-flex}.allocation-legend-name>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.allocation-legend-swatch{border-radius:2px;flex:none;block-size:8px;inline-size:8px}.allocation-legend strong{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.category-rank{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.category-rank-row{align-items:center;gap:6px var(--space-3);transition:opacity var(--motion-fast);grid-template-columns:22px minmax(0,1fr) auto;grid-template-areas:"index name amount""index track share";display:grid}.category-rank-row.is-dimmed,.category-strip-segment.is-dimmed{opacity:.3}.category-breakdown{gap:var(--space-5);flex-direction:column;flex:auto;display:flex}.category-total{gap:var(--space-3);border-block-start:1px solid var(--color-border);margin-block-start:auto;padding-block-start:var(--space-4);display:grid}.category-total-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-sm);display:flex}.category-total-head strong{color:var(--color-text-primary);font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);font-variant-numeric:tabular-nums}.category-strip{border-radius:var(--radius-pill);gap:2px;block-size:12px;display:flex;overflow:hidden}.category-strip-segment{transform-origin:0;min-inline-size:3px;transition:opacity var(--motion-fast);flex-basis:0;animation:.7s cubic-bezier(.25,.8,.35,1) backwards geo-strip-grow}.category-rank-index{color:var(--color-text-faint);font-family:var(--font-display);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;grid-area:index;align-self:start;line-height:1.4}.category-rank-name{color:var(--color-text-primary);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;grid-area:name;overflow:hidden}.category-rank-amount{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;text-align:end;grid-area:amount}.category-rank-track{border-radius:var(--radius-pill);background:var(--color-surface-muted);grid-area:track;block-size:6px;overflow:hidden}.category-rank-fill{border-radius:inherit;background:var(--category-color);block-size:100%;display:block}.category-rank-share{min-inline-size:3.6em;color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;text-align:end;grid-area:share}.overview-networth{gap:var(--space-2);flex:auto;grid-template-rows:minmax(0,1fr) auto;display:grid}.overview-chart-legend{gap:var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-xs);flex-wrap:wrap;display:flex}.overview-chart-legend>span{align-items:center;gap:6px;display:inline-flex}.overview-chart-swatch{border-radius:2px;block-size:8px;inline-size:8px}.overview-chart-swatch.is-invested{background:var(--chart-line-primary)}.overview-chart-swatch.is-cash{background:var(--chart-line-secondary)}.overview-page{--overview-chart-head-height:24px;--overview-bar-plot-height:220px}.overview-page .speso-trend{gap:var(--space-4)}.overview-page .speso-trend-legend{align-items:center;gap:var(--space-4);min-block-size:var(--overview-chart-head-height);font-size:var(--font-size-xs)}.overview-page .speso-trend-swatch{border-radius:2px;block-size:8px;inline-size:8px}.overview-page .speso-trend-plot{block-size:var(--overview-bar-plot-height);gap:0}.overview-page .speso-trend-bars{gap:var(--space-1);border-block-end:1px solid var(--color-border-strong);border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:background-color var(--motion-fast)}.overview-page .speso-trend-col:hover .speso-trend-bars{background-color:var(--color-accent-soft)}.overview-page .speso-trend-bar{border-radius:5px 5px 1px 1px;inline-size:min(28%,18px)}.overview-page .speso-trend-month{padding-block-start:var(--space-1)}.cumulative-spend{gap:var(--space-3);flex:auto;grid-template-rows:auto minmax(240px,1fr) auto;display:grid}.cumulative-spend-head{justify-content:space-between;align-items:flex-end;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.cumulative-spend-total{gap:var(--space-1);display:grid}.cumulative-spend-total strong{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;line-height:1}.cumulative-spend-chip-label{font-weight:var(--font-weight-regular);margin-inline-start:.35em}.cumulative-spend-chart{min-block-size:240px;min-inline-size:0;overflow:hidden}.overview-chart-swatch.is-line{background:0 0;border-block-start:2px solid;border-radius:0;block-size:0;inline-size:14px}.overview-chart-swatch.is-line.is-dashed{border-block-start-style:dashed}.overview-chart-swatch.is-current{border-block-start-color:var(--chart-line-primary)}.overview-chart-swatch.is-reference{border-block-start-color:var(--neutral-500)}.overview-meta{gap:var(--space-2) var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-xs);flex-wrap:wrap;margin-block-start:auto;display:flex}.overview-empty{gap:var(--space-3);padding:var(--space-5);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-sunken);justify-items:start;display:grid}.overview-empty h3{font-size:var(--font-size-md)}.overview-empty p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}@media (width<=900px){.overview-hero-value{font-size:var(--font-size-display)}}@media (width<=480px){.overview-hero-value{font-size:34px}.page-header h1{font-size:var(--font-size-xl)}}.portfolio-hero{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(220px,.62fr);display:grid;overflow:hidden}.portfolio-hero>*{min-inline-size:0;padding:var(--space-6)}.portfolio-hero>*+*{border-inline-start:1px solid var(--color-border)}.portfolio-hero-main{align-content:center;display:grid;container-type:inline-size}.portfolio-hero-split{align-items:center;gap:var(--space-3) var(--space-7);grid-template-columns:minmax(0,1fr);grid-template-areas:"body""returns";display:grid}.portfolio-hero-split.has-split{grid-template-areas:"ring body""ring returns"}.portfolio-hero-split>.networth-ring{grid-area:ring}.portfolio-hero-split>.portfolio-hero-body{grid-area:body}.portfolio-hero-split>.portfolio-hero-returns{grid-area:returns}.portfolio-hero-label{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.portfolio-hero-value{font-family:var(--font-display);font-size:var(--font-size-hero);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;line-height:1}.portfolio-hero-value .formatted-value-fraction,.portfolio-hero-value .formatted-value-unit{color:var(--color-text-faint)}.portfolio-hero-value .formatted-value-unit{font-size:.72em}@container (width<=571px){.portfolio-hero-split.has-split{column-gap:var(--space-5);grid-template-areas:"ring body""returns returns"}.portfolio-hero-value{font-size:var(--font-size-display)}}@container (width<=439px){.portfolio-hero-split.has-split{grid-template-columns:minmax(0,1fr);grid-template-areas:"ring""body""returns";justify-items:center}}.portfolio-hero-body{align-content:center;justify-items:start;gap:var(--space-3);min-inline-size:0;display:grid}.portfolio-hero-pnl{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.portfolio-hero-pnl-figure{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;align-items:center;gap:2px;display:inline-flex}.portfolio-hero-pnl-label,.portfolio-hero-contributed,.portfolio-hero-note{color:var(--color-text-muted);font-size:var(--font-size-xs)}.portfolio-hero-contributed .formatted-value{color:var(--color-text-secondary)}.portfolio-hero-risk{align-content:center;gap:var(--space-3);display:grid;container-type:inline-size}.risk-headline{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.portfolio-hero-risk [tabindex="0"]:focus-visible,.portfolio-hero-returns [tabindex="0"]:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}.risk-headline-label{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.risk-headline strong{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;line-height:1}.risk-gauge-block{gap:4px;display:grid}.risk-gauge{border-radius:var(--radius-pill);background:var(--color-surface-muted);block-size:6px;position:relative}.risk-gauge-fill{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--color-negative) 70%, transparent);transform-origin:100%;animation:.9s cubic-bezier(.25,.8,.35,1) .3s both risk-gauge-grow;position:absolute;inset-block:0;inset-inline-end:0}.risk-gauge-marker{background:var(--color-text-primary);inline-size:2px;box-shadow:0 0 0 2px var(--color-surface);border-radius:1px;margin-inline-end:-1px;position:absolute;inset-block:-4px}.risk-gauge-scale{color:var(--color-text-muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:11px;display:flex}.risk-stats{gap:var(--space-3);margin:var(--space-1) 0 0;border-block-start:1px solid var(--color-border);grid-template-columns:repeat(4,minmax(0,1fr));padding-block-start:var(--space-3);display:grid}.portfolio-hero-returns{gap:var(--space-2);inline-size:100%;margin:var(--space-1) 0 0;border-block-start:1px solid var(--color-border);grid-template-columns:repeat(5,minmax(0,1fr));padding-block-start:var(--space-3);display:grid}.risk-stats dt,.portfolio-hero-returns dt{min-block-size:2.5em;color:var(--color-text-muted);font-size:11px;line-height:1.25}.risk-stats dd,.portfolio-hero-returns dd{font-family:var(--font-display);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;margin:2px 0 0;display:grid}.risk-stats dd small{color:var(--color-text-muted);font-family:var(--font-sans);font-size:11px;font-weight:var(--font-weight-regular)}@container (width<=279px){.risk-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@keyframes risk-gauge-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.portfolio-hero-side{grid-template-rows:1fr 1fr;display:grid}.portfolio-hero>.portfolio-hero-side{padding:0}.portfolio-hero-stat{align-content:center;gap:var(--space-1);padding:var(--space-5) var(--space-6);display:grid}.portfolio-hero-stat+.portfolio-hero-stat{border-block-start:1px solid var(--color-border)}.portfolio-hero-market{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);display:inline-flex}.portfolio-hero-market-dot{border-radius:var(--radius-pill);background:var(--color-unavailable);flex:none;block-size:8px;inline-size:8px}.portfolio-hero-market.is-open .portfolio-hero-market-dot{background:var(--color-positive);animation:2.4s ease-out infinite hero-market-pulse}.portfolio-hero-market.is-unknown .portfolio-hero-market-dot{background:var(--color-warning)}.portfolio-hero-stat-value{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.hero-reveal{animation:.6s cubic-bezier(.2,.8,.2,1) both hero-reveal}@keyframes hero-reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes hero-market-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-positive) 55%, transparent)}70%,to{box-shadow:0 0 0 7px #0000}}@media (prefers-reduced-motion:reduce){.hero-reveal,.risk-gauge-fill,.portfolio-hero-market.is-open .portfolio-hero-market-dot{animation:none}}@media (width<=1100px){.portfolio-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.portfolio-hero>.portfolio-hero-side{border-inline-start:0;border-block-start:1px solid var(--color-border);grid-column:1/-1;grid-template-rows:none;grid-template-columns:1fr 1fr}.portfolio-hero-stat+.portfolio-hero-stat{border-block-start:0;border-inline-start:1px solid var(--color-border)}}@media (width<=760px){.portfolio-hero{grid-template-columns:minmax(0,1fr)}.portfolio-hero>*{padding:var(--space-5)}.portfolio-hero>*+*{border-inline-start:0;border-block-start:1px solid var(--color-border)}.portfolio-hero-value{font-size:38px}}.pchart{gap:var(--space-4);min-inline-size:0;padding:var(--space-5) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);display:grid}.pchart-loading{place-items:center;min-block-size:480px}.pchart-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.pchart-controls{align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:1;display:flex}.pchart-ranges{grid-template-columns:repeat(var(--range-count), minmax(0, 1fr));border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-sunken);padding:3px;display:grid;position:relative}.pchart-ranges-thumb{inline-size:calc((100% - 6px) / var(--range-count));border-radius:var(--radius-pill);background:var(--color-accent-strong);transform:translateX(calc(var(--range-index) * 100%));transition:transform .28s cubic-bezier(.3,.8,.3,1);position:absolute;inset-block:3px;inset-inline-start:3px}.pchart-ranges button{z-index:1;block-size:30px;min-inline-size:42px;padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;transition:color var(--motion-fast);background:0 0;position:relative}.pchart-ranges button:hover:not(.is-active){color:var(--color-text-primary)}.pchart-ranges button.is-active{color:var(--color-accent-on)}.pchart-ranges button:focus-visible,.pchart-refresh:focus-visible{box-shadow:var(--focus-ring);outline:none}.pchart-refresh{border:1px solid var(--color-border);border-radius:var(--radius-pill);block-size:38px;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);transition:border-color var(--motion-fast), background var(--motion-fast), color var(--motion-fast);padding:0 var(--space-4);background:0 0;background:var(--color-surface-sunken);justify-content:center;align-items:center;gap:6px;margin-inline-start:auto;display:inline-flex}.pchart-refresh:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-text-primary)}.pchart-refresh .is-spinning{animation:.9s linear infinite spin}.pchart-canvas{block-size:380px;inline-size:100%;min-inline-size:0;overflow:hidden}@media (prefers-reduced-motion:reduce){.pchart-ranges-thumb,.pchart-ranges button,.pchart-refresh{transition:none}}.holdings-card{gap:var(--space-4);min-inline-size:0;padding:var(--space-5) var(--space-6) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);display:grid}.holdings-head h2{font-family:var(--font-display);letter-spacing:var(--tracking-heading);font-size:22px}.holdings-grid{align-items:center;column-gap:var(--space-5);grid-template-columns:minmax(360px,3fr) minmax(130px,1fr) minmax(120px,1fr) minmax(140px,1fr) minmax(120px,1fr) 36px;display:grid}.holdings-columns{padding:0 var(--space-3) var(--space-3);border-block-end:1px solid var(--color-border);color:var(--neutral-200);font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.holdings-columns>span:not(:first-child){text-align:end}.holding{border-block-end:1px solid var(--color-border)}.holding:last-child{border-block-end:0}.holding-summary{min-block-size:76px;padding:var(--space-3);border-radius:var(--radius-md);cursor:pointer;transition:background var(--motion-fast)}.holding-summary:hover,.holding.is-expanded .holding-summary{background:var(--color-surface-muted)}.holding-summary:focus-visible{box-shadow:inset 0 0 0 2px var(--color-accent-ring);outline:none}.holding-instrument{min-inline-size:0}.holding-instrument .instrument-identity-name{-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box}.issuer-tile{inline-size:var(--issuer-logo-width);block-size:var(--issuer-logo-height);border-radius:var(--radius-md);background:var(--color-surface-sunken);box-shadow:inset 0 0 0 1px var(--color-border);color:var(--color-text-secondary);place-items:center;padding:6px 10px;display:inline-grid;overflow:hidden}.issuer-tile img{object-fit:contain;block-size:100%;inline-size:100%;display:block}.issuer-tile.is-inverted img{filter:brightness(0)invert()}.issuer-tile.is-fallback{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.holding-cell{text-align:end;justify-items:end;gap:3px;min-inline-size:0;display:grid}.holding-cell strong{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.holding-cell small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.holding-weight-bar{border-radius:var(--radius-pill);background:var(--color-border-strong);block-size:7px;inline-size:100%;max-inline-size:120px;overflow:hidden}.holding-weight-bar>span{border-radius:inherit;background:var(--chart-line-primary);block-size:100%;display:block}.holding-pnl{grid-template-columns:auto}.holding-fees>span{font-variant-numeric:tabular-nums;white-space:nowrap}.holding-chevron{border-radius:var(--radius-pill);block-size:30px;inline-size:30px;color:var(--color-text-muted);transition:transform var(--motion-medium), color var(--motion-fast), background var(--motion-fast);justify-self:end;place-items:center;display:inline-grid}.holding-summary:hover .holding-chevron{color:var(--color-text-primary)}.holding.is-expanded .holding-chevron{background:var(--color-accent-soft);color:var(--color-text-primary);transform:rotate(180deg)}.holding-detail{transition:grid-template-rows var(--motion-medium);grid-template-rows:0fr;display:grid}.holding.is-expanded .holding-detail{grid-template-rows:1fr}.holding-detail-clip{min-block-size:0;overflow:hidden}.geo{gap:var(--space-4);margin:var(--space-2) var(--space-3) var(--space-5);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-sunken);display:grid}.geo-head{justify-content:space-between;align-items:flex-end;gap:var(--space-3) var(--space-6);flex-wrap:wrap;display:flex}.geo-title{gap:var(--space-1);display:grid}.geo-title h3{font-size:var(--font-size-md)}.geo-title p{color:var(--color-text-muted);font-size:var(--font-size-xs);flex-wrap:wrap;align-items:center;gap:0 4px;display:flex}.geo-title a{color:var(--color-text-secondary);text-decoration:underline;-webkit-text-decoration-color:var(--color-border-strong);text-decoration-color:var(--color-border-strong);text-underline-offset:3px;align-items:center;gap:3px;display:inline-flex}.geo-title a:hover{color:var(--color-text-primary);text-decoration-color:currentColor}.geo-facts{gap:var(--space-6);margin:0;display:flex}.geo-facts dt{color:var(--color-text-muted);font-size:var(--font-size-xs)}.geo-facts dd{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;margin:2px 0 0}.geo-facts dd span{color:var(--color-text-secondary)}.geo-strip{border-radius:var(--radius-pill);transform-origin:0;gap:2px;block-size:12px;animation:.7s cubic-bezier(.25,.8,.35,1) both geo-strip-grow;display:flex;overflow:hidden}.geo-strip-segment{flex-basis:0;min-inline-size:2px}.geo-strip-segment.is-other{background-image:repeating-linear-gradient(135deg,#ffffff1f 0 4px,#0000 4px 8px)}.geo-list{gap:2px var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.geo-row{align-items:center;gap:var(--space-3);min-block-size:32px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);transition:background var(--motion-fast);grid-template-columns:minmax(0,1.3fr) minmax(60px,1fr) 64px 96px;animation:.36s both geo-row-in;display:grid}.geo-row:hover{background:var(--color-surface-muted)}.geo-row-name{align-items:center;gap:var(--space-2);min-inline-size:0;color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;display:inline-flex;overflow:hidden}.geo-swatch{background:var(--geo-color);border-radius:2px;flex:none;block-size:8px;inline-size:8px}.geo-row-bar{border-radius:var(--radius-pill);background:var(--color-surface-muted);block-size:4px;overflow:hidden}.geo-row-bar>span{border-radius:inherit;background:var(--geo-color);block-size:100%;display:block}.geo-row-share,.geo-row-value{font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.geo-row-share{font-weight:var(--font-weight-semibold)}.geo-row-value{color:var(--color-text-muted);font-size:var(--font-size-xs)}.geo-row.is-other .geo-row-name,.geo-row.is-nonGeographic .geo-row-name{color:var(--color-text-secondary)}.geo-notes{gap:var(--space-1);border-block-start:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-xs);padding-block-start:var(--space-3);display:grid}.geo-notes strong{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.geo-unavailable{align-items:flex-start;gap:var(--space-3);margin:var(--space-2) var(--space-3) var(--space-5);padding:var(--space-4) var(--space-5);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);color:var(--color-text-secondary);display:flex}.geo-unavailable p{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-block-start:2px}@keyframes geo-strip-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes geo-row-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.holding-summary,.holding-chevron,.holding-detail,.geo-row{transition:none}.geo-strip,.geo-row{animation:none}}@media (width<=1100px){.geo-list{grid-template-columns:minmax(0,1fr)}}.asset-panel{gap:var(--space-5);min-inline-size:0;min-block-size:var(--portfolio-allocation-panel-min-block-size);padding:var(--space-5) var(--space-6) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-rows:auto 1fr;display:grid}.asset-panel-head{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.asset-panel-head h2{font-family:var(--font-display);letter-spacing:var(--tracking-heading);font-size:22px}.asset-panel-body{align-content:space-evenly;justify-items:center;gap:var(--space-5);grid-template-rows:auto auto;display:grid}.asset-ring{aspect-ratio:1;inline-size:min(100%,320px);margin:0;position:relative}.asset-ring svg{block-size:100%;inline-size:100%;overflow:visible}.asset-ring-track{stroke:var(--color-surface-muted)}.asset-ring-arc{stroke-dasharray:var(--arc-dash);cursor:pointer;transition:stroke-width var(--motion-fast), opacity var(--motion-fast);animation:.9s cubic-bezier(.25,.8,.35,1) both asset-arc-sweep}.asset-ring-arc.is-dimmed{opacity:.35}.asset-ring-center{text-align:center;pointer-events:none;place-content:center;justify-items:center;gap:4px;padding:54px;animation:.26s both asset-center-in;display:grid;position:absolute;inset:0}.asset-ring-label{max-inline-size:100%;color:var(--color-text-secondary);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.asset-ring-center strong{font-family:var(--font-display);font-size:34px;font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.1}.asset-ring-sub{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.asset-legend{gap:2px;inline-size:100%;margin:0;padding:0;list-style:none;display:grid}.asset-legend-row{align-items:center;gap:6px var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:default;transition:background var(--motion-fast), opacity var(--motion-fast);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name figures""bar bar";animation:.36s both geo-row-in;display:grid}.asset-legend-row.is-active{background:var(--color-surface-muted)}.asset-legend-row.is-dimmed{opacity:.5}.asset-legend-name{align-items:center;gap:var(--space-2);min-inline-size:0;color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);grid-area:name;display:inline-flex}.asset-legend-swatch{background:var(--asset-color);border-radius:3px;flex:none;block-size:10px;inline-size:10px}.asset-legend-figures{align-items:baseline;gap:var(--space-2);font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:figures;display:inline-flex}.asset-legend-figures strong{font-weight:var(--font-weight-semibold)}.asset-legend-figures small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.asset-legend-bar{border-radius:var(--radius-pill);background:var(--color-border-strong);grid-area:bar;block-size:5px;overflow:hidden}.asset-legend-bar>span{border-radius:inherit;background:var(--asset-color);transform-origin:0;block-size:100%;min-inline-size:4px;animation:.8s cubic-bezier(.25,.8,.35,1) .2s backwards geo-strip-grow;display:block}@keyframes asset-arc-sweep{0%{stroke-dasharray:0 100}to{stroke-dasharray:var(--arc-dash)}}@keyframes asset-center-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.asset-ring-arc,.asset-ring-center,.asset-legend-row,.asset-legend-bar>span{transition:none;animation:none}}@media (width<=1100px){.asset-panel{min-block-size:auto}}.geo-panel{--geo-share-column:68px;--geo-value-column:96px;gap:var(--space-5);min-inline-size:0;min-block-size:var(--portfolio-allocation-panel-min-block-size);padding:var(--space-5) var(--space-6) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;display:flex}.geo-panel-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.geo-panel-head h2{font-family:var(--font-display);letter-spacing:var(--tracking-heading);font-size:22px}.geo-regions{gap:var(--space-4);display:grid}.geo-region-strip{border-radius:var(--radius-pill);gap:2px;block-size:14px;display:flex;overflow:hidden}.geo-region-segment{cursor:pointer;transform-origin:0;min-inline-size:6px;transition:opacity var(--motion-fast);animation:.7s cubic-bezier(.25,.8,.35,1) backwards geo-strip-grow}.geo-region-segment.is-dimmed{opacity:.3}.geo-region-legend{flex-wrap:nowrap;gap:6px;min-inline-size:0;margin:0;padding:0;list-style:none;display:flex}.geo-region-item{min-inline-size:0;padding:5px var(--space-1);border-radius:var(--radius-md);font-size:var(--font-size-xs);white-space:nowrap;cursor:default;transition:background var(--motion-fast), opacity var(--motion-fast);flex:0 auto;grid-template-columns:8px minmax(0,auto);align-items:center;gap:2px 6px;animation:.36s both geo-row-in;display:grid}.geo-region-item:focus-visible{box-shadow:var(--focus-ring);outline:none}.geo-region-item.is-active{background:var(--color-surface-muted)}.geo-region-item.is-dimmed{opacity:.45}.geo-region-swatch{background:var(--geo-color);border-radius:50%;block-size:8px;inline-size:8px}.geo-region-name{min-inline-size:0;color:var(--color-text-secondary);text-overflow:ellipsis;overflow:hidden}.geo-region-item strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;grid-column:2}.geo-countries{margin:0;padding:0;list-style:none;display:grid}.geo-country,.geo-bucket{align-items:center;column-gap:var(--space-3);padding:6px var(--space-2);border-radius:var(--radius-md);transition:background var(--motion-fast), opacity var(--motion-fast);display:grid}.geo-country{grid-template-columns:22px 34px minmax(96px, 1fr) minmax(48px, 1.1fr) var(--geo-share-column) var(--geo-value-column);animation:.36s both geo-row-in}.geo-country+.geo-country{box-shadow:inset 0 1px 0 var(--color-border)}.geo-country:hover,.geo-bucket:hover{background:var(--color-surface-muted);box-shadow:none}.geo-country:hover+.geo-country{box-shadow:none}.geo-country.is-dimmed{opacity:.35}.geo-country-rank{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.geo-country-code{border:1px solid var(--color-border);background:var(--color-surface-sunken);block-size:20px;color:var(--color-text-secondary);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;border-radius:5px;place-items:center;display:inline-grid}.geo-country-name,.geo-bucket-name{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.geo-country-bar{border-radius:var(--radius-pill);background:var(--color-surface-muted);block-size:6px;overflow:hidden}.geo-country-bar>span{border-radius:inherit;background:var(--geo-color);transform-origin:0;block-size:100%;animation:.8s cubic-bezier(.25,.8,.35,1) .15s backwards geo-strip-grow;display:block}.geo-country-share{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.geo-country-value{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.geo-unattributed{gap:var(--space-1);border-block-start:1px solid var(--color-border);margin-block-start:auto;padding-block-start:var(--space-3);display:grid}.geo-unattributed ul{margin:0;padding:0;list-style:none;display:grid}.geo-bucket{grid-template-columns:minmax(0, 1fr) var(--geo-share-column) var(--geo-value-column);cursor:default;padding-block:5px}.geo-country.is-remaining .geo-country-name{color:var(--color-text-secondary)}.geo-country.is-remaining .geo-country-code{font-variant-numeric:tabular-nums;letter-spacing:0}.geo-unattributed-total{grid-template-columns:minmax(0, 1fr) var(--geo-share-column) var(--geo-value-column);column-gap:var(--space-3);padding:var(--space-2) var(--space-2) 0;border-block-start:1px solid var(--color-border);align-items:baseline;margin-block-start:var(--space-1);display:grid}.geo-unattributed-total h3{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.geo-unattributed-total .geo-country-share{color:var(--color-text-primary)}.geo-bucket-copy{min-inline-size:0;border-inline-start:2px solid var(--color-unavailable);gap:1px;padding-inline-start:var(--space-3);display:grid}.geo-bucket-copy small{color:var(--color-text-muted);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.geo-bucket .geo-country-share{color:var(--color-text-secondary)}@media (prefers-reduced-motion:reduce){.geo-region-segment,.geo-region-item,.geo-country,.geo-country-bar>span{transition:none;animation:none}}@media (width<=1100px){.geo-panel{min-block-size:auto}}.portfolio-insight-grid{align-items:stretch;gap:var(--space-5);grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);min-inline-size:0;display:grid}.companies-panel,.costs-panel{gap:var(--space-4);min-inline-size:0;padding:var(--space-5) var(--space-6) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;display:flex}.companies-panel-head,.costs-panel-head{align-items:center;gap:var(--space-2);display:flex}.companies-panel-head h2,.costs-panel-head h2{font-family:var(--font-display);letter-spacing:var(--tracking-heading);font-size:22px}.panel-info{block-size:24px;inline-size:24px;color:var(--color-text-muted);cursor:help;transition:color var(--motion-fast);border-radius:50%;place-items:center;margin-inline-end:auto;display:inline-grid}.panel-info:hover{color:var(--color-text-primary)}.panel-info:focus-visible{box-shadow:var(--focus-ring);outline:none}.companies-funds{gap:var(--space-1) var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.companies-fund{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:default;transition:border-color var(--motion-fast), background var(--motion-fast), opacity var(--motion-fast);padding:5px 10px;display:inline-flex}.companies-fund.is-active{border-color:var(--color-border-strong);background:var(--color-surface-muted);color:var(--color-text-primary)}.companies-fund.is-dimmed{opacity:.45}.companies-fund-swatch{background:var(--fund-color);border-radius:50%;block-size:8px;inline-size:8px}.companies-list,.costs-list{flex:1;grid-auto-rows:minmax(min-content,1fr);margin:0;padding:0;list-style:none;display:grid}.companies-row{align-items:center;column-gap:var(--space-3);padding:6px var(--space-2);border-radius:var(--radius-md);cursor:default;transition:background var(--motion-fast);grid-template-columns:22px minmax(120px,1.2fr) minmax(60px,1fr) 68px 96px;animation:.36s both geo-row-in;display:grid}.companies-row+.companies-row,.costs-row+.costs-row{box-shadow:inset 0 1px 0 var(--color-border)}.companies-row:hover,.costs-row:hover{background:var(--color-surface-muted);box-shadow:none}.companies-row:hover+.companies-row,.costs-row:hover+.costs-row{box-shadow:none}.companies-rank{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.companies-name,.costs-name{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.companies-bar{border-radius:var(--radius-pill);background:var(--color-surface-muted);block-size:6px;overflow:hidden}.companies-bar-fill{border-radius:inherit;transform-origin:0;gap:1px;block-size:100%;animation:.8s cubic-bezier(.25,.8,.35,1) .15s backwards geo-strip-grow;display:flex;overflow:hidden}.companies-bar-part{min-inline-size:2px;transition:opacity var(--motion-fast)}.companies-bar-part.is-dimmed{opacity:.25}.companies-share{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.companies-value{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.companies-total{align-items:baseline;column-gap:var(--space-3);padding:var(--space-3) var(--space-2) 0;border-block-start:1px solid var(--color-border-strong);grid-template-columns:22px minmax(120px,1.2fr) minmax(60px,1fr) 68px 96px;display:grid}.companies-total-label{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);grid-column:1/4}.companies-total-value{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.costs-body{gap:var(--space-5);flex-direction:column;flex:1;display:flex}.costs-figures{align-items:end;gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;margin:0;display:grid}.costs-figure{gap:6px;display:grid}.costs-figure:not(.is-primary){border-inline-start:1px solid var(--color-border);justify-items:end;padding-inline-start:var(--space-5)}.costs-figure dt{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.costs-figure dd{align-items:baseline;gap:var(--space-2);margin:0;display:flex}.costs-figure strong{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;line-height:1}.costs-figure.is-primary strong{font-size:var(--font-size-display)}.costs-figure dd>span{color:var(--color-text-muted);font-size:var(--font-size-md)}.costs-split{border-radius:var(--radius-pill);gap:2px;block-size:10px;display:flex;overflow:hidden}.costs-split-part{cursor:default;transform-origin:0;min-inline-size:4px;animation:.7s cubic-bezier(.25,.8,.35,1) backwards geo-strip-grow}.costs-row{--issuer-logo-width:88px;--issuer-logo-height:34px;grid-template-columns:8px var(--issuer-logo-width) minmax(0, 1fr) auto;align-items:center;column-gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-md);cursor:default;transition:background var(--motion-fast);animation:.36s both geo-row-in;display:grid}.costs-swatch{background:var(--cost-color,var(--color-unavailable));border-radius:50%;block-size:8px;inline-size:8px}.costs-row .issuer-tile:not(.is-fallback){box-shadow:none;background:0 0;padding:0}.costs-identity,.costs-amount{gap:2px;min-inline-size:0;display:grid}.costs-identity small,.costs-amount small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.costs-amount{justify-items:end}.costs-amount strong{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}@media (prefers-reduced-motion:reduce){.companies-row,.companies-bar-fill,.costs-row,.costs-split-part{transition:none;animation:none}}@media (width<=1100px){.portfolio-insight-grid{grid-template-columns:1fr}}.viz-tooltip{gap:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--chart-tooltip-bg);min-inline-size:180px;max-inline-size:300px;box-shadow:var(--shadow-panel);color:var(--chart-tooltip-text);font-family:var(--font-sans);font-size:var(--font-size-xs);white-space:normal;padding:10px 12px;line-height:1.35;display:grid}.viz-tooltip.is-floating{z-index:1000;pointer-events:none;position:fixed}.viz-tooltip-title{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.viz-tooltip-rows{gap:5px;display:grid}.viz-tooltip-row{align-items:center;gap:var(--space-2);grid-template-columns:10px minmax(0,1fr) auto;display:grid}.viz-tooltip-row.is-emphasis{border-block-start:1px solid var(--color-border);margin-block-start:2px;padding-block-start:6px}.viz-tooltip-row.is-emphasis .viz-tooltip-label{color:var(--color-text-primary)}.viz-tooltip-row.is-emphasis .viz-tooltip-label,.viz-tooltip-row.is-emphasis .viz-tooltip-value{font-weight:var(--font-weight-semibold)}.viz-tooltip-swatch{color:#0000;justify-self:center}.viz-tooltip-swatch.is-square{background:currentColor;border-radius:2px;block-size:8px;inline-size:8px}.viz-tooltip-swatch.is-line,.viz-tooltip-swatch.is-dashed{border-block-start:2px solid;inline-size:10px}.viz-tooltip-swatch.is-dashed{border-block-start-style:dashed}.viz-tooltip-label{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.viz-tooltip-value{color:var(--color-text-primary);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;text-align:end;white-space:nowrap}.viz-tooltip-value.is-positive{color:var(--color-positive)}.viz-tooltip-value.is-negative{color:var(--color-negative)}.viz-tooltip-value.is-muted{color:var(--color-text-muted)}.viz-tooltip-note{color:var(--color-text-muted);font-size:11px}@keyframes alloc-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes alloc-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.alloc-reveal{animation:.48s cubic-bezier(.2,.7,.2,1) both alloc-rise;animation-delay:calc(var(--alloc-i,0) * 70ms)}.alloc-scroll-anchor{scroll-margin-block-start:var(--space-6)}.alloc-page{gap:var(--space-6)}.alloc-page-header{align-items:flex-end}.alloc-page-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.alloc-spin{animation:1s linear infinite spin}.alloc-banner{padding:var(--space-3) var(--space-4);border:1px solid var(--color-negative-border);border-radius:var(--radius-md);background:var(--color-negative-soft);color:var(--color-text-primary);font-size:var(--font-size-sm)}.alloc-info{border-radius:var(--radius-pill);block-size:22px;inline-size:22px;color:var(--color-text-faint);cursor:help;transition:color var(--motion-fast);background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid}.alloc-info:hover,.alloc-info:focus-visible{color:var(--color-text-primary)}.alloc-info:focus-visible{box-shadow:var(--focus-ring);outline:none}.alloc-callout{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-text-primary);font-size:var(--font-size-sm);line-height:var(--line-height-normal);display:flex}.alloc-callout>svg{color:var(--color-warning);flex:none;margin-block-start:2px}.alloc-callout-body{min-inline-size:0}.alloc-conflicts{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.alloc-count{border-radius:var(--radius-pill);background:var(--color-surface-muted);min-inline-size:22px;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;text-align:center;padding:1px 7px}.alloc-block{gap:var(--space-4);min-inline-size:0;display:grid}.alloc-section-head{justify-content:space-between;align-items:flex-end;gap:var(--space-5);border-block-end:1px solid var(--color-border);padding-block-end:var(--space-3);display:flex}.alloc-section-copy{min-inline-size:0}.alloc-section-copy h2{font-family:var(--font-display);font-size:20px;font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);margin:0}.alloc-section-copy p{align-items:center;gap:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-block-start:var(--space-1);display:flex}.alloc-section-aside{flex:none}.alloc-figure{text-align:end;justify-items:end;gap:2px;display:grid}.alloc-figure>span{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.alloc-figure>strong{font-family:var(--font-display);font-size:20px;font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading)}.alloc-unit-input{min-block-size:var(--control-block-size);padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-sunken);color:var(--color-text-muted);font-size:var(--font-size-sm);transition:border-color var(--motion-fast), box-shadow var(--motion-fast);align-items:center;gap:6px;display:flex}.alloc-unit-input:focus-within,.alloc-pac-input:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.alloc-unit-input input,.alloc-pac-input input{inline-size:100%;min-inline-size:0;color:var(--color-text-primary);font-variant-numeric:tabular-nums;text-align:end;appearance:textfield;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:0 0;border:0;flex:1}.alloc-unit-input input:focus-visible,.alloc-pac-input input:focus-visible{outline:none}.alloc-unit-input input::-webkit-inner-spin-button{appearance:none;margin:0}.alloc-unit-input input::-webkit-outer-spin-button{appearance:none;margin:0}.alloc-pac-input input::-webkit-inner-spin-button{appearance:none;margin:0}.alloc-pac-input input::-webkit-outer-spin-button{appearance:none;margin:0}.alloc-next{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-inline-size:0;display:grid;overflow:hidden}.alloc-next>*+*{border-block-start:1px solid var(--color-border)}.alloc-next-band{grid-template-columns:minmax(0,1fr);display:grid}.alloc-next-band.has-breakdown{grid-template-columns:minmax(0,1.2fr) minmax(340px,1fr)}.alloc-next-band>*{min-inline-size:0;padding:var(--space-6)}.alloc-next-band>*+*{border-inline-start:1px solid var(--color-border)}.alloc-next-headline{align-content:center;justify-items:start;gap:var(--space-3);display:grid}.alloc-next-title-row{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;justify-self:stretch;display:flex}.alloc-next-title-row .alloc-next-actions{margin-inline-start:auto}.alloc-next-value-row{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap;justify-self:stretch;display:flex}.alloc-next-actions{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-sunken);flex:none;align-items:center;gap:2px;padding:3px;display:inline-flex}.alloc-next-actions-divider{block-size:20px;inline-size:1px;margin-inline:var(--space-1);background:var(--color-border-strong)}.alloc-next-action{align-items:center;gap:var(--space-2);min-block-size:32px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;cursor:pointer;transition:background-color var(--motion-fast), color var(--motion-fast), box-shadow var(--motion-fast);background:0 0;border:1px solid #0000;display:inline-flex}.alloc-next-action:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text-primary)}.alloc-next-action:focus-visible{box-shadow:var(--focus-ring);outline:none}.alloc-next-action:disabled{cursor:default;opacity:.5}.alloc-next-action.is-busy:disabled{color:var(--color-text-primary);opacity:1}.alloc-next-action.is-suggested{background:var(--color-surface-muted);color:var(--color-text-primary);box-shadow:inset 0 0 0 1px var(--color-accent-ring);animation:1.8s ease-in-out .6s 2 alloc-suggest}@keyframes alloc-suggest{0%,to{box-shadow:inset 0 0 0 1px var(--color-accent-ring)}50%{box-shadow:inset 0 0 0 1px var(--color-accent-ring), 0 0 0 4px var(--color-accent-soft)}}.alloc-next-title-row h2,.alloc-next-label{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin:0}.alloc-next-value{font-family:var(--font-display);font-size:var(--font-size-hero);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;line-height:1}.alloc-next-value .formatted-value-fraction,.alloc-next-value .formatted-value-unit{color:var(--color-text-faint)}.alloc-next-value .formatted-value-unit{font-size:.72em}.alloc-next-sub{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin:0}.alloc-next-details{gap:var(--space-2) var(--space-5);margin:var(--space-2) 0 0;border-block-start:1px solid var(--color-border);grid-template-rows:auto auto auto;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));justify-self:stretch;padding-block-start:var(--space-4);display:grid}.alloc-next-figure{grid-row:span 3;grid-template-rows:subgrid;row-gap:var(--space-2);min-inline-size:0;display:grid}.alloc-next-figure dt{min-block-size:22px;min-inline-size:0;color:var(--color-text-muted);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;gap:2px;display:flex;overflow:hidden}.alloc-next-figure-value{white-space:nowrap;color:var(--color-text-primary);font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);font-variant-numeric:tabular-nums;flex-wrap:nowrap;align-items:baseline;gap:6px;margin:0;display:flex}.alloc-next-figure-value>[aria-hidden=true]{color:var(--color-text-muted);font-weight:var(--font-weight-regular)}.alloc-next-figure-value.is-up{color:var(--color-positive)}.alloc-next-figure-value.is-down{color:var(--color-negative)}.alloc-next-figure-note{min-inline-size:0;color:var(--color-text-secondary);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;align-self:start;margin:0;overflow:hidden}.alloc-next-axis{gap:4px;max-inline-size:220px;padding-block-start:4px;display:grid}.alloc-weight-target.is-end{background:var(--color-text-primary);margin-inline-start:-2px;inset-inline-start:100%}.alloc-next-axis-labels{color:var(--color-text-muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:11px;display:flex}.alloc-next-breakdown{align-content:center;gap:var(--space-4);display:grid}.alloc-next-flow-bar{border-radius:var(--radius-pill);background:var(--color-surface-muted);gap:2px;block-size:12px;display:flex;overflow:hidden}.alloc-next-flow-segment{background:var(--segment-color);transform-origin:0;min-inline-size:4px;animation:.7s cubic-bezier(.25,.8,.35,1) backwards geo-strip-grow}.alloc-next-flow-segment.is-outside{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--segment-color) 80%, transparent) 0 2px, transparent 2px 5px);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--segment-color) 60%, transparent)}.alloc-next-breakdown-rows{margin:0;padding:0;list-style:none;display:grid}.alloc-next-breakdown-rows li{align-items:baseline;gap:var(--space-3);padding-block:var(--space-2);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.alloc-next-breakdown-rows li+li{border-block-start:1px solid var(--color-border)}.alloc-next-key-dot{background:var(--key-color);border-radius:50%;align-self:center;block-size:8px;inline-size:8px}.alloc-next-breakdown-rows li.is-outside .alloc-next-key-dot{box-shadow:inset 0 0 0 2px var(--key-color);background:0 0}.alloc-next-breakdown-label{min-inline-size:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);gap:2px;display:grid}.alloc-next-breakdown-label small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.alloc-next-breakdown-label small.is-extra{color:var(--color-warning);align-items:center;gap:6px;display:inline-flex}.alloc-next-breakdown-label small.is-extra .alloc-next-key-dot{block-size:6px;inline-size:6px}.alloc-next-breakdown-rows strong{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;text-align:end}.alloc-next-breakdown-rows li.is-outside{padding-block:var(--space-4) 0;border-block-start-color:var(--color-border-strong);align-items:center;margin-block-start:var(--space-2)}.alloc-next-breakdown-rows li.is-outside .alloc-next-breakdown-label{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.alloc-next-breakdown-rows li.is-outside .alloc-next-breakdown-label small{font-weight:var(--font-weight-regular)}.alloc-next-breakdown-rows li.is-outside strong{font-family:var(--font-display);font-size:var(--font-size-xl);letter-spacing:var(--tracking-display);line-height:1}.alloc-next-breakdown-rows li.is-outside strong .formatted-value-fraction,.alloc-next-breakdown-rows li.is-outside strong .formatted-value-unit{color:var(--color-text-faint)}.alloc-next-breakdown-rows li.is-outside strong .formatted-value-unit{font-size:.72em}.alloc-next-notes{gap:var(--space-2);padding:var(--space-4) var(--space-6);display:grid}.alloc-next-orders{min-inline-size:0;padding:var(--space-5) var(--space-6) var(--space-3)}.alloc-next-orders-title{align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);display:flex}.alloc-next-wait{margin:0 0 var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.alloc-next-grid{align-items:center;column-gap:var(--space-6);grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr) minmax(140px,auto);display:grid}.alloc-next-columns{padding:0 var(--space-3) var(--space-3);border-block-end:1px solid var(--color-border);color:var(--neutral-200);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.alloc-next-columns>span:last-child{text-align:end}.alloc-next-rows{margin:0;padding:0;list-style:none}.alloc-next-row{min-block-size:76px;padding:var(--space-3);transition:background var(--motion-fast)}.alloc-next-row+.alloc-next-row{border-block-start:1px solid var(--color-border)}.alloc-next-row:hover{background:var(--color-surface-muted)}.alloc-next-instrument{min-inline-size:0}.alloc-next-instrument .instrument-identity.has-leading{grid-template-columns:auto minmax(0,1fr)}.alloc-next-lead{align-items:center;gap:var(--space-4);display:inline-flex}.alloc-next-lead .issuer-tile{box-shadow:none;background:0 0;padding:0}.alloc-next-lead .issuer-tile.is-fallback{justify-items:start}.alloc-next-qty{min-inline-size:76px;padding:6px var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap;transition:background var(--motion-fast);place-items:center;display:inline-grid}.alloc-next-row:hover .alloc-next-qty{background:var(--color-surface)}.alloc-next-weight{gap:var(--space-2);min-inline-size:0;display:grid}.alloc-next-weight-text{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.alloc-next-weight-figures{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.alloc-next-weight-text.is-up .alloc-next-weight-figures{color:var(--color-positive)}.alloc-next-weight-text.is-down .alloc-next-weight-figures{color:var(--color-negative)}.alloc-next-weight-figures>strong{font-weight:var(--font-weight-semibold)}.alloc-next-weight-text.is-flat .alloc-next-weight-figures>strong{color:var(--color-text-primary)}.alloc-next-target{border-inline-start:1px solid var(--color-border-strong);align-items:center;gap:4px;margin-inline-start:var(--space-1);padding-inline-start:var(--space-2);display:inline-flex}.alloc-next-amount{text-align:end;justify-items:end;gap:2px;display:grid}.alloc-next-amount>strong{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.alloc-next-amount>small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.alloc-next-empty{justify-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-6);color:var(--color-text-secondary);text-align:center;display:grid}.alloc-next-empty-icon{background:var(--color-surface-muted);block-size:44px;inline-size:44px;color:var(--color-text-primary);border-radius:50%;place-items:center;display:grid}.alloc-next-empty p{max-inline-size:56ch;font-size:var(--font-size-md);margin:0}.alloc-weight-track{border-radius:var(--radius-pill);background:var(--color-surface-muted);block-size:8px;display:block;position:relative}.alloc-weight-now,.alloc-weight-change{transform-origin:0;animation:.7s cubic-bezier(.2,.7,.2,1) both alloc-grow;position:absolute;inset-block:0}.alloc-weight-now{border-radius:var(--radius-pill);background:var(--chart-line-primary);animation-delay:.24s;inset-inline-start:0}.alloc-weight-track.has-change .alloc-weight-now{border-radius:var(--radius-pill) 0 0 var(--radius-pill)}.alloc-weight-change{--weight-change-color:var(--color-positive);border-radius:0 var(--radius-pill) var(--radius-pill) 0;background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--weight-change-color) 75%, transparent) 0 2px, transparent 2px 5px);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--weight-change-color) 60%, transparent);animation-delay:.62s}.alloc-weight-change.is-down{--weight-change-color:var(--color-negative)}.alloc-weight-change.is-from-start{border-radius:var(--radius-pill)}.alloc-weight-target{background:var(--color-text-secondary);inline-size:2px;box-shadow:0 0 0 2px var(--color-surface);border-radius:1px;margin-inline-start:-1px;position:absolute;inset-block:-4px}.alloc-price-notice{gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-warning-border);border-radius:var(--radius-lg);background:var(--color-warning-soft);display:grid}.alloc-price-notice.is-blocked{border-color:var(--color-negative-border);background:var(--color-negative-soft)}.alloc-price-notice-head{align-items:center;gap:var(--space-2);color:var(--color-warning);display:flex}.alloc-price-notice.is-blocked .alloc-price-notice-head{color:var(--color-negative)}.alloc-price-notice-head strong{color:var(--color-text-primary);font-size:var(--font-size-sm)}.alloc-price-notice>p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.alloc-price-notice ul{margin:0;padding:0;list-style:none;display:grid}.alloc-price-notice li{align-items:baseline;gap:var(--space-1) var(--space-3);padding-block:var(--space-2);border-block-start:1px solid var(--color-border);font-size:var(--font-size-sm);grid-template-columns:minmax(160px,auto) minmax(0,1fr) auto;display:grid}.alloc-price-notice li small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.alloc-proj{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-inline-size:0;display:grid;overflow:hidden}.alloc-proj-foot{justify-content:flex-end;align-items:center;gap:var(--space-2) var(--space-5);padding:var(--space-4) var(--space-6);border-block-start:1px solid var(--color-border);flex-wrap:wrap;display:flex}.alloc-proj-values{align-items:baseline;gap:var(--space-3);white-space:nowrap;display:inline-flex}.alloc-proj-arrow{color:var(--color-text-muted)}.alloc-proj-label{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);align-items:center;gap:2px;display:inline-flex}.alloc-proj-value{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;line-height:1}.alloc-proj-value .formatted-value-fraction,.alloc-proj-value .formatted-value-unit{color:var(--color-text-faint)}.alloc-proj-value .formatted-value-unit{font-size:.72em}.alloc-proj-today{color:var(--color-text-muted);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.alloc-proj-today .formatted-value{color:var(--color-text-secondary)}.alloc-proj-zones{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.alloc-proj-zone{align-content:start;gap:var(--space-4);min-inline-size:0;padding:var(--space-5) var(--space-6);display:grid}.alloc-proj-zone+.alloc-proj-zone{border-inline-start:1px solid var(--color-border)}.alloc-proj-zone-title{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);margin:0;display:flex}.alloc-proj-bar{border-radius:var(--radius-pill);background:var(--color-surface-muted);gap:2px;block-size:12px;display:flex;overflow:hidden}.alloc-proj-segment{transform-origin:0;min-inline-size:3px;transition:opacity var(--motion-fast);flex-basis:0;animation:.7s cubic-bezier(.25,.8,.35,1) backwards geo-strip-grow}.alloc-proj-bar:hover .alloc-proj-segment:not(:hover){opacity:.45}.alloc-proj-rows{margin:0;padding:0;list-style:none;display:grid}.alloc-proj-rows li{align-items:center;gap:var(--space-3);min-block-size:44px;padding-block:var(--space-2);grid-template-columns:10px minmax(0,1fr) auto;display:grid}.alloc-proj-rows li+li{border-block-start:1px solid var(--color-border)}.alloc-proj-swatch{border-radius:3px;block-size:10px;inline-size:10px}.alloc-proj-name{gap:2px;min-inline-size:0;display:grid}.alloc-proj-name>span{color:var(--color-text-primary);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.alloc-proj-name>small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.alloc-proj-rows li.is-aggregate .alloc-proj-name>span{color:var(--color-text-secondary)}.alloc-scn{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-inline-size:0;display:grid;overflow:hidden}.alloc-scn-months{grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.alloc-scn-month{gap:var(--space-4);min-inline-size:0;padding:var(--space-5) var(--space-6);grid-template-rows:auto auto auto 1fr auto;display:grid}.alloc-scn-month+.alloc-scn-month{border-inline-start:1px solid var(--color-border)}.alloc-scn-head{align-items:center;gap:var(--space-3);display:flex}.alloc-scn-step{border:1px solid var(--color-border-strong);block-size:28px;inline-size:28px;color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;display:inline-grid}.alloc-scn-head h3{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);margin:0}.alloc-scn-figure{gap:var(--space-1);display:grid}.alloc-scn-figure>span{color:var(--color-text-muted);font-size:var(--font-size-xs)}.alloc-scn-figure>strong{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;line-height:1}.alloc-scn-figure .formatted-value-fraction,.alloc-scn-figure .formatted-value-unit{color:var(--color-text-faint)}.alloc-scn-figure .formatted-value-unit{font-size:.72em}.alloc-scn-orders{align-content:start;margin:0;padding:0;list-style:none;display:grid}.alloc-scn-orders li{align-items:center;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto auto;min-block-size:40px;display:grid}.alloc-scn-orders li+li{border-block-start:1px solid var(--color-border)}.alloc-scn-order-name{color:var(--color-text-primary);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.alloc-scn-order-qty{padding:3px var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.alloc-scn-orders strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;text-align:end}.alloc-scn-wait{color:var(--color-text-secondary);font-size:var(--font-size-sm);align-self:start;margin:0}.alloc-scn-flow{border-block-start:1px solid var(--color-border);margin:0;padding-block-start:var(--space-2);display:grid}.alloc-scn-flow>div{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding-block:6px;display:flex}.alloc-scn-flow dt{min-inline-size:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);gap:1px;display:grid}.alloc-scn-flow dt small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.alloc-scn-flow dd{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums;margin:0}.alloc-scn-flow>.is-extra dt,.alloc-scn-flow>.is-extra dd{color:var(--color-warning)}.alloc-scn-flow>.is-carry{border-block-start:1px solid var(--color-border-strong);margin-block-start:var(--space-1);padding-block-start:var(--space-3)}.alloc-scn-flow>.is-carry dt{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.alloc-scn-flow>.is-carry dd{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.alloc-scn-foot{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-6);padding:var(--space-4) var(--space-6);border-block-start:1px solid var(--color-border);flex-wrap:wrap;display:flex}.alloc-scn-hint{align-items:center;gap:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-xs);margin:0;display:flex}.alloc-scn-totals{align-items:baseline;gap:var(--space-2) var(--space-6);flex-wrap:wrap;margin:0;display:flex}.alloc-scn-totals>div{align-items:baseline;gap:var(--space-2);display:flex}.alloc-scn-totals dt{color:var(--color-text-muted);font-size:var(--font-size-sm)}.alloc-scn-totals dd{color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;margin:0}.alloc-scn-totals dd.is-lead{font-family:var(--font-display);font-size:var(--font-size-xl);letter-spacing:var(--tracking-display)}.alloc-scn-totals dd.is-lead .formatted-value-fraction,.alloc-scn-totals dd.is-lead .formatted-value-unit{color:var(--color-text-faint)}.alloc-scn-totals dd.is-extra{color:var(--color-warning)}.alloc-scn-empty{justify-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-6);color:var(--color-text-secondary);text-align:center;display:grid}.alloc-scn-empty p{max-inline-size:56ch;font-size:var(--font-size-md);margin:0}.alloc-editor-title{align-items:center;gap:var(--space-3);min-inline-size:0;display:flex}.alloc-save-error{color:var(--color-negative);font-size:var(--font-size-sm)}.alloc-pac{justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:radial-gradient(120% 120% at 0% 0%, var(--color-accent-soft), transparent 55%), var(--color-surface);display:flex}.alloc-pac-copy h2{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.alloc-pac-copy p{max-inline-size:60ch;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-block-start:var(--space-1)}.alloc-pac-input{align-items:baseline;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface-sunken);color:var(--color-text-muted);transition:border-color var(--motion-fast), box-shadow var(--motion-fast);flex:none;font-size:20px;display:flex}.alloc-pac-input input{inline-size:180px;font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading)}.alloc-targets{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);display:grid;overflow:hidden}.alloc-targets-head,.alloc-targets-row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);grid-template-columns:minmax(200px,1.5fr) 96px 112px 112px minmax(180px,1.2fr);display:grid}.alloc-targets.has-commission .alloc-targets-head,.alloc-targets.has-commission .alloc-targets-row{grid-template-columns:minmax(200px,1.5fr) 96px 124px 112px 112px minmax(180px,1.2fr)}.alloc-targets-head{border-block-end:1px solid var(--color-border);background:var(--color-surface-sunken);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.alloc-targets-head>span:not(:first-child,:last-child){justify-content:flex-end;display:flex}.alloc-targets-row{transition:background var(--motion-fast)}.alloc-targets-row+.alloc-targets-row{border-block-start:1px solid var(--color-border)}.alloc-targets-row:hover{background:var(--color-surface-sunken)}.alloc-targets-label{min-inline-size:0}.alloc-target-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.alloc-targets-current{color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:end}.alloc-unit-input{min-block-size:34px;padding-inline:var(--space-2) var(--space-3)}.alloc-range{display:block}.alloc-range-track{border-radius:var(--radius-pill);background:var(--color-surface-muted);block-size:8px;display:block;position:relative}.alloc-range-band,.alloc-range-target,.alloc-range-current{transition:inset-inline-start var(--motion-medium), inline-size var(--motion-medium), background var(--motion-fast);position:absolute}.alloc-range-band{border-radius:var(--radius-pill);background:var(--color-positive-soft);box-shadow:inset 0 0 0 1px var(--color-positive-border);inset-block:0}.alloc-range-target{background:var(--color-text-secondary);border-radius:1px;inline-size:2px;margin-inline-start:-1px;inset-block:-3px}.alloc-range-current{border:2px solid var(--color-surface);border-radius:50%;block-size:12px;inline-size:12px;margin:-6px 0 0 -6px;inset-block-start:50%}.alloc-range-current.is-in{background:var(--color-positive)}.alloc-range-current.is-out{background:var(--color-warning)}@media (width<=1100px){.alloc-next-band.has-breakdown,.alloc-proj-zones,.alloc-scn-months{grid-template-columns:minmax(0,1fr)}.alloc-next-band>*+*,.alloc-proj-zone+.alloc-proj-zone,.alloc-scn-month+.alloc-scn-month{border-inline-start:0;border-block-start:1px solid var(--color-border)}.alloc-next-grid{row-gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto}.alloc-next-columns>span:nth-child(2){display:none}.alloc-next-weight{grid-area:2/1/auto/-1}.alloc-targets{overflow-x:auto}.alloc-targets-head,.alloc-targets-row{min-inline-size:860px}}@media (width<=720px){.alloc-page-header,.alloc-section-head,.alloc-pac{flex-direction:column;align-items:stretch}.alloc-figure{text-align:start;justify-items:start}.alloc-next-band>*,.alloc-next-orders,.alloc-next-notes{padding-inline:var(--space-4)}.alloc-next-value{font-size:var(--font-size-display)}}@media (prefers-reduced-motion:reduce){.alloc-reveal,.alloc-weight-now,.alloc-weight-change,.alloc-next-action.is-suggested,.alloc-next-flow-segment,.alloc-proj-segment{animation:none}.alloc-range-band,.alloc-range-target,.alloc-range-current{transition:none}}
