/* SowmiyaTax — shared design system v2 (premium pass).
   Real depth: layered backgrounds, glassy surfaces, gradient accents, soft colored shadows. */

:root {
  /* Calm Indigo (imported claude.ai design) — indigo #3F3CA0 workhorse · peach #F2A65A spice · warm paper. */
  --bg:#F4F3EE; --bg-2:#EAE8F5; --surface:#FFFFFF; --surface-2:#FAF9F4; --ink:#1B1E33; --ink-2:#4D5068;
  --muted:#767990; --line:rgba(30,33,56,.07); --line-2:rgba(30,33,56,.13);
  --primary:#3F3CA0; --primary-2:#2C2A78; --primary-ink:#3F3CA0; --primary-soft:#E9E8F7;
  --accent:#3F3CA0; --accent-2:#2C2A78; --accent-soft:#E9E8F7; --focus-ring:rgba(63,60,160,.18);
  --peach:#F2A65A; --peach-2:#E08E3E; --peach-soft:rgba(242,166,90,.16); --peach-border:rgba(242,166,90,.5); --peach-ink:#9A5A14;
  --amber:#B45309; --amber-soft:#FBF0E2; --danger:#C2362F; --danger-soft:#FBEAE9;
  --success:#2E7D5B; --success-soft:#E3F2EA; --dim:#909385;
  --radius:18px; --radius-sm:12px; --radius-lg:22px; --radius-pill:999px;
  --grad-primary:linear-gradient(160deg,#3F3CA0,#2C2A78);
  --grad-accent:linear-gradient(160deg,#3F3CA0,#2C2A78);
  --grad-peach:linear-gradient(160deg,#F2A65A,#E08E3E);
  --ring:linear-gradient(135deg,#6663C6,#3F3CA0);
  --shadow:0 2px 28px rgba(30,33,56,.08);
  --shadow-sm:0 1px 2px rgba(30,33,56,.05), 0 2px 14px rgba(30,33,56,.05);
  --shadow-lift:0 20px 50px rgba(43,42,120,.28);
  --glow:radial-gradient(1100px 520px at 50% -8%, rgba(63,60,160,.05), transparent 60%);
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg:#14162A; --bg-2:#1B1E33; --surface:#1F2239; --surface-2:#262A47; --ink:#F4F3EE; --ink-2:#CFCEF2;
    --muted:#9A9CDA; --line:rgba(255,255,255,.08); --line-2:rgba(255,255,255,.15);
    --primary:#8A87E6; --primary-2:#9A9CDA; --primary-ink:#B9B7EC; --primary-soft:#2A2D52;
    --accent:#8A87E6; --accent-2:#9A9CDA; --accent-soft:#2A2D52; --focus-ring:rgba(138,135,230,.40);
    --peach:#F2A65A; --peach-2:#E08E3E; --peach-soft:rgba(242,166,90,.20); --peach-border:rgba(242,166,90,.5); --peach-ink:#F2A65A;
    --amber:#E0A458; --amber-soft:#2A2410; --danger:#E5675F; --danger-soft:#2A1614;
    --success:#4FB98A; --success-soft:#10241B; --dim:#6B6E8A;
    --grad-primary:linear-gradient(160deg,#4A47B0,#2C2A78);
    --grad-accent:linear-gradient(160deg,#4A47B0,#2C2A78);
    --grad-peach:linear-gradient(160deg,#F2A65A,#E08E3E);
    --ring:linear-gradient(135deg,#8A87E6,#4A47B0);
    --shadow:0 2px 28px rgba(0,0,0,.45);
    --shadow-sm:0 1px 2px rgba(0,0,0,.4);
    --shadow-lift:0 20px 50px rgba(0,0,0,.55);
    --glow:radial-gradient(1100px 520px at 50% -8%, rgba(138,135,230,.12), transparent 60%);
  }
}
:root {
  /* type families: Bricolage display (headings + ₹ figures) · Hanken text (body/UI) · JetBrains mono */
  --font-display:'Bricolage Grotesque','Hanken Grotesk',sans-serif;
  --font-sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;
  /* fluid type scale */
  --t-display:clamp(2.6rem,1.9rem+3.4vw,4.25rem); --t-h1:clamp(2rem,1.55rem+2.1vw,3.05rem);
  --t-h2:clamp(1.55rem,1.35rem+0.9vw,2.05rem); --t-h3:1.3125rem;
  --t-body-lg:1.1875rem; --t-body:1.0625rem; --t-small:0.875rem; --t-label:0.8125rem; --t-eyebrow:0.75rem;
  /* 8px spacing grid */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px;
  /* motion — confident, no bounce */
  --ease-out:cubic-bezier(.22,.61,.36,1); --ease-inout:cubic-bezier(.65,.05,.36,1); --ease-emph:cubic-bezier(.16,.84,.44,1);
  --dur-1:120ms; --dur-2:180ms; --dur-3:280ms; --dur-4:420ms;
}
/* line-icon system: <svg class="ic"><use href="#i-lock"/></svg> — currentColor, defined in icons.js */
.ic { width:1.08em; height:1.08em; display:inline-block; vertical-align:-.17em; flex:none;
  fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.ic.lg { width:1.5em; height:1.5em; vertical-align:-.32em; }
* { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font-sans); color:var(--ink-2);
  background:var(--glow), var(--bg); background-attachment:fixed;
  font-size:var(--t-body); line-height:1.6; -webkit-font-smoothing:antialiased; letter-spacing:-0.006em;
  font-variant-numeric:tabular-nums lining-nums; font-feature-settings:"tnum" 1,"lnum" 1;
}
.wrap { max-width:540px; margin:0 auto; padding:20px 18px 96px; }
/* money / hero ₹ figures in the Bricolage display face (per the imported theme), tabular for alignment */
.money,.amt,.big-num,.rupee,.sum-refund .big,.save .big,.fee-card .amt { font-family:var(--font-display); font-variant-numeric:tabular-nums; letter-spacing:-.02em; font-weight:700; }

/* header / brand */
header { display:flex; align-items:center; gap:11px; padding:10px 0 18px; }
.logo { position:relative; width:44px;height:44px;border-radius:13px;background:linear-gradient(155deg,#4845B4,#2C2A78);display:grid;place-items:center;
  color:#fff;font-weight:800;font-size:22px;font-family:var(--font-display); box-shadow:0 6px 16px rgba(43,42,120,.28); }
/* peach "filed ✓" badge (imported logo) — drops off via .logo.bare for tiny sizes */
.logo::after { content:''; position:absolute; right:-6px; bottom:-6px; width:19px; height:19px; border-radius:999px; box-sizing:border-box; border:2.5px solid var(--surface);
  background:var(--peach) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6.3 5 8.6 9.5 3.6' stroke='%231B1E33' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/9px no-repeat; }
.logo.bare::after { display:none; }
.brand { font-weight:800; letter-spacing:-.03em; font-size:24px; font-family:var(--font-display); color:var(--ink); }
.brand span { color:var(--muted); font-weight:500; }
.brand .b1 { color:var(--primary); } .brand .b2 { color:#EC8B33; }   /* Sowmiya indigo · Tax amber */
/* account chip (shared: landing nav + intake header) */
.acct { position:relative; }
.acct-btn { display:inline-flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--line-2); border-radius:var(--radius-pill); padding:4px 12px 4px 4px; cursor:pointer; font-family:var(--font-sans); font-weight:600; font-size:14px; color:var(--ink); box-shadow:var(--shadow-sm); }
.acct-av { width:27px; height:27px; border-radius:50%; background:var(--grad-primary); color:#fff; display:grid; place-items:center; font-weight:700; font-size:12px; overflow:hidden; flex:none; }
.acct-av img { width:100%; height:100%; object-fit:cover; }
.acct-menu { position:absolute; right:0; top:calc(100% + 8px); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--shadow); padding:14px; min-width:236px; z-index:60; }
.acct-menu .nm { font-weight:700; font-size:14px; color:var(--ink); } .acct-menu .em { font-size:12.5px; color:var(--muted); margin-top:2px; word-break:break-all; }
.acct-menu .acct-link { display:block; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); color:var(--primary); font-weight:600; font-size:14px; text-decoration:none; }
.acct-menu .logout { margin-top:10px; width:100%; border:1px solid var(--line-2); background:var(--bg); color:var(--ink); border-radius:var(--radius-sm); padding:9px; font-family:var(--font-sans); font-weight:600; font-size:13.5px; cursor:pointer; }
.acct-menu .logout:hover { border-color:var(--danger); color:var(--danger); }

/* type — Bricolage display, tight negative tracking (per imported theme) */
h1 { font-family:var(--font-display); font-size:var(--t-h1); line-height:1.06; letter-spacing:-.03em; font-weight:700; margin-bottom:8px; color:var(--ink); }
h2 { font-family:var(--font-display); font-size:var(--t-h2); line-height:1.12; letter-spacing:-.025em; font-weight:700; margin-bottom:6px; color:var(--ink); }
h3 { font-family:var(--font-display); font-size:var(--t-h3); line-height:1.25; letter-spacing:-.02em; font-weight:700; color:var(--ink); }
.grad-text { color:var(--ink); }
.sub { color:var(--muted); margin-bottom:22px; font-size:16px; }
.muted { color:var(--muted); } .small { font-size:13.5px; }
.badge-soft { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:var(--primary-ink);
  background:var(--accent-soft); padding:5px 12px; border-radius:var(--radius-pill); margin-bottom:14px; }
label { display:block; font-size:13.5px; color:var(--muted); margin-bottom:8px; font-weight:600; letter-spacing:0; }

/* fields */
.field { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:16px 18px; box-shadow:var(--shadow-sm); margin-bottom:14px; transition:border-color .15s, box-shadow .15s; }
.field:focus-within { border-color:var(--primary); box-shadow:0 0 0 4px var(--accent-soft); }
.field .row { display:flex; align-items:center; gap:8px; }
.rupee { font-size:30px; font-weight:700; color:var(--muted); }
input[type=text], input[type=number], input[type=tel], input[type=email] {
  width:100%; border:none; background:transparent; color:var(--ink); font-family:inherit;
  font-size:30px; font-weight:700; outline:none; letter-spacing:-.02em; }
.field.small-in input { font-size:18px; font-weight:600; } .field.small-in .rupee { font-size:18px; }
input::placeholder { color:var(--dim); font-weight:500; }

.ibox { display:flex; align-items:center; gap:6px; border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:11px 13px; background:var(--bg); transition:border-color .15s; }
.ibox:focus-within { border-color:var(--primary); }
.ibox span { color:var(--muted); font-size:15px; } .ibox input { font-size:16px; font-weight:600; }
.minput { margin-top:10px; } .minput label { margin-bottom:5px; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }

/* pills */
.pills { display:flex; gap:8px; flex-wrap:wrap; }
.pill { padding:10px 16px; border-radius:var(--radius-pill); border:1px solid var(--line); background:var(--surface);
  color:var(--ink); font-size:14px; font-weight:600; cursor:pointer; transition:all .15s; box-shadow:var(--shadow-sm); }
.pill[aria-pressed=true] { background:var(--grad-primary); border-color:transparent; color:#fff; box-shadow:0 4px 12px rgba(63,60,160,.3); }
.block-label { font-size:13.5px; color:var(--muted); font-weight:600; margin:18px 2px 8px; }

/* buttons */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%;
  background:var(--grad-primary); color:#fff; border:none; border-radius:var(--radius-sm); padding:15px 20px;
  font-family:inherit; font-size:16px; font-weight:700; cursor:pointer; letter-spacing:-.01em; text-decoration:none;
  box-shadow:0 6px 16px rgba(63,60,160,.28); transition:transform .12s, box-shadow .15s, opacity .15s; }
.btn:hover { box-shadow:0 8px 22px rgba(63,60,160,.36); }
.btn:active { transform:translateY(1px) scale(.995); }
.btn:disabled { opacity:.4; cursor:not-allowed; box-shadow:none; }
.btn.secondary { background:var(--surface); color:var(--ink); border:1px solid var(--line-2); box-shadow:var(--shadow-sm); }
.btn-row { display:flex; gap:12px; margin-top:18px; }

/* money + regime cards */
.amt { font-size:27px; font-weight:800; letter-spacing:-.03em; }
.tag { font-size:11px; font-weight:700; color:#fff; background:var(--grad-accent); padding:3px 9px; border-radius:var(--radius-pill); box-shadow:0 2px 6px rgba(63,60,160,.4); }
.cards { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.rcard { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:18px 16px;
  transition:all .3s cubic-bezier(.2,.7,.2,1); position:relative; box-shadow:var(--shadow-sm); }
.rcard.dim { opacity:.55; transform:scale(.985); }
.rcard.win { border:1px solid transparent; background:linear-gradient(var(--surface),var(--surface)) padding-box, var(--ring) border-box;
  box-shadow:var(--shadow-lift); transform:translateY(-3px); }
.rcard .name { font-size:13px; color:var(--muted); font-weight:600; margin-bottom:7px; display:flex; align-items:center; gap:7px; }

/* generic panel / card */
.panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:18px; box-shadow:var(--shadow-sm); margin-bottom:14px; }

/* disclosure */
details { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); margin-bottom:12px; overflow:hidden; box-shadow:var(--shadow-sm); }
summary { padding:16px 18px; cursor:pointer; font-weight:600; list-style:none; display:flex; justify-content:space-between; align-items:center; }
summary::-webkit-details-marker { display:none; }
summary .chev { color:var(--muted); transition:transform .2s; }
details[open] summary .chev { transform:rotate(180deg); }
.det-body { padding:4px 18px 18px; }

/* flag cards (reconciliation) */
.flag { border:1px solid var(--line); border-radius:var(--radius); padding:16px; margin-bottom:12px; background:var(--surface); box-shadow:var(--shadow-sm); }
.flag.warn { border-left:4px solid var(--amber); } .flag.info { border-left:4px solid var(--primary); } .flag.ok { border-left:4px solid var(--accent); }
.flag .fh { font-weight:700; margin-bottom:4px; display:flex; align-items:center; gap:8px; }
.flag .fd { font-size:14px; color:var(--muted); margin-bottom:12px; }
.flag .facts { display:flex; gap:8px; flex-wrap:wrap; }
.chip { font-size:12px; padding:4px 11px; border-radius:var(--radius-pill); background:var(--surface-2); color:var(--muted); border:1px solid var(--line); font-weight:500; }

/* dropzone */
.drop { border:1.5px dashed var(--line-2); border-radius:var(--radius); padding:18px; background:var(--surface); margin-bottom:12px; transition:border-color .15s, background .15s; box-shadow:var(--shadow-sm); }
.drop.dragover { border-color:var(--primary); background:var(--accent-soft); }
.drop .dt { font-weight:700; margin-bottom:2px; } .drop .dd { font-size:13px; color:var(--muted); margin-bottom:12px; }
.drop .acts { display:flex; gap:10px; }
.drop .acts button { flex:1; border:1px solid var(--line-2); background:var(--bg); color:var(--ink); border-radius:var(--radius-sm); padding:12px; font-family:inherit; font-size:14px; font-weight:600; cursor:pointer; transition:border-color .15s; }
.drop .acts button:hover { border-color:var(--primary); }
.drop.done { border-style:solid; border-color:var(--accent); }
.parsestate { font-size:13px; color:var(--primary-ink); margin-top:10px; font-weight:500; }

/* explain / computation sheet */
.sheet { width:100%; border-collapse:collapse; }
.sheet td { padding:10px 0; border-bottom:1px solid var(--line); font-size:15px; }
.sheet td:last-child { text-align:right; font-weight:600; }
.sheet tr.total td { border:none; font-weight:800; font-size:17px; padding-top:14px; }
.sheet tr.sub td { color:var(--muted); }

/* step progress */
.steps { display:flex; gap:6px; margin-bottom:24px; }
.steps .s { flex:1; height:5px; border-radius:3px; background:var(--line); transition:background .3s; }
.steps .s.done { background:var(--grad-accent); } .steps .s.now { background:var(--grad-primary); }

/* status rail */
.rail { list-style:none; margin:10px 0; }
.rail li { display:flex; gap:12px; align-items:flex-start; padding:10px 0; }
.rail .dot { width:18px;height:18px;border-radius:50%;border:2px solid var(--line);flex:none;margin-top:2px; }
.rail li.done .dot { background:var(--accent); border-color:var(--accent); }
.rail li.now .dot { border-color:var(--primary); box-shadow:0 0 0 4px var(--accent-soft); }
.rail .rl { font-weight:600; } .rail .rs { font-size:13px; color:var(--muted); }

/* cta */
.cta { margin:24px 0 8px; background:var(--grad-primary); border-radius:var(--radius); padding:24px; color:#fff; box-shadow:var(--shadow-lift); }
.cta h3 { margin-bottom:6px; } .cta p { font-size:14px; opacity:.95; margin-bottom:16px; }
.cta a, .cta button { display:inline-block; background:#fff; color:var(--primary-ink); text-decoration:none; font-weight:700; padding:13px 22px; border-radius:var(--radius-sm); font-size:15px; border:none; cursor:pointer; box-shadow:0 6px 16px rgba(0,0,0,.15); }

/* footer + misc */
footer { text-align:center; color:var(--muted); font-size:13px; margin-top:30px; line-height:1.6; }
.trust { display:inline-flex; align-items:center; gap:6px; }
.note { font-size:12px; color:var(--dim); margin-top:14px; }
a.subtle { color:var(--primary-ink); text-decoration:none; font-weight:600; cursor:pointer; }
.center { text-align:center; }
.big-num { font-size:42px; font-weight:800; letter-spacing:-.03em; line-height:1.1; }
.hidden, [hidden] { display:none !important; }
@media (prefers-reduced-motion: reduce) { * { animation:none !important; transition:none !important; } }

/* Desktop: give the single-column tool pages (calculator, filing wizard) a comfortable, intentional
   centered width + breathing room instead of a stranded phone column. (Landing=.home, console=.pro have their own.) */
@media (min-width:880px) {
  .wrap:not(.home):not(.pro):not(.app) { max-width:640px; padding-top:40px; }
}

/* ============================================================
   Website-first app shell — filing flow (file.html, intake.html).
   Premise inverted vs. the old phone-column: desktop is the primary
   canvas (rail | work | live summary); the single column is the
   *mobile fallback*, not the base everything is built up from.
   ============================================================ */

/* tablet/phone: a comfortable column, not a 540px ribbon */
.wrap.app { max-width:600px; }

/* stepper children are hidden in the mobile (horizontal-bar) form */
.steps .s > i, .steps .s > .slab { display:none; }

/* the live summary aside only exists on desktop */
.aside-col { display:none; }

@media (min-width:960px) {
  .wrap.app { max-width:1200px; padding:34px 44px 96px; }

  .appshell { display:grid; grid-template-columns:208px minmax(0,1fr) 336px; gap:52px; align-items:start; }
  .appshell.intake { grid-template-columns:minmax(0,1fr) 336px; }     /* no step rail */
  .appshell > .main-col { min-width:0; }
  .rail-col, .aside-col { position:sticky; top:34px; }
  .aside-col { display:block; }

  /* --- vertical stepper rail --- */
  .wrap.app .steps { flex-direction:column; gap:0; margin:6px 0 0; }
  .wrap.app .steps .s { flex:none; height:auto; background:none; border-radius:0;
    display:flex; align-items:center; gap:13px; padding:9px 0; position:relative; color:var(--muted); transition:color .2s; }
  .wrap.app .steps .s > i, .wrap.app .steps .s > .slab { display:flex; }
  .wrap.app .steps .s > i { width:30px; height:30px; flex:none; border-radius:50%; border:2px solid var(--line-2);
    background:var(--surface); align-items:center; justify-content:center; font-size:13px; font-weight:700;
    font-style:normal; z-index:1; transition:all .25s; }
  .wrap.app .steps .s::before { content:''; position:absolute; left:14px; top:-9px; height:18px; width:2px; background:var(--line); z-index:0; }
  .wrap.app .steps .s:first-child::before { display:none; }
  .wrap.app .steps .s > .slab { font-size:14px; font-weight:600; letter-spacing:-.01em; }
  .wrap.app .steps .s.done { color:var(--ink-2); }
  .wrap.app .steps .s.done > i { background:var(--grad-accent); border-color:transparent; color:#fff; font-size:0; }
  .wrap.app .steps .s.done > i::after { content:'✓'; font-size:15px; font-weight:800; }
  .wrap.app .steps .s.done::before { background:var(--accent); }
  .wrap.app .steps .s.now { color:var(--ink); }
  .wrap.app .steps .s.now > i { background:var(--grad-primary); border-color:transparent; color:#fff; box-shadow:0 0 0 4px var(--accent-soft); }

  /* --- live summary aside --- */
  .summary { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; }
  .summary .sum-head { padding:17px 18px 14px; background:linear-gradient(180deg,var(--surface-2),var(--surface)); border-bottom:1px solid var(--line); position:relative; }
  .summary .sum-head::before { content:''; position:absolute; inset:0 0 auto 0; height:3px; background:var(--grad-primary); }
  .summary .sum-title { font-weight:700; letter-spacing:-.02em; font-size:15px; }
  .summary .sum-fy { font-size:12.5px; color:var(--muted); margin-top:2px; font-variant-numeric:tabular-nums; }
  .summary .sum-body { padding:16px 18px; display:grid; gap:17px; }
  .sum-k { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:700; margin-bottom:6px; }
  .sum-v { font-size:16px; font-weight:700; letter-spacing:-.01em; }
  .sum-sub { font-size:13px; color:var(--muted); font-variant-numeric:tabular-nums; }
  #sum-doclist { list-style:none; display:grid; gap:8px; }
  #sum-doclist li { font-size:14px; color:var(--muted); display:flex; align-items:center; gap:9px; transition:color .2s; }
  #sum-doclist li::before { content:'○'; color:var(--dim); font-size:12px; }
  #sum-doclist li.on { color:var(--ink); font-weight:600; }
  #sum-doclist li.on::before { content:'✓'; color:var(--accent); font-weight:800; font-size:13px; }
  .sum-regime { font-size:16px; font-weight:700; letter-spacing:-.01em; }
  .sum-refund { display:flex; flex-direction:column; gap:2px; margin-top:4px; }
  .sum-refund .lab { font-size:12px; color:var(--muted); }
  .sum-refund .big { font-size:27px; font-weight:800; letter-spacing:-.025em; line-height:1.15; }
  .sum-refund.pos .big { color:var(--accent); }
  .summary .sum-foot { padding:13px 18px; border-top:1px solid var(--line); font-size:11.5px; color:var(--muted); background:var(--surface-2); line-height:1.5; }
}
