/* Brandy Does Taxes — shared design system
   Sales tax on professional services · monitoring site
   Identity: "ledger pine" accent on warm paper; serif display + clean sans; light/dark aware. */

:root {
  --paper:#f6f4ee; --panel:#fffdf8; --panel-2:#efece3; --ink:#1b232c; --ink-soft:#45505d; --muted:#6b7583;
  --hair:#d9d4c8; --hair-strong:#c4bdac; --accent:#1f6f5c; --accent-ink:#12463a; --accent-wash:#e4efe9;
  --red:#b0433a; --red-wash:#f4e2df; --amber:#9c6a12; --amber-wash:#f4e9d3; --green:#2e7d5b; --green-wash:#e0efe5;
  --slate:#5a6473; --slate-wash:#e7e6e2;
  --shadow:0 1px 2px rgba(27,35,44,.05),0 8px 24px rgba(27,35,44,.06);
  --serif:Georgia,"Iowan Old Style","Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","SFMono-Regular",Menlo,Consolas,monospace;
  --measure:70ch;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#10151b; --panel:#171e26; --panel-2:#1e2833; --ink:#e9edf1; --ink-soft:#bcc6d1; --muted:#8592a0;
  --hair:#2a343f; --hair-strong:#3a4652; --accent:#55b79b; --accent-ink:#9fe0cd; --accent-wash:#163229;
  --red:#e0837a; --red-wash:#3a221f; --amber:#d9a648; --amber-wash:#362a15; --green:#6cc295; --green-wash:#16301f;
  --slate:#9aa6b3; --slate-wash:#232c35;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.35);
}}
:root[data-theme="light"]{--paper:#f6f4ee;--panel:#fffdf8;--panel-2:#efece3;--ink:#1b232c;--ink-soft:#45505d;--muted:#6b7583;--hair:#d9d4c8;--hair-strong:#c4bdac;--accent:#1f6f5c;--accent-ink:#12463a;--accent-wash:#e4efe9;--red:#b0433a;--red-wash:#f4e2df;--amber:#9c6a12;--amber-wash:#f4e9d3;--green:#2e7d5b;--green-wash:#e0efe5;--slate:#5a6473;--slate-wash:#e7e6e2;--shadow:0 1px 2px rgba(27,35,44,.05),0 8px 24px rgba(27,35,44,.06);}
:root[data-theme="dark"]{--paper:#10151b;--panel:#171e26;--panel-2:#1e2833;--ink:#e9edf1;--ink-soft:#bcc6d1;--muted:#8592a0;--hair:#2a343f;--hair-strong:#3a4652;--accent:#55b79b;--accent-ink:#9fe0cd;--accent-wash:#163229;--red:#e0837a;--red-wash:#3a221f;--amber:#d9a648;--amber-wash:#362a15;--green:#6cc295;--green-wash:#16301f;--slate:#9aa6b3;--slate-wash:#232c35;--shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.35);}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--accent-ink);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}
a:hover{border-bottom-color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px 90px}
.reading{max-width:var(--measure)}
p{max-width:var(--measure)}
h2,h3,h4{text-wrap:balance}

/* ---- Top brand bar + nav ---- */
.topbar{border-bottom:1px solid var(--hair);background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}
.topbar .inner{max-width:1080px;margin:0 auto;padding:0 24px}
.brand{display:flex;align-items:center;gap:11px;padding:14px 0 10px}
.brand .mark{width:30px;height:30px;border-radius:7px;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:17px;flex:none}
@media (prefers-color-scheme:dark){.brand .mark{color:#0e1512}}
:root[data-theme="dark"] .brand .mark{color:#0e1512}
.brand .name{font-family:var(--serif);font-weight:600;font-size:19px;letter-spacing:-.01em;line-height:1}
.brand .name small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:3px;border:0}
.brand .name small{font-weight:400}
nav.tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
nav.tabs::-webkit-scrollbar{display:none}
nav.tabs a{border:0;white-space:nowrap;font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:9px 12px;border-bottom:2px solid transparent;display:flex;flex-direction:column;gap:2px;line-height:1.3}
nav.tabs a .lo{font-size:9.5px;letter-spacing:.08em;color:var(--muted);opacity:.75}
nav.tabs a:hover{color:var(--ink);background:var(--panel-2)}
nav.tabs a[aria-current="page"]{color:var(--accent-ink);border-bottom-color:var(--accent)}
nav.tabs a[aria-current="page"] .lo{color:var(--accent)}

/* ---- Page head ---- */
.pagehead{padding:38px 0 14px;border-bottom:2px solid var(--ink);margin-bottom:6px}
.kicker{font-family:var(--mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink);display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.kicker .dot{width:5px;height:5px;border-radius:50%;background:var(--accent);display:inline-block}
.pagehead h1{font-family:var(--serif);font-weight:600;letter-spacing:-.01em;font-size:clamp(29px,5vw,50px);line-height:1.04;margin:13px 0 8px}
.pagehead .sub{font-family:var(--serif);font-style:italic;color:var(--ink-soft);font-size:clamp(16px,2.3vw,21px);margin:0 0 18px;max-width:var(--measure)}
.meta-row{display:flex;flex-wrap:wrap;gap:8px 22px;font-family:var(--mono);font-size:12px;color:var(--muted);border-top:1px solid var(--hair);padding-top:13px}
.meta-row b{color:var(--ink-soft);font-weight:600}

/* ---- Disclaimer ---- */
.disclaimer{margin:20px 0 0;padding:13px 17px;background:var(--amber-wash);border:1px solid color-mix(in srgb,var(--amber) 40%,transparent);border-radius:9px;font-size:13.5px;color:var(--ink-soft);display:flex;gap:11px;align-items:flex-start;max-width:none}
.disclaimer .mk{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);font-weight:700;white-space:nowrap;padding-top:2px}

/* ---- Sections ---- */
section{padding-top:44px;scroll-margin-top:80px}
.shead{display:flex;align-items:baseline;gap:15px;border-bottom:1px solid var(--hair-strong);padding-bottom:11px;margin-bottom:20px}
.shead .num{font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:.1em;padding-top:4px;flex:none}
.shead h2{font-family:var(--serif);font-weight:600;font-size:clamp(21px,3.3vw,29px);margin:0;letter-spacing:-.01em}
.lead{color:var(--ink-soft);font-size:17px;max-width:var(--measure)}
.lead.big{font-size:19px}
strong,b{color:var(--ink)}

/* ---- Cards ---- */
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card{background:var(--panel);border:1px solid var(--hair);border-radius:12px;padding:18px 18px 16px;box-shadow:var(--shadow)}
.card .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink)}
.card h3{font-family:var(--serif);font-size:18px;margin:8px 0 6px;font-weight:600;line-height:1.22}
.card p{font-size:14px;color:var(--ink-soft);margin:0;max-width:none}
a.card{display:block;color:inherit}
a.card:hover{border-color:var(--accent);box-shadow:0 2px 4px rgba(0,0,0,.05),0 12px 30px rgba(27,35,44,.09)}
a.card .go{font-family:var(--mono);font-size:11px;color:var(--accent-ink);margin-top:10px;display:inline-block}

/* ---- Pills / tags ---- */
.pill{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.p-all{color:var(--red);background:var(--red-wash)} .p-some{color:var(--amber);background:var(--amber-wash)}
.p-exempt{color:var(--green);background:var(--green-wash)} .p-none{color:var(--slate);background:var(--slate-wash)}
.p-watch{color:var(--accent-ink);background:var(--accent-wash)}
.tag-s{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:5px;font-weight:600}
.t-enacted{color:var(--red);background:var(--red-wash)} .t-proposed{color:var(--amber);background:var(--amber-wash)}
.t-relief{color:var(--green);background:var(--green-wash)} .t-info{color:var(--slate);background:var(--slate-wash)}
.t-state{color:var(--accent-ink);background:var(--accent-wash)}

/* ---- Tables ---- */
.tablewrap{overflow-x:auto;border:1px solid var(--hair);border-radius:12px;box-shadow:var(--shadow);background:var(--panel)}
table{border-collapse:collapse;width:100%;min-width:640px;font-size:14px}
thead th{position:sticky;top:0;background:var(--panel-2);text-align:left;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:11px 14px;border-bottom:1px solid var(--hair-strong);font-weight:600}
tbody td{padding:12px 14px;border-bottom:1px solid var(--hair);vertical-align:top;color:var(--ink-soft)}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:color-mix(in srgb,var(--accent-wash) 40%,transparent)}
td .st{font-weight:650;color:var(--ink)}
.rate{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--muted)}

/* ---- Notes / callouts ---- */
.note{background:var(--panel-2);border-radius:10px;padding:16px 18px;font-size:14.5px;color:var(--ink-soft);max-width:var(--measure);margin-top:18px;border-left:3px solid var(--accent)}
.note.warn{border-left-color:var(--amber)}
.note b{color:var(--ink)}
.take{background:var(--accent-wash);border-radius:8px;padding:10px 13px;font-size:13.5px;color:var(--ink);margin:8px 0;max-width:none}
.take b{color:var(--accent-ink);font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;display:inline-block;margin-right:5px}

/* ---- Timeline / feed ---- */
.newcard{background:var(--panel);border:1px solid var(--hair);border-left:3px solid var(--accent);border-radius:10px;padding:16px 18px;margin-bottom:12px;box-shadow:var(--shadow)}
.newcard.enacted{border-left-color:var(--red)} .newcard.proposed{border-left-color:var(--amber)} .newcard.relief{border-left-color:var(--green)}
.newcard h3{font-family:var(--serif);font-size:18.5px;margin:0 0 6px;font-weight:600;line-height:1.25}
.newcard p{font-size:14.5px;margin:0 0 8px;max-width:none;color:var(--ink-soft)}
.newcard .meta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px}
.src{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.quiet{background:var(--panel-2);border-radius:10px;padding:24px;text-align:center;color:var(--muted);font-family:var(--mono);font-size:13px;letter-spacing:.02em;line-height:1.7}
.quiet b{color:var(--ink-soft)}

/* ---- Rolling log & watchlist ---- */
.log{list-style:none;padding:0;margin:0}
.log li{display:grid;grid-template-columns:104px 1fr;gap:14px;padding:11px 0;border-bottom:1px solid var(--hair);font-size:14px}
.log li:last-child{border-bottom:0}
.log .d{font-family:var(--mono);font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.log .t{color:var(--ink-soft)} .log .t b{color:var(--ink)}
.watch{display:grid;gap:8px}
.witem{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--hair);border-radius:9px;padding:11px 14px;font-size:14px}
.witem .wt{color:var(--ink-soft)} .witem .wt b{color:var(--ink)}

/* ---- Definition list (glossary) ---- */
.defs{display:grid;gap:2px}
.defs .term{font-family:var(--mono);font-size:12.5px;color:var(--accent-ink);letter-spacing:.03em;margin-top:14px;font-weight:600}
.defs .def{font-size:14.5px;color:var(--ink-soft);max-width:var(--measure)}

/* ---- Legend ---- */
.legend{display:flex;gap:14px;flex-wrap:wrap;margin:2px 0 16px}
.legend span{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-family:var(--mono)}

/* ---- Footer ---- */
footer{margin-top:60px;border-top:2px solid var(--ink);padding-top:20px;font-size:12.5px;color:var(--muted)}
footer .refs{columns:2;column-gap:32px;margin-top:12px;font-family:var(--mono);font-size:11px;line-height:1.9}
footer .refs a{display:block;break-inside:avoid;word-break:break-word}

@media (max-width:640px){
  footer .refs{columns:1}
  .log li{grid-template-columns:88px 1fr}
  .pagehead h1{font-size:30px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
