
:root {
  --bg:#020c0e;--bg2:#040f12;--bg3:#071519;--panel:#091c21;
  --border:#1a4a52;--border-bright:#2a7a88;
  --amber:#e8a020;--amber-dim:#7a5010;
  --green:#20e8a0;--green-dim:#0a4a30;
  --red:#e82050;--red-dim:#4a0a18;
  --cyan:#20c8e8;--cyan-dim:#0a4a55;
  --purple:#c070ff;
  --text:#b0d8e0;--text-dim:#3a6870;--text-bright:#e0f8ff;
  --glow-amber:0 0 8px rgba(232,160,32,.5),0 0 24px rgba(232,160,32,.2);
  --glow-green:0 0 8px rgba(32,232,160,.5),0 0 24px rgba(32,232,160,.2);
  --glow-cyan:0 0 8px rgba(32,200,232,.5),0 0 24px rgba(32,200,232,.2);
  --glow-red:0 0 8px rgba(232,32,80,.5),0 0 24px rgba(232,32,80,.2);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html,body{width:100%;height:100%;min-height:100dvh;background:var(--bg);color:var(--text);font-family:'Share Tech Mono',monospace;overflow:hidden;}
body{position:static;min-height:100dvh;}
body::before{content:'';position:fixed;inset:0;background:none;pointer-events:none;z-index:9999;opacity:0;}
body::after{content:'';position:fixed;inset:0;background:none;pointer-events:none;z-index:9998;opacity:0;}

@keyframes blink{0%,49%{opacity:1}50%,100%{oparesidcity:0}}
@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideRight{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideLeft{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:translateX(0)}}
@keyframes glitch{0%,88%,100%{transform:translate(0)}89%{transform:translate(-2px,1px)}90%{transform:translate(2px,-1px)}91%{transform:translate(0)}}
@keyframes breathe{0%,100%{box-shadow:var(--glow-cyan);opacity:1}50%{box-shadow:0 0 16px rgba(32,200,232,.65),0 0 36px rgba(32,200,232,.25);opacity:.92}}

.app{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100dvh;min-height:100dvh;overflow:hidden;}

header{flex-shrink:0;height:3.125rem;border-bottom:1px solid var(--border);background:var(--bg2);display:flex;align-items:center;padding:0 1rem;position:relative;z-index:300;}
.logo{font-family:'VT323',monospace;font-size:24px;color:var(--amber);text-shadow:var(--glow-amber);letter-spacing:4px;cursor:pointer;animation:glitch 9s infinite;margin-right:20px;line-height:1;}
.logo small{font-family:'Share Tech Mono',monospace;font-size:9px;color:var(--text-dim);letter-spacing:2px;display:block;margin-top:-3px;}
.nav-tabs{display:flex;}
.tab{font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:2px;padding:0 16px;height:50px;border:none;background:transparent;color:var(--text-dim);cursor:pointer;text-transform:uppercase;border-bottom:2px solid transparent;transition:all .15s;display:flex;align-items:center;gap:5px;}
.tab:hover{color:var(--text);}.tab.active{color:var(--amber);border-bottom-color:var(--amber);}
.tab .badge{font-size:9px;background:rgba(232,160,32,.15);color:var(--amber);padding:1px 5px;border:1px solid var(--amber-dim);}
.header-right{display:flex;align-items:center;gap:10px;margin-left:auto;}
.live-pill{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--text-dim);letter-spacing:2px;}
.live-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:var(--glow-green);animation:blink 2s infinite;}
.btn{font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:2px;padding:5px 12px;border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer;transition:all .15s;text-transform:uppercase;}
.btn:hover{border-color:var(--cyan);color:var(--cyan);box-shadow:var(--glow-cyan);}
.btn-primary{border-color:var(--amber);color:var(--amber);background:rgba(232,160,32,.05);}
.btn-primary:hover{background:rgba(232,160,32,.1);box-shadow:var(--glow-amber);}
.auth-input{width:100%;padding:11px 12px;border:1px solid var(--border);background:rgba(2,12,14,.96);color:var(--text-bright);font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:1px;outline:none;transition:border-color .15s ease, box-shadow .15s ease;}
.auth-input:focus{border-color:var(--cyan);box-shadow:var(--glow-cyan);}

.account-menu-shell{position:relative;z-index:350;}
.account-menu-shell summary{list-style:none;}
.account-menu-shell summary::-webkit-details-marker{display:none;}
.account-trigger-shell{display:inline-flex;align-items:center;gap:8px;min-width:0;padding-right:10px;}
.account-trigger-shell:hover .account-user-icon,.account-menu-shell[open] .account-trigger-shell .account-user-icon{color:var(--cyan);}
.account-trigger-label{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.account-user-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;color:var(--text);opacity:.95;transition:color .15s ease;}
.account-user-icon svg{width:14px;height:14px;display:block;}
.account-trigger-chevron{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid currentColor;opacity:.85;transition:transform .15s ease;}
.account-menu-shell[open] .account-trigger-chevron{transform:rotate(180deg);}
.account-dropdown-shell{display:none;position:absolute;right:0;top:calc(100% + 10px);min-width:220px;background:rgba(4,15,18,.98);border:1px solid var(--border-bright);box-shadow:0 18px 44px rgba(0,0,0,.55);padding:8px;}
.account-dropdown-shell::before{content:'';position:absolute;top:-7px;right:18px;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid var(--border-bright);}
.account-dropdown-shell::after{content:'';position:absolute;top:-6px;right:19px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid rgba(4,15,18,.98);}
.account-menu-shell[open] .account-dropdown-shell{display:block;}
.account-dropdown-shell a{display:block;padding:12px 14px;border:1px solid transparent;color:var(--text);text-decoration:none;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;background:transparent;transition:all .15s ease;}
.account-dropdown-shell a + a{margin-top:4px;}
.account-dropdown-shell a:hover{border-color:var(--cyan);color:var(--cyan);background:rgba(32,200,232,.06);}

.content{overflow:hidden;display:grid;grid-template-columns:clamp(13rem,14vw,17rem) minmax(0,1fr) clamp(13rem,14vw,17rem);position:relative;min-height:0;height:100%;align-items:stretch;column-gap:0;}
#survey-view,#results-view{grid-column:2;grid-row:1;min-height:0;width:100%;height:100%;display:block;overflow:auto;padding:18px;}
#survey-view .view-center,#results-view .view-center{max-width:none;height:auto;display:block;padding:0;}
#results-view{padding-bottom:18px;}
#survey-view{padding-bottom:18px;}

.mm-shell body{overflow:hidden}
#recent-signals{overflow-y:auto !important}
#effect-selector .es-list{overflow-y:auto !important}
.quick-submit{flex-shrink:0 !important}
.app-footer{height:4rem;padding:0.375rem 0 0.75rem;flex-shrink:0}
.survey-stage{padding:12px 14px 10px;align-items:stretch}
.survey-stage-frame{width:100%;height:100%;min-height:0;overflow:auto;padding-bottom:0.25rem}
.mm-shell-survey{max-width:1200px;margin:0 auto}
.mm-shell-survey .mm-result-actions a[href$='./shell.php?view=map'], .mm-shell-survey .mm-result-actions a[href$='shell.php?view=map']{ }



.hidden{display:none !important;}
.shell-rail{grid-row:1;min-height:0;height:100%;display:flex;flex-direction:column;}
#left-map,#left-registry,#left-evidence,#left-profile,#left-surveys,#left-account,#left-admin,#left-forgot-password,#left-reset-password,#left-change-password{grid-column:1;}
#right-map,#right-registry,#right-evidence,#right-profile,#right-surveys,#right-account,#right-admin,#right-forgot-password,#right-reset-password,#right-change-password{grid-column:3;}
#registry-view,#evidence-view,#profile-view,#map-view,#surveys-view,#account-view,#admin-view,#forgot-password-view,#reset-password-view,#change-password-view{grid-column:2;grid-row:1;min-height:0;height:100%;max-height:100%;display:block;overflow-y:auto;overflow-x:hidden;}
#registry-view .reg-main{padding:14px 18px;overflow-y:auto;height:100%;}
#registry-view .reg-side,#registry-view .reg-right{padding:12px;overflow-y:auto;height:100%;}
/* when shell-native, internal registry sidebars are not needed */
#registry-view .reg-wrap{display:block;height:100%;overflow:hidden;}
#registry-view .reg-side,#registry-view .reg-right{display:none !important;}
#registry-view .reg-main{padding:0 0 0 0;}

.map-center .ghost-reset,.map-center .zoom-reset,.map-center .mini-reset{display:none !important;}
/* MAP VIEW */
#map-view{grid-column:2;grid-row:1;width:100%;min-height:0;display:block;position:relative;overflow:hidden;}
.map-left,.map-right{background:rgba(4,15,18,.97);display:flex;flex-direction:column;overflow:hidden;min-height:0;grid-row:1;align-self:stretch;}
.map-left{grid-column:1;border-right:1px solid var(--border);border-left:none;animation:slideLeft .3s ease;}
.map-center{position:relative;overflow:hidden;background:var(--bg);width:100%;height:100%;}
.map-right{grid-column:3;border-left:1px solid var(--border);border-right:none;animation:slideRight .3s ease;display:flex;flex-direction:column;gap:0;}
.side-header{padding:10px 14px 8px;border-bottom:1px solid var(--border);flex-shrink:0;}
.side-title{font-size:9px;letter-spacing:3px;color:var(--text-dim);text-transform:uppercase;}
.side-subtitle{font-size:11px;color:var(--amber);letter-spacing:1px;margin-top:2px;}
.side-body{flex:1;overflow-y:auto;padding:10px 12px;}

.rank-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--border);background:var(--bg3);margin-bottom:6px;cursor:pointer;transition:all .15s;position:relative;overflow:hidden;}
.rank-item::after{content:'';position:absolute;bottom:0;left:0;height:1px;width:0;background:var(--amber);transition:width .3s;}
.rank-item:hover{border-color:var(--border-bright);}
.rank-item:hover::after{width:100%;}
.rank-num{font-family:'VT323',monospace;font-size:22px;color:var(--border-bright);line-height:1;min-width:22px;}
.rank-content{flex:1;min-width:0;}
.rank-title{font-family:'Courier Prime',monospace;font-size:11px;color:var(--text-bright);font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rank-meta{display:flex;align-items:center;gap:6px;margin-top:3px;}
.rank-votes{font-size:9px;color:var(--text-dim);letter-spacing:1px;}
.rank-votes span{color:var(--amber);}
.rank-bar{height:2px;background:var(--border);margin-top:5px;position:relative;overflow:hidden;}
.rank-bar-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,var(--amber),var(--amber-dim));}

.recent-item{padding:8px 10px;border:1px solid var(--border);background:var(--bg3);margin-bottom:6px;cursor:pointer;transition:all .15s;}
.recent-item:hover{border-color:var(--border-bright);}
.recent-time{font-size:9px;color:var(--text-dim);letter-spacing:1px;margin-bottom:3px;}
.recent-title{font-family:'Courier Prime',monospace;font-size:11px;color:var(--text-bright);font-weight:700;line-height:1.3;}

.quick-submit{padding:10px 12px;border-top:1px solid var(--border);flex-shrink:0;}
.qs-title{font-size:9px;letter-spacing:3px;color:var(--text-dim);text-transform:uppercase;margin-bottom:8px;}
.qs-input,.qs-textarea,.qs-select{width:100%;font-family:'Share Tech Mono',monospace;font-size:11px;background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:7px 9px;letter-spacing:1px;outline:none;transition:border-color .15s;margin-bottom:6px;}
.qs-input:focus,.qs-textarea:focus{border-color:var(--border-bright);}
.qs-textarea{resize:none;height:52px;}
.qs-btn{width:100%;font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:2px;padding:7px;border:1px solid var(--amber);background:rgba(232,160,32,.06);color:var(--amber);cursor:pointer;text-transform:uppercase;transition:all .15s;}
.qs-btn:hover{background:rgba(232,160,32,.14);}


.search-suggest{position:relative}
.search-suggest-list{display:none;position:absolute;left:0;right:0;top:100%;z-index:250;background:rgba(2,12,16,.98);border:1px solid var(--border-bright);max-height:220px;overflow-y:auto;box-shadow:0 8px 28px rgba(0,0,0,.45)}
.search-suggest-list.open{display:block}
.search-suggest-item{padding:8px 10px;border-bottom:1px solid rgba(26,74,82,.45);cursor:pointer;transition:background .12s,border-color .12s}
.search-suggest-item:hover,.search-suggest-item.active{background:rgba(32,200,232,.07)}
.search-suggest-item:last-child{border-bottom:none}
.search-suggest-label{font-family:'Courier Prime',monospace;font-size:11px;color:var(--text-bright);font-weight:700;line-height:1.3}
.search-suggest-meta{font-size:9px;color:var(--text-dim);letter-spacing:1px;margin-top:2px;text-transform:uppercase}
#effect-selector{position:static !important;bottom:auto !important;right:auto !important;z-index:auto !important;background:transparent;border:none;padding:10px 12px;width:auto;animation:none;display:block}
#effect-selector.hidden{display:block !important}
#effect-selector .es-list{max-height:160px}
.heat-toggle-btn{display:none !important}
.map-filter-panel{border-top:1px solid var(--border);flex:0 0 auto;display:flex;flex-direction:column;min-height:220px;background:rgba(4,15,18,.97)}
.app-footer{height:44px;padding-bottom:6px;border-top:1px solid var(--border);background:rgba(4,15,18,.99);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));z-index:140;flex-shrink:0;grid-column:1 / -1}
.app-footer .foot-stat{padding:6px 12px 6px;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:flex-end}
.app-footer .foot-stat:last-child{border-right:none}
.app-footer .foot-num{font-family:'VT323',monospace;font-size:22px;line-height:1;color:var(--text-bright)}
.app-footer .foot-lbl{font-size:8px;letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;margin-top:0}
.map-left{overflow-y:hidden}.map-left .side-body{flex:0 0 auto !important;min-height:auto !important;padding-top:8px;padding-bottom:8px}.map-left .side-header + .side-body{margin-bottom:0}.map-left .panel-gap{display:none}.map-legend{display:none !important}.survey-stage{position:absolute;inset:0;z-index:120;background:var(--bg);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:18px}.survey-stage.hidden{display:none}.survey-stage-frame{width:100%;height:100%;min-height:720px;border:none;background:transparent}.map-center.survey-active > #world-svg,.map-center.survey-active > #mtt,.map-center.survey-active > #map-topbar,.map-center.survey-active > #country-hud,.map-center.survey-active > #expand-btn,.map-center.survey-active > #detail-panel{display:none !important}

/* MAP */
.map-center{position:relative;overflow:hidden;background:var(--bg);}
#world-svg{width:100%;height:100%;display:block;}
.sphere-fill{fill:#08161c;}
.graticule-line{fill:none;stroke:rgba(32,120,140,.1);stroke-width:.4;}

/* country paths — default */
.country-path{fill:#0c2830;stroke:#1a5060;stroke-width:.35;cursor:pointer;transition:fill .1s,stroke .1s;vector-effect:non-scaling-stroke;shape-rendering:geometricPrecision;stroke-linejoin:round;stroke-linecap:round;}
.country-path.hovered{fill:#1c5a6a;stroke:#30a0b8;stroke-width:.45;}
.country-path.zoomed-country{fill:#0f3a46;stroke:var(--cyan);stroke-width:.42;}

/* effect heatmap mode */
.country-path.heat-0{fill:#0c2830;}
.country-path.heat-1{fill:#0d3d4a;}
.country-path.heat-2{fill:#0e4e5e;}
.country-path.heat-3{fill:#0f6070;}
.country-path.heat-4{fill:#107282;}
.country-path.heat-5{fill:#118898;}

.borders-path{fill:none;stroke:rgba(26,74,82,.35);stroke-width:.2;pointer-events:none;vector-effect:non-scaling-stroke;shape-rendering:geometricPrecision;}

/* state paths */
.state-path{fill:rgba(32,200,232,.04);stroke:rgba(32,200,232,.3);stroke-width:.5;cursor:pointer;transition:fill .15s,stroke .15s;pointer-events:visiblePainted;vector-effect:non-scaling-stroke;shape-rendering:geometricPrecision;stroke-linejoin:round;stroke-linecap:round;}
.state-path.selected{fill:rgba(232,160,32,.26) !important;stroke:rgba(255,196,92,.98) !important;stroke-width:1.4px !important;}
.state-path.heat-s-1{fill:rgba(32,200,232,.08);}
.state-path.heat-s-2{fill:rgba(32,200,232,.15);}
.state-path.heat-s-3{fill:rgba(32,200,232,.22);}
.state-path.heat-s-4{fill:rgba(232,160,32,.2);}
.state-path.heat-s-5{fill:rgba(232,160,32,.35);}
/* ONLY use JS-managed .hovered class — never CSS :hover (causes ghost selections) */
.state-path.hovered{fill:rgba(32,200,232,.28) !important;stroke:rgba(32,200,232,.9) !important;stroke-width:1.2px !important;}
/* Disable country layer pointer-events when subdivisions are visible */
.subs-active .country-path.zoomed-country{pointer-events:none !important;}
.state-label{font-family:'Share Tech Mono',monospace;font-size:9px;fill:rgba(32,200,232,.6);pointer-events:none;text-anchor:middle;dominant-baseline:middle;}

/* breadcrumb */
#map-topbar{position:absolute;top:8px;left:8px;right:8px;display:flex;align-items:center;justify-content:space-between;z-index:50;pointer-events:none;}
.map-breadcrumb{display:flex;align-items:center;gap:6px;background:rgba(2,12,16,.9);border:1px solid var(--border);padding:5px 12px;font-size:10px;letter-spacing:2px;pointer-events:all;}
.bc-world{color:var(--text-dim);cursor:pointer;transition:color .15s;}.bc-world:hover{color:var(--cyan);}
.bc-sep{color:var(--border);}
.bc-country{color:var(--amber);}
.bc-sub{color:var(--cyan);}
.map-back-btn{background:rgba(2,12,16,.9);border:1px solid var(--cyan);color:var(--cyan);font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:2px;padding:5px 12px;cursor:pointer;text-transform:uppercase;transition:all .15s;pointer-events:all;display:none;}
.map-back-btn.visible{display:block;}
.map-back-btn:hover{background:rgba(32,200,232,.1);}

/* HUD */
#country-hud{position:absolute;bottom:46px;left:8px;background:rgba(2,12,16,.94);border:1px solid var(--border);padding:8px 12px;font-size:10px;color:var(--text-dim);letter-spacing:2px;display:none;pointer-events:none;max-width:260px;}
#country-hud.visible{display:block;animation:fadeIn .15s ease;}
.hud-name{font-family:'VT323',monospace;font-size:22px;color:var(--text-bright);letter-spacing:3px;line-height:1.2;margin-bottom:3px;}
.hud-sub{font-size:9px;color:var(--text-dim);letter-spacing:1px;}
.hud-effects{font-size:9px;color:var(--amber);margin-top:2px;letter-spacing:1px;}

/* tooltip */
#mtt{position:absolute;pointer-events:none;background:rgba(2,12,16,.97);border:1px solid var(--border-bright);box-shadow:0 0 30px rgba(42,122,136,.35);padding:12px 16px;width:295px;display:none;z-index:500;animation:fadeIn .15s ease;}
.mtt-tag{font-size:9px;letter-spacing:2px;display:inline-block;padding:1px 6px;border:1px solid;margin-bottom:7px;}
.mtt-title{font-family:'Courier Prime',monospace;font-size:14px;color:var(--text-bright);font-weight:700;line-height:1.3;margin-bottom:8px;}
.mtt-votes{display:flex;gap:6px;margin-bottom:7px;}
.mtt-v{flex:1;padding:5px 7px;border:1px solid var(--border);background:rgba(0,0,0,.3);position:relative;overflow:hidden;}
.mtt-v-fill{position:absolute;bottom:0;left:0;height:2px;}
.mtt-v-lbl{font-size:8px;letter-spacing:1px;}
.mtt-v-pct{font-family:'VT323',monospace;font-size:20px;line-height:1;}
.mtt-total{font-size:9px;color:var(--text-dim);letter-spacing:1px;}
.mtt-hint{font-size:9px;color:var(--cyan);letter-spacing:1px;margin-top:7px;border-top:1px solid var(--border);padding-top:7px;}

.map-legend{position:absolute;bottom:36px;left:0;right:0;height:38px;border-top:1px solid var(--border);background:rgba(2,12,16,.92);display:flex;align-items:center;padding:0 14px;gap:16px;backdrop-filter:blur(4px);}
.leg-item{display:flex;align-items:center;gap:5px;font-size:9px;color:var(--text-dim);letter-spacing:1px;}
.leg-dot{width:7px;height:7px;border-radius:50%;}
.map-expand-btn{position:absolute;top:8px;right:8px;font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:2px;background:rgba(4,15,18,.88);border:1px solid var(--border);color:var(--text-dim);padding:5px 10px;cursor:pointer;transition:all .15s;z-index:60;}
.map-expand-btn:hover{border-color:var(--cyan);color:var(--cyan);}

/* detail panel */
#detail-panel{position:absolute;right:0;top:0;bottom:74px;width:360px;background:rgba(2,10,14,.97);border-left:1px solid var(--border-bright);box-shadow:-16px 0 50px rgba(0,0,0,.7);display:none;flex-direction:column;z-index:200;animation:slideRight .2s ease;backdrop-filter:blur(8px);}
#detail-panel.open{display:flex;}
.dp-hdr{padding:14px 14px 10px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;}
.dp-close{background:none;border:none;color:var(--text-dim);font-size:16px;cursor:pointer;padding:2px 5px;}
.dp-close:hover{color:var(--red);}
.dp-body{flex:1;overflow-y:auto;padding:14px;}
.dp-desc{font-family:'Courier Prime',monospace;font-size:12px;color:var(--text);line-height:1.7;margin-bottom:14px;}
.dp-vote-lbl{font-size:9px;letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;margin-bottom:7px;}
.dp-vote-row{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--border);background:rgba(0,0,0,.2);cursor:pointer;transition:all .15s;position:relative;overflow:hidden;margin-bottom:5px;}
.dp-vote-row::after{content:'';position:absolute;bottom:0;left:0;height:2px;width:var(--w);transition:width .5s;}
.dp-vote-row.vr::after{background:var(--green);}.dp-vote-row.vd::after{background:var(--red);}.dp-vote-row.vu::after{background:var(--amber);}
.dp-vote-row:hover{border-color:var(--border-bright);}
.dp-vote-row.sel-r{border-color:var(--green);background:rgba(32,232,160,.05);}
.dp-vote-row.sel-d{border-color:var(--red);background:rgba(232,32,80,.05);}
.dp-vote-row.sel-u{border-color:var(--amber);background:rgba(232,160,32,.05);}
.dv-lbl{font-size:9px;letter-spacing:2px;text-transform:uppercase;flex:1;}
.vr .dv-lbl{color:var(--green);}.vd .dv-lbl{color:var(--red);}.vu .dv-lbl{color:var(--amber);}
.dv-pct{font-family:'VT323',monospace;font-size:24px;line-height:1;}
.vr .dv-pct{color:var(--green);}.vd .dv-pct{color:var(--red);}.vu .dv-pct{color:var(--amber);}
.dv-n{font-size:9px;color:var(--text-dim);min-width:70px;text-align:right;}
.dp-sec{font-size:9px;letter-spacing:3px;color:var(--text-dim);text-transform:uppercase;margin:12px 0 7px;padding-bottom:5px;border-bottom:1px solid var(--border);}
.ev-item{border:1px solid var(--border);padding:8px;margin-bottom:7px;background:var(--bg3);}
.ev-who{font-size:9px;color:var(--cyan);letter-spacing:1px;margin-bottom:3px;}
.ev-txt{font-family:'Courier Prime',monospace;font-size:11px;color:var(--text);line-height:1.5;}
.dp-ftr{padding:10px 14px;border-top:1px solid var(--border);display:flex;gap:7px;}

/* EFFECT HEATMAP SELECTOR */
#effect-selector{position:static !important;bottom:auto !important;right:auto !important;z-index:auto !important;background:transparent;border:none;padding:10px 12px;width:auto;animation:none;}
#effect-selector.hidden{display:block !important;}
.es-title{font-size:9px;letter-spacing:3px;color:var(--amber);text-transform:uppercase;margin-bottom:8px;}
.es-search{width:100%;font-family:'Share Tech Mono',monospace;font-size:11px;background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:6px 9px;outline:none;letter-spacing:1px;margin-bottom:6px;transition:border-color .15s;}
.es-search:focus{border-color:var(--border-bright);}
.es-list{max-height:180px;overflow-y:auto;}
.es-item{padding:7px 9px;border:1px solid transparent;font-family:'Courier Prime',monospace;font-size:11px;color:var(--text);cursor:pointer;transition:all .12s;margin-bottom:3px;}
.es-item:hover{border-color:var(--border);background:rgba(255,255,255,.02);}
.es-item.selected{border-color:var(--amber);color:var(--amber);background:rgba(232,160,32,.06);}
.es-item-meta{font-family:'Share Tech Mono',monospace;font-size:9px;color:var(--text-dim);letter-spacing:1px;margin-top:2px;}
.es-clear{width:100%;font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:2px;padding:5px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;text-transform:uppercase;margin-top:6px;transition:all .15s;}
.es-clear:hover{border-color:var(--red);color:var(--red);}

/* heatmap toggle btn */
.heat-toggle-btn{display:none !important;}
.heat-toggle-btn:hover{border-color:var(--amber);color:var(--amber);}
.heat-toggle-btn.active{border-color:var(--amber);color:var(--amber);background:rgba(232,160,32,.08);}

/* region breakdown in detail panel */
.region-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:5px;}
.rb-label{font-size:9px;color:var(--text);letter-spacing:1px;width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;}
.rb-bar{flex:1;height:6px;background:var(--border);position:relative;overflow:hidden;}
.rb-fill{position:absolute;top:0;left:0;height:100%;background:var(--amber);transition:width .5s;}
.rb-count{font-size:9px;color:var(--amber);min-width:40px;text-align:right;letter-spacing:1px;}

/* REGISTRY */
#registry-view{width:100%;height:100%;overflow:hidden;}
#registry-view,#evidence-view,#profile-view,#timelines-view{grid-column:2;grid-row:1;min-height:0;width:100%;height:100%;display:block;}
.reg-wrap{display:grid;grid-template-columns:200px 1fr 220px;height:100%;overflow:hidden;}
.reg-side{border-right:1px solid var(--border);padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;}
.reg-main{overflow-y:auto;padding:14px 18px;}
.reg-right{border-left:1px solid var(--border);padding:14px;overflow-y:auto;}
.sec-lbl{font-size:9px;letter-spacing:3px;color:var(--text-dim);text-transform:uppercase;margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid var(--border);}
.fi{display:flex;align-items:center;justify-content:space-between;padding:6px 9px;font-size:11px;color:var(--text);cursor:pointer;border:1px solid transparent;margin-bottom:3px;transition:all .12s;letter-spacing:1px;}
.fi:hover{border-color:var(--border);}.fi.active{border-color:var(--cyan-dim);color:var(--cyan);background:rgba(32,200,232,.04);}
.fi-c{font-size:9px;color:var(--text-dim);background:var(--bg3);padding:1px 5px;border:1px solid var(--border);}
.sblock{background:var(--bg3);border:1px solid var(--border);padding:10px;margin-bottom:7px;}
.snum{font-family:'VT323',monospace;font-size:28px;line-height:1;}
.slbl{font-size:9px;color:var(--text-dim);letter-spacing:2px;margin-top:2px;}
.tag{font-size:8px;letter-spacing:2px;padding:2px 6px;border:1px solid;text-transform:uppercase;display:inline-flex;align-items:center;gap:4px;}
.tag-pop{border-color:var(--amber-dim);color:var(--amber);background:rgba(232,160,32,.06);}
.tag-geo{border-color:var(--cyan-dim);color:var(--cyan);background:rgba(32,200,232,.06);}
.tag-media{border-color:#5a2a7a;color:var(--purple);background:rgba(180,80,255,.06);}
.tag-logo{border-color:var(--green-dim);color:var(--green);background:rgba(32,232,160,.06);}
.tag-hot{border-color:var(--red-dim);color:var(--red);background:rgba(232,32,80,.06);}
.effects-shell{padding:18px;min-height:100%;}
.effects-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;}
.effects-kicker{font-size:9px;letter-spacing:3px;color:var(--text-dim);text-transform:uppercase;margin-bottom:8px;}
.effects-title{font-family:'VT323',monospace;font-size:54px;line-height:.92;color:var(--text-bright);font-weight:400;letter-spacing:1px;}
.effects-subtitle{max-width:760px;font-size:12px;line-height:1.7;color:var(--text);margin-top:8px;}
.effects-tools{display:flex;flex-direction:column;gap:10px;min-width:280px;}
.effects-new-btn{width:100%;font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;padding:11px 12px;border:1px solid rgba(232,160,32,.45);background:rgba(232,160,32,.08);color:var(--amber);cursor:pointer;}
.effects-new-btn:hover{background:rgba(232,160,32,.12);border-color:var(--amber);}
.effects-search,.effects-sort{width:100%;font-family:'Share Tech Mono',monospace;font-size:11px;background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:10px 12px;letter-spacing:1px;outline:none;}
.effects-search:focus,.effects-sort:focus{border-color:var(--border-bright);box-shadow:var(--glow-cyan);}
.effects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;align-items:start;}
.ecard{border:1px solid var(--border);background:linear-gradient(180deg,rgba(8,24,29,.98),rgba(5,15,19,.98));position:relative;overflow:hidden;transition:border-color .2s,transform .2s,box-shadow .2s;animation:fadeIn .3s ease both;box-shadow:0 0 0 1px rgba(10,32,38,.85) inset,0 14px 30px rgba(0,0,0,.24);}
.ecard:hover{border-color:var(--border-bright);transform:translateY(-1px);box-shadow:0 0 0 1px rgba(26,90,104,.55) inset,0 18px 36px rgba(0,0,0,.32);}
.ec-hero{position:relative;aspect-ratio:1/1;overflow:hidden;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#08151a,#061015);}
.ec-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,8,10,.18) 0%,rgba(2,8,10,.08) 42%,rgba(2,8,10,.78) 100%);pointer-events:none;}
.ec-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.94) contrast(1.02);}
.ec-chipstack{position:absolute;top:10px;left:10px;display:flex;flex-wrap:wrap;gap:6px;z-index:2;max-width:58%;}
.ec-id-menu{position:absolute;top:10px;right:10px;z-index:3;}
.ec-id-trigger{font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:4px 7px;border:1px solid var(--border-bright);background:rgba(3,10,13,.88);color:var(--text-bright);cursor:pointer;}
.ec-id-trigger:hover{border-color:var(--amber);color:var(--amber);}
.ec-id-chip{font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:4px 7px;border:1px solid var(--border-bright);background:rgba(3,10,13,.88);color:var(--text-bright);cursor:default;pointer-events:none;}
.ec-id-chip:hover{border-color:var(--border-bright);color:var(--text-bright);}
.ec-id-menu-pop{position:absolute;top:calc(100% + 6px);right:0;min-width:132px;padding:6px;border:1px solid var(--border);background:rgba(4,13,17,.97);box-shadow:0 12px 26px rgba(0,0,0,.36);display:none;}
.ec-id-menu.open .ec-id-menu-pop{display:grid;gap:4px;}
.ec-id-action{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:7px 8px;border:1px solid var(--border);background:var(--bg3);color:var(--text);cursor:pointer;text-align:left;}
.ec-id-action:hover{border-color:var(--border-bright);color:var(--text-bright);} 
.ec-title-chip{position:absolute;right:10px;bottom:10px;z-index:2;max-width:82%;padding:8px 10px;border:1px solid rgba(232,160,32,.38);background:rgba(3,10,13,.88);color:var(--text-bright);font-family:'Courier Prime',monospace;font-size:15px;line-height:1;font-weight:700;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 0 0 1px rgba(232,160,32,.08) inset;}
.ec-body{padding:12px;display:flex;flex-direction:column;gap:10px;}
.ec-row{display:grid;gap:8px;}
.ec-row.ec-row-3,.ec-row.ec-row-meta{grid-template-columns:repeat(3,minmax(0,1fr));}
.ec-stat{border:1px solid var(--border);background:rgba(3,11,14,.85);padding:8px 9px;min-height:58px;}
.ec-stat-label{font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);margin-bottom:5px;}
.ec-stat-value{font-family:'VT323',monospace;font-size:26px;line-height:.95;color:var(--text-bright);}
.ec-stat-sub{font-size:9px;color:var(--text-dim);letter-spacing:1px;margin-top:3px;}
.ec-stat.shared .ec-stat-value{color:var(--green);}
.ec-stat.accepted .ec-stat-value{color:var(--cyan);}
.ec-stat.unknown .ec-stat-value{color:var(--amber);}
.ec-meta-pill{border:1px solid var(--border);background:rgba(3,11,14,.82);padding:8px 9px;min-height:48px;display:flex;flex-direction:column;justify-content:center;}
.ec-meta-label{font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);margin-bottom:4px;}
.ec-meta-value{font-size:12px;color:var(--text-bright);line-height:1.25;}
.ec-meta-value.status-active{color:var(--green);}
.ec-meta-value.status-inactive{color:var(--red);}
.ec-accordion-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--amber);background:transparent;border:1px dashed var(--amber-dim);padding:8px 10px;cursor:pointer;}
.ec-accordion-btn:hover{border-color:var(--amber);background:rgba(232,160,32,.05);}
.ec-accordion-meta{font-size:9px;color:var(--text-dim);letter-spacing:1px;}
.ec-ev-panel{display:none;gap:6px;}
.ec-ev-actions{display:flex;justify-content:flex-end;margin-top:2px;}
.ec-ev-submit{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:2px;text-transform:uppercase;padding:7px 10px;border:1px solid rgba(232,160,32,.35);background:rgba(232,160,32,.06);color:var(--amber);cursor:pointer;}
.ec-ev-submit:hover{border-color:var(--amber);background:rgba(232,160,32,.1);}
.ec-ev-panel.open{display:grid;animation:fadeIn .2s ease;}
.ev-item{padding:8px 10px;border:1px solid var(--border);background:var(--bg3);}
.ev-who{font-size:9px;letter-spacing:2px;color:var(--cyan);margin-bottom:4px;}
.ev-txt{font-size:11px;color:var(--text-bright);line-height:1.5;}
@media (max-width: 980px){.effects-head{flex-direction:column;}.effects-tools{width:100%;min-width:0;}.effects-title{font-size:42px;}.ec-row.ec-row-3,.ec-row.ec-row-meta{grid-template-columns:1fr;}}
.tr-item{padding:9px;border:1px solid var(--border);background:var(--bg3);margin-bottom:7px;cursor:pointer;transition:all .15s;position:relative;}
.tr-item:hover{border-color:var(--border-bright);}
.tr-rk{font-family:'VT323',monospace;font-size:22px;color:var(--border);position:absolute;top:5px;right:7px;line-height:1;}
.tr-nm{font-family:'Courier Prime',monospace;font-size:11px;color:var(--text-bright);font-weight:700;margin-bottom:3px;padding-right:20px;}
.tr-bar{height:2px;background:var(--border);margin:4px 0;overflow:hidden;position:relative;}
.tr-fill{position:absolute;top:0;left:0;height:100%;background:var(--amber);}
.tr-st{font-size:9px;color:var(--text-dim);letter-spacing:1px;}
.tr-st span{color:var(--amber);}

#evidence-view,#profile-view,#timelines-view{width:100%;height:100%;overflow-y:auto;padding:24px;}
.view-center{max-width:900px;margin:0 auto;padding:24px;}
#registry-view,#evidence-view,#profile-view{padding:18px;overflow:auto;}
#registry-view .reg-main{padding:0 !important;overflow:auto;height:100%;}
#cards-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;}
#registry-view .reg-main .ecard{padding:0;border:1px solid var(--border);background:transparent;}
#evidence-view .view-center,#profile-view .view-center{max-width:none;height:100%;display:flex;flex-direction:column;justify-content:flex-start;}


.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px);}
.modal-overlay.hidden{display:none;}
.modal{background:var(--bg2);border:1px solid var(--border-bright);box-shadow:0 0 50px rgba(42,122,136,.25);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:fadeIn .2s ease;}

.modal.modal-survey{max-width:min(1100px,92vw);height:min(860px,88vh);overflow:hidden;padding:0;background:rgba(3,12,16,.98)}
.modal-survey .survey-frame{width:100%;height:100%;border:0;display:block;background:transparent}

.mhdr{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;}
.mtitle{font-family:'VT323',monospace;font-size:22px;color:var(--amber);letter-spacing:3px;}
.mclose{font-size:16px;color:var(--text-dim);background:none;border:none;cursor:pointer;}
.mclose:hover{color:var(--red);}
.mbody{padding:16px;}
.fg{margin-bottom:12px;}
.fl{font-size:9px;letter-spacing:3px;color:var(--text-dim);text-transform:uppercase;margin-bottom:5px;display:block;}
.fi2,.ft,.fs2{width:100%;font-family:'Share Tech Mono',monospace;font-size:12px;background:var(--bg3);border:1px solid var(--border);color:var(--text);padding:8px 10px;letter-spacing:1px;outline:none;transition:border-color .15s;}
.fi2:focus,.ft:focus{border-color:var(--border-bright);}
.ft{resize:vertical;min-height:72px;}
.mftr{padding:10px 16px;border-top:1px solid var(--border);display:flex;gap:7px;justify-content:flex-end;}

#notif{position:fixed;bottom:18px;right:18px;background:var(--bg2);border:1px solid var(--green);box-shadow:var(--glow-green);padding:9px 16px;font-size:10px;color:var(--green);letter-spacing:2px;z-index:2000;text-transform:uppercase;animation:fadeIn .2s ease;}
#notif.hidden{display:none;}
::-webkit-scrollbar{width:4px;}::-webkit-scrollbar-track{background:var(--bg);}::-webkit-scrollbar-thumb{background:var(--border);}::-webkit-scrollbar-thumb:hover{background:var(--border-bright);}

@media (min-width: 2200px){
  .content{grid-template-columns:clamp(210px,12vw,260px) minmax(0,1fr) clamp(210px,12vw,260px);}
  header{height:48px;padding:0 14px;}
  .tab{padding:0 14px;height:48px;}
  .logo{font-size:22px;}
  .side-header{padding:8px 12px 7px;}
  .side-body{padding:8px 10px;}
  .rank-item{padding:7px 9px;margin-bottom:5px;}
}


.map-left{display:grid;grid-template-rows:auto minmax(7rem,1fr) auto auto;align-content:stretch;}
.map-right{display:grid;grid-template-rows:auto minmax(7rem,1fr) auto minmax(7rem,1fr);align-content:stretch;}
#recent-signals,#top-votes,#top-divisive{min-height:0;overflow-y:auto;}
.map-filter-panel{min-height:0;max-height:42%;display:flex;flex-direction:column;}
#effect-selector{display:flex;flex-direction:column;min-height:0;height:100%;}
#effect-selector .es-list{flex:1;min-height:5rem;overflow-y:auto;}
.quick-submit{margin-top:0;align-self:stretch;}
.app-footer{height:4.5rem;padding:0.5rem 0 0.9rem;border-top:1px solid var(--border);background:rgba(4,15,18,.99);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));z-index:140;flex-shrink:0;}
.app-footer .foot-stat{padding:0.45rem 0.8rem 0.4rem;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:flex-end}
.app-footer .foot-num{font-family:'VT323',monospace;font-size:1.55rem;line-height:1;color:var(--text-bright)}
.app-footer .foot-lbl{font-size:0.52rem;letter-spacing:0.12rem;color:var(--text-dim);text-transform:uppercase;margin-top:0.1rem}
@media (max-height: 900px){
  .content{grid-template-columns:clamp(12rem,15vw,15rem) minmax(0,1fr) clamp(12rem,15vw,15rem);}
  .side-header{padding:0.45rem 0.7rem 0.35rem;}
  .side-body{padding:0.45rem 0.6rem;}
  .rank-item{padding:0.35rem 0.45rem;margin-bottom:0.25rem;}
  .qs-btn{padding:0.4rem;}
  .app-footer{height:3.75rem;padding:0.35rem 0 0.55rem;}
}


.map-right #top-votes,
.map-right #top-divisive{
  flex:0 0 auto !important;
  overflow-y:auto;
  max-height:min(34vh, 22rem);
}
.map-right .side-header + #top-votes{margin-bottom:0;}
.map-right > div[style*="border-top"]{margin-top:0;}
.map-left #recent-signals{max-height:min(34vh, 22rem);}
.app-footer{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:center;
}
.foot-stat{
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding:0 .9rem;
  border-right:1px solid var(--border);
}
.foot-stat:last-child{border-right:none;}
.foot-num{font-family:'VT323',monospace;font-size:2rem;line-height:1;color:var(--text-bright);}
.foot-lbl{font-size:.625rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);margin-top:.15rem;}
@media (max-height: 1080px){
  .map-left #recent-signals{max-height:26vh;}
  .map-right #top-votes,.map-right #top-divisive{max-height:22vh;}
}


@media (min-width: 901px) {
/* v11 layout cleanup */
.map-left,.map-right{
  display:flex !important;
  flex-direction:column !important;
  align-content:normal !important;
  justify-content:flex-start !important;
}
.map-left .side-header,
.map-right .side-header{
  flex:0 0 auto !important;
}
.map-left #recent-signals,
.map-right #top-votes,
.map-right #top-divisive{
  flex:0 1 auto !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow-y:auto !important;
}
.map-filter-panel{
  flex:0 0 auto !important;
  max-height:none !important;
}
.quick-submit{
  flex:0 0 auto !important;
  margin-top:0 !important;
}
.app-footer{
  height:3.5rem !important;
  padding:0 !important;
  border-top:1px solid var(--border) !important;
  background:rgba(4,15,18,.99) !important;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  align-items:stretch !important;
}
.app-footer .foot-stat{
  padding:.35rem .75rem .3rem !important;
  border-right:1px solid var(--border) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-end !important;
  min-width:0 !important;
}
.app-footer .foot-stat:last-child{border-right:none !important;}
.app-footer .foot-num{
  font-family:'VT323',monospace !important;
  font-size:1.375rem !important;
  line-height:1 !important;
  color:var(--text-bright) !important;
}
.app-footer .foot-lbl{
  font-size:.5rem !important;
  letter-spacing:.125rem !important;
  color:var(--text-dim) !important;
  text-transform:uppercase !important;
  margin-top:0 !important;
}
}


/* ═══════════════════════════════════════════════════
   MOBILE — breakpoint ≤ 900px
   Strategy:
   • Header collapses to logo + account only
   • 6-tab nav tabs hidden → 5-slot bottom nav bar
   • 3-col content grid → single column
   • Left/right rails → swipe-up bottom drawer
   • Detail panel → bottom sheet (full-width)
   • Footer stats bar hidden (content in profile)
   • Map HUD repositioned to top on mobile
═══════════════════════════════════════════════════ */

/* ── Bottom nav bar ── */
.mob-nav {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: 56px;
  background: rgba(4,12,15,.98);
  border-top: 1px solid var(--border-bright);
  z-index: 500;
  grid-template-columns: repeat(5, 1fr);
  align-items: stretch;
}
.mob-nav-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  font-family: 'Share Tech Mono', monospace;
  font-size: 8px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-dim);
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 6px 4px 8px;
  transition: color .15s;
  -webkit-tap-highlight-color: transparent;
  min-height: 44px;
}
.mob-nav-btn svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.mob-nav-btn.active { color: var(--amber); }
.mob-nav-btn.active svg { filter: drop-shadow(0 0 4px rgba(232,160,32,.5)); }
.mob-nav-btn:active { color: var(--cyan); }

/* ── Drawer (left/right rail content on mobile) ── */

/* ── Detail panel as bottom sheet on mobile ── */
@media (max-width: 900px) {
  #detail-panel {
    position: fixed !important;
    top: auto !important;
    right: 0 !important;
    bottom: 56px !important;
    left: 0 !important;
    width: 100% !important;
    max-height: 72dvh;
    border-left: none !important;
    border-top: 1px solid var(--border-bright) !important;
    box-shadow: 0 -8px 32px rgba(0,0,0,.6) !important;
    z-index: 480 !important;
    transform: translateY(100%);
    transition: transform .28s cubic-bezier(.32,.72,0,1) !important;
    display: flex !important;
    flex-direction: column;
  }
  #detail-panel.open {
    transform: translateY(0) !important;
  }
}

@media (max-width: 900px) {

  /* ── Lock body scroll, account for bottom nav ── */
  html, body { overflow: hidden; }
  .app {
    grid-template-rows: auto minmax(0,1fr);
    height: 100dvh;
    padding-bottom: 56px; /* room for bottom nav */
  }

  /* ── Header: logo + account only, tabs hidden ── */
  header {
    padding: 0 12px;
    height: 44px;
  }
  .nav-tabs { display: none !important; }
  .live-pill { display: none !important; }
  .btn.btn-primary { display: none !important; }
  .logo { font-size: 18px; letter-spacing: 2px; margin-right: 0; }
  .logo small { font-size: 7px; letter-spacing: 1px; }
  .header-right { gap: 6px; }

  /* ── Bottom nav shown ── */
  .mob-nav { display: grid; }

  /* ── Content: single column ── */
  .content {
    grid-template-columns: 1fr !important;
    overflow: visible;
  }

  /* ── Hide desktop rails ── */
  .shell-rail,
  #left-map, #right-map,
  #left-registry, #right-registry,
  #left-evidence, #right-evidence,
  #left-profile, #right-profile,
  #left-surveys, #right-surveys,
  #left-account, #right-account,
  #left-admin, #right-admin,
  #left-forgot-password, #right-forgot-password,
  #left-reset-password, #right-reset-password,
  #left-change-password, #right-change-password,
  #left-timelines, #right-timelines {
    display: none !important;
  }

  /* ── All views fill the column ── */
  #map-view,
  #registry-view,
  #evidence-view,
  #profile-view,
  #surveys-view,
  #account-view,
  #admin-view,
  #forgot-password-view,
  #reset-password-view,
  #change-password-view,
  #survey-view,
  #results-view,
  #timelines-view {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100%;
    height: 100%;
    max-height: 100%;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* ── Map specific ── */
  #map-view { overflow: hidden; }
  #world-svg { width: 100%; height: 100%; }

  /* Map HUD: move to bottom above the nav bar */
  #country-hud {
    bottom: 8px !important;
    left: 8px !important;
    max-width: calc(100vw - 16px) !important;
  }

  /* Tooltip: cap width on small screens */
  #mtt { width: min(295px, calc(100vw - 24px)) !important; }

  /* Breadcrumb: smaller on mobile */
  .map-breadcrumb { font-size: 8px; letter-spacing: 1px; padding: 4px 8px; }

  /* ── Footer stats: hide on mobile ── */
  .app-footer { display: none !important; }

  /* ── Registry card grid: single col on narrow ── */
  .effects-grid,
  #cards-container {
    grid-template-columns: 1fr !important;
    gap: 12px;
  }
  .effects-shell { padding: 12px; }
  .effects-head { flex-direction: column; gap: 12px; }
  .effects-title { font-size: 36px; }
  .effects-tools { width: 100%; min-width: 0; }

  /* ── Effect card hero: reduce aspect on phone ── */
  .ec-hero { aspect-ratio: 16/9; }

  /* ── View center: full width ── */
  .view-center { max-width: 100%; padding: 14px; }

  /* ── Modals: full-bleed on small screens ── */
  .modal-overlay { padding: 12px; align-items: flex-end; }
  .modal { max-width: 100% !important; max-height: 88dvh; border-radius: 0; }
  .modal.modal-survey { max-width: 100% !important; width: 100% !important; height: 82dvh !important; }

  /* ── Survey/results inline views ── */
  #survey-view, #results-view { padding: 12px; }

  /* ── Notif: above bottom nav ── */
  #notif { bottom: 66px; right: 12px; left: 12px; text-align: center; }

  /* ── Quick touch target bumps ── */
  .rank-item { padding: 10px 12px; }
  .recent-item { padding: 10px 12px; }
  .btn { padding: 8px 14px; font-size: 10px; }

  /* ── Drawer shown on mobile ── */
}

/* ── Extra narrow (≤ 480px) ── */
@media (max-width: 480px) {
  .logo { font-size: 16px; }
  .effects-title { font-size: 30px; }
  .mob-nav-btn { font-size: 7px; letter-spacing: 1px; }
  .mob-nav-btn svg { width: 16px; height: 16px; }
  header { height: 42px; }
  .app { padding-bottom: 56px; }
}


/* ── JS-driven mobile class (supplements media query) ── */
body.mm-mobile .mob-nav { display: grid !important; }
body.mm-mobile .nav-tabs { display: none !important; }
body.mm-mobile .live-pill { display: none !important; }
body.mm-mobile .btn.btn-primary { display: none !important; }
body.mm-mobile .shell-rail,
body.mm-mobile #left-map, body.mm-mobile #right-map,
body.mm-mobile #left-registry, body.mm-mobile #right-registry,
body.mm-mobile #left-evidence, body.mm-mobile #right-evidence,
body.mm-mobile #left-profile, body.mm-mobile #right-profile,
body.mm-mobile #left-surveys, body.mm-mobile #right-surveys,
body.mm-mobile #left-account, body.mm-mobile #right-account,
body.mm-mobile #left-admin, body.mm-mobile #right-admin,
body.mm-mobile #left-forgot-password, body.mm-mobile #right-forgot-password,
body.mm-mobile #left-reset-password, body.mm-mobile #right-reset-password,
body.mm-mobile #left-change-password, body.mm-mobile #right-change-password,
body.mm-mobile #left-timelines, body.mm-mobile #right-timelines {
  display: none !important;
}
body.mm-mobile .content { grid-template-columns: 1fr !important; overflow: visible; }
body.mm-mobile .app-footer { display: none !important; }
body.mm-mobile .app { grid-template-rows: auto minmax(0,1fr); height: 100dvh; padding-bottom: 56px; }
body.mm-mobile header { padding: 0 12px; height: 44px; }
body.mm-mobile .logo { font-size: 18px; letter-spacing: 2px; margin-right: 0; }
body.mm-mobile #map-view,
body.mm-mobile #registry-view,
body.mm-mobile #evidence-view,
body.mm-mobile #profile-view,
body.mm-mobile #surveys-view,
body.mm-mobile #account-view,
body.mm-mobile #admin-view,
body.mm-mobile #forgot-password-view,
body.mm-mobile #reset-password-view,
body.mm-mobile #change-password-view,
body.mm-mobile #survey-view,
body.mm-mobile #results-view,
body.mm-mobile #timelines-view {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 100%;
  height: 100%;
  max-height: 100%;
  overflow-y: auto;
}
body.mm-mobile #map-view { overflow: hidden; }
body.mm-mobile .effects-grid,
body.mm-mobile #cards-container { grid-template-columns: 1fr !important; }

