@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.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:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f5;--brand:#0f6e64;--brand-strong:#0b564e;--brand-soft:#e3f1ee;--accent:#f5c451;--surface-1:#fcfcfb;--surface-2:#f0efec;--border:#e3e2de;--text-primary:#0b0b0b;--text-secondary:#52514e;--text-muted:#77766f;--series-1:#2a78d6;--series-2:#eb6834;--grid:#ebeae6;--good:#0ca30c;--good-text:#006300;--critical:#d03b3b;--critical-text:#b42828;--warning:#fab219;--focus:#0f6e64}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1211;--brand:#1f9d8d;--brand-strong:#6fd3c4;--brand-soft:#16302c;--surface-1:#1a1a19;--surface-2:#232321;--border:#2f2f2c;--text-primary:#f0efec;--text-secondary:#c3c2b7;--text-muted:#96958c;--series-1:#3987e5;--series-2:#d95926;--grid:#2a2a27;--good-text:#4cc94c;--critical-text:#f07a7a;--focus:#1f9d8d}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1211;--brand:#1f9d8d;--brand-strong:#6fd3c4;--brand-soft:#16302c;--surface-1:#1a1a19;--surface-2:#232321;--border:#2f2f2c;--text-primary:#f0efec;--text-secondary:#c3c2b7;--text-muted:#96958c;--series-1:#3987e5;--series-2:#d95926;--grid:#2a2a27;--good-text:#4cc94c;--critical-text:#f07a7a;--focus:#1f9d8d}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;font:14px/1.5 Plus Jakarta Sans Variable,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app{max-width:1120px;margin:0 auto;padding:0 16px 48px}header.top{flex-wrap:wrap;align-items:center;gap:12px 20px;padding:20px 0 12px;display:flex}.logo{align-items:center;gap:9px;display:inline-flex}.logo svg{flex:none;display:block}.logo-word{letter-spacing:-.035em;color:var(--text-primary);font-size:19px;font-weight:750}.logo-use{color:var(--brand-strong);font-weight:450}.profile-chip{background:var(--brand-soft);color:var(--brand-strong);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:650}.sync{color:var(--text-muted);white-space:nowrap;align-items:center;gap:7px;font-size:13px;display:inline-flex}.sync i{background:var(--good);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--good) 18%, transparent);border-radius:50%}.sync.stale{color:var(--critical-text)}.sync.stale i{background:var(--critical);box-shadow:0 0 0 3px color-mix(in srgb, var(--critical) 18%, transparent)}.spacer{flex:1}nav.tabs{background:var(--surface-2);scrollbar-width:none;border-radius:12px;gap:4px;margin-bottom:20px;padding:4px;display:flex;overflow-x:auto}nav.tabs button{cursor:pointer;color:var(--text-secondary);white-space:nowrap;background:0 0;border:0;border-radius:9px;padding:8px 14px;font-weight:550}nav.tabs button:hover{color:var(--text-primary)}nav.tabs button[aria-selected=true]{background:var(--surface-1);color:var(--brand-strong);font-weight:700;box-shadow:0 1px 2px #00000014}select,input[type=search]{background:var(--surface-1);border:1px solid var(--border);border-radius:8px;min-width:0;padding:7px 10px}.grid{gap:16px;display:grid}.kpis{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));margin-bottom:16px}.two{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:14px;min-width:0;padding:18px}.card h2{letter-spacing:-.01em;margin:0 0 4px;font-size:15px;font-weight:700}.card .sub{color:var(--text-muted);margin:0 0 12px;font-size:13px}.kpi .label{color:var(--text-secondary);font-size:13px}.kpi .value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:2px 0;font-size:25px;font-weight:750}.kpi .note{color:var(--text-muted);font-size:12px}.delta-up{color:var(--critical-text)}.delta-down{color:var(--good-text)}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:500}td.num,th.num{text-align:right;white-space:nowrap}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}.table-wrap{overflow-x:auto}.muted{color:var(--text-muted)}.small{font-size:12px}.tag{background:var(--surface-2);color:var(--text-secondary);white-space:nowrap;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px;display:inline-block}.tag.alert{color:var(--critical-text)}.amount-in{color:var(--good-text)}.amount-transfer{color:var(--text-muted)}.filters{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.filters input[type=search]{flex:200px}.legend{color:var(--text-secondary);gap:16px;margin-bottom:8px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.tooltip{background:var(--surface-1);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:8px;padding:8px 10px;font-size:12px;box-shadow:0 4px 16px #0000001f}.tooltip .t-title{color:var(--text-primary);margin-bottom:4px;font-weight:600}.tooltip .t-row{color:var(--text-secondary);justify-content:space-between;gap:12px;display:flex}.tooltip .t-row b{color:var(--text-primary);font-weight:600}.state{text-align:center;color:var(--text-muted);padding:32px}.error{color:var(--critical-text)}.disclaimer{color:var(--text-muted);margin-top:8px;font-size:12px}@media (width<=640px){.kpi .value{font-size:20px}.hide-sm{display:none}}.filters select{text-overflow:ellipsis;max-width:240px}.kpi .label .tag{margin-top:2px;margin-left:0}.insights{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.insight{background:var(--surface-2);border-radius:10px;gap:10px;min-width:0;padding:12px;display:flex}.insight-icon{background:var(--surface-1);width:22px;height:22px;color:var(--text-secondary);border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:700;display:grid}.insight.warn .insight-icon{color:var(--critical-text)}.insight.good .insight-icon{color:var(--good-text)}.insight-title{font-weight:600}.insight-detail{color:var(--text-secondary);margin-top:2px;font-size:13px}.insight-tip{color:var(--text-primary);margin-top:6px;font-size:13px}.insight-tip:before{content:"→ ";color:var(--text-muted)}.share-bar{background:var(--grid);border-radius:2px;height:4px;margin-top:4px;overflow:hidden}.share-bar i{background:var(--series-1);border-radius:2px;height:100%;display:block}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;display:flex}.page-head h1{letter-spacing:-.035em;margin:0;font-size:24px;font-weight:750}.stepper{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;align-items:center;padding:3px;display:inline-flex}.stepper button{width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;display:grid}.stepper button:hover:not(:disabled){background:var(--surface-2);color:var(--text-primary)}.stepper button:disabled{opacity:.35;cursor:default}.stepper select{text-align:center;text-align-last:center;appearance:none;cursor:pointer;background:0 0;border:0;min-width:150px;padding:6px 4px;font-weight:650}.bottom-nav,.sheet,.sheet-backdrop{display:none}@media (width<=720px){.app{padding-bottom:calc(88px + env(safe-area-inset-bottom))}header.top{flex-wrap:nowrap;gap:10px;padding:14px 0 8px}.sync{text-overflow:ellipsis;min-width:0;font-size:12px;overflow:hidden}.sync i{flex:none}.logo-word{font-size:17px}nav.tabs{display:none}.page-head{margin-top:4px}.page-head h1{font-size:22px}.stepper{flex:auto;justify-content:space-between}.stepper select{flex:1;min-width:0}.grid{gap:10px}.kpis{grid-template-columns:1fr 1fr;margin-bottom:10px}.card{border-radius:12px;padding:14px}.kpi .value{font-size:19px}.kpi .label{font-size:12px}.kpi .note{font-size:11.5px}.kpi .label .tag{margin:3px 0 0;display:table}.bottom-nav{z-index:20;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface-1) 97%, transparent);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{min-height:52px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex}.bottom-nav button[aria-current=page]{color:var(--brand-strong)}.bottom-nav button[aria-current=page] svg{background:var(--brand-soft);box-sizing:content-box;border-radius:999px;margin:-3px 0;padding:3px 14px}.sheet-backdrop{z-index:18;background:#00000040;display:block;position:fixed;inset:0}.sheet{z-index:19;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));background:var(--surface-1);border:1px solid var(--border);border-radius:16px;gap:4px;padding:8px;display:grid;position:fixed;box-shadow:0 12px 32px #0000002e}.sheet button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:12px;font-weight:600;display:flex}.sheet button[aria-current=page]{background:var(--brand-soft);color:var(--brand-strong)}}.welcome{max-width:720px;margin:24px auto 0}.welcome-hero h1{letter-spacing:-.04em;margin:0 0 8px;font-size:30px;font-weight:800}.welcome-hero p{color:var(--text-secondary);margin:0 0 24px;font-size:16px}.steps{gap:12px;margin:0;padding:0;list-style:none;display:grid}.steps li{align-items:flex-start;gap:16px;display:flex}.step-icon{background:var(--brand-soft);width:44px;height:44px;color:var(--brand-strong);border-radius:12px;flex:none;place-items:center;display:grid}.step-n{color:var(--brand-strong);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:700}.steps h2{margin:2px 0 4px;font-size:16px}.steps p{color:var(--text-secondary);margin:0}.rows{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--border);align-items:center;gap:12px;min-width:0;padding:11px 0;display:flex}.rows .row:last-child{border-bottom:0}.row-main{flex:1;min-width:0}.row-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.row-title .tag{vertical-align:1px}.row-meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.row-side{text-align:right;font-variant-numeric:tabular-nums;flex:none}.row-amount{white-space:nowrap;font-weight:700}.row-tags:empty{display:none}.row-tags .tag{margin:2px 0 0 4px}.avatar{background:var(--surface-2);width:36px;height:36px;color:var(--text-secondary);border-radius:11px;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.avatar.income,.avatar.refund{background:var(--brand-soft);color:var(--brand-strong)}.avatar.transfer{color:var(--text-muted)}.progress{background:var(--grid);border-radius:2px;max-width:220px;height:4px;margin-top:6px;overflow:hidden}.progress i{background:var(--brand);border-radius:2px;height:100%;display:block}.tx .filters{gap:8px;display:grid}.filter-row{flex-wrap:wrap;gap:8px;display:flex}.tx-summary{grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 8px;display:grid}.tx-summary div{background:var(--surface-2);border-radius:10px;min-width:0;padding:8px 12px}.tx-summary span{color:var(--text-muted);font-size:12px;display:block}.tx-summary b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px}.day-head{text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);border-bottom:1px solid var(--border);justify-content:space-between;padding:14px 0 4px;font-size:12px;font-weight:700;display:flex}.day-head .muted{text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums;font-weight:600}@media (width<=720px){.filter-row{scrollbar-width:none;flex-wrap:nowrap;margin:0 -14px;padding:0 14px;overflow-x:auto}.filter-row select{flex:none;max-width:70vw}.tx-summary b{font-size:13px}.tx-summary div{padding:7px 9px}.avatar{border-radius:10px;width:32px;height:32px;font-size:13px}.row{gap:10px}}.icon-btn{border:1px solid var(--border);background:var(--surface-1);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;border-radius:10px;flex:none;place-items:center;display:grid}.icon-btn:hover{color:var(--text-primary);background:var(--surface-2)}.btn{border:1px solid var(--border);background:var(--surface-1);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-weight:650;display:inline-flex}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-strong);border-color:var(--brand-strong)}.btn:disabled{opacity:.6;cursor:default}.auth{flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex}.auth-card{background:var(--surface-1);border:1px solid var(--border);border-radius:18px;width:100%;max-width:400px;padding:28px 24px;box-shadow:0 10px 40px #0000000f}.auth-card h1{letter-spacing:-.035em;margin:22px 0 6px;font-size:24px;font-weight:800}.auth-text{color:var(--text-secondary);margin:0 0 16px}.auth-form{gap:14px;margin-top:12px;display:grid}.auth-form label{color:var(--text-secondary);gap:6px;font-size:13px;font-weight:600;display:grid}.auth-form input{background:var(--bg);border:1px solid var(--border);color:var(--text-primary);border-radius:11px;padding:11px 12px;font-size:16px}.auth-form input:focus{outline:2px solid var(--focus);outline-offset:0;border-color:#0000}.auth-form .btn{width:100%;margin-top:4px}.auth-error{color:var(--critical-text);font-size:13px;font-weight:600}.auth-foot{color:var(--text-muted);text-align:center;margin-top:16px;font-size:12px}.auth-owner{background:color-mix(in srgb, var(--warning) 16%, var(--surface-1));border:1px solid color-mix(in srgb, var(--warning) 45%, transparent);border-radius:12px;margin:4px 0 12px;padding:12px 14px;font-size:14px;line-height:1.5}.row-btn{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:0}.rows li:not(:last-child)>.row-btn.row{border-bottom:1px solid var(--border)}.row-btn:hover{background:var(--surface-2)}.row-btn:focus-visible{outline-offset:-2px}.manual-dot{color:var(--brand-strong);font-weight:700}.toast{z-index:40;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));background:var(--text-primary);max-width:min(520px,100vw - 32px);color:var(--bg);border-radius:12px;padding:12px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #00000040}@media (width<=720px){.toast{bottom:calc(84px + env(safe-area-inset-bottom))}}.sheet-layer{z-index:30;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sheet-layer .sheet-backdrop.show{z-index:0;background:#00000059;display:block;position:absolute;inset:0}.cat-sheet{z-index:1;background:var(--surface-1);border-radius:18px;flex-direction:column;gap:12px;width:min(560px,100vw - 32px);max-height:min(86vh,760px);padding:18px;display:flex;position:relative;box-shadow:0 20px 60px #0000004d}.cat-head{align-items:flex-start;gap:12px;display:flex}.cat-head .row-title,.cat-head .row-meta{white-space:normal}.cat-note{background:var(--surface-2);color:var(--text-secondary);border-radius:10px;margin:0;padding:10px 12px;font-size:13px}.cat-search{background:var(--bg);border:1px solid var(--border);border-radius:11px;width:100%;padding:11px 12px;font-size:16px}.cat-list{flex:auto;min-height:120px;margin:0 -4px;padding:0 4px;overflow-y:auto}.cat-group{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:12px 0 6px;font-size:12px}.cat-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;display:grid}.cat-opt{border:1px solid var(--border);background:var(--surface-1);cursor:pointer;text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:9px 11px;font-weight:550;display:flex}.cat-opt span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cat-opt:hover{background:var(--surface-2)}.cat-opt.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong)}.cat-opt.create{border-style:dashed;justify-content:flex-start;width:100%;margin-top:4px}.cat-opt.create.solo{border-style:solid;border-color:var(--brand);color:var(--brand-strong);padding:12px;font-weight:700}.cat-empty{color:var(--text-secondary);margin:8px 0 4px;font-size:14px}.cat-picked{flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;display:flex}.cat-picked b{color:var(--brand-strong)}.cat-picked .tag{margin-left:0}.cat-foot{border-top:1px solid var(--border);gap:10px;padding-top:12px;display:grid}.cat-kind,.cat-rule label{color:var(--text-secondary);gap:6px;font-size:13px;font-weight:600;display:grid}.cat-rule input{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:9px 11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px}.cat-check{cursor:pointer;align-items:center;gap:8px;font-weight:600;display:flex}.cat-check input{width:18px;height:18px;accent-color:var(--brand)}.cat-rule{gap:8px;display:grid}.cat-preview{color:var(--text-secondary);font-size:13px}.cat-preview.warn{color:var(--critical-text);font-weight:600}.cat-preview ul{color:var(--text-muted);margin:6px 0 0;padding-left:18px;font-weight:400}.cat-preview li{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cat-actions{justify-content:space-between;gap:8px;display:flex}.cat-actions .btn.primary{flex:1;max-width:320px;margin-left:auto}.rule-pattern{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.rule-meta{color:var(--text-secondary);overflow-wrap:anywhere;font-size:13px}.rule-meta.muted{color:var(--text-muted);font-size:12px}@media (width<=720px){.sheet-layer{align-items:flex-end}.cat-sheet{width:100%;max-height:92dvh;padding:16px 14px calc(14px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.cat-grid{grid-template-columns:1fr 1fr}.cat-actions{flex-direction:column-reverse}.cat-actions .btn.primary{max-width:none;margin-left:0}}.link{color:var(--brand-strong);font:inherit;text-align:left;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.active-filters{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;display:flex}.filter-chip{cursor:pointer;border:1px solid var(--brand);background:var(--brand-soft);color:var(--brand-strong);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;font-weight:650;display:inline-flex}.budget{margin-bottom:16px}.budget-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.budget-head .sub{margin-bottom:8px}.budget-alerts{gap:6px;margin:4px 0 12px;padding:0;list-style:none;display:grid}.budget-alert{background:var(--surface-2);border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.budget-alert .link{color:var(--text-primary);font-weight:550;text-decoration:none}.budget-alert.over .insight-icon{color:var(--critical-text)}.budget-alert.pace .insight-icon{color:var(--warning)}.budget-rows{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:4px 24px;margin:0;padding:0;list-style:none;display:grid}.budget-row{border:0;border-bottom:1px solid var(--border);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;gap:6px;padding:10px 0;display:grid}.budget-line{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.budget-name{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.budget-vals{white-space:nowrap}.budget-status{font-weight:650}.budget-status.over{color:var(--critical-text)}.budget-status.pace{color:var(--text-primary)}.budget-status.ok{color:var(--good-text)}.meter{background:var(--grid);border-radius:4px;height:8px;position:relative;overflow:visible}.meter-fill{background:var(--brand);border-radius:4px;position:absolute;top:0;bottom:0;left:0}.meter.pace .meter-fill{background:var(--warning)}.meter.over .meter-fill{background:var(--critical)}.meter-proj{background:var(--text-secondary);border-radius:1px;width:2px;position:absolute;top:-3px;bottom:-3px}.budget-edit{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 0;display:flex}.chip{border:1px dashed var(--brand);color:var(--brand-strong);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;flex:none;padding:6px 10px;font-size:13px;font-weight:650}.budget-input{text-align:right;background:var(--bg);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:10px;flex:none;width:104px;padding:9px 10px;font-size:16px}@media (width<=720px){.budget-head .btn{width:100%}.budget-input{width:92px}}.logo-link{color:inherit;border-radius:10px;text-decoration:none}.logo-link:hover .logo-word{opacity:.85}.logo-link:active svg{transform:scale(.94)}
