@charset "utf-8";
/* ==========================================================================
   WICOURTRADAR — radar.css
   The live radar app for wicourtradar.com.

   Design fusion of two sibling brands:
   · ascendwithavena.com — deep navy surfaces, gold accents, Cormorant
     Garamond display over Montserrat UI, tracked uppercase kickers,
     gold hairlines, pill buttons.
   · avenalaw.com — civic courthouse-document texture: parchment cards,
     thin rules, tracked uppercase labels, restrained gold ink on light.

   Fusion rule: dark navy "radar" shell; light parchment "court document"
   cards for case detail. Radar-green is ONLY for live pings/activity —
   never for text or chrome.
   ========================================================================== */

:root{
  --navy-950:#04101c; --navy-900:#071627; --navy-850:#091c30; --navy-800:#0d2239;
  --slate-700:#26364a; --gold-500:#c99a42; --gold-400:#e0b55f; --gold-300:#f0d18f;
  --gold-ink:#8c621c; --ivory:#f7f4ed; --parch:#f8f5ee; --silver:#d7dbe2;
  --muted:#99a7b8; --muted-ink:#54677c; --paper:#ffffff; --mist:#eef3f8;
  --line:#cfdae5; --line-soft:#e4ecf3; --line-gold:rgba(224,181,95,.22);
  --radar:#38d996; --radar-dim:rgba(56,217,150,.35); --seal:#7c1c1c;
  /* Parchment case-card washes (avenalaw document idiom) */
  --parch-deep:#fcfaf4;     /* card head/foot gradient end */
  --parch-edge:#d9d1bd;     /* card border */
  --parch-line:#cbbf9d;     /* engraved double rule */
  --parch-scroll:#cfc6ad;   /* card scrollbar thumb */
  --gold-wash:#faf3e1;      /* gold chip fill */
  --gold-wash-soft:#fbf6e9; /* hearing band fill */
  --seal-lt:#fbeded;        /* seal chip + notice wash (matches avenalaw --seal-lt) */
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Montserrat',Arial,sans-serif;
}

/* ---------- Base ---------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ height:100%; }
body{
  margin:0; min-height:100%;
  font-family:var(--sans); font-size:14px; line-height:1.55;
  color:var(--ivory);
  background:
    radial-gradient(circle at 72% -8%, rgba(201,154,66,.10), transparent 30rem),
    radial-gradient(circle at 14% 30%, rgba(21,71,112,.22), transparent 38rem),
    linear-gradient(180deg,#061322 0%, var(--navy-900) 55%, #030b14 100%);
  background-color:var(--navy-950);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
::selection{ background:var(--gold-500); color:var(--navy-950); }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
input{ font:inherit; }
[hidden]{ display:none !important; }

:focus-visible{ outline:2px solid var(--gold-400); outline-offset:2px; border-radius:2px; }

.skip-link{
  position:fixed; top:-48px; left:14px; z-index:200;
  padding:9px 16px; border-radius:999px;
  background:var(--gold-500); color:var(--navy-950);
  font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  transition:top .2s ease;
}
.skip-link:focus{ top:10px; }

.noscript-note{
  margin:40px auto; max-width:520px; padding:18px 22px; text-align:center;
  border:1px solid var(--line-gold); border-radius:12px; color:var(--silver);
}

/* Dark-shell scrollbars */
.table-wrap::-webkit-scrollbar,.docket::-webkit-scrollbar{ width:10px; height:10px; }
.table-wrap::-webkit-scrollbar-thumb,.docket::-webkit-scrollbar-thumb{
  background:var(--slate-700); border-radius:8px; border:2px solid var(--navy-900);
}
.table-wrap::-webkit-scrollbar-track,.docket::-webkit-scrollbar-track{ background:transparent; }

/* ==========================================================================
   TOP BAR
   ========================================================================== */
.topbar{
  position:relative; z-index:40;
  min-height:64px;
  display:flex; align-items:center; flex-wrap:wrap; gap:12px 18px;
  padding:10px clamp(14px,2.5vw,28px);
  background:linear-gradient(180deg, rgba(9,28,48,.94), rgba(4,16,28,.96));
  border-bottom:1px solid var(--line-gold);
  backdrop-filter:blur(14px);
}

.wordmark{ display:inline-flex; align-items:center; gap:11px; padding:4px 0; position:relative; }
.wm-text{
  font-family:var(--serif); font-weight:600; font-size:19px;
  letter-spacing:.24em; text-transform:uppercase; color:var(--ivory); white-space:nowrap;
}
.wm-text em{ font-style:normal; color:var(--gold-400); }
.wordmark::after{
  content:""; position:absolute; left:35px; right:0; bottom:0; height:1px;
  background:var(--gold-400); transform:scaleX(0); transform-origin:right;
  transition:transform .35s ease;
}
.wordmark:hover::after,.wordmark:focus-visible::after{ transform:scaleX(1); transform-origin:left; }
.wm-blip{ animation:blip 2.4s ease-in-out infinite; }

.badge-live{
  display:inline-flex; align-items:center; gap:9px;
  padding:7px 15px; border:1px solid rgba(224,181,95,.55); border-radius:999px;
  color:var(--gold-300); font-size:10px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase; white-space:nowrap;
  cursor:help; transition:background .25s ease, box-shadow .25s ease;
}
.badge-live:hover{ background:rgba(201,154,66,.08); box-shadow:0 0 0 5px rgba(201,154,66,.05); }
.badge-live .dot{
  width:7px; height:7px; border-radius:50%; background:var(--radar);
  box-shadow:0 0 10px var(--radar-dim); animation:blip 2.4s ease-in-out infinite;
}
@keyframes blip{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }

.asof{
  display:inline-flex; align-items:baseline; gap:7px; white-space:nowrap;
  font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
}
.asof-val{ color:var(--gold-300); font-weight:600; }
.asof-ver{ color:var(--muted); font-weight:500; }
.asof-ver::before{ content:"· "; opacity:.6; }

.search{ margin-left:auto; position:relative; display:inline-flex; align-items:center; color:var(--muted); }
.search svg{ position:absolute; right:15px; pointer-events:none; transition:color .25s ease; }
.search:focus-within svg{ color:var(--gold-400); }
.search input{
  width:min(300px,38vw); min-height:40px;
  background:rgba(255,255,255,.045);
  border:1px solid var(--slate-700); border-radius:999px;
  color:var(--ivory); padding:0 40px 0 16px; font-size:13px;
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.search input::placeholder{ color:var(--muted); }
.search input:hover{ border-color:#3b4f68; }
.search input:focus{
  outline:none; border-color:var(--gold-500); background:rgba(255,255,255,.06);
  box-shadow:0 0 0 4px rgba(201,154,66,.13);
}
.search input::-webkit-search-cancel-button{ cursor:pointer; }

/* ==========================================================================
   APP SPLIT
   ========================================================================== */
/* Height comes from the ≥901px flex shell (body column, .app flex:1), never
   from topbar arithmetic — the flex-wrap topbar can grow to two rows. */
.app{
  display:grid; grid-template-columns:58fr 42fr;
}

/* ==========================================================================
   MAP STAGE
   ========================================================================== */
.map-stage{
  position:relative; overflow:hidden; min-height:0;
  background:
    radial-gradient(circle at 50% 44%, rgba(20,69,109,.30), transparent 46%),
    radial-gradient(circle at 82% 90%, rgba(201,154,66,.05), transparent 34%),
    linear-gradient(160deg, #05121f, var(--navy-950));
}
.map-canvas{ position:absolute; inset:0; }
.map-canvas svg{ display:block; width:100%; height:100%; }

.county{
  stroke:rgba(4,16,28,.85); cursor:pointer;
  transition:fill .4s ease, filter .2s ease;
}
.county:hover{ filter:brightness(1.4); }
.county.is-selected{ filter:brightness(1.18); }
.state-line{
  fill:none; stroke:var(--gold-500); pointer-events:none;
  filter:drop-shadow(0 0 7px rgba(201,154,66,.35));
}
.range-ring{ fill:none; stroke:var(--line-gold); pointer-events:none; }

/* Pings — the only place radar-green lives */
.ping{ fill:var(--radar); opacity:.85; pointer-events:none; transition:opacity .3s ease; }
.ping.dim{ opacity:.14; }
.ping.hot{ opacity:1; filter:drop-shadow(0 0 7px var(--radar)); }
.ping-halo{
  fill:none; stroke:var(--radar); stroke-width:1; opacity:0; pointer-events:none;
  transform-box:fill-box; transform-origin:center;
  animation:halo 3s ease-out infinite;
}
@keyframes halo{
  0%{ transform:scale(.4); opacity:.65; }
  70%{ opacity:0; }
  100%{ transform:scale(3.2); opacity:0; }
}
.ping-halo.dim{ display:none; }

/* Radar sweep */
.sweep{ pointer-events:none; }
.sweep-rot{ animation:sweep 16s linear infinite; }
@keyframes sweep{ to{ transform:rotate(360deg); } }
.sweep-beam{ stroke:var(--radar); stroke-opacity:.32; stroke-linecap:round; }
.sweep-wedge{ fill:var(--radar); opacity:.045; }

/* Map HUD */
.map-btn{
  position:absolute; top:14px; right:14px; z-index:5;
  padding:9px 17px; border:1px solid var(--slate-700); border-radius:999px;
  background:rgba(7,22,39,.72); backdrop-filter:blur(8px);
  color:var(--silver); font-size:10px; font-weight:600;
  letter-spacing:.15em; text-transform:uppercase;
  opacity:.55; transition:opacity .25s ease, border-color .25s ease, color .25s ease, transform .2s ease;
}
.map-btn:hover{ opacity:1; border-color:var(--gold-500); color:var(--gold-300); transform:translateY(-1px); }
.map-btn.is-zoomed{ opacity:1; border-color:rgba(224,181,95,.5); color:var(--gold-300); }

.legend{
  position:absolute; left:16px; bottom:14px; z-index:5;
  display:inline-flex; align-items:center; gap:9px;
  font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
}
.legend-bar{
  width:92px; height:5px; border-radius:3px;
  background:linear-gradient(90deg, var(--navy-850), #5c4b2c 55%, var(--gold-500));
  border:1px solid rgba(255,255,255,.07);
}

/* One-time hint when a rejected wheel/one-finger gesture leaves the map still */
.gesture-hint{
  position:absolute; left:50%; bottom:52px; z-index:7; margin:0;
  transform:translateX(-50%);
  padding:9px 16px; border:1px solid var(--line-gold); border-radius:999px;
  background:rgba(7,22,39,.88); backdrop-filter:blur(8px);
  color:var(--silver); font-size:10px; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; white-space:nowrap;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.gesture-hint.show{ opacity:1; }

.map-foot{
  position:absolute; right:16px; bottom:12px; z-index:5; margin:0;
  display:inline-flex; align-items:center; gap:8px;
  font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
  text-align:right;
}
.live-dot{
  width:6px; height:6px; border-radius:50%; background:var(--radar);
  box-shadow:0 0 8px var(--radar-dim); animation:blip 2.4s ease-in-out infinite;
}
#liveCount{ color:var(--silver); }
.foot-sep{ opacity:.5; }

/* Loading state */
.map-loading{
  position:absolute; inset:0; z-index:6;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
  background:transparent; pointer-events:none;
}
.cal-rings{ position:relative; width:74px; height:74px; display:block; }
.cal-rings i{
  position:absolute; inset:0; border-radius:50%;
  border:1px solid rgba(224,181,95,.5);
  animation:calring 2.2s ease-out infinite;
}
.cal-rings i:nth-child(2){ animation-delay:.55s; }
.cal-rings i:nth-child(3){ animation-delay:1.1s; }
@keyframes calring{
  0%{ transform:scale(.2); opacity:.9; }
  100%{ transform:scale(1); opacity:0; }
}
.cal-text{ font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:var(--muted); }
.cal-text::after{ content:"…"; }

/* Map error / no-geometry state */
.map-msg{
  position:absolute; inset:0; z-index:6;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px;
  text-align:center; padding:32px;
}
.map-msg h2{ font-family:var(--serif); font-weight:500; font-size:26px; margin:0; color:var(--ivory); }
.map-msg p{ margin:0; max-width:38ch; color:var(--muted); font-size:12.5px; }

/* ==========================================================================
   DOCKET PANEL
   ========================================================================== */
.docket{
  display:flex; flex-direction:column; min-height:0; min-width:0;
  border-left:1px solid var(--line-gold);
  background:linear-gradient(180deg, var(--navy-900), var(--navy-950));
}

.docket-head{ padding:18px 20px 2px; }
.kicker{
  margin:0; font-size:10px; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; color:var(--gold-300);
  display:flex; align-items:center; gap:10px;
}
.kicker::before{ content:""; width:26px; height:1px; background:var(--gold-500); }

.docket-title{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin-top:6px; }
.docket-title h1{
  margin:0; font-family:var(--serif); font-weight:500;
  font-size:clamp(26px,2.4vw,34px); line-height:1.05; letter-spacing:-.01em; color:var(--ivory);
}
.clear-btn{
  padding:6px 13px; border:1px solid var(--slate-700); border-radius:999px;
  color:var(--muted); font-size:9.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  transition:border-color .2s ease, color .2s ease;
}
.clear-btn:hover{ border-color:var(--gold-500); color:var(--gold-300); }

.stat-chips{ display:flex; flex-wrap:wrap; gap:7px; margin:12px 0 14px; min-height:26px; }
.chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 12px; border-radius:999px;
  border:1px solid var(--slate-700); background:rgba(255,255,255,.03);
  font-size:10px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--silver);
}
.chip b{ font-weight:700; color:var(--ivory); letter-spacing:.02em; }
.chip--gold{ border-color:rgba(224,181,95,.45); color:var(--gold-300); }
.chip--gold b{ color:var(--gold-300); }

/* Filters */
.filters{
  display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;
  padding:12px 20px;
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.fchips{ display:flex; flex-wrap:wrap; gap:6px; }
.fchip{
  padding:6px 12px; border:1px solid var(--slate-700); border-radius:999px;
  font-size:10px; font-weight:600; letter-spacing:.12em; color:var(--muted);
  transition:border-color .2s ease, color .2s ease, background .2s ease, transform .15s ease;
}
.fchip small{ font-size:9px; font-weight:500; opacity:.75; margin-left:4px; letter-spacing:.04em; }
.fchip:hover{ border-color:var(--gold-500); color:var(--gold-300); transform:translateY(-1px); }
.fchip.on{
  background:rgba(224,181,95,.14); border-color:var(--gold-500); color:var(--gold-300);
}
.fchip:disabled{ opacity:.35; cursor:default; transform:none; }
.fchip:disabled:hover{ border-color:var(--slate-700); color:var(--muted); }

.seg{
  display:inline-flex; border:1px solid var(--slate-700); border-radius:999px; overflow:hidden;
  background:rgba(255,255,255,.02);
}
.seg button{
  padding:6px 12px; font-size:9.5px; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted);
  transition:background .2s ease, color .2s ease;
}
.seg button + button{ border-left:1px solid rgba(255,255,255,.07); }
.seg button:hover{ color:var(--gold-300); }
.seg button.on{ background:rgba(224,181,95,.16); color:var(--gold-300); }
.seg button:focus-visible{ outline-offset:-2px; }

/* Table */
.table-wrap{ flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; }
#caseTable{
  width:100%; border-collapse:collapse; table-layout:fixed; font-size:12px;
}
.col-party{ width:19%; } .col-caseno{ width:16%; } .col-county{ width:13%; }
.col-caption{ width:22%; } .col-status{ width:13%; } .col-filing{ width:14%; }

#caseTable thead th{
  position:sticky; top:0; z-index:2; padding:0;
  background:var(--navy-900);
  border-bottom:1px solid var(--line-gold);
}
#caseTable thead button{
  display:flex; align-items:center; gap:5px; width:100%;
  padding:10px 10px; text-align:left;
  font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
  transition:color .2s ease;
}
#caseTable thead button:hover{ color:var(--gold-300); }
#caseTable thead button:focus-visible{ outline-offset:-2px; }
#caseTable thead th .arrow{ font-size:8px; opacity:0; transition:opacity .2s ease; }
#caseTable thead th[aria-sort="ascending"] .arrow::before{ content:"▲"; }
#caseTable thead th[aria-sort="descending"] .arrow::before{ content:"▼"; }
#caseTable thead th[aria-sort="ascending"] .arrow,
#caseTable thead th[aria-sort="descending"] .arrow{ opacity:1; color:var(--gold-400); }
#caseTable thead th[aria-sort="ascending"] button,
#caseTable thead th[aria-sort="descending"] button{ color:var(--gold-300); }

#caseTbody tr{
  cursor:pointer;
  border-top:1px solid rgba(255,255,255,.05);
  transition:background .15s ease;
}
#caseTbody tr:first-child{ border-top:0; }
#caseTbody tr:hover,#caseTbody tr.is-hot{ background:rgba(224,181,95,.07); }
#caseTbody tr.is-pinned{ background:rgba(224,181,95,.12); box-shadow:inset 2px 0 0 var(--gold-400); }
#caseTbody tr:focus-visible{ outline:2px solid var(--gold-400); outline-offset:-2px; }
#caseTbody td{
  padding:9px 10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  color:var(--silver); vertical-align:middle;
}
td.td-party{ font-weight:600; color:var(--ivory); }
td.td-caseno{ font-size:11px; letter-spacing:.04em; color:var(--gold-300); }
td.td-caption,td.td-filing,td.td-county{ color:var(--muted); }

.status-pill{
  display:inline-block; padding:2.5px 9px; border-radius:999px;
  font-size:8.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  border:1px solid transparent;
}
.st-open{ border-color:rgba(224,181,95,.55); color:var(--gold-300); }
.st-filed{ border-color:rgba(215,219,226,.4); color:var(--silver); }
.st-closed{ border-color:rgba(153,167,184,.3); color:var(--muted); }

/* Feed / empty states inside the panel */
.feed-state{
  flex:1; min-height:0; overflow:auto;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:14px; text-align:center; padding:34px 26px;
}
.feed-art{ position:relative; width:66px; height:66px; margin-bottom:4px; }
.feed-art i{
  position:absolute; inset:0; border-radius:50%; border:1px solid rgba(224,181,95,.45);
  animation:calring 2.6s ease-out infinite;
}
.feed-art i:nth-child(2){ animation-delay:.65s; }
.feed-art i:nth-child(3){ animation-delay:1.3s; }
.feed-art::after{
  content:""; position:absolute; left:50%; top:50%; width:8px; height:8px;
  transform:translate(-50%,-50%); border-radius:50%;
  background:var(--gold-400); box-shadow:0 0 14px rgba(224,181,95,.6);
}
.feed-state h2{
  margin:0; font-family:var(--serif); font-weight:500; font-size:27px; color:var(--ivory);
}
.feed-state p{ margin:0; max-width:44ch; font-size:12.5px; color:var(--muted); }
.feed-state .ghost-btn{
  margin-top:8px; padding:9px 18px; border:1px solid var(--slate-700); border-radius:999px;
  font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--silver);
  transition:border-color .2s ease, color .2s ease, transform .15s ease;
}
.feed-state .ghost-btn:hover{ border-color:var(--gold-500); color:var(--gold-300); transform:translateY(-1px); }

/* Pager */
.pager{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:11px 20px; border-top:1px solid rgba(255,255,255,.07);
}
.page-info{ font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.page-btns{ display:inline-flex; gap:7px; }
.pg-btn{
  padding:6px 13px; border:1px solid var(--slate-700); border-radius:999px;
  font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--silver);
  transition:border-color .2s ease, color .2s ease;
}
.pg-btn:hover:not(:disabled){ border-color:var(--gold-500); color:var(--gold-300); }
.pg-btn:disabled{ opacity:.3; cursor:default; }

.panel-note{
  margin:0; padding:9px 20px 13px;
  font-size:9.5px; letter-spacing:.05em; line-height:1.6; color:var(--muted);
}
.panel-note strong{ color:var(--gold-300); font-weight:600; }

/* ==========================================================================
   COUNTY TOOLTIP  (dark glass)
   ========================================================================== */
.tooltip{
  position:fixed; z-index:70; pointer-events:none;
  min-width:180px; max-width:250px;
  padding:12px 15px 11px;
  background:rgba(9,28,48,.95); border:1px solid var(--line-gold); border-radius:11px;
  box-shadow:0 18px 44px rgba(0,0,0,.5);
  backdrop-filter:blur(9px);
}
.tooltip h4{
  margin:0; font-family:var(--serif); font-weight:600; font-size:18px; line-height:1.1; color:var(--ivory);
}
.tt-seat{ margin:2px 0 8px; font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.tt-row{
  display:flex; justify-content:space-between; gap:14px;
  padding:4.5px 0; border-top:1px solid rgba(255,255,255,.07);
  font-size:11px; color:var(--silver);
}
.tt-row dt{ color:var(--muted); font-size:9px; letter-spacing:.12em; text-transform:uppercase; align-self:center; }
.tt-row dd{ margin:0; font-weight:600; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tt-row dd.tt-gold{ color:var(--gold-300); }
.tooltip dl{ margin:0; }
.tt-hint{ margin:8px 0 0; font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); opacity:.8; }

/* ==========================================================================
   CASE DETAIL CARD  (parchment court document)
   ========================================================================== */
.card-backdrop{
  position:fixed; inset:0; z-index:75;
  background:rgba(4,16,28,.6); backdrop-filter:blur(3px);
}

.case-card{
  position:fixed; z-index:80;
  width:min(432px, calc(100vw - 24px));
  max-height:min(80vh, 730px);
  overflow:auto; overscroll-behavior:contain;
  background:var(--parch); color:var(--navy-900);
  border:1px solid var(--parch-edge); border-radius:9px;
  box-shadow:0 34px 90px rgba(3,10,18,.6), 0 4px 16px rgba(3,10,18,.35);
  font-family:var(--sans);
  animation:cardin .18s ease-out;
}
@keyframes cardin{
  from{ opacity:0; transform:translateY(7px) scale(.985); }
  to{ opacity:1; transform:none; }
}
.case-card::-webkit-scrollbar{ width:10px; }
.case-card::-webkit-scrollbar-thumb{ background:var(--parch-scroll); border-radius:8px; border:2px solid var(--parch); }

/* Head — certificate band */
.cc-head{
  position:relative;
  padding:17px 20px 14px;
  background:linear-gradient(180deg,var(--parch-deep), var(--parch));
  border-bottom:3px double var(--parch-line);
}
.cc-head::before{
  content:""; position:absolute; inset:6px 6px auto 6px; height:0;
  border-top:1px solid rgba(140,98,28,.25);
}
.cc-kicker{
  margin:0; font-size:9px; font-weight:700; letter-spacing:.26em;
  text-transform:uppercase; color:var(--gold-ink);
}
.cc-caption{
  margin:5px 26px 10px 0;
  font-family:var(--serif); font-weight:600; font-size:26px; line-height:1.02;
  letter-spacing:.015em; text-transform:uppercase; color:var(--navy-900);
}
.cc-chips{ display:flex; flex-wrap:wrap; gap:5px; }
.cchip{
  display:inline-flex; align-items:center;
  padding:3px 9px; border-radius:999px;
  border:1px solid var(--line); background:var(--paper);
  font-size:9.5px; font-weight:600; letter-spacing:.07em; text-transform:uppercase;
  color:var(--muted-ink); white-space:nowrap;
}
.cchip--gold{ border-color:rgba(140,98,28,.45); background:var(--gold-wash); color:var(--gold-ink); }
.cchip--seal{ border-color:rgba(124,28,28,.35); background:var(--seal-lt); color:var(--seal); }
.cchip--no{ letter-spacing:.1em; color:var(--navy-900); }

.cc-close{
  position:absolute; top:10px; right:10px; z-index:2;
  width:30px; height:30px; display:grid; place-items:center;
  border:1px solid var(--line); border-radius:50%;
  background:var(--paper); color:var(--muted-ink); font-size:13px; line-height:1;
  transition:border-color .2s ease, color .2s ease, transform .15s ease;
}
.cc-close:hover{ border-color:var(--seal); color:var(--seal); transform:rotate(90deg); }

/* Sections */
.cc-sec{ padding:13px 20px 15px; border-top:1px solid var(--line-soft); }
.cc-sec:first-of-type{ border-top:0; }
.cc-sec h3{
  display:flex; align-items:center; gap:10px;
  margin:0 0 10px; font-size:9.5px; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold-ink);
}
.cc-sec h3::after{ content:""; flex:1; height:1px; background:var(--line-soft); }

/* Defendant grid — mist cells */
.def-grid{ display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:0; }
.def-cell{ background:var(--mist); border-radius:4px; padding:7px 10px 8px; min-width:0; }
.def-cell.wide{ grid-column:1 / -1; }
.def-cell dt{
  font-size:8.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-ink);
}
.def-cell dd{
  margin:2px 0 0; font-size:12.5px; font-weight:500; color:var(--navy-900);
  overflow:hidden; text-overflow:ellipsis;
}

/* Charges */
.charge{ display:grid; grid-template-columns:26px 1fr; gap:11px; padding:10px 0 11px; border-top:1px solid var(--line-soft); }
.charge:first-of-type{ border-top:0; padding-top:2px; }
.charge-no{ font-family:var(--serif); font-weight:600; font-size:20px; line-height:1; color:var(--gold-ink); padding-top:1px; }
.charge h4{ margin:0 0 6px; font-size:13px; font-weight:600; line-height:1.35; color:var(--navy-900); }
.charge-chips{ display:flex; flex-wrap:wrap; gap:5px; }
.charge-extra{ margin:7px 0 0; font-size:11px; color:var(--muted-ink); }
.charge-extra b{ font-weight:600; color:var(--navy-900); }

/* Next hearing */
.hearing{
  display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
  border-left:3px solid var(--gold-500); border-radius:0 4px 4px 0;
  background:var(--gold-wash-soft); padding:10px 13px;
}
.hearing-date{ font-family:var(--serif); font-weight:700; font-size:17px; color:var(--navy-900); white-space:nowrap; }
.hearing-desc{ font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-ink); }
.hearing--none{ border-left-color:var(--line); background:var(--mist); }
.hearing--none .hearing-desc{ color:var(--muted-ink); letter-spacing:.06em; text-transform:none; font-weight:500; font-size:12px; }

/* Docket rows */
.drow{
  display:grid; grid-template-columns:84px 1fr; gap:10px;
  padding:6.5px 0; border-top:1px solid var(--line-soft);
  font-size:11.5px; line-height:1.5;
}
.drow:first-of-type{ border-top:0; }
.drow time{ font-weight:600; color:var(--muted-ink); font-size:10.5px; letter-spacing:.04em; padding-top:1px; }
.drow span{ color:var(--navy-900); }

/* Overview grid — paper cells */
.ov-grid{ display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:0; }
.ov-cell{ background:var(--paper); border:1px solid var(--line-soft); border-radius:4px; padding:7px 10px 8px; min-width:0; }
.ov-cell dt{ font-size:8.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-ink); }
.ov-cell dd{ margin:2px 0 0; font-size:12px; font-weight:500; color:var(--navy-900); overflow:hidden; text-overflow:ellipsis; }

/* Case summary — presumption of innocence */
.cc-summary{
  margin:0; padding:10px 13px;
  border-left:3px solid var(--seal); border-radius:0 4px 4px 0;
  background:var(--seal-lt);
  font-size:11px; line-height:1.68; color:var(--muted-ink);
}
.cc-summary b{ color:var(--seal); font-weight:600; letter-spacing:.02em; }
.cc-trial-note{
  margin:9px 0 0; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gold-ink); font-weight:600;
}

/* Card footer */
.cc-foot{
  position:sticky; bottom:0;
  display:flex; gap:9px; align-items:center;
  padding:12px 20px;
  background:linear-gradient(180deg, rgba(252,250,244,.88), var(--parch-deep));
  backdrop-filter:blur(5px);
  border-top:1px solid var(--line-soft);
}
.btn-wcca{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 18px; border-radius:999px;
  background:linear-gradient(135deg,#b9852f,#e3b95f 52%,#b57a21);
  color:#09131f; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  box-shadow:0 8px 22px rgba(140,98,28,.28);
  transition:transform .2s ease, box-shadow .2s ease;
}
.btn-wcca:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(140,98,28,.36); }
/* Trial-data state: no live WCCA record exists to link to */
.btn-wcca--demo{
  background:var(--mist); color:var(--muted-ink);
  border:1px dashed var(--line); box-shadow:none; cursor:help;
}
.btn-wcca--demo:hover{ transform:none; box-shadow:none; }
.btn-copy{
  display:inline-flex; align-items:center; gap:7px;
  padding:10px 16px; border:1px solid var(--line); border-radius:999px;
  background:transparent; color:var(--muted-ink);
  font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  transition:border-color .2s ease, color .2s ease, transform .2s ease;
}
.btn-copy:hover{ border-color:var(--gold-ink); color:var(--gold-ink); transform:translateY(-1px); }
.btn-copy.copied{ border-color:var(--gold-ink); color:var(--gold-ink); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (min-width: 901px){
  body{
    display:flex; flex-direction:column;
    height:100vh; height:100dvh; overflow:hidden;
  }
  .topbar{ flex:none; }
  .app{ flex:1; min-height:0; }
}
@media (max-width: 1120px){
  .col-caption{ width:0; } /* collapses; cells hidden below */
  th.col-caption,td.td-caption{ display:none; }
  .col-party{ width:24%; } .col-caseno{ width:20%; } .col-county{ width:17%; }
  .col-status{ width:17%; } .col-filing{ width:19%; }
}
@media (max-width: 900px){
  .app{ display:block; height:auto; }
  .map-stage{ height:min(62vh, 560px); }
  .docket{ border-left:0; border-top:1px solid var(--line-gold); max-height:none; }
  .table-wrap{ max-height:52vh; }
  th.col-caption,td.td-caption{ display:none; }
  .asof{ display:none; }
}
@media (max-width: 720px){
  .topbar{ gap:10px 12px; }
  .search{ order:5; margin-left:0; flex:1 1 100%; }
  .search input{ width:100%; }
  .wm-text{ font-size:16px; letter-spacing:.2em; }
  .badge-live{ padding:6px 11px; font-size:9px; }
  .filters{ padding:12px 14px; }
  .docket-head{ padding:14px 14px 2px; }
  .pager,.panel-note{ padding-left:14px; padding-right:14px; }
  #caseTbody td,#caseTable thead button{ padding-left:8px; padding-right:8px; }
  .case-card{
    left:12px !important; right:12px; top:7vh !important; width:auto; max-height:86vh;
  }
  .legend{ display:none; }
}

/* ==========================================================================
   REDUCED MOTION
   ========================================================================== */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .sweep,.ping-halo{ display:none; }
  .badge-live .dot,.live-dot,.wm-blip{ animation:none; opacity:1; }
  .cal-rings i{ animation:none; opacity:.4; transform:scale(.75); }
  .feed-art i{ animation:none; opacity:.4; }
  .feed-art i:nth-child(2){ transform:scale(.72); }
  .feed-art i:nth-child(3){ transform:scale(.45); }
  html{ scroll-behavior:auto; }
}
