/* FAIR design system — shared by every FAIR site.
   Layout concept: a filing ledger. Plain paper ground, ruled rows, mono reference
   numbers, one brand colour per product carried by the F mark, buttons and rules. */
@import url("https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@87.5..112.5,500..800&family=Public+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap");

:root{
  color-scheme: light;
  /* neutrals (cool, biased toward the hub indigo) */
  --paper:#F5F6FA; --surface:#FFFFFF; --ink:#141A33; --ink-2:#4A5170; --ink-3:#656B84;
  --rule:#DCDFEA; --rule-strong:#B9BED1;
  /* product colours: the same F mark, one colour each */
  --c-entities:#2F3FA8; --c-entities-tint:#E8EBFA; --c-entities-deep:#1D2870;
  --c-permits:#1B7A52;  --c-permits-tint:#E2F3EA;  --c-permits-deep:#0F4F35;
  --c-leases:#0B6E8E;   --c-leases-tint:#E0F1F6;   --c-leases-deep:#074A60;
  --c-evictions:#A8501A;--c-evictions-tint:#F8EADF;--c-evictions-deep:#6E3310;
  /* status */
  --ok:#1B7A52; --warn:#A86A00; --warn-ink:#7A4D00; --warn-tint:#FBF0D6; --late:#B3261E; --late-tint:#FBE6E4;
  /* active brand (overridden by data-brand) */
  --brand:var(--c-entities); --brand-tint:var(--c-entities-tint); --brand-deep:var(--c-entities-deep);
  --on-brand:#FFFFFF;               /* text on a solid brand fill */
  --band-bg:var(--brand-deep); --band-ink:#FFFFFF; --band-muted:#DDE1F2;
  --field:#FFFFFF; --shadow:0 1px 2px rgba(20,26,51,.06),0 8px 24px rgba(20,26,51,.06);
  --note-ink:#5C3A00;
  /* app shell (signed-in pages) */
  --side-bg:#141A33; --side-ink:#C9CEE3; --side-ink-strong:#FFFFFF; --side-hover:#1E2647; --side-rule:#262E52; --side-logo:#AEB8FF;
  /* type */
  --f-display:"Archivo","Arial Narrow",Arial,sans-serif;
  --f-body:"Public Sans",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --radius:6px; --gutter:clamp(16px,4vw,40px); --max:1120px;
}
[data-brand="entities"]{--brand:var(--c-entities);--brand-tint:var(--c-entities-tint);--brand-deep:var(--c-entities-deep)}
[data-brand="permits"]{--brand:var(--c-permits);--brand-tint:var(--c-permits-tint);--brand-deep:var(--c-permits-deep)}
[data-brand="leases"]{--brand:var(--c-leases);--brand-tint:var(--c-leases-tint);--brand-deep:var(--c-leases-deep)}
[data-brand="evictions"]{--brand:var(--c-evictions);--brand-tint:var(--c-evictions-tint);--brand-deep:var(--c-evictions-deep)}
body[data-brand="permits"]{--side-logo:#7FE0B0;--side-bg:#0F2A1E;--side-hover:#173A2A;--side-rule:#1F4331;--side-ink:#C4DDD0;--band-muted:#D4ECDF}

/* ---------- dark mode ----------
   Each site stays in its own colour: Fair Entities goes deep navy-blue with a
   bright blue accent; Fair Permits goes near-black green with a bright green
   accent. Solid brand buttons switch to dark text on the bright accent. */
[data-theme="dark"]{color-scheme:dark;
  --paper:#080C1C; --surface:#0F1530; --ink:#E7EAF7; --ink-2:#A8B0D0; --ink-3:#8A93B6;
  --rule:#222A4E; --rule-strong:#343E6B; --field:#0B1026;
  --ok:#4ADE94; --warn:#F5B942; --warn-ink:#F5B942; --warn-tint:#33270A; --late:#FF8A80; --late-tint:#3A1614;
  --note-ink:#F5D48A; --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px rgba(0,0,0,.35);
  --side-bg:#060918; --side-ink:#A8B0D0; --side-hover:#141B3A; --side-rule:#1A2146; --side-logo:#8B97FF;
  --c-entities:#8B97FF; --c-entities-tint:#1A2256; --c-entities-deep:#C3CAFF;
  --c-permits:#3DDC91;  --c-permits-tint:#0E3322; --c-permits-deep:#9BF0C4;
  --c-leases:#4CC6EA;   --c-leases-tint:#0C2E3A;  --c-leases-deep:#A7E6F7;
  --c-evictions:#F29A5C;--c-evictions-tint:#3A200E;--c-evictions-deep:#FAC9A3;
  --on-brand:#060A18; --band-bg:#131B42; --band-ink:#FFFFFF; --band-muted:#C3CAFF;
}
[data-theme="dark"] body[data-brand="permits"]{
  --paper:#040D08; --surface:#0A1811; --ink:#E3F3EA; --ink-2:#9DBFAE; --ink-3:#6F9383;
  --rule:#17301F; --rule-strong:#25493A; --field:#06110B;
  --side-bg:#020805; --side-ink:#9DBFAE; --side-hover:#0E2419; --side-rule:#12291D; --side-logo:#3DDC91;
  --band-bg:#0C2A1C; --band-muted:#9BF0C4; --on-brand:#03100A;
}
[data-theme="dark"] [data-brand="entities"]{--brand:var(--c-entities);--brand-tint:var(--c-entities-tint);--brand-deep:var(--c-entities-deep)}
[data-theme="dark"] [data-brand="permits"]{--brand:var(--c-permits);--brand-tint:var(--c-permits-tint);--brand-deep:var(--c-permits-deep)}
[data-theme="dark"] [data-brand="leases"]{--brand:var(--c-leases);--brand-tint:var(--c-leases-tint);--brand-deep:var(--c-leases-deep)}
[data-theme="dark"] [data-brand="evictions"]{--brand:var(--c-evictions);--brand-tint:var(--c-evictions-tint);--brand-deep:var(--c-evictions-deep)}
[hidden]{display:none!important}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--f-body);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{color:var(--brand);text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
h1,h2,h3{font-family:var(--f-display);font-stretch:95%;line-height:1.1;margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,5.2vw,3.6rem);font-weight:800}
h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:700}
h3{font-size:1.15rem;font-weight:700}
p{margin:0;max-width:65ch}
.lede{font-size:1.15rem;color:var(--ink-2)}
.muted{color:var(--ink-2)} .small{font-size:.875rem}
.mono{font-family:var(--f-mono);font-size:.85em;font-variant-numeric:tabular-nums}
.eyebrow{font:500 .75rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(40px,7vw,80px)}
.section + .section{border-top:1px solid var(--rule)}
.stack{display:flex;flex-direction:column;gap:16px}
.stack-lg{display:flex;flex-direction:column;gap:32px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.grid{display:grid;gap:20px}
.grid > *{min-width:0}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.split{display:grid;gap:clamp(24px,5vw,56px);grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:start}
.split > *{min-width:0}

/* prototype strip — delete when the site goes live */
.proto{background:#0B0F1F;color:#fff;font:400 .75rem/1.4 var(--f-mono);padding:6px var(--gutter);text-align:center}
.proto a{color:#fff}

/* header */
.site-head{background:var(--surface);border-bottom:1px solid var(--rule);position:sticky;top:env(safe-area-inset-top,0px);z-index:10}
.site-head .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;padding-block:12px}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font:800 1.15rem/1 var(--f-display);letter-spacing:-.01em}
.logo svg{width:30px;height:30px;color:var(--brand);flex:none}
.logo b{color:var(--brand);font-weight:800}
.nav{display:flex;flex-wrap:wrap;gap:4px 22px;margin-left:auto;align-items:center}
.nav a{color:var(--ink-2);text-decoration:none;font-weight:500;font-size:.95rem;padding-block:6px}
.nav a:hover,.nav a[aria-current="page"]{color:var(--brand)}
.nav a[aria-current="page"]{box-shadow:0 2px 0 var(--brand)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 .95rem/1 var(--f-body);padding:13px 20px;border-radius:var(--radius);border:1.5px solid var(--brand);background:var(--brand);color:var(--on-brand);text-decoration:none;cursor:pointer;transition:background .15s,transform .15s}
.btn:hover{background:var(--brand-deep);border-color:var(--brand-deep)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--brand)}
.btn.ghost:hover{background:var(--brand-tint)}
.btn.sm{padding:9px 14px;font-size:.875rem}
.nav .btn{color:var(--on-brand)}.nav .btn.ghost{color:var(--brand)}

/* hero */
.hero{padding-block:clamp(40px,7vw,88px)}
.hero h1 em{font-style:normal;color:var(--brand)}

/* ledger: the signature element. Ruled rows with mono reference column. */
.ledger{background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius);overflow:hidden}
.ledger-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 16px;border-bottom:2px solid var(--ink);font:500 .75rem/1.2 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}
.ledger-row{display:grid;grid-template-columns:auto 1fr auto;gap:4px 14px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--rule)}
.ledger-row:last-child{border-bottom:0}
.ledger-row > *{min-width:0}
.ledger-row .when{font:500 .8rem/1.2 var(--f-mono);color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.ledger-row .what{font-weight:600}
.ledger-row .what small{display:block;font-weight:400;color:var(--ink-2);font-size:.85rem}
.dot{width:10px;height:10px;border-radius:2px;background:var(--brand);display:inline-block;flex:none}

/* pills */
.pill{display:inline-block;font:500 .72rem/1 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;padding:5px 8px;border-radius:3px;background:var(--brand-tint);color:var(--brand-deep);white-space:nowrap}
.pill.ok{background:var(--c-permits-tint);color:var(--c-permits-deep)}
.pill.warn{background:var(--warn-tint);color:var(--warn-ink)}
.pill.late{background:var(--late-tint);color:var(--late)}
.pill.soon{background:var(--rule);color:var(--ink-2)}
/* "Coming soon": a feature that is planned but not built. Outlined so it reads as not-yet, in both themes. */
.pill.coming{background:transparent;color:var(--ink-2);border:1px dashed var(--rule-strong);padding:4px 7px;margin-left:6px;vertical-align:middle}

/* product cards: each sets its own data-brand */
.product{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--rule);border-top:4px solid var(--brand);border-radius:var(--radius);padding:22px;text-decoration:none;color:var(--ink)}
a.product:hover{border-color:var(--brand)}
.product .logo{font-size:1.05rem}
.product .go{margin-top:auto;font-weight:600;color:var(--brand)}

/* plain feature item: no card, just a rule */
.item{border-top:2px solid var(--ink);padding-top:14px;display:flex;flex-direction:column;gap:8px}
.item p{color:var(--ink-2)}
.steps{counter-reset:s;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.steps .item::before{counter-increment:s;content:"Step " counter(s);font:500 .75rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--brand)}

.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:clamp(18px,3vw,28px)}
.band{background:var(--band-bg);color:var(--band-ink)}
.band .muted,.band p{color:var(--band-muted)}
.band .btn{background:#fff;color:#0B0F1F;border-color:#fff}
.band .btn:hover{background:var(--brand-tint);color:var(--brand-deep)}

/* forms */
.form{display:grid;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-weight:600;font-size:.9rem}
.field .hint{font-size:.8rem;color:var(--ink-2)}
.field input,.field select,.field textarea{font:400 1rem/1.4 var(--f-body);color:var(--ink);background:var(--field);border:1.5px solid var(--rule-strong);border-radius:var(--radius);padding:11px 12px;width:100%}
.field textarea{min-height:110px;resize:vertical}
.two{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem}
.check input{margin-top:4px;width:auto}
.msg{padding:12px 14px;border-radius:var(--radius);font-size:.9rem;background:var(--brand-tint);color:var(--brand-deep);border:1px solid var(--brand)}
.msg.err{background:var(--late-tint);color:var(--late);border-color:var(--late)}
.auth{max-width:460px;margin-inline:auto}

/* tables */
.table-wrap{position:relative;overflow-x:auto;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius)}
table{border-collapse:collapse;width:100%;font-size:.92rem}
th{font:500 .72rem/1.2 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;text-align:left;color:var(--ink-2);border-bottom:2px solid var(--ink);padding:12px 14px;white-space:nowrap}
td{padding:12px 14px;border-bottom:1px solid var(--rule);vertical-align:top}
tr:last-child td{border-bottom:0}

/* ---------- signed-in app shell (modelled on the RDL firm portal) ---------- */
.app-body{background:var(--paper)}
.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.side{background:var(--side-bg);color:var(--side-ink);display:flex;flex-direction:column;gap:18px;padding:18px 12px;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid var(--side-rule)}
.side-brand{display:flex;align-items:center;gap:11px;padding:6px 8px 16px;border-bottom:1px solid var(--side-rule);text-decoration:none;color:var(--side-ink-strong);font:800 1.1rem/1.1 var(--f-display)}
.side-brand svg{width:32px;height:32px;flex:none;color:var(--side-logo)}
.side-brand b{color:inherit;font-weight:800}
.side-brand small{display:block;font:500 .66rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--side-ink);margin-top:3px}
.side-nav{display:flex;flex-direction:column;gap:2px}
.side-nav a,.side-off{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:9px;color:var(--side-ink);text-decoration:none;font-weight:500;font-size:.93rem}
.side-nav a:hover{background:var(--side-hover);color:var(--side-ink-strong)}
.side-nav a[aria-current="page"]{background:var(--c-entities);color:#fff;font-weight:600}
body[data-brand="permits"] .side-nav a[aria-current="page"]{background:var(--c-permits)}
[data-theme="dark"] .side-nav a[aria-current="page"]{background:var(--brand-tint);color:var(--brand-deep);box-shadow:inset 3px 0 0 var(--brand)}
.side-off{opacity:.55;cursor:default}
.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.side-tag{margin-left:auto;font:500 .62rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;padding:4px 6px;border-radius:4px;background:var(--side-hover);color:var(--side-ink)}
.side-nav a[data-brand="permits"] .side-tag{background:#1B7A52;color:#fff}
.side .label{font:500 .66rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--side-ink);opacity:.7;padding:18px 11px 6px}
/* Legal note at the foot of the sidebar: a quiet card, not loose small print */
.side-foot{margin-top:auto;display:grid;grid-template-columns:auto 1fr;gap:6px 10px;padding:12px;border:1px solid var(--side-rule);border-radius:10px;background:color-mix(in srgb,var(--side-hover) 55%,transparent);font-size:.74rem;line-height:1.45;color:var(--side-ink)}
.side-foot .ic{width:18px;height:18px;margin-top:1px;color:var(--side-logo)}
.side-foot p{margin:0;display:flex;flex-direction:column;gap:2px}
.side-foot b{color:var(--side-ink-strong);font-weight:600;font-size:.78rem;letter-spacing:.01em}
.side-foot span{opacity:.85}
.side-foot nav{grid-column:1/-1;display:flex;gap:14px;padding-top:8px;border-top:1px solid var(--side-rule)}
.side-foot nav a{color:var(--side-ink);text-decoration:none;font-size:.72rem;opacity:.85}
.side-foot nav a:hover,.side-foot nav a:focus-visible{color:var(--side-ink-strong);opacity:1;text-decoration:underline}
/* Legal-advice pointer (Real Deal Law, a separate firm) */
.side-foot .side-legal{margin-top:4px;color:var(--side-logo);font-weight:600;text-decoration:none;opacity:1}
.side-foot .side-legal:hover,.side-foot .side-legal:focus-visible{color:var(--side-ink-strong);text-decoration:underline}
p.side-foot a{color:inherit;text-decoration:underline}

.shell-main{display:flex;flex-direction:column;min-width:0}
.topbar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:14px clamp(16px,3vw,32px);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.topbar-name{font:800 1.25rem/1.2 var(--f-display);margin-top:4px}
.topbar-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.who{display:flex;align-items:center;gap:10px}
.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--brand-tint);color:var(--brand-deep);font:700 .85rem/1 var(--f-body)}
.who-text{display:flex;flex-direction:column;line-height:1.2}
.who-text b{font-size:.9rem}
.who-text small{font-size:.75rem;color:var(--ink-2)}
.content{padding:clamp(18px,3vw,32px);display:flex;flex-direction:column;gap:36px;max-width:1240px;width:100%}
.page-title{font-size:clamp(1.7rem,3vw,2.1rem)}
.card{background:var(--surface);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--shadow)}
.ledger.card{border-color:var(--rule)}
.kpis{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
.kpi{--tone:var(--brand);background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--tone);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow)}
.kpi[data-tone="warn"]{--tone:var(--warn)} .kpi[data-tone="late"]{--tone:var(--late)} .kpi[data-tone="ok"]{--tone:var(--ok)}
.kpi b{font:800 2rem/1 var(--f-display);font-variant-numeric:tabular-nums}
.kpi span{font-size:.85rem;color:var(--ink-2)}
.dash-grid{display:grid;gap:20px;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start}
.service-card{display:flex;flex-direction:column;gap:14px;padding:22px;border-top:4px solid var(--brand)}
.service-card .btn{align-self:flex-start}
.ledger-empty{padding:18px 16px;color:var(--ink-2)}
.facts{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:18px 24px}
.facts dt{font-size:.8rem;color:var(--ink-2)}
.facts dd{margin:2px 0 0;font-weight:600}
.table-wrap.card{border-radius:12px}
tbody tr:hover td{background:color-mix(in srgb,var(--brand-tint) 45%,transparent)}
@media (max-width:900px){
  .dash-grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .shell{grid-template-columns:1fr}
  .side{position:static;height:auto;flex-direction:column;gap:10px;padding:12px var(--gutter)}
  .side-brand{padding:4px 0 10px}
  .side-nav{flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:4px}
  .side-nav a,.side-off{white-space:nowrap;padding:8px 10px}
  .side .label,.side-foot,.side-off{display:none}
  .topbar{position:static}
  .who-text{display:none}
  .ledger-row{grid-template-columns:1fr auto}
  .ledger-row .when{grid-column:1/-1}
}

/* footer */
.site-foot{background:var(--surface);border-top:1px solid var(--rule);padding-block:36px;font-size:.88rem;color:var(--ink-2)}
.site-foot .cols{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}
.site-foot h4{font:500 .72rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin:0 0 10px}
.site-foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.site-foot a{color:var(--ink-2);text-decoration:none}
.site-foot a:hover{color:var(--brand)}
.legal{margin-top:24px;padding-top:16px;border-top:1px solid var(--rule);font-size:.8rem;max-width:none}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* fixes */
.product .pill{align-self:flex-start}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
.ledger-row{grid-template-columns:7.5em 1fr auto}
.ledger-row .when{white-space:normal}
@media (max-width:760px){.ledger-row{grid-template-columns:1fr auto}}

/* signed-in pages stay hidden until the session check passes */
body[data-fair-guard]:not(.fair-ok) main{visibility:hidden}
button[disabled]{opacity:.6;cursor:progress}
.cf-turnstile{min-height:65px}
.legal-doc h2{font-size:1.25rem;margin-top:8px}
.legal-doc p,.legal-doc li{max-width:72ch}
.draft-note{border:1px dashed var(--warn);background:var(--warn-tint);color:var(--note-ink);padding:10px 14px;border-radius:var(--radius);font-size:.9rem}

/* ---------- theme toggle ---------- */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;flex:none}
.theme-toggle:hover{color:var(--brand);border-color:var(--brand)}
.theme-toggle svg{width:18px;height:18px}
.theme-toggle .moon{display:none}
[data-theme="dark"] .theme-toggle .sun{display:none}
[data-theme="dark"] .theme-toggle .moon{display:block}
[data-theme="dark"] .btn.ghost:hover{color:var(--brand-deep)}
[data-theme="dark"] .ledger-head{border-bottom-color:var(--rule-strong)}
[data-theme="dark"] th{border-bottom-color:var(--rule-strong)}
[data-theme="dark"] .item,[data-theme="dark"] .stat{border-top-color:var(--rule-strong)}
body,.site-head,.site-foot,.panel,.ledger,.product,.table-wrap,.field input,.field select,.field textarea{transition:background-color .2s,border-color .2s,color .2s}

/* ---------- confirmation panel ----------
   Used by FAIR_CONFIRM() in fair.js after every successful form submit. The
   form is hidden and this panel takes its place: a check mark draws in and the
   panel fades up. Colours come from the brand variables, so it follows the
   site brand and light/dark theme. No animation under prefers-reduced-motion. */
.confirm{display:flex;flex-direction:column;gap:14px;align-items:flex-start;animation:confirm-in .5s cubic-bezier(.2,.8,.2,1) both}
.confirm-icon{width:64px;height:64px;border-radius:50%;background:var(--brand-tint);color:var(--brand);display:grid;place-items:center;animation:confirm-pop .5s cubic-bezier(.2,.9,.3,1.3) .05s both}
.confirm-icon svg{display:block}
.confirm-ring,.confirm-tick{stroke:currentColor;stroke-dasharray:100;stroke-dashoffset:0}
.confirm-ring{stroke-linecap:round;animation:confirm-draw .6s ease-out .1s both}
.confirm-tick{animation:confirm-draw .4s ease-out .55s both}
.confirm h2{font-size:1.7rem}
.confirm h2:focus{outline:none}
.confirm b{overflow-wrap:anywhere}
.confirm-status:empty{display:none}
@keyframes confirm-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes confirm-pop{from{transform:scale(.7);opacity:0}to{transform:none;opacity:1}}
@keyframes confirm-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.confirm,.confirm-icon,.confirm-ring,.confirm-tick{animation:none!important}}

/* ---------- Google sign-in ---------- */
.oauth{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}
.btn.google{background:var(--field);color:var(--ink);border:1.5px solid var(--rule-strong);width:100%;font-weight:600}
.btn.google:hover{background:var(--paper);border-color:var(--ink-3);color:var(--ink)}
.or{display:flex;align-items:center;gap:12px;font-size:.8rem;color:var(--ink-2);max-width:none}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--rule)}

/* ---------- first-run: add your company ---------- */
.onboard{display:flex;flex-direction:column;gap:14px;padding:22px;border-top:4px solid var(--brand)}
.onboard h2{font-size:1.4rem}

/* ---------- dashboard tools (switcher, dialogs, contributions) ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.row.between{justify-content:space-between}
.block{display:block}
.late-ink{color:var(--late)}
.switcher select{margin-top:4px;font:800 1.1rem/1.2 var(--f-display);color:var(--ink);background:var(--field);border:1.5px solid var(--rule-strong);border-radius:var(--radius);padding:6px 34px 6px 10px;max-width:min(78vw,420px)}
.linkish{background:none;border:0;padding:0;font:600 .85rem/1.4 var(--f-body);color:var(--brand);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.linkish:hover{color:var(--brand-deep)}
.row-actions{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:4px}
.btn.danger{background:transparent;color:var(--late);border-color:var(--late);margin-left:auto}
.btn.danger:hover{background:var(--late-tint);color:var(--late)}
.modal{border:0;padding:0;border-radius:14px;width:min(600px,calc(100vw - 24px));max-height:calc(100vh - 32px);background:var(--surface);color:var(--ink);box-shadow:0 24px 60px rgba(0,0,0,.35)}
.modal::backdrop{background:rgba(8,12,28,.55)}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--rule);position:sticky;top:0;background:var(--surface);z-index:1}
.modal-head h2{font-size:1.35rem}
.modal-x{background:none;border:1px solid var(--rule-strong);border-radius:8px;width:36px;height:36px;font-size:1.3rem;line-height:1;color:var(--ink-2);cursor:pointer;flex:none}
.modal-x:hover{color:var(--brand);border-color:var(--brand)}
.modal-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:16px}
.call{padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.call-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:flex-start}
.call .table-wrap{border-radius:8px;box-shadow:none}
.mini-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--rule)}
.mini-row:last-child{border-bottom:0}
.service-card h3{font-size:1.1rem}
[data-fair-google-slot]{min-height:44px;display:flex;justify-content:center}

/* ---------- documents: upload list, review queue ---------- */
.upload-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.upload-list:empty{display:none}
.upload-list li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:8px 10px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper)}
.upload-name{font-weight:600;overflow-wrap:anywhere;flex:1 1 200px}
.upload-state{color:var(--ink-2)}
.upload-state.err{color:var(--late);font-weight:600}
.doc-reason{color:var(--late);margin-top:4px;max-width:36ch;overflow-wrap:anywhere}
.danger-ink{color:var(--late)}
.review-sub{display:flex;flex-direction:column;gap:10px}
.review-sub h3{margin:0}
.review-sub .table-wrap{box-shadow:none}
.review-recent{margin-top:12px}

/* ---------- two-step sign-in ---------- */
.mfa-gate{position:fixed;inset:0;z-index:50;overflow:auto;background:var(--paper);display:flex;align-items:flex-start;justify-content:center;padding:clamp(16px,6vh,72px) 16px}
.mfa-card{width:100%;max-width:460px;display:flex;flex-direction:column;gap:14px}
.mfa-title{font-size:1.6rem;margin:0}
.mfa-title:focus{outline:none}
.mfa-methods{display:flex;flex-direction:column;gap:8px}
.mfa-method{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);cursor:pointer}
.mfa-method:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.mfa-method input{margin-top:3px;accent-color:var(--brand)}
.mfa-code{font-family:var(--f-mono);font-size:1.4rem;letter-spacing:.3em;max-width:12ch}
.mfa-foot{border-top:1px solid var(--rule);padding-top:12px}
.mfa-qr{display:flex;justify-content:center;padding:8px;background:#fff;border-radius:var(--radius);border:1px solid var(--rule)}
.mfa-qr img{display:block;width:180px;height:180px}

/* ---------- partner feedback, Oct 8 2026 ---------- */
/* numbers that people read and copy: plain body font, tabular figures */
.num{font-variant-numeric:tabular-nums;letter-spacing:.01em}
.kpi .kpi-hint{font-size:.75rem;color:var(--ink-3);line-height:1.3}
/* dollar amounts: "$" in front of the box */
.money{position:relative;display:flex;align-items:center}
.money-sign{position:absolute;left:12px;color:var(--ink-2);font-weight:600;pointer-events:none}
.field .money input{padding-left:26px;font-variant-numeric:tabular-nums}
.field .label-text{font-weight:600;font-size:.9rem}
/* ownership: easy to read at a glance */
td.pct{min-width:120px}
.pct-num{display:block;font:700 1.05rem/1.2 var(--f-body);color:var(--ink);font-variant-numeric:tabular-nums}
.pct-bar{display:block;margin-top:5px;height:6px;border-radius:3px;background:var(--rule);overflow:hidden;max-width:120px}
.pct-bar span{display:block;height:100%;background:var(--brand)}
.member-name{font-weight:600}
.spouse-row td:first-child{padding-left:30px;position:relative}
.spouse-row td:first-child::before{content:"";position:absolute;left:16px;top:10px;width:8px;height:14px;border-left:2px solid var(--rule-strong);border-bottom:2px solid var(--rule-strong)}
/* documents: upload button sits with the list, not off to the side */
.doc-tools{margin-bottom:-4px}
.sort-pill{margin-left:6px}
.upload-kind{font:400 .85rem/1.3 var(--f-body);color:var(--ink);background:var(--field);border:1px solid var(--rule-strong);border-radius:var(--radius);padding:5px 8px;flex:1 1 220px;max-width:100%}
.modal-body .row .btn{flex:0 0 auto}
/* voting */
.vote-desc{white-space:pre-line}
.tally{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.tally-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper)}
.tally-item b{font:800 1.4rem/1 var(--f-display);font-variant-numeric:tabular-nums}
.tally-item span{font-size:.8rem;color:var(--ink-2)}
.tally-item.tally-for{border-left:4px solid var(--ok)} .tally-item.tally-against{border-left:4px solid var(--late)} .tally-item.tally-abstain{border-left:4px solid var(--ink-3)}
.tally-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--rule)}
.tally-bar .tally-for{background:var(--ok)} .tally-bar .tally-against{background:var(--late)} .tally-bar .tally-abstain{background:var(--ink-3)}
.pill.vote-for{background:var(--c-permits-tint);color:var(--c-permits-deep)}
.pill.vote-against{background:var(--late-tint);color:var(--late)}
.pill.vote-abstain{background:var(--rule);color:var(--ink-2)}
.your-vote{padding:12px;border:1px dashed var(--rule-strong);border-radius:var(--radius)}
.record-vote{font:400 .85rem/1.3 var(--f-body);color:var(--ink);background:var(--field);border:1px solid var(--rule-strong);border-radius:var(--radius);padding:5px 8px}
@media (max-width:560px){.tally{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pf-name{min-width:200px}
.pf-next{min-width:170px;max-width:240px}

/* ---------- guided permit applications (Oct 13 2026) ---------- */
.pad{padding:clamp(16px,2.5vw,22px)}
.stack-sm{display:flex;flex-direction:column;gap:6px}
.span-2{grid-column:1/-1}
.cat-group{margin-top:8px;font-size:1.15rem}
.wiz{padding:clamp(18px,3vw,28px);display:flex;flex-direction:column;gap:20px}
.wiz-panel{display:flex;flex-direction:column;gap:18px}
.wiz-panel h2{font-size:1.4rem}
.wiz-panel h2:focus{outline:none}
.wiz-nav{border-top:1px solid var(--rule);padding-top:16px}
.wiz-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;counter-reset:w}
.wiz-steps li{counter-increment:w;font:600 .8rem/1.2 var(--f-body);color:var(--ink-3);padding:10px 8px 8px;border-top:4px solid var(--rule);overflow-wrap:anywhere}
.wiz-steps li::before{content:counter(w) ". ";font-family:var(--f-mono)}
.wiz-steps li.done{color:var(--ink-2);border-top-color:var(--brand);cursor:pointer}
.wiz-steps li.done:hover{color:var(--brand)}
.wiz-steps li.now{color:var(--ink);border-top-color:var(--brand)}
.choice-list{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.choice{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);cursor:pointer}
.choice:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.choice input{margin-top:4px;accent-color:var(--brand)}
.choice.is-off{opacity:.6;cursor:not-allowed}
.choice-text{display:flex;flex-direction:column;gap:2px}
.svc-group{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.svc-group legend{font:800 1.05rem/1.2 var(--f-display);margin-bottom:10px;padding:0}
.svc{padding:16px 18px;display:flex;flex-direction:column;gap:10px;border-top:4px solid var(--rule)}
.svc.is-on{border-top-color:var(--brand);box-shadow:0 0 0 1px var(--brand),var(--shadow)}
.svc-pick input{width:20px;height:20px;accent-color:var(--brand);margin-top:2px}
.svc-pick label{cursor:pointer}
.svc-meta{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:8px 16px}
.svc-meta dt,.answers dt{color:var(--ink-2);font-size:.78rem}
.svc-meta dd,.answers dd{margin:2px 0 0}
.svc-more summary{cursor:pointer;font-weight:600;color:var(--brand);font-size:.88rem}
.svc-more[open] summary{margin-bottom:10px}
.step-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.step-list li.is-done{color:var(--ink-3)}
.step-list li.is-done .who-tag{opacity:.6}
.step-list li.is-now{font-weight:600}
.who-tag{display:inline-block;font:500 .66rem/1 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;padding:3px 6px;border-radius:3px;vertical-align:1px}
.who-you{background:var(--warn-tint);color:var(--warn-ink)}
.who-us{background:var(--brand-tint);color:var(--brand-deep)}
.who-agency{background:var(--rule);color:var(--ink-2)}
.form-links{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.form-links a{overflow-wrap:anywhere}
.prereq{border-left:4px solid var(--brand)}
.prereq.is-warn{border-left-color:var(--warn)}
.note-warn{background:var(--warn-tint);color:var(--note-ink);border-radius:var(--radius);padding:10px 12px}
.note-ok{background:var(--brand-tint);color:var(--ink);border-radius:var(--radius);padding:10px 12px}
.note-ok a{font-weight:600}
.svc-detail legend{font:800 1.1rem/1.2 var(--f-display);padding:0 4px}
.plan-list{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:12px}
.tick-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.app{padding:clamp(16px,2.5vw,24px);display:flex;flex-direction:column;gap:14px;border-top:4px solid var(--brand);scroll-margin-top:16px}
.app-head{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:flex-start}
.app-head h3{font-size:1.15rem;overflow-wrap:anywhere}
.permit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.permit{display:flex;flex-direction:column;gap:8px;padding:14px 0;border-top:1px solid var(--rule)}
.permit > .btn{align-self:flex-start}
.permit-top{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:flex-start}
.prog{height:6px;border-radius:3px;background:var(--rule);overflow:hidden;max-width:420px}
.prog span{display:block;height:100%;background:var(--brand);transition:width .4s}
.app-checklist summary{cursor:pointer;font-weight:700}
.checklist{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.checklist li{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;padding:8px 10px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper)}
.checklist-text{flex:1 1 220px;overflow-wrap:anywhere}
.answers{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px 18px}
.answers dd{overflow-wrap:anywhere;white-space:pre-line}
@media (max-width:640px){.wiz-steps{grid-template-columns:repeat(5,minmax(0,1fr))}.wiz-steps li{font-size:.7rem;padding:8px 2px}.wiz-nav{gap:8px}.wiz-nav .btn{flex:1 1 auto}}
/* 0010: request detail (status track, messages, staff box), joining a company */
.track{list-style:none;margin:4px 0 2px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;counter-reset:none}
.track li{display:flex;flex-direction:column;gap:6px;font-size:.74rem;line-height:1.25;color:var(--ink-3);position:relative;padding-top:2px}
.track li::before{content:"";position:absolute;top:7px;left:0;right:0;height:4px;border-radius:2px;background:var(--rule)}
.track li.is-done::before,.track li.is-now::before{background:var(--brand)}
.track-dot{position:relative;width:16px;height:16px;border-radius:50%;background:var(--paper);border:3px solid var(--rule);box-sizing:border-box;z-index:1}
.track li.is-done .track-dot{background:var(--brand);border-color:var(--brand)}
.track li.is-now .track-dot{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}
.track li.is-now,.track li.is-done{color:var(--ink)}
.track li.is-now .track-label{font-weight:700}
.track.is-stopped li{opacity:.5}
.thread{max-height:320px;overflow:auto}
.msg-item{border-left:3px solid var(--rule);padding:6px 10px;background:var(--paper);border-radius:0 var(--radius) var(--radius) 0}
.msg-item.from-staff{border-left-color:var(--brand)}
.msg-item p{margin:2px 0 0}
.pre{white-space:pre-line;overflow-wrap:anywhere}
.small-head{font-size:.95rem;margin:6px 0 0}
.staff-box{border:1px dashed var(--rule-strong);border-radius:var(--radius);padding:10px 12px}
.staff-box > .pill{align-self:flex-start}
.modal .form > .btn.sm{justify-self:start;width:auto}
.staff-box .row{flex-wrap:wrap;align-items:center}
.staff-box select{width:auto}
.btn.danger,.btn.ghost.danger{color:var(--late)}
.choice-set{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.choice-set legend{font-weight:600;margin-bottom:6px;padding:0}
tr.row-open{cursor:pointer}
tr.row-open:hover td{background:var(--brand-tint)}
td .pill + .pill,td .linkish + .pill{margin-left:6px}
.join-note p{margin:0 0 8px}
.join-note .row{flex-wrap:wrap}
.join-box{padding:14px 16px}
.join-box h3{font-size:1rem}
@media (max-width:640px){.track{grid-template-columns:repeat(5,minmax(0,1fr))}.track li{font-size:.66rem}}
.id-check{padding:14px 16px}
.id-check .facts{margin:0}

/* ---------- partner feedback, Oct 26 2026 ---------- */
/* "Waiting on you" opens the list of what is waiting */
.kpi-btn{font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%}
.kpi-btn:hover{border-color:var(--tone);border-left-color:var(--tone)}
.kpi-btn:focus-visible{outline:2px solid var(--tone);outline-offset:2px}
.kpi-btn[aria-disabled="true"]{cursor:default}
.wait-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.wait-list li{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--rule);border-left:4px solid var(--late);border-radius:var(--radius);background:var(--surface)}
.wait-list li > div{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 220px}
.wait-list b{overflow-wrap:anywhere}
/* incomplete company file */
.incomplete p{margin:0 0 6px}
.incomplete ul{margin:0 0 8px;padding-left:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:2px 18px}
.incomplete .row{flex-wrap:wrap}
.note-warn.in-form{margin:0}
/* security: the three facts as short lines, not a run-on sentence */
.sec-points{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:10px}
.sec-points li{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;background:var(--surface);border:1px solid var(--rule);border-radius:10px;font-size:.88rem;line-height:1.45;color:var(--ink-2)}
.sec-points li b{display:block;color:var(--ink);font-size:.9rem;margin-bottom:2px}
.sec-points .ic{width:20px;height:20px;color:var(--brand);margin-top:1px}
/* addresses: street, suite, city / state / ZIP */
.addr{border:0;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:10px 12px}
.addr legend{font-weight:600;font-size:.95rem;padding:0;margin-bottom:6px}
.addr .field{margin:0}
.addr .addr-street{grid-column:1/-1}
.addr .addr-line3{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,2fr) minmax(70px,.7fr) minmax(90px,1fr);gap:10px 12px}
.addr .hint{grid-column:1/-1}
@media (max-width:560px){.addr{grid-template-columns:1fr}.addr .addr-line3{grid-template-columns:1fr 1fr}.addr .addr-line3 .field:first-child{grid-column:1/-1}}
/* members */
#d-member-actions{justify-content:flex-start}
.contact{display:flex;flex-direction:column;gap:2px;min-width:0}
.contact small{color:var(--ink-2)}
td.money-cell{font-variant-numeric:tabular-nums;white-space:nowrap}
.former-box summary{cursor:pointer;font-weight:600}
.former-box[open] summary{margin-bottom:10px}
.withdraw-warn{border-left:4px solid var(--late)}
/* ledger */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--rule);overflow-x:auto}
.tab{background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;padding:10px 14px;font:600 .92rem/1.2 var(--f-body);color:var(--ink-2);cursor:pointer;white-space:nowrap}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{color:var(--brand);border-bottom-color:var(--brand)}
.tab:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.tab-panel{display:flex;flex-direction:column;gap:18px;padding-top:16px}
.tab-panel h3{font-size:1.05rem}
.amt-in{color:var(--ok)} .amt-out{color:var(--late)}
.ledger-kind{font:500 .7rem/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.cert-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.cert-choice .card{padding:16px;display:flex;flex-direction:column;gap:10px}
.cert-choice .btn{align-self:flex-start}
.totals td{font-weight:700;border-top:2px solid var(--rule-strong)}
/* printable certificate and resolution */
/* Paper is white in both themes, so everything inside it (tables, notes,
   scroll areas, links) takes the light palette even in dark mode. Without
   this, a .table-wrap inside the statement turned navy with dark text. */
.paper-doc{color-scheme:light;
  --paper:#F5F6FA; --surface:#FFFFFF; --ink:#141A33; --ink-2:#4A5170; --ink-3:#656B84;
  --rule:#DCDFEA; --rule-strong:#B9BED1; --field:#FFFFFF;
  --ok:#1B7A52; --warn:#A86A00; --warn-ink:#7A4D00; --warn-tint:#FBF0D6; --late:#B3261E; --late-tint:#FBE6E4; --note-ink:#5C3A00;
  --c-entities:#2F3FA8; --c-entities-tint:#E8EBFA; --c-entities-deep:#1D2870;
  --c-permits:#1B7A52; --c-permits-tint:#E2F3EA; --c-permits-deep:#0F4F35;
  --brand:#2F3FA8; --brand-tint:#E8EBFA; --brand-deep:#1D2870; --on-brand:#FFFFFF;
  --shadow:none}
/* (an a.btn inside paper would take this link colour; none today) */
.paper-doc a{color:#2F3FA8}
.paper-doc{background:#fff;color:#141A33;border:6px double #2F3FA8;padding:clamp(18px,4vw,40px);display:flex;flex-direction:column;gap:14px;text-align:center;font-family:var(--f-body)}
.paper-doc.resolution{text-align:left;border:1px solid #B9BED1}
.paper-doc h3{font:800 clamp(1.2rem,3vw,1.7rem)/1.2 var(--f-display);letter-spacing:.02em;color:#1D2870}
.paper-doc .cert-no{font:500 .8rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:#4A5170}
.paper-doc .big{font:700 1.25rem/1.3 var(--f-display)}
.paper-doc table{width:100%}
.paper-doc th,.paper-doc td{color:#141A33;border-color:#DCDFEA}
.paper-sign{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;margin-top:28px;text-align:left}
.paper-sign div{border-top:1px solid #141A33;padding-top:6px;font-size:.8rem;color:#4A5170}
.print-only{display:none}
@media print{
  body.printing > *:not(.print-only){display:none !important}
  body.printing .print-only{display:block !important}
  .paper-doc{border-color:#000}
}
/* signed out after an hour of inactivity: warning */
.idle-warn{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:50;max-width:min(560px,calc(100% - 32px));display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:14px 16px;background:var(--surface);color:var(--ink);border:1px solid var(--rule-strong);border-left:4px solid var(--warn);border-radius:10px;box-shadow:var(--shadow)}
.idle-warn p{margin:0;flex:1 1 240px}
/* Name ending: shown only when someone wants a different one */
.name-preview .linkish{margin-left:6px}
/* Certificate of member's interest and certificate ledger (company sample, Oct 26 2026) */
.paper-doc.cert-doc{align-items:center;text-align:center;border:6px double #141A33;gap:10px;padding:clamp(20px,4vw,48px) clamp(16px,4vw,40px);font-family:"Public Sans",Arial,sans-serif}
.cert-num{font:400 .8rem/1 "Times New Roman",Times,serif;color:#141A33}
.cert-title{margin:0;font:500 clamp(1.15rem,3vw,1.6rem)/1.2 "Public Sans",Arial,sans-serif;letter-spacing:.04em;text-decoration:underline;text-underline-offset:4px;color:#141A33}
.cert-revoked{margin:-4px 0 0;font:600 clamp(1.1rem,3vw,1.5rem)/1.1 "Public Sans",Arial,sans-serif;letter-spacing:.06em;color:#D11A1A;text-decoration:underline;text-underline-offset:4px}
.cert-as-of{margin:0;font-style:italic;font-size:clamp(1rem,2.4vw,1.3rem)}
.cert-line{margin:6px 0 0;font-size:clamp(1rem,2.4vw,1.35rem)}
.cert-name,.cert-sig,.cert-sig-name{font-family:"Times New Roman",Times,serif}
.cert-company{margin:0;font-size:clamp(1.05rem,2.6vw,1.4rem);letter-spacing:.03em}
.cert-seal{width:min(320px,80%);height:auto;align-self:center;margin:6px 0 2px}
.cert-sig{margin:0;font-size:1.15rem;text-decoration:underline;text-underline-offset:3px}
.cert-sig i{font-family:"Public Sans",Arial,sans-serif}
.cert-sig-name{margin:0;font-size:.95rem}
.paper-doc.cert-ledger{border:0;text-align:left;font-family:"Times New Roman",Times,serif;gap:6px}
.cert-ledger .cl-title{margin:0;text-align:center;font-weight:700;font-size:1.05rem}
.cert-ledger .cl-date{margin:0 0 8px;text-align:center}
.cert-ledger table{border-collapse:collapse;width:100%;align-self:stretch}
.print-page .cert-ledger{display:block}
.cert-ledger th,.cert-ledger td{border:1px solid #141A33;padding:3px 6px;text-align:center;font:400 .9rem/1.25 "Times New Roman",Times,serif;color:#141A33;text-transform:none;letter-spacing:0}
.cert-ledger th{font-weight:700;text-transform:uppercase}
.cert-ledger tr.cl-gap td{height:1.1em}
.cert-ledger tbody tr:last-child td{border-bottom:1px solid #141A33}
.cl-sign{margin:28px 0 0 auto;width:min(260px,60%)}
.cl-sign p{margin:0}
.cl-line{border-bottom:1px solid #141A33;height:36px;margin:4px 0}
tr.cl-gap td{padding:3px;background:transparent}
tr.cl-revoked td{color:var(--ink-2)}
@media print{
  .print-page{break-after:page;page:portrait}
  .print-page.print-landscape{page:landscape}
  .print-page:last-child{break-after:auto}
  @page landscape{size:letter landscape;margin:.5in}
  @page portrait{size:letter portrait;margin:.75in}
  .print-page,.print-page .paper-doc{width:100%;box-sizing:border-box}
  .paper-doc.cert-doc{min-height:7in;justify-content:center;gap:8pt}
  .cert-doc .cert-num{font-size:10pt}
  .cert-doc .cert-title{font-size:24pt}
  .cert-doc .cert-revoked{font-size:22pt}
  .cert-doc .cert-as-of,.cert-doc .cert-line{font-size:18pt}
  .cert-doc .cert-company{font-size:19pt}
  .cert-doc .cert-seal{width:3.6in}
  .cert-doc .cert-sig{font-size:16pt}
  .cert-doc .cert-sig-name{font-size:12pt}
  .cert-ledger .cl-title{font-size:13pt}
  .cert-ledger th,.cert-ledger td{font-size:10.5pt}
}
/* Franchise tax, personal statement, org chart (0013). The worksheet,
   statement and chart are "paper" (.paper-doc: white in both themes, so
   they print the same as they look). */
.franchise-card .facts{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.row.wrap{flex-wrap:wrap}
.paid-service{border-top:1px solid var(--rule);padding-top:12px;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.paid-service p{margin:0;flex:1 1 320px}
.estimate{background:var(--brand-tint);color:var(--ink);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.form-sub{font-size:1rem;margin:8px 0 0}
fieldset.officers{border:1px solid var(--rule);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:10px}
fieldset.officers legend{font-weight:600;padding:0 4px}
fieldset.check-group{border:1px solid var(--rule);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:8px;margin:0}
fieldset.check-group legend{font-weight:600;padding:0 4px}
.officer-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:8px;align-items:end;border-bottom:1px dashed var(--rule);padding-bottom:8px}
.paper-doc.worksheet,.paper-doc.statement,.paper-doc.orgchart{text-align:left;border:1px solid #B9BED1}
.paper-doc h4{font:700 1rem/1.3 var(--f-display);color:#1D2870;margin:6px 0 0}
.paper-doc.worksheet th[scope="row"]{font-weight:500;width:55%;color:#4A5170}
.paper-doc .statement-label{font-weight:600;border-left:4px solid #2F3FA8;padding:6px 10px;background:#E8EBFA;color:#141A33}
.paper-doc tbody th{border-bottom:1px solid #DCDFEA}
.paper-doc tfoot th,.paper-doc tfoot td{font-weight:700;border-top:2px solid #141A33;border-bottom:0}
.paper-doc .muted{color:#4A5170}
.statement-notes{margin:0;padding-left:18px;color:#4A5170}
.staff-pick select{max-width:420px}
.oc-modes .btn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oc-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #DCDFEA;border-radius:6px;background:#FAFBFE}
.oc-scroll:focus-visible{outline:3px solid #2F3FA8;outline-offset:2px}
.oc-svg{display:block;width:100%;height:auto}
.oc-node rect{fill:#FFFFFF;stroke:#2F3FA8;stroke-width:1.5}
.oc-person rect{fill:#E8EBFA;stroke:#2F3FA8}
.oc-root rect{stroke-width:3}
.oc-me rect{fill:#2F3FA8}
.oc-me .oc-name,.oc-me .oc-sub{fill:#FFFFFF}
.oc-restricted rect{fill:#F5F6FA;stroke:#7A8099;stroke-dasharray:6 4}
.oc-name{fill:#141A33;font:600 13px "Public Sans",Arial,sans-serif}
.oc-sub{fill:#4A5170;font:12px "Public Sans",Arial,sans-serif}
.oc-edge{fill:none;stroke:#7A8099;stroke-width:1.5}
.oc-edge.oc-mgr{stroke-dasharray:4 4}
.oc-arrowhead{fill:#7A8099}
.oc-label rect{fill:#FFFFFF;stroke:#B9BED1}
.oc-label text{fill:#1D2870;font:600 11px "IBM Plex Mono",monospace}
.oc-details summary{cursor:pointer;font-weight:600;color:#2F3FA8}
@media print{
  .print-only .oc-scroll{overflow:visible;border:0;background:#fff}
  .print-only .oc-svg{min-width:0 !important;max-height:9.5in}
  .print-only .paper-doc{border:0;padding:0}
  .print-only details > *{display:block}
}
/* Billing (0015): storage meter, plan columns */
.meter{height:8px;border-radius:999px;background:var(--rule);overflow:hidden}
.meter>span{display:block;height:100%;background:var(--brand,currentColor);min-width:2px}
.minutes-doc dt{font-weight:600;margin-top:10px}
.minutes-doc dd{margin:2px 0 0;white-space:pre-wrap}

/* Guides (fairpermits.com/guides) */
.guide{max-width:820px}
.guide h1{font-size:clamp(1.9rem,4.4vw,2.9rem)}
.guide h2{font-size:clamp(1.3rem,2.4vw,1.65rem)}
.guide-body h2{margin-top:18px}
.guide-body h3{margin-top:6px}
.guide-body p,.guide-body li,.guide .faq-item p{max-width:72ch}
.guide-body ul,.guide-body ol{margin:0;padding-left:1.3em;display:flex;flex-direction:column;gap:6px}
.guide-body table{font-size:.9rem}
.guide-body .table-wrap{overflow-x:auto}
.guide .table-wrap{overflow-x:auto}
.glance-card{padding:16px 18px}
.glance-card dd{font-weight:500}
.guide-body th{white-space:normal}
.guide .answer{background:var(--brand-tint);border-left:4px solid var(--brand);border-radius:var(--radius);padding:16px 18px}
.guide .answer h2{font:600 .75rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brand-deep)}
.guide .answer p{font-size:1.05rem;color:var(--ink)}
.crumbs{color:var(--ink-2)}
.crumbs a{color:inherit}
.faq-item{border-top:1px solid var(--rule);padding-top:14px}
.sources{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:4px;word-break:break-word}
.guide-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px 28px}
.guide-list li{border-top:2px solid var(--ink);padding-top:12px;display:flex;flex-direction:column;gap:6px}
.guide-list a{font:700 1.08rem/1.25 var(--f-display);text-decoration:none}
.guide-list a:hover{text-decoration:underline}
[data-theme="dark"] .guide-list li{border-top-color:var(--rule-strong)}
a.item{text-decoration:none;color:inherit}
a.item:hover h3{color:var(--brand);text-decoration:underline}
