/* GovBiz Texas — GovBiz platform tokens (navy/blue, system fonts) + a Texas layer (flag red, lone star, slab display). */
:root, :root[data-theme="dark"] {
  --bg:#07111F; --surface:#0D1D30; --elevated:#142540; --card:#0F2035;
  --border:rgba(91,141,239,.15); --border-mid:rgba(91,141,239,.28); --border-strong:rgba(91,141,239,.45);
  --text:#FFFFFF; --text-sec:#B5C7DE; --text-muted:#8BA8CC; --text-dim:#6B86A6;
  --blue:#5B8DEF; --blue-hover:#4A7DE3; --blue-dim:rgba(91,141,239,.12);
  --green:#22D07A; --green-dim:rgba(34,208,122,.12); --amber:#F5A623; --amber-dim:rgba(245,166,35,.12);
  --red:#EF4444; --red-dim:rgba(239,68,68,.12);
  --tx-red:#E0284F; --tx-red-solid:#BF0D3E; --tx-navy:#002868; --tx-sun:#F5A623;
  --navbar-bg:rgba(7,17,31,.92); --shadow:0 24px 70px rgba(0,0,0,.45);
  --star-fill:rgba(255,255,255,.035);
  color-scheme: dark;
}
:root[data-theme="light"] {
  --bg:#F4F2EE; --surface:#FFFFFF; --elevated:#FAF8F5; --card:#FFFFFF;
  --border:#E2DDD5; --border-mid:#CFC8BC; --border-strong:#B8AF9F;
  --text:#14161F; --text-sec:#3D4656; --text-muted:#5D6575; --text-dim:#8E95A3;
  --blue:#2563EB; --blue-hover:#1D4FD8; --blue-dim:rgba(37,99,235,.08);
  --green:#047857; --green-dim:rgba(5,150,105,.10); --amber:#B45309; --amber-dim:rgba(217,119,6,.12);
  --red:#DC2626; --red-dim:rgba(220,38,38,.08);
  --tx-red:#BF0D3E; --tx-red-solid:#BF0D3E; --tx-navy:#002868; --tx-sun:#D97706;
  --navbar-bg:rgba(244,242,238,.92); --shadow:0 18px 50px rgba(40,30,10,.12); --star-fill:rgba(0,40,104,.035);
  color-scheme: light;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --bg:#F4F2EE; --surface:#FFFFFF; --elevated:#FAF8F5; --card:#FFFFFF;
    --border:#E2DDD5; --border-mid:#CFC8BC; --border-strong:#B8AF9F;
    --text:#14161F; --text-sec:#3D4656; --text-muted:#5D6575; --text-dim:#8E95A3;
    --blue:#2563EB; --blue-hover:#1D4FD8; --blue-dim:rgba(37,99,235,.08);
    --green:#047857; --green-dim:rgba(5,150,105,.10); --amber:#B45309; --amber-dim:rgba(217,119,6,.12);
    --red:#DC2626; --red-dim:rgba(220,38,38,.08);
    --tx-red:#BF0D3E; --tx-red-solid:#BF0D3E; --tx-navy:#002868; --tx-sun:#D97706;
    --navbar-bg:rgba(244,242,238,.92); --shadow:0 18px 50px rgba(40,30,10,.12); --star-fill:rgba(0,40,104,.035);
    color-scheme: light;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
.mono,code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}
code{font-size:.88em;background:var(--blue-dim);padding:1px 6px;border-radius:5px}
pre{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;overflow:auto;font-size:13px;line-height:1.5}
.slab{font-family:Rockwell,"Rockwell Nova","Roboto Slab","Zilla Slab","DejaVu Serif",Georgia,serif;letter-spacing:-.01em}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.muted{color:var(--text-muted)}.dim{color:var(--text-dim)}.small{font-size:13px}.tiny{font-size:12px}
.right{text-align:right}.nowrap{white-space:nowrap}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:var(--navbar-bg);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.nav .wrap{display:flex;align-items:center;gap:18px;height:62px}
.brand{display:flex;align-items:center;gap:10px;color:var(--text)!important;text-decoration:none!important}
.brand svg.wordmark{height:26px;width:auto}
.txbadge{display:inline-flex;align-items:center;gap:5px;background:var(--tx-red-solid);color:#fff;font:800 11px/1 -apple-system,Segoe UI,Arial,sans-serif;letter-spacing:.08em;padding:5px 8px 5px 6px;border-radius:6px}
.txbadge svg{width:12px;height:12px}
.nav .links{display:flex;gap:4px;margin-left:auto;align-items:center;flex-wrap:wrap}
.nav .links a{color:var(--text-sec);padding:8px 12px;border-radius:999px;font-size:14px;font-weight:600}
.nav .links a:hover,.nav .links a.on{background:var(--blue-dim);color:var(--text);text-decoration:none}
.nav .links a.btn-tx,.nav .links a.btn-primary,.nav .links a.btn-tx:hover,.nav .links a.btn-primary:hover{color:#fff}
.nav .links a.btn-tx:hover{background:var(--tx-red-solid)}
.theme-btn{background:none;border:1px solid var(--border-mid);color:var(--text-sec);border-radius:999px;width:34px;height:34px;cursor:pointer}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;border-radius:999px;padding:10px 20px;border:1px solid transparent;cursor:pointer;text-decoration:none!important;transition:all .15s ease;white-space:nowrap;font-family:inherit}
.btn-primary{background:var(--blue);color:#fff}
:root[data-theme="dark"] .btn-primary,:root:not([data-theme]) .btn-primary{color:#07111F}
.btn-primary:hover{background:var(--blue-hover);transform:translateY(-1px)}
.btn-tx{background:var(--tx-red-solid);color:#fff}.btn-tx:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--text-sec);border-color:var(--border-mid)}.btn-ghost:hover{border-color:var(--border-strong);color:var(--text)}
.btn-sm{padding:6px 12px;font-size:13px}.btn-danger{background:var(--red-dim);color:var(--red);border-color:transparent}

/* hero */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--border)}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(900px 500px at 85% 20%,rgba(191,13,62,.20),transparent 60%),
  radial-gradient(700px 500px at 10% 90%,rgba(91,141,239,.16),transparent 60%);pointer-events:none}
.hero .stars{position:absolute;inset:0;background-image:radial-gradient(var(--star-fill) 1.5px,transparent 1.6px);background-size:26px 26px;mask-image:linear-gradient(to bottom,#000,transparent)}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;padding-top:72px;padding-bottom:64px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--tx-red);font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.eyebrow::before{content:"";width:22px;height:2px;background:linear-gradient(90deg,var(--tx-red),var(--tx-sun))}
.hero h1{font-size:clamp(34px,5.2vw,60px);line-height:1.03;margin:14px 0 18px}
.hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--tx-red) 0%,var(--tx-sun) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{font-size:18px;color:var(--text-sec);max-width:620px;margin:0 0 26px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.txmap{width:100%;max-width:440px;justify-self:center;filter:drop-shadow(0 30px 60px rgba(0,0,0,.35))}
.txmap .shape{fill:url(#txfill);stroke:var(--tx-red);stroke-width:2.2;stroke-linejoin:round}
.txmap .grid line{stroke:var(--border-mid);stroke-width:.6}
.txmap .dot{fill:var(--blue)}.txmap .austin{fill:var(--tx-sun)}
.txmap text{fill:#DCE5F2;paint-order:stroke;stroke:rgba(7,17,31,.6);stroke-width:2px;font:600 9px -apple-system,Segoe UI,Arial,sans-serif;letter-spacing:.06em}

/* stats strip */
.stats{display:grid;grid-template-columns:repeat(6,1fr);border-bottom:1px solid var(--border);background:var(--surface)}
.stat{padding:20px 18px;border-right:1px solid var(--border)}.stat:last-child{border-right:0}
.stat .v{font-size:26px;font-weight:800;letter-spacing:-.02em}.stat .l{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-top:2px}

/* sections */
section.block{padding:64px 0;border-bottom:1px solid var(--border)}
section.block h2{font-size:clamp(26px,3.2vw,36px);margin:8px 0 10px;line-height:1.1}
section.block p.sub{color:var(--text-sec);max-width:720px;margin:0 0 30px;font-size:16px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:20px 22px}
.card h3{margin:0 0 6px;font-size:17px}.card p{margin:0;color:var(--text-sec);font-size:14px}
.card .k{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--tx-red);margin-bottom:8px}
.qcard{position:relative;padding-left:52px}
.qcard .n{position:absolute;left:18px;top:18px;width:24px;height:24px;border-radius:50%;background:var(--blue-dim);color:var(--blue);font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center}
.source{display:flex;flex-direction:column;gap:6px}
.source .meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:10px}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--blue-dim);color:var(--blue);white-space:nowrap}
.pill.ok{background:var(--green-dim);color:var(--green)}.pill.warn{background:var(--amber-dim);color:var(--amber)}.pill.bad{background:var(--red-dim);color:var(--red)}
.pill.tx{background:rgba(191,13,62,.14);color:var(--tx-red)}.pill.est{background:var(--amber-dim);color:var(--amber)}
.note{background:var(--blue-dim);border:1px solid var(--border-mid);border-radius:12px;padding:14px 16px;color:var(--text-sec);font-size:14px}
.disclaimer{border-left:3px solid var(--tx-red);padding:10px 14px;background:var(--surface);border-radius:0 10px 10px 0;color:var(--text-sec);font-size:13px}

/* footer */
footer.site{padding:36px 0 50px;color:var(--text-muted);font-size:13px}
footer.site .row{display:flex;gap:24px;justify-content:space-between;flex-wrap:wrap}
footer.site a{color:var(--text-sec)}

/* forms */
input[type=text],input[type=email],input[type=number],input[type=search],input[type=date],input[type=url],select,textarea{
  background:var(--surface);color:var(--text);border:1px solid var(--border-mid);border-radius:10px;padding:10px 12px;font:inherit;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:transparent}
label{display:block;font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 6px}
.form-row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;margin-bottom:16px}
.auth-card{max-width:440px;margin:80px auto;padding:34px}

/* app shell */
.shell{display:grid;grid-template-columns:236px 1fr;min-height:calc(100vh - 62px)}
.side{border-right:1px solid var(--border);padding:20px 12px;background:var(--surface)}
.side .grp{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin:18px 10px 6px}
.side a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;color:var(--text-sec);font-weight:600;font-size:14px}
.side a:hover,.side a.on{background:var(--blue-dim);color:var(--text);text-decoration:none}
.side a.on{box-shadow:inset 3px 0 0 var(--tx-red)}
.side .tenant{margin:0 6px 10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-size:13px}
.main{padding:28px 32px 60px;min-width:0}
.main h1{font-size:28px;margin:0 0 6px}.main .lede{color:var(--text-sec);margin:0 0 22px}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}

/* tables */
.tw{overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--card)}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top}
th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:800;background:var(--elevated);position:sticky;top:0}
tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--blue-dim)}
td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.kv{display:grid;grid-template-columns:180px 1fr;gap:6px 16px;font-size:14px}.kv dt{color:var(--text-muted)}.kv dd{margin:0}
.bars{display:flex;align-items:flex-end;gap:4px;height:120px;padding:8px 0}
.bars div{flex:1;background:linear-gradient(to top,var(--blue),rgba(91,141,239,.5));border-radius:4px 4px 0 0;min-height:2px}
.flash{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:14px}
.flash.ok{background:var(--green-dim);color:var(--green)}.flash.err{background:var(--red-dim);color:var(--red)}
.secret{font-family:ui-monospace,Menlo,monospace;background:var(--surface);border:1px dashed var(--tx-red);padding:12px;border-radius:10px;word-break:break-all}

@media (max-width: 980px){
  .hero .wrap{grid-template-columns:1fr;padding-top:48px}.txmap{max-width:300px;order:-1}
  .stats{grid-template-columns:repeat(3,1fr)}.stat:nth-child(3){border-right:0}
  .g3,.g4{grid-template-columns:1fr 1fr}.shell{grid-template-columns:1fr}.side{display:none}.main{padding:20px 16px}
}
@media (max-width: 620px){
  .g2,.g3,.g4{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.stat{border-right:0}
  .nav .links a:not(.btn){display:none}.kv{grid-template-columns:1fr}
}
