:root{--bg:#f4f7fb;--panel:#fff;--panel2:#f8fafc;--text:#111827;--muted:#64748b;--line:#dbe4ee;--accent:#4f46e5;--accent2:#06b6d4;--good:#16a34a;--warn:#d97706;--bad:#dc2626;--shadow:0 14px 40px rgba(15,23,42,.08);--radius:18px}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(circle at top left,rgba(79,70,229,.13),transparent 28rem),var(--bg);color:var(--text)}body.dark{--bg:#0b1120;--panel:#111827;--panel2:#0f172a;--text:#e5e7eb;--muted:#94a3b8;--line:#243244;--shadow:0 16px 50px rgba(0,0,0,.3)}body.light{--bg:#f4f7fb;--panel:#fff;--panel2:#f8fafc;--text:#111827;--muted:#64748b;--line:#dbe4ee}.app-shell{max-width:1480px;margin:0 auto;padding:18px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;position:sticky;top:0;z-index:20;background:linear-gradient(180deg,var(--bg),rgba(0,0,0,0));backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:14px}.logo{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:grid;place-items:center;color:white;font-size:28px;font-weight:900;box-shadow:var(--shadow)}h1,h2,h3,p{margin:0}.brand h1{font-size:24px}.brand p,.muted{color:var(--muted)}.tiny{font-size:12px;line-height:1.4}.top-actions,.actions,.inline-control,.table-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.actions.vertical{align-items:stretch;flex-direction:column}.layout{display:grid;grid-template-columns:290px 1fr;gap:18px}.sidebar{position:sticky;top:92px;align-self:start}.card{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.profile-card{margin-bottom:14px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.section-title h2{font-size:18px}.badge{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 8px;background:rgba(148,163,184,.1)}button,.btn,input,select,textarea{font:inherit}.btn{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:12px;padding:10px 13px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;justify-content:center;text-decoration:none}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.08)}.btn.small{padding:7px 10px;font-size:13px}.btn.large{font-weight:800;padding:13px 18px}.btn.accent{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border:none}.btn.subtle{background:rgba(148,163,184,.11)}.btn.danger{color:#fff;background:var(--bad);border-color:var(--bad)}.btn.danger.subtle{background:transparent;color:var(--bad)}.link-btn,.icon-btn{border:none;background:none;color:var(--accent);cursor:pointer}.icon-btn{font-size:24px;color:var(--text)}.fileBtn{position:relative;overflow:hidden}.fileBtn input{position:absolute;inset:0;opacity:0;cursor:pointer}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);padding:11px}label{display:grid;gap:7px;color:var(--muted);font-size:13px}.checkline{display:flex;align-items:center;gap:8px;color:var(--text)}.checkline input{width:auto}.nav{display:grid;gap:6px}.nav button{border:0;background:transparent;text-align:left;color:var(--muted);padding:11px 12px;border-radius:12px;cursor:pointer}.nav button.active,.nav button:hover{background:rgba(79,70,229,.12);color:var(--accent);font-weight:800}.profile-list{display:grid;gap:8px;margin-bottom:12px}.profile-pill{display:flex;justify-content:space-between;align-items:center;padding:10px;border-radius:12px;border:1px solid var(--line);cursor:pointer}.profile-pill.active{border-color:var(--accent);background:rgba(79,70,229,.12)}.content{min-width:0}.view{display:none}.view.active{display:block}.grid{display:grid;gap:18px;margin-bottom:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.hero{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;inset:auto -80px -150px auto;width:320px;height:320px;background:radial-gradient(circle,rgba(6,182,212,.22),transparent 65%)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--accent);font-weight:800}.hero h2{font-size:34px;margin:6px 0}.health-ring{width:118px;height:118px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) 0deg, var(--accent2) 180deg, rgba(148,163,184,.18) 180deg 360deg);position:relative}.health-ring:after{content:"";position:absolute;inset:11px;border-radius:50%;background:var(--panel)}.health-ring div,.health-ring span{position:relative;z-index:1}.health-ring div{font-size:32px;font-weight:900}.health-ring span{font-size:12px;color:var(--muted);margin-top:48px;position:absolute}.metric span{color:var(--muted);font-size:13px}.metric strong{display:block;font-size:26px;margin:6px 0}.metric small{color:var(--muted)}.stack{display:grid;gap:10px}.note,.suggestion,.forecast,.summary-line{border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(148,163,184,.08)}.note.good{border-left:5px solid var(--good)}.note.warn{border-left:5px solid var(--warn)}.note.bad{border-left:5px solid var(--bad)}.row-list{display:grid;gap:10px}.item-row{display:grid;grid-template-columns:1.4fr .9fr .8fr .8fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:12px;background:rgba(148,163,184,.07)}body.compact .item-row{padding:8px;border-radius:12px}.item-row .name{font-weight:800}.item-row .meta{font-size:12px;color:var(--muted)}.row-actions{display:flex;gap:6px;justify-content:flex-end}.row-actions button{padding:7px 9px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.form-grid.one{grid-template-columns:1fr}.wizard-card p{margin-bottom:15px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day-name{font-weight:800;color:var(--muted);font-size:12px;text-align:center}.calendar-day{min-height:118px;border:1px solid var(--line);border-radius:14px;padding:8px;background:rgba(148,163,184,.07)}.calendar-day .date{font-weight:900}.cal-event{margin-top:6px;border-radius:8px;padding:5px 6px;font-size:11px;background:rgba(79,70,229,.15)}.cal-event.income{background:rgba(22,163,74,.15)}.cal-event.bill{background:rgba(220,38,38,.13)}.cal-event.goal{background:rgba(217,119,6,.14)}canvas{max-width:100%;background:rgba(148,163,184,.04);border-radius:14px}.summary{display:grid;gap:9px;line-height:1.45}.summary h3{margin-top:8px}.responsive-table{overflow:auto}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--line);text-align:left;padding:10px}.modal{position:fixed;inset:0;background:rgba(2,6,23,.65);display:grid;place-items:center;z-index:40;padding:20px}.modal.hidden,.hidden{display:none}.modal-card{width:min(520px,100%)}.cookie{position:fixed;left:18px;right:18px;bottom:18px;z-index:50;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:var(--shadow);display:flex;justify-content:space-between;gap:14px;align-items:center}.cookie.hidden{display:none!important}.alert{padding:12px 14px;border-radius:14px;margin-bottom:14px;background:rgba(79,70,229,.12);border:1px solid var(--line)}.alert.error{background:rgba(220,38,38,.15)}.progress{height:10px;background:rgba(148,163,184,.22);border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:999px}.privacy .money{filter:blur(8px)}@media(max-width:1050px){.layout{grid-template-columns:1fr}.sidebar{position:static}.nav{grid-template-columns:repeat(3,1fr)}.grid.four{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%}.top-actions .btn{flex:1}.nav{grid-template-columns:repeat(2,1fr)}.grid.four,.form-grid{grid-template-columns:1fr}.item-row{grid-template-columns:1fr}.calendar-grid{grid-template-columns:1fr}.day-name{display:none}.hero{align-items:flex-start}.health-ring{width:94px;height:94px}.cookie{flex-direction:column;align-items:stretch}}@media print{.topbar,.sidebar,.btn,.nav,.cookie{display:none!important}.layout{display:block}.card{box-shadow:none}.view{display:block}.view:not(#view-reports){display:none}}

/* Collapsible navigation upgrade */
.nav-collapsible{gap:10px;padding:14px}.nav-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 2px 8px;border-bottom:1px solid var(--line);margin-bottom:2px}.nav-header strong{font-size:14px}.nav-primary{font-weight:800}.nav-group{border:1px solid var(--line);border-radius:14px;background:rgba(148,163,184,.06);overflow:hidden}.nav-group summary{list-style:none;cursor:pointer;padding:11px 12px;font-weight:800;color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:8px}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:after{content:'▸';color:var(--muted);transition:transform .18s ease}.nav-group[open] summary:after{transform:rotate(90deg)}.nav-group-body{display:grid;gap:4px;padding:0 7px 8px}.nav-group-body button{font-size:14px;padding:9px 10px}.nav button.nav-primary{border:1px solid transparent;background:rgba(148,163,184,.06)}.nav button.active{box-shadow:inset 3px 0 0 var(--accent)}.sidebar.nav-mini .profile-card{display:none}.sidebar.nav-mini .nav-group:not(:has(button.active)){display:none}.sidebar.nav-mini .nav-header strong:after{content:' compact';font-weight:400;color:var(--muted)}@media(max-width:1050px){.nav-collapsible{display:block}.nav-collapsible .nav-primary{width:100%;margin-bottom:10px}.nav-group{margin-bottom:8px}.nav-group-body{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.nav-group-body{grid-template-columns:1fr}.nav-header{position:sticky;top:0;background:var(--panel);z-index:2}}


/* Navigation polish/fixes: make group headers feel like real buttons and preserve collapsed state. */
.nav-collapsible{display:grid;grid-template-columns:1fr;align-items:stretch}.nav-collapsible .nav-header{grid-column:1/-1}.nav-collapsible .nav-primary{width:100%}.nav-group{width:100%}.nav-group summary{width:100%;box-sizing:border-box;border:1px solid transparent;border-radius:12px;background:rgba(148,163,184,.10);user-select:none}.nav-group summary:hover,.nav-group summary:focus{outline:none;border-color:var(--accent);background:rgba(79,70,229,.13);color:var(--accent)}.nav-group summary:active{transform:translateY(1px)}.nav-count{font-size:11px;font-weight:800;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 7px;background:var(--panel)}.nav-group[open] summary{border-bottom-left-radius:0;border-bottom-right-radius:0;background:rgba(79,70,229,.13);color:var(--accent)}.nav-group-body{border-top:1px solid var(--line);padding-top:8px}.nav-header .btn{white-space:nowrap}.nav button[data-view]{width:100%}
@media(max-width:1050px){.nav-collapsible{grid-template-columns:1fr}.nav-group summary{min-height:44px}.nav-group-body button{min-height:42px}}

/* Final nav fix: use real button toggles instead of <details>/<summary> to avoid mobile rendering glitches. */
.nav-group summary,.nav-count{display:none!important}
.nav-group{border:0!important;background:transparent!important;overflow:visible!important;margin:0 0 8px!important}
.nav-group-toggle{
  width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;
  border:1px solid var(--line);border-radius:14px;background:rgba(148,163,184,.08);
  color:var(--text);font-weight:900;text-align:left;padding:12px 14px;cursor:pointer;
}
.nav-group-toggle::after{content:'▸';font-size:14px;color:var(--muted);transition:transform .18s ease}
.nav-group.open .nav-group-toggle{border-color:var(--accent);background:rgba(79,70,229,.12);color:var(--accent);border-bottom-left-radius:0;border-bottom-right-radius:0}
.nav-group.open .nav-group-toggle::after{transform:rotate(90deg)}
.nav-group-toggle:hover,.nav-group-toggle:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(79,70,229,.12)}
.nav-group-body{border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;padding:8px;background:rgba(148,163,184,.04);display:grid;gap:6px}
.nav-group-body[hidden]{display:none!important}
.nav-group-body button{width:100%;text-align:left;justify-content:flex-start}
#collapseNavBtn{width:100%;min-height:42px;border-radius:14px;font-weight:900}

/* navigation final repair */
.nav button[data-view], .nav-group-toggle, #collapseNavBtn { cursor:pointer; }
.nav-group-toggle { appearance:none; -webkit-appearance:none; font-weight:800; }
.nav button[data-view] { border:1px solid transparent; }
.nav button[data-view]:hover, .nav button[data-view].active { border-color:var(--accent); }
.nav-group-toggle[aria-expanded="true"] { border-color:var(--accent); background:rgba(79,70,229,.12); color:var(--accent); }


/* Store Tab section */
.readonly{min-height:44px;display:flex;align-items:center;border:1px solid var(--border);border-radius:14px;padding:10px 12px;background:var(--soft);font-weight:700}
.store-row .status-open{color:#b45309;font-weight:800}
.store-row .status-paid{color:#15803d;font-weight:800}
.nav-group-body button[data-view="storetab"]::before{content:"🧾 ";}
