:root{color-scheme:dark;--bg:#0b0e14;--surface:#121722;--surface-2:#171e2b;--surface-3:#1d2635;--border:#283244;--text:#eef2fa;--muted:#8f9bb0;--faint:#647188;--accent:#a6b8ff;--accent-strong:#829cff;--accent-ink:#141b31;--green:#77d8ad;--red:#ff8793;--amber:#f0c477;--radius:18px;--shadow:0 18px 52px rgba(0,0,0,.22)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 12% -15%,rgba(101,124,203,.12),transparent 42%),var(--bg);color:var(--text);font-family:'DM Sans',system-ui,sans-serif;font-size:14px;line-height:1.5}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,'DM Sans',sans-serif;letter-spacing:-.035em}h1{font-size:clamp(1.8rem,4vw,2.45rem);line-height:1.14;margin-bottom:9px;font-weight:800}h2{font-size:1.25rem;margin-bottom:0;font-weight:750}h3{font-size:1.08rem;margin-bottom:9px;font-weight:750}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app-shell{max-width:1480px;margin:0 auto;padding:0 34px}.topbar{height:82px;display:flex;align-items:center;gap:36px;border-bottom:1px solid rgba(136,151,178,.13)}.brand{display:flex;align-items:center;gap:11px;font-family:Manrope,sans-serif;font-weight:800;font-size:1.08rem;white-space:nowrap}.brand-mark{height:32px;width:32px;display:grid;place-items:center;border-radius:11px;color:#141b31;background:linear-gradient(145deg,#c7d2ff,#829cff);font-family:Manrope,sans-serif;font-weight:900;box-shadow:0 5px 18px rgba(130,156,255,.16)}.brand-mark.large{height:48px;width:48px;border-radius:15px;font-size:1.4rem}.main-nav{display:flex;align-items:center;gap:7px;flex:1}.main-nav a{padding:9px 13px;color:var(--muted);border-radius:10px;font-weight:600;font-size:.88rem;transition:.18s}.main-nav a:hover,.main-nav a.active{color:var(--text);background:var(--surface-2)}.user-menu{display:flex;align-items:center;gap:9px;white-space:nowrap}.avatar{height:29px;width:29px;border:1px solid #405071;background:#202a3b;color:#d6deff;border-radius:50%;display:grid;place-items:center;font-size:.78rem;font-weight:800}.user-name{font-weight:600;font-size:.85rem}.text-button{background:none;border:0;color:var(--muted);padding:5px 7px;cursor:pointer;font-size:.82rem}.text-button:hover{color:var(--text)}.page-content{padding:38px 0 64px;min-height:calc(100vh - 145px)}.footer{border-top:1px solid rgba(136,151,178,.13);padding:19px 0 25px;display:flex;justify-content:space-between;color:var(--faint);font-size:.75rem}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:27px}.page-heading h1{margin-bottom:8px}.muted{color:var(--muted)}.small{font-size:.8rem}.eyebrow{font-size:.66rem;letter-spacing:.14em;color:var(--faint);font-weight:800;margin-bottom:9px}.heading-actions{display:flex;align-items:center;gap:10px}.button{height:42px;padding:0 17px;border:1px solid transparent;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;gap:12px;font-weight:700;font-size:.86rem;cursor:pointer;transition:transform .16s,background .16s,border-color .16s}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 8px 23px rgba(130,156,255,.12)}.button.primary:hover{background:#becaff}.button.secondary{background:var(--surface-2);border-color:var(--border);color:var(--text)}.button.secondary:hover{background:var(--surface-3)}.button.full{width:100%}.panel,.metric-card{background:linear-gradient(160deg,rgba(22,29,42,.96),rgba(17,23,34,.97));border:1px solid rgba(121,141,179,.17);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:23px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric-card{padding:19px 21px;min-height:139px;position:relative;overflow:hidden}.metric-card.metric-highlight{background:radial-gradient(ellipse at 88% 0%,rgba(139,162,255,.17),transparent 50%),linear-gradient(145deg,#1b2540,#151d2c);border-color:rgba(142,164,255,.35)}.metric-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.11em}.metric-icon{color:#8d9fc9;font-size:1.1rem}.metric-value{font-family:Manrope,sans-serif;font-size:clamp(1.45rem,2.5vw,2rem);font-weight:800;letter-spacing:-.05em;margin-top:15px;white-space:nowrap}.metric-value small,.budget-total small,.carry-value small,.savings-total small{font:600 .76rem 'DM Sans',sans-serif;color:var(--muted);letter-spacing:0}.metric-foot{font-size:.72rem;color:var(--faint);margin-top:3px}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(285px,.85fr);gap:18px}.main-column,.side-column{display:flex;flex-direction:column;gap:18px;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.panel-heading h2,.panel-heading h3{margin:0}.status-pill,.count-pill,.role-pill,.tag-muted{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:.68rem;font-weight:700;white-space:nowrap}.status-pill.live{color:var(--green);background:rgba(119,216,173,.09);border:1px solid rgba(119,216,173,.19)}.status-pill.quiet,.count-pill,.tag-muted{color:var(--muted);background:rgba(143,155,176,.08);border:1px solid rgba(143,155,176,.12)}.budget-total-row{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;padding:7px 0 15px}.budget-total{font:800 2rem Manrope,sans-serif;letter-spacing:-.05em;margin-top:4px}.right-stat{text-align:right;display:grid;gap:5px}.right-stat strong{font-size:.9rem}.budget-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 22px;padding:15px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.budget-breakdown>div,.close-breakdown>div{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.8rem}.budget-breakdown>div span,.close-breakdown>div span{color:var(--muted)}.budget-breakdown strong,.close-breakdown strong{font-size:.8rem;font-weight:700;text-align:right}.budget-edit{margin-top:14px}.budget-edit summary,.category-edit summary,.child-edit summary,.sso-link-details summary{color:var(--accent);font-size:.8rem;font-weight:700;cursor:pointer;list-style:none}.budget-edit summary::-webkit-details-marker,.category-edit summary::-webkit-details-marker,.child-edit summary::-webkit-details-marker,.sso-link-details summary::-webkit-details-marker{display:none}.budget-edit summary:after,.category-edit summary:after,.sso-link-details summary:after{content:'＋';float:right;color:var(--faint)}.budget-edit[open] summary:after,.category-edit[open] summary:after,.sso-link-details[open] summary:after{content:'−'}.inline-fields{display:flex;align-items:flex-end;gap:11px;flex-wrap:wrap;margin-top:13px}.inline-fields label{flex:1;min-width:140px}.inline-alert{margin-top:15px;padding:10px 12px;border:1px solid rgba(143,155,176,.17);background:rgba(143,155,176,.06);border-radius:10px;color:var(--muted);font-size:.77rem}.inline-alert.warning{border-color:rgba(240,196,119,.22);color:var(--amber);background:rgba(240,196,119,.06)}.quick-add-form{padding:14px;background:rgba(7,10,16,.26);border:1px solid rgba(121,141,179,.13);border-radius:14px;margin-bottom:19px}.kind-switch{display:flex;gap:6px;margin-bottom:13px}.kind-switch label{cursor:pointer}.kind-switch input{position:absolute;opacity:0;pointer-events:none}.kind-switch span{display:inline-flex;padding:7px 11px;border-radius:8px;color:var(--muted);background:var(--surface-2);font-size:.76rem;font-weight:700}.kind-switch input:checked+span{background:rgba(166,184,255,.15);color:#c5d1ff;border:1px solid rgba(166,184,255,.25)}.quick-fields{display:grid;grid-template-columns:minmax(140px,1.3fr) minmax(90px,.55fr) minmax(130px,.9fr) minmax(125px,.8fr) auto;align-items:end;gap:9px}.quick-fields label,.inline-fields label{font-size:.72rem;color:var(--muted);font-weight:600;display:grid;gap:6px}.quick-fields input,.quick-fields select,.inline-fields input,.inline-fields select,input,select{width:100%;background:#0d131d;border:1px solid #303b4e;color:var(--text);border-radius:9px;padding:10px 11px;min-height:39px;outline:none}.quick-fields input:focus,.quick-fields select:focus,.inline-fields input:focus,.inline-fields select:focus,input:focus,select:focus{border-color:#879dff;box-shadow:0 0 0 3px rgba(135,157,255,.1)}.quick-fields input::placeholder,input::placeholder{color:#57657d}.add-button{height:39px;padding:0 13px;white-space:nowrap}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}.data-table th{color:var(--faint);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;padding:0 10px 11px}.data-table td{border-top:1px solid rgba(121,141,179,.1);padding:12px 10px;font-size:.79rem}.data-table tbody tr:hover{background:rgba(255,255,255,.018)}.transaction-name{display:flex;align-items:center;gap:9px}.transaction-name strong{font-size:.8rem}.kind-dot{width:7px;height:7px;background:var(--red);border-radius:50%;box-shadow:0 0 0 4px rgba(255,135,147,.08)}.kind-dot.income{background:var(--green);box-shadow:0 0 0 4px rgba(119,216,173,.08)}.amount-cell{font-weight:700}.align-right{text-align:right}.actions-cell{text-align:right;display:flex;justify-content:flex-end;align-items:center;gap:8px}.icon-link,.icon-button{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:8px;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:1rem}.icon-link:hover,.icon-button:hover{background:var(--surface-3);color:var(--text)}.icon-button.danger:hover{color:var(--red)}.inline-form{display:inline-flex;margin:0}.empty-state{text-align:center;color:var(--muted);padding:37px 15px}.empty-state strong{display:block;color:var(--text);margin-top:8px}.empty-state p{font-size:.8rem;margin:5px 0 0}.empty-state.compact{padding:15px;font-size:.82rem}.empty-orbit{margin:0 auto;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:rgba(166,184,255,.1);color:var(--accent);font-size:1.3rem}.carry-panel{background:radial-gradient(ellipse at 100% 0%,rgba(126,151,229,.11),transparent 53%),linear-gradient(145deg,#182134,#121823)}.carry-value{font:800 2rem Manrope,sans-serif;letter-spacing:-.05em;margin:8px 0 2px}.carry-panel p{font-size:.77rem;max-width:290px;margin-bottom:18px}.mini-equation{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:.77rem;padding-top:14px;border-top:1px solid rgba(142,164,255,.13)}.mini-equation span{color:var(--muted)}.mini-equation strong{text-align:right;font-weight:700}.equation-total{display:flex;justify-content:space-between;align-items:center;margin-top:15px;padding-top:13px;border-top:1px solid rgba(142,164,255,.2);font-size:.84rem;font-weight:700}.text-link{font-size:.76rem;font-weight:700;color:var(--accent)}.category-meter{margin:15px 0}.meter-label{display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:.75rem;margin-bottom:7px}.meter-label span{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.meter-label strong{font-size:.74rem;white-space:nowrap}.meter-track{height:6px;background:#242e40;border-radius:99px;overflow:hidden}.meter-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#748bf0,#a9b9ff)}.savings-card{position:relative;overflow:hidden;border:1px solid rgba(119,216,173,.19);border-radius:var(--radius);padding:22px;background:radial-gradient(ellipse at 100% 0%,rgba(119,216,173,.15),transparent 56%),linear-gradient(150deg,#172c2a,#141e24)}.savings-mark{position:absolute;right:20px;top:10px;font-size:2.4rem;color:rgba(119,216,173,.32)}.savings-card .eyebrow{color:#75aa99}.savings-card h3{margin-bottom:5px}.savings-total{font:800 1.75rem Manrope,sans-serif;letter-spacing:-.05em}.savings-total small{color:#9db6ae}.savings-card p{font-size:.75rem;color:#92aaa1;max-width:270px;margin:7px 0 0}.notice-card{display:flex;gap:13px;align-items:flex-start;padding:16px 18px;margin:-6px 0 17px;border:1px solid rgba(166,184,255,.2);background:rgba(166,184,255,.06);border-radius:14px}.notice-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:var(--accent);background:rgba(166,184,255,.12);font-size:1.1rem}.notice-card strong{font-size:.88rem}.notice-card p{font-size:.77rem;margin:3px 0 0}.month-select-form select{min-width:124px}.toast{border:1px solid rgba(119,216,173,.2);background:rgba(119,216,173,.07);color:var(--green);padding:11px 14px;border-radius:11px;margin-bottom:18px;font-size:.8rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Inner pages */
.category-layout,.settings-grid,.admin-grid,.overview-grid{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.5fr);gap:17px;align-items:start}.form-panel h2{margin-bottom:17px}.form-stack{display:grid;gap:14px}.form-stack label{display:grid;gap:6px;color:var(--muted);font-size:.77rem;font-weight:600}.form-stack input,.form-stack select{min-height:42px}.hint,.field-hint{color:var(--faint);font-size:.72rem;margin:13px 0 0;line-height:1.55}.field-hint{display:block;margin:0}.managed-category{border-top:1px solid rgba(121,141,179,.12);padding:13px 0}.managed-category-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.managed-category-title>div{display:flex;align-items:center;gap:9px}.category-swatch{height:8px;width:8px;border-radius:3px;background:#92a7ff}.managed-category-title strong{font-size:.84rem}.child-category{display:flex;align-items:center;gap:8px;padding:9px 0 0 18px;color:var(--muted);font-size:.79rem}.child-branch{color:#65779a}.child-edit{margin-left:auto}.child-edit summary{font-size:.72rem}.child-edit[open]{width:100%;margin:10px 0 0 20px}.archived{opacity:.45}.danger-text{color:var(--red)}.category-edit{margin:9px 0 0 17px}.category-edit .inline-fields{margin-top:9px}.large-meter{margin:20px 0}.overview-metrics{margin-bottom:18px}.overview-grid{grid-template-columns:minmax(0,1.35fr) minmax(270px,.8fr)}.detailed{grid-template-columns:1fr;gap:14px;border:0;padding-top:0}.detailed>div{padding-bottom:11px;border-bottom:1px solid rgba(121,141,179,.1)}.admin-grid{grid-template-columns:minmax(260px,.72fr) minmax(0,1.55fr);margin-bottom:17px}.admin-user{padding:14px 0;border-top:1px solid rgba(121,141,179,.12)}.admin-user-top{display:flex;justify-content:space-between;align-items:center}.admin-user-top>div{display:flex;align-items:center;gap:8px}.small-avatar{height:24px;width:24px;font-size:.66rem}.admin-user-top strong{font-size:.84rem}.admin-user-meta{font-size:.73rem;color:var(--muted);margin:5px 0 9px 32px}.role-pill{background:rgba(166,184,255,.1);color:var(--accent)}.sso-link-details{margin-left:32px}.sso-link-details form{margin-bottom:8px}.auth-status-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.auth-status-list>div{padding:12px;border:1px solid rgba(121,141,179,.13);background:rgba(7,10,16,.19);border-radius:10px;display:grid;gap:6px}.auth-status-list span{font-size:.74rem;color:var(--muted)}.auth-status-list strong{font-size:.8rem}.auth-status-panel{margin-top:17px}.narrow-panel{max-width:570px}.kind-label{font-size:.8rem;font-weight:800}.close-panel{max-width:720px;margin:0 auto;text-align:center;padding:32px}.close-number{font:800 clamp(2.6rem,8vw,4.3rem) Manrope,sans-serif;letter-spacing:-.06em;margin:10px 0}.close-number small{font:600 1rem 'DM Sans',sans-serif;color:var(--muted);letter-spacing:0}.close-panel h2{font-size:1.45rem;margin-bottom:7px}.close-panel>p{font-size:.83rem;max-width:515px;margin:0 auto 24px}.close-breakdown{max-width:490px;margin:0 auto;padding:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:grid;gap:12px;text-align:left}.close-actions{max-width:490px;margin:20px auto 0}.decision-options{display:grid;gap:10px;margin-bottom:17px;text-align:left}.decision-card{display:flex;gap:12px;align-items:flex-start;padding:13px;border:1px solid var(--border);border-radius:12px;background:rgba(5,8,14,.2);cursor:pointer}.decision-card:has(input:checked){border-color:rgba(166,184,255,.5);background:rgba(166,184,255,.06)}.decision-card input{width:auto;min-height:0;margin:4px 0 0;accent-color:#a6b8ff}.decision-card span{display:grid;gap:3px}.decision-card strong{font-size:.82rem}.decision-card small{color:var(--muted);font-size:.74rem}
/* Sign in */
.login-body{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(ellipse at 52% 15%,rgba(112,139,229,.18),transparent 44%),var(--bg)}.login-wrap{width:min(100%,420px)}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:24px}.login-brand h1{font-size:1.6rem;margin:0}.login-brand .eyebrow{margin-bottom:2px}.login-card{padding:29px;background:linear-gradient(155deg,#171e2c,#111722);border:1px solid rgba(121,141,179,.2);border-radius:22px;box-shadow:0 25px 80px rgba(0,0,0,.34)}.login-card h2{font-size:1.5rem;margin-bottom:5px}.login-card>p{font-size:.82rem;margin-bottom:22px}.login-card .form-stack{gap:15px}.login-card .button{margin-top:4px}.login-divider{display:flex;align-items:center;gap:12px;color:var(--faint);font-size:.72rem;margin:21px 0 14px}.login-divider:before,.login-divider:after{content:'';height:1px;flex:1;background:var(--border)}.gap-top{margin-top:9px}.login-foot{text-align:center;color:var(--faint);font-size:.73rem;margin-top:19px}.form-error{padding:10px 12px;border:1px solid rgba(255,135,147,.23);border-radius:9px;background:rgba(255,135,147,.08);color:var(--red);font-size:.77rem;margin-bottom:14px}
@media(max-width:1050px){.app-shell{padding:0 22px}.topbar{gap:18px}.main-nav{gap:0}.main-nav a{padding:8px 9px}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr)}.quick-fields{grid-template-columns:1fr .6fr 1fr 1fr}.add-button{grid-column:1/-1}.metric-card{padding:16px}.metric-value{font-size:1.6rem}}
@media(max-width:760px){.app-shell{padding:0 15px}.topbar{height:auto;min-height:72px;flex-wrap:wrap;padding:13px 0;gap:12px}.brand{flex:1}.user-name{display:none}.main-nav{order:3;flex-basis:100%;overflow:auto;padding:3px 0 0}.main-nav a{white-space:nowrap}.page-content{padding:27px 0 45px}.page-heading{align-items:flex-start;flex-direction:column}.heading-actions{width:100%;justify-content:space-between}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-card{min-height:124px;padding:15px}.metric-value{font-size:1.5rem}.dashboard-grid,.category-layout,.settings-grid,.admin-grid,.overview-grid{grid-template-columns:1fr}.main-column,.side-column{gap:13px}.quick-fields{grid-template-columns:1fr 1fr}.description-field{grid-column:1/-1}.category-field,.date-field{min-width:0}.add-button{grid-column:1/-1}.panel{padding:18px}.auth-status-list{grid-template-columns:1fr}.user-menu{gap:6px}.overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.close-panel{padding:24px 17px}}
@media(max-width:420px){.app-shell{padding:0 11px}.metric-card{padding:12px}.metric-value{font-size:1.28rem}.metric-top{font-size:.59rem}.metric-foot{font-size:.65rem}.quick-fields{grid-template-columns:1fr}.description-field{grid-column:auto}.budget-breakdown{gap:9px 12px}.budget-breakdown>div{font-size:.72rem}.budget-breakdown strong{font-size:.71rem}.footer{font-size:.68rem}}

.w-0{width:0%}
.w-5{width:5%}
.w-10{width:10%}
.w-15{width:15%}
.w-20{width:20%}
.w-25{width:25%}
.w-30{width:30%}
.w-35{width:35%}
.w-40{width:40%}
.w-45{width:45%}
.w-50{width:50%}
.w-55{width:55%}
.w-60{width:60%}
.w-65{width:65%}
.w-70{width:70%}
.w-75{width:75%}
.w-80{width:80%}
.w-85{width:85%}
.w-90{width:90%}
.w-95{width:95%}
.w-100{width:100%}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;margin-top:14px;border-top:1px solid var(--border)}.pagination>div{display:flex;gap:8px}
