/* iecresults — "Ballot night". Colour rule: ink/slate UI, ONE accent (signal cyan = var(--primary)) for controls,
   focus and "live"; party colours are the only colour in charts/maps. Red only for the visitor counter (Michael's ask). */
*{box-sizing:border-box}
:root{--bg:var(--background);--ink:var(--foreground);--mut:var(--muted-foreground);--line:var(--border);--acc:var(--primary);
  --s1:var(--card);--s2:var(--popover);--s3:var(--muted);--line2:var(--input);--tx3:#626880;
  --acc-a:rgba(92,225,230,.13);--acc-g:rgba(92,225,230,.38);--red:#ff4757;
  --ease:cubic-bezier(.2,.8,.2,1);--spring:cubic-bezier(.34,1.56,.64,1);--mono:var(--font-mono)}
html,body{overflow-x:hidden;background:var(--bg)}
body{margin:0;font:14px/1.5 var(--font-sans);color:var(--ink);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background:radial-gradient(1000px 520px at 90% -12%,rgba(92,225,230,.07),transparent 60%),radial-gradient(800px 600px at -15% 110%,rgba(124,140,255,.05),transparent 60%)}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:none;color:#8ff0f2}
::selection{background:var(--acc);color:var(--primary-foreground)}
.ic{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.muted{color:var(--mut)}.pad{padding:24px}
@keyframes up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,71,87,.6)}70%{box-shadow:0 0 0 9px rgba(255,71,87,0)}100%{box-shadow:0 0 0 0 rgba(255,71,87,0)}}
@keyframes cpulse{0%{box-shadow:0 0 0 0 rgba(92,225,230,.55)}70%{box-shadow:0 0 0 9px rgba(92,225,230,0)}100%{box-shadow:0 0 0 0 rgba(92,225,230,0)}}
@keyframes shine{to{left:130%}}
@keyframes sweep{from{transform:translateX(-100%)}to{transform:translateX(250%)}}

/* ---------- header */
.top{position:sticky;top:0;z-index:1000;display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:10px 22px;min-height:64px;
  background:rgba(10,11,16,.78);backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--line)}
.brand{display:flex;gap:11px;align-items:center;color:var(--ink);white-space:nowrap}.brand:hover{color:var(--ink)}
.bmark{position:relative;width:34px;height:34px;border-radius:10px;background:var(--s2);border:1px solid var(--line2);flex:none;overflow:hidden}
.bmark::before{content:"";position:absolute;left:8px;right:8px;top:9px;height:16px;border:2px solid var(--ink);border-top:0;border-radius:0 0 4px 4px}
.bmark::after{content:"";position:absolute;left:14px;top:5px;width:6px;height:11px;background:var(--acc);border-radius:2px;transform:rotate(18deg);transition:transform .5s var(--spring)}
.brand:hover .bmark::after{transform:translateY(6px) rotate(0)}
.bw{display:flex;flex-direction:column;line-height:1.15}.bw b{font-size:15px;font-weight:800;letter-spacing:-.02em}
.bw em{font-style:normal;font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--mut)}
.home{display:inline-flex;align-items:center;gap:7px;color:var(--mut);border:1px solid var(--line2);border-radius:10px;padding:7px 12px;font-size:13px;font-weight:600;white-space:nowrap;transition:all .2s}
.home:hover{color:var(--ink);border-color:#3a4054;background:var(--s2)}
.search{flex:1;min-width:240px;position:relative;max-width:620px}
.search input{width:100%;height:40px;padding:0 14px 0 38px;border-radius:11px;border:1px solid var(--line2);background:var(--s1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23626880' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 12px 50%/16px no-repeat;
  color:var(--ink);font:inherit;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}
.search input::placeholder{color:var(--tx3)}
.search input:focus{border-color:var(--acc);box-shadow:0 0 0 4px var(--acc-a)}
.qres{position:absolute;top:46px;left:0;right:0;background:var(--s2);color:var(--ink);border:1px solid var(--line2);border-radius:14px;box-shadow:0 24px 60px -20px #000;max-height:440px;overflow:auto;padding:5px;animation:pop .18s var(--ease)}
.qres a{display:flex;gap:8px;align-items:center;padding:9px 11px;color:var(--ink);border-radius:9px;font-size:13.5px;transition:background .12s}
.qres a:hover,.qres a.on{background:var(--acc-a);color:var(--ink)}
.qres a.on{box-shadow:inset 2px 0 0 var(--acc)}
.qres a.muted{color:var(--mut);font-size:12.5px}
.qres small{color:var(--mut);margin-left:auto;white-space:nowrap;font-size:11.5px}
.upd{font-size:11.5px;color:var(--mut);white-space:nowrap;font-family:var(--mono)}

/* visitor counter — red, bold, big (kept on purpose) */
.visits{margin-left:auto;text-align:right;line-height:1.05}.visits a{color:var(--red);display:block}
.visits b{display:block;font-size:30px;font-weight:900;color:var(--red);letter-spacing:-.04em;text-shadow:0 0 24px rgba(255,71,87,.35)}
.visits span{font-size:10.5px;font-weight:700;color:#ff8a94;text-transform:uppercase;letter-spacing:.14em}
.visits i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);margin-right:5px;animation:pulse 1.4s infinite}

/* ---------- progress strip */
.prog{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;background:rgba(17,19,26,.6);border-bottom:1px solid var(--line)}
.pg{padding:14px 22px;border-right:1px solid var(--line);min-width:0;animation:up .5s var(--ease) both}
.pg:nth-child(2){animation-delay:.05s}.pg:nth-child(3){animation-delay:.1s}.pg:nth-child(4){animation-delay:.15s}
.pg:last-child{border-right:0}
.pg .lbl{font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);margin-bottom:3px}
.pg b{font-size:26px;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.pg .muted{font-size:12px}
.bar{position:relative;height:4px;background:var(--s3);border-radius:4px;overflow:hidden;margin-top:9px}
.bar i{position:relative;display:block;height:100%;background:var(--acc)!important;border-radius:4px;transition:width 1.2s var(--ease);box-shadow:0 0 12px var(--acc-g);overflow:hidden}
.bar i::after{content:"";position:absolute;top:0;bottom:0;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:sweep 2.6s var(--ease) infinite}

/* ---------- crumbs + headings */
.crumbs{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:16px 22px 0;font-size:13px;color:var(--mut)}
.crumbs a{margin-right:2px;color:var(--mut)}.crumbs a:hover{color:var(--ink)}
.backbtn{display:inline-flex;align-items:center;gap:6px;background:var(--s2)!important;border:1px solid var(--line2)!important;color:var(--ink)!important;padding:7px 13px;border-radius:10px;font-weight:600;transition:all .2s}
.backbtn:hover{border-color:var(--acc)!important;color:var(--acc)!important;transform:translateX(-2px)}
.acts{margin-left:auto;display:flex;gap:6px}
main{padding:10px 22px 40px;max-width:1500px;margin:0 auto}
main > *{animation:up .5s var(--ease) both}
h1{font-size:30px;font-weight:800;letter-spacing:-.04em;margin:8px 0 2px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;line-height:1.1}
.sub{color:var(--mut);margin-bottom:16px}

/* ---------- cards + grids */
.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px}
.hl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.grid>div,.hl>div{min-width:0}
.card{position:relative;background:var(--s1);border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin-bottom:16px;min-width:0;color:var(--card-foreground);
  transition:border-color .25s,transform .25s var(--ease);animation:up .55s var(--ease) both}
.card:hover{border-color:var(--line2)}
.grid > div:nth-child(2) .card,.hl > div:nth-child(2){animation-delay:.06s}.hl > div:nth-child(3){animation-delay:.12s}
.card h2{font-size:15px;font-weight:700;letter-spacing:-.015em;margin:0 0 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.card h2 .muted{font-weight:500;font-size:12px;overflow-wrap:anywhere}
.scroll{max-height:340px;overflow:auto;margin:0 -6px;padding:0 6px}
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px 16px;margin:8px 0}
.kv div{font-size:11.5px;color:var(--mut);padding:10px 12px;background:var(--s2);border:1px solid var(--line);border-radius:12px}
.kv b{display:block;font-size:19px;font-weight:800;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}

/* ---------- tables */
.tw{overflow:auto;max-height:640px}
table{width:100%;border-collapse:collapse;font-size:13px}
th{position:sticky;top:0;z-index:1;background:var(--s1);text-align:left;font-weight:600;color:var(--tx3);font-size:10px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid var(--line);padding:9px 8px;white-space:nowrap;cursor:default}
th.s{cursor:pointer;transition:color .15s}th.s:hover{color:var(--ink)}
td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.click{cursor:pointer}
tr.click td{transition:background .15s}
tr.click:hover td{background:var(--s2)}
tr.click td:first-child{box-shadow:inset 2px 0 0 transparent;transition:box-shadow .2s}
tr.click:hover td:first-child{box-shadow:inset 2px 0 0 var(--acc)}
tr.sel td{background:var(--acc-a)!important}
.sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px;vertical-align:-1px;flex:none}
.pn{white-space:nowrap}
.pbar{position:relative;height:18px;background:var(--s3);border-radius:6px;min-width:80px;overflow:hidden}
.pbar i{position:absolute;left:0;top:0;bottom:0;border-radius:6px;transition:width 1s var(--ease)}
.pbar span{position:absolute;right:6px;top:0;font-size:11px;line-height:18px;font-weight:600;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.6)}

/* ---------- badges */
.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;border:1px solid var(--line2);background:var(--s2);color:var(--mut);white-space:nowrap}
.badge.maj,.badge.dec{color:#6ee7b7;border-color:rgba(110,231,183,.3);background:rgba(110,231,183,.08)}
.badge.hung{color:#ff8a94;border-color:rgba(255,107,107,.3);background:rgba(255,107,107,.08)}
.badge.cnt{color:var(--acc);border-color:var(--acc-g);background:var(--acc-a)}
.badge.cnt::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc);margin-right:6px;animation:cpulse 1.6s infinite}
.badge.flip{color:#ffc56b;border-color:rgba(255,197,107,.3);background:rgba(255,197,107,.08)}
.up{color:#6ee7b7}.dn{color:#ff8a94}

/* ---------- map */
.map{height:480px;border-radius:14px;border:1px solid var(--line);background:#0d0f15;overflow:hidden}
.map.tall{height:580px}
.leaflet-container{font:inherit;background:#0d0f15}
.leaflet-control-zoom a{background:var(--s2)!important;color:var(--ink)!important;border-color:var(--line2)!important}
.leaflet-control-zoom a:hover{background:var(--s3)!important}
.leaflet-bar{border:1px solid var(--line2)!important;border-radius:10px!important;overflow:hidden;box-shadow:none!important}
.leaflet-control-attribution{background:rgba(10,11,16,.7)!important;color:var(--tx3)!important;font-size:10px}.leaflet-control-attribution a{color:var(--mut)!important}
.leaflet-tooltip{background:var(--s2);color:var(--ink);border:1px solid var(--line2);border-radius:10px;box-shadow:0 14px 36px -12px #000;padding:7px 10px}
.leaflet-tooltip-top:before{border-top-color:var(--line2)}.leaflet-tooltip-bottom:before{border-bottom-color:var(--line2)}
.leaflet-tooltip-left:before{border-left-color:var(--line2)}.leaflet-tooltip-right:before{border-right-color:var(--line2)}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--s2);color:var(--ink)}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;margin-top:10px;color:var(--mut)}

/* ---------- seats + charts */
.seatbar{display:flex;gap:2px;height:28px;border-radius:8px;overflow:hidden;position:relative;background:var(--s3);margin:8px 0 6px}
.seatbar.big{height:38px}
.seatbar i{display:block;height:100%;transition:width 1s var(--ease)}
.seatbar .half{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink);box-shadow:0 0 0 2px var(--bg)}
.pbar i,.bar i,.seatbar i{transition:width 1s var(--ease)}
.srows{display:flex;flex-direction:column;gap:7px}.srow{display:flex;align-items:center;gap:10px}.srow.click{cursor:pointer}
.slbl{width:130px;flex:none;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--mut)}
.sbar{flex:1;display:flex;gap:2px;height:20px;transition:transform .2s var(--ease)}.sbar i{height:100%;min-width:1px}
.sbar i:first-child{border-radius:6px 0 0 6px}.sbar i:last-child{border-radius:0 6px 6px 0}
.srow:hover .sbar{outline:2px solid var(--acc);outline-offset:2px;border-radius:6px}
.srow:hover .slbl{color:var(--ink)}
.oth{background:#3a4054}
.wcols{display:flex;gap:2px;height:200px;align-items:stretch}
.wcol{flex:1;display:flex;flex-direction:column;gap:2px;cursor:pointer;min-width:2px;transition:transform .15s var(--ease)}
.wcol i{display:block;min-height:1px}.wcol i:first-child{border-radius:4px 4px 0 0}
.wcol:hover{outline:2px solid var(--acc);outline-offset:1px;transform:translateY(-2px)}
.wax{display:flex;justify-content:space-between;font-size:11px;color:var(--tx3);margin-top:5px;font-family:var(--mono)}
.pbars{display:flex;flex-direction:column;gap:9px}.pbr{display:flex;align-items:center;gap:10px}.pbr .slbl{width:120px}
.pbw{flex:1;display:flex;flex-direction:column;gap:3px}.pbw i{display:block;height:8px;border-radius:0 5px 5px 0;min-width:1px;transition:width 1s var(--ease)}.pbw i.then{opacity:.3}
.pbv{width:100px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums}
.lsvg{width:100%;height:auto;display:block}.lsvg .grid{stroke:var(--line)}.lsvg .ax{font-size:10px;fill:var(--tx3);font-family:var(--mono)}
.lsvg .lb{font-size:11px;fill:var(--ink);font-weight:600}.lsvg .xh{stroke:var(--mut);stroke-width:1;stroke-dasharray:3 3}
.lsvg path{stroke-linecap:round;stroke-linejoin:round}
.ctip{position:fixed;z-index:4000;background:var(--s2);color:var(--ink);font-size:12px;line-height:1.55;padding:8px 11px;border-radius:10px;border:1px solid var(--line2);pointer-events:none;max-width:270px;box-shadow:0 18px 40px -14px #000}
.ctip small{color:var(--mut)}
.tip{font-size:12px;line-height:1.45}

/* ---------- filters + chips */
.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;align-items:center}
.filters input,.filters select{height:34px;padding:0 11px;border:1px solid var(--line2);border-radius:10px;font:inherit;font-size:13px;background:var(--bg);color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s}
.filters input:focus,.filters select:focus{border-color:var(--acc);box-shadow:0 0 0 4px var(--acc-a)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--line2);border-radius:999px;background:transparent;color:var(--mut);cursor:pointer;font:inherit;font-size:12px;font-weight:600;transition:all .2s var(--ease)}
.chip:hover{color:var(--ink);border-color:#3a4054;background:var(--s2)}
.chip:active{transform:scale(.95)}
.chip.on{background:var(--ink)!important;color:var(--bg)!important;border-color:var(--ink)!important}
.chip.wa{background:#25d366;border-color:#25d366;color:#05210f;position:relative;overflow:hidden}
.chip.wa:hover{box-shadow:0 0 0 4px rgba(37,211,102,.15)}
.chip.wa::after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg)}
.chip.wa:hover::after{animation:shine .8s var(--ease)}
.mlist{display:flex;flex-wrap:wrap;gap:6px}
.mlist a{border:1px solid var(--line2);border-radius:999px;padding:4px 11px;font-size:12px;color:var(--ink);transition:all .2s}
.mlist a:hover{border-color:var(--acc);background:var(--acc-a)}.mlist small{color:var(--mut)}

/* ---------- live feed */
.feed{display:flex;gap:10px;padding:10px 8px;border-radius:10px;color:var(--ink);animation:pop .5s var(--ease);transition:background .15s}
.feed + .feed{border-top:1px solid var(--line)}
.feed:hover{background:var(--s2);color:var(--ink)}
.feed .sw{margin-top:5px}.feed small{color:var(--mut)}
.feed.flip{background:rgba(255,197,107,.05)}.feed.flip:hover{background:rgba(255,197,107,.09)}
.flips{display:flex;flex-wrap:wrap;gap:5px 14px;font-size:12px;margin-bottom:8px}
.live{width:8px;height:8px;border-radius:50%;background:var(--red);display:inline-block;animation:pulse 1.4s infinite}

/* ---------- coalition builder */
.cparties{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.cp{display:flex;align-items:center;border:1px solid var(--line2);background:var(--s2);color:var(--ink);border-radius:999px;padding:6px 12px;cursor:pointer;font:inherit;font-size:13px;transition:transform .25s var(--spring),border-color .2s,background .2s}
.cp:hover{transform:translateY(-2px);border-color:#3a4054}
.cp.on{background:var(--ink)!important;color:var(--bg)!important;border-color:var(--ink)!important;transform:scale(1.03)}
.cmsg{font-size:14px;margin:6px 0}.cmsg.ok{color:#6ee7b7;animation:pop .4s var(--spring)}

/* ---------- toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--s2);border:1px solid var(--line2);color:var(--ink);padding:11px 18px;border-radius:14px;z-index:3000;animation:pop .35s var(--spring);box-shadow:0 24px 60px -18px #000}

/* ---------- chat */
.chatbtn{position:fixed;right:20px;bottom:20px;z-index:2500;display:flex;gap:8px;align-items:center;overflow:hidden;background:var(--acc);color:var(--primary-foreground);border:0;border-radius:999px;padding:13px 20px;font:inherit;font-size:14.5px;font-weight:800;
  box-shadow:0 0 0 0 var(--acc-g),0 14px 40px -10px rgba(92,225,230,.5);cursor:pointer;transition:transform .3s var(--spring),box-shadow .3s;animation:cpulse 2.4s 1s infinite}
.chatbtn:hover{transform:translateY(-3px) scale(1.03)}
.chatbtn b{background:var(--primary-foreground);color:var(--acc);border-radius:999px;padding:0 8px;font-size:12px}.chatbtn b:empty{display:none}
.chatbox{position:fixed;right:20px;bottom:20px;z-index:2600;width:380px;max-width:calc(100vw - 24px);height:560px;max-height:calc(100vh - 90px);background:var(--s1);border:1px solid var(--line2);border-radius:20px;box-shadow:0 30px 80px -20px #000;display:flex;flex-direction:column;overflow:hidden;animation:pop .25s var(--spring);transform-origin:bottom right}
.chatbox[hidden]{display:none}
.chead{display:flex;align-items:center;gap:8px;padding:13px 15px;background:var(--s2);color:var(--ink);border-bottom:1px solid var(--line);font-weight:700}
.chead span{font-size:11px;color:var(--mut);margin-left:auto;font-weight:500}
.chead button{background:none;border:0;color:var(--mut);font-size:16px;cursor:pointer;border-radius:8px;padding:2px 6px}.chead button:hover{color:var(--ink);background:var(--s3)}
.crules{font-size:11px;color:var(--tx3);padding:7px 15px;border-bottom:1px solid var(--line);background:transparent}
.clist{flex:1;overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.cmsg2{background:var(--s2);border:1px solid var(--line);border-radius:14px 14px 14px 4px;padding:8px 11px;font-size:13px;max-width:90%;overflow-wrap:anywhere;animation:pop .3s var(--ease)}
.cmsg2.mine{background:var(--acc-a);border-color:var(--acc-g);align-self:flex-end;border-radius:14px 14px 4px 14px}
.cm{font-size:11px;color:var(--mut);display:flex;gap:5px;align-items:center;margin-bottom:2px}.cm b{color:var(--ink)}.cctx{font-size:11px}
.cact{margin-left:auto;display:flex;gap:2px}.cact button{background:none;border:0;cursor:pointer;color:var(--tx3);font-size:12px;padding:0 3px}.cact button:hover{color:#ff8a94}
.cform{display:flex;gap:6px;padding:10px;border-top:1px solid var(--line)}
.cform input{flex:1;height:40px;padding:0 12px;border:1px solid var(--line2);border-radius:11px;font:inherit;font-size:14px;background:var(--bg);color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s}
.cform input:focus{border-color:var(--acc);box-shadow:0 0 0 4px var(--acc-a)}
.cform button{background:var(--acc);color:var(--primary-foreground);border:0;border-radius:11px;padding:0 16px;font:inherit;font-weight:800;cursor:pointer;transition:transform .2s var(--spring)}
.cform button:hover{transform:scale(1.04)}.cform button:active{transform:scale(.95)}
.cerr{color:#ff8a94;font-size:12px;padding:0 12px 6px}.cerr:empty{display:none}
.cacc{font-size:12px;padding:8px 15px;border-bottom:1px solid var(--line);display:flex;gap:6px;align-items:center;flex-wrap:wrap;color:var(--mut)}
.clink{background:none;border:0;color:var(--acc);cursor:pointer;font:inherit;font-size:12px;font-weight:600;padding:0}
.cjoin{display:flex;flex-wrap:wrap;gap:6px;padding:10px 15px;border-bottom:1px solid var(--line);background:var(--acc-a)}.cjoin[hidden]{display:none}
.cjoin input,.cjoin select{height:34px;padding:0 10px;border:1px solid var(--line2);border-radius:9px;background:var(--bg);color:var(--ink);font:inherit;font-size:13px;outline:none}
.cjoin input{flex:1;min-width:120px}.cjoin select{max-width:160px}
.cjoin #jgo{background:var(--acc);color:var(--primary-foreground);border:0;border-radius:9px;padding:0 14px;font:inherit;font-weight:800;cursor:pointer}
.cjoin .cerr{width:100%;padding:0}
.ctally{display:flex;flex-wrap:wrap;gap:3px 10px;font-size:11px;padding:5px 15px;color:var(--mut)}.ctally:empty{display:none}
.cparty{color:#fff;font-size:10px;font-weight:700;border-radius:999px;padding:1px 7px;text-shadow:0 1px 1px rgba(0,0,0,.4)}.guest{font-style:italic}

/* ---------- footer */
.foot{padding:18px 22px 90px;color:var(--tx3);font-size:12px;max-width:1500px;margin:0 auto;border-top:1px solid var(--line)}

/* scrollbars */
*{scrollbar-width:thin;scrollbar-color:#2d3242 transparent}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#2d3242;border-radius:8px}::-webkit-scrollbar-track{background:transparent}

@media(max-width:1000px){.grid,.hl{grid-template-columns:1fr}}
@media(max-width:700px){
  .top{gap:10px;padding:10px 12px}.acts{margin-left:0}.upd{white-space:normal}.home{padding:7px 10px}
  .visits{order:-1;margin-left:0;width:100%;text-align:left}.visits a{display:flex;align-items:baseline;gap:8px}.visits b{display:inline;font-size:26px}.visits span{font-size:10px}
  .prog{grid-template-columns:repeat(2,1fr)}.pg{padding:11px 14px;border-bottom:1px solid var(--line)}.pg b{font-size:20px}
  main{padding:8px 12px 30px}.card{padding:13px;border-radius:16px}.kv{grid-template-columns:repeat(2,1fr)}
  .map{height:360px}.map.tall{height:420px}h1{font-size:22px}.crumbs{padding:12px 12px 0}
  .slbl,.pbr .slbl{width:90px}.pbv{width:80px}
  .chatbox{right:0;bottom:0;width:100vw;max-width:100vw;height:78vh;border-radius:20px 20px 0 0}.chatbtn{right:12px;bottom:12px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* chat: replies + inline report confirm (06/11) */
.ctxt{white-space:pre-wrap}
.cact{opacity:.45;transition:opacity .2s}.cmsg2:hover .cact,.cmsg2:focus-within .cact{opacity:1}
@media(hover:none){.cact{opacity:1}}
.cact .crep{font:inherit;font-size:11px;font-weight:700;color:var(--acc);border:1px solid var(--acc-g);border-radius:999px;padding:0 8px;margin-right:4px;line-height:18px}
.cact .crep:hover{background:var(--acc-a);color:var(--acc)!important}
.cquote{display:block;width:100%;text-align:left;font:inherit;font-size:12px;color:var(--mut);background:rgba(255,255,255,.03);border:0;border-left:3px solid var(--line2);border-radius:6px;padding:4px 8px;margin:4px 0 5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cquote b{color:var(--ink);margin-right:6px;font-weight:600}.cquote:hover{background:rgba(255,255,255,.06)}
.cmsg2.replying{border-color:var(--acc-g);box-shadow:0 0 0 3px var(--acc-a)}
.cmsg2.hit{animation:chit 1.6s var(--ease)}@keyframes chit{0%,30%{box-shadow:0 0 0 3px var(--acc-g)}100%{box-shadow:0 0 0 0 transparent}}
.cask{margin-top:7px;padding-top:7px;border-top:1px solid var(--line);font-size:12px;color:var(--mut);display:flex;gap:6px;align-items:center;flex-wrap:wrap;animation:pop .2s var(--ease)}
.cask button{font:inherit;font-size:12px;font-weight:700;border-radius:8px;padding:3px 10px;cursor:pointer;border:1px solid var(--line2);background:var(--s3);color:var(--ink)}
.cask button[data-ry]{background:#ff4757;border-color:#ff4757;color:#fff}
.creply{display:flex;align-items:center;gap:8px;padding:8px 12px 0;font-size:12px;color:var(--mut);animation:pop .2s var(--ease)}
.creply[hidden]{display:none}.creply span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid var(--acc);padding-left:8px}
.creply b{color:var(--ink)}.creply button{background:none;border:0;color:var(--mut);cursor:pointer;font-size:14px;border-radius:6px;padding:0 5px}.creply button:hover{color:var(--ink);background:var(--s3)}
