:root{
  color-scheme:light;
  --bg:#f7f3eb;
  --panel:#fffdfa;
  --panel-2:#f0e8dc;
  --ink:#181713;
  --text:#3f3b34;
  --muted:#7b7368;
  --faint:#aaa094;
  --line:#ded5c8;
  --line-strong:#cfc3b3;
  --accent:#c46f3d;
  --accent-soft:#f4dfcf;
  --green:#24724c;
  --green-soft:#e3efe6;
  --red:#b24a3e;
  --red-soft:#f2ddd8;
  --shadow:0 18px 40px rgba(58,45,28,.08);
  --focus:0 0 0 3px rgba(196,111,61,.20);
  --font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}html,body{max-width:100%;overflow-x:hidden}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body::before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(24,23,19,.028) 1px,transparent 1px);background-size:72px 100%;opacity:.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:none;box-shadow:var(--focus)}.sr-only,.sr-compat{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.positive{color:var(--green)}.negative{color:var(--red)}
.flash{margin:0;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--panel);color:var(--text)}.flash.success{border-color:#c5dac8;background:var(--green-soft);color:var(--green)}.flash.error{border-color:#e0bfb8;background:var(--red-soft);color:var(--red)}
.field{display:grid;gap:6px;color:var(--muted);font-size:.76rem;font-weight:760;letter-spacing:.01em}.field input,.field select,.field textarea,input,select,textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;background:#fffefb;padding:10px 11px;color:var(--ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.8);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.field input:focus,.field select:focus,.field textarea:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus);background:#fff}textarea{resize:vertical;min-height:68px}.form-stack{display:grid;gap:14px}.button,.workspace-primary{min-height:40px;border:0;border-radius:12px;background:var(--ink);color:#fff;padding:0 14px;font-weight:780}.button.full,.workspace-primary{width:100%}
/* Login */
.login-workspace{min-height:100vh;display:grid;place-items:center;padding:32px 20px}.login-panel{width:min(100%,410px);background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow)}.login-brand{display:inline-flex;align-items:center;gap:10px;margin-bottom:36px;font-weight:780}.login-brand span,.brand-mark{width:32px;height:32px;border-radius:10px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:.78rem;font-weight:900;letter-spacing:-.06em}.login-heading{margin-bottom:22px}.section-label,.section-kicker,.nav-label{display:block;color:var(--muted);font-size:.68rem;font-weight:820;letter-spacing:.115em;text-transform:uppercase}.login-heading h1{margin:6px 0 7px;font-size:2rem;line-height:1.05;letter-spacing:-.055em}.login-heading p:not(.section-label){margin:0;color:var(--muted);font-size:.95rem}.login-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:.77rem}.login-meta span{padding:4px 8px;border-radius:999px;background:var(--panel-2)}
/* Personal Money Studio */
.studio-shell{width:min(1500px,100%);min-height:100vh;margin:0 auto;display:grid;grid-template-columns:210px minmax(0,1fr);position:relative}.studio-nav{min-height:100vh;padding:22px 18px;border-right:1px solid var(--line);background:rgba(247,243,235,.92);position:sticky;top:0;align-self:start;display:grid;grid-template-rows:auto auto 1fr auto;gap:24px}.studio-brand{display:flex;align-items:center;gap:11px}.studio-brand strong{display:block;font-size:.98rem;letter-spacing:-.03em}.studio-brand small{display:block;color:var(--muted);font-size:.74rem;margin-top:1px}.month-card{display:grid;gap:9px;padding:12px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:0 8px 22px rgba(58,45,28,.04)}.month-card input,.month-card button{height:34px;border-radius:10px}.month-card button{border:0;background:var(--ink);color:#fff;font-weight:760}.studio-links{display:grid;align-content:start;gap:5px}.studio-links a,.logout-link{display:flex;align-items:center;gap:9px;min-height:36px;border-radius:11px;padding:0 10px;color:var(--muted);font-weight:700}.studio-links a span{font-size:.78rem;color:var(--faint)}.studio-links a.active{background:var(--accent-soft);color:var(--ink)}.studio-links a.active span{color:var(--accent)}.studio-links a:hover,.logout-link:hover{background:rgba(255,255,255,.62);color:var(--ink)}.logout-link{align-self:end}.studio-main{min-width:0;padding:22px 28px 48px}.studio-flashes{display:grid;gap:10px;margin-bottom:14px}.status-strip{display:grid;grid-template-columns:160px minmax(280px,1.35fr) repeat(3,minmax(130px,.65fr));gap:0;align-items:stretch;background:var(--panel);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:22px}.month-badge,.status-metric{padding:17px 18px;border-right:1px solid var(--line);min-width:0}.status-metric:last-child{border-right:0}.month-badge{background:linear-gradient(180deg,var(--panel-2),var(--panel));display:grid;align-content:center}.month-badge span{font-size:1.35rem;font-weight:830;letter-spacing:-.05em}.month-badge strong,.status-metric span{color:var(--muted);font-size:.68rem;letter-spacing:.11em;text-transform:uppercase}.status-metric strong{display:block;margin-top:7px;font-size:clamp(1.35rem,2vw,2rem);letter-spacing:-.055em;line-height:1;font-variant-numeric:tabular-nums}.status-metric.balance{background:linear-gradient(135deg,#fffefa,#fbefe5)}.status-metric.balance strong{font-size:clamp(2.4rem,4.3vw,4.6rem);letter-spacing:-.075em}.status-metric.compact strong{font-size:1.55rem}.studio-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.transaction-studio,.quick-studio,.category-studio{min-width:0}.transaction-studio{background:var(--panel);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);overflow:hidden}.section-toolbar{display:flex;justify-content:space-between;align-items:end;gap:18px;padding:18px 18px 14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fffefa,#fcf8f1)}.section-kicker{margin:0 0 5px;display:flex;align-items:center;gap:7px}.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block}.dot.accent{background:var(--accent)}.dot.muted{background:var(--line-strong)}.section-toolbar h1,.rail-heading h2{margin:0;font-size:1.35rem;line-height:1;letter-spacing:-.045em}.studio-filters{display:grid;grid-template-columns:145px 115px minmax(190px,1fr) auto;gap:7px;align-items:center;min-width:min(680px,100%)}.studio-filters input,.studio-filters select,.studio-filters button{height:36px;border-radius:10px}.studio-filters button{border:0;background:var(--ink);color:#fff;font-weight:760;padding:0 13px}.transaction-list{display:grid}.transaction-item{display:grid;grid-template-columns:96px 16px minmax(0,1fr) auto 28px;gap:14px;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line);transition:background .14s ease}.transaction-item:last-child{border-bottom:0}.transaction-item:hover{background:#fffaf2}.tx-date{color:var(--muted);font-size:.82rem;font-variant-numeric:tabular-nums}.tx-dot{width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px var(--red-soft)}.transaction-item.income .tx-dot{background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}.tx-info{min-width:0;display:grid;gap:2px}.tx-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}.tx-info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.83rem}.tx-amount{font-size:1rem;font-variant-numeric:tabular-nums;white-space:nowrap}.tx-delete{margin:0}.icon-button{width:28px;height:28px;border:0;border-radius:9px;background:transparent;color:var(--faint);font-size:1.05rem}.icon-button:hover{background:var(--red-soft);color:var(--red)}.empty-studio{padding:56px 32px;text-align:center;color:var(--muted)}.empty-icon{width:42px;height:42px;border-radius:14px;margin:0 auto 14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:1.4rem}.empty-studio strong{display:block;color:var(--ink);font-size:1.08rem}.empty-studio p{margin:8px auto 0;max-width:430px}.studio-side{display:grid;gap:18px;position:sticky;top:22px}.quick-studio,.category-studio{background:var(--panel);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:18px}.quick-studio{border-color:var(--line-strong)}.rail-heading{margin-bottom:15px}.rail-heading.compact{margin-bottom:13px}.studio-entry-form{display:grid;gap:11px}.studio-segmented{margin:0;padding:3px;border:1px solid var(--line);border-radius:13px;background:var(--panel-2);display:grid;grid-template-columns:1fr 1fr;gap:3px}.studio-segmented label{min-width:0}.studio-segmented input{position:absolute;opacity:0;width:1px;height:1px;left:0;top:0}.studio-segmented span{height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:760;font-size:.83rem}.studio-segmented input:checked+span{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px rgba(58,45,28,.08)}.studio-primary{height:42px;border:0;border-radius:13px;background:var(--accent);color:#fff;font-weight:830;box-shadow:0 10px 24px rgba(196,111,61,.20)}.studio-primary:hover{background:#ae5e32}.category-rows{display:grid;gap:13px}.category-line{display:grid;gap:7px}.category-line div{display:flex;justify-content:space-between;gap:12px}.category-line strong{font-size:.88rem}.category-line span{color:var(--muted);font-size:.86rem;font-variant-numeric:tabular-nums}.category-line i{height:5px;border-radius:999px;background:var(--panel-2);overflow:hidden}.category-line i::before{content:"";display:block;width:var(--w);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#d79a63)}.category-placeholder{display:grid;gap:9px}.category-placeholder i{display:block;height:6px;border-radius:999px;background:var(--panel-2);position:relative;overflow:hidden}.category-placeholder i:nth-child(1)::before{width:72%}.category-placeholder i:nth-child(2)::before{width:48%}.category-placeholder i:nth-child(3)::before{width:31%}.category-placeholder i::before{content:"";display:block;height:100%;background:#d8ccbd;border-radius:inherit}.category-placeholder p{margin:4px 0 0;color:var(--muted);font-size:.86rem}
@media(max-width:1220px){.studio-shell{grid-template-columns:1fr}.studio-nav{min-height:0;position:static;display:grid;grid-template-columns:auto minmax(220px,340px) 1fr auto;align-items:center;border-right:0;border-bottom:1px solid var(--line);padding:14px 18px}.studio-links{display:flex;gap:4px}.logout-link{align-self:center}.studio-main{padding:20px}.status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.month-badge,.status-metric{border-right:0;border-bottom:1px solid var(--line)}.status-metric:nth-last-child(-n+2){border-bottom:0}.studio-grid{grid-template-columns:1fr}.studio-side{position:static;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:820px){.studio-nav{grid-template-columns:1fr auto;gap:12px}.month-card{grid-column:1/-1}.studio-links{grid-column:1/-1;overflow:auto;padding-bottom:2px}.studio-main{padding:16px 12px 36px}.status-strip{border-radius:20px}.status-metric.balance{grid-column:1/-1}.status-metric.balance strong{font-size:3rem}.section-toolbar{align-items:stretch;flex-direction:column}.studio-filters{grid-template-columns:1fr 1fr}.studio-filters input[name=q],.studio-filters button{grid-column:1/-1}.studio-side{grid-template-columns:1fr}.transaction-item{grid-template-columns:10px minmax(0,1fr) auto;gap:10px;padding:14px}.tx-date{grid-column:2/3;grid-row:2;font-size:.78rem}.tx-dot{grid-column:1;grid-row:1/3;align-self:start;margin-top:4px}.tx-info{grid-column:2;grid-row:1}.tx-amount{grid-column:3;grid-row:1;text-align:right}.tx-delete{grid-column:3;grid-row:2;justify-self:end}.quick-studio,.category-studio,.transaction-studio{border-radius:20px}}
@media(max-width:520px){.studio-brand small{display:none}.studio-links a{white-space:nowrap}.status-strip{grid-template-columns:1fr}.month-badge,.status-metric,.status-metric:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.status-metric:last-child{border-bottom:0}.status-metric.balance strong{font-size:2.65rem}.studio-filters{grid-template-columns:1fr}.login-workspace{place-items:start center;padding-top:34px}.login-panel{padding:22px;border-radius:20px}}

/* QA fix: keep filter toolbar inside the transaction surface on desktop */
.section-toolbar{align-items:stretch;flex-direction:column;gap:12px}
.studio-filters{width:100%;min-width:0;grid-template-columns:150px 120px minmax(160px,1fr) auto}
@media(max-width:520px){.studio-filters{grid-template-columns:1fr}}
