:root{--paper:#E8ECE6;--panel:#FAFBF8;--panel-2:#F1F4EE;--ink:#16271F;--ink-soft:#566860;--ink-faint:#8A998F;--line:#D5DCD2;--line-soft:#E3E8DF;--gold:#A9762E;--green:#2E7A57;--rust:#B0432A;--shadow:0 1px 2px rgba(22,39,31,.04),0 8px 30px rgba(22,39,31,.05);--r:14px;}
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{background:var(--paper);color:var(--ink);font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
  body{padding:24px 18px 40px;line-height:1.5}
  .num{font-family:'Spline Sans Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
  .wrap{max-width:980px;margin:0 auto}
  header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
  .brand{display:flex;flex-direction:column;gap:2px}
  .logo{display:flex;align-items:center;gap:9px}
  .logo h1{font-family:'Fraunces',serif;font-weight:600;font-size:27px;letter-spacing:-.01em;line-height:1}
  .tag{color:var(--ink-soft);font-size:13.5px;margin-top:7px}
  .monthnav{display:flex;align-items:center;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px;box-shadow:var(--shadow)}
  .monthnav button{border:none;background:transparent;width:34px;height:34px;border-radius:999px;cursor:pointer;color:var(--ink);font-size:18px;display:grid;place-items:center;transition:background .15s}
  .monthnav button:hover{background:var(--panel-2)}
  .monthnav .label{min-width:138px;text-align:center;font-weight:600;font-size:14.5px;text-transform:capitalize;padding:0 4px}
  .statusbar{font-size:12.5px;border-radius:10px;padding:9px 13px;margin-bottom:16px}
  .statusbar.file{background:#DCEEE3;color:#235c43}.statusbar.claude{background:var(--panel-2);color:var(--ink-soft)}
  .statusbar.local{background:#EAE6F0;color:#574a73}.statusbar.pending,.statusbar.mem{background:#F6E6D8;color:var(--rust)}
  .statusbtn{border:1px solid currentColor;background:transparent;color:inherit;font-size:12px;font-weight:600;padding:3px 11px;border-radius:7px;cursor:pointer;margin-left:6px;white-space:nowrap} .statusbtn:hover{background:rgba(176,67,42,.12)}
  nav.tabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:18px;padding-bottom:2px;scrollbar-width:none}
  nav.tabs::-webkit-scrollbar{display:none}
  .tab{flex:0 0 auto;border:1px solid transparent;background:transparent;color:var(--ink-soft);padding:8px 15px;border-radius:999px;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s}
  .tab:hover{color:var(--ink)} .tab.on{background:var(--ink);color:#F3F6F0;font-weight:600}
  .tabgrp{flex:0 0 auto;align-self:center;font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:700;padding:0 8px 0 4px}
  .tabdiv{flex:0 0 auto;align-self:stretch;width:1px;background:var(--line);margin:5px 8px}
  .ctxchip{flex:0 0 auto;background:var(--panel);border:1px dashed var(--line);border-radius:999px;padding:9px 16px;font-size:13px;font-weight:600;color:var(--ink-soft);box-shadow:var(--shadow);white-space:nowrap}
  .headtools{display:flex;align-items:center;gap:8px}
  .icobtn{flex:0 0 auto;width:42px;height:42px;border-radius:13px;border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow);transition:all .15s}
  .icobtn:hover{color:var(--ink);border-color:var(--ink-soft)}
  .icobtn.on{background:var(--ink);color:#F3F6F0;border-color:var(--ink)}
  .submonthnav{display:inline-flex;align-items:center;gap:2px;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:3px}
  .submonthnav button{border:none;background:transparent;width:28px;height:28px;border-radius:999px;cursor:pointer;color:var(--ink);font-size:16px;display:grid;place-items:center}
  .submonthnav button:hover{background:var(--panel)}
  .submonthnav .rng{font-size:12px;font-weight:600;color:var(--ink-soft);padding:0 6px;white-space:nowrap}
  .svcgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
  table.matrix tr.totrow td{font-weight:600;border-top:2px solid var(--line);color:var(--ink)}
  table.matrix .pcell{display:flex;align-items:center;gap:4px} table.matrix .pcell .nmedit{min-width:0;flex:1} table.matrix .pcell .del{border:none;background:transparent;color:var(--ink-faint);cursor:pointer;font-size:15px;padding:1px 5px;border-radius:6px;flex:0 0 auto} table.matrix .pcell .del:hover{color:var(--rust)}
  .calcard{overflow:visible;padding:20px;margin-bottom:16px}
  .calcard .head{align-items:baseline}
  .callegend{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:11.5px;color:var(--ink-soft)} .callegend i{display:inline-block;vertical-align:middle;margin-right:4px} .callegend .cmuted{color:var(--ink-faint)}
  .calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:12px}
  .dow{text-align:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);padding-bottom:2px}
  .dcell{position:relative;min-height:48px;border:1px solid var(--line-soft);border-radius:9px;padding:5px 6px;display:flex;flex-direction:column;justify-content:space-between;background:var(--panel)}
  .dcell.empty{border:none;background:transparent;min-height:0}
  .dcell .dnum{font-size:12px;color:var(--ink-soft);font-family:'Spline Sans Mono',monospace}
  .dcell.has{background:var(--panel-2)}
  .dcell.today{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)} .dcell.today .dnum{color:var(--gold);font-weight:700}
  .dcell .dots{display:flex;gap:3px;flex-wrap:wrap}
  .cdot{width:7px;height:7px;border-radius:50%;display:inline-block} .cdot.sub{background:var(--gold)} .cdot.loan{background:var(--rust)}
  .daytip{display:none;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);z-index:40;background:var(--ink);color:#F3F6F0;border-radius:11px;padding:10px 12px;min-width:168px;max-width:240px;box-shadow:0 10px 28px rgba(0,0,0,.24);font-size:12px;pointer-events:none}
  .daytip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--ink)}
  .dcell.has:hover .daytip{display:block}
  .daytip .tt{font-weight:700;margin-bottom:6px;font-size:11px;text-transform:capitalize;opacity:.75}
  .daytip .tl{display:flex;justify-content:space-between;gap:14px;padding:2px 0;white-space:nowrap} .daytip .tt2{opacity:.6;font-size:10px}
  .daytip .tlsum{display:flex;justify-content:space-between;gap:14px;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.2);font-weight:700}
  .daytip .num{color:#F3F6F0}
  .card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
  section.view{display:none} section.view.on{display:block;animation:rise .35s ease}
  @keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-soft);border-radius:var(--r);overflow:hidden;border:1px solid var(--line);margin-bottom:16px}
  .stat{background:var(--panel);padding:18px 18px 16px}
  .stat .k{font-size:12px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
  .stat .v{font-size:24px;font-weight:600;margin-top:8px;letter-spacing:-.01em}
  .stat .v.pos{color:var(--green)} .stat .v.neg{color:var(--rust)}
  .stat .sub{font-size:12px;color:var(--ink-faint);margin-top:3px}
  .flowcard{padding:20px 20px 22px;margin-bottom:16px}
  .flowcard h3,.panel h3{font-family:'Fraunces',serif;font-weight:600;font-size:18px;margin-bottom:3px;letter-spacing:-.01em}
  .flowcard .hint,.panel .hint{font-size:13px;color:var(--ink-soft);margin-bottom:16px}
  .cmeta{font-size:13px;color:var(--ink-soft)}
  .rflist{display:flex;flex-direction:column;gap:9px;margin-top:2px}
  .rfrow{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .rfn{display:flex;flex-direction:column;gap:1px;min-width:0;font-size:13px;font-weight:500} .rfn .rfr{font-size:11px;color:var(--rust);font-weight:400}
  @media(max-width:520px){
    .calgrid{gap:4px} .dcell{min-height:42px;padding:4px 4px;border-radius:7px} .dcell .dnum{font-size:11px} .cdot{width:6px;height:6px}
    .summary{gap:8px} .stat{padding:12px}
    h1{font-size:21px} .flowcard,.panel,.glance,.calcard{padding:14px}
    .legrow{flex-wrap:wrap} .legrow .legname{width:auto} .legex{flex-basis:100%}
    .add{gap:7px} .add input,.add select{font-size:13.5px} .add #expNote,.add #expComment{flex:1 1 100%} .add .methpickbtn{font-size:12px;padding:5px 8px}
    .total-row .val{font-size:15px} .stat .v{font-size:20px}
    .lin{width:100%} .lin.sm{width:100%}
  }
  .hints-off .hint{display:none}
  .flowbar{display:flex;height:30px;border-radius:8px;overflow:hidden;background:var(--panel-2);border:1px solid var(--line-soft)}
  .flowbar span{height:100%;transition:width .4s ease;min-width:2px;flex-shrink:0}
  .flowbar .fgrp{display:flex;height:100%;margin-right:3px} .flowbar .fseg{height:100%;flex-shrink:0}
  .leg2{display:flex;flex-direction:column;gap:9px;margin-top:16px}
  .leg2 .lg{display:flex;flex-wrap:wrap;align-items:center;gap:7px 14px}
  .leg2 .lg .lgh{font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--ink-faint);min-width:64px}
  .leg2 .li{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-soft)}
  .leg2 .dot{width:10px;height:10px;border-radius:3px;flex:0 0 auto} .leg2 .li b.num{color:var(--ink-faint);font-weight:500;font-size:11px;margin-left:3px}
  .leg2 .dot.striped{background:repeating-linear-gradient(45deg,#CBD3C9,#CBD3C9 2px,#EDF0EA 2px,#EDF0EA 4px)}
  .flowbar .gap-seg{background:repeating-linear-gradient(45deg,#E3E8DF,#E3E8DF 5px,#EDF0EA 5px,#EDF0EA 10px)}
  .legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px}
  .legend .li{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-soft)}
  .legend .dot{width:10px;height:10px;border-radius:3px;flex:0 0 auto} .legend b{color:var(--ink);font-weight:600;margin-left:2px}
  .legend .dot.striped{background:repeating-linear-gradient(45deg,#CBD3C9,#CBD3C9 2px,#EDF0EA 2px,#EDF0EA 4px)}
  .subtitle{font-family:'Fraunces',serif;font-weight:600;font-size:16px;margin-bottom:3px}
  .ychart{display:flex;align-items:flex-end;gap:6px;height:170px;margin-top:4px}
  .ychart .ycol{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;min-width:0}
  .ychart .ybars{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;width:100%}
  .ychart .yb{width:9px;border-radius:3px 3px 0 0;min-height:1px;transition:height .4s}
  .ychart .yb.in{background:var(--green)} .ychart .yb.out{background:var(--gold)}
  .ychart .ylabel{font-size:10px;color:var(--ink-soft);margin-top:6px;text-transform:capitalize} .ychart .ylabel.off{color:var(--ink-faint);opacity:.5}
  table.ytable th:not(:first-child),table.ytable td:not(.pname){text-align:right}
  table.ytable td.pos{color:var(--green)} table.ytable td.neg{color:var(--rust)}
  table.ytable tr.off td{color:var(--ink-faint)}
  .ychart2{display:flex;align-items:flex-start;gap:6px;margin-top:4px}
  .ychart2 .ycol2{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0}
  .ychart2 .yplot{display:flex;flex-direction:column;align-items:center;width:100%}
  .ychart2 .yhi{height:62px;display:flex;align-items:flex-end;width:100%;justify-content:center}
  .ychart2 .ylo{height:62px;display:flex;align-items:flex-start;width:100%;justify-content:center}
  .ychart2 .yzero{height:1px;width:100%;background:var(--line)}
  .ychart2 .yb{width:13px;min-height:1px;transition:height .4s}
  .ychart2 .yb.pos{background:var(--green);border-radius:3px 3px 0 0}
  .ychart2 .yb.neg{background:var(--rust);border-radius:0 0 3px 3px}
  .ychart2 .ylabel{font-size:10px;color:var(--ink-soft);margin-top:6px;text-transform:capitalize} .ychart2 .ylabel.off{color:var(--ink-faint);opacity:.5}
  .snaprow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft)}
  .snaprow .snapinfo{font-size:12.5px;color:var(--ink-faint)}
  .snapin{width:104px;font-family:'Spline Sans Mono',monospace;font-size:12.5px;padding:5px 7px;text-align:right;border:1px solid var(--line);border-radius:7px;background:var(--panel)}
  .snapin:focus{border-color:var(--green);outline:none}
  table.ytable td.snapcell{text-align:right;padding-top:5px;padding-bottom:5px}
  .catsum{margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft)}
  .cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
  .panel{padding:20px}
  .bars{display:flex;flex-direction:column;gap:13px;margin-top:4px}
  .barrow .top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:13.5px}
  .barrow .top .nm{font-weight:500}.barrow .top .amt{font-weight:600}
  .barrow .top .pct{color:var(--ink-faint);font-size:12px;margin-left:6px;font-weight:500}
  .track{height:8px;border-radius:99px;background:var(--panel-2);overflow:hidden}
  .track i{display:block;height:100%;border-radius:99px;transition:width .4s}
  .insights{display:flex;flex-direction:column;gap:12px;margin-top:4px}
  .ins{display:flex;gap:12px;padding:13px 14px;border-radius:10px;background:var(--panel-2);align-items:flex-start}
  .ins .ic{flex:0 0 auto;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:15px}
  .ins .tx{font-size:13.5px;color:var(--ink-soft);line-height:1.45} .ins .tx b{color:var(--ink);font-weight:600}
  .ins.warn .ic{background:#F6E6D8;color:var(--rust)}.ins.ok .ic{background:#DCEEE3;color:var(--green)}.ins.info .ic{background:#EAE6F0;color:#6A5891}
  .panel .head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
  .list{display:flex;flex-direction:column}
  .item{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line-soft)}
  .item:first-child{border-top:none} .item .mn{flex:1;min-width:0}
  .item .mn .t{font-weight:500;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .item .mn .t .cmt{color:var(--ink-faint);font-weight:400;font-style:italic}
  .item .mn .s{font-size:12.5px;color:var(--ink-faint);margin-top:1px}
  .item .catpill{font-size:11.5px;padding:3px 6px;border-radius:99px;font-weight:600;color:#fff;flex:0 0 auto;width:96px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .item .am{font-weight:600;font-size:14.5px;flex:0 0 auto} .item .am.in{color:var(--green)}
  .item .del{border:none;background:transparent;color:var(--ink-faint);cursor:pointer;font-size:17px;line-height:1;padding:4px 2px;flex:0 0 auto;border-radius:6px;transition:color .15s,background .15s}
  .item .del:hover{color:var(--rust);background:var(--panel-2)}
  .empty{text-align:center;color:var(--ink-faint);font-size:13.5px;padding:26px 10px}
  .add{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);align-items:center}
  input,select{font-family:inherit;font-size:14px;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:9px 11px;outline:none;transition:border .15s,box-shadow .15s}
  input:focus,select:focus{border-color:var(--ink-soft);box-shadow:0 0 0 3px rgba(22,39,31,.06)}
  input::placeholder{color:var(--ink-faint)}
  input.amt{width:108px;text-align:right;font-family:'Spline Sans Mono',monospace}
  input.grow{flex:1;min-width:120px} input[type=date]{width:140px}
  select{flex:0 0 auto;max-width:170px;cursor:pointer}
  .btn{border:none;background:var(--ink);color:#F3F6F0;font-weight:600;font-size:14px;padding:9px 16px;border-radius:9px;cursor:pointer;transition:opacity .15s}
  .btn:hover{opacity:.9}
  .total-row{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;padding-top:12px;border-top:2px solid var(--ink);font-weight:600}
  .total-row .lab{font-size:13px;text-transform:uppercase;letter-spacing:.05em} .total-row .val{font-size:19px}
  .accgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:4px}
  .acc{padding:15px 16px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);position:relative}
  .acc .an{font-size:13px;color:var(--ink-soft);font-weight:500} .acc .ab{font-size:21px;font-weight:600;margin-top:6px;letter-spacing:-.01em}
  .ovgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:16px}
  .glance{padding:18px 20px}
  .glance .ghead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
  .glance .ghead .goto{border:none;background:transparent;color:var(--ink-faint);cursor:pointer;font-size:16px;padding:4px 7px;border-radius:7px;transition:all .15s} .glance .ghead .goto:hover{color:var(--ink);background:var(--panel-2)}
  .glance .ghead h3{font-family:'Fraunces',serif;font-weight:600;font-size:17px}
  .ministats{display:flex;flex-wrap:wrap;gap:18px}
  .ministats .k{font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
  .ministats .v{font-size:19px;font-weight:600;margin-top:4px} .ministats .v.neg{color:var(--rust)} .ministats .v.pos{color:var(--green)}
  .bigwealth{font-size:30px;font-weight:600;letter-spacing:-.01em}
  .gminis{display:flex;flex-direction:column;gap:12px}
  .gmini .top{display:flex;justify-content:space-between;align-items:baseline;font-size:13px} .gmini .top .nm{font-weight:500} .gmini .top .num{color:var(--ink-soft);font-size:12.5px}
  .ovtoggles{display:flex;flex-wrap:wrap;gap:8px}
  .ovtoggles .chip{border:1px solid var(--line);background:var(--panel-2);color:var(--ink-soft);font-size:13px;font-weight:600;padding:8px 14px;border-radius:99px;cursor:pointer;transition:all .15s}
  .ovtoggles .chip.on{background:var(--ink);color:#F3F6F0;border-color:var(--ink)}
  .item .goto{border:none;background:transparent;color:var(--ink-faint);cursor:pointer;font-size:15px;line-height:1;padding:4px 6px;flex:0 0 auto;border-radius:6px;transition:color .15s,background .15s} .item .goto:hover{color:var(--ink);background:var(--panel-2)}
  .cdot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:7px;vertical-align:middle}
  .catcolor{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:transparent;cursor:pointer;padding:2px;flex:0 0 auto}
  .updrow{font-size:11.5px;color:var(--ink-faint);margin-top:10px;display:flex;align-items:center;gap:5px}
  .updinput{font-size:11.5px;padding:4px 7px;color:var(--ink-soft);width:auto}
  .updinput.due{border-color:#E7C9AD;background:#FBEFE2;color:var(--rust)}
  .item.overdue{background:#FBEDE8;border-radius:9px;box-shadow:inset 0 0 0 1px #E6C3B7}
  .duemeta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:4px}
  .duelbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);font-weight:600}
  .overduetag{font-size:10.5px;font-weight:700;color:#fff;background:var(--rust);padding:1px 7px;border-radius:99px;letter-spacing:.02em}
  .undatedtag{font-size:10.5px;font-weight:700;color:var(--gold);background:#FBEFE2;border:1px solid #E7C9AD;padding:1px 7px;border-radius:99px}
  .paybtn{flex:0 0 auto;border:1px solid var(--green);background:var(--green);color:#fff;font-size:12px;font-weight:600;padding:6px 12px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:opacity .15s} .paybtn:hover{opacity:.88}
  .repaybar .tagmini{font-size:10.5px;font-weight:600;color:var(--ink-faint);background:var(--panel-2);border:1px solid var(--line-soft);padding:1px 7px;border-radius:99px;margin-left:8px;vertical-align:middle;text-transform:none;letter-spacing:0}
  .defsection{box-shadow:none;background:var(--panel-2);border-style:dashed}
  .legendbox{border-style:solid;border-color:var(--line-soft);background:var(--panel);margin-top:16px}
  .defhead{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}
  .defhead h3{font-family:'Fraunces',serif;font-weight:600;font-size:16px;color:var(--ink-soft)}
  .defhead .chev{font-size:14px;color:var(--ink-faint);flex:0 0 auto}
  .defbody{margin-top:14px}
  .defbody .subhd{font-size:12px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin:14px 0 6px;display:flex;justify-content:space-between} .defbody .subhd .num{color:var(--ink-soft);text-transform:none;letter-spacing:0}
  .defbody .subhd:first-child{margin-top:0}
  .repayinfo{display:flex;align-items:center;gap:8px;margin-top:8px;padding:9px 2px 2px;color:var(--ink-faint);border-top:1px dashed var(--line-soft)}
  .repayinfo .ic{flex:0 0 auto;color:var(--ink-faint);font-size:13px}
  .repayinfo .mn{flex:1;min-width:0} .repayinfo .t{font-weight:500;font-size:12.5px;color:var(--ink-soft)} .repayinfo .s{font-size:11px;color:var(--ink-faint);margin-top:1px}
  .repayinfo .am{font-weight:600;font-size:13px;flex:0 0 auto;color:var(--ink-soft)}
  .goalgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;margin-bottom:4px}
  .goal{padding:16px 17px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);position:relative}
  .goal .del{position:absolute;top:9px;right:9px;border:none;background:transparent;color:var(--ink-faint);cursor:pointer;font-size:15px;border-radius:6px;padding:2px 5px} .goal .del:hover{color:var(--rust)}
  .gbar{height:11px;border-radius:99px;background:var(--panel);overflow:hidden;margin:14px 0 9px;border:1px solid var(--line-soft)}
  .gbar i{display:block;height:100%;background:var(--green);border-radius:99px;transition:width .45s}
  .gmeta{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px;color:var(--ink-soft)} .gmeta b{color:var(--ink)} .gmeta .gpct{font-weight:700;color:var(--green);font-family:'Spline Sans Mono',monospace}
  .gfields{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:12px;font-size:12.5px;color:var(--ink-soft)}
  .gfields .gin{width:84px;text-align:right;padding:6px 9px;font-family:'Spline Sans Mono',monospace}
  .gmonth{padding:6px 9px;font-size:12.5px;width:auto;cursor:pointer}
  .ghint{font-size:12.5px;color:var(--ink-soft);margin-top:11px;line-height:1.45} .ghint b{color:var(--ink)} .ghint .reached{color:var(--green);font-weight:600}
  .acc .del{position:absolute;top:9px;right:9px;border:none;background:transparent;color:var(--ink-faint);cursor:pointer;font-size:15px;border-radius:6px;padding:2px 5px} .acc .del:hover{color:var(--rust)}
  .nmedit{flex:1 1 auto;min-width:0;font-weight:600;font-size:15px;font-family:inherit;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:7px;padding:5px 8px;margin-left:-8px;transition:all .15s}
  .nmedit:hover{border-color:var(--line)} .nmedit:focus{border-color:var(--ink-soft);background:var(--panel-2);box-shadow:0 0 0 3px rgba(22,39,31,.06);outline:none}
  .nmedit.sm{font-size:14.5px;font-weight:500;display:inline-block;flex:0 1 auto;max-width:220px;padding:4px 7px;margin-left:-7px}
  .abedit{font-size:21px;font-weight:600;font-family:'Spline Sans Mono',monospace;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:7px;padding:3px 6px;margin:4px 0 0 -6px;width:150px;transition:all .15s}
  .amedit{font-family:'Spline Sans Mono',monospace;font-size:14.5px;font-weight:600;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:7px;padding:5px 8px;width:106px;text-align:right;flex:0 0 auto;transition:all .15s}
  .amedit:hover{border-color:var(--line)} .amedit:focus{border-color:var(--green);outline:none;background:var(--panel)}
  .catsel{appearance:none;-webkit-appearance:none;border:none;color:#fff;font-weight:600;font-size:11.5px;width:96px;padding:5px 8px;border-radius:99px;cursor:pointer;flex:0 0 auto;text-align:center;text-align-last:center;font-family:inherit}
  .catsel option{color:var(--ink);background:var(--panel);text-align:left}
  .filterbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
  .fchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px;cursor:pointer;transition:all .15s}
  .fchip:hover{border-color:var(--ink-soft)} .fchip.on{background:var(--ink);color:#F3F6F0;border-color:var(--ink)}
  .fchip .fdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
  .cmtedit{font-size:12px;color:var(--ink-soft);background:transparent;border:1px solid transparent;border-radius:6px;padding:3px 7px;margin-left:-7px;font-family:inherit;max-width:260px;width:100%;transition:all .15s}
  .cmtedit:hover{border-color:var(--line-soft)} .cmtedit:focus{border-color:var(--green);outline:none;background:var(--panel);color:var(--ink)} .cmtedit::placeholder{color:var(--ink-faint)}
  .dateedit{font-family:'Spline Sans Mono',monospace;font-size:11.5px;color:var(--ink-soft);background:transparent;border:1px solid transparent;border-radius:6px;padding:2px 5px;margin-left:-5px;width:132px;transition:all .15s}
  .dateedit:hover{border-color:var(--line-soft)} .dateedit:focus{border-color:var(--green);outline:none;background:var(--panel);color:var(--ink)}
  .todaybtn{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);font-size:10.5px;font-weight:600;line-height:1;padding:4px 8px;border-radius:6px;cursor:pointer;flex:0 0 auto;transition:all .15s}
  .todaybtn:hover{border-color:var(--green);color:var(--green)}
  .legendbox .legrows{display:flex;flex-direction:column;gap:8px;margin-top:4px}
  .legrow{display:flex;align-items:center;gap:9px}
  .legrow .dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
  .legrow .legname{font-size:13px;font-weight:600;color:var(--ink);width:106px;flex:0 0 auto}
  .legex{flex:1;min-width:0;font-size:12.5px;color:var(--ink-soft);background:var(--panel);border:1px solid var(--line-soft);border-radius:7px;padding:6px 9px;font-family:inherit;transition:all .15s}
  .legex:focus{border-color:var(--green);outline:none;color:var(--ink)} .legex::placeholder{color:var(--ink-faint)}
  .savets{opacity:.72;font-weight:500;white-space:nowrap}
  .impbtn{cursor:pointer}
  .imppanel .impbtns{display:flex;gap:8px;margin:4px 0 12px}
  .implist{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow:auto}
  .improw{display:flex;align-items:center;gap:10px;padding:7px 9px;border:1px solid var(--line-soft);border-radius:9px;background:var(--panel)}
  .improw.off{opacity:.5}
  .improw .impchk{width:17px;height:17px;flex:0 0 auto;accent-color:var(--green)}
  .improw .impd{flex:1;min-width:0}
  .improw .impm{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .catsel.imp{width:190px}
  .dupb{font-size:10px;font-weight:700;color:var(--rust);background:#F1E0DA;padding:1px 7px;border-radius:99px;margin-left:6px;vertical-align:middle}
  .impgrp{margin-bottom:16px}
  .impgh{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin:8px 0 8px;display:flex;align-items:center;gap:8px}
  .impgh span{background:var(--ink);color:#F3F6F0;border-radius:99px;padding:1px 8px;font-size:11px}
  .impgh em{font-style:normal;color:var(--ink-faint);font-weight:500;text-transform:none;letter-spacing:0}
  .movreason{font-size:10px;font-weight:600;color:var(--ink-soft);background:var(--panel-2);border:1px solid var(--line-soft);padding:1px 7px;border-radius:99px;margin-left:6px;vertical-align:middle;white-space:nowrap}
  .lnk{background:none;border:none;color:var(--gold);font-weight:700;cursor:pointer;font-size:inherit;padding:0;text-decoration:underline;font-family:inherit}
  .smlist{margin-top:10px;display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--line-soft);padding-top:10px;max-height:300px;overflow:auto}
  .smrow{display:flex;align-items:center;gap:8px;font-size:12.5px}
  .smrow .cdot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
  .smrow .smn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
  .smrow .smd{color:var(--ink-faint);flex:0 0 auto;font-size:11px}
  .smrow .sma{color:var(--ink);font-weight:600;flex:0 0 auto;width:84px;text-align:right}
  .smrow .smcat{font-size:11px;color:var(--ink-soft);flex:0 0 auto;background:var(--panel-2);border:1px solid var(--line-soft);padding:1px 7px;border-radius:99px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .modalwrap{position:fixed;inset:0;background:rgba(22,39,31,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:1000;overflow:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  .modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.28);width:100%;max-width:660px;margin:auto;overflow:hidden;animation:modalin .16s ease}
  @keyframes modalin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .modalhead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line-soft)}
  .modalhead h3{font-family:'Fraunces',serif;font-weight:600;font-size:18px;color:var(--ink)}
  .modalx{background:none;border:none;font-size:26px;line-height:1;color:var(--ink-soft);cursor:pointer;padding:0 4px}
  .modalx:hover{color:var(--ink)}
  .modalbody{padding:20px 22px;max-height:74vh;overflow:auto}
  .modalbody .smlist{max-height:none;border-top:none;padding-top:0}
  .modalfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line-soft)}
  @media(max-width:520px){.modalwrap{padding:12px 8px}.modalhead,.modalbody{padding-left:16px;padding-right:16px}.smrow .smcat{display:none}}
  .dupb.in{color:var(--green);background:#DCEAE2}
  .am.in{color:var(--green)}
  .grip{cursor:grab;color:var(--ink-faint);font-size:15px;line-height:1;flex:0 0 auto;padding:2px 2px;user-select:none;touch-action:none}
  .grip:active{cursor:grabbing}
  .item.dragover{box-shadow:inset 0 2px 0 var(--gold)}
  .daysep{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);padding:12px 2px 5px;margin-top:6px;border-top:1px solid var(--line-soft)}
  .daysep.first{border-top:none;margin-top:0;padding-top:2px}
  .defmeta{display:flex;align-items:center;gap:8px;margin-top:2px}
  .methsel{appearance:none;-webkit-appearance:none;border:1px solid var(--line-soft);background:var(--panel);color:var(--ink-soft);font-size:11px;border-radius:6px;padding:2px 7px;font-family:inherit;cursor:pointer;max-width:150px}
  .methcell{flex:0 0 auto;background:none;border:none;padding:3px;margin-left:-2px;cursor:pointer;display:flex;align-items:center;border-radius:5px;transition:background .12s}
  .methcell:hover{background:var(--panel-2)} .micon{display:block}
  .methwrap{position:relative;flex:0 0 auto;display:inline-flex}
  .methpickbtn{display:inline-flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:6px 10px;cursor:pointer;font-size:12.5px;color:var(--ink-soft);font-family:inherit;white-space:nowrap}
  .methpickbtn:hover{border-color:var(--ink-soft)}
  .methmenu{position:absolute;top:calc(100% + 5px);left:0;z-index:50;background:var(--panel);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);padding:5px;display:flex;flex-direction:column;gap:2px;min-width:172px}
  .methopt{display:flex;align-items:center;gap:10px;background:none;border:none;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--ink);text-align:left;width:100%;font-family:inherit}
  .methopt .mico{display:inline-flex;flex:0 0 auto} .methopt:hover{background:var(--panel-2)} .methopt.on{background:var(--panel-2);font-weight:600}
  .methbackdrop{position:fixed;inset:0;z-index:40;background:transparent}
  .methbar .fchip{padding:4px 9px;gap:6px} .methbar .fchip .micon{flex:0 0 auto}
  .review .badge{background:var(--gold);color:#fff;font-size:11px;font-weight:700;border-radius:99px;padding:2px 9px}
  .review .rvlist{display:flex;flex-direction:column;gap:9px}
  .monthresult{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;margin:12px 0 16px;border-left:4px solid var(--gold)}
  .monthresult.pos{border-left-color:var(--green)} .monthresult.neg{border-left-color:var(--rust)}
  .monthresult .k{font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft)}
  .monthresult .mrsub{font-size:11.5px;color:var(--ink-faint);margin-top:3px;line-height:1.45;max-width:46ch}
  .monthresult .mrval{font-size:24px;font-weight:600;flex:0 0 auto} .monthresult .mrval.pos{color:var(--green)} .monthresult .mrval.neg{color:var(--rust)}
  .methmini{flex:0 0 auto;display:inline-flex;align-items:center;margin-right:2px} .methmini .micon{display:block}
  .planNav{margin-bottom:14px}
  .flowtoggle{margin-bottom:14px} .flowtot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:11px;border-top:1px solid var(--line-soft);font-size:12.5px;font-weight:600;color:var(--ink-soft)} .flowtot .num{font-size:15px;color:var(--ink)}
  .barrow.clickable{cursor:pointer;border-radius:8px;margin:0 -6px;padding:5px 6px;transition:background .12s} .barrow.clickable:hover{background:var(--panel-2)}
  .funfacts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
  .add.addtop{margin:2px 0 16px;padding-bottom:16px;border-bottom:1px solid var(--line-soft)}
  .fchipname{display:inline-flex;align-items:center;gap:4px;background:rgba(0,0,0,.06);border-radius:6px;padding:1px 7px;font-weight:700;font-family:'Spline Sans Mono',monospace;font-size:11.5px} .statusbar .stxt{opacity:.85}
  .dbconn{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:var(--r);background:var(--panel-2);border:1px solid var(--line-soft);margin-top:4px} .dbconn.file{background:#DCEEE3;border-color:#b9ddc9} .dbconn.pend{background:#F6E6D8;border-color:#eccfb3}
  .dbconn .fic{font-size:20px;flex:0 0 auto} .dbconn .cmn{min-width:0} .dbconn .ck{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint)} .dbconn .cv{font-size:14.5px;font-weight:600;color:var(--ink);font-family:'Spline Sans Mono',monospace;word-break:break-all;margin-top:2px} .dbconn .cs2{font-size:11.5px;color:var(--ink-faint);margin-top:3px}
  .cloudsetup{border:1px dashed var(--line);border-radius:var(--r);padding:10px 12px;margin-bottom:12px} .cloudsetup summary{cursor:pointer;font-weight:600;font-size:13.5px;color:var(--ink)}
  .cloudform{display:flex;flex-direction:column;gap:9px;margin-top:11px} .cloudform .cfl{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;color:var(--ink-soft)} .cloudform input{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:13px} .cloudform .btn{align-self:flex-start}
  .gate{position:fixed;inset:0;background:var(--paper);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}
  .gatebox{width:100%;max-width:320px;text-align:center}
  .gatelogo{font-family:'Fraunces',serif;font-size:30px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
  .gatesub{color:var(--ink-faint);font-size:13px;margin:4px 0 22px}
  .gateinput{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:11px;font-size:18px;text-align:center;font-family:'Spline Sans Mono',monospace;letter-spacing:3px;background:var(--panel);color:var(--ink);box-sizing:border-box}
  .gateinput:focus{border-color:var(--violet);outline:none;box-shadow:0 0 0 3px rgba(124,108,246,.18)}
  .gateinput.bad{border-color:var(--rust);animation:gshake .32s}
  .gatebtn{width:100%;margin-top:12px;padding:13px;font-size:15px}
  .gateerr{color:var(--rust);font-size:12.5px;margin-top:11px}
  @keyframes gshake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}
  .funfact{padding:12px 14px;border:1px solid var(--line-soft);border-radius:var(--r);background:var(--panel-2)}
  .funfact .ffk{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-faint)}
  .funfact .ffv{font-size:19px;font-weight:600;color:var(--ink);margin-top:4px;line-height:1.2;word-break:break-word}
  .funfact .ffs{font-size:11.5px;color:var(--ink-faint);margin-top:3px}
  @media(max-width:560px){.funfacts{grid-template-columns:1fr}}
  .cmlist{display:flex;flex-direction:column} .cmrow{display:flex;align-items:center;gap:11px;padding:9px 2px;border-bottom:1px solid var(--line-soft)} .cmrow:last-child{border-bottom:none}
  .cmico{flex:0 0 auto;width:22px;display:flex;align-items:center;justify-content:center} .cmico .micon{display:block}
  .fixtag{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint);border:1px solid var(--line);border-radius:5px;padding:1px 4px}
  .cmmn{flex:1;min-width:0} .cmt{font-size:13.5px;font-weight:600;color:var(--ink)} .cms{font-size:11.5px;color:var(--ink-faint);margin-top:2px}
  .cmamt{flex:0 0 auto;font-size:14px;font-weight:600} .cmamt.neg{color:var(--green)}
  .cmtot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:11px;border-top:2px solid var(--line);font-weight:700} .cmtot .num{font-size:17px}
  .planrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 2px;border-bottom:1px solid var(--line-soft)}
  .planrow .plk{font-size:14px;font-weight:600;color:var(--ink)} .planrow .plsub{font-size:11.5px;color:var(--ink-faint);margin-top:2px}
  .planinput{width:120px} input.planinput{font-family:'Spline Sans Mono',monospace}
  .planrowsub{padding:2px 2px 6px} .planfix summary{font-size:12px;color:var(--ink-soft);cursor:pointer;padding:4px 0} .planfixlist{padding:4px 0 2px} .pfx{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-soft);padding:3px 0} .pfx .num{color:var(--ink)}
  .planline{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:11px 14px;border-radius:var(--r);background:var(--panel-2);font-weight:600} .planline .num{font-size:18px} .planline.pos .num{color:var(--green)} .planline.neg .num{color:var(--rust)}
  .planresult{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:15px 16px;border-radius:var(--r);border-left:4px solid var(--green);background:var(--panel-2)} .planresult.neg{border-left-color:var(--rust)}
  .planresult .prk{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft)} .planresult .prsub{font-size:11.5px;color:var(--ink-faint);margin-top:3px} .planresult .prval{font-size:26px;font-weight:600} .planresult.pos .prval{color:var(--green)} .planresult.neg .prval{color:var(--rust)}
  .rvrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border:1px solid var(--line-soft);border-radius:12px;background:var(--panel-2)}
  .rvinfo{min-width:0} .rvn{font-size:13.5px;font-weight:600;color:var(--ink)} .rvn .num{color:var(--ink-faint);font-weight:500;margin-left:5px}
  .rvsug{font-size:12px;color:var(--ink-soft);display:flex;align-items:center;gap:6px;margin-top:4px} .rvsug .dot{width:9px;height:9px;border-radius:3px;flex:0 0 auto} .rvsug .arr{color:var(--ink-faint)} .rvsug b{color:var(--ink)}
  .rvact{display:flex;gap:7px;flex:0 0 auto}
  .rvact .mini{padding:7px 13px;border-radius:9px;font-size:12px}
  .mini.good{background:var(--green);color:#fff;border-color:var(--green)} .mini.good:hover{filter:brightness(1.06)}
  @media(max-width:520px){.rvrow{flex-direction:column;align-items:stretch;gap:9px} .rvact{justify-content:flex-end} .rvact .mini{flex:1}}
  .abedit:hover{border-color:var(--line)} .abedit:focus{border-color:var(--ink-soft);background:var(--panel);box-shadow:0 0 0 3px rgba(22,39,31,.06);outline:none}
  .svc{padding:14px 0;border-top:1px solid var(--line-soft)} .svc:first-child{border-top:none}
  .svcgrid .svc{padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)} .svcgrid .svc:first-child{border-top:1px solid var(--line)}
  .svcgrid .svc .r1 .nmedit{font-size:15.5px;font-weight:600}
  .svcgrid .svc .members{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);border-left:none;padding-left:0}
  .svcgrid .svc .recov{margin-top:12px;padding-top:11px;border-top:1px dashed var(--line)}
  .svc .r1{display:flex;align-items:center;justify-content:space-between;gap:10px} .svc .nm{font-weight:600;font-size:15px}
  .svc .r2{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:9px;font-size:13px;color:var(--ink-soft)}
  .svc .r2 input{padding:6px 9px}
  .svc .r2 input.cost{width:84px;text-align:right;font-family:'Spline Sans Mono',monospace}
  .svc .r2 input.split{width:50px;text-align:center;font-family:'Spline Sans Mono',monospace}
  .svc .per{color:var(--ink);font-weight:600}
  .svc .mini{border:1px solid var(--line);background:var(--panel-2);color:var(--ink-soft);font-size:11.5px;font-weight:600;padding:5px 9px;border-radius:8px;cursor:pointer}
  .svc .mini:hover{border-color:var(--ink-soft)}
  .members{margin-top:10px;border-left:2px solid var(--line);padding-left:12px}
  .mem{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px}
  .mem .mname{flex:1;font-weight:500} .mem input.mamt{width:84px;text-align:right;padding:6px 9px;font-family:'Spline Sans Mono',monospace}
  .mem .unit{color:var(--ink-faint);font-size:12px} .mem .x{border:none;background:transparent;color:var(--ink-faint);cursor:pointer;font-size:15px;padding:2px 5px;border-radius:6px} .mem .x:hover{color:var(--rust)}
  .addmem{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:9px;border-top:1px dashed var(--line-soft);flex-wrap:wrap}
  .addmem select{max-width:130px;padding:5px 8px;font-size:12px;color:var(--ink-soft);background:var(--panel)} .addmem input{width:74px;text-align:right;padding:5px 8px;font-size:12px;font-family:'Spline Sans Mono',monospace}
  .addmem .mini{background:var(--panel);color:var(--ink-soft);border:1px solid var(--line);font-weight:600} .addmem .mini:hover{border-color:var(--ink-soft);color:var(--ink)}
  .svc .recov{margin-top:10px;font-size:12.5px;color:var(--ink-faint)} .svc .recov b{color:var(--green)} .svc .recov .net{color:var(--ink)}
  .svc .del{border:none;background:transparent;color:var(--ink-faint);cursor:pointer;font-size:16px;border-radius:6px;padding:3px 6px;flex:0 0 auto} .svc .del:hover{color:var(--rust)}
  .matrix-wrap{overflow-x:auto;margin-top:6px}
  table.matrix{border-collapse:collapse;width:100%;font-size:13px;min-width:420px}
  table.matrix th,table.matrix td{padding:8px 6px;text-align:center;border-bottom:1px solid var(--line-soft)}
  table.matrix th{font-size:11.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;font-weight:600;white-space:nowrap}
  table.matrix th:first-child,table.matrix td.pname{text-align:left;font-weight:600;white-space:nowrap;position:sticky;left:0;background:var(--panel)}
  table.matrix td.owe{font-weight:600;text-align:right;white-space:nowrap}
  .paycell{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;padding:5px 7px;font-size:12px;cursor:pointer;min-width:54px;font-family:'Spline Sans Mono',monospace;font-weight:600;transition:all .12s}
  .paycell.paid{background:var(--green);border-color:var(--green);color:#fff} .paycell.due{background:#FBEFE2;border-color:#E7C9AD;color:var(--rust)}
  .paycell:hover{transform:translateY(-1px)} .cell.none{color:var(--ink-faint)}
  .matrix .svccell{font-size:12.5px;color:var(--ink);white-space:nowrap;text-align:left}
  .matrix .svccell .muted{color:var(--ink-faint);margin-left:4px}
  .matrix tr.grp td{border-top:2px solid var(--line)}
  .loaninfo{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
  .loaninfo .b{background:var(--panel-2);border-radius:9px;padding:10px 12px}
  .loaninfo .b .k{color:var(--ink-faint);font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}
  .loaninfo .b .v{font-weight:600;font-size:16px;margin-top:4px} .loaninfo .b .v.cost{color:var(--rust)}
  .loangrid{display:flex;flex-direction:column;gap:14px}
  .loanitem{border:1px solid var(--line);border-radius:14px;background:var(--panel-2);padding:16px}
  .loanitem .r1{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .loanitem .r1 .nmedit{font-size:15.5px;font-weight:600;flex:1;min-width:0}
  .loanitem .r1btns{display:flex;align-items:center;gap:6px;flex:0 0 auto}
  .loanitem .mini{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:8px;cursor:pointer} .loanitem .mini:hover{border-color:var(--ink-soft);color:var(--ink)}
  .loanitem .del{border:none;background:transparent;color:var(--ink-faint);cursor:pointer;font-size:17px;line-height:1;border-radius:6px;padding:3px 6px} .loanitem .del:hover{color:var(--rust)}
  .lfields{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
  .lf{display:flex;flex-direction:column;gap:5px}
  .lf label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);font-weight:700}
  .lin{width:112px;padding:8px 11px;font-family:'Spline Sans Mono',monospace;font-size:14px;border:1px solid var(--line);border-radius:9px;background:var(--panel);text-align:right;color:var(--ink)}
  .lin.sm{width:84px} .lin:focus{border-color:var(--green);outline:none}
  .loanitem .loaninfo{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
  .modebtns{display:flex;gap:7px;margin:10px 0}
  .modebtns .chip{border:1px solid var(--line);background:var(--panel-2);color:var(--ink-soft);font-size:13px;font-weight:600;padding:7px 14px;border-radius:99px;cursor:pointer}
  .modebtns .chip.on{background:var(--ink);color:#F3F6F0;border-color:var(--ink)}
  .calcbox{background:var(--panel-2);border-radius:11px;padding:15px 17px;margin-top:6px;font-size:13.5px;line-height:1.55}
  .calcbox .big{font-size:16px;font-weight:600;margin-bottom:6px} .calcbox b{color:var(--ink);font-weight:600} .calcbox .save{color:var(--green)}
  .disc{font-size:11.5px;color:var(--ink-faint);margin-top:12px;line-height:1.45}
  .databar{margin-top:22px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
  .databar h3{font-family:'Fraunces',serif;font-weight:600;font-size:16px;margin-bottom:10px}
  .databar .dbtxt{font-size:12.5px;color:var(--ink-soft);max-width:640px;margin-bottom:14px;line-height:1.5}
  .databar .dbbtns{display:flex;flex-wrap:wrap;gap:8px}
  .ghost{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);font-size:13px;font-weight:600;padding:8px 14px;border-radius:9px;cursor:pointer;transition:border .15s;display:inline-block} .ghost:hover{border-color:var(--ink-soft)} .ghost.warn{border-color:#E7C9AD;color:var(--rust)}
  .savenote{position:fixed;bottom:18px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#F3F6F0;padding:9px 18px;border-radius:99px;font-size:13px;font-weight:500;opacity:0;pointer-events:none;transition:all .3s;box-shadow:var(--shadow);z-index:50}
  .savenote.show{opacity:1;transform:translateX(-50%) translateY(0)}
  .loading{text-align:center;padding:60px 20px;color:var(--ink-faint)}
  @media(max-width:720px){.summary{grid-template-columns:1fr 1fr}.cols{grid-template-columns:1fr}.stat .v{font-size:21px}.loaninfo{grid-template-columns:1fr}}
  @media(max-width:520px){
    .explist .exprow{gap:9px}
    .explist .exprow .er-body{min-width:0}
    .explist .exprow .er-top{flex-wrap:wrap;gap:4px 8px}
    .explist .exprow .er-name{flex:1 1 100%}
    .explist .exprow .amedit{width:82px;font-size:13.5px;padding:6px}
    .defbody .item .mn{flex:1 1 100%;min-width:0;margin-top:2px}
    .defbody .item .paybtn{margin-left:auto}
  }
  .remainline{margin-top:9px;padding-top:9px;border-top:1px dashed var(--line);font-size:13.5px;color:var(--ink)} .remainline .rsub{color:var(--ink-faint);font-size:12px}

/* ============================================================
   KIERUNEK A — „Indigo Hero" (dopisany na końcu, wygrywa remisy)
   ============================================================ */
:root{
  --paper:#F4F5FB; --panel:#FFFFFF; --panel-2:#F1F1FA; --ink:#171634;
  --ink-soft:#5B5B73; --ink-faint:#9A9AB0; --line:#ECEDF4; --line-soft:#F3F3FA;
  --gold:#7C6CF6; --green:#12B886; --rust:#F5637E;
  --indigo:#5B4BE6; --indigo-d:#3A2FB5; --violet:#7C6CF6; --violet-soft:#ECEAFE;
  --shadow:0 1px 2px rgba(23,22,52,.04),0 12px 30px -16px rgba(23,22,52,.16);
  --shadow-lg:0 20px 50px -22px rgba(58,47,181,.5);
  --r:16px; --rs:12px;
}
body{background:var(--paper);padding:0;color:var(--ink);font-family:'Inter',system-ui,sans-serif}
#app{max-width:1240px;margin:0 auto}
h1,h2,h3,.brand h1,.hbal,.gatelogo{font-family:'Sora','Inter',sans-serif;letter-spacing:-.01em}
.loading{padding:80px 20px;text-align:center;color:var(--ink-faint)}

/* Layout */
.layout{display:grid;grid-template-columns:232px 1fr;gap:22px;padding:22px 22px 64px;align-items:start}
.content{min-width:0;position:relative}

/* Sidebar */
.side{position:sticky;top:22px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px 13px}
.sbrand{display:flex;align-items:center;gap:10px;padding:4px 8px 16px}
.sbrand .smk{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--indigo),#8B7CF6);display:flex;align-items:center;justify-content:center}
.sbrand b{font-family:'Sora';font-weight:700;font-size:17px}
.snavlbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);font-weight:600;padding:4px 12px 6px}
.snavgrp{display:flex;flex-direction:column;gap:3px}
.snav{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;color:var(--ink-soft);font-size:14px;font-weight:500;background:none;border:none;cursor:pointer;text-align:left;width:100%;font-family:inherit;transition:.15s}
.snav svg{width:19px;height:19px;opacity:.72;flex:0 0 auto}
.snav:hover{background:var(--paper)}
.snav.on{background:var(--ink);color:#fff}
.snav.on svg{opacity:1}
.snavsep{height:1px;background:var(--line);margin:12px 8px}

/* Topbar */
.topbar{display:flex;align-items:center;gap:14px;margin-bottom:18px;min-height:44px}
.tbsp{flex:1}
.tbell{position:relative;width:44px;height:44px;border-radius:13px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink-soft);cursor:pointer;display:flex;align-items:center;justify-content:center}
.tbell svg{width:21px;height:21px}
.tbell:hover{border-color:var(--violet);color:var(--violet)}
.tbell.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.belldot{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--rust);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--paper);font-family:'Spline Sans Mono',monospace}
.monthnav{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}

/* Bell panel */
.bellback{position:fixed;inset:0;z-index:60}
.bellpanel{position:absolute;right:0;top:66px;z-index:61;width:min(430px,calc(100% - 44px));max-height:74vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);padding:16px}
.bellhd{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.bellhd h3{font-size:16px;font-weight:600}
.bellx{background:none;border:none;color:var(--ink-faint);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:8px}
.bellx:hover{background:var(--paper)}
.bellbody .card{box-shadow:none;border-color:var(--line);margin-bottom:12px}
.bellbody .card:last-child{margin-bottom:0}
.bellempty{padding:34px 16px;text-align:center;color:var(--ink-faint);font-size:14px}

/* HERO */
.hero{position:relative;overflow:hidden;background:linear-gradient(145deg,#2A2170 0%,#3A2FB5 50%,#5B4BE6 100%);color:#fff;border-radius:22px;padding:26px 28px 24px;box-shadow:var(--shadow-lg);margin-bottom:20px}
.hero::after{content:"";position:absolute;right:-60px;top:-70px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(139,124,246,.5),transparent 66%)}
.hero::before{content:"";position:absolute;right:130px;bottom:-90px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(18,184,134,.24),transparent 66%)}
.hgrid{position:relative;display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:center}
.htag{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.62);font-weight:600}
.hbal{font-family:'Sora';font-weight:700;font-size:44px;line-height:1;margin:10px 0 8px}
.hbal.neg{color:#FF8C7B}
.hbadge{display:inline-block;font-size:12.5px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);padding:6px 12px;border-radius:11px;color:rgba(255,255,255,.9)}
.hbadge.soft{color:rgba(255,255,255,.66)}
.hbadge b{color:#8FE9D2}.hbadge.neg b{color:#FF8C7B}
.hsplit{display:flex;margin-top:20px;border-top:1px solid rgba(255,255,255,.14);padding-top:15px}
.hs{flex:1;padding:0 16px}.hs:first-child{padding-left:0}.hs+.hs{border-left:1px solid rgba(255,255,255,.14)}
.hs .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.6);font-weight:600}
.hs .v{font-family:'Sora';font-weight:600;font-size:17px;margin-top:4px}
.hspark{position:relative}
.hsparkbars{display:flex;align-items:flex-end;gap:6px;height:92px}
.hsparkbars .hb{flex:1;border-radius:5px 5px 3px 3px;background:rgba(255,255,255,.2);min-height:8px}
.hsparkbars .hb.acc{background:linear-gradient(180deg,#9BE7D3,#16C6A4)}

/* Cards / controls polish */
.card{box-shadow:var(--shadow);border-radius:var(--r)}
.btn{background:var(--indigo-d);border-radius:var(--rs);box-shadow:0 8px 20px -10px rgba(58,47,181,.7);padding:10px 17px}
.btn:hover{filter:brightness(1.08);opacity:1}
input:focus,select:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(124,108,246,.16)}
.tabgrp,.tabdiv,.tabs,.headtools,header,.icobtn{display:none}
.ctxchip{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}

/* Mobile: sidebar → poziomy pasek u góry (pełna dolna nawigacja w etapie 3) */
/* Dolna nawigacja mobilna (kierunek A) */
.bottomnav{display:none}
.navsheet{display:none}
@media(max-width:860px){
  .layout{grid-template-columns:1fr;gap:16px;padding:16px 14px 94px}
  .side{display:none}
  .hgrid{grid-template-columns:1fr}
  .hspark{display:none}
  .hbal{font-size:37px}
  .bellpanel{right:14px;left:14px;width:auto;top:60px}
  .bottomnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--panel);border-top:1px solid var(--line);padding:8px 6px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -10px 28px -16px rgba(23,22,52,.4);justify-content:space-around}
  .bni{flex:1;background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-faint);font-size:10px;font-weight:600;cursor:pointer;padding:4px 2px;border-radius:11px;font-family:inherit}
  .bni svg{width:23px;height:23px;stroke-width:1.7}
  .bni.on{color:var(--violet)}
  .navsheet{display:block;position:fixed;inset:0;z-index:90}
  .nsback{position:absolute;inset:0;background:rgba(23,22,52,.42)}
  .nspanel{position:absolute;left:0;right:0;bottom:0;background:var(--panel);border-radius:22px 22px 0 0;padding:18px 16px calc(20px + env(safe-area-inset-bottom));box-shadow:var(--shadow-lg)}
  .nshead{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}
  .nshead h3{font-family:'Sora';font-weight:600;font-size:17px}
  .nsclose{background:none;border:none;font-size:23px;color:var(--ink-faint);cursor:pointer;line-height:1}
  .nsgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
  .nsi{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:15px 8px;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ink-soft);font-size:11.5px;font-weight:600;cursor:pointer;font-family:inherit;text-align:center}
  .nsi svg{width:22px;height:22px;stroke-width:1.7}
  .nsi.on{background:var(--ink);color:#fff;border-color:var(--ink)}
}

/* Karty z wykresami (Przegląd, etap 2) */
.chartrow{display:grid;grid-template-columns:1.15fr 1fr;gap:20px;margin-bottom:20px}
.chartcard{padding:20px}
.chartcard .head{margin-bottom:12px}
.chartcard .head h3{font-family:'Sora';font-weight:600;font-size:15px}
.donutwrap{display:flex;justify-content:center;margin:6px 0 14px}
.donutbox{position:relative;width:172px;height:172px}
.dctr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.dctr .k{font-size:10.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em}
.dctr .v{font-family:'Sora';font-weight:700;font-size:19px;margin-top:2px}
.dlegend{display:flex;flex-direction:column;gap:2px}
.drow{display:flex;align-items:center;gap:10px;font-size:13px;padding:7px 9px;border-radius:10px;cursor:pointer;transition:.12s}
.drow:hover{background:var(--paper)}
.drow .dot{width:9px;height:9px;border-radius:3px;flex:0 0 auto}
.drow .nm{color:var(--ink-soft);font-weight:500}
.drow .pct{color:var(--ink-faint);font-size:11.5px;margin-left:2px}
.drow .am{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums}
.linewrap{height:172px;position:relative}
.linelegend{display:flex;gap:16px;margin-top:12px;font-size:12px;color:var(--ink-soft)}
.linelegend span{display:flex;align-items:center;gap:6px}
.linelegend i{width:14px;height:3px;border-radius:2px;display:inline-block}
@media(max-width:860px){.chartrow{grid-template-columns:1fr}.donutbox{width:158px;height:158px}}

/* ===== Przegląd v2 (przebudowa etap 2) ===== */
.ovdonutcard,.ovlinecard{padding:22px 24px;margin-bottom:20px}
.ovdhead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:6px;flex-wrap:wrap}
.ovdhead h3{font-family:'Sora';font-weight:600;font-size:16px}
.donutbig{display:grid;grid-template-columns:1fr 300px;gap:28px;align-items:center;margin-top:8px}
.dlegend2{display:flex;flex-direction:column;gap:2px}
.dlegend2 .drow{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;cursor:pointer;transition:.12s;border-top:1px solid var(--line-soft)}
.dlegend2 .drow:first-child{border-top:none}
.dlegend2 .drow:hover{background:var(--paper)}
.dlegend2 .dot{width:11px;height:11px;border-radius:4px}
.dlegend2 .nm{font-size:14.5px;font-weight:500;color:var(--ink)}
.dlegend2 .pct{font-size:14px;font-weight:600;color:var(--ink-soft);text-align:right;min-width:44px}
.dlegend2 .am{font-size:13px;font-weight:600;color:var(--violet);opacity:0;transform:translateX(-4px);transition:.14s;min-width:88px;text-align:right}
.dlegend2 .drow:hover .am{opacity:1;transform:none}
.donutbox.big{width:300px;height:300px;margin:0 auto}
.donutbox.big .dctr .v{font-size:26px}
.donutbox.big .dctr .k{font-size:11px}
.linewrap.wide{height:220px;position:relative}
.ovlinecard .linelegend{margin:0}

/* Karty rzutów */
.ovcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:16px;margin-bottom:20px}
.ovcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px 18px 16px;display:flex;flex-direction:column}
.ovc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.ovc-ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center}
.ovc-ic svg{width:20px;height:20px}
.ovc-go{width:30px;height:30px;border-radius:9px;border:1px solid var(--line);background:none;color:var(--ink-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.14s}
.ovc-go svg{width:15px;height:15px}
.ovc-go:hover{border-color:var(--violet);color:var(--violet);background:var(--violet-soft)}
.ovc-k{font-size:12.5px;color:var(--ink-faint);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.ovc-v{font-family:'Sora';font-weight:700;font-size:25px;letter-spacing:-.01em;margin-top:6px;color:var(--ink)}
.ovc-v.neg{color:var(--rust)}
.ovc-sub{font-size:12px;color:var(--ink-soft);margin-top:6px;line-height:1.4}
.ovc-bar{height:7px;background:var(--paper);border-radius:99px;overflow:hidden;margin-top:12px}
.ovc-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--indigo),var(--violet));border-radius:99px}
@media(max-width:860px){
  .donutbig{grid-template-columns:1fr;gap:16px}
  .donutbox.big{width:240px;height:240px;order:-1}
  .ovcards{grid-template-columns:1fr 1fr;gap:12px}
  .ovc-v{font-size:21px}
  .dlegend2 .am{opacity:1;transform:none}
}
@media(max-width:520px){.ovcards{grid-template-columns:1fr}}

/* Widget statusu (przy dzwonku) */
.tstatus{position:relative;width:44px;height:44px;border-radius:13px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer;display:flex;align-items:center;justify-content:center}
.tstatus:hover{border-color:var(--violet)}
.sdot{width:11px;height:11px;border-radius:50%}
.tstatus.ok .sdot{background:var(--green);animation:pulseok 2s ease-in-out infinite}
.tstatus.warn .sdot{background:#F5A524}
.tstatus.bad .sdot{background:var(--rust)}
@keyframes pulseok{0%{box-shadow:0 0 0 0 rgba(18,184,134,.5)}70%{box-shadow:0 0 0 7px rgba(18,184,134,0)}100%{box-shadow:0 0 0 0 rgba(18,184,134,0)}}
.statusback{position:fixed;inset:0;z-index:60}
.statuspop{position:absolute;right:0;top:66px;z-index:61;width:min(340px,calc(100% - 28px));background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);padding:15px 16px}
.statuspophd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:14px}
.statuspopbody{font-size:13px;color:var(--ink-soft);line-height:1.55}
.statuspopbody .fchipname{font-weight:600;color:var(--ink)}
.statuspopbody .statusbtn{margin-top:10px;display:inline-block;background:var(--violet-soft);color:var(--indigo-d);border:1px solid var(--line);border-radius:9px;padding:7px 12px;font-size:12.5px;font-weight:600;cursor:pointer}
.statuspopbody .savets{margin-top:8px;color:var(--ink-faint);font-size:11.5px}

/* Dymek donuta (nad środkową sumą) */
.donuttip{position:absolute;z-index:5;pointer-events:none;opacity:0;transform:translate(-50%,-130%);background:var(--ink);color:#fff;border-radius:10px;padding:7px 11px;font-size:12.5px;white-space:nowrap;transition:opacity .12s;box-shadow:0 8px 22px -8px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:1px;align-items:center}
.donuttip .tt-nm{font-weight:500;font-size:11.5px;color:rgba(255,255,255,.75)}
.donuttip .tt-am{font-weight:700;font-family:'Spline Sans Mono',monospace}

/* Hero: rozbicie stałych zapłacone/do zapłaty */
.hfixed{margin-top:13px;font-size:12.5px;color:rgba(255,255,255,.72)}
.hfixed b{color:#fff;font-weight:600}

/* Stałe: status zapłaty */
.fixitem{flex-wrap:wrap}
.fixpay{display:flex;align-items:center;gap:7px;margin-left:auto}
.methmini{font-size:12px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--ink-soft);max-width:120px}
.paybtn.sm{padding:7px 12px;font-size:12.5px}
.paybtn.sm.done{background:var(--panel);color:var(--green);border:1px solid var(--green)}
.fixitem.ispaid{box-shadow:inset 3px 0 0 var(--green);border-radius:8px}
.fixitem.ispaid .amedit{color:var(--ink)}
.fxsplit{font-size:12px;font-weight:500;color:var(--ink-faint);margin-left:8px}
.fxsplit b{font-weight:600}.fxsplit b.pos{color:var(--green)}.fxsplit b.neg{color:var(--rust)}
@media(max-width:620px){.fixpay{width:100%;margin-left:0;margin-top:8px;justify-content:flex-start}.methmini{max-width:none;flex:1}}

/* ===== Wydatki v2 (przebudowa etap 2) ===== */
.expmain{padding:22px 24px}
.exptop{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.exptop h3{font-family:'Sora';font-weight:600;font-size:17px}
.exptotal{text-align:right;line-height:1.15}
.exptotal .k{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:600}
.exptotal .v{font-family:'Sora';font-weight:700;font-size:23px;letter-spacing:-.01em}

/* Karta dodawania */
.addcard{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;padding:13px 15px 15px;margin-bottom:16px}
.addcard-h{font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:11px;display:flex;align-items:center;gap:9px}
.addplus{width:21px;height:21px;border-radius:7px;background:var(--indigo-d);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1}
.add.addtop{border:none!important;padding:0!important;margin:0!important;background:none!important}

/* Filtry — pigułki */
.filterwrap{display:flex;flex-direction:column;gap:9px;margin-bottom:15px}
.filterbar{display:flex;flex-wrap:wrap;gap:7px}
.fchip{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:500;color:var(--ink-soft);cursor:pointer;font-family:inherit;transition:.13s}
.fchip:hover{border-color:var(--violet);color:var(--ink)}
.fchip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.fchip .fdot{width:8px;height:8px;border-radius:3px}
.fchip svg{width:15px;height:15px}

/* Separatory dni + wiersze */
.daysep{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:700;padding:16px 0 8px;margin-bottom:2px;border-top:1px solid var(--line-soft)}
.explist .daysep:first-child,.daysep.first{border-top:none;padding-top:2px}
.explist .item{gap:12px;padding:11px 2px}
.explist .methcell{width:40px;height:32px;border-radius:9px;border:1px solid var(--line);background:var(--panel-2);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:.13s}
.explist .methcell:hover{border-color:var(--violet)}
.explist .amedit{font-family:'Spline Sans Mono',monospace;font-weight:600;font-size:15px}
.explist .del{opacity:.4;transition:.13s}.explist .item:hover .del{opacity:1}

/* Karta podsumowania „na co poszło" */
.sumcard{margin-top:16px;padding:20px 22px}
.sumcard .head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.sumcard .head h3{font-family:'Sora';font-weight:600;font-size:15px}
.sumcard .head .mut{font-size:12.5px;color:var(--ink-faint);font-variant-numeric:tabular-nums}
.sumcard .barrow{padding:7px 0}
.sumcard .track{height:8px;border-radius:99px;background:var(--panel-2)}
.sumcard .track i{border-radius:99px}
.sumcard .barrow .cdot{width:9px;height:9px;border-radius:3px}

/* Sekcja „na kredyt" + ściąga */
.defsection{padding:0;overflow:hidden}
.defhead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 22px;cursor:pointer}
.defhead h3{font-family:'Sora';font-weight:600;font-size:15.5px}
.defhead .chev{color:var(--ink-faint);font-size:13px;margin-top:3px}
.defbody{padding:0 22px 20px}
.subhd{font-family:'Sora';font-weight:600;font-size:13.5px;color:var(--ink);display:flex;align-items:center;justify-content:space-between;margin:6px 0 9px;padding-top:4px}
.subhd .num{color:var(--ink-soft);font-weight:600}
.defsection .paybtn{border-radius:9px}
.legendbox .legrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line-soft)}
.legendbox .legrow:first-child{border-top:none}
.legendbox .legname{min-width:104px;font-size:13.5px;font-weight:500}
.legendbox .legex{flex:1;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:7px 11px;font-size:12.5px}

/* Legenda przepływu: znacznik przerywany + dopisek */
.linelegend i.ldash{background:repeating-linear-gradient(90deg,#12B886 0 5px,transparent 5px 9px)!important;height:3px;border-radius:0}
.linelegend .lred{color:var(--rust);font-weight:600;font-size:11px;white-space:nowrap}
.linelegend span{flex-wrap:wrap}

/* ===== Wydatki v3 — wiersz 2-linie, rail filtrów, donut, karta dodawania ===== */
.addplus{width:22px;height:22px;border-radius:7px;background:var(--indigo-d);color:#fff;display:flex;align-items:center;justify-content:center}
.addplus svg{width:14px;height:14px;display:block}
.add.addtop{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
.add.addtop input,.add.addtop select,.add.addtop .methpickbtn{border:1px solid #CFC7FA;border-radius:10px;background:var(--panel)}
.add.addtop input:focus,.add.addtop select:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(124,108,246,.15)}
.add.addtop #expNote{flex:2 1 150px}
.add.addtop #expComment{flex:1 1 130px}
.add.addtop #addExp{margin-left:auto}

.explist .exprow{display:flex;align-items:center;gap:13px;padding:12px 2px;border-top:1px solid var(--line-soft)}
.explist .daysep + .exprow{border-top:none}
.er-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.er-top{display:flex;align-items:center;gap:10px;min-width:0}
.er-name,.er-top .nmedit{font-weight:600;font-size:14.5px;color:var(--ink);border:1px solid transparent;background:none;border-radius:7px;padding:3px 7px;margin-left:-7px;flex:0 1 auto;min-width:60px;font-family:inherit}
.er-top .er-cmt{flex:1 1 auto;min-width:0;font-size:12.5px;color:var(--ink-soft);border:1px solid transparent;background:none;border-radius:7px;padding:3px 7px;font-family:inherit}
.er-top .nmedit:hover,.er-top .er-cmt:hover,.er-top .nmedit:focus,.er-top .er-cmt:focus{border-color:var(--line);background:var(--panel-2);outline:none}
.er-sub{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.catsel.mini{font-size:11px;padding:4px 9px;border-radius:8px;border:none;font-weight:600;color:#fff;font-family:inherit;cursor:pointer}
.er-sub .dateedit{font-size:11px;color:var(--ink-faint);border:1px solid transparent;background:none;padding:2px 4px;border-radius:6px;font-family:'Spline Sans Mono',monospace}
.er-sub .dateedit:hover{border-color:var(--line)}
.er-meth{font-size:11px;color:var(--ink-faint)}
.catpill.mini{font-size:11px;font-weight:600;color:#fff;padding:3px 10px;border-radius:99px}
.exprow .amedit{width:106px;text-align:right;font-family:'Spline Sans Mono',monospace;font-weight:600;font-size:15px;border:1px solid transparent;background:none;border-radius:8px;padding:6px 8px}
.exprow .amedit:hover,.exprow .amedit:focus{border-color:var(--line);background:var(--panel-2);outline:none}
.exprow .del{opacity:.35;transition:.13s}.exprow:hover .del{opacity:1}
.exprow .methmini{width:34px;height:34px;border-radius:9px;background:var(--panel-2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;flex:0 0 auto}

/* Dwie kolumny: treść + pływający rail filtrów */
.expgrid{display:grid;grid-template-columns:minmax(0,1fr) 238px;gap:20px;align-items:start}
.expcol{min-width:0}
.railwrap{position:sticky;top:22px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px}
.rail-h{font-family:'Sora';font-weight:600;font-size:13px;color:var(--ink);margin-bottom:13px}
.rail-sec{margin-bottom:16px}.rail-sec:last-child{margin-bottom:0}
.rail-lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:600;margin-bottom:8px}
.exprail .filterbar{flex-direction:column;gap:6px;align-items:stretch}
.exprail .fchip{justify-content:flex-start;width:100%}
.exprail .methbar .fchip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail-empty{font-size:12px;color:var(--ink-faint)}
@media(max-width:900px){
  .expgrid{grid-template-columns:1fr}
  .exprail{order:-1}
  .railwrap{position:static;padding:12px 14px}
  .rail-h{display:none}
  .rail-sec{margin-bottom:10px}
  .exprail .filterbar{flex-direction:row;flex-wrap:wrap}
  .exprail .fchip{width:auto}
}

/* ===== Wydatki v4 — pełna szerokość, filtry w menu, wyciszona kategoria ===== */
/* Filtry przeniesione pod lewe menu */
.sidefilters{padding:2px 2px 4px}
.sf-sec{margin-bottom:12px}
.sf-lbl{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:600;margin:0 8px 7px}
.sfbar{display:flex;flex-wrap:wrap;gap:5px;padding:0 4px}
.sfbar .fchip{font-size:11px;padding:5px 9px;gap:5px}
.sfbar .fchip svg{width:13px;height:13px}
.sfbar .fchip .fdot{width:7px;height:7px}

/* Kategoria w wierszu — wyciszona: kropka + stonowany select */
.er-cat{display:inline-flex;align-items:center;gap:6px;min-width:0}
.er-catdot{width:8px;height:8px;border-radius:3px;flex:0 0 auto}
.catsel.plain{border:1px solid transparent;background:none;color:var(--ink-faint);font-size:11.5px;font-weight:500;padding:2px 4px;border-radius:6px;font-family:inherit;cursor:pointer;max-width:140px}
.catsel.plain:hover,.catsel.plain:focus{border-color:var(--line);color:var(--ink-soft);outline:none}

/* Pasek aktywnego filtra w treści */
.activefilter{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-soft);background:var(--violet-soft);border:1px solid #E0DBFB;border-radius:10px;padding:8px 13px;margin-bottom:14px}
.activefilter b{color:var(--indigo-d)}
.clrfilter{margin-left:auto;background:none;border:none;color:var(--indigo-d);font-weight:600;font-size:12px;cursor:pointer;text-decoration:underline}

/* Wydatki pełna szerokość (rail wyłączony) */
.expgrid{display:block}
.exprail{display:none}
