*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --c:#E7B95F;--c2:#B98937;--gold2:#FFDEA0;--cyan:#00DDF6;
  --bg:#020203;--sf:#090A0C;--card:#101114;--card2:#15171B;
  --bd:rgba(255,255,255,.095);--tx:#F6F3ED;--dim:#8D8981;
  --red:#FF4D57;--grn:#30D47A;--org:#FF9D43;--pur:#B47CFF;
}
html,body{height:100%;background:var(--bg);color:var(--tx);
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  overflow:hidden;-webkit-user-select:none;user-select:none}

/* TOPBAR */
.topbar{position:fixed;top:0;left:0;right:0;height:62px;
  background:linear-gradient(180deg,rgba(8,8,10,.98),rgba(4,4,5,.94));backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(231,185,95,.16);display:flex;align-items:center;
  justify-content:space-between;padding:0 13px;z-index:1000;box-shadow:0 12px 36px rgba(0,0,0,.28)}
.tl{display:flex;align-items:center;gap:10px;min-width:0}
.emLogo{width:34px;height:34px;border-radius:11px;box-shadow:0 0 26px rgba(231,185,95,.18)}
.appsub{display:block;margin-top:2px;color:#736f68;font:700 8px/1.1 'Courier New',monospace;letter-spacing:.13em;white-space:nowrap}
.sdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#444;transition:all .3s;vertical-align:1px;margin-right:3px}
.sdot.on{background:var(--grn);box-shadow:0 0 8px var(--grn)}
.sdot.loading{background:var(--org);animation:blink 1s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.appname{display:block;font-size:14px;font-weight:950;letter-spacing:.12em;
  font-family:'Courier New',monospace;white-space:nowrap}
.appname span{color:var(--gold2)}
.tr{display:flex;gap:1px}
.ibtn{background:none;border:none;color:var(--dim);font-size:18px;
  padding:6px 8px;border-radius:8px;cursor:pointer;transition:.15s}
.ibtn:hover,.ibtn:active,.ibtn.listening{background:var(--card);color:var(--c)}
.sos-ibtn{color:var(--red)}
.ibtn.listening{background:var(--red);color:#fff}

/* SEARCH */
.searchbar{position:fixed;top:102px;left:10px;right:10px;z-index:900}
.searchrow{display:flex;align-items:center;
  background:linear-gradient(180deg,rgba(18,18,20,.97),rgba(10,10,12,.97));backdrop-filter:blur(16px);
  border:1px solid rgba(231,185,95,.18);border-radius:15px;
  padding:0 12px;gap:8px;box-shadow:0 14px 34px rgba(0,0,0,.42)}
.si{font-size:16px;flex-shrink:0}
.searchrow input{flex:1;background:none;border:none;color:var(--tx);
  font-size:14px;padding:12px 0;outline:none}
.searchrow input::placeholder{color:var(--dim)}
.clearbtn{background:none;border:none;color:var(--dim);font-size:15px;cursor:pointer}
.suggs{margin-top:4px;background:rgba(17,24,32,.97);
  border:1px solid var(--bd);border-radius:10px;overflow:hidden;display:none}
.sug{padding:10px 14px;cursor:pointer;font-size:13px;
  border-bottom:1px solid var(--bd);display:flex;gap:10px;align-items:center;transition:.15s}
.sug:last-child{border-bottom:none}
.sug:hover,.sug:active{background:var(--card)}
.sugico{font-size:18px;flex-shrink:0}
.sugdet .sugn{font-size:13px;font-weight:500}
.sugdet .sugd{font-size:11px;color:var(--dim);margin-top:1px}

/* MAP */
#map{position:fixed;inset:0;z-index:1}
.leaflet-tile{filter:invert(1) hue-rotate(180deg) brightness(.82) contrast(1.15)}
.leaflet-container{background:#050A0F}
.leaflet-control-zoom{background:rgba(13,17,23,.9)!important;border:1px solid var(--bd)!important}
.leaflet-control-zoom a{background:rgba(13,17,23,.9)!important;color:var(--tx)!important;border-color:var(--bd)!important}
.leaflet-popup-content-wrapper{background:var(--sf)!important;border:1px solid var(--c)!important;
  color:var(--tx)!important;border-radius:12px!important;font-family:inherit!important}
.leaflet-popup-tip{background:var(--sf)!important}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(0,229,255,.4)}70%{box-shadow:0 0 0 10px rgba(0,229,255,0)}100%{box-shadow:0 0 0 0 rgba(0,229,255,0)}}

/* NAV PANEL */
.navpanel{position:fixed;top:62px;left:0;right:0;z-index:950;
  background:rgba(13,17,23,.97);backdrop-filter:blur(10px);
  border-bottom:2px solid var(--c)}
.navturn{display:flex;align-items:center;gap:12px;padding:12px 14px}
.turnarrow{font-size:32px;width:44px;text-align:center;color:var(--c);flex-shrink:0}
.turninfo{flex:1}
.turndist{font-size:22px;font-weight:700;color:var(--c)}
.turnstreet{font-size:13px;color:var(--tx);margin-top:2px}
.stopnavbtn{background:rgba(255,68,68,.15);border:1px solid var(--red);
  border-radius:50%;width:34px;height:34px;color:var(--red);font-size:15px;cursor:pointer}
.navmeta{display:flex;align-items:center;gap:8px;padding:6px 14px;
  background:rgba(0,229,255,.05);font-size:12px;color:var(--dim)}
.dot{color:var(--bd)}
.reroute-btn{margin-left:auto;background:none;border:1px solid var(--c);
  border-radius:6px;color:var(--c);font-size:11px;padding:3px 8px;cursor:pointer}

/* BOTTOM PANEL */
.panel{position:fixed;bottom:0;left:0;right:0;z-index:800;
  background:linear-gradient(180deg,rgba(12,12,14,.97),rgba(4,4,5,.99));backdrop-filter:blur(20px);
  border-top:1px solid rgba(231,185,95,.18);border-radius:22px 22px 0 0;
  max-height:360px;display:flex;flex-direction:column;transition:max-height .3s;
  box-shadow:0 -22px 55px rgba(0,0,0,.38)}
.phandle{padding:6px 14px 2px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:5px;flex-shrink:0}
.handlebar{width:36px;height:3px;background:var(--bd);border-radius:2px}
.paneltitle{display:flex;align-items:center;gap:7px;width:100%;
  font-size:12px;font-family:'Courier New',monospace;letter-spacing:.08em}
.aiicon{color:var(--c);font-size:14px}
.aistateind{margin-left:auto;font-size:10px;color:#333;transition:all .3s}
.aistateind.on{color:var(--c);text-shadow:0 0 6px var(--c)}
.aistateind.loading{color:var(--org);animation:blink 1s infinite}

/* TABS */
.tabs{display:flex;border-bottom:1px solid var(--bd);flex-shrink:0}
.tab{flex:1;background:none;border:none;color:var(--dim);
  font-size:11px;padding:7px 2px;cursor:pointer;
  border-bottom:2px solid transparent;transition:.15s;letter-spacing:.04em}
.tab.active{color:var(--c);border-bottom-color:var(--c)}
.tc{display:none;flex:1;overflow-y:auto;flex-direction:column}
.tc.active{display:flex}

/* CHAT TAB */
.msgs{flex:1;padding:8px 12px;display:flex;flex-direction:column;gap:8px;display:none}
.msg{max-width:92%;padding:8px 12px;border-radius:10px;font-size:13px;line-height:1.5}
.msg.user{align-self:flex-end;background:#0D2A3A;border:1px solid var(--c2)}
.msg.ai{align-self:flex-start;background:var(--card);border:1px solid var(--bd)}
.msg.ai .mh{font-size:10px;color:var(--c);margin-bottom:3px;
  letter-spacing:.1em;font-family:'Courier New',monospace}
.msg.ai strong,.msg.ai b{color:var(--c)}
.msg.ai p{margin-bottom:3px}
.msg.ai ul,.msg.ai ol{padding-left:14px;margin-bottom:4px}
.msg.ai h4{color:var(--c);margin:6px 0 2px;font-size:13px}
.chatbar{display:flex;gap:6px;padding:7px 10px;
  border-top:1px solid var(--bd);flex-shrink:0}
.chatbar input{flex:1;background:var(--card);border:1px solid var(--bd);
  border-radius:20px;color:var(--tx);font-size:13px;
  padding:8px 12px;outline:none;transition:.2s}
.chatbar input:focus{border-color:var(--c)}
.chatbar input::placeholder{color:var(--dim)}
.chatbar button{background:var(--c);border:none;border-radius:50%;
  color:var(--bg);font-size:15px;width:36px;height:36px;
  cursor:pointer;font-weight:700;flex-shrink:0}
#chatSend:hover{background:var(--c2)}

/* PROGRESS */
.progwrap{padding:4px 12px 6px;display:none;flex-shrink:0}
.pb{height:2px;background:var(--bd);border-radius:1px;overflow:hidden}
.pf{height:100%;background:var(--c);border-radius:1px;transition:width .3s;width:0}
.pt{font-size:10px;color:var(--dim);text-align:center;margin-top:3px;
  font-family:'Courier New',monospace}

/* MAP TAB */
.filterrow{display:flex;gap:6px;overflow-x:auto;padding:8px 10px;
  scrollbar-width:none;flex-shrink:0;border-bottom:1px solid var(--bd)}
.filterrow::-webkit-scrollbar{display:none}
.fchip{background:var(--card);border:1px solid var(--bd);
  border-radius:16px;color:var(--dim);font-size:12px;
  padding:4px 10px;cursor:pointer;white-space:nowrap;transition:.15s;flex-shrink:0}
.fchip.active{border-color:var(--c);color:var(--c)}
.nblist{flex:1;overflow-y:auto;padding:6px 10px;display:flex;flex-direction:column;gap:6px}
.nbhint{color:var(--dim);font-size:12px;text-align:center;padding:16px}
.nbitem{background:var(--card);border:1px solid var(--bd);border-radius:8px;
  padding:8px 10px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:.15s}
.nbitem:hover{border-color:var(--c)}
.nbico{font-size:18px;flex-shrink:0}
.nbinfo{flex:1;min-width:0}
.nbn{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nbd{font-size:11px;color:var(--dim)}
.nbp{font-size:11px;color:var(--c)}
.nbnav{background:var(--c);border:none;border-radius:6px;color:var(--bg);
  font-size:11px;padding:5px 8px;cursor:pointer;font-weight:700;flex-shrink:0}

/* MEDICAL TAB */
.medgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px}
.medbtn{background:var(--card);border:1px solid var(--bd);
  border-radius:8px;color:var(--tx);font-size:12px;
  padding:10px 6px;cursor:pointer;transition:.15s;text-align:center;line-height:1.4}
.medbtn:hover,.medbtn:active{border-color:var(--c);color:var(--c)}

/* SOS TAB */
.sospad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px}
.sb{background:var(--card);border:2px solid var(--bd);border-radius:10px;
  padding:10px 4px;cursor:pointer;font-size:11px;
  display:flex;flex-direction:column;align-items:center;gap:2px;transition:.15s}
.sb:active{transform:scale(.95)}
.sb b{font-size:13px;display:block}
.sb small{font-size:10px;color:var(--dim)}
.sb.red{border-color:var(--red)} .sb.red b{color:var(--red)}
.sb.blue{border-color:#0088FF} .sb.blue b{color:#0088FF}
.sb.org{border-color:var(--org)} .sb.org b{color:var(--org)}
.sb.pur{border-color:var(--pur)} .sb.pur b{color:var(--pur)}
.sb.grn{border-color:var(--grn)} .sb.grn b{color:var(--grn)}
.sb.cyan{border-color:var(--c)} .sb.cyan b{color:var(--c)}
.soslinks{display:flex;flex-direction:column;gap:6px;padding:0 10px 10px}
.soslinks button{background:var(--card);border:1px solid var(--bd);
  border-radius:8px;color:var(--tx);font-size:12px;
  padding:10px 12px;cursor:pointer;text-align:left;transition:.15s}
.soslinks button:hover{border-color:var(--c);color:var(--c)}

/* SOS OVERLAY */
.sosoverlay{position:fixed;inset:0;background:rgba(0,0,0,.88);
  z-index:2000;display:none;align-items:flex-end;justify-content:center}
.sosbox{background:var(--sf);border:1px solid var(--red);
  border-radius:20px 20px 0 0;padding:20px 14px 32px;
  width:100%;max-width:480px;position:relative;text-align:center}
.sosX{position:absolute;top:12px;right:14px;background:none;
  border:none;color:var(--dim);font-size:20px;cursor:pointer}
.sosring{font-size:48px;margin-bottom:8px}
.sosbox h2{color:var(--red);font-size:20px;margin-bottom:14px}
.bigSOSbtn{width:100%;background:var(--red);border:none;border-radius:12px;
  color:#fff;font-size:18px;font-weight:700;padding:16px;cursor:pointer;
  margin-bottom:12px;letter-spacing:.05em}
.sosgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sosgrid button{background:var(--card);border:1px solid var(--bd);
  border-radius:8px;color:var(--tx);font-size:12px;
  padding:10px 8px;cursor:pointer;text-align:center}

/* DRAWER */
.drawer{position:fixed;top:0;right:0;bottom:0;width:240px;
  background:var(--sf);border-left:1px solid var(--bd);z-index:1500}
.drawerhead{display:flex;align-items:center;justify-content:space-between;
  padding:14px;border-bottom:1px solid var(--bd);
  font-family:'Courier New',monospace;font-weight:700;color:var(--c)}
.drawerhead button{background:none;border:none;color:var(--dim);font-size:18px;cursor:pointer}
.di{padding:13px 14px;cursor:pointer;font-size:13px;
  border-bottom:1px solid var(--bd);transition:.15s}
.di:hover{background:var(--card);color:var(--c)}
.dsep{border:none;border-top:1px solid var(--bd)}
.dinfo{padding:12px 14px;font-size:11px;color:var(--dim);line-height:1.6}

/* POI DETAIL */
.poidetail{position:fixed;bottom:calc(340px + 8px);left:8px;right:8px;
  background:var(--sf);border:1px solid var(--c);border-radius:12px;
  padding:12px 14px;z-index:700;font-size:13px;max-width:480px;margin:0 auto}
.poidetail h4{color:var(--c);margin-bottom:4px;font-size:14px}
.pdist{font-size:11px;color:var(--dim);margin-bottom:6px}
.pnote{color:var(--tx);margin-bottom:6px;font-size:12px}
.pphone a{color:var(--c);font-weight:600}
.pbtns{display:flex;gap:6px;margin-top:8px}
.pbtns button{flex:1;background:var(--card);border:1px solid var(--bd);
  border-radius:7px;color:var(--tx);font-size:12px;padding:7px;cursor:pointer;transition:.15s}
.pbtns button:hover{border-color:var(--c);color:var(--c)}
.poiX{position:absolute;top:8px;right:10px;background:none;
  border:none;color:var(--dim);font-size:15px;cursor:pointer}

/* Scrollbar */
::-webkit-scrollbar{width:3px}
::-webkit-scrollbar-thumb{background:var(--bd)}

/* LUMIN AI Universe / Emergency safety additions */
.homeback{text-decoration:none;display:grid;place-items:center}
.emergencyNote{flex-shrink:0;margin:6px 10px 0;padding:7px 9px;border:1px solid rgba(255,68,68,.28);border-radius:8px;background:rgba(255,68,68,.07);color:#ffb2b2;font-size:9px;line-height:1.35}
#localAIItem{color:#9ff4ff}
#localAIItem.busy{opacity:.75;pointer-events:none}
#localAIItem.ready{color:#67f0a8}
#localAIItem.err{color:#ff9b9b}

/* PREMIUM SYSTEM STATUS */
.systembar{position:fixed;top:62px;left:0;right:0;height:34px;z-index:930;display:flex;align-items:center;gap:6px;padding:5px 10px;background:rgba(3,3,4,.88);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.055);overflow-x:auto;scrollbar-width:none}
.systembar::-webkit-scrollbar{display:none}
.statusPill{flex:0 0 auto;display:inline-flex;align-items:center;min-height:23px;padding:4px 8px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.025);color:#928e86;font-size:9px;font-weight:850;letter-spacing:.02em;white-space:nowrap}
.statusPill.ok{color:#91efb7;border-color:rgba(48,212,122,.22);background:rgba(48,212,122,.055)}
.statusPill.warn{color:#ffd28b;border-color:rgba(255,157,67,.22);background:rgba(255,157,67,.055)}
.statusPill.info{color:#9aefff;border-color:rgba(0,221,246,.20);background:rgba(0,221,246,.05)}
.statusPill.gold{color:var(--gold2);border-color:rgba(231,185,95,.23);background:rgba(231,185,95,.055)}
.installPwaBtn{flex:0 0 auto;border:1px solid rgba(231,185,95,.30);background:linear-gradient(135deg,var(--gold2),var(--c));color:#171109;border-radius:999px;padding:5px 10px;font-size:9px;font-weight:950;cursor:pointer}
.installPwaBtn[hidden]{display:none}
.premiumAction{color:var(--gold2)!important;background:linear-gradient(90deg,rgba(231,185,95,.08),transparent)}
.drawer{box-shadow:-26px 0 70px rgba(0,0,0,.58);background:linear-gradient(180deg,#0c0c0e,#050506)}
.drawerhead{color:var(--gold2)}
.emergencyNote{border-color:rgba(255,77,87,.25)!important;background:linear-gradient(90deg,rgba(255,77,87,.07),rgba(255,77,87,.025))!important}
.toast{position:fixed;left:50%;bottom:380px;z-index:3000;transform:translate(-50%,14px);max-width:min(420px,calc(100% - 24px));padding:10px 14px;border:1px solid rgba(231,185,95,.25);border-radius:12px;background:rgba(10,10,12,.96);box-shadow:0 18px 50px rgba(0,0,0,.46);color:#f3eee5;font-size:12px;line-height:1.4;opacity:0;pointer-events:none;transition:.22s}
.toast.show{opacity:1;transform:translate(-50%,0)}
#localAIItem.ready{color:#91efb7!important}
#localAIItem.busy{color:#ffd28b!important}
#localAIItem.err{color:#ff9fa6!important}
@media(max-width:560px){
  .systembar{gap:5px}
  .statusPill.optional{display:none}
  .appsub{font-size:7px}
  .appname{font-size:12px}
  .emLogo{width:31px;height:31px}
  .tr .ibtn{padding:6px 6px}
}

.poiWarning{margin:7px 0;padding:7px 8px;border-radius:8px;border:1px solid rgba(255,157,67,.25);background:rgba(255,157,67,.06);color:#ffd099;font-size:10px;line-height:1.35}

/* Keep Leaflet controls clear of premium header/search chrome */
.leaflet-top{top:145px!important}
