:root{--bg:#07111f;--panel:#0d1b2c;--panel2:#10243a;--text:#edf6ff;--muted:#8ea6bc;--line:#1f3951;--accent:#35d0ff;--good:#32d583;--danger:#ff5b6e;--warn:#f7c948}*{box-sizing:border-box}body{margin:0;font:15px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:linear-gradient(180deg,#06101c,#0a1725 45%,#07111f);color:var(--text);min-height:100vh}a{color:var(--accent);text-decoration:none}header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:16px 28px;background:rgba(5,15,26,.88);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}header nav{display:flex;align-items:center;gap:18px}header form{display:inline}main{max-width:1500px;margin:auto;padding:28px}.narrow{max-width:760px}.hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0}.hero h1{font-size:34px;margin:5px 0}.hero p,.panel p{color:var(--muted)}.kicker{letter-spacing:.18em;font-size:11px;color:var(--accent);font-weight:800}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.net-card,.panel{display:block;background:linear-gradient(180deg,rgba(16,36,58,.96),rgba(10,27,44,.96));border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 16px 50px rgba(0,0,0,.18)}.net-card{color:var(--text);transition:.18s}.net-card:hover{transform:translateY(-2px);border-color:#315b7d}.status,.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:#18334a;color:#b9cee0;font-size:11px;text-transform:uppercase;font-weight:800;letter-spacing:.06em}.status.open,.net-card.open .status{background:rgba(50,213,131,.13);color:var(--good)}.status.closed,.net-card.closed .status{background:rgba(142,166,188,.12);color:var(--muted)}button,.button{border:0;border-radius:10px;padding:11px 15px;background:linear-gradient(135deg,#22bce9,#2f8cff);color:white;font-weight:800;cursor:pointer}.danger{background:linear-gradient(135deg,#f34860,#d92746)}.ghost{background:#14283c}.grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(320px,.8fr);gap:18px}.grid aside{display:flex;flex-direction:column;gap:18px}.panel-head{display:flex;align-items:center;justify-content:space-between}.checkin{display:flex;gap:10px;margin:16px 0}.checkin input{font-size:22px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.toolbar,.search{display:flex;gap:10px;margin:12px 0 16px}.toolbar input,.search input{flex:1}input,select,textarea{width:100%;background:#071522;color:var(--text);border:1px solid #26435d;border-radius:10px;padding:11px 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(53,208,255,.1)}label{display:block;margin-bottom:14px;color:#c9d8e5;font-weight:700}label input,label textarea{margin-top:6px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:11px 12px;text-align:left;border-bottom:1px solid rgba(31,57,81,.7)}th{position:sticky;top:0;background:#102238;color:#8fa9bf;text-transform:uppercase;letter-spacing:.07em;font-size:11px}tbody tr:hover{background:rgba(53,208,255,.04)}#map{height:380px;border-radius:12px;overflow:hidden;background:#081523}.recipient-list{padding:0;list-style:none}.recipient-list li{padding:8px 0;border-bottom:1px solid var(--line)}.recipient-list small{display:block;color:var(--muted)}.auth{display:grid;place-items:center;padding:24px}.auth-card{width:min(460px,100%);padding:30px;background:rgba(13,27,44,.95);border:1px solid var(--line);border-radius:20px;box-shadow:0 35px 100px rgba(0,0,0,.4)}.auth-card h1{margin-bottom:4px}.auth-card>p{color:var(--muted)}.auth-card button{width:100%;margin:6px 0 16px}.alert{background:rgba(255,91,110,.12);border:1px solid rgba(255,91,110,.4);color:#ff9baa;padding:10px;border-radius:10px;margin:12px 0}@media(max-width:900px){.grid{grid-template-columns:1fr}.hero{align-items:flex-start;flex-direction:column}header{padding:14px 16px}main{padding:18px}.toolbar{flex-direction:column}}


/* Full-screen geographic map */
.map-full-body{margin:0;min-height:100vh;overflow:hidden;background:#0b1220}
.map-full-shell{height:100vh;display:flex;flex-direction:column}
.map-full-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 18px;background:rgba(10,18,32,.97);border-bottom:1px solid rgba(255,255,255,.08);z-index:1000}
.map-full-toolbar h1{margin:2px 0 0;font-size:1.25rem}
.map-full-eyebrow{font-size:.72rem;letter-spacing:.12em;font-weight:800;opacity:.65}
.map-full-meta{font-size:.86rem;opacity:.72;margin-top:3px}
.map-full-actions{display:flex;align-items:center;gap:12px}
.map-count{font-size:.85rem;opacity:.78;white-space:nowrap}
#fullMap{display:block;flex:1 1 auto;width:100%;height:calc(100vh - 92px);min-height:420px;background:#0b1220}
.map-popup{line-height:1.45}
.map-popup b{font-size:1.05rem}
@media (max-width:720px){.map-full-toolbar{align-items:flex-start;flex-direction:column}.map-full-actions{width:100%;justify-content:space-between}.map-full-meta{font-size:.76rem}}

/* Check-in status + edit controls */
.checkin{align-items:center;flex-wrap:wrap}.checkin #callsign{flex:1 1 260px}.checkin #checkinStatus{flex:0 1 180px;width:auto}.row-actions{display:flex;gap:6px;white-space:nowrap}.danger-soft{background:rgba(255,91,110,.12);color:#ff8b98}.quick-status{width:auto;min-width:126px;padding:7px 30px 7px 9px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.checkin-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase}.status-checked_in{background:rgba(50,213,131,.13);color:#63e6a4;border-color:rgba(50,213,131,.35)}.status-monitoring{background:rgba(53,208,255,.12);color:#65dbff;border-color:rgba(53,208,255,.35)}.status-traffic{background:rgba(247,201,72,.13);color:#ffe083;border-color:rgba(247,201,72,.35)}.status-priority{background:rgba(255,153,51,.15);color:#ffb36b;border-color:rgba(255,153,51,.38)}.status-emergency{background:rgba(255,91,110,.16);color:#ff8594;border-color:rgba(255,91,110,.45)}.status-relay{background:rgba(167,139,250,.15);color:#c1adff;border-color:rgba(167,139,250,.38)}.status-late{background:rgba(142,166,188,.15);color:#c2d1de;border-color:rgba(142,166,188,.32)}.status-checked_out,.status-no_contact{background:rgba(142,166,188,.1);color:#8ea6bc;border-color:rgba(142,166,188,.25)}
.edit-dialog{width:min(860px,calc(100vw - 28px));max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:18px;background:#0d1b2c;color:var(--text);padding:0;box-shadow:0 35px 100px rgba(0,0,0,.55)}.edit-dialog::backdrop{background:rgba(0,0,0,.68);backdrop-filter:blur(4px)}.edit-dialog form{padding:22px}.dialog-head,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-head h2{margin:3px 0 18px}.dialog-head .ghost{font-size:20px;padding:6px 12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.form-grid .span-2{grid-column:1/-1}.dialog-actions{justify-content:flex-end;margin-top:8px;padding-top:16px;border-top:1px solid var(--line)}@media(max-width:680px){.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.quick-status{min-width:112px}}
.map-message{height:100%;min-height:260px;display:grid;place-items:center;padding:24px;text-align:center;color:var(--muted);border:1px dashed rgba(142,166,188,.25);border-radius:12px}.roster-error{text-align:center;color:#ff9baa;padding:24px!important}.checkin-status-wrap{display:flex;flex-direction:column;gap:5px;flex:0 1 190px}.checkin-status-label{font-size:10px;font-weight:900;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.checkin-status-wrap #checkinStatus{width:100%;min-width:180px}

/* v0.2.0 roster enhancements */
.station-icon-cell{font-size:22px;text-align:center;min-width:54px}.quick-status{cursor:pointer}.quick-status:hover{border-color:var(--accent)}.checkin-status-wrap select{min-height:44px}table{min-width:1120px}

.quick-station{width:auto;min-width:150px;padding:7px 30px 7px 9px;border-radius:999px;font-size:12px;font-weight:800;cursor:pointer}.quick-station:hover{border-color:var(--accent)}

/* v0.2.2 multi-user authentication */
.user-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;color:#bcd0df;font-size:12px;text-transform:capitalize;background:#0b1c2d}.small-btn{padding:7px 10px;font-size:12px}.notice{margin:0 0 18px;padding:11px 13px;border:1px solid rgba(50,213,131,.4);background:rgba(50,213,131,.1);color:#72e6ad;border-radius:10px}.admin-create{margin-bottom:18px}.admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;align-items:end}.admin-grid label{margin:0}.checkbox-line{display:flex!important;align-items:center;gap:9px;min-height:44px}.checkbox-line input{width:auto;margin:0}.admin-actions{display:flex;align-items:end}.admin-actions button{width:100%}.user-admin-list{display:flex;flex-direction:column;gap:14px}.user-admin-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:rgba(7,21,34,.55)}.user-admin-heading{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:7px;border-bottom:1px solid var(--line)}.user-admin-heading>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.user-admin-heading small{color:var(--muted)}.warn-badge{background:rgba(247,201,72,.13);color:#ffe083}.user-admin-danger{display:flex;justify-content:flex-end;gap:9px;padding-top:12px;margin-top:12px;border-top:1px solid var(--line)}.user-admin-danger form{margin:0}@media(max-width:950px){.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.admin-grid{grid-template-columns:1fr}.user-admin-heading{align-items:flex-start;flex-direction:column}header nav{gap:9px;flex-wrap:wrap}.user-chip{display:none}}

/* v0.2.4 wide-layout and compact controls */
main{max-width:none;width:100%;padding:24px 26px}
.grid{grid-template-columns:minmax(0,1fr) minmax(340px,420px);gap:20px;align-items:start}
.grid>section.panel{min-width:0}
.checkin{display:grid;grid-template-columns:minmax(280px,1.2fr) minmax(220px,.55fr) minmax(220px,.6fr) auto;align-items:center;gap:10px;flex-wrap:nowrap}
.checkin #callsign{min-width:0;width:100%}
.compact-select{display:flex;align-items:center;gap:8px;min-width:0;background:#0a1a2a;border:1px solid #26435d;border-radius:10px;padding-left:10px;height:46px}
.compact-select>span{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.compact-select select{border:0;background:transparent;box-shadow:none!important;padding:9px 30px 9px 2px;min-width:0;height:44px}
.compact-select select:focus{border:0;box-shadow:none!important}
.toolbar{align-items:center}.toolbar #filter{flex:1 1 760px;min-width:420px;font-size:16px}.toolbar #sort{flex:0 0 210px;width:210px}
.search-wide{width:100%;max-width:none}.search-wide input{flex:1 1 auto;min-width:600px;font-size:17px}.search-wide button{flex:0 0 auto}
.quick-status,.quick-station{border-radius:9px;text-transform:none;letter-spacing:0;min-height:36px}.quick-status{min-width:145px}.quick-station{min-width:160px}
.close-net-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:520px}.close-net-message{max-width:520px;padding:10px 12px;border-radius:10px;font-size:13px;line-height:1.35}.close-net-message.error{display:block;background:rgba(255,91,110,.12);border:1px solid rgba(255,91,110,.42);color:#ff9baa}.close-net-message.success{display:block;background:rgba(50,213,131,.1);border:1px solid rgba(50,213,131,.38);color:#72e6ad}
button[disabled]{opacity:.62;cursor:not-allowed}
@media(max-width:1200px){.grid{grid-template-columns:1fr}.grid aside{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)}.checkin{grid-template-columns:minmax(260px,1fr) minmax(190px,.5fr) minmax(190px,.55fr) auto}}
@media(max-width:820px){main{padding:18px}.grid aside{display:flex}.checkin{grid-template-columns:1fr 1fr}.checkin #callsign{grid-column:1/-1}.checkin button{grid-column:1/-1}.toolbar{flex-direction:column}.toolbar #filter,.toolbar #sort,.search-wide input{min-width:0;width:100%;flex:1 1 auto}.search-wide{flex-direction:column}.close-net-wrap{align-items:stretch;width:100%;max-width:none}.close-net-wrap form,.close-net-wrap button{width:100%}}

/* v0.2.5 traffic-turn console + visual polish */
:root{--traffic:#f7c948;--onair:#ff5b6e;--complete:#32d583}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 0%,rgba(53,208,255,.08),transparent 34%),radial-gradient(circle at 92% 12%,rgba(123,97,255,.07),transparent 30%);z-index:-1}
.hero{padding:20px 4px 18px}.hero h1{font-size:clamp(30px,3vw,44px);letter-spacing:-.03em}.panel,.traffic-console{box-shadow:0 20px 60px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.025)}
.panel{border-color:rgba(49,91,125,.68)}.panel-head h2,.traffic-console h2{margin:0}
.traffic-console{margin:0 0 20px;padding:16px 18px 18px;border:1px solid rgba(49,91,125,.72);border-radius:18px;background:linear-gradient(145deg,rgba(13,27,44,.98),rgba(8,24,40,.96));overflow:hidden;position:relative}
.traffic-console:after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--traffic),var(--accent),transparent);opacity:.8}
.traffic-console-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:13px}.traffic-summary{display:flex;gap:8px;flex-wrap:wrap}.traffic-summary span{padding:6px 10px;border:1px solid var(--line);background:#081726;border-radius:999px;color:var(--muted);font-size:12px}.traffic-summary b{color:var(--text);font-size:14px;margin-right:3px}
.traffic-board{display:grid;grid-template-columns:minmax(270px,.75fr) minmax(0,2fr);gap:12px}.on-air-card{display:flex;align-items:center;gap:13px;min-height:82px;padding:13px 15px;border:1px solid rgba(142,166,188,.18);border-radius:14px;background:rgba(7,21,34,.62);transition:.2s}.on-air-card.active{border-color:rgba(255,91,110,.62);background:linear-gradient(135deg,rgba(255,91,110,.16),rgba(255,91,110,.045));box-shadow:0 0 0 1px rgba(255,91,110,.08),0 12px 36px rgba(255,91,110,.08)}
.on-air-pulse{width:13px;height:13px;border-radius:50%;background:#61768a;box-shadow:0 0 0 5px rgba(97,118,138,.12);flex:0 0 auto}.on-air-card.active .on-air-pulse{background:var(--onair);box-shadow:0 0 0 6px rgba(255,91,110,.15);animation:onAirPulse 1.15s infinite}.on-air-label{display:block;color:#8ea6bc;font-size:9px;letter-spacing:.18em;font-weight:900}.on-air-card.active .on-air-label{color:#ff8996}.on-air-card strong{display:block;margin:2px 0;font-size:22px;line-height:1.05}.on-air-card small{color:var(--muted)}
@keyframes onAirPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 5px rgba(255,91,110,.14)}50%{transform:scale(1.14);box-shadow:0 0 0 10px rgba(255,91,110,.03)}}
.traffic-queue{display:flex;gap:8px;align-items:center;min-width:0;overflow-x:auto;padding:4px 2px 6px}.traffic-empty{color:var(--muted);font-size:13px}.traffic-chip{min-width:108px;text-align:left;padding:9px 11px;border-radius:11px;border:1px solid var(--line);background:#081726;color:var(--text);box-shadow:none}.traffic-chip span{display:block;font-weight:900;letter-spacing:.03em}.traffic-chip small{display:block;margin-top:2px;color:var(--muted);font-size:10px}.traffic-chip.turn-waiting{border-color:rgba(247,201,72,.38);background:rgba(247,201,72,.07)}.traffic-chip.turn-completed{border-color:rgba(50,213,131,.28);background:rgba(50,213,131,.06)}
.turn-row.has-traffic td:first-child{box-shadow:inset 3px 0 0 rgba(247,201,72,.75)}.turn-row.turn-row-on_air{background:linear-gradient(90deg,rgba(255,91,110,.12),rgba(255,91,110,.025) 42%,transparent)!important}.turn-row.turn-row-on_air td:first-child{box-shadow:inset 4px 0 0 var(--onair)}.turn-row.turn-row-completed{background:rgba(50,213,131,.025)}.turn-row.turn-row-completed td:first-child{box-shadow:inset 3px 0 0 rgba(50,213,131,.52)}
.traffic-turn-cell{min-width:130px}.turn-btn{width:auto;min-width:112px;min-height:35px;padding:7px 10px;border-radius:9px;font-size:11px;letter-spacing:.01em;box-shadow:none}.turn-waiting{background:rgba(247,201,72,.13);border:1px solid rgba(247,201,72,.35);color:#ffe083}.turn-on_air{background:rgba(255,91,110,.17);border:1px solid rgba(255,91,110,.45);color:#ff9eaa}.turn-completed{background:rgba(50,213,131,.12);border:1px solid rgba(50,213,131,.34);color:#74e7af}.turn-pill{display:inline-flex;padding:6px 9px;border-radius:9px;font-size:11px;font-weight:850}.traffic-na{color:#60798e}
.table-wrap{background:rgba(4,15,25,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.02)}th{background:rgba(16,34,56,.97);backdrop-filter:blur(10px)}tbody tr{transition:background .15s ease}tbody td{vertical-align:middle}
.checkin{padding:10px;border:1px solid rgba(49,91,125,.45);border-radius:14px;background:rgba(7,21,34,.55)}.toolbar{padding:2px 0}.toolbar #filter{background:#081726}
@media(max-width:980px){.traffic-board{grid-template-columns:1fr}.traffic-console-head{align-items:flex-start;flex-direction:column}.traffic-summary{width:100%}}

/* v0.2.7 public read-only live viewer */
.public-view-body{background:radial-gradient(circle at 15% -5%,rgba(53,208,255,.12),transparent 32%),radial-gradient(circle at 95% 12%,rgba(123,97,255,.09),transparent 28%),linear-gradient(180deg,#050d17,#081522 48%,#06101c);min-height:100vh}
.public-header{padding:14px 24px;border-bottom:1px solid rgba(49,91,125,.5);background:rgba(4,13,23,.82);box-shadow:0 10px 40px rgba(0,0,0,.18)}.public-brand{display:flex;align-items:center;gap:11px;color:var(--text)}.public-brand>span:last-child{display:flex;flex-direction:column;line-height:1.1}.public-brand small{margin-top:3px;color:var(--muted);font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:800}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#24c7f0,#4778ff);box-shadow:0 8px 28px rgba(53,208,255,.18);font-size:11px;font-weight:950;letter-spacing:.06em}.viewer-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;border:1px solid rgba(53,208,255,.24);background:rgba(53,208,255,.08);color:#8fe7ff;font-size:10px;font-weight:900;letter-spacing:.12em}.public-main{width:100%;max-width:none;padding:24px 28px 36px}.public-hero,.public-net-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:30px 4px 22px}.public-hero h1,.public-net-hero h1{font-size:clamp(34px,4vw,54px);letter-spacing:-.04em;margin:5px 0}.public-hero p,.public-net-hero p{color:var(--muted);font-size:16px;margin:0}.public-live-badge{display:flex;align-items:center;gap:9px;padding:9px 13px;border:1px solid rgba(50,213,131,.28);background:rgba(50,213,131,.07);border-radius:999px;color:#79e6b1;font-size:12px;font-weight:800;white-space:nowrap}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 5px rgba(50,213,131,.1);animation:publicLive 1.5s infinite}@keyframes publicLive{50%{box-shadow:0 0 0 10px rgba(50,213,131,0)}}
.public-net-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}.public-net-card{position:relative;overflow:hidden;padding:22px;border:1px solid rgba(49,91,125,.62);border-radius:20px;background:linear-gradient(155deg,rgba(16,36,58,.96),rgba(8,24,40,.96));color:var(--text);box-shadow:0 24px 65px rgba(0,0,0,.22);transition:.18s ease}.public-net-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#536b80}.public-net-card.open:before{background:var(--good)}.public-net-card:hover{transform:translateY(-3px);border-color:#3c7297;box-shadow:0 30px 80px rgba(0,0,0,.3)}.public-card-top,.public-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.public-date{color:var(--muted);font-size:12px}.public-net-card h2{margin:17px 0 6px;font-size:24px;letter-spacing:-.02em}.public-net-card p{margin:0;color:var(--muted)}.public-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.public-stats span{display:flex;flex-direction:column;padding:11px;background:rgba(5,16,28,.56);border:1px solid rgba(49,91,125,.38);border-radius:12px}.public-stats b{font-size:22px}.public-stats small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em}.public-card-footer{padding-top:13px;border-top:1px solid rgba(49,91,125,.45);font-size:12px}.public-card-footer span{color:var(--muted)}.public-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:70px;border:1px dashed var(--line);border-radius:18px;color:var(--muted)}.public-empty strong{color:var(--text);font-size:20px}
.public-net-titleline{display:flex;align-items:center;gap:10px}.public-updated{color:var(--muted);font-size:11px}.public-metrics{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-bottom:14px}.public-metrics article{padding:15px 17px;border:1px solid rgba(49,91,125,.55);border-radius:16px;background:rgba(9,26,43,.86);box-shadow:0 14px 38px rgba(0,0,0,.13)}.public-metrics span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:900}.public-metrics strong{display:block;margin-top:3px;font-size:25px}.public-metrics .metric-traffic strong{color:#ffe083}.public-metrics .metric-onair strong{color:#ff9daa}.public-metrics .metric-complete strong{color:#74e7af}
.public-onair{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding:14px 18px;border:1px solid rgba(49,91,125,.55);border-radius:16px;background:rgba(8,24,40,.82)}.public-onair.active{border-color:rgba(255,91,110,.52);background:linear-gradient(90deg,rgba(255,91,110,.13),rgba(8,24,40,.88));box-shadow:0 14px 42px rgba(255,91,110,.06)}.public-onair-pulse{width:12px;height:12px;border-radius:50%;background:#61768a}.public-onair.active .public-onair-pulse{background:var(--danger);animation:onAirPulse 1.15s infinite}.public-onair span{display:block;color:var(--muted);font-size:9px;letter-spacing:.17em;font-weight:900}.public-onair strong{display:block;font-size:20px}.public-onair small{color:var(--muted)}
.public-content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,420px);gap:18px;align-items:start}.public-panel{padding:18px;border:1px solid rgba(49,91,125,.58);border-radius:18px;background:linear-gradient(160deg,rgba(14,31,50,.96),rgba(8,23,38,.96));box-shadow:0 22px 65px rgba(0,0,0,.19)}.public-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.public-panel-head h2{margin:2px 0 0}.public-side{display:flex;flex-direction:column;gap:18px}.public-toolbar{display:flex;gap:10px;margin:15px 0}.public-toolbar input{flex:1;font-size:16px;min-width:420px}.public-toolbar select{width:190px}.public-table{min-width:1050px}.public-table th{top:0}.public-table td{padding:12px}.public-call{font-size:16px;letter-spacing:.035em}.public-dmr{display:block;color:var(--muted);font-size:9px;margin-top:2px}.public-type{white-space:nowrap}.public-row.turn-row-on_air{background:linear-gradient(90deg,rgba(255,91,110,.12),transparent 40%)}.public-row.has-traffic td:first-child{box-shadow:inset 3px 0 0 rgba(247,201,72,.7)}.public-row.turn-row-completed td:first-child{box-shadow:inset 3px 0 0 rgba(50,213,131,.55)}#publicMap{height:390px;border-radius:13px;background:#071522;overflow:hidden}.public-traffic-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.public-traffic-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 11px;border:1px solid rgba(247,201,72,.25);background:rgba(247,201,72,.055);border-radius:11px}.public-traffic-item span:first-child{display:flex;flex-direction:column}.public-traffic-item small{color:var(--muted)}
@media(max-width:1100px){.public-content-grid{grid-template-columns:1fr}.public-side{display:grid;grid-template-columns:1fr 1fr}.public-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.public-main{padding:16px}.public-header{padding:12px 14px}.public-header nav .viewer-pill{display:none}.public-hero,.public-net-hero{align-items:flex-start;flex-direction:column;padding-top:20px}.public-net-grid{grid-template-columns:1fr}.public-side{display:flex}.public-toolbar{flex-direction:column}.public-toolbar input,.public-toolbar select{width:100%;min-width:0}.public-metrics{grid-template-columns:1fr 1fr}.public-stats{grid-template-columns:1fr 1fr 1fr}.public-live-badge{align-self:flex-start}}


/* v0.2.8 full-map ruler / local measurements */
.map-full-shell{position:relative}.map-ruler-panel{position:absolute;z-index:1100;right:18px;top:98px;width:min(360px,calc(100vw - 36px));max-height:calc(100vh - 120px);overflow:auto;padding:14px;border:1px solid rgba(66,115,151,.72);border-radius:16px;background:rgba(5,17,29,.94);backdrop-filter:blur(18px);box-shadow:0 22px 70px rgba(0,0,0,.42)}.ruler-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.ruler-head span{display:block;color:#72dfff;font-size:9px;letter-spacing:.17em;font-weight:950}.ruler-head strong{display:block;font-size:18px}.ruler-collapse{width:34px;height:34px;padding:0;background:#14283c}.ruler-controls{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:7px;margin:12px 0}.ruler-controls button{padding:9px 8px;font-size:11px}.ruler-controls button.active{background:linear-gradient(135deg,#f7c948,#ef8f2f);color:#09131f}.ruler-controls button:disabled{opacity:.38;cursor:not-allowed}.ruler-readout{padding:12px;border:1px solid rgba(53,208,255,.23);border-radius:12px;background:rgba(53,208,255,.055)}.ruler-readout span,.ruler-readout small{display:block;color:var(--muted);font-size:10px}.ruler-readout strong{display:block;margin:1px 0;font-size:27px;letter-spacing:-.03em}.ruler-segments{display:flex;flex-direction:column;gap:6px;margin-top:9px}.ruler-segment{display:grid;grid-template-columns:1fr auto;gap:1px 8px;padding:8px 10px;border-radius:9px;background:#081726;border:1px solid rgba(49,91,125,.38)}.ruler-segment span{font-size:11px;color:var(--muted)}.ruler-segment b{font-size:11px}.ruler-segment small{grid-column:2;color:var(--muted);font-size:9px;text-align:right}.ruler-saved-head{display:flex;justify-content:space-between;align-items:center;margin:14px 1px 7px}.ruler-saved-head strong{font-size:12px}.ruler-saved-head span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.ruler-saved{display:flex;flex-direction:column;gap:6px}.saved-measurement{display:grid;grid-template-columns:1fr 30px;gap:6px}.saved-open{display:grid;grid-template-columns:1fr auto;gap:1px 8px;text-align:left;padding:9px 10px;background:#0a1b2b;border:1px solid rgba(49,91,125,.38);box-shadow:none}.saved-open span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.saved-open b{font-size:11px}.saved-open small{grid-column:1/-1;color:var(--muted);font-size:9px}.saved-delete{padding:0;background:#341923;color:#ff9aaa}.ruler-empty,.ruler-help{padding:9px;color:var(--muted);font-size:10px;line-height:1.35}.ruler-help{margin-top:8px;border-top:1px solid rgba(49,91,125,.38)}.map-ruler-panel.collapsed>*:not(.ruler-head){display:none}.map-ruler-panel.measuring{border-color:rgba(247,201,72,.7);box-shadow:0 22px 70px rgba(0,0,0,.42),0 0 0 1px rgba(247,201,72,.1)}.ruler-crosshair{cursor:crosshair!important}.ruler-point-label{background:#071522!important;border:1px solid #e9f7ff!important;color:#fff!important;border-radius:999px!important;width:22px;height:22px;line-height:18px;text-align:center;font-size:10px;font-weight:900;box-shadow:0 3px 12px rgba(0,0,0,.35)}.ruler-point-label:before{display:none!important}@media(max-width:720px){.map-ruler-panel{top:auto;right:10px;left:10px;bottom:10px;width:auto;max-height:46vh}.map-full-toolbar{padding-right:10px}}

/* v0.2.9 map survey details: azimuth / direction / elevation */
.ruler-survey-summary{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.ruler-survey-summary>div,.ruler-survey-summary>span{padding:8px 9px;border-radius:9px;background:rgba(4,14,24,.72);border:1px solid rgba(49,91,125,.34)}.ruler-survey-summary span{display:block;color:var(--muted);font-size:9px}.ruler-survey-summary b{display:block;margin-top:2px;font-size:11px}.ruler-elev-error{border-color:rgba(255,104,104,.35)!important}.ruler-detail-head{margin:11px 1px 5px;color:#8fb0c8;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.ruler-point-details{display:flex;flex-direction:column;gap:4px}.ruler-point-row{display:grid;grid-template-columns:28px 1fr auto;gap:7px;align-items:center;padding:6px 8px;border-radius:8px;background:#071421;border:1px solid rgba(49,91,125,.28)}.ruler-point-row span{font-size:10px;font-weight:900;color:#72dfff}.ruler-point-row code{font-size:9px;color:var(--muted);white-space:nowrap}.ruler-point-row b{font-size:9px;text-align:right}.ruler-segment-rich{display:block}.ruler-seg-title{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}.ruler-seg-title span{font-size:10px;color:#9bb6ca;font-weight:800}.ruler-seg-title b{font-size:11px}.ruler-seg-grid{display:grid;grid-template-columns:1fr auto;gap:3px 10px}.ruler-seg-grid span{font-size:9px;color:var(--muted)}.ruler-seg-grid strong{font-size:9px;text-align:right}@media(max-width:520px){.ruler-survey-summary{grid-template-columns:1fr}.ruler-point-row{grid-template-columns:24px 1fr}.ruler-point-row b{grid-column:2;text-align:left}}

.ruler-color-controls{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin:0 0 10px}.ruler-color-controls label{display:grid;gap:4px;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.ruler-color-controls select{min-width:150px;height:34px;padding:5px 9px}.ruler-color-picker input[type=color]{width:44px;height:34px;padding:2px;border:1px solid rgba(49,91,125,.6);border-radius:8px;background:#071421;cursor:pointer}.ruler-swatch{display:inline-block;width:10px;height:10px;margin-right:7px;border-radius:999px;border:1px solid rgba(255,255,255,.55);vertical-align:-1px}.leaflet-ruler-node-target{cursor:crosshair!important}

/* v0.2.11 named ruler measurements */
.ruler-name-field{display:flex;flex-direction:column;gap:6px;margin:10px 0 8px;font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted,#9fb0c3)}
.ruler-name-field input{width:100%;box-sizing:border-box;min-height:40px;padding:9px 11px;border:1px solid rgba(255,255,255,.16);border-radius:9px;background:rgba(8,17,29,.88);color:inherit;font:inherit;font-size:.92rem;font-weight:600;letter-spacing:0;text-transform:none;outline:none}
.ruler-name-field input:focus{border-color:rgba(247,201,72,.85);box-shadow:0 0 0 3px rgba(247,201,72,.14)}

/* v0.2.12 draggable ruler points */
.ruler-drag-marker-wrap{background:transparent!important;border:0!important}
.ruler-drag-marker{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--ruler-color,#f7c948);border:3px solid rgba(255,255,255,.96);box-shadow:0 3px 14px rgba(0,0,0,.58),0 0 0 2px var(--ruler-color,#f7c948);cursor:grab;transition:transform .12s ease,box-shadow .12s ease}
.ruler-drag-marker span{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:rgba(3,12,20,.82);color:#fff;font-size:9px;font-weight:950;line-height:1}
.ruler-drag-marker-wrap:hover .ruler-drag-marker{transform:scale(1.13);box-shadow:0 4px 18px rgba(0,0,0,.65),0 0 0 3px var(--ruler-color,#f7c948)}
.ruler-point-dragging .ruler-drag-marker{cursor:grabbing;transform:scale(1.18);box-shadow:0 7px 24px rgba(0,0,0,.72),0 0 0 4px var(--ruler-color,#f7c948)}
.ruler-point-locked .ruler-drag-marker{cursor:default;opacity:.88}

.site-copyright{
  width:100%;
  box-sizing:border-box;
  padding:18px 24px 22px;
  text-align:center;
  font-size:12px;
  letter-spacing:.04em;
  color:var(--muted,#8292a6);
  opacity:.82;
}
.auth .site-copyright{position:fixed;left:0;right:0;bottom:0;padding:12px 18px;}
.full-map-page .site-copyright,.public-map-page .site-copyright{position:fixed;right:12px;bottom:8px;width:auto;z-index:1200;padding:6px 10px;border-radius:8px;background:rgba(10,18,30,.72);backdrop-filter:blur(6px);}

.net-card-wrap{position:relative;display:flex;flex-direction:column;min-width:0}
.net-card-wrap .net-card{flex:1}
.delete-net-form{margin-top:8px}
.delete-net-btn{width:100%;border:1px solid rgba(255,88,88,.45);background:rgba(180,32,32,.16);color:#ff8b8b;font-weight:700}
.delete-net-btn:hover{background:rgba(200,40,40,.28);border-color:rgba(255,105,105,.75);color:#ffd3d3}
button.danger{cursor:pointer}

/* v0.2.16 staff notifications, local notepad, and audit UI */
.staff-float-tools{position:fixed;right:18px;bottom:18px;z-index:2100;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.staff-tool-btn{box-shadow:0 10px 30px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px)}
.staff-notepad{position:fixed;top:0;right:-470px;width:min(440px,94vw);height:100vh;z-index:2200;background:#101a28;border-left:1px solid rgba(255,255,255,.12);box-shadow:-22px 0 60px rgba(0,0,0,.45);padding:20px;box-sizing:border-box;overflow:auto;transition:right .22s ease}
.staff-notepad.open{right:0}
.staff-notepad-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:18px}
.staff-notepad-head h2{margin:3px 0 0}
.staff-note-editor{display:grid;gap:10px;padding:14px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.025)}
.staff-note-editor input,.staff-note-editor textarea{width:100%;box-sizing:border-box}
.staff-note-editor textarea{resize:vertical;min-height:130px}
.staff-note-actions{display:flex;gap:8px}
.staff-note-list-head{display:flex;justify-content:space-between;margin:20px 0 10px;color:#b9c7d7}
.staff-note-list{display:grid;gap:10px}
.staff-note-card{border:1px solid rgba(255,255,255,.09);border-radius:13px;padding:13px;background:rgba(255,255,255,.035)}
.staff-note-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.staff-note-card-head small{color:#8292a6;white-space:nowrap}
.staff-note-preview{margin:9px 0 12px;color:#c7d2df;line-height:1.45;max-height:150px;overflow:auto;white-space:normal}
.staff-note-card-actions{display:flex;gap:8px}
.staff-note-foot{font-size:11px;color:#8292a6;line-height:1.45;margin-top:16px}
.hmasn-event-toast{position:fixed;top:18px;right:18px;z-index:2300;min-width:280px;max-width:430px;padding:14px 16px;border-radius:14px;background:#142236;border:1px solid rgba(255,255,255,.14);box-shadow:0 14px 45px rgba(0,0,0,.4);display:grid;gap:4px;transform:translateY(-18px);opacity:0;transition:.2s ease}
.hmasn-event-toast.show{transform:translateY(0);opacity:1}
.hmasn-event-toast strong{font-size:13px;text-transform:uppercase;letter-spacing:.06em}
.hmasn-event-toast span{font-size:14px;color:#d9e3ee}
.hmasn-event-toast.net_started{border-color:rgba(56,217,150,.6)}
.hmasn-event-toast.checkin{border-color:rgba(67,166,255,.6)}
.hmasn-event-toast.net_closed{border-color:rgba(247,201,72,.6)}
.audit-page{max-width:none;width:100%;box-sizing:border-box;padding-left:24px;padding-right:24px}
.audit-filters{margin-bottom:16px}
.audit-filter-form{display:grid;grid-template-columns:minmax(280px,2fr) minmax(190px,1fr) minmax(180px,1fr) auto auto;gap:10px;align-items:end}
.audit-filter-form label{margin:0}
.audit-table-wrap{max-height:68vh}
.audit-table{min-width:1320px}
.audit-table td{vertical-align:top}
.audit-table td small{display:block;color:#8292a6;margin-top:3px}
.audit-table code{font-size:11px;white-space:nowrap}
.audit-time{white-space:nowrap}
.audit-details pre{max-width:430px;max-height:160px;overflow:auto;white-space:pre-wrap;word-break:break-word;margin:8px 0 0;font-size:11px}
.audit-ok{color:#63dda4;font-weight:800}
.audit-bad{color:#ff7c7c;font-weight:800}
.audit-failed{background:rgba(185,45,45,.08)}
@media(max-width:900px){.audit-filter-form{grid-template-columns:1fr 1fr}.staff-float-tools{right:10px;bottom:10px}.staff-tool-btn{font-size:12px;padding:9px 11px}}

/* v0.2.17 HMASN per-net real-time chat */
.hmasn-chat-host{position:fixed;left:18px;bottom:18px;z-index:2250;font-family:inherit}
.hmasn-chat-launch{display:flex;align-items:center;gap:8px;border-radius:999px;padding:11px 15px;background:linear-gradient(135deg,#1a3855,#20577f);border:1px solid rgba(111,195,255,.35);box-shadow:0 12px 35px rgba(0,0,0,.35);font-weight:800}
.hmasn-chat-launch .chat-icon{font-size:17px}
.chat-badge{min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#ff5e68;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:900}
.hmasn-chat-panel{position:absolute;left:0;bottom:52px;width:min(390px,calc(100vw - 28px));height:min(570px,72vh);display:none;grid-template-rows:auto auto auto 1fr auto auto;background:linear-gradient(180deg,#101c2b,#0d1723);border:1px solid rgba(255,255,255,.12);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.52);overflow:hidden}
.hmasn-chat-panel.open{display:grid}
.hmasn-chat-head{display:flex;justify-content:space-between;align-items:flex-start;padding:15px 16px 12px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025)}
.hmasn-chat-head h3{margin:3px 0 0;font-size:16px;max-width:285px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hmasn-chat-name{padding:10px 13px 0}
.hmasn-chat-name label{margin:0;font-size:11px;color:#8fa3b9}
.hmasn-chat-name input{margin-top:5px;width:100%;box-sizing:border-box;height:36px}
.hmasn-chat-status{padding:8px 14px;color:#f5c65b;font-size:11px;border-bottom:1px solid rgba(255,255,255,.06)}
.hmasn-chat-status.online{color:#54d99a}
.hmasn-chat-messages{overflow-y:auto;padding:13px;display:flex;flex-direction:column;gap:10px;background:radial-gradient(circle at 85% 10%,rgba(51,134,196,.08),transparent 28%)}
.hmasn-chat-msg{align-self:flex-start;max-width:88%;padding:9px 10px;border-radius:13px 13px 13px 4px;background:#18283a;border:1px solid rgba(255,255,255,.07)}
.hmasn-chat-msg.staff{border-left:3px solid #45a9f5}
.hmasn-chat-msg.viewer{border-left:3px solid #8d7bf3}
.hmasn-chat-msg.mine{align-self:flex-end;border-radius:13px 13px 4px 13px;background:#17344a;border-left:1px solid rgba(255,255,255,.07);border-right:3px solid #56d39a}
.chat-msg-meta{display:flex;gap:7px;align-items:center;margin-bottom:5px;min-width:0}
.chat-msg-meta strong{font-size:12px;color:#e9f2fb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-msg-meta time{margin-left:auto;font-size:10px;color:#72859a;white-space:nowrap}
.chat-role{font-size:9px;text-transform:uppercase;letter-spacing:.05em;padding:2px 5px;border-radius:999px;background:rgba(255,255,255,.07);color:#9eb1c6;white-space:nowrap}
.chat-msg-body{font-size:13px;line-height:1.38;color:#d8e2ec;overflow-wrap:anywhere}
.hmasn-chat-compose{display:grid;grid-template-columns:1fr auto;gap:8px;padding:11px 12px;border-top:1px solid rgba(255,255,255,.08);background:#101a27}
.hmasn-chat-compose textarea{resize:none;min-height:43px;max-height:95px;width:100%;box-sizing:border-box}
.hmasn-chat-compose button{align-self:stretch}
.hmasn-chat-foot{padding:7px 12px 9px;text-align:center;color:#6f8297;font-size:9px;background:#0e1824}
@media(max-width:600px){.hmasn-chat-host{left:10px;bottom:10px}.hmasn-chat-panel{height:min(520px,78vh)}}

/* v0.2.18 HMASN play-money Blackjack */
.bj-root{position:fixed;z-index:2400;right:18px;bottom:72px;font-family:inherit}
.bj-launch{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;border-radius:16px;padding:9px 14px;background:linear-gradient(145deg,#183a2d,#1d5940);border:1px solid rgba(84,225,154,.38);box-shadow:0 12px 34px rgba(0,0,0,.38)}
.bj-launch>span{grid-row:1/3;font-size:23px}.bj-launch strong{font-size:13px}.bj-launch small{font-size:8px;letter-spacing:.13em;color:#8edaae}
.bj-backdrop{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(4,8,13,.78);backdrop-filter:blur(8px);z-index:2450}
.bj-backdrop.open{display:flex}
.bj-modal{width:min(1180px,97vw);max-height:94vh;overflow:auto;border:1px solid rgba(255,255,255,.12);border-radius:24px;background:#0d1721;box-shadow:0 28px 90px rgba(0,0,0,.65)}
.bj-head{display:flex;justify-content:space-between;gap:20px;padding:18px 22px 15px;background:linear-gradient(180deg,#142535,#0f1d29);border-bottom:1px solid rgba(255,255,255,.08)}
.bj-head h2{margin:3px 0 2px;font-size:26px}.bj-head p{margin:0;color:#8ea1b4;font-size:12px}
.bj-head-right{display:flex;gap:12px;align-items:flex-start}.bj-leader{padding:9px 12px;border-radius:12px;background:rgba(247,201,72,.09);border:1px solid rgba(247,201,72,.22);color:#f7d671;font-weight:800;font-size:12px}
.bj-public-name{display:flex;align-items:end;gap:12px;padding:10px 22px;background:#101d29;border-bottom:1px solid rgba(255,255,255,.06)}.bj-public-name label{margin:0;min-width:260px}.bj-public-name input{height:36px}.bj-public-name small{color:#74889b;padding-bottom:8px}
.bj-banner{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center;padding:10px 22px;background:#10261d;color:#c8ead8;border-bottom:1px solid rgba(91,219,151,.12)}.bj-banner>span:first-child{font-weight:900;color:#69e0a3}.bj-banner strong{text-align:center}.bj-disclaimer{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#7da58e}
.bj-table-felt{position:relative;padding:24px 26px 30px;min-height:430px;background:radial-gradient(ellipse at center,#15563c 0,#0e412e 48%,#0a3023 100%);border-bottom:6px solid #392619;box-shadow:inset 0 0 80px rgba(0,0,0,.35)}
.bj-table-felt:after{content:"HMASN · PLAY MONEY BLACKJACK";position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);font-size:24px;font-weight:900;letter-spacing:.11em;color:rgba(255,255,255,.055);pointer-events:none;white-space:nowrap}
.bj-banker{width:260px;margin:0 auto 22px;text-align:center;position:relative;z-index:2}.bj-seat-label{font-size:9px;letter-spacing:.14em;color:#a7c6b6;font-weight:900}.bj-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);font-size:18px}.bj-avatar.banker{margin:6px auto}
.bj-seats{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;position:relative;z-index:2}
.bj-seat{position:relative;min-height:190px;padding:12px;border-radius:16px;background:rgba(5,19,14,.7);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 25px rgba(0,0,0,.22);transition:.18s ease}.bj-seat.mine{border-color:#65dca0;box-shadow:0 0 0 2px rgba(101,220,160,.12),0 10px 30px rgba(0,0,0,.3)}.bj-seat.turn{animation:bjTurn 1.1s ease-in-out infinite;border-color:#f6cc62}.bj-seat.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#86a497;background:rgba(4,15,11,.45)}
@keyframes bjTurn{50%{box-shadow:0 0 0 4px rgba(246,204,98,.18),0 0 28px rgba(246,204,98,.22)}}
.bj-player-line{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;margin:7px 0 9px}.bj-player-line strong,.bj-player-line small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bj-player-line strong{font-size:12px}.bj-player-line small{font-size:9px;color:#839a8e}.bj-seat-cash{font-weight:900;color:#81e8ad}
.bj-cards{display:flex;justify-content:center;gap:4px;min-height:62px;align-items:center;flex-wrap:wrap}.bj-card{width:38px;height:54px;border-radius:6px;background:#f4f0e8;color:#14191c;border:1px solid rgba(0,0,0,.22);box-shadow:0 3px 7px rgba(0,0,0,.25);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.bj-card b{font-size:14px}.bj-card i{font-style:normal;font-size:16px;margin-top:3px}.bj-card.red{color:#c82d36}.bj-card.hidden-card{background:repeating-linear-gradient(45deg,#173e62,#173e62 5px,#23547e 5px,#23547e 10px);color:#eef6fd}.bj-card.hidden-card i{font-size:7px;letter-spacing:.08em}.bj-card-placeholder{font-size:10px;color:#729183}
.bj-total{font-size:12px;font-weight:900;color:#d4eadf;margin-top:5px}.bj-seat-stats{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:8px}.bj-seat-stats>*{font-size:9px;padding:3px 5px;border-radius:6px;background:rgba(255,255,255,.06);color:#a9c4b6}.bj-seat-stats b{color:#f3d36f}.bj-delta{text-align:center;font-weight:900;font-size:16px;margin-top:5px}.bj-delta.up{color:#66e4a0}.bj-delta.down{color:#ff8585}
.bj-bottom{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:0;background:#101a24}.bj-controls{padding:16px 20px;border-right:1px solid rgba(255,255,255,.08)}.bj-control-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.bj-control-title strong{display:block}.bj-cash{font-size:24px;font-weight:950;color:#70e1a4}
.bj-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bj-bet{display:flex;align-items:center;gap:5px;margin:0;color:#a8bbca}.bj-bet input{width:82px;height:38px}.bj-deal{background:linear-gradient(135deg,#be8c28,#d4a73d);color:#17130a}.bj-help,.bj-readonly{color:#91a5b5;font-size:12px}.bj-turn-note{color:#f4d266;font-weight:900;animation:bjTurnText 1s infinite}@keyframes bjTurnText{50%{opacity:.5}}.bj-error{color:#ff8c8c;font-size:11px;min-height:16px;margin-top:8px}
.bj-scoreboard{padding:15px 18px}.bj-score-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:9px}.bj-score-head strong{font-size:13px}.bj-leaderboard{display:grid;gap:6px}.bj-leader-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 8px;border-radius:9px;background:rgba(255,255,255,.035)}.bj-rank{font-size:16px;text-align:center}.bj-leader-row strong,.bj-leader-row small{display:block}.bj-leader-row small{font-size:8px;color:#778b9d}.bj-money{text-align:right}.bj-money .profit{color:#69dda0}.bj-money .loss{color:#f68181}.bj-empty{color:#7d91a1;font-size:11px;padding:12px}
@media(max-width:950px){.bj-seats{grid-template-columns:repeat(3,1fr)}.bj-bottom{grid-template-columns:1fr}.bj-controls{border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}}@media(max-width:620px){.bj-root{right:10px;bottom:70px}.bj-backdrop{padding:6px}.bj-modal{max-height:97vh;border-radius:16px}.bj-head{padding:13px}.bj-head p,.bj-leader{display:none}.bj-banner{grid-template-columns:1fr;text-align:center}.bj-disclaimer{display:none}.bj-table-felt{padding:15px 8px}.bj-seats{grid-template-columns:1fr 1fr}.bj-seat{min-height:170px}.bj-table-felt:after{font-size:13px}.bj-public-name{padding:8px 12px}.bj-public-name label{min-width:0;flex:1}}

/* v0.2.19 — 10-seat Blackjack, split/double, full scoreboard */
.bj-seats{grid-template-columns:repeat(5,minmax(125px,1fr));gap:9px}
.bj-seat{min-height:178px;padding:10px}
.bj-hands{display:grid;gap:6px}
.bj-hand{padding:6px;border-radius:10px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06)}
.bj-hand.active-hand{border-color:#f5d064;box-shadow:0 0 0 2px rgba(245,208,100,.12)}
.bj-hand-head{display:flex;align-items:center;gap:6px;margin-bottom:4px;font-size:9px;color:#9ab4a6}
.bj-hand-head b{margin-left:auto;font-size:13px;color:#eef8f2}
.bj-hand-head em{font-style:normal;font-size:7px;letter-spacing:.08em;padding:2px 4px;border-radius:5px;background:rgba(247,201,72,.13);color:#f6d874}
.bj-player-round-total{text-align:center;font-size:10px;font-weight:900;color:#c8e6d6;margin-top:6px}
.bj-special{background:linear-gradient(135deg,#774bb5,#9c68d9);border-color:rgba(190,143,255,.45)}
.bj-special.split{background:linear-gradient(135deg,#285b8b,#347bc0);border-color:rgba(103,181,255,.45)}
.bj-bottom{display:block}
.bj-controls{border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
.bj-scoreboard{padding:15px 18px 18px;overflow:auto}
.bj-score-table-head,.bj-score-table-row{display:grid;grid-template-columns:34px minmax(140px,2fr) 72px 72px 56px 62px 58px 42px;gap:8px;align-items:center;min-width:650px}
.bj-score-table-head{padding:0 8px 7px;color:#7890a2;font-size:8px;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid rgba(255,255,255,.08)}
.bj-score-table-row{padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.05);font-size:11px}
.bj-score-table-row>div strong,.bj-score-table-row>div small{display:block}.bj-score-table-row>div small{font-size:8px;color:#718798}
.bj-score-table-row .profit{color:#69dda0}.bj-score-table-row .loss{color:#f68181}
@media(max-width:1050px){.bj-seats{grid-template-columns:repeat(4,minmax(125px,1fr))}}
@media(max-width:760px){.bj-seats{grid-template-columns:repeat(2,minmax(135px,1fr))}.bj-seat{min-height:165px}}

/* v0.2.20 — synchronized multiplayer turn clock */
.bj-banner{grid-template-columns:auto minmax(0,1fr) auto auto}
.bj-turn-timer{display:flex;align-items:center;gap:7px;min-width:88px;padding:5px 9px;border-radius:12px;background:rgba(41,148,100,.18);border:1px solid rgba(92,224,157,.32);color:#8ce2b5;box-sizing:border-box}
.bj-turn-timer[hidden]{display:none!important}
.bj-turn-timer b{font-size:22px;line-height:1;min-width:18px;text-align:center;color:#d9ffeb}
.bj-turn-timer small{display:block;font-size:8px;line-height:1.15;text-transform:uppercase;letter-spacing:.05em;color:#9ebcac}
.bj-turn-timer.urgent{background:rgba(190,55,55,.2);border-color:rgba(255,102,102,.52);animation:bjTimerPulse .55s ease-in-out infinite alternate}
.bj-turn-timer.urgent b{color:#ff9a9a}
@keyframes bjTimerPulse{to{transform:scale(1.045);box-shadow:0 0 18px rgba(255,79,79,.22)}}
@media(max-width:620px){.bj-banner{grid-template-columns:1fr auto}.bj-banner>strong{grid-column:1/-1;order:3}.bj-turn-timer{justify-self:end}.bj-disclaimer{display:none}}

.bj-seat-unavailable{font-size:9px;color:#6f8a7c;text-align:center;padding:4px 6px;border-radius:7px;background:rgba(255,255,255,.035)}
.bj-seat.turn .bj-seat-label{color:#ffe28b}

.bj-ready-summary{font-size:10px;color:#f2bd6d;padding:5px 8px;border-radius:8px;background:rgba(242,189,109,.08);border:1px solid rgba(242,189,109,.16)}
.bj-ready-summary.all-ready{color:#77e1a8;background:rgba(86,211,154,.09);border-color:rgba(86,211,154,.2);font-weight:800}
.bj-deal:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.45)}

/* v0.2.23 STORM mode reporting */
.storm-mode-badge{display:inline-flex;align-items:center;margin-left:8px;padding:5px 9px;border-radius:999px;background:rgba(73,139,255,.14);border:1px solid rgba(91,159,255,.35);color:#8dc0ff;font-size:10px;font-weight:900;letter-spacing:.08em}
.storm-launch{position:fixed;right:18px;bottom:128px;z-index:2380;border-radius:999px;padding:11px 15px;box-shadow:0 12px 34px rgba(0,0,0,.38);background:linear-gradient(135deg,#244d78,#397ab5);border:1px solid rgba(116,190,255,.35)}
.storm-launch.public{background:linear-gradient(135deg,#265b7d,#347ca4)}.storm-launch span{margin-left:6px;background:#ff5964;color:#fff;border-radius:999px;padding:2px 6px;font-size:9px}.storm-launch.pulse{animation:stormPulse .8s infinite alternate}@keyframes stormPulse{to{box-shadow:0 0 0 5px rgba(85,158,255,.15),0 12px 34px rgba(0,0,0,.4)}}
.storm-modal-backdrop{position:fixed;inset:0;z-index:2500;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(3,8,14,.82);backdrop-filter:blur(8px)}.storm-modal-backdrop.open{display:flex}
.storm-modal{width:min(980px,96vw);max-height:92vh;overflow:auto;border-radius:22px;background:#0f1b28;border:1px solid rgba(255,255,255,.12);box-shadow:0 28px 90px rgba(0,0,0,.65)}.storm-modal>header{display:flex;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#172b3f,#11202e)}.storm-modal h2{margin:3px 0}.storm-modal header p{margin:0;color:#8ea2b6}
.storm-form{padding:18px}.storm-type-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.storm-type-tabs button{background:#162638;border:1px solid rgba(255,255,255,.08)}.storm-type-tabs button.active{background:#235b87;border-color:#4a9bd5}
.storm-grid,.storm-extra-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.storm-grid .span-2{grid-column:1/-1}.storm-extra-grid{margin-top:12px;padding:12px;border-radius:14px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07)}.storm-check{display:flex;align-items:center;gap:8px}.storm-check input{width:auto}.storm-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.storm-form-msg{min-height:20px;margin-top:10px;color:#76e1a8}
.storm-toolbar{display:grid;grid-template-columns:1fr 220px;gap:10px;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.07)}.storm-list{display:grid;gap:10px;padding:16px}.storm-report-card{padding:14px;border-radius:15px;background:#142332;border:1px solid rgba(255,255,255,.08);border-left:4px solid #6e8ea9}.storm-report-card.urgency-priority{border-left-color:#f0bd5d}.storm-report-card.urgency-urgent{border-left-color:#ff6464}.storm-report-top{display:flex;justify-content:space-between;gap:10px}.storm-report-top>div{display:flex;gap:8px;align-items:center}.storm-ref{font-size:9px;padding:3px 6px;border-radius:6px;background:rgba(255,255,255,.06);color:#95a9bc}.storm-urgency{text-transform:uppercase;font-size:9px;font-weight:900}.storm-urgency.priority{color:#f0bd5d}.storm-urgency.urgent{color:#ff7979}.storm-report-card h3{margin:8px 0 4px}.storm-location,.storm-details{color:#b8c5d1}.storm-meta{display:flex;gap:12px;color:#788da0;font-size:10px}.storm-report-status{margin-top:10px}.storm-report-status label{max-width:220px;margin:0}
@media(max-width:700px){.storm-grid,.storm-extra-grid,.storm-toolbar{grid-template-columns:1fr}.storm-grid .span-2{grid-column:auto}.storm-type-tabs{grid-template-columns:1fr}.storm-launch{right:10px;bottom:126px}}

/* v0.2.24 — elegant staff Storm Report view/edit modal */
.storm-card-actions{display:flex;justify-content:flex-end;margin-top:12px}
.storm-view-edit{padding:8px 11px;border-radius:9px;background:linear-gradient(135deg,#285b86,#3679ad);border:1px solid rgba(102,184,244,.28);font-size:11px}
.storm-status-pill{margin-left:auto;padding:3px 7px;border-radius:999px;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;background:rgba(255,255,255,.06)}
.storm-status-pill.status-new{color:#83bfff}.storm-status-pill.status-acknowledged{color:#f2cd72}.storm-status-pill.status-monitoring{color:#bc9cff}.storm-status-pill.status-resolved{color:#72dda5}
.storm-edit-backdrop{z-index:2600}
.storm-edit-modal{width:min(1040px,97vw);max-height:94vh}
.storm-edit-form{padding:0 18px 18px}
.storm-edit-statusbar{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;margin:16px 0;padding:12px;border-radius:14px;background:linear-gradient(135deg,rgba(38,87,128,.18),rgba(37,57,83,.28));border:1px solid rgba(101,169,223,.16)}
.storm-edit-section{margin-top:12px;padding:14px;border-radius:15px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.07)}
.storm-edit-section-title{margin-bottom:11px;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#84afd1}
.storm-edit-section textarea{min-height:110px;resize:vertical}
.storm-edit-footer{display:flex;justify-content:space-between;gap:15px;align-items:center;padding-top:16px;margin-top:12px;border-top:1px solid rgba(255,255,255,.07)}
.storm-edit-footer>div:first-child{display:grid;gap:3px;color:#748b9f;font-size:9px}
.storm-edit-actions{display:flex;gap:8px}
.storm-edit-modal input,.storm-edit-modal select,.storm-edit-modal textarea{width:100%;box-sizing:border-box}
@media(max-width:720px){.storm-edit-statusbar{grid-template-columns:1fr}.storm-edit-footer{align-items:stretch;flex-direction:column}.storm-edit-actions{justify-content:flex-end}}

/* v0.2.25 HMASN Texas Hold'em — play money only */
.poker-root{position:fixed;right:18px;bottom:185px;z-index:2390}.poker-launch{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;gap:0 7px;padding:9px 14px;border-radius:15px;background:linear-gradient(145deg,#34255a,#65418f);border:1px solid rgba(192,150,255,.35);box-shadow:0 12px 34px rgba(0,0,0,.4)}.poker-launch>span{grid-row:1/3}.poker-launch small{font-size:8px;color:#c5a9e7}
.poker-backdrop{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(4,6,11,.82);backdrop-filter:blur(8px);z-index:2700}.poker-backdrop.open{display:flex}.poker-modal{width:min(1240px,98vw);max-height:95vh;overflow:auto;border-radius:23px;background:#10141d;border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 90px rgba(0,0,0,.7)}
.poker-head{display:flex;justify-content:space-between;gap:16px;padding:17px 20px;background:linear-gradient(180deg,#211b31,#171523);border-bottom:1px solid rgba(255,255,255,.08)}.poker-head h2{margin:3px 0}.poker-head p{margin:0;color:#9189a3}.poker-head>div:last-child{display:flex;gap:10px;align-items:flex-start}.poker-leader{padding:8px 10px;border-radius:10px;background:rgba(223,190,83,.08);color:#e9cf78;font-size:11px}
.poker-name{padding:9px 18px;background:#171825}.poker-name label{max-width:320px;margin:0}.poker-status{display:grid;grid-template-columns:auto 1fr auto;gap:12px;padding:9px 18px;background:#191c2a;color:#b9b5ca}.poker-status strong{text-align:center}
.poker-felt{position:relative;padding:28px 20px;background:radial-gradient(ellipse at center,#174e39,#0c3528 60%,#08271d);min-height:500px;border-bottom:6px solid #33231c}.poker-pot{text-align:center;color:#9fc9b4;font-size:10px}.poker-pot strong{display:block;font-size:24px;color:#f3d979}.poker-community{display:flex;justify-content:center;gap:7px;margin:12px 0 25px;min-height:65px}.poker-seats{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px}
.poker-seat{min-height:160px;padding:10px;border-radius:15px;background:rgba(5,19,14,.72);border:1px solid rgba(255,255,255,.09)}.poker-seat.mine{border-color:#8cdbad}.poker-seat.turn{box-shadow:0 0 0 3px rgba(244,204,95,.18);border-color:#f2cd6c}.poker-seat.folded{opacity:.48}.poker-seat.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.poker-seat-top{display:flex;justify-content:space-between;font-size:9px;color:#91aa9e}.poker-seat-top strong{color:#7ae2a8;font-size:13px}.poker-player b,.poker-player small{display:block}.poker-player small{font-size:8px;color:#7d9288}.poker-hole{display:flex;justify-content:center;gap:5px;margin:10px 0}.poker-betline{display:flex;justify-content:space-between;font-size:9px;color:#a8bdb3}
.pk-card{width:40px;height:56px;border-radius:6px;background:#f4f0e8;color:#14181b;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 3px 8px rgba(0,0,0,.28)}.pk-card.red{color:#c92e3b}.pk-card i{font-style:normal;font-size:16px}.pk-card.hidden{background:repeating-linear-gradient(45deg,#3a265c,#3a265c 5px,#573b7d 5px,#573b7d 10px);color:#fff;font-size:18px}.poker-placeholder{color:#6f897d;font-size:10px}
.poker-lower{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(420px,1fr)}.poker-controls{padding:15px 18px;border-right:1px solid rgba(255,255,255,.08)}.poker-control-head{display:flex;justify-content:space-between;margin-bottom:11px}.poker-control-head span{font-size:23px;font-weight:900;color:#78dfa8}.poker-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pk-deal{background:linear-gradient(135deg,#b88a30,#d5aa49)}.pk-raise{display:flex;align-items:center;gap:5px;margin:0}.pk-raise input{width:75px}.poker-error{color:#ff8989;font-size:10px;margin-top:8px}
.poker-board{padding:14px 16px}.poker-board-head{display:flex;justify-content:space-between;margin-bottom:8px}.pk-score-head,.pk-score-row{display:grid;grid-template-columns:32px minmax(130px,2fr) 65px 65px 48px 48px;gap:7px;align-items:center}.pk-score-head{font-size:8px;color:#798596;text-transform:uppercase}.pk-score-row{padding:6px 0;border-top:1px solid rgba(255,255,255,.05);font-size:10px}.pk-score-row small{display:block;color:#74808d}.pk-score-row .profit{color:#69dda0}.pk-score-row .loss{color:#f68181}
@media(max-width:950px){.poker-seats{grid-template-columns:repeat(3,1fr)}.poker-lower{grid-template-columns:1fr}.poker-controls{border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}}@media(max-width:620px){.poker-root{right:10px;bottom:185px}.poker-backdrop{padding:5px}.poker-seats{grid-template-columns:1fr 1fr}.poker-head p,.poker-leader{display:none}}

/* v0.2.26 Responsive / Adaptive Layout */
:root{--page-max:1540px;--page-pad:clamp(12px,1.8vw,28px);--panel-gap:clamp(10px,1.2vw,18px)}
body{min-width:0;overflow-x:hidden}
main,.public-main,.wide-main{width:min(100%,var(--page-max));margin-inline:auto;box-sizing:border-box;padding-inline:var(--page-pad)}
main.narrow{width:min(100%,920px)}
.grid,.public-content-grid{gap:var(--panel-gap)}
.panel,.public-panel{min-width:0;overflow:hidden}
.table-wrap,.public-table-wrap,.audit-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%}
header,.public-header{padding-left:var(--page-pad);padding-right:var(--page-pad);gap:12px}
header nav,.public-header nav{gap:clamp(6px,.8vw,12px);flex-wrap:wrap}
h1{font-size:clamp(1.55rem,2.1vw,2.35rem)} h2{font-size:clamp(1.15rem,1.45vw,1.65rem)} h3{font-size:clamp(.98rem,1.05vw,1.18rem)}
input,select,textarea,button,.button{font-size:clamp(13px,.82vw,15px)}
@media(min-width:1600px){:root{--page-max:1480px}}
@media(max-width:1536px){
:root{--page-max:1320px;--page-pad:16px;--panel-gap:12px}
.grid,.public-content-grid{grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr)}
.hero,.public-net-hero{padding:16px 18px}.traffic-console,.panel,.public-panel{padding:14px}
.checkin{gap:8px}.checkin input#callsign{min-width:180px}
}
@media(max-width:1280px){
:root{--page-max:1180px;--page-pad:14px}
.grid,.public-content-grid,.traffic-board{grid-template-columns:minmax(0,1fr)}
.public-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
.checkin{flex-wrap:wrap}.checkin input#callsign{flex:1 1 220px}.compact-select{flex:1 1 180px}
.audit-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:980px){
:root{--page-pad:12px}
header,.public-header{align-items:flex-start;flex-wrap:wrap}
header nav,.public-header nav{width:100%;justify-content:flex-start}
.storm-modal,.storm-edit-modal,.bj-modal,.poker-modal{width:calc(100vw - 20px);max-width:none}
.bj-seats,.poker-seats{grid-template-columns:repeat(3,minmax(0,1fr))}
.bj-table-felt,.poker-felt{padding-left:12px;padding-right:12px}
}
@media(max-width:700px){
:root{--page-pad:9px;--panel-gap:9px}
main,.public-main,.wide-main{padding-inline:9px}
.public-metrics{grid-template-columns:1fr 1fr}
.hero,.public-net-hero,.panel,.public-panel,.traffic-console{padding:11px}
.storm-grid,.storm-extra-grid,.storm-edit-statusbar{grid-template-columns:1fr}.storm-grid .span-2{grid-column:auto}
.bj-seats,.poker-seats{grid-template-columns:1fr 1fr}
.hmasn-chat-panel{width:calc(100vw - 20px)}
}
@media(max-width:480px){
.public-metrics,.bj-seats,.poker-seats,.storm-type-tabs{grid-template-columns:1fr}
.user-chip,.viewer-pill{font-size:10px}
}

/* v0.2.27 Full-Width Desktop Fix */
:root{--page-max:none!important;--page-pad:clamp(12px,1.35vw,28px)}
main,.public-main,.wide-main,.audit-page{
  width:100%!important;max-width:none!important;
  margin-left:0!important;margin-right:0!important;
  padding-left:var(--page-pad)!important;padding-right:var(--page-pad)!important;
  box-sizing:border-box
}
main.narrow{
  width:min(100%,920px)!important;max-width:920px!important;
  margin-left:auto!important;margin-right:auto!important
}
.grid,.public-content-grid{
  width:100%;max-width:none;
  grid-template-columns:minmax(0,1fr) minmax(300px,28vw);
  gap:clamp(12px,1.2vw,20px)
}
.traffic-console,.hero,.public-net-hero{width:100%;box-sizing:border-box}
.grid>:last-child,.public-content-grid>:last-child{
  min-width:0;max-width:520px;width:100%;justify-self:stretch
}
.grid>:first-child,.public-content-grid>:first-child{min-width:0;width:100%}
#map,.public-map,.map{max-width:100%}
@media(min-width:1600px){
  .grid,.public-content-grid{grid-template-columns:minmax(0,1fr) minmax(340px,420px)}
}
@media(max-width:1536px){
  :root{--page-pad:14px}
  .grid,.public-content-grid{
    grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:12px
  }
  .grid>:last-child,.public-content-grid>:last-child{max-width:340px}
  .panel,.public-panel,.traffic-console{padding:12px}
}
@media(max-width:1180px){
  .grid,.public-content-grid{grid-template-columns:minmax(0,1fr)}
  .grid>:last-child,.public-content-grid>:last-child{max-width:none}
  .public-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){:root{--page-pad:9px}}
