
:root {
  --bg:#0b1020;
  --surface:rgba(18,25,46,.86);
  --surface-solid:#12192e;
  --surface-2:rgba(31,40,68,.84);
  --surface-3:#2a3557;
  --text:#f8fbff;
  --muted:#c2cada;
  --faint:#8792a8;
  --border:rgba(164,180,214,.22);
  --primary:#7568ff;
  --primary-2:#52d7ff;
  --primary-text:#ffffff;
  --accent:#7cf3c9;
  --good:#6ee7a8;
  --warn:#ffd166;
  --danger:#ff7a8a;
  --shadow:0 24px 70px rgba(0,0,0,.24);
  --shadow-soft:0 12px 30px rgba(0,0,0,.13);
  --radius:22px;
  --radius-sm:14px;
  --glass-blur:18px;
  --ring-track:#27314f;
  --hero-a:#6258ff;
  --hero-b:#27c4eb;
  --hero-c:#79f1cb;
}
:root[data-theme="aurora"] { --bg:#0b1020; --surface:rgba(18,25,46,.86); --surface-solid:#12192e; --surface-2:rgba(31,40,68,.84); --surface-3:#2a3557; --text:#f8fbff; --muted:#c2cada; --faint:#8792a8; --border:rgba(164,180,214,.22); --primary:#7568ff; --primary-2:#52d7ff; --primary-text:#fff; --accent:#7cf3c9; --good:#6ee7a8; --warn:#ffd166; --danger:#ff7a8a; --ring-track:#27314f; --hero-a:#655dff; --hero-b:#28c9ed; --hero-c:#77f1c8; }
:root[data-theme="gryffindor"] { --bg:#160d10; --surface:rgba(40,20,24,.9); --surface-solid:#281418; --surface-2:rgba(67,30,33,.9); --surface-3:#593338; --text:#fffaf3; --muted:#eadfd2; --faint:#af9b8a; --border:rgba(230,194,154,.24); --primary:#b82e32; --primary-2:#e3ad39; --primary-text:#fff; --accent:#ffd66b; --good:#88d39a; --warn:#ffd166; --danger:#ff8c95; --ring-track:#4b292d; --hero-a:#7d151b; --hero-b:#c94a2d; --hero-c:#e4b545; }
:root[data-theme="slytherin"] { --bg:#07130e; --surface:rgba(14,36,27,.9); --surface-solid:#0e241b; --surface-2:rgba(26,58,45,.9); --surface-3:#315343; --text:#f5fff9; --muted:#d3e4d9; --faint:#92a99a; --border:rgba(179,208,188,.23); --primary:#2f8f62; --primary-2:#a9b7ad; --primary-text:#fff; --accent:#b9d8c3; --good:#72d49b; --warn:#d9c56b; --danger:#ff8793; --ring-track:#24473a; --hero-a:#164d33; --hero-b:#2d7a55; --hero-c:#b6c3b9; }
:root[data-theme="ravenclaw"] { --bg:#08101c; --surface:rgba(17,35,59,.9); --surface-solid:#11233b; --surface-2:rgba(31,56,88,.9); --surface-3:#324e70; --text:#f8fbff; --muted:#d6dfeb; --faint:#94a3b7; --border:rgba(179,195,216,.24); --primary:#3a73b8; --primary-2:#b77b45; --primary-text:#fff; --accent:#d5a26b; --good:#78d5a1; --warn:#e7bd67; --danger:#ff8793; --ring-track:#284460; --hero-a:#173d6c; --hero-b:#2e6da9; --hero-c:#b37642; }
:root[data-theme="hufflepuff"] { --bg:#17140b; --surface:rgba(42,36,18,.9); --surface-solid:#2a2412; --surface-2:rgba(69,58,25,.9); --surface-3:#5c4e29; --text:#fffdf6; --muted:#eee7ce; --faint:#aaa081; --border:rgba(224,205,139,.25); --primary:#b79123; --primary-2:#f2d966; --primary-text:#17120a; --accent:#ffe682; --good:#8bd49c; --warn:#ffd166; --danger:#ff8f94; --ring-track:#4e431f; --hero-a:#4a3c0d; --hero-b:#a48019; --hero-c:#e5cb5a; }
:root[data-theme="fall"] { --bg:#17100c; --surface:rgba(46,28,20,.9); --surface-solid:#2e1c14; --surface-2:rgba(72,42,28,.9); --surface-3:#604330; --text:#fffaf4; --muted:#eadbcf; --faint:#ad9685; --border:rgba(226,190,156,.23); --primary:#d1652e; --primary-2:#e9a33e; --primary-text:#fff; --accent:#d8c364; --good:#8bc58a; --warn:#f4bf5a; --danger:#ff8c82; --ring-track:#543528; --hero-a:#8a321c; --hero-b:#cf652f; --hero-c:#d9b84c; }
:root[data-theme="midnight"] { --bg:#05070c; --surface:rgba(15,18,25,.94); --surface-solid:#0f1219; --surface-2:rgba(29,34,45,.94); --surface-3:#303746; --text:#ffffff; --muted:#d5dae4; --faint:#919bad; --border:rgba(190,200,220,.2); --primary:#b27cff; --primary-2:#58d9ff; --primary-text:#fff; --accent:#8ff4d1; --good:#78e5a7; --warn:#ffd166; --danger:#ff8393; --ring-track:#252c39; --hero-a:#5d3fa7; --hero-b:#167f9e; --hero-c:#368f79; }
:root[data-theme="daylight"] { --bg:#f2f5fb; --surface:rgba(255,255,255,.92); --surface-solid:#fff; --surface-2:rgba(240,244,252,.98); --surface-3:#dfe6f3; --text:#111827; --muted:#49566c; --faint:#7b879c; --border:rgba(76,93,126,.18); --primary:#5146e5; --primary-2:#1687c9; --primary-text:#fff; --accent:#0f9f7f; --good:#238551; --warn:#9a6b0b; --danger:#c84052; --ring-track:#e3e8f2; --hero-a:#5146e5; --hero-b:#1c92c7; --hero-c:#47b79e; --shadow:0 20px 55px rgba(34,47,74,.11); --shadow-soft:0 10px 24px rgba(34,47,74,.08); }

*{box-sizing:border-box}
html{background:var(--bg);color-scheme:dark;scroll-behavior:smooth}
:root[data-theme="daylight"]{color-scheme:light}
body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);font-weight:560}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.5}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--primary-2) 55%,transparent);outline-offset:2px}
#ambient{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}
#ambient span{position:absolute;border-radius:50%;filter:blur(75px);opacity:.13}
#ambient span:nth-child(1){width:340px;height:340px;background:var(--hero-a);top:-90px;right:8%}
#ambient span:nth-child(2){width:300px;height:300px;background:var(--hero-b);left:-90px;top:38%}
#ambient span:nth-child(3){width:280px;height:280px;background:var(--hero-c);right:10%;bottom:-100px}
.app-shell{position:relative;z-index:1;min-height:100vh}
.topbar{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 20px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 76%,transparent);backdrop-filter:blur(var(--glass-blur)) saturate(135%)}
.brand-wrap,.top-actions{display:flex;align-items:center;gap:11px}.brand-copy{min-width:0}.brand-mark{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;font-weight:950;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;box-shadow:0 8px 22px color-mix(in srgb,var(--primary) 28%,transparent)}
.topbar h1{margin:0;color:var(--text);font-size:1.25rem;letter-spacing:-.03em;font-weight:900}.eyebrow{color:var(--muted);font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.09em}
.layout{display:grid;grid-template-columns:242px minmax(0,1fr);min-height:calc(100vh - 66px)}
.sidebar{position:sticky;top:66px;height:calc(100vh - 66px);border-right:1px solid var(--border);padding:18px 13px 16px;display:flex;flex-direction:column;justify-content:space-between;background:color-mix(in srgb,var(--surface) 70%,transparent);backdrop-filter:blur(16px)}
.nav-section-label{padding:0 11px 8px;color:var(--faint);font-size:.66rem;letter-spacing:.12em;font-weight:900;text-transform:uppercase}.nav-section-gap{margin-top:22px}.nav-list{display:grid;gap:5px}.nav-item{width:100%;border:1px solid transparent;border-radius:13px;padding:11px 12px;display:flex;align-items:center;gap:11px;background:transparent;color:var(--muted);font-weight:800;text-align:left;transition:.18s ease}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 22%,var(--surface-2)),var(--surface-2));color:var(--text);border-color:color-mix(in srgb,var(--primary) 30%,var(--border));box-shadow:inset 3px 0 0 var(--primary)}.nav-icon{width:22px;text-align:center;color:var(--primary-2);font-size:1.05rem}
.sidebar-card{width:100%;padding:13px;border:1px solid var(--border);border-radius:15px;background:var(--surface-2);color:var(--text);text-align:left}.sidebar-card-label,.sidebar-card-sub{display:block;color:var(--muted);font-size:.69rem;font-weight:760}.sidebar-card strong{display:block;margin:4px 0;font-size:.93rem}.local-chip{display:flex;align-items:center;gap:7px;padding:11px 7px 0;color:var(--faint);font-size:.7rem;font-weight:720}.local-dot{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 12px var(--good)}
.main-content{padding:24px;min-width:0}.view{display:none;max-width:1220px;margin:0 auto;animation:fadeIn .18s ease}.view.active{display:block}@keyframes fadeIn{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:none}}
.primary-btn,.secondary-btn,.danger-btn,.ghost-btn{min-height:43px;border-radius:13px;padding:0 15px;font-weight:860;border:1px solid transparent;transition:.16s ease}.primary-btn{background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary-2) 58%,var(--primary)));color:var(--primary-text);box-shadow:0 9px 24px color-mix(in srgb,var(--primary) 20%,transparent)}.primary-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}.secondary-btn{background:var(--surface);color:var(--text);border-color:var(--border)}.ghost-btn{background:var(--surface-2);color:var(--text);border-color:var(--border)}.danger-btn{background:color-mix(in srgb,var(--danger) 13%,var(--surface));color:var(--danger);border-color:color-mix(in srgb,var(--danger) 36%,var(--border))}.icon-btn,.mini-icon{display:grid;place-items:center;border:1px solid var(--border);background:var(--surface);color:var(--text)}.icon-btn{width:43px;height:43px;border-radius:13px}.mini-icon{width:32px;height:32px;border-radius:10px;font-size:1.15rem}.month-stepper{display:flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--border);background:var(--surface);border-radius:13px}.month-step-label{border:0;background:transparent;color:var(--text);font-size:.78rem;font-weight:850;padding:0 6px;min-width:108px}
.hero{border:1px solid color-mix(in srgb,var(--primary-2) 30%,var(--border));border-radius:28px;padding:25px;background:linear-gradient(135deg,color-mix(in srgb,var(--hero-a) 90%,#000),var(--hero-b) 54%,var(--hero-c));box-shadow:var(--shadow);position:relative;overflow:hidden}.hero::after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-80px;top:-130px;border:42px solid rgba(255,255,255,.07)}.hero::before{content:"";position:absolute;width:170px;height:170px;border-radius:50%;right:100px;bottom:-130px;border:24px solid rgba(255,255,255,.06)}.hero h2,.hero p,.hero .eyebrow{color:#fff}.hero-row{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;flex-wrap:wrap;position:relative;z-index:2}.command-tag{display:inline-flex;align-items:center;margin-top:10px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--primary-2) 55%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--text);font-size:.68rem;font-weight:900;letter-spacing:.14em}
.hero-title{margin:2px 0 0;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:950;letter-spacing:-.045em}.hero-sub{margin:7px 0 0;font-weight:690;opacity:.92;max-width:690px}.status-pill{background:rgba(255,255,255,.95);color:#142116;border-radius:999px;padding:9px 12px;font-weight:900;font-size:.8rem;box-shadow:0 7px 18px rgba(0,0,0,.12)}
.grid{display:grid;gap:14px}.grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.split-main{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:14px}.section-space{margin-top:17px}
.card{background:var(--surface);backdrop-filter:blur(14px);border:1px solid var(--border);border-radius:var(--radius);padding:18px;color:var(--text);box-shadow:var(--shadow-soft)}.soft-card{background:var(--surface-2);border:1px solid var(--border);border-radius:17px;padding:15px;color:var(--text)}.metric-card{position:relative;overflow:hidden}.metric-card::after{content:"";position:absolute;right:-20px;top:-24px;width:62px;height:62px;border-radius:50%;background:color-mix(in srgb,var(--primary-2) 12%,transparent)}.metric-label{color:var(--muted);font-weight:820;font-size:.74rem;text-transform:uppercase;letter-spacing:.055em}.metric-value{color:var(--text);font-weight:950;font-size:1.43rem;margin-top:5px;letter-spacing:-.03em;position:relative;z-index:1}.metric-note{color:var(--faint);font-size:.71rem;font-weight:720;margin-top:4px}.metric-value.danger{color:var(--danger)}.metric-value.good{color:var(--good)}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}.section-title{margin:0;font-size:1.05rem;font-weight:940;color:var(--text);letter-spacing:-.015em}.section-sub{color:var(--muted);margin:4px 0 0;font-size:.86rem;font-weight:620}.section-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dashboard-orbit{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:center}.donut{--pct:0;--donut-color:var(--primary-2);width:136px;height:136px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--donut-color) calc(var(--pct)*1%),var(--ring-track) 0);position:relative}.donut::after{content:"";position:absolute;inset:14px;border-radius:50%;background:var(--surface-solid);border:1px solid var(--border)}.donut-copy{position:relative;z-index:1;text-align:center}.donut-value{font-size:1.45rem;font-weight:950}.donut-label{font-size:.68rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.insight-list{display:grid;gap:9px}.insight{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 11px;background:var(--surface-2);border:1px solid var(--border);border-radius:13px}.insight span{color:var(--muted);font-size:.77rem;font-weight:740}.insight strong{font-size:.84rem}
.folder-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.folder-card{border:1px solid var(--border);border-radius:17px;background:var(--surface);color:var(--text);padding:15px;text-align:left;min-width:0;transition:.16s ease}.folder-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary-2) 38%,var(--border))}.folder-card.active{background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 14%,var(--surface-2)),var(--surface-2));border-color:color-mix(in srgb,var(--primary) 45%,var(--border));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 18%,transparent)}.folder-emoji{font-size:1.5rem}.folder-name{margin-top:8px;font-weight:910;color:var(--text)}.folder-meta{margin-top:3px;font-size:.73rem;color:var(--muted);font-weight:690}.folder-balance{margin-top:9px;font-size:.95rem;font-weight:930;color:var(--text)}
.budget-row,.account-row,.bucket-row,.transaction-row,.manage-row,.recurring-row{border-top:1px solid var(--border);padding:14px 0}.budget-row:first-child,.account-row:first-child,.bucket-row:first-child,.transaction-row:first-child,.manage-row:first-child,.recurring-row:first-child{border-top:0;padding-top:0}.row-main{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.row-title{font-weight:900;color:var(--text)}.row-meta{color:var(--muted);font-size:.76rem;font-weight:640;margin-top:3px;line-height:1.45}.row-value{font-weight:950;color:var(--text);text-align:right}.row-value.negative{color:var(--danger)}.row-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.small-btn{min-height:35px;border:1px solid var(--border);border-radius:10px;padding:0 10px;background:var(--surface);color:var(--text);font-size:.75rem;font-weight:820}.small-btn:hover{background:var(--surface-2)}.progress{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden;margin-top:9px}.progress>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--primary-2))}.progress>span.good{background:linear-gradient(90deg,var(--good),var(--accent))}.progress>span.danger{background:var(--danger)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}label{font-weight:830;font-size:.82rem;color:var(--text)}input,select,textarea{min-height:45px;border:1px solid var(--border);border-radius:12px;background:var(--surface-solid);color:var(--text);padding:0 12px;font-size:16px;font-weight:640;width:100%}textarea{padding-top:10px;min-height:86px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--faint);opacity:1}.check-row{display:flex;align-items:flex-start;gap:10px;background:var(--surface-2);padding:12px;border-radius:12px;border:1px solid var(--border)}.check-row input{width:20px;min-height:20px;margin-top:1px}.helper{color:var(--faint);font-size:.72rem;font-weight:630;line-height:1.45}.inline-fields{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.inline-fields .field{min-width:150px;flex:1}
.month-toolbar,.filter-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.month-chip,.filter-chip{padding:8px 11px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-weight:790;font-size:.77rem}.filter-chip.active{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.search-input{min-width:220px;flex:1}.filter-select{width:auto;min-width:145px}
.empty{padding:23px;text-align:center;color:var(--muted);font-weight:690;border:1px dashed var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface-2) 50%,transparent)}.alert{border-radius:14px;padding:12px 13px;font-weight:720;line-height:1.45}.alert.good{background:color-mix(in srgb,var(--good) 12%,var(--surface));color:var(--good);border:1px solid color-mix(in srgb,var(--good) 34%,var(--border))}.alert.warn{background:color-mix(in srgb,var(--warn) 11%,var(--surface));color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 33%,var(--border))}.alert.danger{background:color-mix(in srgb,var(--danger) 11%,var(--surface));color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 33%,var(--border))}.alert.info{background:color-mix(in srgb,var(--primary-2) 10%,var(--surface));color:var(--text);border:1px solid color-mix(in srgb,var(--primary-2) 30%,var(--border))}
.badge{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:.68rem;font-weight:820;color:var(--muted)}.badge.good{color:var(--good)}.badge.warn{color:var(--warn)}.badge.danger{color:var(--danger)}
.account-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.account-card{padding:16px;border:1px solid var(--border);border-radius:17px;background:var(--surface-2)}.account-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 15%,var(--surface));border:1px solid var(--border)}.account-balance{font-size:1.25rem;font-weight:950;margin-top:12px}.account-type{color:var(--muted);font-size:.72rem;font-weight:760;text-transform:uppercase;letter-spacing:.05em}.account-sub{color:var(--faint);font-size:.72rem;font-weight:650;margin-top:4px}
.spark-bars{display:flex;align-items:flex-end;gap:5px;height:78px;padding-top:8px}.spark-bars span{flex:1;min-width:5px;border-radius:4px 4px 2px 2px;background:linear-gradient(var(--primary-2),var(--primary));opacity:.9}.spark-labels{display:flex;justify-content:space-between;color:var(--faint);font-size:.62rem;font-weight:700;margin-top:5px}
.theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.theme-option{border:1px solid var(--border);border-radius:14px;background:var(--surface-2);color:var(--text);padding:13px;text-align:left;font-weight:850}.theme-option.active{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.theme-dots{display:flex;gap:5px;margin-top:9px}.theme-dots span{width:20px;height:9px;border-radius:999px;border:1px solid rgba(255,255,255,.2)}
.settings-stack{display:grid;gap:14px}.setting-row{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 0;border-top:1px solid var(--border)}.setting-row:first-child{border-top:0;padding-top:0}.setting-copy strong{display:block}.setting-copy span{display:block;color:var(--muted);font-size:.76rem;font-weight:630;margin-top:3px}.switch{position:relative;width:48px;height:28px;flex:none}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{position:absolute;inset:0;border-radius:999px;background:var(--surface-3);border:1px solid var(--border);transition:.18s}.switch span::after{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.18s}.switch input:checked+span{background:var(--primary);border-color:var(--primary)}.switch input:checked+span::after{transform:translateX(20px)}
.modal{border:0;padding:0;background:transparent;max-width:min(680px,calc(100vw - 24px));width:100%;color:var(--text)}.modal::backdrop{background:rgba(1,4,12,.68);backdrop-filter:blur(5px)}.modal-card{margin:0;background:var(--surface-solid);color:var(--text);border:1px solid var(--border);border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.42);overflow:hidden;max-height:88vh;display:flex;flex-direction:column}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:18px 18px 13px;border-bottom:1px solid var(--border)}.modal-head h2{margin:2px 0 0;font-size:1.22rem;color:var(--text)}.modal-body{padding:17px;overflow:auto}.modal-actions{padding:13px 17px 17px;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;border-top:1px solid var(--border)}
.toast{position:fixed;left:50%;bottom:22px;z-index:60;transform:translate(-50%,140%);transition:.22s ease;display:flex;align-items:center;gap:10px;max-width:min(540px,calc(100vw - 28px));background:#090d18;color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:11px 13px;box-shadow:0 18px 45px rgba(0,0,0,.35);font-weight:760;font-size:.82rem}.toast.show{transform:translate(-50%,0)}.toast button{border:0;background:rgba(255,255,255,.13);color:#fff;border-radius:9px;padding:6px 9px;font-weight:850}
.mobile-only{display:none}.desktop-only{display:flex}
.mobile-tabbar,.mobile-more-sheet,.mobile-more-backdrop{display:none}
.mobile-month-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;min-height:38px;padding:0 11px;font-size:.72rem;font-weight:850;white-space:nowrap}


/* Customizable overview dashboard */
.overview-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface-2);color:var(--text)}
.overview-controls>div:first-child{display:grid;gap:2px;min-width:0}.overview-controls strong{font-size:.9rem}.overview-controls span{color:var(--muted);font-size:.74rem;font-weight:690;line-height:1.35}
.overview-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row;gap:14px;margin-top:14px;align-items:stretch}.overview-widget{--widget-preferred-span:6;grid-column:span var(--widget-span,var(--widget-preferred-span));min-width:0;position:relative;margin:0;height:100%;transition:transform .16s ease,opacity .16s ease,border-color .16s ease,box-shadow .16s ease}.overview-widget.widget-size-small{--widget-preferred-span:3}.overview-widget.widget-size-medium{--widget-preferred-span:6}.overview-widget.widget-size-wide{--widget-preferred-span:12}
.overview-editing .overview-widget{border-style:dashed;border-color:color-mix(in srgb,var(--primary-2) 48%,var(--border));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 12%,transparent)}.overview-widget.dragging{opacity:.72;transform:scale(.985);z-index:5;box-shadow:var(--shadow)}.overview-widget.drag-over{border-color:var(--primary-2);transform:translateY(-2px);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-2) 25%,transparent),var(--shadow-soft)}.widget-hidden-preview{opacity:.48;filter:saturate(.65)}
.widget-toolbar{display:flex;align-items:center;gap:9px;padding:0 0 12px;margin-bottom:12px;border-bottom:1px solid var(--border)}.widget-drag{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:94px;height:40px;padding:0 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--primary-2) 36%,var(--border));background:color-mix(in srgb,var(--primary) 10%,var(--surface-2));color:var(--text);font-size:.76rem;font-weight:900;cursor:grab;user-select:none;touch-action:none;-webkit-user-select:none}.widget-drag span:first-child{color:var(--primary-2);font-size:1.05rem;letter-spacing:-2px}.widget-drag:active{cursor:grabbing;transform:scale(.98)}.widget-name{display:flex;align-items:center;gap:6px;color:var(--text);font-weight:850;font-size:.8rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.widget-name-icon{font-size:1rem;flex:none}.widget-tools{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.widget-tool{min-height:34px;padding:0 10px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:.71rem;font-weight:820}.widget-tool:hover{border-color:color-mix(in srgb,var(--primary-2) 42%,var(--border))}.widget-tool:disabled{opacity:.35}.size-tool{min-width:68px}.move-step{min-width:70px}.overview-editing .overview-widget-content{pointer-events:none}.overview-editing .widget-toolbar{pointer-events:auto}.widget-drag-active{user-select:none;-webkit-user-select:none;cursor:grabbing}.widget-drag-active *{cursor:grabbing!important}.metric-label{display:flex;align-items:center;gap:7px}.metric-emoji{font-size:1.14rem;filter:saturate(1.15)}.section-title{display:flex;align-items:center;gap:8px}.section-icon{font-size:1.15em;line-height:1}

.rollover-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.8fr);gap:12px;align-items:end;margin-top:14px}.rollover-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.rollover-summary>div{padding:10px;border:1px solid var(--border);background:var(--surface-2);border-radius:13px;min-width:0}.rollover-summary span{display:block;color:var(--muted);font-size:.7rem;font-weight:780}.rollover-summary strong{display:block;margin-top:3px;font-size:.92rem;overflow-wrap:anywhere}.rollover-tools{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 10px}.rollover-list{display:grid;gap:12px}.rollover-folder{border:1px solid var(--border);border-radius:17px;overflow:hidden;background:var(--surface)}.rollover-folder-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;background:var(--surface-2);border-bottom:1px solid var(--border);flex-wrap:wrap}.rollover-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(125px,.6fr) minmax(170px,.8fr);gap:12px;align-items:center;padding:12px 13px;border-bottom:1px solid var(--border)}.rollover-row:last-child{border-bottom:0}.rollover-row .field{gap:5px}.rollover-row .field label{font-size:.7rem}.rollover-row input[type=number]{min-height:40px}.rollover-carry{padding:8px 10px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}.rollover-carry.fund-carry{background:color-mix(in srgb,var(--success) 8%,var(--surface-2))}.rollover-options{display:grid;gap:8px;margin-top:14px}.rollover-options .check-row{padding:11px 12px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2)}
@media(max-width:980px){.overview-widget.widget-size-small,.overview-widget.widget-size-medium{--widget-preferred-span:6}.overview-widget.widget-size-wide{--widget-preferred-span:12}.overview-controls{align-items:flex-start}.overview-controls .section-actions{justify-content:flex-end}.grid-5{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.folder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-main{grid-template-columns:1fr}.layout{grid-template-columns:210px minmax(0,1fr)}}
@media(max-width:760px){
  body{padding-bottom:calc(82px + env(safe-area-inset-bottom));overscroll-behavior-y:none}
  .mobile-only{display:grid}.desktop-only{display:none}.legacy-mobile-menu{display:none!important}
  .topbar{padding:calc(8px + env(safe-area-inset-top)) 12px 8px;min-height:60px;gap:8px;background:color-mix(in srgb,var(--bg) 88%,transparent);border-bottom-color:color-mix(in srgb,var(--border) 80%,transparent)}
  .brand-wrap{gap:9px;min-width:0}.brand-mark{display:grid;width:34px;height:34px;border-radius:11px;font-size:.9rem}.brand-copy .eyebrow{font-size:.57rem;letter-spacing:.075em}.topbar h1{font-size:1.02rem;white-space:nowrap}.top-actions{margin-left:auto}.top-actions>.primary-btn,.top-actions>.secondary-btn{display:none}.mobile-month-chip{display:grid;place-items:center}
  .layout{display:block}.sidebar{display:none!important}.main-content{padding:12px 10px 22px}.view{max-width:none}
  .hero{padding:17px 16px;border-radius:22px}.hero::after{width:190px;height:190px;right:-72px;top:-96px;border-width:28px}.hero::before{display:none}.hero-row{gap:12px}.hero-title{font-size:1.62rem}.command-tag{margin-top:7px;padding:5px 8px;font-size:.59rem}.status-pill{padding:7px 10px;font-size:.72rem}
  .overview-grid{gap:10px;margin-top:10px}.overview-widget{grid-column:span var(--widget-span,var(--widget-preferred-span))!important;border-radius:19px}.overview-widget.widget-size-small{--widget-preferred-span:6}.overview-widget.widget-size-medium,.overview-widget.widget-size-wide{--widget-preferred-span:12}.overview-controls{display:grid;gap:10px;margin-top:12px}.overview-controls>div:first-child span{font-size:.75rem;line-height:1.35}.overview-controls .section-actions{justify-content:flex-start}.overview-controls .secondary-btn,.overview-controls .ghost-btn{min-height:38px;padding:0 12px;font-size:.76rem}
  .card{padding:15px;border-radius:19px}.metric-card{padding:14px}.metric-label{font-size:.65rem}.metric-value{font-size:1.22rem}.metric-note{font-size:.65rem}.metric-emoji{font-size:1rem}.section-head{gap:9px;margin-bottom:11px}.section-title{font-size:1rem}.section-sub{font-size:.78rem;line-height:1.35}.section-actions{gap:6px}.section-actions .primary-btn,.section-actions .secondary-btn,.section-actions .ghost-btn{min-height:39px;padding:0 11px;font-size:.75rem}
  .grid-5,.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:1fr}.folder-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.account-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.split-main{grid-template-columns:1fr}.dashboard-orbit{grid-template-columns:1fr;gap:12px}.donut{width:120px;height:120px;margin:0 auto}.insight-list{gap:7px}.insight{padding:9px 10px}.folder-card{padding:13px;border-radius:15px}.folder-emoji{font-size:1.3rem}.folder-name{font-size:.88rem}.folder-meta{font-size:.67rem}.folder-balance{font-size:.86rem}.row-main{gap:9px}.filter-select{width:100%}.search-input{min-width:0;width:100%}.filter-bar>*{flex:1 1 150px}
  .budget-row,.transaction-row,.recurring-row,.bucket-row{border-radius:15px}.row-title{font-size:.87rem}.row-meta{font-size:.69rem}.row-value{font-size:.9rem}
  .widget-toolbar{align-items:center;flex-wrap:wrap}.widget-drag{min-width:106px;min-height:44px}.widget-name{flex:1 1 120px}.widget-tools{margin-left:0;width:100%;justify-content:flex-start}.widget-tool{min-height:40px;flex:1 1 auto}
  .rollover-top{grid-template-columns:1fr}.rollover-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.rollover-row{grid-template-columns:1fr}.rollover-carry{width:100%}
  .mobile-tabbar{position:fixed;z-index:52;left:8px;right:8px;bottom:calc(7px + env(safe-area-inset-bottom));height:66px;display:grid;grid-template-columns:repeat(5,1fr);align-items:end;padding:6px 5px;border:1px solid var(--border);border-radius:22px;background:color-mix(in srgb,var(--surface-solid) 94%,transparent);backdrop-filter:blur(22px) saturate(145%);box-shadow:0 18px 48px rgba(0,0,0,.33)}
  .mobile-tab{position:relative;height:52px;border:0;background:transparent;color:var(--faint);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:14px;font-size:.61rem;font-weight:830;padding:2px}.mobile-tab-icon{font-size:1.16rem;line-height:1}.mobile-tab.active{color:var(--text);background:color-mix(in srgb,var(--primary) 13%,transparent)}.mobile-tab.active .mobile-tab-icon{filter:drop-shadow(0 0 7px color-mix(in srgb,var(--primary-2) 55%,transparent))}
  .mobile-tab.mobile-add{overflow:visible;color:var(--text);background:transparent}.mobile-add-circle{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;margin-top:-22px;margin-bottom:1px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;border:4px solid var(--bg);font-size:1.8rem;font-weight:500;box-shadow:0 9px 25px color-mix(in srgb,var(--primary) 42%,transparent)}.mobile-add span:last-child{font-size:.61rem}
  .mobile-more-backdrop{position:fixed;z-index:53;inset:0;display:block;background:rgba(2,5,12,.58);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:.18s ease}.mobile-more-backdrop.open{opacity:1;pointer-events:auto}
  .mobile-more-sheet{position:fixed;z-index:54;left:8px;right:8px;bottom:calc(7px + env(safe-area-inset-bottom));display:block;padding:8px 14px 16px;border:1px solid var(--border);border-radius:26px;background:var(--surface-solid);box-shadow:0 26px 80px rgba(0,0,0,.46);transform:translateY(calc(100% + 30px));opacity:.5;pointer-events:none;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .2s ease}.mobile-more-sheet.open{transform:none;opacity:1;pointer-events:auto}.mobile-more-open .mobile-tabbar{opacity:0;pointer-events:none;transform:translateY(12px)}.mobile-sheet-handle{width:40px;height:4px;border-radius:999px;background:var(--surface-3);margin:2px auto 10px}.mobile-more-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 12px}.mobile-more-head h2{margin:2px 0 0;font-size:1.32rem}.mobile-more-head .icon-btn{width:38px;height:38px;border-radius:12px}.mobile-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.mobile-more-grid button{min-height:92px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:17px;padding:12px;text-align:left;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:center}.mobile-more-grid button>span{grid-row:1 / 3;font-size:1.45rem}.mobile-more-grid strong{font-size:.86rem;align-self:end}.mobile-more-grid small{color:var(--muted);font-size:.68rem;font-weight:700;align-self:start}.mobile-more-status{display:flex;align-items:center;justify-content:center;gap:7px;color:var(--faint);font-size:.68rem;font-weight:730;padding-top:13px}
  .modal{width:100%;max-width:100%;margin:auto 0 0;max-height:94dvh}.modal-card{max-height:94dvh;border-radius:26px 26px 0 0;border-bottom:0}.modal-head{position:sticky;top:0;z-index:2;background:var(--surface-solid);padding:14px 14px 11px}.modal-body{padding:14px}.modal-actions{position:sticky;bottom:0;z-index:2;background:var(--surface-solid);padding:11px 12px calc(11px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.modal-actions>*{min-height:46px;margin:0}.modal-actions>*:only-child{grid-column:1/-1}.modal-actions>*:nth-last-child(3):first-child{grid-column:1/-1}.modal-actions>*:nth-last-child(3):first-child~*{grid-column:auto}
  .toast{bottom:calc(86px + env(safe-area-inset-bottom));max-width:calc(100vw - 22px)}
}
@media(max-width:420px){.grid-5,.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.folder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-grid{grid-template-columns:1fr}.main-content{padding-left:9px;padding-right:9px}.hero-row{display:block}.status-pill{display:inline-flex;margin-top:11px}.modal-actions{grid-template-columns:1fr}.modal-actions>*{grid-column:1!important}.mobile-more-grid{gap:8px}.mobile-more-grid button{min-height:86px;padding:11px}.mobile-tabbar{left:6px;right:6px}.brand-mark{display:none}.topbar h1{font-size:.98rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Dynamic dashboard packing + icon polish */
.metric-emoji,.section-icon{display:inline-grid;place-items:center;flex:none;width:30px;height:30px;border-radius:10px;background:color-mix(in srgb,var(--primary) 12%,var(--surface-2));border:1px solid color-mix(in srgb,var(--primary-2) 28%,var(--border));font-size:1rem;line-height:1}.metric-label{min-height:30px}.overview-widget-content{height:100%}.overview-widget.metric-card .overview-widget-content{display:flex;flex-direction:column;justify-content:center}


/* Accessibility and mobile usability */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.metric-value,.row-value,.account-balance{font-variant-numeric:tabular-nums}
@media(max-width:600px){input,select,textarea{font-size:16px!important}.small-btn,.mini-icon{min-height:44px;min-width:44px}.main-content{padding-bottom:calc(110px + env(safe-area-inset-bottom))}}

/* Mobile app refinement */
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.mobile-quick-actions{display:none}
.transaction-notes summary{cursor:pointer;min-height:44px;align-content:center;color:var(--muted);font-size:.85rem}
.dialog-open{overflow:hidden}
@media(max-width:760px){
  .topbar{padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));gap:8px}
  .topbar h1{font-size:1.02rem}.topbar .eyebrow{font-size:.6rem}.mobile-month-chip{min-height:44px}
  .main-content{padding:16px 14px calc(108px + env(safe-area-inset-bottom))}
  .hero{padding:21px;border-radius:24px}.hero-title{font-size:1.75rem;max-width:250px;line-height:1.08}.hero-sub{font-size:.8rem;margin-top:9px}.command-tag{display:none}.hero-row{display:block}.status-pill{margin-top:14px;display:inline-flex;padding:7px 11px}
  .mobile-quick-actions{display:grid;grid-template-columns:1.2fr 1fr;gap:9px;margin:14px 0}.mobile-quick-actions button{padding:0 10px;font-size:.8rem;min-height:48px}
  .overview-controls{padding:0;background:none;border:0;align-items:center;flex-direction:row}.overview-controls>div:first-child>span{display:none}.overview-controls strong{font-size:1rem}.overview-controls .secondary-btn{font-size:.72rem;min-height:44px;padding:0 11px}
  .overview-editing .widget-toolbar{flex-wrap:wrap}.overview-widget{border-radius:19px;padding:16px}.metric-label{font-size:.62rem;letter-spacing:.025em;display:flex;align-items:center;gap:6px}.metric-emoji{width:24px;height:24px;font-size:1rem;flex:none}.metric-value{font-size:1.35rem;margin-top:10px}.metric-note{font-size:.67rem;line-height:1.4}
  .mobile-tabbar{left:0;right:0;bottom:0;border-radius:22px 22px 0 0;height:calc(74px + env(safe-area-inset-bottom));padding:8px 8px calc(8px + env(safe-area-inset-bottom));align-items:center}.mobile-tab{min-height:54px;gap:4px}.mobile-add-circle{width:45px;height:40px;border-radius:14px;border:0;margin:0;box-shadow:none;font-size:1.7rem}.mobile-add span:last-child{font-size:.65rem}.mobile-tab-icon{font-size:1.25rem}
  .dialog-open .mobile-tabbar{visibility:hidden}.toast{bottom:calc(86px + env(safe-area-inset-bottom));z-index:70}.dialog-open .toast{bottom:calc(90px + env(safe-area-inset-bottom))}
  #view-budget>.folder-grid{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 0 10px;gap:10px}#view-budget>.folder-grid .folder-card{flex:0 0 145px;scroll-snap-align:start}
  .filter-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.search-input{grid-column:1/-1;min-width:0}.filter-select{width:100%;min-width:0}.filter-bar select:last-child{grid-column:1/-1}
  .row-main>div:first-child{min-width:0;overflow-wrap:anywhere}.row-value{flex-shrink:0;font-size:.95rem}.section-actions{gap:8px}.section-actions button{min-height:44px;font-size:.75rem}
  .modal{max-height:92dvh}.modal-card{max-height:92dvh}.modal-head{padding:20px 18px 14px}.modal-body{padding:18px;overscroll-behavior:contain}.modal-actions{grid-template-columns:1fr 1.4fr;padding:12px 18px calc(14px + env(safe-area-inset-bottom))}.modal-actions>*{grid-column:auto!important;min-height:50px}
  .transaction-form{grid-template-columns:1fr 1fr;gap:16px}.transaction-form .transaction-amount{grid-column:1/-1;grid-row:2}.transaction-amount input{font-size:2.15rem!important;font-weight:850;height:72px;background:var(--surface-2)}.transaction-form #txCategoryField,.transaction-form .field:has(#txAccount),.transaction-form #txToField{grid-column:1/-1}.transaction-form textarea{margin-top:8px}
  .mobile-more-sheet{max-height:88dvh;overflow:auto}.mobile-more-head .icon-btn{width:44px;height:44px}
}
@media(max-width:420px){.main-content{padding-left:14px;padding-right:14px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-value{font-size:1.22rem}.metric-label{font-size:.6rem}.mobile-tabbar{left:0;right:0}.dashboard-orbit{grid-template-columns:1fr}.donut{margin:auto}.brand-mark{display:none}}
@media(max-width:760px){
  body{padding-bottom:0}
  .overview-controls{display:flex;justify-content:space-between}
  .transaction-form .field.full{grid-column:1/-1}
  .modal-actions>*:only-child{grid-column:1/-1!important}
}
@media(max-width:760px){#view-budget>.card>.folder-grid{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 0 10px;gap:10px}#view-budget>.card>.folder-grid .folder-card{flex:0 0 145px;scroll-snap-align:start}}
.pwa-tools{display:grid;gap:10px;margin:14px 0 8px;padding-top:14px;border-top:1px solid var(--border)}
.pwa-tools button{min-height:48px}.pwa-tools [hidden]{display:none}
#pwaStatus{font-size:.73rem;color:var(--muted);line-height:1.45;margin:0}
#installHelp{line-height:1.65;margin-top:0}
#installDialog{z-index:100}#installDialog .modal-body{padding-bottom:28px}
[hidden]{display:none!important}
.vault-gate{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--bg)}
.vault-card{width:min(100%,420px);padding:28px;border-radius:24px;background:var(--surface-solid);border:1px solid var(--border);display:grid;gap:14px}
.vault-card h1{font-size:1.6rem;margin:0}.vault-card p{margin:0;line-height:1.55;color:var(--muted)}
.vault-card label{display:block;margin-bottom:7px}.vault-card button{min-height:50px}.vault-mark{width:56px;height:56px;display:grid;place-items:center;font-size:2rem;font-weight:900;border-radius:18px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff}
#vaultMessage{color:var(--warn);font-size:.85rem;min-height:20px}.privacy-hidden{visibility:hidden!important}
.save-warning{position:sticky;top:0;z-index:120;background:#702f32;color:white;padding:12px;font-size:.85rem}
