/* BD Tariff — mobile-first, no framework */
*,*::before,*::after{box-sizing:border-box}
:root{
  --ink:#121a23; --mut:#3f4a56; --line:#dde3e9; --bg:#eef1f5; --card:#fff;
  --nav:#27374a; --accent:#1f6fb8; --good:#0b5d33; --warn:#9a2b1f; --soft:#f7f9fb;
  --navink:#ffffff; --navmut:#cfe0f0; --dot:#66c08a; --accenthov:#1a5f9e;
  /* surfaces that used to be hardcoded #fff -- themed from here on */
  --field:#fff; --fieldline:#c7d0d9; --hov:#f7fbff; --ring:#1f6fb822;
  --gridlbl:#56626f; --gridval:#1f3b57; --meta:#505d6c; --unnamed:#8a5a44;
  --tintw:#fff6f4; --tintwline:#f0cfca;
  --tintn:#fff8e1; --tintnline:#f0dca0; --tintnink:#60511f;
  --tintg:#f3faf6; --tintgline:#c9e6d6;
  --reslink:#3c4e63; --cardline:#dde3ea; --hovline:#27374a;
  --head:#27374a; --body2:#3c4e63; --chip:#e4eaf1; --chipink:#3b4a5b;
  --footbg:#1b2836; --footink:#9fb1c2; --footlink:#8fc4f0;
  --prebg:#27374a; --preink:#e8eef4;
}

/* ---------- themes -----------------------------------------------------
   Set on <html data-theme="...">. An inline script in <head> applies the
   saved choice before first paint, so there is no flash of the wrong theme.
   Every pair below was contrast-checked against WCAG AA (4.5:1 body text).
   ---------------------------------------------------------------------- */
html[data-theme="dark"]{
  /* Tinted slate-blue, per the user's proposal 8 Oct:
     page background a LIGHTER tint, header a DARKER tint, text lifted to match. */
  --head:#e7eef6; --body2:#cfdcea; --chip:#2b394a; --chipink:#dbe6f2;
  --footbg:#0d1520; --footink:#c0cedc; --footlink:#9ccbff;
  --prebg:#0d1520; --preink:#e7eef6;
  --field:#1a2634; --fieldline:#44566b; --hov:#2a3848; --ring:#7cbcff33;
  --gridlbl:#b4c3d2; --gridval:#e4edf7; --meta:#b4c3d2; --unnamed:#e0b094;
  --tintw:#35221e; --tintwline:#6b4038;
  --tintn:#322b1a; --tintnline:#635634; --tintnink:#f0e2b4;
  --tintg:#1a2d23; --tintgline:#365a45;
  --reslink:#dae5f0; --cardline:#334253; --hovline:#7cbcff; --accenthov:#a8d4ff;
  --ink:#f0f5fa; --mut:#c2d0de; --line:#334253; --bg:#16202c; --card:#1e2a38;
  --soft:#1a2532; --accent:#7cbcff; --good:#6fdca7; --warn:#ffa797;
  --nav:#0d1520; --navink:#f4f8fc; --navmut:#c6d6e6; --dot:#6fd79b;
}
html[data-theme="sepia"]{
  --head:#3a3123; --body2:#4a4133; --chip:#eadfc6; --chipink:#4a4133;
  --footbg:#3a3225; --footink:#ddd1b8; --footlink:#e8b270;
  --prebg:#36301f; --preink:#f1e9d6;
  --field:#fffdf6; --fieldline:#cdbfa3; --hov:#f0e6d0; --ring:#8a541533;
  --gridlbl:#6b5e49; --gridval:#3a3123; --meta:#574c3c; --unnamed:#8a5a44;
  --tintw:#f7e4da; --tintwline:#e0bda9;
  --tintn:#f7edd2; --tintnline:#ddc894; --tintnink:#5e4d1c;
  --tintg:#e9f0e2; --tintgline:#c3d4b6;
  --reslink:#3f372a; --cardline:#e1d5be; --hovline:#8a5415; --accenthov:#6d4210;
  --ink:#2c2517; --mut:#574c3c; --line:#e1d5be; --bg:#f3ead8; --card:#fbf6ea;
  --nav:#463c2b; --accent:#8a5415; --good:#3c6730; --warn:#8c2f1f; --soft:#f8f2e4;
  --navink:#fbf6ea; --navmut:#e2d6bf; --dot:#8fc08a;
}
html[data-theme="dark"] footer.site{background:var(--footbg);color:var(--footink)}
html[data-theme="dark"] footer.site .small{color:var(--footink)}
html[data-theme="sepia"] footer.site{background:#3a3124;color:#d8ccb4}
html[data-theme="sepia"] footer.site .small{color:#b6a98f}
html[data-theme="dark"] .adslot{border-color:var(--line)}

/* theme switcher ------------------------------------------------------- */
.themesw{display:inline-flex;gap:2px;margin-left:14px;vertical-align:middle;
  background:rgba(255,255,255,.10);border-radius:7px;padding:2px}
.themesw button{all:unset;cursor:pointer;line-height:1;padding:5px 7px;
  border-radius:5px;font-size:13px;color:var(--navmut);
  display:inline-flex;align-items:center;justify-content:center}
.themesw button:hover{background:rgba(255,255,255,.14);color:var(--navink)}
.themesw button[aria-pressed="true"]{background:rgba(255,255,255,.22);color:var(--navink)}
.themesw button:focus-visible{outline:2px solid #fff;outline-offset:1px}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
.wrap{max-width:1080px;margin:0 auto;padding:0 14px}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- header / footer ---------- */
header.site{background:var(--nav);color:#fff}
header.site .bar{display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.brand{color:var(--navink);font-weight:800;font-size:19px;letter-spacing:.3px;
  display:inline-flex;align-items:center;gap:9px}
.brand .mark{flex:0 0 auto;display:block}
.brand span{color:var(--dot)}
.brand:hover{text-decoration:none}
header.site nav a{color:var(--navmut);font-size:14.5px;margin-left:14px}
header.site nav a:hover{color:var(--navink)}
header.site nav{display:flex;align-items:center;flex-wrap:wrap}
/* roomier header on larger screens only - phone space stays for the data */
@media (min-width:700px){
  header.site .bar{padding-top:17px;padding-bottom:17px}
  .brand{font-size:22px;gap:11px}
  /* The phone fold is tight and every line above the search box costs a
     chapter card. A desktop has the room, so it keeps the old spacing. */
  main.wrap{padding-top:18px}
}
footer.site{margin-top:34px;background:var(--footbg);color:var(--footink);padding:18px 0 26px}
footer.site a{color:var(--footlink)}
.disc{font-size:13px;line-height:1.6;margin:0 0 8px}
.small{font-size:12.5px;color:var(--mut);margin:0}

main.wrap{padding-top:10px;padding-bottom:10px}
h1{font-size:24px;line-height:1.25;margin:0 0 6px}
h2{font-size:19px;margin:26px 0 10px}
h3{font-size:16px;margin:18px 0 8px}
.lede{color:var(--mut);margin:0 0 16px;font-size:17px;line-height:1.55}
.lede:first-of-type{color:var(--ink)}

/* ---------- breadcrumbs ---------- */
.crumbs{font-size:13px;color:var(--mut);margin:0 0 12px}
.crumbs i{font-style:normal;color:var(--mut);margin:0 2px}

/* ---------- search panel ---------- */
.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:16px;margin-bottom:16px}
.field{margin-bottom:12px}
.field:last-child{margin-bottom:0}
label{display:block;font-size:16px;font-weight:700;color:var(--ink);margin-bottom:7px;line-height:1.4}
.hint{font-size:14px;font-weight:400;color:var(--mut)}
@media(max-width:480px){label{font-size:15px}.hint{font-size:13.5px}}
input[type=text],input[type=number],input[type=search]{
  width:100%;padding:12px 13px;font-size:16px;border:1px solid var(--fieldline);
  border-radius:9px;background:var(--field);color:var(--ink)}
input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}
input::placeholder,textarea::placeholder{color:var(--mut);opacity:.7}
/* stop mobile browsers forcing a white autofill box over the dark field */
input:-webkit-autofill{-webkit-text-fill-color:var(--ink);
  -webkit-box-shadow:0 0 0 1000px var(--field) inset}
html[data-theme="dark"]{color-scheme:dark}
html[data-theme="sepia"]{color-scheme:light}
#code{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:2px;font-size:19px}
.inline{display:flex;gap:8px}
.inline input{flex:1}
button,.btn{padding:12px 18px;font-size:15px;font-weight:600;border:1px solid var(--accent);
  background:var(--accent);color:#fff;border-radius:9px;cursor:pointer;white-space:nowrap}
button:hover,.btn:hover{background:var(--accenthov);text-decoration:none}
button.ghost{background:var(--card);color:var(--accent)}
button.ghost:hover{background:var(--hov)}

/* live result under the code box */
.resultbox{margin-top:10px;padding:12px 14px;border-radius:9px;
  background:var(--soft);border:1px solid var(--line);display:none}
.resultbox.show{display:block}
.resultbox.err{background:var(--tintw);border-color:var(--tintwline)}
.rb-code{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;
  font-size:17px;color:var(--gridval)}
.rb-desc{margin:3px 0 8px}

/* ---------- tax figures ---------- */
.taxgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px;margin:10px 0}
.taxgrid div{background:var(--card);border:1px solid var(--line);border-radius:9px;
  padding:8px 6px;text-align:center}
.taxgrid b{display:block;font-size:11px;letter-spacing:.5px;color:var(--gridlbl);font-weight:700}
.taxgrid span{font-size:18px;font-weight:700;color:var(--gridval)}
.taxgrid .amt{font-style:normal;color:var(--warn);font-weight:700;margin-left:2px;
  font-size:14px;vertical-align:super;line-height:0}
.taxgrid .big span{color:var(--warn)}
.taxgrid .big{background:var(--tintw);border-color:var(--tintwline)}

/* ---------- tables ---------- */
.tablewrap{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
table.tax{border-collapse:collapse;width:100%;font-size:14px}
table.tax th{background:var(--nav);color:#fff;text-align:left;padding:9px 10px;font-size:12.5px;
  white-space:nowrap}
table.tax td{padding:9px 10px;border-top:1px solid var(--line);vertical-align:top}
table.tax th.n,table.tax td.n{text-align:right}
table.tax td.code{font-family:ui-monospace,Menlo,Consolas,monospace;white-space:nowrap}
table.tax td.tti{font-weight:700;color:var(--warn)}
table.tax tbody tr:nth-child(even){background:var(--soft)}
table.tax tbody tr:hover{background:var(--hov)}

/* ---------- lists ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.cards a{display:flex;flex-direction:column;align-items:flex-start;
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:11px 13px;color:var(--ink)}
.cards a:hover{border-color:var(--accent);text-decoration:none;background:var(--hov)}
.cards .c{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;color:var(--gridval);font-size:17px}
.cards .clbl{font-family:inherit;font-weight:600;color:var(--mut);font-size:14.5px}
.cards .n{display:block;font-size:15px;line-height:1.5;color:var(--mut);margin:4px 0 9px}
.cards .p{display:inline-block;margin-top:auto;font-size:12.5px;color:var(--mut);background:var(--chip);
  border:1px solid var(--line);border-radius:20px;padding:2px 10px}
.unnamed{color:var(--unnamed);font-style:italic}
.empty{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;
  text-align:center;color:var(--mut)}

/* ---------- notes ---------- */
.note{background:var(--tintn);border:1px solid var(--tintnline);border-radius:10px;
  padding:11px 13px;font-size:13.5px;color:var(--tintnink);margin:14px 0}
.calcbox{background:var(--tintg);border:1px solid var(--tintgline);border-radius:10px;padding:12px 14px;margin:14px 0}
.calcbox .big{font-size:21px;font-weight:800;color:var(--good)}
.prose p{margin:0 0 10px}

/* ---------- ad slots (fill in later) ---------- */
.adslot{margin:18px 0;min-height:90px;display:flex;align-items:center;justify-content:center;
  background:var(--chip);border:1px dashed var(--line);border-radius:10px;color:var(--mut);font-size:12px}
/* An ad slot with nothing in it is just a grey hole in the page. HTML comments
   do not count as content for :empty, so every slot stays hidden until real
   ad code is pasted in - then it appears automatically. Nothing to switch on. */
.adslot:empty{display:none}

/* ---------- tree ---------- */
.tree{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.tree .ch,.tree .hd{display:flex;gap:9px;align-items:baseline;padding:11px 13px;
  border-top:1px solid var(--line);cursor:pointer}
.tree .ch{font-weight:600}
.tree .hd{padding-left:32px;background:var(--soft);font-size:14.5px}
.tree .ch:hover,.tree .hd:hover{background:var(--hov)}
.tree .ar{width:11px;color:var(--mut);font-size:11px;flex:none}
.tree .c{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--gridval);flex:none}
.tree .nm{color:var(--ink);font-weight:400}
.tree .pill{margin-left:auto;font-size:11px;color:var(--mut);background:var(--chip);
  border:1px solid var(--line);border-radius:20px;padding:1px 9px;flex:none}
.tree .ch:focus-visible,.tree .hd:focus-visible{outline:2px solid var(--accent);
  outline-offset:-2px;background:var(--hov)}
.tree .plist{padding:0 13px 10px 32px;background:var(--soft)}

/* ---------- phones ---------- */
@media (max-width:720px){
  h1{font-size:20px}
  .tablewrap{border:0;background:transparent;border-radius:0}
  table.tax,table.tax tbody,table.tax tr,table.tax td{display:block;width:100%}
  table.tax thead{display:none}
  table.tax tr{background:var(--card)!important;border:1px solid var(--line);
    border-radius:11px;margin-bottom:10px;padding:4px 2px;overflow:hidden}
  table.tax td{border:0;padding:5px 12px;display:flex;justify-content:space-between;gap:12px}
  table.tax td.desc{display:block;font-weight:600;padding-top:8px}
  table.tax td.code{display:block;font-size:15px;padding-bottom:0}
  table.tax td.n::before{content:attr(data-l) " ";color:var(--mut);font-size:12px;
    letter-spacing:.4px;font-weight:700}
  table.tax td.desc::before{content:none}
  .inline{flex-direction:column}
  button,.btn{width:100%}
}

/* ---------- PWA: install button + offline banner ---------- */
.installbtn{margin-left:14px;padding:6px 12px;font-size:13px;font-weight:700;
  background:#66c08a;color:#13351f;border:0;border-radius:7px;cursor:pointer}
.installbtn:hover{background:#7ad39c}
.offlinebar{background:#8a6d1f;color:#fff;text-align:center;padding:7px 12px;font-size:13.5px}
.updatebar{background:#1f6fb8;color:#fff;text-align:center;padding:9px 12px;font-size:13.5px}
.updatebar button{margin-left:10px;padding:4px 11px;font-size:13px;background:#fff;
  color:#1f6fb8;border:0;border-radius:6px;cursor:pointer;font-weight:700;width:auto}
@media (max-width:720px){
  .installbtn{margin-left:0;margin-top:6px}
  .updatebar button{display:inline-block;width:auto}
}

/* ---------- demo copy banner ---------- */
.demobar{background:#8c2f39;color:#fff;text-align:center;padding:9px 14px;
  font-size:13.5px;line-height:1.5}
.demobar strong{letter-spacing:.09em;background:#fff;color:#8c2f39;
  padding:1px 7px;border-radius:4px;margin-right:7px;font-size:12px}

/* ---------- guides & articles ---------- */
.artmeta{color:var(--meta);font-size:13px;margin:-6px 0 18px}
.guidecard{display:block;padding:15px 17px;background:var(--card);border:1px solid var(--cardline);
  border-radius:10px;text-decoration:none;color:inherit;margin-bottom:11px}
.guidecard:hover{border-color:var(--hovline);box-shadow:0 2px 8px rgba(39,55,74,.10)}
.guidecard strong{display:block;color:var(--head);font-size:17px;line-height:1.35;margin-bottom:6px}
.guidecard span{display:block;color:var(--mut);font-size:15px;line-height:1.55}
.guidecard em{display:block;color:var(--mut);font-size:13px;font-style:normal;margin-top:8px}
.prose table{width:100%;border-collapse:collapse;margin:18px 0;font-size:14.5px}
.prose th,.prose td{border:1px solid var(--cardline);padding:8px 10px;text-align:left;vertical-align:top}
.prose th{background:var(--soft);font-weight:700;color:var(--head)}
.prose pre{background:var(--prebg);color:var(--preink);padding:14px 16px;border-radius:8px;
  overflow-x:auto;font-size:13px;line-height:1.65}
.prose h2{margin-top:30px;color:var(--head)}
.prose h3{margin-top:22px;color:var(--body2);font-size:16px}
.prose ol,.prose ul{line-height:1.75}
@media (max-width:720px){
  .prose table{font-size:13px}
  .prose th,.prose td{padding:6px 7px}
}

/* ---------- /browse : full chapter index (crawlable, no-JS safe) ---------- */
.allch-h{margin:30px 0 12px;font-size:17px;color:var(--head)}
.allch{list-style:none;margin:0;padding:0;column-width:260px;column-gap:26px}
.allch li{break-inside:avoid;margin:0 0 3px}
.allch a{display:block;padding:5px 8px;border-radius:6px;text-decoration:none;
  color:var(--body2);font-size:13.5px;line-height:1.4}
.allch a:hover{background:var(--hov);color:var(--head)}
.allch a span{display:inline-block;min-width:26px;font-weight:700;color:var(--head);
  font-variant-numeric:tabular-nums}
@media (max-width:720px){ .allch{column-width:auto;columns:1} }

/* ---------- grouped search results ---------- */
.resgrp{margin:26px 0 10px;font-size:15px;color:var(--head);text-transform:uppercase;
  letter-spacing:.05em}
.resgrp span{display:inline-block;background:var(--chip);color:var(--chipink);font-size:12px;
  padding:1px 8px;border-radius:10px;margin-left:7px;letter-spacing:0}
.reslist{list-style:none;margin:0 0 6px;padding:0}
.reslist li{margin:0 0 6px}
.reslist a{display:flex;align-items:baseline;gap:10px;padding:10px 13px;background:var(--card);
  border:1px solid var(--cardline);border-radius:8px;text-decoration:none;color:var(--reslink)}
.reslist a:hover{border-color:var(--hovline);background:var(--hov)}
.rcode{font-weight:700;color:var(--head);font-variant-numeric:tabular-nums;min-width:46px}
.rname{flex:1;line-height:1.4}
.rtag{font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
@media (max-width:720px){
  .reslist a{flex-wrap:wrap;gap:4px 9px}
  .rname{flex:1 1 100%;order:3}
}

.cathint{margin:-4px 0 14px;color:var(--mut);font-size:14.5px;max-width:70ch}

@media(max-width:480px){.lede{font-size:15.5px}.cards .n,.guidecard span{font-size:14px}.cards .c,.guidecard strong{font-size:16px}}


/* ---------- guides jump box ---------- */
.jump{display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:11px 13px;margin:0 0 18px}
.jump label{font-size:14px;color:var(--mut);font-weight:600;white-space:nowrap}
.jump input[type="search"]{flex:1 1 240px;min-width:0;font:inherit;font-size:15px;
  padding:9px 11px;border:1px solid var(--line);border-radius:8px;
  background:var(--bg);color:var(--ink);-webkit-appearance:none;appearance:none}
.jump input[type="search"]:focus{outline:2px solid var(--accent);outline-offset:1px}
.jump input[type="search"]::placeholder{color:var(--mut);opacity:.75}
.jump .small{white-space:nowrap;color:var(--mut)}
/* Guides index section headings. With the guides rendered as tight rows, a
   plain h2 sat at the same visual weight as a row title and the page read as
   one long undifferentiated list. These give each section a clear opening:
   generous space above, a heavier heading, and a short accent rule. */
.gcat{margin:40px 0 0}
.gcat:first-of-type{margin-top:26px}
.gcat>h2{font-size:21px;line-height:1.25;color:var(--head);margin:0;
  letter-spacing:-.012em;font-weight:700}
.gcat>h2::after{content:"";display:block;width:42px;height:3px;border-radius:2px;
  background:var(--accent);margin:9px 0 0}
.gcat .cathint{margin:11px 0 13px;color:var(--mut);font-size:14.5px;max-width:70ch}
@media(max-width:560px){
  .gcat{margin-top:32px}
  .gcat>h2{font-size:19px}
}
.gcat[hidden]{display:none}
/* Guides index: tight rows rather than boxes. 26 guides in a card grid
   forced a lot of scrolling and made scanning slow; rows keep every
   description visible while fitting far more on one screen.
   The .guidecard class is kept so the type-to-filter script is unaffected. */
.glist{border-top:1px solid var(--line)}
.glist .guidecard{display:grid;grid-template-columns:1fr auto;column-gap:16px;
  padding:11px 6px;background:none;border:0;border-bottom:1px solid var(--line);
  border-radius:0;box-shadow:none}
.glist .guidecard:hover{background:var(--hov);box-shadow:none;border-color:var(--line)}
.glist .guidecard strong{grid-column:1;grid-row:1;font-size:16.5px;margin:0 0 2px}
.glist .guidecard span{grid-column:1;grid-row:2;font-size:14.5px;line-height:1.5}
.glist .guidecard em{grid-column:2;grid-row:1;align-self:start;margin:0;
  font-size:12.5px;white-space:nowrap;color:var(--mut);padding-top:2px}
@media(max-width:560px){
  .glist .guidecard{grid-template-columns:1fr}
  .glist .guidecard em{grid-column:1;grid-row:3;padding-top:4px}
}
.guidecard[hidden]{display:none}
.linkbtn{all:unset;cursor:pointer;color:var(--accent);text-decoration:underline}
.linkbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}


/* skip link: visually hidden until keyboard-focused */
.skip{position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--card);color:var(--accent);padding:10px 14px;
  border:2px solid var(--accent);border-radius:0 0 8px 0;font-weight:700}
.skip:focus{left:0}

/* ---------- back to top ---------- */
.totop{position:fixed;right:16px;bottom:16px;z-index:40;
  width:44px;height:44px;border-radius:50%;border:1px solid var(--line);
  background:var(--card);color:var(--ink);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 10px rgba(0,0,0,.18);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s}
.totop.show{opacity:1;visibility:visible;transform:none}
.totop:hover{background:var(--soft)}
.totop:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.totop{transition:none}}
@media print{.totop,.themesw{display:none}}

/* FAQ page. A contents list first, because seventeen questions is a lot to
   scroll past to reach the one you came for. */
.faqtoc{background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:14px 18px 14px 34px;margin:18px 0 26px}
.faqtoc ol{margin:0;padding-left:8px}
.faqtoc li{margin:5px 0;font-size:14.5px}
.faqitem{scroll-margin-top:18px;padding-bottom:6px;margin-bottom:22px;
  border-bottom:1px solid var(--line)}
.faqitem:last-child{border-bottom:0}
.faqitem h2{font-size:18.5px;margin:0 0 8px}
.faqitem pre{overflow-x:auto}

/* Phone header: keep the links and the theme switcher on one row. The nav is
   allowed to wrap as a safety net, but at these sizes it should not need to. */
@media(max-width:560px){
  header.site .bar{gap:6px}
  /* Let the nav take the space left over by the logo, then push the theme
     switcher to the far right of it. Links stay left, switcher sits against
     the screen edge, and the row stays balanced instead of bunching up. */
  header.site nav{flex:1 1 auto}
  header.site nav a{margin-left:11px;font-size:14px}
  .themesw{margin-left:auto;gap:0}
  .themesw button{padding:5px 5px;font-size:13px}
  .brand,header.site .brand{font-size:17px}
}
@media(max-width:380px){
  header.site nav a{margin-left:9px;font-size:13.5px}
  .themesw{margin-left:auto}
  .themesw button{padding:4px 4px}
}

/* Provenance line on a tariff page, and the corrections log. Quiet by design:
   this is supporting evidence, not the headline. */
.provenance{border-left:3px solid var(--line);padding:2px 0 2px 13px;margin:22px 0;
  font-size:13.5px;color:var(--mut);max-width:80ch}
.provenance p{margin:5px 0}
.provenance .wascorrected{color:var(--ink)}
.logday{font-size:16px;margin:30px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.logitem{background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:13px 16px;margin:0 0 12px}
.loghead{display:flex;gap:11px;align-items:baseline;flex-wrap:wrap;margin-bottom:9px}
.loghead .mono{font-weight:700;font-size:15.5px}
.logdesc{color:var(--mut);font-size:14px}
table.logtable{width:100%;border-collapse:collapse;font-size:13.5px;margin:0 0 8px}
table.logtable th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--mut);font-weight:600;padding:3px 9px 3px 0;border-bottom:1px solid var(--line)}
table.logtable td{padding:4px 9px 4px 0;border-bottom:1px solid var(--line);vertical-align:top}
table.logtable tr:last-child td{border-bottom:0}
table.logtable .was{color:var(--warn);text-decoration:line-through}
table.logtable .now{color:var(--good);font-weight:600}
.lognote{font-size:13.5px;color:var(--ink);margin:7px 0 3px}
.logsrc{font-size:12.5px;color:var(--mut);margin:0}

/* Raw user-agent strings are long and unbreakable; let them wrap. */
.uacell{font-family:ui-monospace,Consolas,monospace;font-size:12px;
  word-break:break-all;line-height:1.45;max-width:62ch}

/* ---------- recorded imports table ----------
   Right-aligned numerics so magnitudes line up; the point of the table is
   comparing months at a glance. Collapses to a readable block on a phone. */
table.impt{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 6px}
table.impt th,table.impt td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left}
table.impt th{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--gridlbl);font-weight:600}
table.impt .n{text-align:right;font-variant-numeric:tabular-nums}
table.impt tr:last-child td{border-bottom:0}
@media(max-width:480px){
  table.impt{font-size:14px}
  table.impt th,table.impt td{padding:6px 6px}
  table.impt th:nth-child(4),table.impt td:nth-child(4){display:none}
}
