:root{--bg:#f4f6f8;--card:#fff;--text:#17202a;--muted:#6b7280;--line:#e5e7eb;--accent:#2563eb;--green:#16a34a;--red:#dc2626;--shadow:0 8px 30px rgba(15,23,42,.08);--radius:18px }html[data-theme=dark]{--bg:#0b1120;--card:#172033;--text:#f8fafc;--muted:#a8b4c7;--line:#334155;--accent:#60a5fa;--green:#4ade80;--red:#f87171;--shadow:0 10px 35px rgba(0,0,0,.35);color-scheme:dark}html[data-theme=dark] body{background:radial-gradient(circle at top,#18243a,#0b1120 45%,#080d18);color:var(--text)}html[data-theme=dark] .card,html[data-theme=dark] .modal-card,html[data-theme=dark] .auth-card{background:#172033;color:var(--text);border-color:#334155;box-shadow:var(--shadow)}html[data-theme=dark] .topbar{background:#080d18;border-bottom:1px solid #263247}html[data-theme=dark] .status{color:#a8b4c7}html[data-theme=dark] .secondary,html[data-theme=dark] .iconbtn,html[data-theme=dark] .month-nav,html[data-theme=dark] .close{background:#202c40;color:#f8fafc;border-color:#40506a}html[data-theme=dark] .secondary:hover,html[data-theme=dark] .iconbtn:hover,html[data-theme=dark] .month-nav:hover{background:#2b3950;border-color:#64748b;color:#fff}html[data-theme=dark] .primary{background:#3b82f6;color:#fff}html[data-theme=dark] .primary:hover{background:#60a5fa;color:#07111f}html[data-theme=dark] .field input,html[data-theme=dark] .field select{background:#0f172a;color:#f8fafc;border-color:#40506a}html[data-theme=dark] .field input::placeholder{color:#64748b}html[data-theme=dark] .field input:focus,html[data-theme=dark] .field select:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa24}html[data-theme=dark] select option{background:#0f172a;color:#f8fafc}html[data-theme=dark] .budget-filters{background:linear-gradient(135deg,#172033,#1b2940);border-color:#334155;box-shadow:0 5px 20px #00000038}html[data-theme=dark] .filter-group{background:#202c40;border-color:#3b4b63}html[data-theme=dark] .filter-group label{color:#cbd5e1}html[data-theme=dark] .filter-count{background:#202c40;color:#dbeafe;border-color:#3b4b63}html[data-theme=dark] .table th{color:#94a3b8}html[data-theme=dark] .table td{color:#e5e7eb;border-color:#334155}html[data-theme=dark] .table tbody tr.owner-common{background:#3b82f61c}html[data-theme=dark] .table tbody tr.owner-common:hover{background:#3b82f630}html[data-theme=dark] .table tbody tr.owner-silje{background:#f871711c}html[data-theme=dark] .table tbody tr.owner-silje:hover{background:#f8717130}html[data-theme=dark] .table tbody tr.owner-kalle{background:#fbbf241f}html[data-theme=dark] .table tbody tr.owner-kalle:hover{background:#fbbf2433}html[data-theme=dark] .table tbody tr.owner-member-1{background:#fbbf241f}html[data-theme=dark] .table tbody tr.owner-member-1:hover{background:#fbbf2433}html[data-theme=dark] .table tbody tr.owner-member-2{background:#f871711c}html[data-theme=dark] .table tbody tr.owner-member-2:hover{background:#f8717130}html[data-theme=dark] .table tbody tr.owner-member-3{background:#a78bfa1f}html[data-theme=dark] .table tbody tr.owner-member-3:hover{background:#a78bfa33}html[data-theme=dark] .table tbody tr.owner-member-4{background:#4ade801c}html[data-theme=dark] .table tbody tr.owner-member-4:hover{background:#4ade8030}html[data-theme=dark] .table tbody tr.owner-member-5{background:#22d3ee1c}html[data-theme=dark] .table tbody tr.owner-member-5:hover{background:#22d3ee30}html[data-theme=dark] .table tbody tr.owner-member-6{background:#f472b61c}html[data-theme=dark] .table tbody tr.owner-member-6:hover{background:#f472b630}html[data-theme=dark] .table tbody tr.row-income{background:#4ade801c;box-shadow:inset 4px 0 #4ade80bf}html[data-theme=dark] .table tbody tr.row-income:hover{background:#4ade8030}html[data-theme=dark] .table tbody tr.row-expense{box-shadow:inset 4px 0 #f8717199}html[data-theme=dark] .table tbody tr.row-income td:nth-child(2){color:#86efac}html[data-theme=dark] .table tbody tr.row-expense td:nth-child(2){color:#fca5a5}html[data-theme=dark] .table tbody tr td:last-child{background:#ffffff06}html[data-theme=dark] .table tbody tr:hover{box-shadow:inset 5px 0 #ffffff40,0 5px 16px #00000040}html[data-theme=dark] .recurring-badge{color:#93c5fd;background:#172554;border:1px solid #1e40af;box-shadow:0 2px 5px #0003}html[data-theme=dark] .bar{background:#334155}html[data-theme=dark] .donut:after{background:#172033}html[data-theme=dark] .modal{background:#020617c7}html[data-theme=dark] .close{background:#29364b;color:#f8fafc}html[data-theme=dark] .close:hover{background:#3b4b63}html[data-theme=dark] .auth{background:radial-gradient(circle at top,#18243a,#0b1120 70%)}html[data-theme=dark] .auth-card h1{color:#f8fafc}html[data-theme=dark] .auth-card p{color:#a8b4c7}html[data-theme=dark] .msg.error{background:#3a171b;color:#fecaca;border:1px solid #7f1d1d}html[data-theme=dark] .msg.ok{background:#10281a;color:#bbf7d0;border:1px solid #166534}html[data-theme=dark] .muted,html[data-theme=dark] .label,html[data-theme=dark] .footer,html[data-theme=dark] .adhd-tip{color:#a8b4c7}html[data-theme=dark] .positive{color:#4ade80}html[data-theme=dark] .negative{color:#f87171}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.topbar{height:68px;background:#111827;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:4}.brand{font-size:21px;font-weight:800}.brand span{color:#60a5fa}.userbar{display:flex;gap:10px;align-items:center}.status{font-size:12px;color:#cbd5e1}.container{max-width:1450px;margin:auto;padding:26px}.toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}.toolbar h1{margin:0;font-size:29px}.subtitle{color:var(--muted);margin-top:4px}.actions{display:flex;gap:9px;flex-wrap:wrap}.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:700}.primary{background:var(--accent);color:#fff}.secondary{background:#fff;border:1px solid var(--line)}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:19px}.label{font-size:13px;color:var(--muted)}.value{font-size:27px;font-weight:800;margin:7px 0}.positive{color:var(--green)}.negative{color:var(--red)}.layout{display:grid;grid-template-columns:1.25fr .75fr;gap:15px;margin-top:15px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.section-head h2{font-size:18px;margin:0}.bar{height:11px;background:#e5e7eb;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;border-radius:99px}.income{background:#0ea5e9}.expense{background:#ef4444}.row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.muted{color:var(--muted);font-size:13px}.amount{font-weight:750}.donut{width:215px;height:215px;border-radius:50%;margin:5px auto 14px;position:relative}.donut:after{content:"";position:absolute;inset:48px;background:#fff;border-radius:50%}.legend div{display:flex;justify-content:space-between;padding:7px 0}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:7px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px 9px;border-bottom:1px solid var(--line);white-space:nowrap}.table th{font-size:12px;color:var(--muted);text-transform:uppercase}.table td:last-child,.table th:last-child{text-align:right}.iconbtn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 9px;margin-left:5px}.budget-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding:12px;background:#f8fafc;border:1px solid var(--line);border-radius:12px}.filter-group{display:flex;align-items:center;gap:7px}.filter-group label{font-size:12px;font-weight:700;color:var(--muted)}.table tbody tr{transition:background-color .15s ease,box-shadow .15s ease}.table tbody tr.owner-common{background:#2563eb12}.table tbody tr.owner-common:hover{background:#2563eb21}.table tbody tr.owner-silje{background:#ef444412}.table tbody tr.owner-silje:hover{background:#ef444421}.table tbody tr.owner-kalle{background:#f59e0b17}.table tbody tr.owner-kalle:hover{background:#f59e0b26}.table tbody tr.owner-member-1{background:#f59e0b17}.table tbody tr.owner-member-1:hover{background:#f59e0b26}.table tbody tr.owner-member-2{background:#ef444412}.table tbody tr.owner-member-2:hover{background:#ef444421}.table tbody tr.owner-member-3{background:#8b5cf614}.table tbody tr.owner-member-3:hover{background:#8b5cf624}.table tbody tr.owner-member-4{background:#16a34a12}.table tbody tr.owner-member-4:hover{background:#16a34a21}.table tbody tr.owner-member-5{background:#0891b212}.table tbody tr.owner-member-5:hover{background:#0891b221}.table tbody tr.owner-member-6{background:#db277712}.table tbody tr.owner-member-6:hover{background:#db277721}.table tbody tr.row-income{background:#16a34a14;box-shadow:inset 4px 0 #16a34a8c}.table tbody tr.row-income:hover{background:#16a34a24}.table tbody tr.row-expense{box-shadow:inset 4px 0 #dc26264d}.table tbody tr.owner-common td:first-child,.table tbody tr.owner-silje td:first-child,.table tbody tr.owner-kalle td:first-child,.table tbody tr[class*=owner-member-] td:first-child{font-weight:700}.filter-count{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}.monthbar{display:flex;gap:5px;align-items:center}.month-nav{width:38px;height:40px;border:1px solid var(--line);background:#fff;border-radius:9px;font-size:20px;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;transition:.15s}.month-nav:hover{background:#f3f4f6;border-color:#d1d5db}.modal{position:fixed;inset:0;background:#0f172a8c;display:none;align-items:center;justify-content:center;padding:18px;z-index:10}.modal.open{display:flex}.modal-card{width:min(590px,100%);background:#fff;border-radius:18px;padding:23px;box-shadow:0 25px 80px #00000040}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.close{border:0;background:#f3f4f6;border-radius:8px;padding:7px 10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.field input,.field select{width:100%;padding:10px;border:1px solid #d1d5db;border-radius:9px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.auth{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#eef2ff,#f8fafc)}.auth-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:30px}.auth-card h1{margin-top:0}.auth-card p{color:var(--muted)}.auth-card .field{margin:13px 0}.full{width:100%}.msg{border-radius:9px;padding:10px;font-size:13px;margin:10px 0}.error{background:#fef2f2;color:#991b1b}.ok{background:#f0fdf4;color:#166534}.empty{padding:25px;text-align:center;color:var(--muted)}.footer{font-size:12px;color:var(--muted);margin-top:20px}.setup{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.recurring-badge{display:inline-block;font-size:11px;font-weight:700;color:#2563eb;background:#eff6ff;padding:3px 7px;border-radius:999px;margin-left:6px}html[data-theme=light]{color-scheme:light;--bg:#e4e9f0;--line:#d3dbe5;--muted:#5b6575}body{background:linear-gradient(180deg,#e7ecf2,#dce3eb);background-attachment:fixed}html[data-theme=light] .card,html[data-theme=light] .settings-card,html[data-theme=light] .more-stats>summary{background:#fbfcfd;border-color:#d3dbe5;box-shadow:0 2px 10px #0f172a0f}html[data-theme=dark] body{background:radial-gradient(circle at top,#18243a,#0b1120 45%,#080d18)}.card{transition:transform .18s ease,box-shadow .18s ease}.card:hover{transform:translateY(-2px);box-shadow:0 12px 35px #0f172a1c}.grid .card:nth-child(1){border-top:4px solid #0ea5e9}.grid .card:nth-child(2){border-top:4px solid #2563eb}.grid .card:nth-child(3){border-top:4px solid #f59e0b}.grid .card:nth-child(4){border-top:4px solid #16a34a}.toolbar h1{letter-spacing:-.5px}.actions .btn{transition:transform .15s ease,box-shadow .15s ease}.actions .btn:hover{transform:translateY(-1px);box-shadow:0 5px 14px #0f172a1a}.budget-filters{background:linear-gradient(135deg,#f8fafc,#eef2ff);border:1px solid #dbe4f0;box-shadow:0 4px 15px #0f172a0a}.filter-group{background:#fff;padding:6px 8px;border-radius:10px;border:1px solid #e5e7eb}.filter-group label{font-size:13px;color:#475569}.filter-count{background:#fff;padding:7px 10px;border-radius:999px;border:1px solid #e5e7eb;font-weight:700}.table tbody tr{position:relative}.table tbody tr td{padding-top:14px;padding-bottom:14px}.table tbody tr.owner-common td:first-child:before{content:"🏠 "}.table tbody tr.owner-silje td:first-child:before{content:"👩 "}.table tbody tr.owner-kalle td:first-child:before{content:"👨 "}.table tbody tr.row-income td:nth-child(2){color:#15803d;font-weight:800}.table tbody tr.row-income td:nth-child(2):before{content:"💰 "}.table tbody tr.row-expense td:nth-child(2){color:#b91c1c;font-weight:800}.table tbody tr.row-expense td:nth-child(2):before{content:"💸 "}.table tbody tr:hover{transform:scale(1.002);box-shadow:inset 5px 0 #0f172a38,0 4px 12px #0f172a12}.table tbody tr td:last-child{background:#ffffff2e}.iconbtn{transition:transform .12s ease,background .12s ease}.iconbtn:hover{transform:scale(1.08);background:#f8fafc}.recurring-badge{vertical-align:middle;box-shadow:0 1px 3px #2563eb1f}.adhd-tip{margin-top:8px;font-size:12px;color:#64748b}@media(max-width:650px){.filter-group{padding:8px}}@media(max-width:980px){.grid{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:1fr}}@media(max-width:650px){.topbar{padding:0 14px}.container{padding:15px}.grid{grid-template-columns:1fr}.toolbar{display:block}.actions{margin-top:14px}.form-grid{grid-template-columns:1fr}.monthbar{width:100%}.userbar .status{display:none}.budget-filters{align-items:stretch;flex-direction:column}.filter-group{width:100%;justify-content:space-between}.filter-count{margin-left:0}}.income-expense-card{overflow:hidden}.income-expense-visual{display:grid;gap:14px;margin-top:12px}.money-track{display:grid;gap:7px}.money-track-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:800}.money-track-label{display:flex;align-items:center;gap:7px}.money-track-value{font-size:14px;font-weight:850}.money-track-bar{width:100%;height:18px;background:#e2e8f0;border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 3px #0f172a1a}.money-track-bar i{display:block;height:100%;min-width:0;border-radius:999px;transition:width .45s ease}.money-track-bar .income{background:linear-gradient(90deg,#38bdf8,#0ea5e9)}.money-track-bar .expense{background:linear-gradient(90deg,#fb7185,#ef4444)}.budget-meter-note{display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 13px;border-radius:12px;background:#f8fafc;border:1px solid var(--line);font-size:13px;font-weight:750;text-align:center}.budget-meter-note.safe{background:#16a34a17;color:#166534;border-color:#16a34a33}.budget-meter-note.warning{background:#f59e0b1a;color:#92400e;border-color:#f59e0b3d}.budget-meter-note.danger{background:#dc26261a;color:#991b1b;border-color:#dc262638}html[data-theme=dark] .money-track-bar{background:#334155}html[data-theme=dark] .budget-meter-note{background:#0f172a;border-color:#334155;color:#e2e8f0}html[data-theme=dark] .budget-meter-note.safe{background:#22c55e21;color:#86efac;border-color:#22c55e40}html[data-theme=dark] .budget-meter-note.warning{background:#f59e0b21;color:#fcd34d;border-color:#f59e0b45}html[data-theme=dark] .budget-meter-note.danger{background:#ef444421;color:#fca5a5;border-color:#ef444445}.bank-panel{margin-top:15px;padding:20px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.bank-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.bank-panel-head h2{margin:0 0 5px;font-size:18px}.bank-account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bank-account-card{padding:17px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.bank-account-name{font-weight:800;font-size:14px;margin-bottom:7px}.bank-account-balance{font-size:23px;font-weight:850;letter-spacing:-.02em}.bank-account-available{margin-top:5px;font-size:12px;color:var(--muted)}.bank-account-iban{margin-top:13px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);letter-spacing:.03em}.bank-status-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#16a34a1a;color:var(--green)}.bank-empty{grid-column:1 / -1;padding:18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center}@media(max-width:650px){.bank-account-grid{grid-template-columns:1fr}.bank-panel-head{flex-direction:column}}.bank-transaction-list{display:grid}.bank-transaction-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:14px 2px;border-bottom:1px solid var(--line)}.bank-transaction-row:last-child{border-bottom:0}.bank-transaction-title{font-size:14px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-transaction-description{margin-top:3px;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-transaction-meta{margin-top:4px;color:var(--muted);font-size:11px}.bank-transaction-amount{font-size:15px;font-weight:850;white-space:nowrap}.bank-transaction-amount.negative{color:var(--red)}.bank-transaction-amount.positive{color:var(--green)}.bank-transaction-empty{padding:22px;border:1px dashed var(--line);border-radius:12px;text-align:center;color:var(--muted)}.bank-transaction-empty strong{display:block;color:var(--text);margin-bottom:5px}@media(max-width:650px){.bank-transaction-row{gap:10px}.bank-transaction-title{white-space:normal}}.bank-sync-notice{margin-top:9px;padding:8px 11px;border-radius:9px;font-size:12px;font-weight:700;border:1px solid var(--line)}.bank-sync-notice.success{color:var(--green);background:#16a34a17;border-color:#16a34a38}.bank-sync-notice.error{color:var(--red);background:#dc262614;border-color:#dc262638}.bank-sync-notice.working{color:var(--accent);background:#2563eb14;border-color:#2563eb33}.bank-transaction-filter{min-width:170px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--text);font-size:12px;font-weight:700}.bank-transaction-filter:focus{outline:none;border-color:var(--accent)}@media(max-width:650px){.bank-transaction-filter{width:100%}}.bank-panel-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.bank-panel-actions .btn{white-space:nowrap}@media(max-width:650px){.bank-panel-actions{width:100%;justify-content:flex-start}}.bank-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.bank-overview-card{padding:15px 17px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.bank-overview-label{color:var(--muted);font-size:11px;font-weight:700;margin-bottom:5px}.bank-overview-value{font-size:20px;font-weight:850;letter-spacing:-.02em}.bank-overview-meta{color:var(--muted);font-size:11px;margin-top:5px}.bank-consent-good{color:var(--green)}.bank-consent-warning{color:#f59e0b}.bank-consent-expired{color:var(--red)}@media(max-width:650px){.bank-overview{grid-template-columns:1fr}}.bank-transaction-main{min-width:0}.bank-transaction-match{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}.bank-match-field{display:flex;flex-direction:column;gap:5px;min-width:210px}.bank-match-field>span{color:var(--muted);font-size:11px;font-weight:700}.bank-match-select{max-width:310px;min-height:36px;padding:6px 30px 6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font:inherit}.bank-match-select:disabled{opacity:.55;cursor:not-allowed}.bank-ignore-label{display:flex;align-items:center;gap:7px;min-height:36px;font-size:12px;color:var(--muted);cursor:pointer}.bank-ignore-label input{width:16px;height:16px}.bank-match-state{min-height:36px;display:flex;align-items:center;color:var(--muted);font-size:11px;font-weight:700}@media(max-width:650px){.bank-transaction-match{align-items:stretch;flex-direction:column}.bank-match-field,.bank-match-select{width:100%;max-width:none}}.budget-actual-cell{font-weight:800;white-space:nowrap}.budget-remaining-ok{color:var(--green);font-weight:800;white-space:nowrap}.budget-remaining-warning{color:#d97706;font-weight:800;white-space:nowrap}.budget-remaining-over{color:var(--red);font-weight:850;white-space:nowrap}html[data-theme=dark] .budget-remaining-warning{color:#fbbf24}.actual-summary-panel{margin-top:15px;padding:19px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.actual-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:16px}.actual-summary-head h2{margin:0 0 4px;font-size:18px}.actual-summary-month{color:var(--muted);font-size:13px;font-weight:800;white-space:nowrap}.actual-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.actual-summary-card{padding:15px;border:1px solid var(--line);border-radius:12px;background:#94a3b80f}.actual-summary-label{color:var(--muted);font-size:12px;font-weight:800;margin-bottom:7px}.actual-summary-value{font-size:21px;line-height:1.2;font-weight:850}.actual-summary-meta{margin-top:5px;color:var(--muted);font-size:11px}.actual-summary-progress{margin-top:16px}.actual-summary-track{width:100%;height:14px;overflow:hidden;border-radius:999px;background:#94a3b833}.actual-summary-bar{width:0;height:100%;border-radius:999px;background:var(--accent);transition:width .4s ease}.actual-summary-bar.warning{background:#d97706}.actual-summary-bar.over{background:var(--red)}.actual-summary-note{margin-top:8px;color:var(--muted);font-size:12px;font-weight:700}html[data-theme=dark] .actual-summary-card{background:#ffffff06}@media(max-width:900px){.actual-summary-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.actual-summary-grid{grid-template-columns:1fr}.actual-summary-head{flex-direction:column}}.bank-rule-panel{margin-top:15px}.bank-rule-notice{margin:12px 0;padding:10px 12px;border-radius:10px;font-size:12px;font-weight:700;border:1px solid var(--line)}.bank-rule-notice.success{color:var(--green);background:#16a34a14}.bank-rule-notice.error{color:var(--red);background:#dc262614}.bank-rule-notice.working{color:var(--accent);background:#2563eb14}.bank-rule-form{display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(150px,1fr) minmax(190px,1.5fr) 100px auto;gap:10px;align-items:end;margin:15px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#94a3b80f}.bank-rule-field{display:grid;gap:6px}.bank-rule-field label{color:var(--muted);font-size:11px;font-weight:800}.bank-rule-input,.bank-rule-select{width:100%;min-height:38px;box-sizing:border-box;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--text);padding:7px 10px;font:inherit}.bank-rule-input:focus,.bank-rule-select:focus{outline:2px solid rgba(37,99,235,.15);border-color:var(--accent)}.bank-rule-form-actions{display:flex;gap:7px;align-items:center}.bank-rule-list{display:grid;gap:9px;margin-top:12px}.bank-rule-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:#94a3b80a}.bank-rule-main{min-width:0}.bank-rule-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-weight:850}.bank-rule-arrow{color:var(--muted)}.bank-rule-meta{margin-top:5px;color:var(--muted);font-size:11px}.bank-rule-actions{display:flex;align-items:center;gap:8px}.bank-rule-toggle{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.bank-rule-toggle input{cursor:pointer}.bank-rule-delete{border:1px solid var(--line);background:transparent;color:var(--text);border-radius:8px;min-width:34px;height:34px;cursor:pointer}.bank-rule-delete:hover{background:#dc262614}.bank-rule-disabled{opacity:.55}.bank-rule-footnote{margin-top:11px;color:var(--muted);font-size:11px}@media(max-width:1000px){.bank-rule-form{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-rule-form-actions{grid-column:1 / -1}}@media(max-width:650px){.bank-rule-form{grid-template-columns:1fr}.bank-rule-form-actions{grid-column:auto}.bank-rule-row{grid-template-columns:1fr}.bank-rule-actions{justify-content:space-between}}.bank-rule-edit{border:1px solid var(--line);background:transparent;color:var(--text);border-radius:8px;min-width:34px;height:34px;cursor:pointer}.bank-rule-edit:hover{background:#2563eb1a}.app-page-nav{display:flex;align-items:center;gap:7px;width:max-content;max-width:100%;margin-bottom:18px;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:0 2px 8px #0f172a0d}.app-page-tab{border:0;border-radius:9px;padding:10px 15px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer;transition:background .15s ease,color .15s ease,transform .12s ease}.app-page-tab:hover{background:#2563eb12;color:var(--text)}.app-page-tab.active{background:var(--accent);color:#fff;box-shadow:0 2px 7px #2563eb38}#bankRulePanel{display:none}.container.app-rules-view>*:not(.app-page-nav):not(#bankRulePanel){display:none!important}.container.app-rules-view>#bankRulePanel{display:block!important;margin-top:0}.container.app-rules-view .bank-rule-panel{min-height:260px}#settingsPanel{display:none}.container.app-settings-view>*:not(.app-page-nav):not(#settingsPanel){display:none!important}.container.app-settings-view>#settingsPanel{display:block!important;margin-top:0}.settings-card{max-width:680px;padding:20px;margin-bottom:16px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.settings-info-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:11px 0;border-top:1px solid var(--line)}.settings-info-row:first-of-type{border-top:0}.settings-info-label{min-width:110px;color:var(--muted);font-size:13px}.settings-info-value{min-width:0;text-align:right;overflow-wrap:anywhere}.settings-support-link{color:var(--accent);font-weight:700;text-decoration:none}.settings-support-link:hover{text-decoration:underline}.mfa-settings-box{max-width:680px;padding:20px;margin-bottom:16px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.mfa-settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--line)}.mfa-settings-row:first-child{border-top:0}.mfa-qr{display:block;width:190px;max-width:100%;margin:16px auto;padding:10px;border-radius:12px;background:#fff}.mfa-secret{overflow-wrap:anywhere;word-break:break-all}@media(max-width:650px){.app-page-nav{width:100%;box-sizing:border-box}.app-page-tab{flex:1;min-width:0;padding:10px 8px}}.rule-status-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;width:max-content;max-width:100%;box-sizing:border-box;margin:-7px 0 18px;padding:7px 11px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--muted);text-decoration:none;font-size:12px;transition:border-color .15s ease,background .15s ease}.rule-status-strip:hover{border-color:var(--accent);background:#2563eb0d}.rule-status-text{font-weight:700;color:var(--text)}.rule-status-open{white-space:nowrap;color:var(--accent);font-weight:700}@media(max-width:650px){.rule-status-strip{width:100%}}.rule-count-status{white-space:nowrap;opacity:.9}.bank-accounts-compact{display:grid;grid-template-columns:minmax(190px,1.05fr) minmax(145px,.72fr) minmax(170px,.82fr) auto;align-items:center;gap:8px 18px;padding:12px 16px}.bank-accounts-compact>.bank-panel-head,.bank-accounts-compact>.bank-overview{display:contents}.bank-accounts-compact .bank-panel-head>div:first-child{grid-column:1;grid-row:1;min-width:0}.bank-accounts-compact .bank-panel-head h2{margin:0 0 3px;font-size:16px}.bank-accounts-compact #bankSyncMeta{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bank-accounts-compact .bank-overview-card:nth-child(1){grid-column:2;grid-row:1}.bank-accounts-compact .bank-overview-card:nth-child(2){grid-column:3;grid-row:1}.bank-accounts-compact .bank-overview-card{min-width:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.bank-accounts-compact .bank-overview-label{margin-bottom:2px;font-size:9px}.bank-accounts-compact .bank-overview-value{font-size:15px;line-height:1.15}.bank-accounts-compact .bank-overview-meta{margin-top:2px;font-size:9px}.bank-accounts-compact .bank-overview-card:first-child .bank-overview-meta{display:none}.bank-accounts-compact .bank-panel-actions{grid-column:4;grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:7px;margin:0;white-space:nowrap}.bank-accounts-compact .bank-panel-actions .btn{padding:7px 9px}#bankAccountsToggle{min-width:106px}.bank-accounts-compact:not(.bank-accounts-expanded) #bankAccounts{display:none!important}.bank-accounts-compact #bankAccounts{grid-column:1 / -1;grid-row:2;margin-top:6px}.bank-accounts-compact.bank-accounts-expanded #bankAccounts{display:grid;grid-template-columns:1fr;gap:0;padding-top:7px;border-top:1px solid var(--line)}.bank-accounts-compact .bank-account-card{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(145px,.8fr) minmax(175px,.9fr) minmax(120px,.7fr);align-items:center;gap:14px;margin:0;padding:9px 3px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}.bank-accounts-compact .bank-account-card:last-child{border-bottom:0}.bank-accounts-compact .bank-account-name{font-size:12px;font-weight:800}.bank-accounts-compact .bank-account-balance{font-size:14px;font-weight:800}.bank-accounts-compact .bank-account-available{margin:0;font-size:10px;color:var(--muted)}.bank-accounts-compact .bank-account-iban{margin:0;padding:0;border-top:0;font-size:10px;text-align:right;color:var(--muted)}.bank-accounts-compact #bankNotice{grid-column:1 / -1}@media(max-width:1100px){.bank-accounts-compact{grid-template-columns:1fr auto}.bank-accounts-compact .bank-panel-head>div:first-child{grid-column:1;grid-row:1}.bank-accounts-compact .bank-panel-actions{grid-column:2;grid-row:1}.bank-accounts-compact .bank-overview-card:nth-child(1){grid-column:1;grid-row:2}.bank-accounts-compact .bank-overview-card:nth-child(2){grid-column:2;grid-row:2}.bank-accounts-compact #bankAccounts{grid-column:1 / -1;grid-row:3}}@media(max-width:650px){.bank-accounts-compact{grid-template-columns:1fr;gap:9px}.bank-accounts-compact .bank-panel-head>div:first-child,.bank-accounts-compact .bank-overview-card:nth-child(1),.bank-accounts-compact .bank-overview-card:nth-child(2),.bank-accounts-compact .bank-panel-actions,.bank-accounts-compact #bankAccounts{grid-column:1}.bank-accounts-compact .bank-panel-head>div:first-child{grid-row:1}.bank-accounts-compact .bank-overview-card:nth-child(1){grid-row:2}.bank-accounts-compact .bank-overview-card:nth-child(2){grid-row:3}.bank-accounts-compact .bank-panel-actions{grid-row:4;justify-content:flex-start;flex-wrap:wrap}.bank-accounts-compact #bankAccounts{grid-row:5}.bank-accounts-compact .bank-account-card{grid-template-columns:1fr auto;gap:5px 12px}.bank-accounts-compact .bank-account-available{grid-column:1}.bank-accounts-compact .bank-account-iban{grid-column:2}}.bank-transactions-compact:has(.bank-transaction-empty){padding:12px 16px}.bank-transactions-compact:has(.bank-transaction-empty) .bank-panel-head{align-items:center;margin-bottom:0}.bank-transactions-compact:has(.bank-transaction-empty) .bank-panel-head h2{margin:0;font-size:16px}.bank-transactions-compact:has(.bank-transaction-empty) #bankTransactionMeta{display:none}.bank-transactions-compact:has(.bank-transaction-empty) #bankTransactions{margin-top:7px}.bank-transactions-compact:has(.bank-transaction-empty) .bank-transaction-empty{display:flex;align-items:baseline;justify-content:flex-start;gap:7px;min-height:0;margin:0;padding:7px 0 0;border:0;border-radius:0;background:transparent;text-align:left;color:var(--muted);font-size:11px;line-height:1.4}.bank-transactions-compact:has(.bank-transaction-empty) .bank-transaction-empty strong{flex:0 0 auto;color:var(--text);font-size:11px}.bank-transactions-compact:has(.bank-transaction-empty) .bank-transaction-filter{padding:7px 9px;min-height:0}@media(max-width:650px){.bank-transactions-compact:has(.bank-transaction-empty) .bank-panel-head{gap:8px}.bank-transactions-compact:has(.bank-transaction-empty) .bank-transaction-empty{display:block}.bank-transactions-compact:has(.bank-transaction-empty) .bank-transaction-empty strong{display:block;margin-bottom:2px}}.bank-transaction-heading-wrap h2{display:inline-flex;align-items:center;margin-right:8px}.bank-transaction-attention{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800;vertical-align:middle}.bank-transaction-attention.needs-attention{color:#b45309;background:#f59e0b1f;border:1px solid rgba(245,158,11,.25)}.bank-transaction-attention.all-done{color:var(--green);background:#16a34a1a;border:1px solid rgba(22,163,74,.22)}.bank-transaction-row{position:relative;cursor:pointer;border-radius:9px;padding-left:10px;padding-right:10px;transition:background .15s ease,box-shadow .15s ease}.bank-transaction-row:hover{background:#94a3b80e}.bank-transaction-row:focus-visible{outline:2px solid rgba(37,99,235,.35);outline-offset:-2px}.bank-transaction-row.transaction-expanded{margin:3px 0;background:#94a3b811}.bank-transaction-row.transaction-attention{box-shadow:inset 3px 0 #f59e0bb3}.bank-transaction-row.transaction-automatic{box-shadow:inset 3px 0 #2563eb99}.bank-transaction-row.transaction-manual{box-shadow:inset 3px 0 #16a34aa6}.bank-transaction-row.transaction-ignored{box-shadow:inset 3px 0 #94a3b873;opacity:.72}.bank-transaction-ui-row{display:flex;align-items:center;gap:8px;margin-top:6px;min-height:20px}.bank-transaction-ui-status{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800;line-height:1.25}.bank-transaction-ui-status.attention{color:#b45309;background:#f59e0b1c}.bank-transaction-ui-status.automatic{color:var(--accent);background:#2563eb1a}.bank-transaction-ui-status.manual{color:var(--green);background:#16a34a1a}.bank-transaction-ui-status.ignored{color:var(--muted);background:#94a3b81a}.bank-transaction-open-hint{color:var(--muted);font-size:10px;font-weight:700}.bank-transaction-row>.bank-transaction-match{display:none!important;grid-column:1 / -1;width:100%;box-sizing:border-box;margin-top:4px}.bank-transaction-row.transaction-expanded>.bank-transaction-match{display:flex!important}html[data-theme=dark] .bank-transaction-attention.needs-attention,html[data-theme=dark] .bank-transaction-ui-status.attention{color:#fbbf24}html[data-theme=dark] .bank-transaction-row:hover{background:#94a3b812}html[data-theme=dark] .bank-transaction-row.transaction-expanded{background:#94a3b817}@media(max-width:650px){.bank-transaction-heading-wrap h2{margin-bottom:5px}.bank-transaction-attention{display:flex;width:max-content;margin-bottom:3px}.bank-transaction-ui-row{flex-wrap:wrap}.bank-transaction-row.transaction-expanded>.bank-transaction-match{flex-direction:column;align-items:stretch}}.bank-create-rule-btn{min-height:36px;margin-left:auto;white-space:nowrap;font-size:11px;font-weight:800}.bank-create-rule-btn:disabled{opacity:.58;cursor:default}@media(max-width:650px){.bank-create-rule-btn{width:100%;margin-left:0}}.bank-rule-test{min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text);font:inherit;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}.bank-rule-test:hover:not(:disabled){background:#2563eb14}.bank-rule-test:disabled{opacity:.55;cursor:wait}.bank-rule-preview{grid-column:1 / -1;width:100%;box-sizing:border-box;margin-top:1px;padding-top:12px;border-top:1px solid var(--line)}.bank-rule-preview[hidden]{display:none!important}.bank-rule-preview-loading,.bank-rule-preview-empty,.bank-rule-preview-error{padding:11px 12px;border-radius:9px;font-size:12px;line-height:1.5}.bank-rule-preview-loading{color:var(--accent);background:#2563eb12}.bank-rule-preview-empty{color:var(--muted);background:#94a3b812}.bank-rule-preview-error{color:var(--red);background:#dc262612}.bank-rule-preview-empty strong,.bank-rule-preview-error strong{display:block;margin-bottom:2px;color:var(--text)}.bank-rule-preview-summary{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.bank-rule-preview-chip{display:inline-flex;align-items:center;padding:4px 8px;border:1px solid var(--line);border-radius:999px;background:#94a3b812;color:var(--muted);font-size:10px;font-weight:800}.bank-rule-preview-chip.eligible{color:var(--accent);background:#2563eb14}.bank-rule-preview-chip.matched{color:var(--green);background:#16a34a14}.bank-rule-preview-chip.ignored{color:var(--muted)}.bank-rule-preview-list{display:grid;gap:6px}.bank-rule-preview-transaction{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:var(--card)}.bank-rule-preview-transaction-main{min-width:0}.bank-rule-preview-transaction-title{overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:850}.bank-rule-preview-description{margin-top:2px;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:10px}.bank-rule-preview-transaction-meta{margin-top:4px;color:var(--muted);font-size:10px}.bank-rule-preview-amount{font-size:12px;font-weight:850;white-space:nowrap}.bank-rule-preview-status{display:inline-flex;width:max-content;max-width:100%;margin-top:6px;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800}.bank-rule-preview-status.eligible{color:var(--accent);background:#2563eb17}.bank-rule-preview-status.matched{color:var(--green);background:#16a34a17}.bank-rule-preview-status.ignored,.bank-rule-preview-status.neutral{color:var(--muted);background:#94a3b817}.bank-rule-preview-note{margin-top:9px;color:var(--muted);font-size:10px}@media(max-width:650px){.bank-rule-actions{flex-wrap:wrap}.bank-rule-test{order:10;width:100%}.bank-rule-preview-transaction{grid-template-columns:1fr}.bank-rule-preview-amount{justify-self:start}}.bank-account-owner{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin-top:5px;padding:3px 7px;border:1px solid var(--line);border-radius:999px;background:#94a3b814;color:var(--muted);font-size:10px;font-weight:800}.brand{white-space:nowrap}.month-hero{margin-bottom:15px;padding:24px;border-top:4px solid var(--green)}.month-hero-label{font-size:15px;font-weight:800;color:var(--muted)}.month-hero #balance{font-size:46px;line-height:1.1;margin:8px 0 2px;letter-spacing:-1px}.month-hero-help{font-size:13px;color:var(--muted)}.month-hero-track{height:12px;margin:18px 0 7px;border-radius:999px;background:var(--line);overflow:hidden}.month-hero-bar{width:0;height:100%;border-radius:999px;background:var(--green);transition:width .4s ease}.month-hero-bar.warning{background:#f59e0b}.month-hero-bar.over{background:var(--red)}.month-hero-pct{font-size:13px;color:var(--muted);margin-bottom:14px}.month-hero .budget-meter-note{justify-content:flex-start;text-align:left;font-size:14px}.month-hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.month-hero-stat{display:flex;flex-direction:column;gap:3px;padding:11px 13px;border:1px solid var(--line);border-radius:12px}.month-hero-stat strong{font-size:19px}.todo-card{margin-bottom:15px;border-left:4px solid #f59e0b}.todo-card h2{margin:0 0 10px;font-size:17px}.todo-list{display:flex;flex-direction:column;gap:8px}.todo-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.todo-icon{font-size:20px;line-height:1}.todo-text{flex:1;font-weight:700;font-size:14px}.todo-button{white-space:nowrap}@media(max-width:650px){.todo-item{flex-wrap:wrap}.todo-text{flex-basis:calc(100% - 40px)}.todo-button{width:100%}}.container:not(.app-bank-view)>#actualBudgetSummary,.container:not(.app-bank-view)>#bankAccountsPanel,.container:not(.app-bank-view)>#bankTransactionsPanel{display:none!important}.container.app-bank-view>*:not(.app-page-nav):not(#actualBudgetSummary):not(#bankAccountsPanel):not(#bankTransactionsPanel){display:none!important}.container.app-bank-view>#actualBudgetSummary{margin-top:0}.more-menu{position:relative}.more-menu>summary{list-style:none;display:inline-flex;align-items:center;height:100%;box-sizing:border-box;-webkit-user-select:none;user-select:none}.more-menu>summary::-webkit-details-marker{display:none}.more-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:6;display:flex;flex-direction:column;gap:6px;min-width:220px;padding:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.more-menu-list .btn{width:100%;text-align:left}.more-stats{margin-top:15px}.more-stats>summary{cursor:pointer;list-style:none;padding:14px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--muted);font-weight:800}.more-stats>summary::-webkit-details-marker{display:none}.more-stats>summary:after{content:" ▾"}.more-stats[open]>summary:after{content:" ▴"}.more-stats .layout{grid-template-columns:.75fr 1.25fr}.app-page-tab{display:inline-flex;align-items:center;gap:6px}@media(max-width:980px){.more-stats .layout{grid-template-columns:1fr}}@media(max-width:650px){.userbar-email,#themeLabel{display:none}.userbar{gap:6px}.topbar .btn{padding:8px 10px}.app-page-tab{flex-direction:column;gap:2px;padding:7px 2px;font-size:11px}.tab-icon{font-size:18px;line-height:1}.tab-label{max-width:100%;overflow:hidden;text-overflow:ellipsis}.toolbar h1{font-size:24px}.month-hero{padding:18px}.month-hero #balance{font-size:38px}.month-hero-stats{grid-template-columns:1fr;gap:6px}.month-hero-stat{flex-direction:row;justify-content:space-between;align-items:center;padding:9px 12px}.month-hero-stat strong{font-size:16px}}.settings-subtitle{margin:18px 0 8px;font-size:15px}.member-list{display:flex;flex-direction:column;gap:8px}.member-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.member-main{flex:1;min-width:0;overflow-wrap:anywhere;word-break:normal}.member-name{font-weight:700}.member-sub{font-size:12px;margin-top:2px}.role-badge{padding:3px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.role-badge.role-owner{background:#2563eb1f;color:var(--accent)}.role-badge.role-member{background:#94a3b829;color:var(--muted)}.member-action{white-space:nowrap;padding:7px 11px;font-size:13px}.member-confirm{display:flex;flex-direction:column;gap:8px;margin:-2px 0 4px;padding:10px 12px;border:1px solid rgba(245,158,11,.35);border-radius:12px;background:#f59e0b14;font-size:14px;font-weight:700;word-break:normal}.member-confirm-actions{display:flex;gap:8px}.member-help{margin-top:8px;font-size:12px;line-height:1.5;word-break:normal}#householdSettingsCard .field{margin:0 0 10px}#householdSettingsCard input[type=email]{width:100%}@media(max-width:650px){.member-row{flex-wrap:wrap}.member-action{width:100%}}#goalsPanel{display:none}.container.app-goals-view>*:not(.app-page-nav):not(#goalsPanel){display:none!important}.container.app-goals-view>#goalsPanel{display:block!important}.goals-stripe{margin-bottom:15px}.goals-stripe-button{width:100%;display:grid;grid-template-columns:auto minmax(0,auto) minmax(80px,1fr) auto auto;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--text);box-shadow:var(--shadow);text-align:left;cursor:pointer;transition:border-color .15s ease,transform .15s ease}.goals-stripe-button:hover{border-color:var(--accent);transform:translateY(-1px)}.goals-stripe-label{font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}.goals-stripe-name{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goals-stripe-track{height:10px;border-radius:999px;background:var(--line);overflow:hidden}.goals-stripe-bar{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#22c55e,#16a34a)}.goals-stripe-bar.done{background:linear-gradient(90deg,#f59e0b,#22c55e)}.goals-stripe-pct{font-weight:800;white-space:nowrap}.goals-stripe-more{font-size:12px;font-weight:700;color:var(--accent);white-space:nowrap}html[data-theme=light] .goals-stripe-button{background:#fbfcfd;border-color:#d3dbe5;box-shadow:0 2px 10px #0f172a0f}@media(max-width:650px){.goals-stripe-button{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label label" "name  pct" "track track" "more  more";gap:6px 10px}.goals-stripe-label{grid-area:label}.goals-stripe-name{grid-area:name}.goals-stripe-pct{grid-area:pct}.goals-stripe-track{grid-area:track}.goals-stripe-more{grid-area:more}}.goal-card{position:relative}.goal-drag-handle{position:absolute;top:10px;left:10px;z-index:2;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.35);border-radius:10px;background:#0f172a8c;color:#fff;font-size:20px;line-height:1;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.goal-drag-handle:hover{background:#0f172abf}.goal-drag-handle:focus-visible{outline:none;box-shadow:0 0 0 3px #60a5fa99}.goal-card.dragging{position:fixed!important;z-index:50;margin:0;pointer-events:none;transition:none!important;box-shadow:0 22px 50px #0f172a59,0 0 0 2px var(--accent)!important;opacity:.97;will-change:transform}.goal-card.dragging.dropping{transition:transform .18s ease,box-shadow .18s ease!important;box-shadow:var(--shadow)!important}.goal-placeholder{border:2px dashed var(--accent);border-radius:var(--radius);background:#2563eb0f;min-height:120px}body.goal-dragging .goal-card:not(.dragging):hover{transform:none;box-shadow:var(--shadow)}.goal-card.goal-flip{will-change:transform}@media(prefers-reduced-motion:reduce){.goal-card.dragging.dropping{transition:none!important}}body.goal-dragging,body.goal-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}.goals-msg{margin-bottom:12px}.goals-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:15px;margin-bottom:15px}.goals-empty{text-align:center;padding:30px 20px}.goals-empty-emoji{font-size:32px;letter-spacing:6px}.goal-card{display:flex;flex-direction:column;padding:0;overflow:hidden}.goal-card.achieved{opacity:.85}.goal-image{width:100%;height:170px;object-fit:cover;display:block;background:var(--line)}.goal-image-emoji{display:flex;align-items:center;justify-content:center;height:110px;font-size:56px;background:linear-gradient(135deg,#2563eb1a,#16a34a1a)}.goal-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px}.goal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.goal-head h3{margin:0;font-size:19px;overflow-wrap:anywhere}.goal-owner{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}.goal-track{height:14px;border-radius:999px;background:var(--line);overflow:hidden}.goal-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#22c55e,#16a34a);transition:width .5s ease}.goal-bar.done{background:linear-gradient(90deg,#f59e0b,#22c55e)}.goal-amounts{font-size:16px}.goal-amounts strong{font-size:22px}.goal-remaining{font-size:14px}.goal-status{padding:8px 11px;border-radius:10px;font-size:13px;font-weight:700;line-height:1.4;border:1px solid var(--line)}.goal-status.ok{background:#16a34a1a;border-color:#16a34a40}.goal-status.warn{background:#f59e0b1a;border-color:#f59e0b4d}.goal-status.late{background:#dc26261a;border-color:#dc262640}.goal-status.done{background:#f59e0b24;border-color:#f59e0b59}.goal-source{font-size:12px}.goal-link{font-size:13px;font-weight:700;color:var(--accent);text-decoration:none;width:max-content}.goal-link:hover{text-decoration:underline}.goal-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.goal-actions .btn{padding:8px 11px;font-size:13px}.goal-panel{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px}.goal-panel-row{display:flex;gap:8px;flex-wrap:wrap}.goal-panel-row .field{flex:1;min-width:140px;margin:0}.goal-confirm{border-color:#dc262659;background:#dc26260f;font-weight:700;font-size:14px}.goal-history-sum{display:flex;flex-direction:column;gap:2px;font-size:13px;padding-bottom:6px;border-bottom:1px solid var(--line)}.goal-history-row{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:center;font-size:13px}.goal-history-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goal-form{margin-bottom:15px}.goal-emoji-picker{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.goal-emoji-choice{width:42px;height:42px;font-size:22px;border-radius:10px;border:1px solid var(--line);background:transparent}.goal-emoji-choice.selected{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb33}.goal-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 16px}.goal-form-grid .field{margin:0 0 10px;min-width:0}.goal-date-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:8px}.goal-image-picker{display:flex;align-items:center;gap:14px}.goal-image-preview{flex:0 0 auto;width:88px;height:88px;border-radius:12px;border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:30px;background:#94a3b814;transition:opacity .2s ease}.goal-image-preview img{width:100%;height:100%;object-fit:cover}.goal-image-preview.removing{opacity:.3}.goal-image-picker-main{display:flex;flex-direction:column;gap:6px;min-width:0}.goal-image-picker-buttons{display:flex;flex-wrap:wrap;gap:8px}.goal-image-picker-buttons label.btn{display:inline-flex;align-items:center;cursor:pointer;margin:0;font-size:14px}.goal-image-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goal-file-input{position:absolute;top:0;left:0;width:1px!important;height:1px;padding:0;margin:-1px;border:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.goal-image-picker-main{position:relative}.goal-file-input:focus-visible+.goal-image-picker-buttons label.btn{box-shadow:0 0 0 3px #2563eb59}.goal-form-wide{grid-column:1 / -1}.goal-form-grid input,.goal-form-grid select{width:100%}.goal-help{font-size:12px;line-height:1.5;margin:4px 0 10px}.goal-form-actions{display:flex;flex-wrap:wrap;gap:8px}.goals-achieved-toggle{width:100%;padding:14px 18px;margin-bottom:15px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--muted);font-weight:800;text-align:left}@media(max-width:650px){.goals-list,.goal-form-grid{grid-template-columns:1fr}.goal-image-preview{width:72px;height:72px}.goal-image{height:150px}}.confetti-canvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:1000;pointer-events:none}#goalsPanel .goal-celebration{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:15px;border:2px solid #f59e0b;background:linear-gradient(135deg,#f59e0b29,#ec48991a 60%,#2563eb1a);animation:goal-celebration-in .5s cubic-bezier(.2,1.4,.4,1) both}.goal-celebration-trophy{font-size:52px;line-height:1;animation:goal-trophy-bounce 1s ease-in-out .4s 3}.goal-celebration-text{flex:1 1 220px}.goal-celebration-text h2{margin:0 0 4px;font-size:24px}.goal-celebration-text p{margin:0}.goal-celebration-actions{display:flex;gap:8px;flex-wrap:wrap}#goalsPanel .goal-card.celebrating{border-color:#f59e0b;animation:goal-glow 1.6s ease-in-out 3}.goal-card.goal-leaving{transition:transform .35s ease,opacity .35s ease;transform:scale(.85) translateY(20px);opacity:0;pointer-events:none}#goalsPanel .goal-card.goal-arrived{animation:goal-arrive .6s cubic-bezier(.2,1.4,.4,1) both,goal-glow 1.6s ease-in-out .6s 2;border-color:#f59e0b}@keyframes goal-celebration-in{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes goal-trophy-bounce{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(-10px) rotate(-8deg)}60%{transform:translateY(0) rotate(8deg)}}@keyframes goal-glow{0%,to{box-shadow:var(--shadow)}50%{box-shadow:0 0 0 4px #f59e0b59,0 0 30px #f59e0b73}}@keyframes goal-arrive{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:.85}}@media(prefers-reduced-motion:reduce){#goalsPanel .goal-celebration,#goalsPanel .goal-celebration-trophy,#goalsPanel .goal-card.celebrating,#goalsPanel .goal-card.goal-arrived{animation:none}}input[type=checkbox]{-webkit-appearance:none;appearance:none;flex:0 0 auto;display:inline-grid;place-content:center;width:20px;height:20px;margin:0;border:2px solid #94a3b8;border-radius:6px;background:var(--card);cursor:pointer;vertical-align:middle;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}input[type=checkbox]:before{content:"";width:11px;height:11px;background:#fff;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);transform:scale(0);transition:transform .12s ease}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:hover{border-color:var(--accent)}input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px #2563eb4d}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}html[data-theme=dark] input[type=checkbox]{border-color:#475569;background:#0f172a}html[data-theme=dark] input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}html[data-theme=dark] input[type=checkbox]:checked:before{background:#0b1120}input[type=number]{-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.overview-actions{flex:1;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px}.overview-buttons{display:flex;align-items:center;gap:9px;margin-left:auto}@media(min-width:651px){.overview-actions .month-popover{left:0;transform:none;animation-name:month-popover-in-left}}@keyframes month-popover-in-left{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(max-width:820px){.month-button{min-width:160px}}.monthbar{position:relative;gap:6px}.overview-actions .month-nav,.overview-actions .month-button,.overview-actions #add,.overview-actions .more-menu>summary{height:42px;box-sizing:border-box}.month-nav{border-radius:12px;color:var(--text);cursor:pointer}.month-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:200px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);font:inherit;font-weight:800;cursor:pointer;transition:border-color .15s,box-shadow .15s}.month-button:hover{border-color:var(--accent)}.month-button[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 4px #2563eb24}.month-button-icon{font-size:16px}.month-button-chevron{color:var(--muted);font-size:13px;transition:transform .15s}.month-button[aria-expanded=true] .month-button-chevron{transform:rotate(180deg)}html[data-theme=dark] .month-button{background:#202c40;border-color:#40506a}html[data-theme=dark] .month-button:hover,html[data-theme=dark] .month-button[aria-expanded=true]{border-color:#60a5fa}.month-popover{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);z-index:30;width:min(320px,calc(100vw - 32px));box-sizing:border-box;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 45px #0f172a38;animation:month-popover-in .14s ease-out}html[data-theme=dark] .month-popover{background:#1e293b;border-color:#40506a;box-shadow:0 18px 45px #0000008c}.month-popover[hidden]{display:none}.month-popover-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.month-popover-year{font-size:18px}.month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.month-choice{height:44px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--text);font:inherit;font-weight:700;cursor:pointer;transition:border-color .12s,background .12s}.month-choice:hover{border-color:var(--accent);background:#2563eb0f}.month-choice.today{border:2px solid var(--accent)}.month-choice.selected{background:var(--accent);border-color:var(--accent);color:#fff}html[data-theme=dark] .month-choice.selected{color:#07111f}.month-choice:focus-visible,.month-button:focus-visible,.month-nav:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:2px}.month-today{width:100%;margin-top:10px}@keyframes month-popover-in{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.month-popover{animation:none}}.month-field{position:relative}.month-field .month-button{width:100%;min-width:0;min-height:44px;justify-content:flex-start;border-radius:10px}.month-field .month-button-chevron{margin-left:auto}.month-field .month-popover{position:static;transform:none;width:100%;max-width:360px;margin-top:8px;box-shadow:none;animation-name:month-popover-in-field}html[data-theme=dark] .month-field .month-popover{box-shadow:none}@keyframes month-popover-in-field{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(max-width:650px){.overview-toolbar{margin-bottom:16px}.overview-actions{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:0}.overview-actions .monthbar{grid-column:1 / -1;width:100%}.overview-buttons{grid-column:1 / -1;display:grid;grid-template-columns:1fr auto;gap:10px;margin-left:0}.overview-actions .month-nav,.overview-actions .month-button,.overview-actions #add,.overview-actions .more-menu>summary{height:48px}.overview-actions .month-nav{width:48px;flex:0 0 48px}.month-button{flex:1;min-width:0;font-size:17px}.overview-actions #add{width:100%;font-size:16px}.overview-actions .more-menu>summary{padding:0 16px}}.mobile-label,.table td.budget-meta-cell{display:none}@media(max-width:650px){.mobile-label{display:inline;font-weight:600}.table-wrap{overflow:visible}.table thead{display:none}.table,.table tbody{display:block;width:100%}.table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name  amount actions" "meta  meta   actions";align-items:center;column-gap:10px;row-gap:4px;padding:12px 10px 12px 16px;margin-bottom:8px;border:1px solid var(--line);border-radius:14px}.table tbody tr:hover{transform:none}.table tbody tr td{display:block;padding:0;border:0;min-width:0;background:none}html[data-theme=dark] .table tbody tr td:last-child,.table tbody tr td:last-child{background:none}.table tbody td.budget-type-cell,.table tbody td.budget-owner-cell,.table tbody td.budget-actual-cell,.table tbody td.budget-remaining-cell{display:none}.table tbody td.budget-name-cell{grid-area:name;white-space:normal;font-size:16px;font-weight:800;line-height:1.3}.table tbody td.budget-amount-cell{grid-area:amount;text-align:right;font-size:16px;font-weight:800}.table tbody td.budget-meta-cell{display:block;grid-area:meta;white-space:normal;font-size:13px;line-height:1.4;color:var(--muted)}.budget-meta-type{font-weight:700}.row-income .budget-meta-type{color:#15803d}.row-expense .budget-meta-type{color:#b91c1c}html[data-theme=dark] .row-income .budget-meta-type{color:#86efac}html[data-theme=dark] .row-expense .budget-meta-type{color:#fca5a5}.table tbody td.budget-actions-cell{grid-area:actions;display:flex;flex-direction:column;gap:6px}.table tbody td.budget-actions-cell .iconbtn{width:38px;height:38px;margin:0}.table tbody tr:has(td.empty){display:block}.table tbody td.empty{text-align:center;padding:14px 0}.budget-filters{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:8px}.filter-group,html[data-theme=dark] .filter-group{flex-direction:column;align-items:stretch;gap:6px;padding:2px 4px;background:none;border:0}.filter-count{margin-left:0;text-align:center}.app-page-nav{gap:2px}.app-page-tab{padding-left:0;padding-right:0}.tab-label{font-size:10.5px;letter-spacing:-.2px}.todo-button{width:auto;margin-left:auto;padding:8px 14px}}.filter-label{font-size:13px;font-weight:700;color:var(--muted)}.filter-chips{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.filter-chip:hover{border-color:var(--accent)}.filter-chip.selected{background:var(--accent);border-color:var(--accent);color:#fff}.filter-chip:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:2px}html[data-theme=dark] .filter-chip{background:#202c40;border-color:#40506a}html[data-theme=dark] .filter-chip:hover{border-color:#60a5fa}html[data-theme=dark] .filter-chip.selected{background:#60a5fa;border-color:#60a5fa;color:#07111f}@media(max-width:650px){.filter-chip{min-height:40px;padding:0 13px;font-size:15px}}select.velger-native{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none!important;clip-path:inset(50%);overflow:hidden}.velger-button{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);font:inherit;font-weight:600;text-align:left;cursor:pointer;box-sizing:border-box;max-width:100%;transition:border-color .15s,box-shadow .15s}.velger-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.velger-chevron{color:var(--muted);font-size:13px;transition:transform .15s}.velger-button[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 4px #2563eb24}.velger-button[aria-expanded=true] .velger-chevron{transform:rotate(180deg)}.velger-button:hover:not(:disabled){border-color:var(--accent)}.velger-button:disabled{opacity:.55;cursor:not-allowed}.velger-button:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:2px}.field .velger-button,.goal-form-grid .velger-button{display:flex;width:100%;min-height:44px}html[data-theme=dark] .field .velger-button,html[data-theme=dark] .goal-form-grid .velger-button{background:#0f172a;border-color:#40506a}html[data-theme=dark] .velger-button{border-color:#40506a}.velger-segmented{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--card)}html[data-theme=dark] .velger-segmented{background:#0f172a;border-color:#40506a}.velger-segment{flex:1;min-height:40px;padding:6px 10px;border:0;border-radius:9px;background:transparent;color:var(--text);font:inherit;font-weight:700;cursor:pointer;transition:background .12s,color .12s}.velger-segment:hover:not(.selected):not(:disabled){background:#2563eb1a}.velger-segment.selected{background:var(--accent);color:#fff}html[data-theme=dark] .velger-segment.selected{color:#07111f}.velger-segment:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:1px}.velger-segment:disabled{opacity:.5;cursor:not-allowed}.velger-list{position:fixed;z-index:1000;overflow-y:auto;overscroll-behavior:contain;padding:6px;box-sizing:border-box;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 45px #0f172a40;animation:velger-in .12s ease-out}html[data-theme=dark] .velger-list{background:#1e293b;border-color:#40506a;box-shadow:0 18px 45px #0000008c}.velger-group{padding:10px 10px 4px;font-size:12px;font-weight:800;text-transform:uppercase;color:var(--muted)}.velger-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:8px 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-weight:600;text-align:left;cursor:pointer}.velger-option:hover:not(:disabled),.velger-option:focus-visible{background:#2563eb1a;outline:none}.velger-option.selected{background:var(--accent);color:#fff}.velger-option.selected:after{content:"✓";font-weight:800}html[data-theme=dark] .velger-option.selected{color:#07111f}.velger-option:disabled{opacity:.45;cursor:not-allowed}@keyframes velger-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.velger-list{animation:none}}@media(max-width:650px){.velger-option{min-height:48px;font-size:16px}}.install-steps{margin:8px 0 0;padding-left:22px;line-height:1.7}.install-note{font-size:13px;margin-top:10px}@media(max-width:650px){.actual-summary-grid{grid-template-columns:1fr 1fr;gap:8px}.actual-summary-card{padding:12px;min-width:0}.actual-summary-value{font-size:19px;white-space:nowrap}}#monthSummary.month-summary{margin-bottom:15px;border:2px solid rgba(37,99,235,.35);background:linear-gradient(135deg,#2563eb1a,#22c55e14);animation:month-summary-in .4s ease-out both}.month-summary-head h2{margin:0 0 10px;font-size:21px}.month-summary-points{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}.month-summary-points li{line-height:1.5}@keyframes month-summary-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){#monthSummary.month-summary{animation:none}}@media(max-width:650px){.month-summary-close{width:100%;min-height:46px}}.quick-fab{display:none}.quick-sheet-backdrop{position:fixed;inset:0;z-index:40;background:#0f172a8c}.quick-sheet-backdrop[hidden],.quick-sheet[hidden],.quick-toast[hidden]{display:none!important}.quick-sheet{position:fixed;z-index:41;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow-y:auto;box-sizing:border-box;padding:20px;background:var(--card);border-radius:18px;box-shadow:0 25px 80px #00000059}.quick-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.quick-sheet-head h2{margin:0;font-size:21px}.quick-month{margin:0 0 12px;font-size:13px}.quick-amount{font-size:26px!important;font-weight:800;min-height:56px}.quick-save{width:100%;min-height:50px;margin-top:6px;font-size:17px}.quick-recent-title{margin:20px 0 8px;font-size:14px;color:var(--muted)}.quick-recent{list-style:none;margin:0;padding:0;display:grid;gap:6px}.quick-recent li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;font-size:14px}.quick-recent-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-toast{position:fixed;z-index:45;left:50%;bottom:24px;transform:translate(-50%);width:max-content;max-width:calc(100vw - 32px);box-sizing:border-box;padding:12px 16px;border-radius:14px;background:#0f172a;color:#f8fafc;font-weight:700;box-shadow:0 12px 30px #00000059;animation:quick-toast-in .2s ease-out}html[data-theme=dark] .quick-toast{background:#f8fafc;color:#0f172a}@keyframes quick-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes quick-sheet-up{0%{transform:translateY(100%)}to{transform:none}}@media(max-width:650px){.quick-fab{display:flex;align-items:center;justify-content:center;position:fixed;z-index:30;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));width:62px;height:62px;border:0;border-radius:50%;background:var(--accent);color:#fff;font-size:38px;font-weight:400;line-height:1;box-shadow:0 10px 25px #2563eb73;cursor:pointer}.quick-fab:active{transform:scale(.94)}.container{padding-bottom:96px}.quick-sheet{inset:auto 0 0;transform:none;width:100%;max-height:88vh;padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px));border-radius:20px 20px 0 0;animation:quick-sheet-up .22s ease-out}.quick-toast{bottom:calc(92px + env(safe-area-inset-bottom,0px))}}@media(prefers-reduced-motion:reduce){.quick-sheet,.quick-toast{animation:none}}body.quick-sheet-open{overflow:hidden}.modal{z-index:50;overflow-y:auto}.modal-card{margin:auto}@media(max-width:650px){.modal{align-items:flex-end;padding:0}.modal-card{width:100%;max-height:92vh;overflow-y:auto;margin:0;padding:18px 16px 0;border-radius:20px 20px 0 0;animation:modal-sheet-up .22s ease-out}.modal-head{margin-bottom:10px}.modal .form-grid{gap:10px}.modal-actions{position:sticky;bottom:0;z-index:2;margin:16px -16px 0;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:inherit;border-top:1px solid var(--line)}.modal-actions .btn{flex:1;min-height:48px;font-size:16px}}@keyframes modal-sheet-up{0%{transform:translateY(100%)}to{transform:none}}@media(prefers-reduced-motion:reduce){.modal-card{animation:none}}#helpPanel{display:none}.container.app-help-view>*:not(.app-page-nav):not(#helpPanel){display:none!important}.container.app-help-view>#helpPanel{display:block!important;max-width:760px}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.help-back{display:inline-block;margin-bottom:10px;color:var(--accent);font-weight:700;text-decoration:none}.help-back:hover{text-decoration:underline}.help-toolbar{margin-bottom:16px}.help-search input{width:100%;min-height:50px;box-sizing:border-box;padding:0 16px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);font:inherit;font-size:16px}.help-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px #2563eb24}html[data-theme=dark] .help-search input{background:#0f172a;border-color:#40506a}.help-topic{margin-top:24px}.help-topic h2{margin:0 0 10px;font-size:18px}.help-list{display:grid;gap:8px}.help-item{border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden}html[data-theme=dark] .help-item{background:#172033;border-color:#334155}.help-item summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:12px 16px;font-size:16px;font-weight:700;cursor:pointer;list-style:none}.help-item summary::-webkit-details-marker{display:none}.help-item summary:after{content:"＋";flex:0 0 auto;color:var(--accent);font-weight:800}.help-item[open] summary:after{content:"－"}.help-item[open]{border-color:var(--accent)}.help-item summary:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:-3px}.help-answer{padding:2px 16px 16px;font-size:15.5px;line-height:1.6}.help-answer p{margin:0 0 10px}.help-answer p:last-child{margin-bottom:0}.help-steps{list-style:none;counter-reset:help-step;margin:4px 0 12px;padding:0;display:grid;gap:10px}.help-steps li{counter-increment:help-step;position:relative;padding-left:36px;min-height:26px}.help-steps li:before{content:counter(help-step);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;font-weight:800;line-height:26px;text-align:center}html[data-theme=dark] .help-steps li:before{color:#07111f}.help-defs{margin:4px 0 12px;padding-left:20px;display:grid;gap:6px}.help-ui{display:inline-block;padding:1px 8px;margin:1px 0;border:1px solid var(--line);border-radius:8px;background:#2563eb14;font-size:.92em;font-weight:700;white-space:nowrap}html[data-theme=dark] .help-ui{background:#202c40;border-color:#40506a}.help-tip{margin-top:12px!important;padding:10px 12px;border-radius:10px;background:#f59e0b1a;border-left:3px solid #f59e0b}.help-empty{margin-top:20px;text-align:center}.help-contact{margin-top:28px;text-align:center}.help-contact h2{margin:0 0 4px;font-size:18px}.help-contact .btn{display:inline-block;margin-top:8px;text-decoration:none}.support-help-button{display:inline-block;text-decoration:none}@media(max-width:650px){.support-help-button{display:block;text-align:center;min-height:44px;line-height:24px}.help-contact .btn{display:block;overflow:hidden;text-overflow:ellipsis}}:root{--spend-bar:#2563eb}html[data-theme=dark]{--spend-bar:#3b82f6}.spend-card{margin-top:15px}.spend-title{margin:0 0 6px;font-size:18px}.spend-headline{margin:0 0 16px;font-size:16px;line-height:1.5}.spend-chart{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;align-items:end;height:170px;padding-bottom:2px;border-bottom:1px solid var(--line)}.spend-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--text);font:inherit;cursor:pointer}.spend-col:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:2px}.spend-value{min-height:20px;font-size:13px;font-weight:800;white-space:nowrap}.spend-track{flex:1;display:flex;align-items:flex-end;justify-content:center;width:100%}.spend-bar{display:block;width:min(24px,70%);border-radius:4px 4px 0 0;background:var(--spend-bar);opacity:.55;transition:opacity .15s}.spend-col.viewed .spend-bar,.spend-col.active .spend-bar,.spend-col:hover .spend-bar{opacity:1}.spend-month{margin-top:6px;font-size:12px;color:var(--muted);text-transform:capitalize}.spend-col.viewed .spend-month{color:var(--text);font-weight:800}.spend-readout{margin:10px 0 0;min-height:20px;font-size:14px}.quick-label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.quick-top{display:flex;flex-wrap:wrap;gap:8px}.quick-chip{min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--text);font:inherit;font-size:15px;font-weight:700;cursor:pointer}html[data-theme=dark] .quick-chip{background:#202c40;border-color:#40506a}.quick-chip.selected{background:var(--accent);border-color:var(--accent);color:#fff}html[data-theme=dark] .quick-chip.selected{color:#07111f}.quick-chip:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:2px}.quick-other-label{margin-top:12px;font-weight:600!important;color:var(--muted)}.todo-buttons{display:flex;gap:6px;margin-left:auto;flex-shrink:0}.todo-dismiss{background:transparent!important;border-color:transparent!important;color:var(--muted)!important}@media(max-width:650px){.todo-buttons{width:100%;justify-content:flex-end}.todo-buttons .todo-button{margin-left:0}.spend-chart{height:150px}}@media(max-width:650px){.month-hero{padding:16px;margin-bottom:12px}.month-hero #balance{font-size:36px;margin:4px 0 0}.month-hero-help,.month-hero-pct{display:none}.month-hero-track{height:10px;margin:10px 0}.month-hero .budget-meter-note{padding:8px 12px;font-size:13.5px;line-height:1.4}.month-hero-stats{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}.month-hero-stat{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:2px;min-width:0;padding:8px 9px}.month-hero-stat .label{font-size:11px;line-height:1.25;color:var(--muted)}.month-hero-stat strong{font-size:15px;white-space:nowrap}.todo-card{margin-bottom:12px}}.container.setup-active:not(.app-bank-view):not(.app-rules-view):not(.app-goals-view):not(.app-settings-view):not(.app-help-view)>*:not(.app-page-nav):not(#setupWizard){display:none!important}.setup-wizard{max-width:620px;margin:0 auto 16px;padding:24px;border-top:4px solid var(--accent)}.setup-wizard h2{margin:6px 0;font-size:22px;line-height:1.3}.setup-wizard>p.muted,.setup-wizard p.muted{margin:0 0 16px;line-height:1.5}.setup-progress{display:flex;align-items:center;gap:6px}.setup-dot{width:28px;height:6px;border-radius:999px;background:var(--line)}.setup-dot.done{background:var(--green)}.setup-dot.current{background:var(--accent)}.setup-step-text{margin-left:6px;font-size:13px;font-weight:700;color:var(--muted)}.setup-rows{display:grid;gap:8px;margin-bottom:10px}.setup-row{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:8px;align-items:center}.setup-row:not(:has(.setup-remove)){grid-template-columns:minmax(0,1fr) 120px}.setup-row input{width:100%;min-height:46px;box-sizing:border-box;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);font:inherit;font-size:16px}html[data-theme=dark] .setup-row input{background:#0f172a;border-color:#40506a}.setup-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px #2563eb24}.setup-amount{text-align:right;font-weight:700!important}.setup-remove{width:40px;height:40px}.setup-add{margin-bottom:6px}.setup-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.setup-next{min-height:50px;padding:0 24px;font-size:17px}.setup-skip{display:block;margin:18px auto 0;padding:8px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:14px;text-decoration:underline;cursor:pointer}.setup-done{text-align:center}.setup-done-emoji{font-size:52px}@media(max-width:650px){.setup-wizard{padding:18px 16px}.setup-wizard h2{font-size:20px}.setup-row{grid-template-columns:minmax(0,1fr) 96px auto;gap:6px}.setup-row:not(:has(.setup-remove)){grid-template-columns:minmax(0,1fr) 110px}.setup-actions{flex-direction:column-reverse;position:sticky;bottom:0;z-index:2;margin:16px -16px 0;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--line)}html[data-theme=dark] .setup-actions{background:#172033}.setup-actions .btn{width:100%;min-height:50px}}.mobile-only{display:none!important}.budget-used{display:block;height:5px;margin-top:6px;border-radius:999px;background:var(--line);overflow:hidden}.budget-used-bar{display:block;height:100%;border-radius:999px}.budget-used-bar.ok{background:#16a34a}.budget-used-bar.near{background:#d97706}.budget-used-bar.over{background:#dc2626}html[data-theme=dark] .budget-used-bar.ok{background:#22c55e}html[data-theme=dark] .budget-used-bar.near{background:#f59e0b}html[data-theme=dark] .budget-used-bar.over{background:#f87171}.budget-remaining-paid{color:var(--green);font-weight:800;white-space:normal}.budget-remaining-unpaid{color:var(--muted);font-weight:600}.mark-done{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 12px 0 10px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;vertical-align:middle}.mark-box{flex:0 0 auto;width:16px;height:16px;border:2px solid currentColor;border-radius:4px;box-sizing:border-box}.mark-done:hover{border-color:var(--accent);color:var(--text)}.mark-done:disabled{opacity:.5}.mark-done:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:2px}html[data-theme=dark] .mark-done{border-color:#40506a;color:#a8b4c7}html[data-theme=dark] .mark-done:hover{border-color:#60a5fa;color:#f8fafc}.table tbody tr.budget-group-row,.table tbody tr.budget-group-row:hover{background:transparent!important;box-shadow:none!important;transform:none}.table tbody tr.budget-group-row td{text-align:left!important;padding:16px 4px 6px!important;border:0!important;background:transparent!important;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.table tbody tr.budget-group-row.done td{color:var(--green)}.done-toggle{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--green);font:inherit;font-size:13px;font-weight:800;letter-spacing:0;text-transform:none;cursor:pointer}.done-toggle:hover{border-color:var(--green)}.done-toggle:focus-visible{outline:3px solid rgba(22,163,74,.45);outline-offset:2px}.todo-item.todo-celebrate{background:#16a34a1a;border-color:#16a34a59}.quick-toast-undo{margin-left:10px;padding:4px 10px;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.table td.budget-remaining-cell{white-space:normal;min-width:170px}#fKindField[hidden],#fGoalField[hidden]{display:none}.form-grid .form-wide{grid-column:1 / -1}.form-grid .form-wide .velger-segment{padding:6px 4px;text-wrap:balance}.field-help{margin-top:6px;font-size:12.5px;line-height:1.45}html[data-theme=dark] .budget-used{background:#334155}.table td.budget-remaining-cell .budget-used{width:120px;max-width:100%}@media(max-width:650px){.mobile-only{display:flex!important}.app-page-tab.tab-secondary{display:none}.container.app-bank-view .app-page-tab[data-app-section=bank],.container.app-rules-view .app-page-tab[data-app-section=rules]{display:flex}.tab-label{font-size:12px;letter-spacing:0}.table tbody tr.budget-group-row{display:block;padding:0;margin:6px 0 2px;border:0}.table tbody tr.budget-group-row td{display:block}.table td.budget-meta-cell .mark-done{display:flex;width:fit-content;min-height:38px;margin:8px 0 0;padding:0 16px;font-size:14px}.table td.budget-meta-cell .budget-used{margin-top:7px;height:6px}.row-saving .budget-meta-type{color:#1d4ed8}html[data-theme=dark] .row-saving .budget-meta-type{color:#93c5fd}}.month-hero .budget-meter-note,.month-hero-details{margin-top:10px}.month-hero-details>summary{display:inline-flex;align-items:center;min-height:36px;padding:4px 2px;list-style:none;font-size:14px;font-weight:700;color:var(--accent);cursor:pointer}.month-hero-details>summary::-webkit-details-marker{display:none}.month-hero-details>summary:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:2px;border-radius:8px}.month-hero-details .when-open,.month-hero-details[open] .when-closed{display:none}.month-hero-details[open] .when-open{display:inline}.month-hero-details .month-hero-help{margin-top:4px}.month-hero-details .month-hero-track{margin-top:12px}.month-hero-details .month-hero-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:12px}.month-hero-stat[hidden]{display:none}@media(max-width:650px){.month-hero-details .month-hero-help,.month-hero-details .month-hero-pct{display:block}.month-hero-details .month-hero-pct{margin-bottom:0}.month-hero-details .month-hero-stats{grid-template-columns:repeat(2,1fr)}.todo-item{flex-wrap:nowrap;gap:8px;padding:9px 10px}.todo-text{flex-basis:auto;min-width:0;font-size:13.5px}.todo-button{width:auto;min-height:38px;padding:6px 12px;font-size:13px}.todo-buttons{width:auto;flex-direction:column;align-items:stretch;gap:4px}.todo-dismiss{min-height:30px;padding:2px 8px}.goals-stripe-button{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"label name pct" "track track track";gap:6px 10px;padding:10px 14px}.goals-stripe-more{display:none}}.goal-status.late{background:#f59e0b1a;border-color:#f59e0b4d}.goal-more{display:flex;flex-wrap:wrap;gap:6px}.goal-more .btn{padding:8px 11px;font-size:13px;text-decoration:none}.settings-card:has(>.settings-fold),.mfa-settings-box:has(>.settings-fold){padding:0}.settings-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:14px 20px;list-style:none;cursor:pointer}.settings-fold>summary::-webkit-details-marker{display:none}.settings-fold>summary h2{margin:0;font-size:17px}.settings-fold>summary:after{content:"▾";color:var(--muted);font-size:15px}.settings-fold[open]>summary:after{content:"▴"}.settings-fold>summary:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:-3px;border-radius:14px}.settings-fold[open]{padding:0 20px 20px}.settings-fold[open]>summary{margin:0 -20px}.settings-card:has(>.settings-fold),.mfa-settings-box:has(>.settings-fold){margin-bottom:10px}.setup-goal{display:grid;gap:10px;margin-bottom:12px}.setup-goal .field{margin:0}.actual-summary-note[hidden]{display:none}.auth-legal{margin:16px 0 0;text-align:center;font-size:13px}.auth-legal-note{margin:12px 0;font-size:13px;line-height:1.5}.auth-legal a,.auth-legal-note a{color:var(--accent)}.privacy-links{display:flex;flex-wrap:wrap;gap:8px}.privacy-links .btn{text-decoration:none}#privacySettingsMsg:not(:empty){margin-top:10px}.delete-personal-choice{display:flex;align-items:flex-start;gap:10px;margin:12px 0 4px;font-size:14px;line-height:1.45;cursor:pointer}.delete-personal-choice input{width:20px;height:20px;margin:1px 0 0;flex-shrink:0}
