:root{--bg:#f5f6f8;--surface:#fff;--surface-2:#f0f2f5;--text:#1c2430;--text-2:#586273;--text-3:#7d8696;--border:#e3e6eb;--border-strong:#c9ced6;--accent:#1d4ed8;--accent-bg:#e8efff;--on-accent:#fff;--gold:#f2c14e;--green:#15803d;--red:#b91c1c;--overlay:#0f172a73;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1318;--surface:#171c23;--surface-2:#1f262f;--text:#e8ebef;--text-2:#a8b0bc;--text-3:#8b94a1;--border:#28303a;--border-strong:#3a4450;--accent:#7aa2ff;--accent-bg:#1c2a4a;--on-accent:#0b1220;--green:#4ade80;--red:#f87171;--overlay:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1318;--surface:#171c23;--surface-2:#1f262f;--text:#e8ebef;--text-2:#a8b0bc;--text-3:#8b94a1;--border:#28303a;--border-strong:#3a4450;--accent:#7aa2ff;--accent-bg:#1c2a4a;--on-accent:#0b1220;--green:#4ade80;--red:#f87171;--overlay:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}button,input{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}.up{color:var(--green)}.down{color:var(--red)}.shell{min-height:100vh;display:flex}.sidebar{display:none}.main{min-width:0;padding:16px 16px calc(96px + env(safe-area-inset-bottom));flex:1}.content{flex-direction:column;gap:16px;max-width:1120px;margin:0 auto;display:flex}.bottom-nav{z-index:20;background:var(--surface);border-top:1px solid var(--border);padding:4px 4px calc(6px + env(safe-area-inset-bottom));align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav .nav-item{color:var(--text-2);flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0;font-size:11px;display:flex}.bottom-nav .nav-item.active{color:var(--accent)}.fab{background:var(--accent);width:52px;height:52px;color:var(--on-accent);cursor:pointer;border:0;border-radius:50%;flex:0 0 52px;justify-content:center;align-items:center;margin:-18px 6px 0;display:flex}@media (width>=900px){.bottom-nav{display:none}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex:0 0 236px;gap:4px;width:236px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.main{padding:24px 32px 40px}.brand{align-items:center;gap:10px;padding:4px 10px 18px;font-size:16px;font-weight:600;display:flex}.brand-mark{background:var(--accent);width:30px;height:30px;color:var(--on-accent);border-radius:8px;justify-content:center;align-items:center;display:flex}.registra{justify-content:center;margin-bottom:14px;padding:11px}.sidebar .nav-item{color:var(--text-2);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.sidebar .nav-item:hover{background:var(--surface-2)}.sidebar .nav-item.active{background:var(--accent-bg);color:var(--accent);font-weight:500}.sidebar-foot{color:var(--text-3);margin-top:auto;padding:0 10px;font-size:12px}}.page-header{align-items:center;gap:10px;display:flex}.page-title{flex:1;min-width:0}.page-logo{flex:0 0 40px;width:40px;height:40px}.title-wide{display:none}.title-phone{min-width:0;display:flex}.title-phone .wordmark{max-width:100%}@media (width>=900px){.page-logo,.title-phone{display:none}.title-wide{display:inline}}.page-title h1{white-space:nowrap;text-overflow:ellipsis;font-size:21px;font-weight:600;overflow:hidden}.page-title p{color:var(--text-2);font-size:13px}.page-tools{gap:6px;display:flex}.icon-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:40px;height:40px;color:var(--text-2);cursor:pointer;flex:0 0 40px;justify-content:center;align-items:center;display:flex;position:relative}.icon-btn:hover{border-color:var(--border-strong);color:var(--text)}.badge{background:var(--red);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;display:flex;position:absolute;top:-6px;right:-6px}.tabs{scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.tab{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);white-space:nowrap;border-radius:999px;padding:7px 14px;font-size:13px}.tab.active{background:var(--accent-bg);color:var(--accent);border-color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:0;padding:14px 16px}.card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.card-head h2{font-size:15px;font-weight:600}.kpi-grid,.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:3px;min-width:0;padding:12px 14px;display:flex}.kpi-wide{grid-column:1/-1}.kpi-link:hover{border-color:var(--border-strong)}.kpi-label{color:var(--text-2);font-size:12px}.kpi-value{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:21px;font-weight:600}.kpi-wide .kpi-value{font-size:26px}.kpi-sub{color:var(--text-2);align-items:center;gap:2px;font-size:12px;display:flex}.kpi-sub.up{color:var(--green)}.kpi-sub.down{color:var(--red)}.grid-2{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.col-stack{flex-direction:column;align-self:start;gap:16px;min-width:0;display:flex}.stack,.layout-side,.layout-side>.col-main,.layout-side>.col-side{flex-direction:column;gap:16px;min-width:0;display:flex}@media (width>=900px){.layout-side{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start;display:grid}}@media (width<=899px){.home-layout>.col-main,.home-layout>.col-side{display:contents}.home-layout .o-1{order:1}.home-layout .o-2{order:2}.home-layout .o-3{order:3}.home-layout .o-4{order:4}.home-layout .o-5{order:5}}.donut-card.compact .donut-box{max-width:190px;height:160px}.plan-state{color:var(--text-2);white-space:nowrap;font-size:13px}.plan-state.up{color:var(--green)}.plan-state.accent{color:var(--accent);font-weight:600}.goal-bar{background:var(--surface-2);border-radius:3px;height:5px;margin:-2px 0 8px;overflow:hidden}.goal-bar span{background:var(--green);border-radius:3px;height:100%;display:block}@media (width>=700px){.kpi-grid,.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-wide{grid-column:span 1}.kpi-grid>.kpi-wide:first-child{grid-column:span 2}.kpi-grid-3>.kpi-wide:first-child,.kpi-grid-4>.kpi-wide:first-child{grid-column:span 1}}@media (width>=900px){.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2-wide{grid-template-columns:2fr 1fr}}.row{border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:11px 4px;display:flex}.row:last-child{border-bottom:0}.row:hover:not(.row-static){background:var(--surface-2)}.row-static{cursor:default}.row-left{align-items:center;gap:10px;min-width:0;display:flex}.row-text{flex-direction:column;min-width:0;display:flex}.row-title{text-overflow:ellipsis;overflow:hidden}.row-sub{color:var(--text-2);font-size:12px}.row-sub.up{color:var(--green)}.row-sub.down{color:var(--red)}.row-right{flex-shrink:0;align-items:center;gap:4px;display:flex}.row-right-text{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;display:flex}.row-chev{color:var(--text-3);display:flex}.dot{border-radius:50%;flex:0 0 9px;width:9px;height:9px}.btn{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;align-items:center;gap:6px;padding:9px 14px;font-size:14px;display:inline-flex}.btn:hover{border-color:var(--text-3)}.btn-sm{padding:5px 10px;font-size:13px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:500}.btn-primary:hover{border-color:var(--accent);filter:brightness(1.08)}.btn-ghost{color:var(--text-2);border-color:#0000}.add-end{align-self:flex-start;margin-top:8px}.action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.action-grid .btn{justify-content:center}.placeholder{background:var(--surface-2);min-height:160px;color:var(--text-2);text-align:center;border-radius:12px;justify-content:center;align-items:center;padding:16px;font-size:13px;display:flex}.placeholder.tall{min-height:230px}.note{color:var(--text-2);font-size:13px}.empty{color:var(--text-2);padding:10px 4px;font-size:13px}.recon{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px}.chip.active{background:var(--accent-bg);color:var(--accent);border-color:var(--accent)}.todo{border-bottom:1px solid var(--border)}.todo:last-child,.todo .row{border-bottom:0}.todo-actions{gap:8px;padding:0 4px 10px;display:flex}.overlay{z-index:40;background:var(--overlay);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-height:90vh;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;flex-direction:column;gap:10px;display:flex;overflow:auto}@media (width>=900px){.overlay{align-items:center}.sheet{border-radius:14px;width:540px;padding:22px}}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-head h2{font-size:17px;font-weight:600}.hint{color:var(--text-2);background:var(--surface-2);border-radius:8px;padding:8px 12px;font-size:13px}.group-label{color:var(--text-2);font-size:12px}.acts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.act{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;font-size:13px;display:flex}.act svg{color:var(--accent)}.act:hover{border-color:var(--accent)}.act.suggested{border-color:var(--accent);background:var(--accent-bg)}.form{flex-direction:column;gap:12px;display:flex}.field{color:var(--text-2);flex-direction:column;gap:6px;font-size:13px;display:flex}.field input{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:8px;padding:10px 12px;font-size:15px}.form-actions{justify-content:space-between;gap:8px;display:flex}.inline-add{align-items:flex-end;gap:8px;display:flex}.inline-add .field{flex:1;min-width:0}.sheet .group-label{margin-top:8px}.field select,.field input{width:100%}.field select{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:8px;padding:10px 12px;font-size:15px}.field-hint{color:var(--text-3);font-weight:400}.check{color:var(--text);cursor:pointer;align-items:flex-start;gap:10px;font-size:14px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent);flex:0 0 18px;margin-top:2px}.preview{background:var(--surface-2);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.preview-row{justify-content:space-between;gap:12px;font-size:14px;display:flex}.preview-row span{color:var(--text-2)}.preview-row strong{font-variant-numeric:tabular-nums;font-weight:600}.picked{border:1px solid var(--accent);background:var(--accent-bg);color:var(--text);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.results{border:1px solid var(--border);border-radius:10px;flex-direction:column;margin-top:-4px;display:flex;overflow:hidden}.result{border:0;border-bottom:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.result:last-child{border-bottom:0}.result:hover{background:var(--surface-2)}.result span{color:var(--text-2);font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:var(--red);border-color:var(--red);color:#fff;font-weight:500}.toasts{left:50%;bottom:calc(92px + env(safe-area-inset-bottom));z-index:60;flex-direction:column;gap:8px;width:min(92vw,420px);display:flex;position:fixed;transform:translate(-50%)}@media (width>=900px){.toasts{bottom:24px}}.toast{background:var(--text);color:var(--bg);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;font-size:14px;display:flex}.toast-undo{color:var(--accent-bg);cursor:pointer;background:0 0;border:0;font-weight:600;text-decoration:underline}.overlay-center{z-index:50;align-items:center;padding:16px}.dialog{background:var(--surface);border-radius:14px;flex-direction:column;gap:12px;width:min(100%,440px);padding:20px;display:flex}.dialog h2{font-size:17px;font-weight:600}.dialog p{color:var(--text-2);font-size:14px;line-height:1.55}.demo-bar{background:var(--accent-bg);color:var(--text);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:8px 12px;font-size:13px;display:flex}.demo-bar-actions{gap:8px;display:flex}.demo-bar-setup{background:var(--surface);max-width:560px;margin:0 auto;padding:12px 16px 0}.demo-bar-setup:empty{display:none}.setup{background:var(--surface);flex-direction:column;max-width:560px;min-height:100vh;margin:0 auto;display:flex}@media (width>=700px){.setup{border:1px solid var(--border);border-radius:16px;min-height:auto;margin:32px auto}}.setup-top{justify-content:space-between;align-items:center;gap:8px;padding:14px 16px 0;display:flex}.setup-step{color:var(--text-2);flex:1;font-size:12px}.setup-bar{background:var(--surface-2);border-radius:2px;height:4px;margin:10px 16px 0;overflow:hidden}.setup-bar span{background:var(--accent);height:4px;transition:width .2s;display:block}.setup-body{flex-direction:column;flex:1;gap:12px;padding:18px 16px;display:flex}.setup-body h1{font-size:22px;font-weight:600}.lead{color:var(--text-2);font-size:14px;line-height:1.55}.setup-foot{padding:12px 16px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);position:sticky;bottom:0}.btn-wide{justify-content:center;width:100%;padding:12px;font-size:15px}.link{color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:4px 0;font-size:14px}.option{border:1px solid var(--border-strong);background:var(--surface);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:12px 14px;font-size:14px;display:flex}.option span{color:var(--text-2);font-size:13px}.option.active{border:2px solid var(--accent);background:var(--accent-bg);padding:11px 13px}.option.disabled{opacity:.6;cursor:default}.inline-add{gap:8px;display:flex}.inline-add input{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;flex:1;min-width:0;padding:10px 12px}.draft{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex}.draft-head{justify-content:space-between;align-items:center;display:flex}.draft-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:14px;display:flex}.add-box{border:1.5px dashed var(--accent);background:var(--accent-bg);border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex}.btn-accent{border-color:var(--accent);color:var(--accent);font-weight:500}.add-tile{border:1.5px dashed var(--accent);background:var(--accent-bg);width:100%;color:var(--accent);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:14px;font-size:14px;display:flex}.add-tile>span{flex-direction:column;gap:2px;display:flex}.add-tile>span>span{color:var(--text-2);font-size:13px}.add-tile:hover{filter:brightness(1.04)}.row-actions{align-items:center;gap:6px;display:flex}.icon-btn-sm{flex:0 0 32px;width:32px;height:32px}.amount{border:1px solid var(--border-strong);background:var(--surface);text-align:right;border-radius:8px;width:110px;padding:8px 10px}.result-box{background:var(--surface-2);border-radius:10px;padding:12px 14px;font-size:14px}.result-box strong{color:var(--green)}.recon-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) 110px 90px;align-items:center;gap:10px;padding:8px 0;display:grid}.recon-name{flex-direction:column;min-width:0;font-size:14px;display:flex}.recon-diff{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-2);font-size:13px}.recon-diff.up{color:var(--green)}.recon-diff.down{color:var(--red)}.inline-form{border-top:1px solid var(--border);margin-top:8px;padding-top:12px}.chart-card{flex-direction:column;gap:10px;display:flex}.chart-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.chart-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:600}.chart-change{font-variant-numeric:tabular-nums;font-size:14px;font-weight:500}.chart-change.up{color:var(--green)}.chart-change.down{color:var(--red)}.chart-change-label{color:var(--text-3);font-size:12px;font-weight:400}.chart-box{touch-action:pan-y;height:220px;position:relative}.bar-chart{touch-action:pan-y;height:180px;margin:4px 0 8px;position:relative}.legend-inline{color:var(--text-2);flex-wrap:wrap;gap:4px 16px;margin-bottom:6px;font-size:12px;display:flex}.legend-inline>span{align-items:center;gap:6px;display:inline-flex}.month-strip{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;display:grid}.month-strip button{border:1px solid var(--border);height:32px;color:var(--text-2);font:inherit;cursor:pointer;background:0 0;border-radius:8px;font-size:13px}.month-strip button.active{background:var(--accent);border-color:var(--accent);color:#fff}.forecast-msg{color:var(--text-2);margin:6px 0 4px;font-size:14px}.forecast-msg.up{color:var(--green)}.forecast-msg.down{color:var(--red)}.spend-group{margin-top:4px}.spend-group+.spend-group{margin-top:10px}.spend-group-head{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);font:inherit;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:8px;padding:8px 4px;font-weight:600;display:flex}.spend-chev{color:var(--text-3);margin-left:6px;transition:transform .15s;display:inline-block}.spend-chev.open{transform:rotate(90deg)}.spend-more{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:8px 4px;font-size:13px}.weight-row{border-bottom:1px solid var(--border)}.weight-row .row{border-bottom:0}.weight-bar{background:var(--surface-2);border-radius:2px;height:4px;margin:-4px 4px 10px;overflow:hidden}.weight-bar span{border-radius:2px;height:100%;display:block}.mchip{background:var(--surface-2);color:var(--text-2);vertical-align:1px;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:400;display:inline-block}.ef-meter{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;gap:6px;padding:4px;display:flex}.ef-meter:hover{background:var(--surface-2)}.ef-meter-head{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.ef-meter-head .up{color:var(--green)}.ef-meter-head .down{color:var(--red)}.ef-meter-bar{background:var(--surface-2);border-radius:5px;height:10px;position:relative;overflow:hidden}.ef-meter-fill{background:var(--accent);border-radius:5px;position:absolute;top:0;bottom:0;left:0}.ef-meter-fill.up{background:var(--green)}.ef-meter-fill.down{background:var(--red)}.ef-meter-tick{background:var(--surface);width:2px;position:absolute;top:0;bottom:0}.ef-meter-scale{height:16px;color:var(--text-3);font-size:11px;position:relative}.ef-meter-scale span{white-space:nowrap;position:absolute;transform:translate(-50%)}.ef-meter-scale span:first-child{left:0;transform:none}.month-meter{background:var(--surface-2);border-radius:5px;height:10px;margin:2px 4px 6px;overflow:hidden}.month-meter span{background:var(--green);border-radius:5px;height:100%;display:block}.goal-tiles{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.goal-tile{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;min-height:150px;color:var(--text);font:inherit;border-radius:12px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.goal-tile:hover{border-color:var(--border-strong)}.goal-tile-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.goal-tile-name{font-weight:600}.goal-tile-big{font-size:24px;font-weight:600}.goal-tile .goal-bar{margin:0}.goal-tile-btn{align-self:flex-start;margin-top:auto}.goal-tile-add{color:var(--text-2);background:0 0;border-style:dashed;justify-content:center;align-items:center}@media (width>=900px){.chart-box{height:260px}}.chart-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.periods{scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.periods button{color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:6px 10px;font-size:13px}.periods button.active{background:var(--surface-2);color:var(--text);font-weight:600}.chart-legend{color:var(--text-3);align-items:center;gap:6px;font-size:12px;display:flex}.legend-dash{border-top:2px dashed var(--text-3);width:18px}.seg{border:1px solid var(--border-strong);border-radius:999px;padding:2px;display:inline-flex}.seg button{color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 12px;font-size:13px}.seg button.active{background:var(--accent-bg);color:var(--accent);font-weight:500}@media (width<=520px){.chart-foot{flex-direction:column;align-items:stretch}.periods{justify-content:space-between}.periods button{padding:6px;font-size:12px}.chart-value{font-size:26px}}.freq{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 6px;font-size:13px}.donut-card{flex-direction:column;gap:10px;display:flex}.donut-card .card-head{flex-wrap:wrap;gap:8px}.subtabs{border-bottom:1px solid var(--border);gap:4px;display:flex;overflow-x:auto}.subtabs button{color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 10px;font-size:13px}.subtabs button.active{color:var(--text);border-bottom-color:var(--accent);font-weight:500}.donut-layout{flex-direction:column;gap:8px;display:flex}.donut-box{width:100%;max-width:240px;height:200px;margin:0 auto;position:relative}.donut-center{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding:0 52px;display:flex;position:absolute;inset:0}.donut-center-label{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;overflow:hidden}.donut-center strong{font-size:18px}.donut-center-pct{color:var(--text-2);font-size:12px}.donut-list .row-title{white-space:nowrap}.row-active{background:var(--accent-bg)}.donut-children{border-left:2px solid var(--border);margin:0 0 4px 6px;padding-left:18px}.seg-sm button{padding:4px 10px;font-size:12px}@media (width>=900px){.donut-card.wide .donut-layout{flex-direction:row;align-items:center;gap:24px}.donut-card.wide .donut-box{flex:0 0 240px;margin:0}.donut-card.wide .donut-list{flex:1;min-width:0}}.donut-list button.row .row-chev{display:none}.row-wrap{border-bottom:1px solid var(--border);align-items:center;gap:4px;display:flex}.row-wrap:last-child{border-bottom:0}.row-wrap>.row{border-bottom:0;flex:1;min-width:0}.row-menu{flex:none;position:relative}.row-menu-btn{background:0 0;border-color:#0000}.menu{z-index:30;background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;flex-direction:column;min-width:170px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0000002e}.menu-up{top:auto;bottom:calc(100% + 4px)}.menu-item{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.menu-item:hover{background:var(--surface-2)}.menu-item.danger{color:var(--red)}.btn-danger-outline{border-color:var(--red);color:var(--red)}.sheet-actions{gap:8px;display:flex}.sheet-actions .btn{flex:1;justify-content:center}.detail-list{flex-direction:column;display:flex}.detail-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:9px 0;font-size:14px;display:flex}.detail-row:last-child{border-bottom:0}.detail-row>span:first-child{color:var(--text-2)}.detail-row>span:last-child{text-align:right}.kpi-wrap{display:flex;position:relative}.kpi-wrap>.kpi{flex:1;min-width:0}.kpi-wrap>.row-menu{position:absolute;top:6px;right:6px}.kpi-has-menu .kpi-label{padding-right:34px}button.kpi{text-align:left;font:inherit;color:inherit;cursor:pointer}.btn-wide-soft{justify-content:center;width:100%}.target-row{flex-direction:column;gap:6px;padding:8px 0;display:flex}.target-head{justify-content:space-between;gap:10px;font-size:14px;display:flex}.target-head>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.target-bar{background:var(--surface-2);border-radius:4px;height:8px;position:relative}.target-now{opacity:.85;border-radius:4px;position:absolute;top:0;bottom:0;left:0}.target-mark{background:var(--text);width:2px;margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.pct-input{width:70px}.result-warn strong{color:var(--red)}.pac-run-row{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;gap:8px;padding:8px 0;display:grid}.pac-run-row>strong{grid-column:1/-1}.pac-run-amount{text-align:right;color:var(--text-2);grid-column:1/-1;font-size:14px}.pac-run-amount strong{color:var(--text);margin-left:6px}.field-warn{color:var(--red);margin-top:4px;font-size:12px;display:block}.target-head>span:last-child{white-space:nowrap;flex:none}.card .group-label{margin-top:6px}.group-head{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.card .group-head .group-label{margin-top:0}.todo-hidden{border-top:1px dashed var(--border);flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;display:flex}.todo-hidden>.btn{align-self:flex-start}.todo-hidden-link{color:var(--text-2);margin-top:8px;font-size:13px;display:inline-block}.proj-values{flex-direction:column;gap:2px;margin-top:4px;display:flex}.proj-value{align-items:center;gap:8px;font-size:14px;display:flex}.proj-value strong{margin-left:auto;padding-left:12px;font-size:18px}.proj-value.note strong{font-size:14px;font-weight:500}.scenario{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:8px 0;display:flex}.scenario-head{align-items:center;gap:8px;display:flex}.scenario-name{border:0;border-bottom:1px dashed var(--border-strong);min-width:0;color:var(--text);background:0 0;flex:1;padding:4px 0;font-size:15px;font-weight:600}.scenario-fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.proj-table{border-collapse:collapse;width:100%;font-size:14px}.proj-table th,.proj-table td{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 6px}.proj-table th:first-child,.proj-table td:first-child{text-align:left}.proj-table th{color:var(--text-2);font-size:12px;font-weight:500}.grid-3{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=1100px){.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.chart-foot .chips{flex-wrap:wrap}.tbl-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.chart-foot .chip{padding:4px 10px;font-size:12px}@media (width<=640px){.proj-table td .note{display:none}.proj-table th,.proj-table td{padding:8px 4px;font-size:13px}}.price-status{margin:-4px 0 4px}.price-status .link{font-size:inherit}.file-pick{display:inline-flex;position:relative}.file-pick input{opacity:0;cursor:pointer;position:absolute;inset:0}.import-row{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:8px 0;display:flex}.import-row.error .check strong{color:var(--red)}.import-err{color:var(--red);font-size:13px}.gate{z-index:60;background:var(--bg);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.gate-box{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:380px;padding:28px 24px;display:flex}.gate-box h1{font-size:20px}.gate-mark{border-radius:14px;width:52px;height:52px;font-size:24px}.gate-logo{width:56px;height:56px}.wordmark{white-space:nowrap;align-items:baseline;gap:.3em;min-width:0;display:inline-flex}.brand-suffix{text-overflow:ellipsis;min-width:0;color:var(--text-2);font-weight:500;overflow:hidden}.coin-o{background:var(--gold);border-radius:50%;width:.5em;height:.5em;margin:0 .04em;display:inline-block}.brand-logo{background:0 0}.gsi-box{justify-content:center;min-height:44px;display:flex}.pin-form{gap:8px;width:100%;display:flex}.pin-input{text-align:center;letter-spacing:.3em;border:1px solid var(--border-strong);background:var(--surface);min-width:0;color:var(--text);border-radius:8px;flex:1;padding:10px;font-size:18px}.gate-msg{min-height:18px;color:var(--red);font-size:13px}.gate-foot{border-top:1px solid var(--border);flex-direction:column;align-items:center;gap:10px;width:100%;padding-top:12px;display:flex}.textarea{border:1px solid var(--border-strong);background:var(--surface);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:8px;padding:10px 12px;font-size:15px}.sup-item{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 0;display:flex}.sup-item:first-of-type{border-top:0}.sup-done{opacity:.75}.sup-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.sup-subject{font-weight:600}.sup-meta{color:var(--text-2);font-size:12px}.sup-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.sup-state{background:var(--surface-2);color:var(--text-2);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px}.sup-state.up{color:var(--green)}.sup-reply{border-left:3px solid var(--accent);padding-left:10px}.badge-new{background:var(--accent-bg);color:var(--accent);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px}.sup-actions{flex-wrap:wrap;gap:8px;display:flex}.filters{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;display:grid}.chart-tools{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.year-row{border-top:1px solid var(--border);padding:10px 0}.year-row:first-of-type{border-top:0}.year-head{justify-content:space-between;gap:8px;font-size:15px;display:flex}.year-grid{color:var(--text-2);grid-template-columns:1fr auto;gap:2px 12px;margin-top:6px;font-size:13px;display:grid}.year-grid span:nth-child(2n){text-align:right;color:var(--text);font-variant-numeric:tabular-nums}.wealth-summary{color:inherit;flex-direction:column;gap:8px;text-decoration:none;display:flex}.ws-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.ws-head svg{color:var(--text-2)}.ws-line{width:100%;height:56px}.ws-line.up polyline{stroke:var(--green)}.ws-line.down polyline{stroke:var(--red)}.update-banner{left:50%;bottom:calc(84px + env(safe-area-inset-bottom));z-index:300;background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:10px 12px;font-size:14px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #00000040}@media (width>=900px){.update-banner{bottom:24px}}
