/* Pannu Lekka website. Tokens are the app's locked palette (apps/tax/docs/BRAND.md); do not add colours here.
   Mood: the worksheet a good auditor hands you: warm ivory paper, each figure on its own line, its rule beside it.
   Signature: the slab staircase (steps fill terracotta as far as the income reaches; the green zero-tax line at the rebate edge).
   Terracotta is the only bold colour. Green and amber are states and always carry an icon and a word.
   No letter-spacing or text-transform anywhere (Indic scripts break with either). Telugu/Tamil line height >= 1.55. */

@font-face{font-family:'Noto Serif Telugu';font-weight:600 700;font-display:swap;src:url(/assets/fonts/NotoSerifTelugu-telugu.woff2) format('woff2');unicode-range:U+0951-0952,U+0964-0965,U+0B83,U+0C00-0C7F,U+1CD5-1CD6,U+1CD8,U+1CDA,U+1CF2,U+200C-200D,U+25CC}
@font-face{font-family:'Noto Serif Telugu';font-weight:600 700;font-display:swap;src:url(/assets/fonts/NotoSerifTelugu-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Noto Serif Telugu';font-weight:600 700;font-display:swap;src:url(/assets/fonts/NotoSerifTelugu-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Noto Sans Telugu';font-weight:400;font-display:swap;src:url(/assets/fonts/NotoSansTelugu-400-telugu.woff2) format('woff2');unicode-range:U+0951-0952,U+0964-0965,U+0B83,U+0C00-0C7F,U+1CD5-1CD6,U+1CD8,U+1CDA,U+1CF2,U+200C-200D,U+25CC}
@font-face{font-family:'Noto Sans Telugu';font-weight:400;font-display:swap;src:url(/assets/fonts/NotoSansTelugu-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Noto Sans Telugu';font-weight:400;font-display:swap;src:url(/assets/fonts/NotoSansTelugu-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Noto Sans Telugu';font-weight:600;font-display:swap;src:url(/assets/fonts/NotoSansTelugu-600-telugu.woff2) format('woff2');unicode-range:U+0951-0952,U+0964-0965,U+0B83,U+0C00-0C7F,U+1CD5-1CD6,U+1CD8,U+1CDA,U+1CF2,U+200C-200D,U+25CC}
@font-face{font-family:'Noto Sans Telugu';font-weight:600;font-display:swap;src:url(/assets/fonts/NotoSansTelugu-600-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Noto Sans Telugu';font-weight:600;font-display:swap;src:url(/assets/fonts/NotoSansTelugu-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  color-scheme:light dark;
  --canvas:#F4EEE3; --surface:#FFFCF6; --surface2:#EFE7D8; --ink:#211A15; --muted:#5C5046; --hair:#8A7B6C; --hair-soft:#D9CFBD;
  --pri:#A13B1A; --on-pri:#FFFFFF; --pri-c:#F7DED2; --on-pri-c:#5B1A06;
  --good:#1C6A46; --good-c:#DCEEE3; --warn:#7A4900; --warn-c:#FBEBC9;
  --s0:#E8DFD0; --s1:#F3CDB9; --s2:#EBB091; --s3:#E0926D; --s4:#D2754E; --s5:#BF5B34; --s6:#A13B1A;
  --shadow:0 1px 2px rgba(33,26,21,.08), 0 6px 18px rgba(33,26,21,.07);
  --script:'Nirmala UI';
  --f-body:'Noto Sans Telugu', var(--script), system-ui, sans-serif;
  --f-disp:'Noto Serif Telugu', 'Noto Serif', var(--script), Georgia, serif;
}
@media (prefers-color-scheme: dark){
  :root{
    --canvas:#16110E; --surface:#201915; --surface2:#2A221D; --ink:#F1E9E0; --muted:#C0B2A4; --hair:#7E7064; --hair-soft:#3A2F28;
    --pri:#F2A285; --on-pri:#3A1204; --pri-c:#4A2214; --on-pri-c:#FFDCCD;
    --good:#86D3A9; --good-c:#123524; --warn:#FFE3AD; --warn-c:#3B2A06;
    --s0:#3A322B; --s1:#4E2D20; --s2:#663522; --s3:#7F3E24; --s4:#9A4A29; --s5:#B5582F; --s6:#D06838;
    --shadow:none;
  }
}
/* Scripts the app's fonts do not cover fall back to the phone's Noto font (BRAND "Type"). */
:lang(hi), :lang(mr){--script:'Noto Sans Devanagari','Nirmala UI'}
:lang(ta){--script:'Noto Sans Tamil','Nirmala UI'}
:lang(kn){--script:'Noto Sans Kannada','Nirmala UI'}
:lang(ml){--script:'Noto Sans Malayalam','Nirmala UI'}
:lang(bn){--script:'Noto Sans Bengali','Nirmala UI'}
:lang(gu){--script:'Noto Sans Gujarati','Nirmala UI'}
:lang(or){--script:'Noto Sans Oriya','Nirmala UI'}
:lang(pa){--script:'Noto Sans Gurmukhi','Nirmala UI'}
:lang(te){--script:'Noto Sans Telugu','Nirmala UI'}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; text-size-adjust:100%}
body{margin:0; background:var(--canvas); color:var(--ink); font:400 17px/1.6 var(--f-body); -webkit-font-smoothing:antialiased; overflow-wrap:break-word}
h1,h2,h3,h4{font-family:var(--f-disp); font-weight:700; line-height:1.4; margin:0; text-wrap:balance}
:lang(en) h1, :lang(en) h2, :lang(en) h3{line-height:1.25}
b,strong{font-weight:600}
p{margin:0}
a{color:var(--pri); text-decoration-color:var(--pri); text-decoration-thickness:1.5px; text-underline-offset:4px}
a:hover{text-decoration-thickness:3px}
a, summary{touch-action:manipulation; -webkit-tap-highlight-color:rgba(161,59,26,.2)}
:focus-visible{outline:3px solid var(--pri); outline-offset:2px; border-radius:4px}
.num{font-family:var(--f-disp); font-weight:600; font-variant-numeric:tabular-nums lining-nums; white-space:nowrap}
.vh{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap}
.icon{width:24px; height:24px; flex:none; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round}
.icon.sm{width:18px; height:18px}

.skip{position:absolute; left:16px; top:-100px; z-index:50; background:var(--pri); color:var(--on-pri); padding:12px 16px; border-radius:14px; font-weight:600; text-decoration:none}
.skip:focus{top:12px}

.wrap{max-width:1100px; margin:0 auto; padding:0 16px}
@media (min-width:720px){ .wrap{padding:0 24px} }

/* ---------- header ---------- */
.top{display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:12px; padding-bottom:12px}
.brand{display:flex; align-items:center; gap:10px; min-width:0; min-height:48px; color:var(--ink); text-decoration:none}
.brand svg{flex:none}
.brand b{display:block; font:700 22px/1.3 var(--f-disp)}
.brand small{display:block; font-size:14px; line-height:1.55; color:var(--muted)}
.brand:hover b{text-decoration:underline; text-decoration-color:var(--pri); text-decoration-thickness:2px; text-underline-offset:4px}

.lang{position:relative; flex:none}
.lang summary{list-style:none; display:inline-flex; align-items:center; gap:6px; min-height:48px; padding:6px 12px; border:1.5px solid var(--hair); border-radius:24px; background:var(--surface); cursor:pointer; font-size:16px; font-weight:600; line-height:1.3}
.lang summary::-webkit-details-marker{display:none}
.lang summary:hover{border-color:var(--ink)}
.lang[open] summary{border-color:var(--pri); background:var(--pri-c); color:var(--on-pri-c)}
.lang[open] summary .chev{transform:rotate(180deg)}
.lang ul{position:absolute; right:0; top:calc(100% + 6px); z-index:20; margin:0; padding:6px; list-style:none; width:max-content; min-width:200px; max-width:calc(100vw - 32px); background:var(--surface); border:1.5px solid var(--hair); border-radius:14px; box-shadow:0 12px 32px rgba(33,26,21,.2)}
.lang a{display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:6px 12px; border-radius:10px; color:var(--ink); text-decoration:none; font-size:17px; line-height:1.55}
.lang a:hover{background:var(--surface2)}
.lang a[aria-current="page"]{background:var(--pri-c); color:var(--on-pri-c); font-weight:600}
.lang a span{font-size:14px; color:var(--muted)}
.lang a[aria-current="page"] span{color:var(--on-pri-c)}

/* ---------- hero ---------- */
.hero{display:grid; gap:24px; grid-template-areas:'text' 'act' 'card' 'facts'; grid-template-columns:minmax(0,1fr); padding-top:12px; padding-bottom:40px}
.h-text{grid-area:text} .h-card{grid-area:card; min-width:0} .h-act{grid-area:act} .h-facts{grid-area:facts}
.hero h1{display:flex; flex-direction:column; gap:2px}
.hero .name{font:700 44px/1.1 var(--f-disp)}
.hero .name-te{font:700 32px/1.55 var(--f-disp); color:var(--muted)}
.hero h1 .name-te:first-child{color:var(--ink); font-size:40px; line-height:1.5}
.hero h1 .name-te:first-child + .name{font-size:30px; color:var(--muted)}
.headline{margin-top:14px; font:700 24px/1.35 var(--f-disp); max-width:26ch}
.lede{margin-top:12px; font-size:18px; line-height:1.65; max-width:56ch}
.cta{display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:60px; padding:10px 26px; border-radius:14px; background:var(--pri); color:var(--on-pri); font-size:18px; font-weight:600; line-height:1.35; text-decoration:none; text-align:center; transition:box-shadow .2s ease}
.cta:hover{box-shadow:0 0 0 4px var(--pri-c)}
.cta .icon{fill:currentColor; stroke:none}
.rules-line{display:flex; gap:8px; align-items:flex-start; margin-top:14px; font-size:15px; line-height:1.6; color:var(--muted)}
.rules-line .icon{margin-top:3px}
.facts{margin:0; padding:0; list-style:none; display:grid}
.facts li{display:flex; align-items:flex-start; gap:12px; padding:10px 0; border-top:1px solid var(--hair-soft); font-size:17px; line-height:1.55}
.facts li:last-child{border-bottom:1px solid var(--hair-soft)}
.facts .icon{margin-top:1px; color:var(--pri)}
@media (min-width:900px){
  .hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); grid-template-areas:'text card' 'act card' 'facts card'; grid-template-rows:auto auto 1fr; gap:28px 56px; align-items:start; align-content:start; padding-top:36px; padding-bottom:64px}
  .hero .name{font-size:68px}
  .hero .name-te{font-size:40px}
  .hero h1 .name-te:first-child{font-size:56px}
  .hero h1 .name-te:first-child + .name{font-size:40px}
  .headline{font-size:32px; max-width:22ch}
}

/* verdict card: the answer first */
.card{background:var(--surface); border:1px solid var(--hair-soft); border-radius:14px; box-shadow:var(--shadow)}
.vcard{margin:0; padding:16px; background:var(--surface); border:1px solid var(--hair-soft); border-radius:14px; box-shadow:var(--shadow)}
.vcard .k{font-size:15px; font-weight:600; color:var(--muted); line-height:1.5}
.vrow{display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:12px 0; border-bottom:1px solid var(--hair-soft)}
.vrow:first-of-type{margin-top:6px; border-top:1px solid var(--hair-soft)}
.vname{font:700 20px/1.4 var(--f-disp)}
.vamt .num{font-size:34px; line-height:1.2; font-weight:700}
.vrow.win .vamt .num{color:var(--good)}
.vbadge{display:flex; gap:10px; align-items:flex-start; margin-top:14px; padding:12px 14px; border-radius:12px; background:var(--good-c); color:var(--good); font-weight:600; line-height:1.5}
.vbadge .icon{margin-top:2px}
.vbadge .num{font-size:19px}
.vnote{margin-top:12px; font-size:15px; line-height:1.6; color:var(--muted)}

/* ---------- SIGNATURE: the slab staircase ---------- */
.stair{display:block; width:100%; height:auto}
.stair .fill.r0{fill:var(--s0)} .stair .fill.r1{fill:var(--s1)} .stair .fill.r2{fill:var(--s2)} .stair .fill.r3{fill:var(--s3)}
.stair .fill.r4{fill:var(--s4)} .stair .fill.r5{fill:var(--s5)} .stair .fill.r6{fill:var(--s6)}
.stair .edge{fill:none; stroke-width:1.6}
.stair .edge.on{stroke:var(--pri)}
.stair .edge.off{stroke:var(--hair); stroke-dasharray:5 4}
.stair .rate{fill:var(--ink); font:700 14px/1 var(--f-disp); font-variant-numeric:tabular-nums; text-anchor:middle}
.stair .base{stroke:var(--ink); stroke-width:1.5; fill:none}
.stair .zero{stroke:var(--good); stroke-width:3.5; stroke-linecap:round; fill:none}
.stair .zero-l text{fill:var(--good); font:700 13px/1 var(--f-disp)}
.stair .zero-tick{fill:none; stroke:var(--good); stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round}
.stair .mark{fill:var(--ink)}
.stair .mark-t{fill:var(--ink); font:700 13px/1 var(--f-disp); text-anchor:middle}
@media (prefers-reduced-motion: no-preference){
  .stair .fill{animation:rise .6s cubic-bezier(.2,.8,.2,1) both; transform-box:fill-box; transform-origin:left center}
  @keyframes rise{from{transform:scaleX(0)} to{transform:none}}
}
.stairs-grid{display:grid; gap:16px; margin-top:20px; grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){ .stairs-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px} }
.stair-card{padding:16px}
.stair-card h3{font-size:22px}
.stair-card .sk{margin:8px -4px 4px}
.lines{margin:6px 0 0; padding:0; list-style:none}
.ln{display:flex; align-items:baseline; gap:12px; min-height:44px; padding:8px 0; border-top:1px solid var(--hair-soft); font-size:16px; line-height:1.5}
.ln .tx{flex:1; min-width:0}
.ln .am{flex:none; text-align:right}
.ln .am .num, .ln .tx .num{font-size:18px}
.ln.sum{border-top:1.5px solid var(--hair)}
.ln.total{border-top:2px solid var(--ink); font-weight:600}
.ln.total .am .num{font-size:26px; font-weight:700}
.vflag{display:flex; gap:10px; align-items:flex-start; margin-top:12px; padding:12px 14px; border-radius:12px; font-weight:600; line-height:1.5}
.vflag .icon{margin-top:2px}
.vflag .num{font-size:18px}
.vflag.good{background:var(--good-c); color:var(--good)}
.vflag.more{background:var(--surface2); color:var(--ink)}
.legend-row{display:flex; flex-wrap:wrap; gap:6px 20px; margin:16px 0 0; padding:0; list-style:none; font-size:14px; line-height:1.55; color:var(--muted)}
.legend-row li{display:flex; align-items:center; gap:8px}
.sw{flex:none; display:inline-block; width:22px; height:14px; border-radius:3px}
.sw-fill{background:var(--s4); box-shadow:inset 0 0 0 1.5px var(--pri)}
.sw-dash{border:1.5px dashed var(--hair)}
.sw-zero{width:4px; border-radius:2px; background:var(--good)}
.eg{margin-top:16px; font-weight:600}

/* ---------- sections ---------- */
.sec{padding-top:40px; padding-bottom:40px; border-top:1px solid var(--hair-soft)}
.sec h2{font-size:28px}
.sec .intro{margin-top:12px; max-width:62ch; color:var(--muted); font-size:17px}
.cap{margin-top:14px; font-size:15px; line-height:1.6; color:var(--muted); max-width:70ch}
@media (min-width:900px){ .sec{padding-top:56px; padding-bottom:56px} .sec h2{font-size:36px} }

.ways{display:grid; gap:16px; margin-top:24px; grid-template-columns:repeat(auto-fit, minmax(min(100%, 290px), 1fr))}
.way{padding:20px 16px; background:var(--surface); border:1px solid var(--hair-soft); border-radius:14px}
.way-ic{display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:14px; background:var(--pri-c); color:var(--on-pri-c)}
.way-ic .icon{width:28px; height:28px}
.way h3{margin-top:14px; font-size:20px}
.way p{margin-top:8px}
.way .num{font-size:17px}
@media (min-width:720px){ .way{padding:24px} }

.whos{display:grid; gap:0; margin-top:16px; grid-template-columns:minmax(0,1fr)}
.who{display:flex; gap:14px; align-items:flex-start; padding:16px 0; border-top:1px solid var(--hair-soft)}
.who:last-child{border-bottom:1px solid var(--hair-soft)}
.who .icon{margin-top:4px; color:var(--pri)}
.who h3{font-size:20px}
.who p{margin-top:4px; max-width:60ch}
@media (min-width:900px){ .whos{grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px} .who{border:none !important; padding:8px 0; flex-direction:column} }

.year{padding:20px 16px}
.year h2{font-size:26px}
.year ul{margin:12px 0 0; padding-left:22px}
.year li{margin-top:8px; padding-left:4px; max-width:66ch}
.year p{margin-top:12px}
.year .go{display:inline-flex; align-items:center; min-height:48px; font-weight:600}
@media (min-width:900px){ .year{padding:28px} }

.range{display:flex; gap:14px; align-items:flex-start; padding:18px 16px; border-radius:14px; background:var(--warn-c); color:var(--warn)}
.range .icon{margin-top:4px}
.range h2{font-size:24px}
.range p{margin-top:6px; max-width:66ch}
@media (min-width:720px){ .range{padding:20px 24px} }

.band{display:flex; gap:14px; align-items:flex-start; padding:20px 16px; border-radius:14px; background:var(--surface); border:1px solid var(--hair-soft)}
.band .icon{margin-top:4px; color:var(--pri)}
.band h2{font-size:22px}
.band p{margin-top:6px; max-width:62ch}
.band a{display:inline-flex; align-items:center; min-height:48px; font-weight:600}
.bands{display:grid; gap:16px}
@media (min-width:900px){ .bands{grid-template-columns:1fr 1fr} .band{padding:24px} }

/* ---------- document pages: a worksheet page with the staircase along its top ---------- */
.steps{display:flex; align-items:flex-end; height:16px; border-bottom:2px solid var(--ink)}
.steps i{flex:1; display:block}
.steps i:nth-child(1){height:3px; background:var(--s0)} .steps i:nth-child(2){height:5px; background:var(--s1)} .steps i:nth-child(3){height:7px; background:var(--s2)}
.steps i:nth-child(4){height:9px; background:var(--s3)} .steps i:nth-child(5){height:11px; background:var(--s4)} .steps i:nth-child(6){height:13px; background:var(--s5)}
.steps i:nth-child(7){height:16px; background:var(--s6)}
.doc{position:relative; max-width:760px; margin:8px auto 48px; background:var(--surface); border:1px solid var(--hair-soft); border-radius:14px; box-shadow:var(--shadow); padding:28px 16px 28px; overflow:hidden}
.doc.wide{max-width:900px}
@media (max-width:719px){ .doc.wide{background:transparent; border:none; box-shadow:none; border-radius:0; padding:8px 0 24px; overflow:visible} }
@media (min-width:720px){ .doc{padding:44px 48px 44px} }
.doc h1{font-size:32px}
.doc .meta{display:flex; gap:8px; align-items:center; margin-top:8px; font-size:15px; color:var(--muted)}
.doc .intro{margin-top:16px; font-size:18px; line-height:1.65}
.doc h2{font-size:23px; margin-top:32px}
.doc h3{font-size:19px; margin-top:20px}
.doc p, .doc li{max-width:68ch}
.doc p{margin-top:10px}
.doc ul, .doc ol{margin:10px 0 0; padding-left:22px}
.doc li{margin-top:8px; padding-left:4px}
.doc ol li::marker{font-weight:700; font-family:var(--f-disp)}
.doc .note{font-size:15px; color:var(--muted)}
.doc .warn{display:flex; gap:10px; align-items:flex-start; margin-top:12px; padding:12px 14px; border-radius:12px; background:var(--warn-c); color:var(--warn); font-weight:600; line-height:1.55}
.doc .warn .icon{margin-top:1px}
.short{margin-top:20px; padding:4px 16px 16px; border-radius:12px; background:var(--pri-c); color:var(--on-pri-c)}
.short h2{margin-top:12px; font-size:20px}
.short p, .short ul{max-width:68ch}
.short ul{padding-left:22px}
.short li{margin-top:8px}
.short a{color:var(--on-pri-c)}
.short.banner{display:flex; gap:12px; align-items:flex-start; padding:14px 16px; font-weight:600}
.short.banner .icon{margin-top:3px}
.out{display:inline-flex; align-items:center; gap:6px; min-height:44px}
.out .icon{width:16px; height:16px}
.mail{display:inline-flex; align-items:center; gap:10px; max-width:100%; min-height:52px; margin-top:12px; padding:8px 18px; border-radius:14px; border:1.5px solid var(--ink); color:var(--ink); font-weight:600; font-size:18px; text-decoration:none; overflow-wrap:anywhere}
.mail:hover{background:var(--pri-c); color:var(--on-pri-c)}
.mail span{min-width:0}
.doc .go{display:inline-flex; align-items:center; min-height:48px; font-weight:600}
.doc .home{display:inline-flex; align-items:center; min-height:48px; margin-top:16px; font-weight:600}

/* how we calculate */
.toc{margin-top:20px}
.toc h2{margin-top:0; font-size:19px}
.toc ol{list-style:none; margin:6px 0 0; padding:0; display:grid; gap:0; grid-template-columns:minmax(0,1fr)}
.toc li{margin:0; padding:0; max-width:none}
.toc a{display:flex; align-items:center; min-height:44px; border-top:1px solid var(--hair-soft); text-decoration:none; color:var(--ink); font-weight:600}
.toc a:hover{color:var(--pri)}
@media (min-width:720px){ .toc ol{grid-template-columns:1fr 1fr; column-gap:32px} }
.rule{margin-top:40px; padding-top:8px; border-top:2px solid var(--ink); scroll-margin-top:12px}
.rule > h2{margin-top:16px; font-size:26px}
.tbl{margin-top:16px; overflow-x:auto; -webkit-overflow-scrolling:touch}
table{width:100%; border-collapse:collapse; font-size:16px; line-height:1.45}
table.slabs{table-layout:fixed; max-width:680px}
table.ex{max-width:520px}
th.r{text-align:right}
table.slabs th, table.slabs td{padding:10px 6px}
table.slabs tbody th{font-size:15px}
table.slabs.n3 col.c1{width:44%} table.slabs.n3 col.c2{width:16%}
table.slabs.n4 col.c1{width:46%} table.slabs.n4 col.c2{width:18%}
caption{caption-side:top; text-align:left; padding:0 0 8px; font:700 17px/1.4 var(--f-disp)}
th, td{padding:10px 8px; border-bottom:1px solid var(--hair-soft); text-align:left; vertical-align:top}
thead th{font-size:14px; font-weight:600; color:var(--muted); border-bottom:2px solid var(--ink)}
tbody th{font-weight:400}
td.r{text-align:right}
.b1, .b2{display:block}
tr.sum th, tr.sum td{border-top:2px solid var(--ink); font-weight:600}
table.ex td.r{text-align:right}
table.ex tbody th{font-weight:400}
table.ex tr.sum th{font-weight:600}
table.ex .num{font-size:18px}
table.claims tbody th{width:56%}
@media (max-width:719px){
  table.claims, table.claims tbody, table.claims tr, table.claims th, table.claims td{display:block; width:auto}
  table.claims thead{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}
  table.claims tr{padding:12px 0; border-bottom:1px solid var(--hair-soft)}
  table.claims th, table.claims td{padding:0; border:none}
  table.claims tbody th{width:auto; font-weight:600}
  table.claims td{margin-top:4px; color:var(--ink)}
  table.claims td::before{content:"→ "; color:var(--muted)}
}
.cities-h{font-weight:600}
.cities{font:700 19px/1.5 var(--f-disp); max-width:none}
.srcs{margin-top:20px; padding:8px 14px 10px; border-radius:12px; background:var(--surface2)}
.srcs h4{margin-top:4px; font:600 14px/1.5 var(--f-body); color:var(--muted)}
.srcs ul{list-style:none; margin:4px 0 0; padding:0}
.srcs li{display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin:0; padding:10px 0; border-top:1px solid var(--hair-soft); max-width:none; font-size:15px; line-height:1.5}
.srcs li:first-child{border-top:none}
.srcs .out{display:inline; min-height:0}
.srcs .out .icon{display:inline; vertical-align:-2px; margin-left:5px}
@media (min-width:720px){ .srcs li{flex-direction:row; flex-wrap:wrap; align-items:center; gap:4px 12px} }
.tag{display:inline-flex; align-items:center; gap:4px; padding:1px 8px; border-radius:12px; font-size:13px; font-weight:600; line-height:1.5; white-space:nowrap}
.tag.gov{background:var(--good-c); color:var(--good)}
.tag.exp{background:var(--warn-c); color:var(--warn)}
.tag .icon{width:14px; height:14px}
.tag{margin-top:0}

/* ---------- footer ---------- */
.foot{padding-top:0; padding-bottom:32px}
.foot .steps{margin-bottom:20px}
.foot ul{margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:4px 20px}
.foot a{display:inline-flex; align-items:center; min-height:48px; font-weight:600; color:var(--ink)}
.foot a[aria-current="page"]{text-decoration:none}
.foot p{margin-top:12px; font-size:14px; color:var(--muted); line-height:1.55}
.foot .notice{display:flex; gap:8px; align-items:flex-start; margin-top:8px; font-size:15px; color:var(--ink)}
.foot .notice .icon{margin-top:3px; color:var(--pri)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important; transition:none !important}
}
