/* S.A.L.T Kembara - house style (navy, blue/violet/gold gradients, no green) */
@font-face{font-family:Jakarta;src:url(/static/fonts/plus-jakarta-sans-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Jakarta;src:url(/static/fonts/plus-jakarta-sans-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Jakarta;src:url(/static/fonts/plus-jakarta-sans-800.woff2) format("woff2");font-weight:800;font-display:swap}
:root{
  --navy:#0B1022;--navy2:#121935;--panel:rgba(14,20,48,.92);--line:rgba(255,255,255,.09);
  --ink:#E8EAF4;--mute:#9AA2C4;--dim:#6B7399;
  --blue:#2F74D8;--violet:#6D4FE0;--gold:#E3C254;--gold2:#D99A00;--cyan:#3FC8E4;--orange:#F05A28;--coral:#F2708A;--red:#D9443A;
  --grad:linear-gradient(90deg,#2F74D8,#6D4FE0);--gradg:linear-gradient(90deg,#D99A00,#E3C254);
  --r:12px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--navy);color:var(--ink);font-family:Jakarta,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;line-height:1.4;-webkit-tap-highlight-color:transparent}
a{color:#8CB8FF}
button,input,select{font:inherit;color:inherit}
.hidden{display:none!important}
.mark{width:34px;height:34px;flex:none}
.brandbar{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.08em;font-size:13px}
.brandbar .salt{height:30px}
.muted{color:var(--mute)}.dim{color:var(--dim)}.small{font-size:12.5px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:11px 16px;font-weight:800;cursor:pointer;white-space:nowrap;min-height:44px}
.btn:disabled{opacity:.5;cursor:default}
.btn-pri{background:var(--grad);color:#fff}
.btn-gold{background:var(--gradg);color:#1B1500}
.btn-ghost{background:rgba(255,255,255,.07);border:1px solid var(--line)}
.btn-red{background:linear-gradient(90deg,#D9443A,#F05A28);color:#fff}
.btn-sm{padding:7px 11px;min-height:34px;font-size:13px;border-radius:9px}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-size:12.5px;color:var(--mute);font-weight:600}
.field input,.field select{background:#0E1430;border:1px solid var(--line);border-radius:10px;padding:11px 12px;outline:none;width:100%}
.field input:focus,.field select:focus{border-color:#6D4FE0}
.row{display:flex;gap:10px}.row>*{flex:1;min-width:0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11.5px;font-weight:700;white-space:nowrap}
.p-blue{background:rgba(47,116,216,.22);color:#8CB8FF}.p-gold{background:rgba(227,194,84,.18);color:#F2D57A}
.p-vio{background:rgba(124,92,255,.22);color:#B9A8FF}.p-or{background:rgba(240,90,40,.2);color:#FF9C78}
.p-cy{background:rgba(63,200,228,.18);color:#86E3F5}.p-grey{background:rgba(255,255,255,.08);color:#B6BCD6}
.p-red{background:rgba(217,68,58,.22);color:#FF8F86}
.seg{display:inline-flex;background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:10px;padding:3px;gap:3px}
.seg button{border:0;background:transparent;padding:7px 11px;border-radius:7px;font-weight:700;font-size:13px;color:var(--mute);cursor:pointer}
.seg button.on{background:var(--grad);color:#fff}
.toast-wrap{position:fixed;left:50%;transform:translateX(-50%);top:14px;z-index:60;display:flex;flex-direction:column;gap:8px;width:min(440px,calc(100% - 24px))}
.toast{background:#151D45;border:1px solid rgba(124,92,255,.5);border-radius:12px;padding:11px 14px;box-shadow:0 8px 30px rgba(0,0,0,.4);font-size:14px;display:flex;gap:10px;align-items:center}
.toast .t-act{margin-left:auto}

/* landing / forms */
.page-form{min-height:100%;background:radial-gradient(120% 60% at 80% 0%,#2A2C86 0%,#141A4A 40%,#0B1022 75%);padding:20px 16px 40px}
.page-form .wrap{max-width:560px;margin:0 auto}
.hero h1{font-size:34px;line-height:1.05;margin:26px 0 8px;letter-spacing:-.01em}
.hero h1 span{color:var(--gold)}
.hero p{color:#C9CDE6;margin:0 0 20px}
.pickmap{height:260px;border-radius:12px;overflow:hidden;border:1px solid var(--line);position:relative}
.pickhint{position:absolute;left:8px;top:8px;z-index:3;background:rgba(11,16,34,.85);border-radius:8px;padding:5px 9px;font-size:12px}
.linkbox{display:flex;gap:8px;align-items:center;background:#0E1430;border:1px solid var(--line);border-radius:10px;padding:8px 8px 8px 12px;font-family:ui-monospace,Consolas,monospace;font-size:13px;word-break:break-all}
.footer{margin-top:28px;text-align:center;font-size:12px;color:var(--dim)}
.footer img{height:14px;vertical-align:-3px;margin-right:4px}
.list-sess a{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}

/* session view */
#map{position:fixed;inset:0}
.top{position:fixed;left:10px;right:10px;top:10px;z-index:10;display:flex;gap:10px;align-items:center;padding:9px 12px;background:var(--panel);border:1px solid var(--line);border-radius:14px;backdrop-filter:blur(6px)}
.top .ttl{font-weight:800;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .sub{font-size:12px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .grow{flex:1;min-width:0}
.iconbtn{width:40px;height:40px;border-radius:11px;border:1px solid var(--line);background:rgba(255,255,255,.06);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.iconbtn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fabs{position:fixed;right:10px;z-index:9;display:flex;flex-direction:column;gap:8px}
.fabs .iconbtn{background:var(--panel)}
.banner{position:fixed;left:10px;right:10px;z-index:9;padding:8px 12px;border-radius:10px;background:rgba(240,90,40,.16);border:1px solid rgba(240,90,40,.45);font-size:12.5px;color:#FFC3AE}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:20;background:#101736;border-top:1px solid var(--line);border-radius:18px 18px 0 0;box-shadow:0 -10px 30px rgba(0,0,0,.35);max-height:72vh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}
.sheet.min .sheet-body{display:none}
.sheet.min .grab{background:#6D4FE0}
.grab{width:42px;height:5px;border-radius:5px;background:#3A4266;margin:8px auto 4px;cursor:pointer}
.sheet-head{padding:4px 14px 8px;display:flex;align-items:center;gap:10px}
.sheet-head .h1{font-weight:800;font-size:15px}
.sheet-body{overflow-y:auto;padding:0 14px 10px;flex:1}
.mem{display:flex;align-items:center;gap:10px;padding:9px 6px;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer;border-radius:10px}
.mem.me{background:rgba(109,79,224,.12)}
.av{flex:none;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:#fff;position:relative;box-shadow:0 0 0 2px rgba(255,255,255,.55)}
.av.off{opacity:.55}
.av .spk{position:absolute;right:-3px;bottom:-3px;width:14px;height:14px;border-radius:50%;background:var(--cyan);border:2px solid #101736;display:none}
.av.speaking .spk{display:block;animation:pulse 1s infinite}
@keyframes pulse{50%{transform:scale(1.25)}}
.mem .nm{font-weight:700}
.mem .st{font-size:12.5px;color:var(--mute)}
.mem .right{margin-left:auto;text-align:right;flex:none}
.mem .big{font-weight:800;font-size:15px}
.mem .late{color:#FF9C78}
.mine{flex:none;padding:10px 14px 12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:9px;background:#0E1430}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:20px;padding:7px 12px;font-size:13px;font-weight:700;cursor:pointer;color:var(--mute)}
.chip.on{background:var(--grad);color:#fff;border-color:transparent}
.voicebar{display:flex;gap:8px;align-items:center}
.ptt{flex:1;user-select:none;-webkit-user-select:none;touch-action:none}
.ptt.live{background:linear-gradient(90deg,#D99A00,#F05A28)!important;color:#fff}
.menu{position:fixed;right:10px;top:64px;z-index:30;background:#151D45;border:1px solid var(--line);border-radius:12px;min-width:230px;box-shadow:0 10px 30px rgba(0,0,0,.4);overflow:hidden}
.menu button{display:block;width:100%;text-align:left;background:none;border:0;padding:12px 14px;cursor:pointer;font-weight:600}
.menu button:hover{background:rgba(255,255,255,.06)}
.menu .sep{height:1px;background:var(--line)}
.modal-bg{position:fixed;inset:0;z-index:50;background:rgba(5,7,15,.6);display:flex;align-items:flex-end;justify-content:center}
.modal{width:min(520px,100%);background:#121935;border:1px solid var(--line);border-radius:18px 18px 0 0;padding:18px 16px 22px;max-height:90vh;overflow:auto}
.modal h3{margin:0 0 12px}
@media (min-width:900px){
  .sheet{left:auto;right:12px;bottom:12px;top:72px;width:400px;max-height:none;border-radius:16px;border:1px solid var(--line)}
  .sheet.min{max-height:none}
  .grab{display:none}
  .top{right:424px}
  .fabs{right:424px}
  .banner{right:424px}
  .modal-bg{align-items:center}.modal{border-radius:18px}
}

/* map markers */
.mk{width:30px;height:30px;border-radius:50%;border:2.5px solid #fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;color:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.12),0 2px 8px rgba(0,0,0,.5);position:relative;cursor:pointer}
.mk.me{width:34px;height:34px;box-shadow:0 0 0 7px rgba(109,79,224,.35),0 2px 8px rgba(0,0,0,.5)}
.mk .hd{position:absolute;left:50%;top:50%;width:0;height:0;margin-left:-6px;margin-top:-27px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:9px solid #fff;transform-origin:6px 27px}
.mk .tag{position:absolute;top:33px;left:50%;transform:translateX(-50%);background:rgba(11,16,34,.88);padding:1px 6px;border-radius:6px;font-size:10.5px;font-weight:700;white-space:nowrap}
.rvpin{width:36px;height:46px;cursor:pointer}
.maplibregl-ctrl-attrib{background:rgba(11,16,34,.6)!important;color:#7D86AA!important;font-size:10px}
.maplibregl-ctrl-attrib a{color:#7D86AA!important}

#openMic.on{background:var(--gradg);color:#1B1500;border-color:transparent}
.metarow{display:flex;align-items:center;gap:8px;justify-content:space-between}
.metarow #gpsLine{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.metarow select{flex:none;background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12px;color:var(--ink)}
.sheet-head{cursor:pointer}
@media (min-width:900px){.sheet.min .sheet-body{display:block}}

/* ---------- 0.1.4: guided create flow ---------- */
.big-cta{width:100%;font-size:17px;min-height:56px;border-radius:14px}
.steptitle{display:flex;align-items:center;gap:12px;margin:22px 0 10px}
.steptitle h2{margin:2px 0 0;font-size:24px;letter-spacing:-.01em}
.eyebrow{color:var(--gold);font-weight:700;letter-spacing:.14em;font-size:11px;text-transform:uppercase}
.back{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.06);font-size:24px;line-height:1;cursor:pointer;flex:none}
.steps-bar{display:flex;gap:6px;margin:0 0 16px}
.steps-bar i{flex:1;height:4px;border-radius:4px;background:rgba(255,255,255,.1)}
.steps-bar i.on{background:var(--grad)}
.searchbox{display:flex;align-items:center;gap:8px;background:#0E1430;border:1px solid rgba(124,92,255,.5);border-radius:12px;padding:0 12px;min-height:50px}
.searchbox svg{width:20px;height:20px;stroke:var(--mute);fill:none;stroke-width:2;flex:none}
.searchbox input{flex:1;background:none;border:0;outline:none;font-size:16px;padding:12px 0}
.searchbox .clear{background:none;border:0;color:var(--mute);font-size:22px;cursor:pointer}
.results{margin-top:6px;background:#121935;border:1px solid var(--line);border-radius:12px;overflow:hidden;max-height:330px;overflow-y:auto}
.res{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:11px 12px;cursor:pointer}
.res:hover{background:rgba(255,255,255,.05)}
.res .rn{display:flex;flex-direction:column;min-width:0}
.res.empty{color:var(--mute);font-size:14px;cursor:default}
.kindpill{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:4px 8px;border-radius:8px;font-size:11px;font-weight:800;background:rgba(255,255,255,.08);color:#C9CDE6}
.k-rnr,.k-rest{background:rgba(227,194,84,.2);color:#F2D57A}.k-fuel{background:rgba(240,90,40,.2);color:#FF9C78}
.k-mosque,.k-worship{background:rgba(124,92,255,.22);color:#B9A8FF}.k-food,.k-cafe{background:rgba(242,112,138,.2);color:#FFA6B8}
.k-city,.k-town,.k-village,.k-area{background:rgba(47,116,216,.22);color:#8CB8FF}.k-here{background:rgba(63,200,228,.2);color:#86E3F5}
.or{text-align:center;color:var(--dim);font-size:12px;margin:12px 0;letter-spacing:.1em;text-transform:uppercase}
.btn .i{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.pickmap{height:300px}
.checkcard{margin-top:12px;border-color:rgba(227,194,84,.35)}
.ck-head{display:flex;align-items:center;gap:8px;justify-content:space-between}
.suggest{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.suggest .chip{white-space:normal;text-align:left}
.cklist{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px}
.cklist li{display:flex;gap:8px;align-items:flex-start}
.cklist .dot{flex:none;width:10px;height:10px;border-radius:50%;margin-top:5px;background:#4A5280}
.cklist .dot.ok{background:#3FC8E4}.cklist .dot.warn{background:#E3C254}.cklist .dot.bad{background:#F05A28}
.cklist .dot.wait{background:#4A5280;animation:pulse 1.2s infinite}
.next{width:100%;margin-top:16px;min-height:52px}
.lbl{display:block;font-size:12.5px;color:var(--mute);font-weight:600;margin-bottom:8px}
.chipset{display:flex;flex-wrap:wrap;gap:8px}
.chipset .chip{font-size:14px;padding:9px 13px}
.summary{margin-top:14px;padding:12px 14px;border-radius:12px;background:rgba(109,79,224,.14);border:1px solid rgba(124,92,255,.35);font-size:14.5px}
.summary:empty{display:none}
.review{margin-top:12px}
.rv-row{display:flex;flex-direction:column;margin-bottom:8px}
.btn-wa{background:#1F2B4D;border:1px solid rgba(255,255,255,.14);color:#fff;text-decoration:none}
.listcard{margin-top:14px;padding:12px 14px}
.lhead{margin-bottom:4px}
.sess{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.sess:last-child{border-bottom:0}
.sess .right{text-align:right;flex:none}

/* board 0.1.4 */
.top .btn-sm{min-height:38px}
.menu .mh{padding:10px 14px 2px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:800}
.hint{position:fixed;left:12px;right:12px;top:72px;z-index:25;background:#151D45;border:1px solid rgba(124,92,255,.55);border-radius:14px;padding:14px 16px;box-shadow:0 10px 30px rgba(0,0,0,.45);font-size:14px}
.hint ol{margin:8px 0 10px;padding-left:18px}.hint li{margin-bottom:4px}
@media (min-width:900px){.hint{right:auto;width:380px}}
@media (max-width:380px){.top .ttl{font-size:13.5px}.top .sub{font-size:11px}#inviteBtn{padding:7px 9px}}

a.btn{text-decoration:none}
.modal select{width:100%;background:#0E1430;border:1px solid var(--line);border-radius:10px;padding:11px 12px;color:var(--ink)}

/* ---------- 0.1.5: dashboard ---------- */
.brandbar .iconbtn{color:var(--ink)}
.greet{margin:22px 0 14px}.greet h1{margin:2px 0 0;font-size:28px;letter-spacing:-.01em}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;min-height:118px;padding:14px;border-radius:16px;
  border:1px solid var(--line);background:var(--panel);cursor:pointer;color:var(--ink)}
.tile b{font-size:16px;margin-top:6px}.tile span:not(.ti){font-size:12.5px;color:var(--mute);line-height:1.3}
.tile .ti{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.07)}
.tile .ti svg,.action .ti svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tile i{position:absolute;right:10px;top:10px;font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.06em;color:var(--dim);border:1px solid var(--line);border-radius:12px;padding:2px 7px}
.tile.soon{opacity:.62}
.tile.t-gold{grid-column:1/-1;min-height:104px;background:linear-gradient(120deg,rgba(217,154,0,.28),rgba(109,79,224,.30));border-color:rgba(227,194,84,.5)}
.tile.t-gold .ti{background:var(--gradg);color:#1B1500}
.livecard{display:flex;flex-direction:column;gap:3px;margin-bottom:12px;padding:14px 16px;border-radius:16px;text-decoration:none;color:var(--ink);
  background:linear-gradient(120deg,#2F74D8,#6D4FE0);box-shadow:0 8px 24px rgba(47,116,216,.3)}
.livecard .pill{align-self:flex-start;background:rgba(0,0,0,.25);color:#FFE9A8}.livecard b{font-size:18px;margin-top:4px}
.livecard .go{font-weight:800;margin-top:4px}
.action{display:flex;gap:14px;align-items:center;width:100%;text-align:left;padding:16px;margin-bottom:10px;border-radius:16px;border:1px solid var(--line);background:var(--panel);cursor:pointer;color:var(--ink)}
.action b{display:block;font-size:16px}.action span span{font-size:13px;color:var(--mute)}
.action .ti{flex:none;width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08)}
.action.a-gold{border-color:rgba(227,194,84,.5);background:linear-gradient(120deg,rgba(217,154,0,.22),rgba(14,20,48,.92))}
.action.a-gold .ti{background:var(--gradg);color:#1B1500}

/* pick map: fixed centre pin, map moves under it */
.pickmap{height:min(52vh,440px);margin-top:12px}
.centrepin{position:absolute;left:50%;top:50%;width:36px;height:46px;margin:-46px 0 0 -18px;z-index:4;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45))}
.centrepin svg{width:36px;height:46px}
.centrepin i{position:absolute;left:50%;top:46px;width:10px;height:4px;margin-left:-5px;border-radius:50%;background:rgba(0,0,0,.45)}
.pickhint{left:50%;transform:translateX(-50%);top:10px;white-space:nowrap;font-weight:700}
.pickbtns{position:absolute;right:10px;bottom:28px;z-index:4;display:flex;flex-direction:column;gap:8px}
.pickbtns .iconbtn{width:46px;height:46px;background:#0B1022;color:#fff;border-color:rgba(255,255,255,.25)}
.pickdone{display:none}
.pickmap.full{position:fixed;inset:0;height:auto;margin:0;z-index:45;border-radius:0;border:0}
.pickmap.full .pickdone{display:flex;position:absolute;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:5;min-height:54px;font-size:16px}
.pickmap.full .pickbtns{bottom:96px}
.ckname{font-size:16px;margin:8px 0 2px}
.medot{width:16px;height:16px;border-radius:50%;background:#2F74D8;border:3px solid #fff;box-shadow:0 0 0 6px rgba(47,116,216,.25)}
.k-road,.k-building,.k-office,.k-shop,.k-station,.k-airport{background:rgba(47,116,216,.18);color:#9CC2FF}
.k-mall{background:rgba(227,194,84,.2);color:#F2D57A}.k-hospital,.k-police{background:rgba(217,68,58,.22);color:#FF8F86}
.k-pin{background:rgba(255,255,255,.1);color:#fff}

/* ---------- 0.1.5: navigation screen, made for a glance in the sun ---------- */
:root{--barh:84px;--safe-t:env(safe-area-inset-top,0px)}
body.nav{overflow:hidden;overscroll-behavior:none}
.guide{position:fixed;left:10px;right:10px;top:calc(10px + var(--safe-t));z-index:15;display:flex;align-items:center;gap:12px;padding:10px 14px;min-height:82px;
  border-radius:18px;background:linear-gradient(120deg,#2B3FB8,#5B3FD9);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.guide .gi{flex:none;width:58px;height:58px;display:flex;align-items:center;justify-content:center}
.guide .gt{flex:1;min-width:0}
.guide .gd{font-size:36px;font-weight:800;line-height:1;letter-spacing:-.02em}
.guide .gs{font-size:17px;font-weight:700;margin-top:4px;opacity:.95;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}
.guide .gthen{flex:none;display:flex;align-items:center;gap:4px;background:rgba(0,0,0,.25);border-radius:10px;padding:4px 8px;font-size:13px;font-weight:700}
.guide.plain{background:#0B1022;border:1.5px solid rgba(227,194,84,.55)}
.guide.plain .gi{color:var(--gold)}
.guide.arrived{background:linear-gradient(120deg,#D99A00,#E3C254);color:#1B1500}
.camalert{position:fixed;left:10px;right:10px;top:calc(100px + var(--safe-t));z-index:15;display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;
  background:#D9443A;color:#fff;font-size:15px;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.camalert svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:2.2;flex:none}
.camalert b{display:block;font-size:18px}.camalert span{font-weight:700}
body.nav .banner{top:calc(100px + var(--safe-t))}
body.nav .toast-wrap{top:calc(100px + var(--safe-t))}
body.nav .hint{top:calc(100px + var(--safe-t))}
.speedo{position:fixed;left:12px;bottom:calc(var(--barh) + 14px);z-index:12;display:flex;align-items:flex-end;gap:6px;transition:bottom .2s}
.speedo .sp{width:70px;height:70px;border-radius:50%;background:#fff;color:#0B1022;border:3px solid #0B1022;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.speedo .sp b{font-size:28px;line-height:1;font-weight:800}.speedo .sp span{font-size:10px;font-weight:800;opacity:.7}
.speedo .lim{width:50px;height:50px;border-radius:50%;background:#fff;border:6px solid #D9443A;color:#111;font-weight:800;font-size:19px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.speedo.over .sp{background:#D9443A;color:#fff;border-color:#fff}
.roadname{position:fixed;left:150px;right:86px;margin:0 auto;width:fit-content;bottom:calc(var(--barh) + 22px);z-index:12;max-width:calc(100% - 236px);background:#0B1022;color:#fff;
  font-weight:800;font-size:15px;padding:8px 14px;border-radius:12px;border:1.5px solid rgba(255,255,255,.25);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:bottom .2s}
body.nav .fabs{right:12px;bottom:calc(var(--barh) + 14px);gap:10px;transition:bottom .2s}
.fab{width:62px;height:62px;border-radius:18px;background:#0B1022;color:#fff;border:1.5px solid rgba(255,255,255,.25);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.fab svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.fab span{font-size:11px;font-weight:800}
.fab.in{background:#2A3570}.fab.live{background:var(--gradg);color:#1B1500;border-color:transparent}
.fab.me{background:linear-gradient(120deg,#2F74D8,#6D4FE0);border-color:transparent}
.navsheet{position:fixed;left:0;right:0;bottom:0;z-index:20;background:#0B1022;border-top:1px solid rgba(255,255,255,.14);border-radius:20px 20px 0 0;
  box-shadow:0 -8px 28px rgba(0,0,0,.35);padding-bottom:env(safe-area-inset-bottom)}
.bar{display:flex;align-items:center;gap:12px;min-height:76px;padding:6px 8px 6px 16px;cursor:pointer;user-select:none}
.b-eta{display:flex;flex-direction:column;flex:none}
.b-eta b{font-size:28px;font-weight:800;line-height:1.05;letter-spacing:-.02em}
.b-eta b.gold{color:var(--gold)}.b-eta b.late{color:#FF9C78}
.b-eta span{font-size:11px;font-weight:800;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.b-mid{flex:1;min-width:0;display:flex;flex-direction:column}
.b-mid b{font-size:18px;font-weight:800}
.b-mid span{font-size:13px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b-grp{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.b-grp .stack{display:flex}
.b-grp .stack i{width:26px;height:26px;border-radius:50%;margin-left:-7px;border:2px solid #0B1022;font-style:normal;font-size:10px;font-weight:800;color:#fff;display:flex;align-items:center;justify-content:center}
.b-grp .stack i.plus{background:#2A3570}.b-grp .stack i.spk{box-shadow:0 0 0 2px var(--cyan)}
.b-grp .cnt{font-size:11.5px;font-weight:800;color:var(--mute)}
.b-more{flex:none;width:46px;height:46px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.07);display:flex;align-items:center;justify-content:center;cursor:pointer}
.b-more svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.navsheet .more{display:none;max-height:min(68vh,620px);overflow-y:auto;padding:4px 14px 16px;border-top:1px solid var(--line)}
.navsheet.open .more{display:block}
.navsheet.open .b-more svg{transform:rotate(180deg)}
.m-head{display:flex;align-items:center;gap:10px;padding:10px 0}
.m-head .ttl{font-weight:800;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m-head .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.navsheet .chips{margin:4px 0 10px}.navsheet .voicebar{margin-bottom:8px}
.navsheet .list{border-top:1px solid var(--line);margin-top:4px}
.opts{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid var(--line);margin-top:6px}
.optrow{display:flex;align-items:center;justify-content:space-between;gap:10px}
.optrow select{background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:8px;padding:7px 9px;color:var(--ink)}
.navsheet .mh{padding:8px 0 6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:800;border-top:1px solid var(--line)}
.obtns{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.puck{width:48px;height:48px}.puck svg{width:48px;height:48px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}
.mk .tag{font-size:12px;padding:2px 7px;background:#0B1022;color:#fff;border:1px solid rgba(255,255,255,.2)}
[data-theme=day] .mk{box-shadow:0 0 0 5px rgba(11,16,34,.15),0 2px 8px rgba(0,0,0,.35)}
[data-theme=day] .maplibregl-ctrl-attrib{background:rgba(255,255,255,.7)!important;color:#555!important}
@media (min-width:900px){
  .navsheet{left:auto;right:12px;top:12px;bottom:12px;width:410px;border-radius:18px;border:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column}
  .navsheet .more{display:block;max-height:none;flex:1}
  .bar{cursor:default}.b-more{display:none}
  .guide,.camalert,body.nav .banner{right:434px;max-width:560px}
  body.nav .fabs{right:434px;bottom:16px}
  .speedo{bottom:16px}.roadname{bottom:24px;right:520px}
}
@media (max-width:370px){.guide .gd{font-size:30px}.b-eta b{font-size:24px}.b-mid b{font-size:16px}.fab{width:56px;height:56px}}

/* ---------- 0.1.6: light theme (by day, or chosen in Settings) ---------- */
[data-theme=day]{
  --navy:#F3F4F8;--navy2:#FFFFFF;--panel:#FFFFFF;--line:rgba(11,16,34,.12);
  --ink:#141A33;--mute:#4F5878;--dim:#7A829E;--surf:#F6F7FB;--soft:rgba(11,16,34,.05);
  color-scheme:light;
}
[data-theme=day] body{background:var(--navy);color:var(--ink)}
[data-theme=day] a{color:#2457B8}
[data-theme=day] .page-form{background:radial-gradient(120% 55% at 85% 0%,#DCD6FF 0%,#EEF0FA 45%,#F3F4F8 75%)}
[data-theme=day] .hero p{color:var(--mute)}
[data-theme=day] .card,[data-theme=day] .tile,[data-theme=day] .action{box-shadow:0 2px 10px rgba(20,26,51,.06)}
[data-theme=day] .field input,[data-theme=day] .field select,[data-theme=day] .modal select,[data-theme=day] .linkbox,
[data-theme=day] .searchbox{background:var(--surf);color:var(--ink)}
[data-theme=day] .btn-ghost,[data-theme=day] .iconbtn,[data-theme=day] .back,[data-theme=day] .b-more{background:var(--soft);border-color:var(--line);color:var(--ink)}
[data-theme=day] .b-more svg{stroke:var(--ink)}
[data-theme=day] .btn-wa{background:#E7EAF4;color:var(--ink);border-color:var(--line)}
[data-theme=day] .seg{background:var(--soft)}
[data-theme=day] .chip{background:var(--soft);color:var(--mute)}
[data-theme=day] .chip.on{background:var(--grad);color:#fff;border-color:transparent}[data-theme=day] .seg button.on{color:#fff}
[data-theme=day] .toast{background:#FFFFFF;color:var(--ink);border-color:rgba(109,79,224,.45);box-shadow:0 8px 30px rgba(20,26,51,.18)}
[data-theme=day] .results,[data-theme=day] .modal,[data-theme=day] .hint,[data-theme=day] .menu{background:#FFFFFF;color:var(--ink)}
[data-theme=day] .modal-bg{background:rgba(20,26,51,.35)}
[data-theme=day] .res:hover{background:var(--soft)}
[data-theme=day] .steps-bar i{background:rgba(11,16,34,.1)}
[data-theme=day] .summary{background:rgba(109,79,224,.08)}
[data-theme=day] .tile .ti,[data-theme=day] .action .ti{background:var(--soft)}
[data-theme=day] .tile.t-gold{background:linear-gradient(120deg,#FFF1C7,#E6DEFF);border-color:rgba(217,154,0,.45)}
[data-theme=day] .action.a-gold{background:linear-gradient(120deg,#FFF1C7,#FFFFFF)}
[data-theme=day] .tile .ti svg,[data-theme=day] .action .ti svg{stroke:currentColor}
[data-theme=day] .eyebrow{color:#A86A00}
[data-theme=day] .pickhint{background:rgba(255,255,255,.92);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.12)}
[data-theme=day] .pickbtns .iconbtn{background:#fff;color:var(--ink);border-color:rgba(11,16,34,.18);box-shadow:0 2px 8px rgba(0,0,0,.15)}
/* pills and kinds: darker text on light tints */
[data-theme=day] .kindpill{background:rgba(11,16,34,.07);color:#2A3150}
[data-theme=day] .p-blue,[data-theme=day] .k-road,[data-theme=day] .k-building,[data-theme=day] .k-office,[data-theme=day] .k-shop,[data-theme=day] .k-station,[data-theme=day] .k-airport,
[data-theme=day] .k-city,[data-theme=day] .k-town,[data-theme=day] .k-village,[data-theme=day] .k-area{background:rgba(47,116,216,.13);color:#1D4E9E}
[data-theme=day] .p-gold,[data-theme=day] .k-rnr,[data-theme=day] .k-rest,[data-theme=day] .k-mall{background:rgba(217,154,0,.16);color:#7A4E00}
[data-theme=day] .p-vio,[data-theme=day] .k-mosque,[data-theme=day] .k-worship{background:rgba(109,79,224,.13);color:#4B2FB8}
[data-theme=day] .p-or,[data-theme=day] .k-fuel{background:rgba(240,90,40,.13);color:#B23A10}
[data-theme=day] .k-food,[data-theme=day] .k-cafe{background:rgba(229,72,122,.12);color:#A81E4E}
[data-theme=day] .p-cy,[data-theme=day] .k-here{background:rgba(28,143,181,.13);color:#0E6283}
[data-theme=day] .p-red,[data-theme=day] .k-hospital,[data-theme=day] .k-police{background:rgba(217,68,58,.12);color:#A8261D}
[data-theme=day] .p-grey,[data-theme=day] .k-pin{background:rgba(11,16,34,.07);color:#3A4262}
[data-theme=day] .livecard .pill{background:rgba(0,0,0,.2);color:#FFE9A8}
/* live map: white panels, dark text; turn banner, speed and alerts keep their strong colours */
[data-theme=day] .navsheet{background:#FFFFFF;border-top-color:rgba(11,16,34,.1);box-shadow:0 -8px 28px rgba(20,26,51,.18)}
[data-theme=day] .b-grp .stack i{border-color:#fff}
[data-theme=day] .b-eta b.gold{color:#A86A00}[data-theme=day] .b-eta b.late{color:#C2410C}
[data-theme=day] .mem{border-bottom-color:rgba(11,16,34,.07)}
[data-theme=day] .mem.me{background:rgba(109,79,224,.07)}
[data-theme=day] .av .spk{border-color:#fff}
[data-theme=day] .optrow select{background:var(--surf);color:var(--ink)}
[data-theme=day] .navsheet .mh{color:#A86A00}
[data-theme=day] .fab{background:#FFFFFF;color:#141A33;border-color:rgba(11,16,34,.15);box-shadow:0 4px 14px rgba(20,26,51,.22)}
[data-theme=day] .fab.in{background:#E4E8FF}
[data-theme=day] .fab.live{background:var(--gradg);color:#1B1500}
[data-theme=day] .fab.me{background:linear-gradient(120deg,#2F74D8,#6D4FE0);color:#fff}
[data-theme=day] .roadname{background:#FFFFFF;color:#141A33;border-color:rgba(11,16,34,.18);box-shadow:0 4px 12px rgba(20,26,51,.18)}
[data-theme=day] .guide.plain{background:#FFFFFF;color:#141A33;border-color:rgba(217,154,0,.6)}
[data-theme=day] .guide.plain .gi{color:#C88A00}
[data-theme=day] .mk .tag{background:#FFFFFF;color:#141A33;border-color:rgba(11,16,34,.2)}
[data-theme=day] .banner{background:#FFF1EA;color:#9A3412}
[data-theme=day] .ptt.live{color:#fff}
[data-theme=day] .footer{color:var(--dim)}

/* ---------- 0.1.7 ---------- */
.devrow{display:flex;gap:6px;align-items:center}.devrow select,.devrow input{flex:1;min-width:0}
.devrow input{background:#0E1430;border:1px solid var(--line);border-radius:10px;padding:9px 10px;color:var(--ink)}
[data-theme=day] .devrow input{background:var(--surf)}
.meter{height:6px;border-radius:4px;background:rgba(127,127,127,.2);margin-top:8px;overflow:hidden}.meter i{display:block;height:100%;width:0;background:var(--gradg);transition:width .08s}
.fab[data-q]::after{content:"";position:absolute;top:7px;right:7px;width:9px;height:9px;border-radius:50%;background:transparent}
.fab{position:relative}
.fab[data-q=good]::after{background:#3FC8E4}.fab[data-q=fair]::after{background:#E3C254}.fab[data-q=poor]::after{background:#F05A28}
.guide.uturn{background:linear-gradient(120deg,#D97706,#F05A28)}
.guide.recalc{background:#2A3570}
.guide .spin{width:34px;height:34px;border-radius:50%;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.turnmk{width:36px;height:36px;border-radius:50%;background:#0B1022;color:#fff;border:2.5px solid #fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.4)}
.turnmk.u{background:#F05A28}
.tile.t-act .ti{background:linear-gradient(120deg,#2F74D8,#6D4FE0);color:#fff}
.mtag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.04em;padding:1px 6px;border-radius:6px;background:rgba(124,92,255,.22);color:#B9A8FF}
[data-theme=day] .mtag{background:rgba(109,79,224,.13);color:#4B2FB8}
body.watch .speedo,body.watch .roadname{display:none}
.guide.alert{background:linear-gradient(120deg,#B91C1C,#F05A28)}
.guide .tav{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;color:#fff;border:3px solid #fff}

/* Harmoni voice room */
.talk-wrap{max-width:560px;margin:0 auto;padding:16px 16px calc(24px + env(safe-area-inset-bottom));min-height:100%;display:flex;flex-direction:column}
.talk-top{display:flex;align-items:center;gap:10px}
.talk-top .grow{flex:1;min-width:0}.talk-top .ttl{font-weight:800;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:14px;margin:22px 0;align-content:start;flex:1}
.person{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.person .pav{width:66px;height:66px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;color:#fff;position:relative;transition:box-shadow .15s}
.person .pav.off{opacity:.45}
.person .pav.speaking{box-shadow:0 0 0 4px #3FC8E4,0 0 18px rgba(63,200,228,.6)}
.person .pav .mic{position:absolute;right:-2px;bottom:-2px;width:22px;height:22px;border-radius:50%;background:#0B1022;border:2px solid var(--navy);display:flex;align-items:center;justify-content:center}
.person .pav .mic svg{width:12px;height:12px;stroke:#fff;fill:none;stroke-width:2.4}
.person .pav .mic.live{background:#D99A00}
.person b{font-size:13px;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person span{font-size:11px;color:var(--mute)}
.bigmic{width:132px;height:132px;border-radius:50%;margin:8px auto 6px;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  background:linear-gradient(120deg,#2F74D8,#6D4FE0);color:#fff;font-weight:800;font-size:15px;box-shadow:0 10px 30px rgba(47,116,216,.35);cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none;position:relative}
.bigmic svg{width:40px;height:40px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.bigmic.muted{background:#2A3570}.bigmic.live{background:var(--gradg);color:#1B1500;box-shadow:0 0 0 10px rgba(227,194,84,.18),0 10px 30px rgba(217,154,0,.35)}
[data-theme=day] .bigmic.muted{background:#DDE2F5;color:#141A33}
.bigmic[data-q]::after{content:"";position:absolute;top:14px;right:22px;width:12px;height:12px;border-radius:50%}
.bigmic[data-q=good]::after{background:#3FC8E4}.bigmic[data-q=fair]::after{background:#E3C254}.bigmic[data-q=poor]::after{background:#F05A28}
.talk-hint{text-align:center;font-size:13px;color:var(--mute);min-height:20px}
.talk-btns{display:flex;justify-content:center;gap:8px;margin-top:14px;flex-wrap:wrap}

/* ---------- 0.1.9: place picker, My places ---------- */
.picker{position:fixed;inset:0;z-index:55;background:var(--navy);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}
body.pk-open{overflow:hidden}
.pk-top{display:flex;gap:8px;align-items:center;padding:10px 12px 6px}.pk-top .searchbox{flex:1;min-height:46px}
.pk-title{padding:0 14px 6px;font-weight:800;font-size:15px;color:var(--gold)}
[data-theme=day] .pk-title{color:#A86A00}
.pk-saved{padding:0 12px 8px}
.pk-chip{display:inline-flex;align-items:center;gap:6px}.pk-chip svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.picker .results{position:absolute;left:12px;right:12px;top:calc(62px + env(safe-area-inset-top));z-index:6;max-height:55vh;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.pk-map{position:relative;flex:1;min-height:200px}
.pk-card{flex:none;max-height:48vh;overflow-y:auto;padding:12px 14px calc(14px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line);border-radius:18px 18px 0 0;margin-top:-14px;position:relative;z-index:5}
.pk-save{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:14px}
.pk-save input{width:18px;height:18px;vertical-align:-4px;margin-right:6px;accent-color:#6D4FE0}
.k-home,.k-saved{background:rgba(227,194,84,.2);color:#F2D57A}
[data-theme=day] .k-home,[data-theme=day] .k-saved{background:rgba(217,154,0,.16);color:#7A4E00}
.destbtn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px;border-radius:12px;border:1px dashed rgba(124,92,255,.55);background:transparent;color:var(--ink);cursor:pointer;font-weight:700}
.destbtn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;flex:none}
.myplaces .pl{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.myplaces .pl:last-child{border-bottom:0}
.myplaces .pl .grow{flex:1;min-width:0}.myplaces .pl b{display:block}
.homecard{display:flex;align-items:center;gap:12px;width:100%;margin-bottom:12px;padding:14px 16px;border-radius:16px;border:1px solid rgba(227,194,84,.5);background:var(--panel);color:var(--ink);cursor:pointer;text-align:left}
.homecard .ti{width:44px;height:44px;border-radius:14px;background:var(--gradg);color:#1B1500;display:flex;align-items:center;justify-content:center;flex:none}
.homecard .ti svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.2}
.homecard b{display:block;font-size:16px}.homecard span span{font-size:13px;color:var(--mute)}
.guide .gbtn{display:inline-block;margin-left:6px;padding:4px 12px;border-radius:10px;border:0;background:#0B1022;color:#fff;font-weight:800;font-size:14px;cursor:pointer;vertical-align:1px}
.guide.plain .gbtn{background:var(--gradg);color:#1B1500}
#prioSeg button{padding:7px 9px}
.sessrow{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line)}.sessrow:last-child{border-bottom:0}
.sessrow .sess{flex:1;min-width:0;border-bottom:0}
.rmx{flex:none;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--mute);cursor:pointer;font-size:14px}
.lhead{display:flex;align-items:center;gap:8px}

/* ---------- 0.2.0: SOS, quick messages ---------- */
.fab.sos{background:#D9443A;border-color:#fff;color:#fff;--p:0;overflow:hidden}
.fab.sos .hold{position:absolute;inset:0;border-radius:inherit;background:conic-gradient(rgba(255,255,255,.45) calc(var(--p)*360deg),transparent 0)}
.fab.sos svg,.fab.sos span{position:relative}
.fab.sos.active{animation:sosblink 1s infinite}
@keyframes sosblink{50%{box-shadow:0 0 0 8px rgba(217,68,58,.35)}}
.sosalarm{position:fixed;inset:0;z-index:70;background:rgba(150,20,20,.92);display:flex;align-items:center;justify-content:center;padding:20px;animation:sosbg 1s infinite}
@keyframes sosbg{50%{background:rgba(217,68,58,.95)}}
.sos-card{width:min(440px,100%);color:#fff;text-align:center}
.sos-card h2{font-size:30px;margin:10px 0 4px}.sos-card p{margin:0 0 18px;font-size:16px;opacity:.95}
.sos-tag{display:inline-block;font-weight:800;letter-spacing:.2em;border:2px solid #fff;border-radius:10px;padding:4px 14px}
.sos-btns{display:flex;flex-direction:column;gap:10px}
.sos-btns .btn{min-height:52px;font-size:16px}.sos-btns .btn-ghost{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.4)}
.sosbar{position:fixed;left:10px;right:10px;top:calc(100px + var(--safe-t,0px));z-index:16;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:#D9443A;color:#fff;font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.sosbar .btn{margin-left:auto;background:#fff;color:#B91C1C}
@media (min-width:900px){.sosbar{right:434px;max-width:560px}}
.qchips{flex-wrap:wrap}
.qrow{display:flex;gap:6px;margin-top:8px}.qrow input{flex:1;min-width:0;background:#0E1430;border:1px solid var(--line);border-radius:10px;padding:9px 10px;color:var(--ink)}
[data-theme=day] .qrow input{background:var(--surf)}
.qlog{margin-top:8px;display:flex;flex-direction:column;gap:4px}
.qm{font-size:13.5px;display:flex;align-items:center;gap:6px}.qm i{width:8px;height:8px;border-radius:50%;flex:none}.qm span{margin-left:auto;font-size:11px;color:var(--dim)}
.qm.mine b{color:var(--gold)}
.mem .sosb{background:#D9443A;color:#fff;font-size:10px;font-weight:800;border-radius:6px;padding:1px 6px;margin-left:4px}
.msgtoast b{margin-right:4px}
.sosbtn{position:relative;overflow:hidden;--p:0}.sosbtn .hold{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.45) calc(var(--p)*100%),transparent 0)}
.stopmk{width:26px;height:26px;border-radius:50%;background:var(--gradg);color:#1B1500;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;border:2.5px solid #0B1022;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.stopmk.sm{width:22px;height:22px;font-size:11px;flex:none}
.stoprow{display:flex;align-items:center;gap:8px;padding:6px 0}.stoprow b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aheadchips{flex-wrap:wrap;margin-bottom:6px}
.aheadlist{display:flex;flex-direction:column;max-height:55vh;overflow-y:auto}
.aheadrow{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.aheadrow span{display:block}

.praychip{position:fixed;left:12px;bottom:calc(var(--barh) + 96px);z-index:12;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;border:1.5px solid rgba(124,92,255,.6);
  background:#0B1022;color:#fff;font-size:13.5px;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.3);transition:bottom .2s;max-width:calc(100% - 100px)}
.praychip svg{width:18px;height:18px;stroke:#B9A8FF;fill:none;stroke-width:2;flex:none}
[data-theme=day] .praychip{background:#fff;color:#141A33;border-color:rgba(109,79,224,.45)}
[data-theme=day] .praychip svg{stroke:#6D4FE0}
body.watch .praychip{display:none}
@media (min-width:900px){.praychip{bottom:100px}}
.ptimes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ptimes div{padding:10px;border-radius:12px;background:rgba(127,127,127,.08);text-align:center}
.ptimes div b{display:block;font-size:18px}.ptimes div span{font-size:12px;color:var(--mute)}
.ptimes div.nx{background:linear-gradient(120deg,rgba(109,79,224,.35),rgba(47,116,216,.3));outline:1.5px solid rgba(124,92,255,.6)}
.adm-head{display:flex;align-items:center;gap:10px}
.adm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.adm-stat{padding:14px}.adm-stat b{display:block;font-size:24px}.adm-stat span{font-size:12.5px;color:var(--mute)}
.adm-stat.bad b{color:#FF8F86}
.adm-table{overflow-x:auto;margin-top:8px}
.adm-table table{width:100%;border-collapse:collapse;font-size:13.5px}
.adm-table th{text-align:left;font-size:11.5px;color:var(--mute);font-weight:700;padding:6px 8px;border-bottom:1px solid var(--line)}
.adm-table td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
.adm-table tr.sos td{background:rgba(217,68,58,.12)}
.tile.t-sos .ti{background:#D9443A;color:#fff}
.ahh{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:6px 0 2px}
.ahh.off{color:var(--mute);margin-top:14px}
.aheadrow.detour b{opacity:.85}

/* ---------- 0.3.0 Kembara Masjid journeys ---------- */
.jplace{justify-content:flex-start;text-align:left;width:100%;color:var(--mute)}
.jplace.set{color:var(--ink)}
.wrapseg{flex-wrap:wrap}
.jchecks{display:flex;flex-direction:column;gap:10px;font-size:14px}
.jchecks label{display:flex;gap:8px;align-items:center}
.jtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:21px!important}
.jmap{position:relative;height:300px;border-radius:16px;overflow:hidden;border:1px solid var(--line);margin:12px 0}
.jdays{margin-bottom:10px}
.jdays .chip.done{opacity:.7}
.jwarn{margin-top:8px;padding:10px 12px;border-radius:12px;background:rgba(240,90,40,.14);border:1px solid rgba(240,90,40,.35);font-size:13px}
.jdh{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}
.jto{display:block;font-size:17px;margin:3px 0}
.jptimes{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12.5px;margin:6px 0 10px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.04)}
.jptimes i{font-style:normal;color:var(--mute)}
.jstops{margin:4px 0 10px}
.jstop{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
.jstop:last-child{border-bottom:0}
.jstop.done{opacity:.5}
.jstop .jt{flex:none;width:44px;font-weight:800;font-size:13px;color:var(--gold);padding-top:2px}
.jstop .ji{flex:none;width:24px;font-size:18px;line-height:1.2}
.jstop .jb{flex:1;min-width:0}
.jstop .jact{flex:none;display:flex;gap:4px}
.jstop .rmx:disabled{opacity:.3}
.jmh{margin-top:12px}
.jlodge{display:flex;gap:10px;align-items:flex-start;padding:8px 0;font-size:14px}
.jlodge input{margin-top:3px}
.stopmk.bed{background:#fff;font-size:14px}
[data-theme=day] .jptimes{background:rgba(11,16,34,.04)}
.fab.on{background:var(--gradg);color:#1B1500;border-color:transparent}
.jday .mh{padding:10px 0 6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:800;border-top:1px solid var(--line)}
#vSum{white-space:pre-line}
.jmap.rp{height:280px;margin:0 0 12px}
.rpbusy{position:absolute;inset:0;display:flex;gap:10px;align-items:center;justify-content:center;background:rgba(11,16,34,.55);font-weight:700}
.rplist{display:flex;flex-direction:column;gap:8px}
.rcard{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--panel);cursor:pointer}
.rcard.on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}
.rcard input{display:none}
.rcard .rsw{flex:none;width:14px;height:14px;border-radius:50%;margin-top:4px}
.rcard .rb{display:flex;flex-direction:column;gap:3px;min-width:0}
.rtags{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.rtags i{font-style:normal;font-size:11px;font-weight:800;padding:2px 8px;border-radius:10px;background:rgba(227,194,84,.16);color:var(--gold)}
.rpold{display:flex;gap:10px;align-items:flex-start;margin:14px 0;font-size:14px}
.rpold input{margin-top:4px}
.rpown{margin-top:4px}
.rpvia{flex-wrap:wrap}
.ichips{display:flex;flex-wrap:wrap;gap:8px}
.ichips button{border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:20px;padding:8px 12px;font-size:13px;font-weight:700;cursor:pointer;color:var(--mute)}
.ichips button.on{background:var(--grad);color:#fff;border-color:transparent}
[data-theme=day] .rpbusy{background:rgba(255,255,255,.6)}
.rpbusy .spin{width:26px;height:26px;border-radius:50%;border:3px solid rgba(255,255,255,.3);border-top-color:var(--gold);animation:spin 1s linear infinite}
.jreplan{display:flex;flex-direction:column;gap:3px;margin:0 0 14px;padding:10px 12px;border-radius:12px;background:rgba(227,194,84,.12);border:1px solid rgba(227,194,84,.4)}
.jquick{margin-top:8px;flex-wrap:wrap}
.jmanage .lbl{color:var(--gold)}
/* ---------- 0.4.0 riders' notes ---------- */
.knote{position:fixed;inset:0;z-index:60;background:rgba(5,8,20,.6);display:flex;align-items:flex-end;justify-content:center}
.kn-box{background:var(--navy2);border:1px solid var(--line);border-radius:18px 18px 0 0;width:100%;max-width:560px;max-height:88vh;overflow:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
.kn-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.kn-head b{font-size:18px}
.kninfo{margin-top:4px;color:var(--gold)}.kninfo a{color:var(--gold)}
.kn-list{margin:12px 0;display:flex;flex-direction:column;gap:10px}
.kn-note{padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid var(--line);display:flex;flex-direction:column;gap:5px;font-size:14px}
.kn-star,.kn-worthline{color:var(--gold);font-weight:800;font-size:13px}
.kn-ph{display:flex;gap:6px;flex-wrap:wrap}.kn-ph img{width:84px;height:84px;object-fit:cover;border-radius:8px}
.kn-add{border-top:1px solid var(--line);padding-top:12px}
.kn-add textarea{width:100%;background:#0E1430;border:1px solid var(--line);border-radius:10px;padding:10px;color:var(--ink);font:inherit;margin-top:8px}
.kn-worth{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:14px}
.kn-thumbs{display:flex;gap:6px;margin-top:8px}.kn-thumbs span{position:relative}.kn-thumbs img{width:64px;height:64px;object-fit:cover;border-radius:8px}
.kn-thumbs b{position:absolute;top:-6px;right:-6px;background:#D9443A;color:#fff;border-radius:50%;width:20px;height:20px;font-size:11px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.jworth{color:var(--gold);font-weight:800}
.knbtn{border:0;background:transparent;color:var(--cyan);font-weight:700;font-size:12.5px;padding:0;cursor:pointer}
[data-theme=day] .kn-add textarea{background:#fff}
