:root{--bg:#ffffff;--s:#fff;--s2:#f5f5f5;--s3:#e5e5e5;--bdr:rgba(0,0,0,.12);--bdr2:rgba(0,0,0,.18);--tx:#000;--tx2:#444;--tx3:#888;--ac:#000;--ac2:rgba(0,0,0,.08);--ac3:rgba(0,0,0,.04);--gn:#16a34a;--gn2:rgba(22,163,74,.1);--rd:#dc2626;--rd2:rgba(220,38,38,.1);--am:#d97706;--am2:rgba(217,119,6,.1);--cy:#0891b2;--pu:#000;--pu2:rgba(0,0,0,.08);--pk:#000;--sh1:0 1px 3px rgba(15,20,40,.1),0 1px 2px rgba(15,20,40,.06);--sh2:0 4px 16px rgba(15,20,40,.12);--sh3:0 16px 48px rgba(15,20,40,.16);--r:6px;--rm:10px;--rl:14px;--f:'DM Sans',system-ui,sans-serif;--mono:'IBM Plex Mono',monospace;--hd:'Archivo Black',sans-serif}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--f);-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--tx);overflow:hidden;font-size:13px}
button,input,select,textarea{font-family:var(--f);color:var(--tx);font-size:13px}
::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bdr2);border-radius:99px}
#R{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}
.bar{display:flex;align-items:center;gap:8px;padding:0 14px;height:46px;flex:0 0 46px;background:var(--s);border-bottom:1px solid var(--bdr);z-index:2100}
.logo{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:#000;color:#fff;font-size:11px;font-weight:900;font-family:var(--hd);letter-spacing:.12em;cursor:pointer;user-select:none;text-decoration:none}
.dot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.55);animation:bk 2s infinite}
@keyframes bk{0%,100%{opacity:1}50%{opacity:.25}}
.tnav{display:flex;gap:2px;flex:1;margin-left:8px;overflow-x:auto}.tnav::-webkit-scrollbar{display:none}
.nb{padding:5px 12px;border:none;background:transparent;border-radius:var(--r);font-size:12px;font-weight:700;color:var(--tx2);cursor:pointer;white-space:nowrap;transition:.12s}.nb:hover{background:var(--ac3);color:var(--tx)}.nb.on{background:var(--ac2);color:var(--ac)}
.tr{display:flex;align-items:center;gap:6px;margin-left:auto;flex:0 0 auto}
.tb{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border:1px solid var(--bdr2);background:var(--s);border-radius:var(--r);font-size:11px;font-weight:700;color:var(--tx2);cursor:pointer;transition:.12s;white-space:nowrap}.tb:hover{border-color:var(--ac);color:var(--ac);background:var(--ac2)}
.loginBtn{padding:5px 14px;border:none;border-radius:var(--r);background:#000;color:#fff;font-size:11px;font-weight:900;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:4px}.loginBtn:hover{opacity:.85}
.mobBar{display:none;align-items:center;height:46px;padding:0 12px;background:var(--s);border-bottom:1px solid var(--bdr);z-index:2100;gap:6px}
.mobDrop{position:relative}.mobDropBtn{display:flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid var(--bdr2);background:var(--s);border-radius:var(--r);cursor:pointer;font-size:11px;font-weight:700;color:var(--tx2)}
.mobMenu{display:none;position:absolute;top:36px;left:0;background:var(--s);border:1px solid var(--bdr2);border-radius:var(--rm);box-shadow:var(--sh3);z-index:500;min-width:180px;padding:5px}.mobMenu.open{display:block}
.mobMenuItem{display:block;width:100%;padding:8px 12px;border:none;background:transparent;border-radius:var(--r);font-size:13px;font-weight:700;color:var(--tx2);cursor:pointer;text-align:left}.mobMenuItem:hover{background:var(--bg)}.mobMenuItem.on{background:var(--ac2);color:var(--ac)}
.brow{display:flex;flex:1;overflow:hidden;min-height:0}
.side{width:200px;flex:0 0 200px;display:flex;flex-direction:column;background:var(--s);border-right:1px solid var(--bdr);overflow:hidden;z-index:100;position:relative}
.sinn{overflow-y:auto;padding:8px 0 12px;flex:1}.ss{font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--tx3);padding:12px 14px 4px;font-family:var(--hd)}
.sl{display:block;padding:6px 14px;font-size:12px;font-weight:600;color:var(--tx2);text-decoration:none;cursor:pointer;transition:.12s}.sl:hover{background:var(--bg);color:var(--tx)}.sl.on{color:var(--ac);background:var(--ac3)}
.main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}
.panel{display:none;flex:1;flex-direction:column;overflow:hidden;overflow-y:auto}.panel.on{display:flex}
.tz{flex:1;overflow-y:auto;padding:16px;padding-bottom:6px}
.dashHero{margin-bottom:16px;padding:20px;background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);box-shadow:var(--sh1)}
.dashName{font-size:16px;font-weight:900;font-family:var(--hd);text-transform:uppercase;letter-spacing:.04em}.dashSub{font-size:11px;color:var(--tx2);margin-top:2px}
.dashStats{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.dashStat{padding:4px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--bdr);font-size:10px;font-weight:700;font-family:var(--mono);color:var(--tx2)}
.statGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-bottom:16px}
.statCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);padding:12px;box-shadow:var(--sh1)}
.statVal{font-size:20px;font-weight:900;font-family:var(--hd);color:var(--ac)}.statLabel{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--tx3);letter-spacing:.06em;margin-top:2px}
.statDelta{font-size:9px;font-weight:700;font-family:var(--mono);margin-top:3px}.statDelta.up{color:var(--gn)}
.chartRow{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.chartBox{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);padding:10px;box-shadow:var(--sh1)}.chartBox canvas{max-height:170px;width:100%!important;height:auto!important}
.chartLabel{font-size:9px;font-weight:900;font-family:var(--hd);text-transform:uppercase;color:var(--tx3);margin-bottom:6px}
.tg{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.tile{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:16px;cursor:pointer;transition:.18s;display:flex;gap:10px;box-shadow:var(--sh1);position:relative;overflow:hidden}.tile:hover{box-shadow:var(--sh2);border-color:rgba(0,0,0,.2);transform:translateY(-2px)}
.ti{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex:0 0 36px;font-size:17px}
.tn{font-size:10px;font-weight:900;font-family:var(--hd);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}
.tcount{position:absolute;top:10px;right:10px;font-size:9px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--ac2);color:var(--ac);font-family:var(--mono)}
.trun{margin-top:8px;padding:3px 9px;border:none;background:var(--ac2);color:var(--ac);border-radius:999px;font-size:10px;font-weight:700;cursor:pointer;font-family:var(--mono)}.trun:hover{background:var(--ac);color:#fff}
.recentHead{font-size:10px;font-weight:900;font-family:var(--hd);text-transform:uppercase;color:var(--tx3);margin:16px 0 8px}
.ri{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);margin-bottom:4px;box-shadow:var(--sh1)}
.contentTabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);background:var(--s);flex:0 0 auto;overflow-x:auto}.contentTabs::-webkit-scrollbar{display:none}
.ctab{flex:0 0 auto;padding:8px 14px;border:none;background:transparent;border-bottom:2px solid transparent;font-size:11px;font-weight:700;color:var(--tx2);cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:5px}.ctab:hover{color:var(--tx)}.ctab.on{color:var(--ac);border-bottom-color:var(--ac)}
.ctabCount{font-size:8px;font-weight:700;padding:1px 5px;border-radius:999px;background:var(--bg);color:var(--tx3);font-family:var(--mono)}
.contentBody{flex:1;overflow-y:auto;padding:14px;background:var(--bg)}
.cform{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px;margin-bottom:12px;box-shadow:var(--sh1)}
.mf{margin-bottom:9px}.mf label{display:block;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:3px}
.mf input,.mf textarea,.mf select{width:100%;border:1px solid var(--bdr2);border-radius:var(--rm);padding:7px 10px;font-size:12px;background:var(--bg);color:var(--tx);outline:none}.mf input:focus,.mf textarea:focus,.mf select:focus{border-color:var(--ac);background:var(--s)}
.mfr{display:flex;gap:7px;flex-wrap:wrap}.mfr .mf{flex:1;min-width:90px}
.mfr3{display:flex;gap:7px;flex-wrap:wrap}.mfr3 .mf{flex:1;min-width:70px}
.imgUp{width:100%;height:80px;border:1px dashed var(--bdr2);border-radius:var(--rm);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--tx3);font-size:11px;background:var(--bg);transition:.12s}.imgUp:hover{border-color:var(--ac);color:var(--ac);background:var(--ac3)}
.imgUp.has{border-style:solid;border-color:var(--gn)}
.btn{border:1px solid var(--bdr2);background:var(--s);color:var(--tx);border-radius:var(--rm);padding:6px 12px;font-weight:700;font-size:11px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:.12s;box-shadow:var(--sh1)}.btn:hover{background:var(--bg)}.btn.pri{background:#000;border-color:transparent;color:#fff}.btn.sm{padding:4px 8px;font-size:10px}.btn.dn{background:var(--rd2);border-color:rgba(220,38,38,.2);color:var(--rd)}.btn.warn{background:var(--am2);border-color:rgba(217,119,6,.2);color:var(--am)}.btn.edit{background:var(--ac2);border-color:rgba(0,0,0,.2);color:var(--ac)}
.itemCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);padding:10px;margin-bottom:6px;display:flex;align-items:center;gap:10px;box-shadow:var(--sh1)}
.icIcon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex:0 0 36px}
.icName{font-size:11px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.icMeta{font-size:10px;color:var(--tx3);font-family:var(--mono);margin-top:1px}
.mem{border:1px dashed var(--bdr2);border-radius:var(--rm);padding:14px;text-align:center;color:var(--tx3);font-size:12px;background:var(--s)}
.giftCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px;margin-bottom:8px;box-shadow:var(--sh1);position:relative;overflow:hidden}
.giftFrom{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:4px}
.giftTitle{font-size:13px;font-weight:900;font-family:var(--hd);text-transform:uppercase}
.giftDesc{font-size:11px;color:var(--tx2);margin:4px 0 8px}
.giftMeta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.giftPill{font-size:9px;font-weight:700;padding:2px 7px;border-radius:999px;border:1px solid var(--bdr);background:var(--bg);color:var(--tx3);font-family:var(--mono)}
.agentAction{background:linear-gradient(135deg,var(--ac3),var(--pu2));border:1px solid rgba(0,0,0,.15);border-radius:var(--rm);padding:10px 12px;margin-bottom:6px;font-size:11px;color:var(--tx2);display:flex;align-items:center;gap:8px}
.agentAction .agDot{width:6px;height:6px;border-radius:50%;background:var(--ac);animation:bk 1.5s infinite;flex:0 0 6px}
.itab{padding:2px 8px;border:1px solid var(--bdr);background:var(--s);border-radius:999px;font-size:10px;font-weight:700;color:var(--tx2);cursor:pointer;white-space:nowrap;line-height:1.4}.itab.on{background:var(--ac2);border-color:rgba(0,0,0,.35);color:var(--ac)}.itab:hover{background:var(--bg2)}
@media(max-width:600px){.itab .itabLbl{display:none}.itab{padding:3px 6px;font-size:11px}}
.kbSection{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px;margin-bottom:10px;box-shadow:var(--sh1)}
.kbTitle{font-size:11px;font-weight:900;font-family:var(--hd);text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.kbCount{font-size:9px;font-weight:700;padding:2px 6px;border-radius:999px;background:var(--ac2);color:var(--ac);font-family:var(--mono)}
.kbRow{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--bdr);font-size:11px}.kbRow:last-child{border:none}
.kbKey{font-weight:700;color:var(--tx2);flex:0 0 100px;font-size:10px}.kbVal{flex:1;font-family:var(--mono);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kbBar{height:6px;background:var(--s3);border-radius:99px;overflow:hidden;margin-top:4px}.kbFill{height:100%;border-radius:99px;transition:width .3s}
.connectTile{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:20px 16px;cursor:pointer;text-align:center;transition:.18s;box-shadow:var(--sh1)}.connectTile:hover{box-shadow:var(--sh2);border-color:rgba(0,0,0,.25);transform:translateY(-2px)}
.ctIco{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900;margin:0 auto 10px}
.ctLabel{font-size:12px;font-weight:900;font-family:var(--hd);text-transform:uppercase;margin-bottom:2px}
.ctDesc{font-size:10px;color:var(--tx3)}
.chatHeader{display:flex;align-items:center;gap:6px;padding:5px 10px;border-bottom:1px solid var(--bdr);background:var(--s);min-height:34px;overflow:hidden}
.chatTitleWrap{display:flex;align-items:center;gap:5px;cursor:pointer;padding:2px 6px 2px 0;border-radius:6px;flex-shrink:0;transition:background .15s}
.chatTitleWrap:hover{background:rgba(0,0,0,.08)}
.chatTabsLeft{display:flex;align-items:center;gap:2px;overflow-x:auto;scrollbar-width:none;margin-left:4px}
.chatTabsLeft::-webkit-scrollbar{display:none}
.chatTab{display:flex;align-items:center;gap:4px;padding:4px 10px;font-size:10px;font-weight:700;font-family:var(--hd);border:none;background:transparent;color:var(--tx3);cursor:pointer;white-space:nowrap;border-radius:6px;transition:all .15s}
.chatTab:hover{color:var(--tx);background:rgba(0,0,0,.06)}
.chatTab.active{color:var(--ac);background:rgba(0,0,0,.1)}
.chatTab .chatTabClose{font-size:12px;line-height:1;margin-left:2px;opacity:.4;cursor:pointer;padding:0 2px;border-radius:3px}
.chatTab .chatTabClose:hover{opacity:1;background:rgba(255,0,0,.15);color:var(--rd)}
.chatTabAdd{background:none;border:none;color:var(--tx3);font-size:14px;font-weight:700;cursor:pointer;padding:2px 6px;border-radius:6px;line-height:1;transition:all .15s;flex-shrink:0}
.chatTabAdd:hover{background:rgba(0,0,0,.1);color:var(--ac)}
.chatHdrBtn{font-size:13px;padding:3px 8px;border-radius:999px;background:rgba(0,0,0,.1);color:var(--ac);font-weight:900;border:none;cursor:pointer;transition:all .15s;flex-shrink:0}
.chatHdrBtn:hover{background:rgba(0,0,0,.2)}
.chatHdrBtn.on{background:var(--ac);color:#fff}
.chatTabEdit{font-size:9px;opacity:.3;cursor:pointer;padding:0 2px;transition:opacity .15s}
.chatTab:hover .chatTabEdit{opacity:.7}
.chatTabEdit:hover{opacity:1!important}
.tabEditorOverlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:10010;display:flex;align-items:stretch;justify-content:stretch;opacity:0;pointer-events:none;transition:opacity .2s}
.tabEditorOverlay.open{opacity:1;pointer-events:auto}
.tabEditorPanel{background:var(--s);width:100%;height:100%;display:flex;flex-direction:column}
.tabEdInnerTab{padding:5px 12px;font-size:10px;font-weight:700;font-family:var(--hd);border:none;background:transparent;color:var(--tx3);cursor:pointer;border-radius:6px;transition:all .15s}
.tabEdInnerTab:hover{background:rgba(0,0,0,.06)}
.tabEdInnerTab.active{background:rgba(0,0,0,.12);color:var(--ac)}
.chatFeed{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
.aiTyping{color:var(--tx3);font-style:italic}
@keyframes aiPulse{0%,100%{opacity:.4}50%{opacity:1}}
.aiTyping::after{content:"";display:inline-block;width:4px;height:14px;background:var(--ac);margin-left:2px;border-radius:1px;animation:aiPulse .8s ease-in-out infinite;vertical-align:text-bottom}
.le{display:flex;gap:8px;align-items:flex-start;animation:fi .2s ease both}
@keyframes fi{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
.lt{font-size:10px;font-weight:600;color:var(--tx3);font-family:var(--mono);padding-top:2px;flex:0 0 52px}
.li{width:18px;height:18px;border-radius:50%;flex:0 0 18px;display:flex;align-items:center;justify-content:center;font-size:9px;margin-top:1px}
.li.sys{background:var(--ac2);color:var(--ac)}.li.ok{background:var(--gn2);color:var(--gn)}.li.ai{background:var(--pu2);color:var(--pu)}.li.usr{background:var(--cy);color:#fff}
.lx{font-size:12px;color:var(--tx);line-height:1.5;flex:1;overflow-wrap:break-word}
.chatInputBar{padding:0;border:none;background:transparent;display:flex;align-items:center;gap:8px;flex:0 0 0;overflow:hidden;height:0;opacity:0;pointer-events:none}
.ccBrand{width:26px;height:26px;border-radius:7px;background:#000;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;font-weight:900;flex:0 0 26px}
.ccIn{flex:1;border:1px solid var(--bdr2);border-radius:var(--r);padding:7px 10px;font-size:12px;background:var(--bg);color:var(--tx);outline:none}.ccIn:focus{border-color:var(--ac);background:var(--s)}.ccIn::placeholder{color:var(--tx3)}
.ccSend{width:28px;height:28px;border-radius:var(--r);border:none;background:#000;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 28px;color:#fff;font-size:12px;font-weight:900}.ccSend:hover{background:#333}
.ccMic{width:28px;height:28px;border-radius:var(--r);border:1px solid var(--bdr2);background:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 28px;font-size:14px;transition:.15s}.ccMic:hover{border-color:var(--ac);background:var(--ac2);color:var(--ac)}.ccMic.live{border-color:var(--rd);background:rgba(239,68,68,.12);color:var(--rd);animation:micPulse 1.2s ease-in-out infinite}
@keyframes micPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.3)}50%{box-shadow:0 0 0 8px rgba(239,68,68,0)}}
/* Mic active/inactive visual states */
.ccMic .mic-icon{display:inline}.ccMic .mic-icon-off{display:none;font-size:10px;color:var(--tx3)}
.ccMic.inactive{opacity:.5;border-color:var(--bdr)}.ccMic.inactive .mic-icon{display:none}.ccMic.inactive .mic-icon-off{display:inline}
/* Recording state: pulsing light blue chat header */
@keyframes voicePulse{0%,100%{background:rgba(59,130,246,.08)}50%{background:rgba(59,130,246,.22)}}
.chatHeader.recording{animation:voicePulse 2.5s ease-in-out infinite!important;border-bottom-color:rgba(59,130,246,.3)!important}
/* Voice mode overlay */
.voiceOverlay{position:absolute;inset:0;z-index:300;background:var(--bg);display:none;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .25s ease}
.voiceOverlay.on{display:flex;opacity:1;pointer-events:auto}
.voiceOverlay .voHead{padding:10px 14px;border-bottom:1px solid var(--bdr);background:var(--s);display:flex;align-items:center;gap:10px}
.voiceOverlay .voHead .voTitle{font-size:13px;font-weight:900;font-family:var(--hd);text-transform:uppercase;flex:1}
.voiceOverlay .voHead .voStatus{font-size:9px;font-weight:700;font-family:var(--mono);display:flex;align-items:center;gap:4px}
.voiceOverlay .voHead .voClose{width:28px;height:28px;border-radius:var(--r);border:1px solid var(--bdr);background:var(--s);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;font-weight:900;color:var(--tx2)}.voHead .voClose:hover{border-color:var(--ac);color:var(--ac)}
.voBody{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:20px;overflow-y:auto}
.voWaveWrap{width:100%;max-width:400px;height:100px;position:relative;border-radius:var(--rm);overflow:hidden;background:var(--s);border:1px solid var(--bdr)}
.voWaveWrap canvas{width:100%;height:100%;display:block}
.voMicBtn{width:90px;height:90px;border-radius:50%;border:3px solid var(--bdr2);background:var(--s);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:36px;transition:.2s;position:relative}
.voMicBtn:hover{border-color:var(--ac);background:var(--ac2);transform:scale(1.05)}
.voMicBtn.listening{border-color:var(--rd);background:rgba(239,68,68,.08);animation:voMicPulse 1.5s ease-in-out infinite}
.voMicBtn.speaking{border-color:var(--gn);background:rgba(34,197,94,.08)}
@keyframes voMicPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.25)}50%{box-shadow:0 0 0 18px rgba(239,68,68,0)}}
.voStateLabel{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--tx3)}
.voStateLabel.listening{color:var(--rd)}
.voStateLabel.speaking{color:var(--gn)}
.voStateLabel.processing{color:var(--ac)}
.voTranscript{width:100%;max-width:440px;min-height:60px;max-height:140px;overflow-y:auto;border:1px solid var(--bdr);border-radius:var(--rm);padding:10px 14px;background:var(--s);font-size:13px;color:var(--tx);line-height:1.55}
.voTranscript .voInterim{color:var(--tx3);font-style:italic}
.voTranscript .voFinal{color:var(--tx)}
.voModes{display:flex;gap:8px;margin-top:4px}
.voModeBtn{padding:5px 12px;border:1px solid var(--bdr2);border-radius:999px;font-size:10px;font-weight:900;color:var(--tx2);cursor:pointer;background:var(--bg);transition:.12s}.voModeBtn:hover{border-color:var(--ac);color:var(--ac)}.voModeBtn.on{border-color:var(--ac);background:var(--ac2);color:var(--ac)}
.voHistory{width:100%;max-width:440px;max-height:120px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:4px 0}
.voHistItem{font-size:11px;padding:6px 10px;border-radius:var(--r);background:var(--s);border:1px solid var(--bdr)}
.voHistItem.user{background:var(--ac2);border-color:rgba(0,0,0,.18)}
.voHistItem.agent{background:var(--pu2);border-color:rgba(0,0,0,.18)}
.voHistItem b{font-weight:900}
.chatSug{padding:3px 9px;border:1px solid var(--bdr2);border-radius:999px;font-size:10px;font-weight:700;color:var(--tx2);cursor:pointer;background:var(--bg)}.chatSug:hover{border-color:var(--ac);color:var(--ac);background:var(--ac2)}
.audioBody{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}
.audioTabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);background:var(--s);flex:0 0 auto}
.atab{flex:0 0 auto;padding:8px 14px;border:none;background:transparent;border-bottom:2px solid transparent;font-size:11px;font-weight:700;color:var(--tx2);cursor:pointer;white-space:nowrap}.atab:hover{color:var(--tx)}.atab.on{color:var(--ac);border-bottom-color:var(--ac)}
.audioTabContent{flex:1;overflow:hidden;position:relative}
.atp{display:none;position:absolute;inset:0;overflow-y:auto;padding:14px;background:var(--bg)}.atp.on{display:flex;flex-direction:column;gap:10px}
.libGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.libCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);padding:10px;cursor:pointer;transition:.15s;position:relative;box-shadow:var(--sh1)}.libCard:hover{border-color:rgba(0,0,0,.25);transform:translateY(-1px)}.libCard.playing{border-color:var(--ac);background:var(--ac3)}
.libArt{width:100%;aspect-ratio:1;background:linear-gradient(135deg,#000,#000);border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:32px;margin-bottom:8px}
.libName{font-size:10px;font-weight:900;font-family:var(--hd);text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.libBadge{position:absolute;top:7px;right:7px;font-size:8px;font-weight:700;padding:2px 5px;border-radius:999px;background:var(--ac);color:#fff;font-family:var(--mono)}
.queueList{display:flex;flex-direction:column;gap:3px}
.qItem{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--r);cursor:pointer;border:1px solid transparent}.qItem:hover{background:var(--s);border-color:var(--bdr)}.qItem.playing{background:var(--ac2);border-color:rgba(0,0,0,.25)}
.qIdx{font-size:10px;font-weight:700;font-family:var(--mono);color:var(--tx3);width:20px;text-align:center;flex:0 0 20px}
.qRemove{width:20px;height:20px;border-radius:4px;border:none;background:transparent;color:var(--tx3);cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center}.qRemove:hover{background:var(--rd2);color:var(--rd)}
.uploadZone{border:1px dashed var(--bdr2);border-radius:var(--rl);padding:32px;text-align:center;cursor:pointer;background:var(--s)}.uploadZone:hover,.uploadZone.drag{border-color:var(--ac);background:var(--ac3)}
.audioFooter{position:sticky;bottom:0;z-index:200;background:var(--s);border-top:1px solid var(--bdr);box-shadow:0 -4px 16px rgba(15,20,40,.07);flex:0 0 auto}
.apRow{display:flex;align-items:center;gap:10px;padding:8px 14px}
.apArt{width:40px;height:40px;border-radius:8px;background:linear-gradient(135deg,#000,#000);flex:0 0 40px;display:flex;align-items:center;justify-content:center;font-size:18px}
.apInfo{flex:0 0 140px;min-width:0}.apTitle{font-size:10px;font-weight:900;font-family:var(--hd);text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apArtist{font-size:10px;color:var(--tx3)}
.apCtrls{display:flex;align-items:center;gap:6px}
.afc{width:30px;height:30px;border-radius:50%;border:1px solid var(--bdr2);background:var(--s);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;transition:.12s}.afc:hover{background:var(--ac2);border-color:var(--ac)}.afc.play{width:36px;height:36px;background:var(--ac);border-color:transparent;color:#fff;font-size:14px}.afc.on{color:var(--ac);border-color:var(--ac);background:var(--ac2)}
.apProg{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.apBar{height:3px;background:var(--s3);border-radius:99px;cursor:pointer;position:relative;overflow:hidden}.apFill{height:100%;background:linear-gradient(90deg,var(--ac),var(--pu));border-radius:99px;transition:width .1s linear}
.apTimes{display:flex;justify-content:space-between;font-size:9px;font-family:var(--mono);color:var(--tx3)}
.apVol{display:flex;align-items:center;gap:6px;flex:0 0 90px}
.apVolSlider{flex:1;-webkit-appearance:none;height:3px;border-radius:99px;background:var(--s3);outline:none;cursor:pointer}.apVolSlider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:var(--ac);cursor:pointer}
.ft{position:fixed;bottom:0;left:200px;right:0;z-index:300;padding:0 14px 10px;pointer-events:none}
.fti{max-width:720px;margin:0 auto;background:var(--s);border:1px solid var(--bdr2);border-radius:var(--rl);box-shadow:var(--sh3);overflow:hidden;pointer-events:auto}
.fr{display:flex;align-items:center;gap:8px;padding:7px 10px}
.fb{width:26px;height:26px;border-radius:7px;background:#000;display:flex;align-items:center;justify-content:center;flex:0 0 26px;font-size:11px;color:#fff;font-weight:900}
.fi{flex:1;border:none;outline:none;background:transparent;font-size:12px;font-weight:500;color:var(--tx);padding:4px 0}.fi::placeholder{color:var(--tx3)}
.fs{width:28px;height:28px;border-radius:var(--r);border:none;background:var(--ac);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 28px;color:#fff;font-size:12px;font-weight:900}.fs:hover{background:#4338ca}
/* Merchant Shell */
.msh{position:fixed;inset:0;z-index:8000;display:none;background:var(--bg);flex-direction:column;overflow:hidden}.msh.open{display:flex}
.mtp{display:flex;align-items:center;gap:8px;padding:0 12px;height:48px;flex:0 0 48px;background:var(--s);border-bottom:1px solid var(--bdr)}
.mtr{display:flex;align-items:center;gap:4px;margin-left:auto;overflow-x:auto}
.mtab{padding:4px 11px;border:1px solid var(--bdr);background:var(--s);border-radius:999px;font-size:11px;font-weight:700;color:var(--tx2);cursor:pointer;white-space:nowrap}.mtab:hover{border-color:var(--ac);color:var(--ac)}.mtab.on{background:var(--ac);border-color:transparent;color:#fff}
.mr{display:flex;flex:1;overflow:hidden;min-height:0}
.ml{width:30%;min-width:240px;max-width:370px;display:flex;flex-direction:column;border-right:1px solid var(--bdr);background:var(--s);overflow:hidden}
.mlt{display:flex;border-bottom:1px solid var(--bdr);overflow-x:auto;flex:0 0 auto}.mlt::-webkit-scrollbar{display:none}
.mltb{flex:0 0 auto;padding:8px 12px;font-size:11px;font-weight:700;border:none;background:transparent;border-bottom:2px solid transparent;color:var(--tx2);cursor:pointer;white-space:nowrap}.mltb:hover{color:var(--tx)}.mltb.on{color:var(--ac);border-bottom-color:var(--ac)}
.mlc{flex:1;overflow-y:auto;padding:10px;-webkit-overflow-scrolling:touch}.mp{display:none;padding:0 0 30px;overflow-y:auto;max-height:calc(100vh - 120px)}.mp.on{display:block}
#interactBody{padding-bottom:80px!important}
#skbRoot{padding-bottom:80px!important}
.vp3-view-audio .ft{display:none!important}
.mri{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg);overflow:hidden}
.mrc{flex:1;position:relative;overflow:hidden}
.ec{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--rm);padding:9px;margin-bottom:6px;display:flex;align-items:center;gap:8px;cursor:pointer}.ec:hover{border-color:var(--ac)}
.eav{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--cy),var(--ac));display:flex;align-items:center;justify-content:center;font-size:12px;flex:0 0 34px;font-weight:900;color:#fff}
.edot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:4px}.edot.w{background:var(--gn)}.edot.o{background:var(--tx3)}
.mc{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--rm);padding:9px;margin-bottom:7px}
.msgIcon{width:16px;height:16px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex:0 0 16px;color:#fff}
.msgIcon.vp3{background:linear-gradient(135deg,var(--ac),var(--pu))}.msgIcon.telegram{background:#26a5e4}.msgIcon.whatsapp{background:#25d366}.msgIcon.sms{background:var(--am)}
.brainSection{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);padding:10px;margin-top:8px}
.brainTitle{font-size:9px;font-weight:900;font-family:var(--hd);text-transform:uppercase;color:var(--pu);margin-bottom:6px;display:flex;align-items:center;gap:5px}
.brainApp{display:flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--bdr);border-radius:var(--r);margin-bottom:3px;font-size:10px;background:var(--bg);cursor:pointer;transition:.12s}.brainApp:hover{border-color:var(--ac);background:var(--ac3)}
.brainApp.connected{border-color:var(--gn);background:var(--gn2)}
.brainApp .baDot{width:6px;height:6px;border-radius:50%;flex:0 0 6px}.brainApp .baDot.off{background:var(--tx3)}.brainApp .baDot.on{background:var(--gn)}
.worldWrap{position:absolute;inset:0;overflow:hidden}
#worldMap{width:100%;height:100%;z-index:1}
.apal{position:absolute;right:10px;top:10px;width:145px;background:var(--s);border:1px solid var(--bdr2);border-radius:var(--rm);box-shadow:var(--sh3);padding:8px;z-index:20}
.apal-t{font-size:10px;font-weight:900;font-family:var(--hd);color:var(--tx2);margin-bottom:6px;text-transform:uppercase}
.api{display:flex;align-items:center;gap:7px;padding:5px 7px;border-radius:var(--r);border:1px solid var(--bdr);background:var(--bg);cursor:grab;margin-bottom:4px;font-size:11px;font-weight:700}.api:hover{border-color:var(--ac);background:var(--ac2);color:var(--ac)}
.aobj{position:absolute;cursor:grab;user-select:none;z-index:15}.aobj:active{cursor:grabbing}
.aoinn{border-radius:var(--rm);border:1px solid var(--bdr2);background:var(--s);overflow:visible;box-shadow:var(--sh1)}.aobj:hover .aoinn{box-shadow:0 0 0 2px var(--ac),var(--sh2)}
.aohead{display:flex;align-items:center;justify-content:space-between;padding:5px 7px;background:var(--s2);border-bottom:1px solid var(--bdr);border-radius:var(--rm) var(--rm) 0 0}
.aoname{font-size:10px;font-weight:900;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aodel{width:18px;height:18px;border-radius:4px;border:none;background:transparent;color:var(--tx3);cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center}.aodel:hover{background:var(--rd2);color:var(--rd)}
.aobody{padding:8px;min-height:44px;display:flex;align-items:center;justify-content:center;background:var(--s);border-radius:0 0 var(--rm) var(--rm);cursor:pointer}
.empNode{position:absolute;z-index:16;cursor:pointer;user-select:none;transition:left .15s linear,top .15s linear}
.empNodeInner{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;color:#fff;box-shadow:var(--sh2);border:2px solid #fff;position:relative}
.empNodeInner.working{background:linear-gradient(135deg,var(--gn),#22c55e)}
.empNodeLabel{position:absolute;top:-18px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:8px;font-weight:900;font-family:var(--mono);color:var(--tx2);background:rgba(255,255,255,.9);padding:1px 5px;border-radius:999px;border:1px solid var(--bdr)}
.empNodeTask{position:absolute;bottom:-14px;left:50%;transform:translateX(-50%);font-size:7px;font-weight:700;color:#fff;background:var(--ac);padding:1px 5px;border-radius:999px;white-space:nowrap}
/* Task Modal */
.taskModal{position:fixed;left:0;right:0;bottom:0;top:46px;z-index:8500;background:var(--bg);display:none;flex-direction:column;overflow:hidden}.taskModal.open{display:flex}
.taskModalHead{display:flex;align-items:center;gap:8px;padding:0 14px;height:48px;flex:0 0 48px;background:var(--s);border-bottom:1px solid var(--bdr);overflow-x:auto}
.tmTab{padding:5px 12px;border:none;background:transparent;border-bottom:2px solid transparent;font-size:11px;font-weight:700;color:var(--tx2);cursor:pointer;white-space:nowrap}.tmTab:hover{color:var(--tx)}.tmTab.on{color:var(--ac);border-bottom-color:var(--ac)}
.taskModalBody{flex:1;overflow-y:auto;padding:16px}
.skillTile{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px;cursor:pointer;transition:.18s;box-shadow:var(--sh1);margin-bottom:8px}.skillTile:hover{box-shadow:var(--sh2);border-color:rgba(0,0,0,.25);transform:translateY(-1px)}
.skillIco{font-size:24px;margin-bottom:6px}.skillName{font-size:12px;font-weight:900;font-family:var(--hd);text-transform:uppercase}.skillDesc{font-size:11px;color:var(--tx2);margin-top:3px}
.skillTag{font-size:8px;font-weight:700;padding:2px 6px;border-radius:999px;background:var(--ac2);color:var(--ac);font-family:var(--mono);margin-right:3px;margin-top:4px;display:inline-block}
.taskRunCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px;margin-bottom:8px;box-shadow:var(--sh1)}
.taskStatus{font-size:9px;font-weight:700;padding:2px 8px;border-radius:999px;font-family:var(--mono)}.taskStatus.running{background:var(--gn2);color:var(--gn)}.taskStatus.paused{background:var(--am2);color:var(--am)}.taskStatus.done{background:var(--ac2);color:var(--ac)}
.taskAction{padding:5px 0;border-bottom:1px solid var(--bdr);font-size:10px;display:flex;gap:6px;align-items:flex-start}.taskAction:last-child{border:none}
.taTs{font-family:var(--mono);color:var(--tx3);flex:0 0 60px;font-size:9px}.taMsg{flex:1;color:var(--tx2)}
.sideTask{display:flex;align-items:center;gap:6px;padding:5px 14px;font-size:10px;color:var(--tx2);cursor:pointer;transition:.12s}.sideTask:hover{background:var(--bg)}.sideTask .stDot{width:5px;height:5px;border-radius:50%;background:var(--gn);animation:bk 1.5s infinite;flex:0 0 5px}.sideTask .stName{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
/* EKG Pulse */
.ekgWrap{display:inline-flex;align-items:center;gap:5px;cursor:pointer;padding:2px 6px;border-radius:10px;border:1px solid rgba(34,197,94,.2);background:rgba(34,197,94,.05);transition:.2s;vertical-align:middle;margin-left:6px}.ekgWrap:hover{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.4)}
.ekgCanvas{width:100px;height:24px;display:block}
.ekgBpm{font-size:9px;font-weight:900;font-family:var(--mono);color:var(--gn);min-width:44px;text-align:right;line-height:1.1}
.ekgBpmSub{font-size:7px;color:var(--tx3);font-weight:600}
.dashCtrl{display:flex;align-items:center;gap:5px;margin-top:4px}
.dashRight{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto}
.dskOnly{display:inline}.mobOnly{display:none}
@media(max-width:760px){.dskOnly,.vp3-desktop-only{display:none!important}.mobOnly{display:inline!important}.ekgCanvas{width:70px!important;height:16px!important}.ekgWrap{padding:2px 4px}.ekgBpm{font-size:8px;min-width:32px}.ekgBpmSub{display:none}.dashRight{flex-direction:row;align-items:center}.dashCtrl{margin-top:0}}
/* Timeline */
.tlWrap{padding:12px 0}
.tlLine{position:relative;padding-left:24px;border-left:2px solid var(--bdr);margin-left:8px}
.tlNode{position:relative;padding:8px 10px;margin-bottom:6px;border:1px solid var(--bdr);border-radius:var(--rm);background:var(--s);font-size:10px;cursor:pointer;transition:.15s}.tlNode:hover{border-color:var(--ac);background:var(--bg)}
.tlNode::before{content:"";position:absolute;left:-20px;top:12px;width:10px;height:10px;border-radius:50%;background:var(--ac);border:2px solid var(--bg)}
.tlNode.active::before{background:var(--gn);box-shadow:0 0 6px rgba(34,197,94,.5)}
.tlTs{font-size:8px;color:var(--tx3);font-family:var(--mono)}
.tlTitle{font-weight:900;margin-top:2px}.tlMeta{font-size:9px;color:var(--tx3);margin-top:1px}
.tlProg{height:3px;border-radius:2px;background:var(--bdr);margin-top:4px;overflow:hidden}.tlProgBar{height:100%;background:linear-gradient(90deg,var(--ac),var(--gn));border-radius:2px;transition:width .5s}
/* Contacts */
.contactCard{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--bdr);border-radius:var(--rm);margin-bottom:4px;background:var(--s);transition:.12s}.contactCard:hover{border-color:var(--ac)}
.contactPri{width:4px;height:28px;border-radius:2px;flex:0 0 4px}
.contactInfo{flex:1;min-width:0}.contactName{font-size:11px;font-weight:900}.contactPhone{font-size:9px;color:var(--tx3);font-family:var(--mono)}
.contactBadge{font-size:8px;padding:2px 6px;border-radius:8px;font-weight:700;font-family:var(--mono)}
/* Quick Key */
.qkGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}
.qkItem{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--bdr);border-radius:var(--rm);cursor:pointer;transition:.12s;font-size:10px}.qkItem:hover{border-color:var(--ac);background:rgba(0,0,0,.05)}
.qkKey{background:var(--s2);border:1px solid var(--bdr);border-radius:4px;padding:2px 6px;font-size:9px;font-weight:900;font-family:var(--mono);color:var(--ac)}
.sideFooter{padding:0;border-top:1px solid var(--bdr);display:flex;flex-direction:column;gap:0;flex:0 0 auto}
/* Multi-Task Flow */
.mtfWrap{position:absolute;inset:0;overflow-y:auto;z-index:5;background:var(--bg)}
.mtfTabs{display:flex;gap:0;border-bottom:2px solid var(--bdr);background:var(--s);position:sticky;top:0;z-index:2}
.mtfTab{flex:1;padding:10px 8px;border:none;background:none;font-size:10px;font-weight:900;font-family:var(--hd);text-transform:uppercase;cursor:pointer;color:var(--tx3);border-bottom:2px solid transparent;margin-bottom:-2px;transition:.12s}
.mtfTab.on{color:var(--ac);border-bottom-color:var(--ac)}
.mtfBody{padding:16px 20px;max-width:960px;margin:0 auto}
.mtfFlowCard{border:1px solid var(--bdr);border-radius:var(--rl);padding:14px;margin-bottom:12px;background:var(--s);transition:.15s}.mtfFlowCard:hover{border-color:var(--ac);box-shadow:var(--sh1)}
.mtfNode{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--bdr);border-radius:var(--rm);background:var(--bg);cursor:grab;transition:.12s;user-select:none;min-width:160px}.mtfNode:hover{border-color:var(--ac)}.mtfNode.dragging{opacity:.4;border-style:dashed}
.mtfNode .mtfGrip{color:var(--tx3);font-size:10px;cursor:grab;flex:0 0 14px}
.mtfNode .mtfIco{font-size:16px;flex:0 0 24px;text-align:center}
.mtfNode .mtfInfo{flex:1;min-width:0}.mtfNode .mtfInfo .mtfNm{font-size:10px;font-weight:900}.mtfNode .mtfInfo .mtfDs{font-size:8px;color:var(--tx3)}
.mtfCond{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px dashed var(--am);border-radius:var(--rm);background:rgba(245,158,11,.04);margin-bottom:4px;font-size:9px;color:var(--am);font-weight:700}
.mtfArrow{text-align:center;color:var(--tx3);font-size:10px;padding:2px 0}
.mtfLevel{display:flex;gap:16px;align-items:flex-start;justify-content:center;flex-wrap:wrap;padding:10px 0;position:relative;border-left:3px solid var(--bdr);border-right:3px solid var(--bdr);margin:0 auto;min-width:200px;max-width:100%}
.mtfLevel::before{content:"";position:absolute;top:-16px;left:50%;width:2px;height:16px;background:var(--ac)}
.mtfLevel:first-child::before{display:none}
.mtfLevel:first-child{border-top:3px solid var(--bdr);border-top-left-radius:var(--rm);border-top-right-radius:var(--rm)}
.mtfLevel:last-child{border-bottom:3px solid var(--bdr);border-bottom-left-radius:var(--rm);border-bottom-right-radius:var(--rm)}
.mtfLevelLine{position:absolute;top:50%;left:0;right:0;height:1px;background:var(--bdr);z-index:0}
.mtfNodeWrap{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;z-index:1;flex:0 0 auto;max-width:220px}
.mtfForkBtn{font-size:8px;color:var(--ac);background:var(--ac2);border:1px solid var(--ac);border-radius:999px;padding:1px 8px;cursor:pointer;font-weight:700}
.mtfForkBtn:hover{background:var(--ac);color:#fff}
.mtfConnector{width:2px;height:20px;background:linear-gradient(180deg,var(--ac),var(--bdr));margin:0 auto;position:relative}.mtfConnector::after{content:"\25BC";position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);font-size:8px;color:var(--ac)}
.mtfEndBlock{display:flex;gap:6px;justify-content:center;padding:10px;border:1px dashed var(--gn);border-radius:var(--rm);background:rgba(34,197,94,.04);margin-top:4px}
.mtfEndBlock button{font-size:8px;padding:3px 10px;border-radius:999px;font-weight:700;cursor:pointer;border:1px solid var(--bdr);background:var(--bg);color:var(--tx2)}.mtfEndBlock button:hover{border-color:var(--ac);color:var(--ac)}
.mtfEndBlock button.on{border-color:var(--gn);background:var(--gn2);color:var(--gn)}
.mtfLevelDrop{min-height:80px;border:2px dashed var(--bdr);border-radius:var(--rl);padding:12px;display:flex;flex-direction:column;align-items:center;gap:0;transition:.15s;background:rgba(0,0,0,.01)}
.mtfSimBar{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--bdr);border-radius:var(--rm);background:var(--s);margin-top:10px}
.voiceToggle{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:1px solid var(--bdr2);border-radius:999px;font-size:10px;font-weight:700;color:var(--tx3);cursor:pointer;background:var(--s);float:right;transition:.12s}.voiceToggle:hover{border-color:var(--ac)}.voiceToggle.on{background:var(--ac2);border-color:rgba(0,0,0,.35);color:var(--ac)}
/* Send Modal */
/* ── SEND TASK SYSTEM ── */
.taskInboxItem{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:0;margin-bottom:8px;box-shadow:var(--sh1);overflow:hidden;position:relative}
.taskInboxItem .tiHeader{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--bdr);background:var(--s2);flex-wrap:wrap}
.taskInboxItem .tiAvatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--ac),var(--pu));display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;color:#fff;flex:0 0 32px}
.taskInboxItem .tiFrom{font-size:11px;font-weight:900;color:var(--tx)}
.taskInboxItem .tiDate{font-size:9px;color:var(--tx3);font-family:var(--mono)}
.taskInboxItem .tiType{font-size:8px;font-weight:900;padding:2px 7px;border-radius:999px;background:var(--am2);color:var(--am);font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em}
.taskInboxItem .tiHeaderBtns{display:flex;align-items:center;gap:3px;margin-left:auto}
.taskInboxItem .tiBody{padding:12px 14px}
.taskInboxItem .tiSubject{font-size:12px;font-weight:900;font-family:var(--hd);text-transform:uppercase;margin-bottom:4px}
.taskInboxItem .tiPrompt{font-size:11px;color:var(--tx2);line-height:1.5;padding:8px 10px;background:var(--bg);border:1px solid var(--bdr);border-radius:var(--rm);margin-top:6px;font-family:var(--mono)}
.tiBtnOpen{padding:5px 10px;border:none;border-radius:var(--rm);background:linear-gradient(135deg,var(--ac),var(--pu));color:#fff;font-size:10px;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:.15s;white-space:nowrap}.tiBtnOpen:hover{filter:brightness(1.1)}
.tiBtnScan{padding:5px 10px;border:1px solid var(--bdr2);border-radius:var(--rm);background:var(--s);color:var(--tx2);font-size:10px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:.15s;white-space:nowrap}.tiBtnScan:hover{border-color:var(--gn);color:var(--gn);background:var(--gn2)}
.tiBtnScan.scanning{pointer-events:none;border-color:var(--ac);color:var(--ac);background:var(--ac2)}
.tiBtnSmall{padding:4px 8px;border:1px solid var(--bdr2);border-radius:var(--rm);background:var(--s);color:var(--tx2);font-size:10px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:3px;transition:.12s;white-space:nowrap}.tiBtnSmall:hover{border-color:var(--ac);color:var(--ac);background:var(--ac2)}
.tiBtnSmall.dn{color:var(--rd)}.tiBtnSmall.dn:hover{border-color:var(--rd);background:var(--rd2);color:var(--rd)}
.tiBtnSmall .tiLbl{display:inline}
.tiScanResult{margin-top:8px;padding:8px 10px;border-radius:var(--rm);font-size:10px;font-weight:700;display:none;align-items:center;gap:6px}
.tiScanResult.safe{display:flex;background:var(--gn2);color:var(--gn);border:1px solid rgba(22,163,74,.2)}
.tiScanResult.threat{display:flex;background:var(--rd2);color:var(--rd);border:1px solid rgba(220,38,38,.2)}
@keyframes scanLine{0%{top:0;opacity:1}50%{opacity:.6}100%{top:calc(100% - 3px);opacity:1}}
@keyframes scanPulse{0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,.3)}50%{box-shadow:0 0 12px 4px rgba(0,0,0,.15)}}
.tiScanOverlay{position:absolute;inset:0;background:rgba(0,0,0,.04);z-index:2;pointer-events:none;overflow:hidden;border-radius:var(--rl)}
.tiScanOverlay .scanBar{position:absolute;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--ac),transparent);animation:scanLine 1.2s ease-in-out infinite;border-radius:2px}
/* Reply dropdown on task items */
.tiReplyDrop{display:none;padding:10px 14px;border-top:1px solid var(--bdr);background:var(--s2)}.tiReplyDrop.open{display:block}
.tiReplyDrop textarea{width:100%;border:1px solid var(--bdr2);border-radius:var(--rm);padding:7px 10px;font-size:12px;background:var(--bg);resize:none;outline:none;font-family:var(--f)}.tiReplyDrop textarea:focus{border-color:var(--ac);background:var(--s)}
.tiReplyDrop .tiReplySendRow{display:flex;gap:6px;margin-top:6px;align-items:center}
/* ── Inbox Slide-Out Folder Drawer ── */
.ibFolderScrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:200}
.ibFolderScrim.open{display:block}
.ibFolderDraw{position:fixed;top:0;left:0;bottom:0;width:260px;background:var(--bg);z-index:201;transform:translateX(-100%);transition:transform .25s ease;display:flex;flex-direction:column;box-shadow:4px 0 20px rgba(0,0,0,.2)}.ibFolderDraw.open{transform:translateX(0)}
.ibFolderDrawHead{padding:14px 16px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between;background:var(--s)}
.ibFolderDrawHead .ibfdTitle{font-size:13px;font-weight:900;font-family:var(--hd);text-transform:uppercase}
.ibFolderDrawBody{flex:1;overflow-y:auto;padding:6px 0}
.ibFolderItem{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;color:var(--tx2);cursor:pointer;transition:.12s}.ibFolderItem:hover{background:var(--s);color:var(--tx)}.ibFolderItem.on{color:var(--ac);background:var(--ac3)}
.ibFolderItem .ibfIco{font-size:14px;flex:0 0 20px;text-align:center}
.ibFolderItem .ibfCount{font-size:9px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--s);color:var(--tx3);font-family:var(--mono);margin-left:auto}
.ibFolderItem .ibfNew{font-size:8px;font-weight:800;padding:1px 6px;border-radius:999px;background:var(--rd);color:#fff;font-family:var(--mono);margin-left:auto;animation:ibfPulse 2s infinite}
@keyframes ibfPulse{0%,100%{opacity:1}50%{opacity:.6}}
.ibFolderItem .ibfDel{opacity:0;width:18px;height:18px;border:none;background:transparent;color:var(--tx3);cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:.12s}.ibFolderItem:hover .ibfDel{opacity:1}.ibfDel:hover{background:var(--rd2);color:var(--rd)}
#ibThreadAvatars img,#ibThreadAvatars div{transition:transform .15s}#ibThreadAvatars img:hover,#ibThreadAvatars div:hover{transform:scale(1.15);z-index:1}
#ibAudioCallBtn,#ibVideoCallBtn{padding:2px 6px;border:1px solid var(--bdr);border-radius:6px;background:transparent;color:var(--tx);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
#ibAudioCallBtn:hover{background:rgba(16,185,129,.1);color:var(--gn)}#ibVideoCallBtn:hover{background:rgba(0,0,0,.1);color:var(--ac)}
.ccIn.messengerMode{border-color:var(--ac);background:var(--ac2)}.ccSend.messengerMode{background:var(--ac);color:#fff}
#messengerBar{animation:messengerSlide .2s ease-out}@keyframes messengerSlide{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
/* Move-to-folder dropdown */
.tiMoveMenu{position:absolute;right:0;top:100%;z-index:20;background:var(--s);border:1px solid var(--bdr2);border-radius:var(--rm);box-shadow:var(--sh3);min-width:140px;padding:4px;display:none}.tiMoveMenu.open{display:block}
.tiMoveMenu button{display:block;width:100%;text-align:left;padding:6px 10px;border:none;background:transparent;font-size:11px;font-weight:600;color:var(--tx2);cursor:pointer;border-radius:var(--r)}.tiMoveMenu button:hover{background:var(--bg);color:var(--tx)}
/* Scheduler */
.schedCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);padding:10px 12px;margin-bottom:6px;display:flex;align-items:center;gap:8px;box-shadow:var(--sh1)}
.schedCard .schedIco{width:28px;height:28px;border-radius:7px;background:var(--cy);display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;flex:0 0 28px;opacity:.8}
.schedCard .schedInfo{flex:1;min-width:0}.schedCard .schedTo{font-size:10px;font-weight:900}.schedCard .schedPrompt{font-size:10px;color:var(--tx2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schedCard .schedMeta{font-size:8px;color:var(--tx3);font-family:var(--mono);margin-top:1px}
/* Inbox hamburger */
.ibHamburger{display:none;width:32px;height:32px;border:1px solid var(--bdr2);border-radius:var(--rm);background:var(--s);cursor:pointer;align-items:center;justify-content:center;font-size:14px;flex:0 0 32px;transition:.12s;color:var(--tx2)}.ibHamburger:hover{background:var(--bg);color:var(--ac);border-color:var(--ac)}
/* Inbox header buttons - desktop shows text+icon, mobile shows icon only */
.ibHdrBtn{padding:5px 10px;border:1px solid var(--bdr2);border-radius:var(--rm);background:var(--s);color:var(--tx2);font-size:10px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:.12s;white-space:nowrap}.ibHdrBtn:hover{border-color:var(--ac);color:var(--ac);background:var(--ac2)}
#ibThreadAvatars{display:flex;align-items:center;padding-left:6px}
#ibAudioCallBtn,#ibVideoCallBtn{padding:4px 8px;border:1px solid var(--bdr2);border-radius:var(--rm);background:var(--s);color:var(--tx2);cursor:pointer;transition:.12s;align-items:center;justify-content:center}
#ibAudioCallBtn:hover{border-color:#10b981;color:#10b981;background:rgba(16,185,129,.08)}
#ibVideoCallBtn:hover{border-color:#000;color:#000;background:rgba(0,0,0,.08)}
.ibHdrBtn .ibhLbl{display:inline}
/* ── Inbox Mobile ── */
@media(max-width:760px){
.ibHamburger{display:inline-flex}
.ibHdrBtn{padding:5px 8px;font-size:11px}.ibHdrBtn .ibhLbl{display:none}
.tiBtnSmall .tiLbl{display:none}
.tiBtnOpen,.tiBtnScan{padding:4px 8px;font-size:9px}
.taskInboxItem .tiAvatar{width:28px;height:28px;font-size:10px;flex:0 0 28px}
.taskInboxItem .tiFrom{font-size:10px}.taskInboxItem .tiDate{font-size:8px}
.taskInboxItem .tiBody{padding:10px 12px}
.taskInboxItem .tiPrompt{font-size:10px;padding:6px 8px}
.giftCard{padding:10px 12px}
}
/* Sidebar folder section for desktop - shown inside sidebar */
#sideIBFolderList .ibFolderItem{padding:4px 14px;font-size:10px}
#sideIBFolderList .ibFolderItem .ibfIco{font-size:12px;flex:0 0 18px}
@media(max-width:760px){#sideInboxFolders{display:none!important}}
/* Task Canvas View */
.taskCanvas{position:fixed;left:0;right:0;bottom:0;top:46px;z-index:8600;background:var(--bg);display:none;flex-direction:column;overflow:hidden}.taskCanvas.open{display:flex}
.taskCanvas .tcHead{display:flex;align-items:center;gap:10px;padding:0 14px;height:48px;flex:0 0 48px;background:var(--s);border-bottom:1px solid var(--bdr)}
.taskCanvas .tcTitle{font-size:13px;font-weight:900;font-family:var(--hd);text-transform:uppercase;flex:1}
.taskCanvas .tcBody{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:14px}
.taskCanvas .tcTaskCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:16px;box-shadow:var(--sh1)}
.taskCanvas .tcOutput{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:16px;box-shadow:var(--sh1);min-height:180px;position:relative}
.taskCanvas .tcOutput .tcOutputLabel{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--tx3);margin-bottom:10px}
.taskCanvas .tcOutput .tcOutputContent{font-size:12px;color:var(--tx);line-height:1.6}
.taskCanvas .tcReplyBar{flex:0 0 auto;padding:12px 14px;background:var(--s);border-top:1px solid var(--bdr);display:flex;flex-direction:column;gap:8px}
.taskCanvas .tcReplyRow{display:flex;align-items:center;gap:8px}
.taskCanvas .tcReplyInput{flex:1;border:1px solid var(--bdr2);border-radius:var(--rm);padding:8px 12px;font-size:12px;background:var(--bg);outline:none;resize:none}.tcReplyInput:focus{border-color:var(--ac);background:var(--s)}
.taskCanvas .tcReplyActions{display:flex;gap:6px;align-items:center}
.tcReplyBtn{padding:6px 12px;border:1px solid var(--bdr2);border-radius:var(--rm);background:var(--s);font-size:10px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:.12s}.tcReplyBtn:hover{border-color:var(--ac);color:var(--ac);background:var(--ac2)}
.tcReplyBtn.pri{background:linear-gradient(135deg,var(--ac),var(--pu));border-color:transparent;color:#fff}.tcReplyBtn.pri:hover{filter:brightness(1.1)}
.tcReplyBtn.mic{border-radius:50%;width:34px;height:34px;padding:0;justify-content:center;font-size:14px}
.tcReplyBtn.mic.recording{border-color:var(--rd);background:rgba(239,68,68,.1);color:var(--rd);animation:micPulse 1.2s ease-in-out infinite}
.tcRunning{display:flex;align-items:center;gap:8px;padding:10px;background:var(--ac3);border:1px solid rgba(0,0,0,.15);border-radius:var(--rm);font-size:11px;color:var(--ac);font-weight:700}
.tcRunning .tcDot{width:6px;height:6px;border-radius:50%;background:var(--ac);animation:bk 1.5s infinite;flex:0 0 6px}
.sendModal{position:fixed;inset:0;z-index:10100;display:none;align-items:center;justify-content:center;background:rgba(15,20,40,.4);backdrop-filter:blur(6px);padding:16px}.sendModal.open{display:flex}
.sendModalBox{width:min(480px,100%);max-height:90vh;background:var(--s);border-radius:var(--rl);box-shadow:var(--sh3);overflow:hidden;display:flex;flex-direction:column}
.sendModalHead{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--bdr);background:var(--s)}
.sendModalBody{flex:1;overflow-y:auto;padding:16px;background:var(--bg)}
.sendMethod{display:flex;align-items:center;gap:10px;padding:10px 12px;border:2px solid var(--bdr);border-radius:var(--rm);cursor:pointer;transition:.15s;margin-bottom:6px;background:var(--s)}.sendMethod:hover{border-color:var(--ac);background:var(--ac3)}.sendMethod.selected{border-color:var(--ac);background:var(--ac2)}
.sendMethod .smIcon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;color:#fff;flex:0 0 32px}
.sendMethod .smName{font-size:12px;font-weight:700}.sendMethod .smDesc{font-size:10px;color:var(--tx3)}
@media(max-width:760px){
.sendModal .sendModalBox{width:100%;height:100%;max-height:100%;border-radius:0}
.sendModal{padding:0}
/* Phase 1C: Mobile full-screen claim modal */
.sendModal.claimMode .sendModalBox{position:fixed;inset:0;width:100vw;height:100vh;max-height:100vh;border-radius:0;z-index:9600}
.sendModal.claimMode .sendModalHead{position:sticky;top:0;z-index:10;background:var(--s);padding:12px 16px}
.sendModal.claimMode .sendModalBody{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 0 80px}
.sendModal.claimMode .smCloseBtn{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;font-size:18px}
.claimTabs{display:flex;gap:0;padding:0;background:var(--s);border-bottom:1px solid var(--bdr)}
.claimTabs .clTab{flex:1;padding:12px 8px;text-align:center;font-size:12px;font-weight:700}
.claimHero{width:100%;border-radius:0;max-height:280px}
.claimLocList .clLocItem{padding:12px 16px}
.claimContentFeed .clPostCard{margin:0;border-radius:0;border-left:0;border-right:0}
.tipAmtBtns{flex-wrap:wrap}
.tipAmtBtns button{flex:1 1 60px}
}
/* ═══════════════════════════════════════════════════════════════
   PHASE 1: Claim Modal Redesign — Tabs, Hero, Location List
   ═══════════════════════════════════════════════════════════════ */
.claimTabs{display:flex;gap:0;background:var(--s);border-bottom:2px solid var(--bdr);margin:-16px -16px 16px}
.claimTabs .clTab{flex:1;padding:10px 12px;text-align:center;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--tx3);cursor:pointer;border-bottom:2px solid transparent;transition:.15s;background:transparent}
.claimTabs .clTab.on{color:var(--ac);border-bottom-color:var(--ac);background:var(--ac3)}
.claimTabs .clTab:hover{color:var(--ac);background:rgba(0,0,0,.04)}
.claimHero{width:100%;aspect-ratio:16/9;max-height:240px;object-fit:cover;border-radius:var(--rm);margin-bottom:14px;background:linear-gradient(135deg,#000,#000)}
.claimHeroPlaceholder{width:100%;aspect-ratio:16/9;max-height:240px;border-radius:var(--rm);margin-bottom:14px;background:linear-gradient(135deg,#000 0%,#000 50%,#333 100%);display:flex;align-items:center;justify-content:center;font-size:48px}
.claimBizRow{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.claimBizRow img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--bdr);flex:0 0 48px}
.claimBizRow .cbName{font-size:14px;font-weight:800;color:var(--t1)}
.claimBizRow .cbVerified{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--ac);color:#fff;font-size:9px;margin-left:4px;flex:0 0 16px}
.claimLocList{margin:12px 0}
.claimLocList .clLocItem{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--bdr);border-radius:var(--r);margin-bottom:6px;background:var(--s)}
.claimLocList .clLocItem .clLocIcon{font-size:16px;flex:0 0 20px;margin-top:1px}
.claimLocList .clLocItem .clLocAddr{font-size:11px;color:var(--tx2);line-height:1.4}
.claimLocList .clLocItem .clLocName{font-size:12px;font-weight:700;color:var(--t1)}
.claimCodeWrap{margin:16px 0}
.claimCodeWrap input{font-family:var(--mono);text-transform:uppercase;font-size:16px;letter-spacing:.12em;text-align:center;padding:12px;border:2px solid var(--bdr);border-radius:var(--rm);width:100%;box-sizing:border-box;background:var(--s);color:var(--t1)}
.claimCodeWrap input:focus{border-color:var(--ac);outline:none;box-shadow:0 0 0 3px rgba(0,0,0,.15)}
/* Phase 1B Tab 2: Content feed */
.claimContentFeed{max-height:460px;overflow-y:auto}
.clPostCard{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--bdr);border-radius:var(--rm);margin-bottom:8px;background:var(--s);cursor:pointer;transition:.15s}
.clPostCard:hover{border-color:var(--ac);background:var(--ac3)}
.clPostCard img{width:60px;height:60px;object-fit:cover;border-radius:var(--r);flex:0 0 60px}
.clPostCard .clpText{font-size:11px;color:var(--tx2);line-height:1.4;margin-top:2px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.clPostCard .clpMeta{font-size:9px;color:var(--tx3);margin-top:4px}
.clPostCard .clpNoImg{width:60px;height:60px;background:linear-gradient(135deg,var(--ac3),var(--bg));border-radius:var(--r);flex:0 0 60px;display:flex;align-items:center;justify-content:center;font-size:20px}
/* ═══════════════════════════════════════════════════════════════
   PHASE 2: Post-Claim Success + Tipping System
   ═══════════════════════════════════════════════════════════════ */
.claimSuccess{text-align:center;padding:20px 0}
.claimSuccessCheck{font-size:64px;animation:clSuccessPop .5s cubic-bezier(.175,.885,.32,1.275)}
@keyframes clSuccessPop{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}
.claimSuccessTitle{font-size:20px;font-weight:900;color:var(--gn);margin:8px 0 4px}
.claimSuccessMsg{font-size:12px;color:var(--tx2);line-height:1.5;margin-bottom:16px;max-width:320px;margin-left:auto;margin-right:auto}
.claimSuccessCard{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);margin:12px auto;max-width:340px;text-align:left}
.claimSuccessCard .cscLabel{font-size:10px;color:var(--tx3);font-weight:700;text-transform:uppercase}
.claimSuccessCard .cscValue{font-size:13px;font-weight:800;color:var(--t1)}
.tipSection{padding:16px 0;border-top:1px solid var(--bdr);margin-top:16px}
.tipSection .tipHead{font-size:14px;font-weight:900;margin-bottom:12px;color:var(--t1)}
.tipEmpSelect{width:100%;padding:10px 12px;border:1px solid var(--bdr);border-radius:var(--r);background:var(--s);color:var(--t1);font-size:12px;margin-bottom:12px;cursor:pointer}
.tipAmtBtns{display:flex;gap:6px;margin-bottom:12px}
.tipAmtBtns button{padding:10px 0;flex:1;border:2px solid var(--bdr);border-radius:var(--rm);background:var(--s);color:var(--t1);font-size:13px;font-weight:800;cursor:pointer;transition:.15s}
.tipAmtBtns button:hover,.tipAmtBtns button.on{border-color:var(--ac);background:var(--ac2);color:var(--ac)}
.tipCustomInput{display:none;margin-bottom:12px}
.tipCustomInput.show{display:block}
.tipCustomInput input{width:100%;padding:10px;border:1px solid var(--bdr);border-radius:var(--r);background:var(--s);color:var(--t1);font-size:14px;font-weight:700;text-align:center;box-sizing:border-box}
.tipSkip{display:block;text-align:center;font-size:11px;color:var(--tx3);margin-top:8px;cursor:pointer;text-decoration:underline}
.tipSkip:hover{color:var(--t1)}
/* ═══════════════════════════════════════════════════════════════
   PHASE 4/5: Admin Tips, Energy Config, API Keys panels
   ═══════════════════════════════════════════════════════════════ */
.admCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);padding:16px;margin-bottom:12px}
.admCard .admCardTitle{font-size:13px;font-weight:900;margin-bottom:10px;color:var(--t1)}
.admTable{width:100%;border-collapse:collapse;font-size:11px}
.admTable th{text-align:left;padding:8px 10px;background:var(--bg);border-bottom:1px solid var(--bdr);font-weight:800;color:var(--tx3);text-transform:uppercase;letter-spacing:.04em;font-size:9px}
.admTable td{padding:8px 10px;border-bottom:1px solid var(--bdr);color:var(--t1)}
.admTable tr:hover td{background:rgba(0,0,0,.03)}
.admBadge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:9px;font-weight:700;text-transform:uppercase}
.admBadge.ai{background:rgba(139,92,246,.1);color:#000}
.admBadge.social{background:rgba(6,182,212,.1);color:#06b6d4}
.admBadge.commerce{background:rgba(34,197,94,.1);color:#22c55e}
.admBadge.content{background:rgba(249,115,22,.1);color:#f97316}
.admBadge.premium{background:rgba(236,72,153,.1);color:#000}
.admBadge.payment{background:rgba(59,130,246,.1);color:#3b82f6}
.admBadge.messaging{background:rgba(0,0,0,.1);color:#000}
.admBadge.maps{background:rgba(245,158,11,.1);color:#f59e0b}
.admBadge.custom{background:rgba(107,114,128,.1);color:#6b7280}
.admToggle{position:relative;width:36px;height:20px;background:var(--bdr);border-radius:10px;cursor:pointer;transition:.2s;border:none;padding:0}
.admToggle.on{background:var(--ac)}
.admToggle::after{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:2px;left:2px;transition:.2s}
.admToggle.on::after{left:18px}
.admKeyInput{width:100%;padding:6px 8px;border:1px solid var(--bdr);border-radius:var(--r);background:var(--bg);color:var(--t1);font-size:11px;font-family:var(--mono);box-sizing:border-box}
.admKeyInput:focus{border-color:var(--ac);outline:none}
.admStat{text-align:center;padding:12px}
.admStat .admStatVal{font-size:24px;font-weight:900;color:var(--ac)}
.admStat .admStatLabel{font-size:10px;color:var(--tx3);font-weight:700;text-transform:uppercase;margin-top:2px}
.admApiSection{margin-bottom:16px}
.admApiSection .admApiHead{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg);border:1px solid var(--bdr);border-radius:var(--rm);cursor:pointer;font-size:12px;font-weight:800;color:var(--t1);margin-bottom:4px}
.admApiSection .admApiHead:hover{background:rgba(0,0,0,.04)}
.admApiSection .admApiBody{padding:0 4px}
.admApiSection .admApiBody.collapsed{display:none}
.admDot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.admDot.green{background:#10b981}
.admDot.gray{background:#6b7280}
.admDot.yellow{background:#f59e0b}
/* Tip settings section in merchant panel */
.tipSettingsSection{padding:16px 0}
.tipSettingsSection label{font-size:11px;font-weight:700;color:var(--tx3);display:block;margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}
.tipSettingsSection select,.tipSettingsSection input[type="number"]{padding:8px 10px;border:1px solid var(--bdr);border-radius:var(--r);background:var(--s);color:var(--t1);font-size:12px;width:100%;box-sizing:border-box;margin-bottom:10px}
.tipSettingsSection .tsRadio{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.tipSettingsSection .tsRadio label{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--bdr);border-radius:var(--r);cursor:pointer;font-size:11px;font-weight:700;color:var(--t1);text-transform:none;letter-spacing:normal;transition:.15s}
.tipSettingsSection .tsRadio label:hover{border-color:var(--ac);background:rgba(0,0,0,.04)}
.tipSettingsSection .tsRadio input:checked+span{color:var(--ac)}
/* Energy display merge in sidebar */
.energyMerge{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--tx3);margin-top:2px}
/* Landing Page */
.ob-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;background:#ffffff;color:#111}
/* HERO */
.lp-hero{position:relative;min-height:max(100vh,600px);display:flex;align-items:center;justify-content:center;padding:60px 24px 40px;overflow:hidden}
.lp-hero-bg{position:absolute;inset:0;background:linear-gradient(165deg,#0a0e1a 0%,#0d1832 18%,#0f2240 32%,#102a48 45%,#133a52 58%,#1a4a58 70%,#2a6068 80%,#4a8898 90%,#80b8c8 100%);z-index:0}
.lp-hero-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 50% at 25% 35%,rgba(0,0,0,.1),transparent),radial-gradient(ellipse 60% 40% at 75% 55%,rgba(34,211,238,.08),transparent),radial-gradient(ellipse 40% 30% at 50% 80%,rgba(255,255,255,.04),transparent)}
/* Floating 3D glass cubes */
.lp-float{position:absolute;border-radius:8px;opacity:.18;z-index:1;backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.08);background:linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.02))}
.lp-f1{width:40px;height:40px;top:15%;left:12%;animation:lpFl 8s ease-in-out infinite;transform:rotate(15deg)}
.lp-f2{width:28px;height:28px;top:25%;right:15%;animation:lpFl 6s ease-in-out infinite 1s;transform:rotate(-20deg)}
.lp-f3{width:50px;height:50px;bottom:20%;right:10%;animation:lpFl 10s ease-in-out infinite 2s;transform:rotate(30deg)}
@keyframes lpFl{0%,100%{transform:translateY(0) rotate(15deg)}50%{transform:translateY(-18px) rotate(25deg)}}
.lp-hero-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:30px;max-width:1200px;width:100%}
@media(min-width:900px){.lp-hero-content{flex-direction:row;align-items:center;gap:50px}}
.lp-hero-text{flex:1;min-width:0}
.lp-h1{font-size:clamp(32px,6vw,62px);font-weight:900;font-family:var(--hd);line-height:1.05;letter-spacing:-.02em;color:#fff;margin:0 0 16px;text-shadow:0 2px 40px rgba(0,0,0,.3)}
.lp-hero-sub{font-size:clamp(13px,1.8vw,17px);color:rgba(255,255,255,.5);margin-bottom:28px;line-height:1.6;max-width:480px}
.lp-hero-actions{max-width:460px}
.lp-search{width:100%;position:relative;margin-bottom:8px}
.lp-search input{width:100%;padding:14px 50px 14px 18px;border:1.5px solid rgba(255,255,255,.12);border-radius:999px;font-size:14px;font-family:var(--f);color:#fff;outline:none;background:rgba(255,255,255,.06);backdrop-filter:blur(8px);transition:.2s;box-shadow:0 2px 20px rgba(0,0,0,.2)}.lp-search input:focus{border-color:rgba(0,0,0,.5);box-shadow:0 4px 30px rgba(0,0,0,.15)}.lp-search input::placeholder{color:rgba(255,255,255,.25)}
.lp-search button{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:none;border-radius:50%;background:linear-gradient(135deg,#000,#000);color:#fff;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s}.lp-search button:hover{filter:brightness(1.15)}
/* Mockups — 3D perspective */
.lp-mockups{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:12px;position:relative;width:min(460px,100%);perspective:1200px}
@media(min-width:900px){.lp-mockups{width:460px}}
.lp-mock{background:rgba(15,20,40,.7);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:14px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.05) inset}
.lp-mock-main{width:100%;transform:rotateY(-8deg) rotateX(4deg);transition:transform .5s ease}.lp-mock-main:hover{transform:rotateY(-2deg) rotateX(1deg)}
.lp-mock-bar{display:flex;align-items:center;gap:5px;padding:8px 12px;background:rgba(0,0,0,.4);border-bottom:1px solid rgba(255,255,255,.06)}
.lp-mock-dot{width:7px;height:7px;border-radius:50%}
.lp-mock-body{padding:14px}
.lp-mock-stat{flex:1;padding:10px 6px;border-radius:10px;text-align:center;border:1px solid transparent}
.lp-mock-chart{display:flex;align-items:flex-end;gap:4px;height:70px;padding:8px 4px 0}
.lp-chart-bar{flex:1;background:linear-gradient(to top,rgba(0,0,0,.7),rgba(168,85,247,.3));border-radius:3px 3px 0 0;min-width:0;animation:lpGrow 1.5s ease-out}
@keyframes lpGrow{from{height:0!important}}
.lp-mock-side{position:absolute}
.lp-mock-phone{width:150px;right:-20px;top:45%;transform:translateY(-50%) rotateY(8deg);border-radius:18px;border:2px solid rgba(255,255,255,.12);box-shadow:0 12px 40px rgba(0,0,0,.5)}
.lp-mock-left{width:160px;left:-30px;bottom:10px;transform:rotateY(6deg) rotateX(-2deg);box-shadow:0 12px 40px rgba(0,0,0,.4)}
@media(max-width:899px){.lp-mockups{perspective:none}.lp-mock-main{transform:none}.lp-mock-main:hover{transform:none}.lp-mock-side,.lp-mock-left{display:none}}
/* Industries — light gradient transition */
.lp-industries{padding:40px 24px 50px;background:linear-gradient(180deg,#80b8c8 0%,#c8dde4 30%,#e8f0f4 60%,#f4f8fa 100%)}
.lp-btns{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;max-width:820px;margin:0 auto}
.lp-agent-btn{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid rgba(0,0,0,.06);background:rgba(255,255,255,.7);backdrop-filter:blur(8px);cursor:pointer;transition:.2s;text-align:left;font-family:var(--f);color:#1a2030}.lp-agent-btn:hover{background:rgba(255,255,255,.95);border-color:rgba(0,0,0,.3);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.lp-agent-btn .lp-ab-ico{font-size:22px;opacity:.8;filter:none}.lp-agent-btn:hover .lp-ab-ico{opacity:1}
.lp-agent-btn .lp-ab-label{font-size:11px;font-weight:800;color:#1a2030}.lp-agent-btn .lp-ab-desc{font-size:10px;color:rgba(26,32,48,.5)}
/* Features — light background */
.lp-features{background:linear-gradient(180deg,#f4f8fa,#fff);padding:50px 24px}
.lp-llm-section{background:#fff;padding:50px 24px}
.lp-section-title{text-align:center;font-size:clamp(20px,3.5vw,32px);font-weight:900;font-family:var(--hd);text-transform:uppercase;color:#1a2030;margin-bottom:8px}
.lp-section-sub{text-align:center;font-size:13px;color:rgba(26,32,48,.45);margin-bottom:40px;max-width:500px;margin-left:auto;margin-right:auto}
.lp-feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;max-width:1060px;margin:0 auto}
.lp-feat{padding:24px;border-radius:14px;background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.06);transition:.2s;backdrop-filter:blur(4px);box-shadow:0 2px 12px rgba(0,0,0,.04)}.lp-feat:hover{border-color:rgba(0,0,0,.25);background:#fff;transform:translateY(-3px);box-shadow:0 8px 30px rgba(0,0,0,.08)}
.lp-fi{font-size:28px;margin-bottom:10px}.lp-ft{font-size:12px;font-weight:900;font-family:var(--hd);text-transform:uppercase;color:#4338ca;letter-spacing:.06em;margin-bottom:6px}.lp-fd{font-size:12px;line-height:1.7;color:rgba(26,32,48,.5)}
/* Footer — dark */
.lp-footer{background:#0a0e1a;border-top:1px solid rgba(255,255,255,.05);padding:40px 24px 30px}
.lp-footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:960px;margin:0 auto}
.lp-footer-col h4{font-size:10px;font-weight:900;font-family:var(--hd);text-transform:uppercase;letter-spacing:.12em;color:#e2e8f0;margin-bottom:12px}
.lp-footer-col a{display:block;font-size:11px;color:rgba(255,255,255,.3);text-decoration:none;margin-bottom:6px;transition:.15s}.lp-footer-col a:hover{color:#e2e8f0}
.lp-footer-bottom{text-align:center;margin-top:30px;font-size:10px;color:rgba(255,255,255,.2);font-family:var(--mono);letter-spacing:.08em}
/* Onboarding box */
.ob-box{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2001;width:min(520px,92vw);background:#fff;border-radius:var(--rl);box-shadow:0 24px 80px rgba(15,20,40,.2);padding:30px;text-align:center;border:1px solid #e2e8f0}
.ob-close{position:absolute;top:10px;right:12px;width:28px;height:28px;border:1px solid #e2e8f0;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;color:#64748b;transition:.15s;z-index:1}.ob-close:hover{background:#f1f5f9;color:#0f172a}
.ob-title{font-size:10px;font-weight:900;font-family:var(--hd);letter-spacing:.2em;text-transform:uppercase;color:var(--ac);margin-bottom:4px}
.ob-hero{font-size:28px;font-weight:900;font-family:var(--hd);text-transform:uppercase;background:linear-gradient(135deg,#000,#000,#000);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:6px}
.ob-sub{font-size:12px;color:var(--tx2);margin-bottom:20px;line-height:1.5}
.ob-go{padding:10px 28px;border:none;background:linear-gradient(135deg,var(--ac),var(--pu));color:#fff;border-radius:var(--rm);font-size:14px;font-weight:900;cursor:pointer;margin-top:8px}.ob-go:hover{filter:brightness(1.1)}
.ob-choice{display:flex;gap:10px;justify-content:center;margin:16px 0}
.ob-opt{flex:1;max-width:200px;padding:20px 16px;border:2px solid var(--bdr2);border-radius:var(--rl);background:var(--s);cursor:pointer;transition:.18s;text-align:center}.ob-opt:hover{border-color:var(--ac);background:var(--ac3)}.ob-opt.on{border-color:var(--ac);background:var(--ac2)}
.ob-emoji{font-size:28px;margin-bottom:6px}.ob-optl{font-size:12px;font-weight:900;font-family:var(--hd);text-transform:uppercase}
.vp3toast{position:fixed;bottom:60px;left:50%;transform:translateX(-50%);z-index:10500;padding:8px 16px;border-radius:var(--rm);background:#1f2937;color:#fff;font-size:12px;font-weight:700;box-shadow:var(--sh3);opacity:0;transition:opacity .3s;pointer-events:none}.vp3toast.show{opacity:1}
/* Modals */
#scrim{display:none;position:fixed;inset:0;z-index:900;background:rgba(15,20,40,.3);backdrop-filter:blur(4px)}
.vm{display:none;position:fixed;inset:0;z-index:10001;align-items:center;justify-content:center;padding:14px;pointer-events:none}.vm.open{display:flex;pointer-events:auto}
.vmb{width:min(640px,100%);max-height:90vh;background:var(--s);border-radius:var(--rl);box-shadow:var(--sh3);overflow:hidden;display:flex;flex-direction:column}
.vmh{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--bdr)}
.vmt{font-size:12px;font-weight:900;font-family:var(--hd);text-transform:uppercase;letter-spacing:.04em}
.xb{width:36px;height:36px;border:1px solid var(--bdr2);background:var(--s);border-radius:var(--r);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--tx2)}.xb:hover{background:var(--bg)}
.jmod{display:none;position:fixed;inset:0;z-index:1200;background:rgba(15,20,40,.35);backdrop-filter:blur(4px);align-items:center;justify-content:center;padding:14px}.jmod.open{display:flex}
.jbox{width:min(780px,95vw);height:min(520px,85vh);background:var(--s);border-radius:var(--rl);box-shadow:var(--sh3);overflow:hidden;display:flex;flex-direction:column}
.jbody{display:flex;flex:1;overflow:hidden}.jfold{width:180px;border-right:1px solid var(--bdr);overflow-y:auto;padding:8px;background:var(--s2)}.jfil{flex:1;overflow-y:auto;padding:12px}
.jf{display:flex;align-items:center;gap:6px;padding:7px 8px;border-radius:var(--r);font-size:12px;font-weight:700;color:var(--tx2);cursor:pointer;margin-bottom:2px}.jf:hover{background:var(--bg)}.jf.on{background:var(--ac2);color:var(--ac)}
.mMobScrim{display:none;position:fixed;inset:0;z-index:1100;background:rgba(15,20,40,.3)}
.mMobSide{position:fixed;top:0;left:0;bottom:0;width:min(320px,85vw);z-index:1101;background:var(--s);transform:translateX(-100%);transition:transform .25s ease;overflow-y:auto;box-shadow:var(--sh3)}.mMobSide.open{transform:translateX(0)}
.mMobSideHead{padding:10px 14px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between}
/* Food Delivery Tracker */
/* VP3 Iframe Overlay */
.drvImgThumb:hover{transform:scale(1.05);border-color:var(--ac)!important;box-shadow:0 2px 12px rgba(0,0,0,.25)}
.drvFileRow:hover{background:var(--ac3)!important}
.ibIframeOverlay{display:none;position:fixed;inset:0;z-index:1400;background:var(--bg);flex-direction:column}
.ibIframeOverlay.open{display:flex}
.ibIframeHead{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--bdr);background:var(--s);flex:0 0 auto}
.ibIframeHead .ibIframeUrl{font-size:10px;font-family:var(--mono);color:var(--tx2);padding:4px 10px;background:var(--bg);border:1px solid var(--bdr);border-radius:999px;flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ibIframe{flex:1;border:none;width:100%;height:100%}
.foodTracker{display:none;position:fixed;inset:0;z-index:1500;background:var(--bg);flex-direction:column}
.foodTracker.open{display:flex}
.foodTrackerHead{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--bdr);background:var(--s);flex:0 0 auto}
.foodTrackerBody{display:flex;flex:1;overflow:hidden}
.foodTrackerMap{flex:1;position:relative}
#foodMap{width:100%;height:100%}
.foodTrackerSide{width:320px;border-left:1px solid var(--bdr);overflow-y:auto;background:var(--s);padding:14px;display:flex;flex-direction:column;gap:12px}
.ftOrderCard{border:1px solid var(--bdr);border-radius:var(--rl);padding:14px;background:var(--bg)}
.ftOrderItem{display:flex;justify-content:space-between;font-size:11px;padding:4px 0;border-bottom:1px solid var(--bdr)}
.ftOrderItem:last-child{border-bottom:none}
.ftEta{text-align:center;padding:16px;border:2px solid var(--gn);border-radius:var(--rl);background:rgba(34,197,94,.06)}
.ftEtaTime{font-size:32px;font-weight:900;font-family:var(--hd);color:var(--gn)}
.ftEtaLabel{font-size:10px;color:var(--tx2);text-transform:uppercase;font-weight:700;letter-spacing:.08em}
.ftDriverCard{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--bdr);border-radius:var(--rm);background:var(--bg)}
.ftDriverAvatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--ac),var(--pu));display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;flex:0 0 40px}
.ftStatus{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--rm);font-size:11px;font-weight:700}
.ftStatusDot{width:8px;height:8px;border-radius:50%;animation:bk 1.5s infinite}
@media(max-width:760px){.foodTrackerSide{width:100%;border-left:none;border-top:1px solid var(--bdr);max-height:45vh}.foodTrackerBody{flex-direction:column}}
.leaflet-container{font-family:var(--f)!important;font-size:11px!important}
@media(max-width:760px){
.bar,.vp3-authed .bar{display:none!important}.mobBar{display:flex!important}.side{display:none}.ft{left:0}
#hdrSearchWrap{display:none!important}
.ml{display:none!important}
/* Mobile bar button touch targets & layout */
.mobBar .tb{min-width:36px;min-height:36px;padding:4px;font-size:16px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer}
.mobBar .tb:hover{background:rgba(0,0,0,.06)}
.mobBar .logo{font-size:10px;padding:3px 8px;flex-shrink:0}
/* Mobile record button */
#mobRecBtn{filter:none!important;color:#ef4444!important;font-size:16px!important;min-width:36px;min-height:36px;transition:all .2s}
#mobRecBtn[style*="background:#ef4444"]{animation:mobRecPulse 1s infinite}
@keyframes mobRecPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 8px rgba(239,68,68,0)}}
/* Mobile footer full-width & bigger */
.ft{left:0;padding:0 6px 6px}
.fti{max-width:100%;border-radius:0;border-left:none;border-right:none;border-bottom:none}
.fr{padding:10px 12px;gap:10px}
.fi{font-size:14px;padding:6px 0}
.ccSend{width:36px;height:36px;flex:0 0 36px;font-size:15px}
.ccMic{width:36px;height:36px;flex:0 0 36px;font-size:18px}
#chatF{padding:8px 12px;gap:8px}
#mobNavTabs{-ms-overflow-style:none}
#mobNavTabs::-webkit-scrollbar{display:none}
.mri{flex:1}.jbody{flex-direction:column}.jfold{width:100%;border-right:none;border-bottom:1px solid var(--bdr);max-height:30vh}.apRow{flex-wrap:wrap;gap:6px}.apInfo{flex:1 1 100%;order:2}.apCtrls{order:3}.apProg{order:4;flex:1 1 100%}.apVol{display:none}.chartRow{grid-template-columns:1fr}.statGrid{grid-template-columns:repeat(2,1fr)}.ob-choice{flex-direction:column;align-items:center}.tg{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.lp-btns{grid-template-columns:1fr}
.lp-footer-grid{grid-template-columns:repeat(2,1fr);gap:16px}
.lp-hero{min-height:auto;padding:40px 16px 30px}
.lp-h1{text-align:center}
.lp-hero-sub{text-align:center}
.lp-hero-text{text-align:center}
.lp-hero-actions{margin:0 auto}
}
@media(max-width:600px){
.lp-footer-grid{grid-template-columns:1fr}
}
@media(min-width:761px){.mobBar{display:none!important}.mMobScrim{display:none!important}.mMobSide{display:none!important}.vp3HamMenu{display:none!important}.vp3HamScrim{display:none!important}}
/* ── Slide-out hamburger menu ── */
.vp3HamScrim{display:none;position:fixed;inset:0;z-index:8500;background:rgba(0,0,0,.35)}
.vp3HamScrim.open{display:block}
.vp3HamMenu{position:fixed;top:0;left:0;bottom:0;width:min(300px,82vw);z-index:8501;background:#fff;transform:translateX(-100%);transition:transform .25s ease;display:flex;flex-direction:column;box-shadow:4px 0 24px rgba(0,0,0,.12)}
.vp3HamMenu.open{transform:translateX(0)}
.vp3HamHead{padding:12px 14px;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between}
.vp3HamHead .logo{font-size:11px}
.vp3HamTabs{display:flex;border-bottom:1px solid #eee}
.vp3HamTab{flex:1;padding:10px 0;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;border:none;background:none;cursor:pointer;color:#999;font-family:var(--hd);border-bottom:2px solid transparent;transition:all .15s}
.vp3HamTab.on{color:#000;border-bottom-color:#000}
.vp3HamBody{flex:1;overflow-y:auto;padding:8px 0}
.vp3HamItem{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:13px;cursor:pointer;color:#333;transition:background .12s;border:none;background:none;width:100%;text-align:left;font-family:var(--f)}
.vp3HamItem:hover,.vp3HamItem:active{background:#f5f5f5}
.vp3HamItem .hamIcon{font-size:16px;width:24px;text-align:center;flex-shrink:0}
.vp3HamPane{display:none}.vp3HamPane.on{display:block}
/* ===== SPACE DESK (zzz hotkey) ===== */
#panelDesk{background:var(--bg);position:relative}
#panelDesk .dskStage{position:relative;flex:1;min-height:400px}
#panelDesk canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
#panelDesk .dskEmpty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
#panelDesk .dskEmptyInner{pointer-events:auto;text-align:center;max-width:460px;padding:20px}
.dskSideScrim{position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(2px);z-index:700;display:none}.dskSideScrim.open{display:block}
.dskSide{position:fixed;top:0;left:0;width:360px;max-width:90vw;height:100%;z-index:710;transform:translateX(-110%);transition:transform .18s ease;background:var(--s);border-right:1px solid var(--bdr);padding:14px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.dskSide.open{transform:translateX(0)}
.dskModalScrim{position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);z-index:720;display:none}
.dskModal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(900px,92vw);height:min(700px,85vh);z-index:730;border-radius:var(--rl);border:1px solid var(--bdr);background:var(--s);box-shadow:var(--sh3);display:none;overflow:hidden}
.dskModalHead{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--bdr);background:var(--bg)}
.dskModalBody{height:calc(100% - 48px);overflow:auto;padding:14px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(max-width:700px){.dskModalBody{grid-template-columns:1fr}}
.dskCard{border:1px solid var(--bdr);border-radius:var(--rm);padding:12px;background:var(--s)}
.dskCard .t{font-size:12px;font-weight:900;font-family:var(--hd);text-transform:uppercase;margin-bottom:4px}
.dskCard .d{font-size:11px;color:var(--tx2);margin-bottom:8px}
.dskEdScrim{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:10000;display:none}
.dskEditor{position:fixed;inset:0;z-index:10001;display:none;background:var(--s);flex-direction:column}
.dskEdTop{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--bdr);background:var(--bg)}
.dskEdSplit{flex:1;display:flex;overflow:hidden}
.dskEdCode{flex:0 0 75%;display:flex;flex-direction:column;border-right:1px solid var(--bdr);overflow:hidden}
.dskEdCodeTA{flex:1;padding:10px;border:none;outline:none;resize:none;background:transparent;font-family:var(--mono);font-size:12px;line-height:18px;color:var(--tx);tab-size:2}
.dskEdPrompt{flex:1;padding:12px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}
.dskEdPromptTA{flex:1;min-height:80px;padding:8px;border:1px solid var(--bdr);border-radius:var(--r);background:var(--bg);color:var(--tx);outline:none;resize:none;font-size:12px}
@media(max-width:900px){.dskEdSplit{flex-direction:column}.dskEdCode{flex:1;border-right:none;border-bottom:1px solid var(--bdr)}}
.dskRow{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.dskPill{font-size:10px;padding:3px 8px;border-radius:999px;border:1px solid var(--bdr);font-family:var(--mono);font-weight:700;color:var(--tx2)}
.dskPill.ok{color:var(--gn);border-color:rgba(22,163,74,.3);background:var(--gn2)}
.dskPill.off{color:var(--rd);border-color:rgba(220,38,38,.3);background:var(--rd2)}
/* Pricing Tables */
.pricingWrap{position:absolute;inset:0;overflow-y:auto;padding:30px 20px;z-index:5;background:var(--bg)}
.dskIframe{position:absolute;inset:0;z-index:5;border:0;width:100%;height:100%;background:#fff}
.dskPageWrap{position:absolute;inset:0;overflow-y:auto;z-index:5;background:var(--bg);padding:24px 20px}
.dskPageWrap .dpHero{max-width:720px;margin:0 auto 24px}
.dskPageWrap .dpHero h2{font-size:28px;font-weight:900;font-family:var(--hd);margin:0 0 8px;letter-spacing:-.02em}
.dskPageWrap .dpHero p{font-size:13px;color:var(--tx2);line-height:1.55;margin:0 0 14px}
.dskPageWrap .dpCta{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--rm);border:1px solid var(--bdr);background:var(--s);font-weight:900;font-size:12px;color:var(--tx);cursor:pointer;text-decoration:none;margin-right:8px}
.dskPageWrap .dpCta:hover{border-color:var(--ac);color:var(--ac);background:var(--ac3)}
.dskPageWrap .dpCta.pri{border-color:var(--ac);background:var(--ac2);color:var(--ac)}
.dskPageWrap .dpGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:720px;margin:0 auto}
@media(max-width:700px){.dskPageWrap .dpGrid{grid-template-columns:1fr}}
.dskPageWrap .dpCard{border:1px solid var(--bdr);border-radius:var(--rm);background:var(--s);padding:14px;transition:.12s}
.dskPageWrap .dpCard:hover{border-color:var(--ac);transform:translateY(-1px)}
.dskPageWrap .dpCard h3{font-size:13px;font-weight:900;margin:0 0 6px}
.dskPageWrap .dpCard p{font-size:11px;color:var(--tx2);margin:0;line-height:1.45}
.dskPageWrap .dpClose{position:fixed;top:14px;right:14px;z-index:6;width:32px;height:32px;border-radius:50%;border:1px solid var(--bdr);background:var(--s);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;font-weight:900;color:var(--tx2)}
.dskPageWrap .dpClose:hover{border-color:var(--ac);color:var(--ac)}
@keyframes dpFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.dpFloatImg{animation:dpFloat 3.5s ease-in-out infinite;filter:drop-shadow(0 22px 50px rgba(0,0,0,.35))}
.dpSlider{position:relative;max-width:720px;margin:0 auto 24px;overflow:hidden;border-radius:var(--rm);border:1px solid var(--bdr)}
.dpSlider .dpTrack{display:flex;transition:transform .5s ease;will-change:transform}
.dpSlider .dpSlide{flex:0 0 100%;min-width:0;padding:20px;display:flex;gap:18px;align-items:center}
.dpSlider .dpSlide img{width:42%;max-width:240px;flex:0 0 auto;object-fit:contain;filter:drop-shadow(0 14px 36px rgba(17,24,39,.22));border-radius:10px}
.dpSlider .dpSlideText h3{font-size:18px;font-weight:900;margin:0 0 6px}
.dpSlider .dpSlideText p{font-size:12px;color:var(--tx2);margin:0;line-height:1.5}
.dpSlider .dpDots{display:flex;gap:8px;justify-content:center;padding:10px 0}
.dpSlider .dpDotB{width:10px;height:10px;border-radius:50%;border:1px solid var(--bdr);background:var(--s);cursor:pointer;padding:0}
.dpSlider .dpDotB.on{border-color:var(--ac);background:var(--ac)}
.dpSlider .dpArrows{position:absolute;top:50%;transform:translateY(-50%);display:flex;justify-content:space-between;width:100%;padding:0 6px;pointer-events:none;z-index:2}
.dpSlider .dpArr{pointer-events:auto;width:28px;height:28px;border-radius:50%;border:1px solid var(--bdr);background:var(--s);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;font-weight:900;color:var(--tx2)}
.dpSlider .dpArr:hover{border-color:var(--ac);color:var(--ac)}
.dpSoulWrap{max-width:620px;margin:0 auto}
.dpSoulWrap .soulHeader{text-align:center;margin-bottom:20px}
.dpSoulWrap .soulHeader .soulIcon{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--ac2),rgba(0,0,0,.12));display:inline-flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:10px;border:2px solid var(--bdr)}
.dpSoulWrap .soulEditor{border:1px solid var(--bdr);border-radius:var(--rm);background:var(--s);overflow:hidden}
.dpSoulWrap .soulToolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--bdr);background:var(--s2)}
.dpSoulWrap .soulToolbar .soulFileN{font-size:11px;font-weight:900;font-family:var(--mono);color:var(--tx2)}
.dpSoulWrap .soulArea{width:100%;min-height:280px;padding:16px;border:0;outline:0;resize:vertical;font-family:var(--mono);font-size:13px;line-height:1.65;color:var(--tx);background:var(--bg)}
.dpSoulWrap .soulActions{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--bdr);background:var(--s2)}
.dpSoulWrap .soulHint{margin-top:14px;padding:12px;border-radius:var(--rm);border:1px solid var(--bdr);background:var(--s);font-size:11px;color:var(--tx2);line-height:1.55}
.pricingHead{text-align:center;margin-bottom:24px}
.pricingHead h2{font-size:18px;font-weight:900;font-family:var(--hd);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.pricingHead p{font-size:12px;color:var(--tx2)}
.pricingGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:960px;margin:0 auto}
@media(max-width:900px){.pricingGrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.pricingGrid{grid-template-columns:1fr}}
.priceCard{background:var(--s);border:1.5px solid var(--bdr);border-radius:var(--rl);padding:20px 16px;display:flex;flex-direction:column;gap:10px;transition:.2s;position:relative}
.priceCard:hover{border-color:var(--ac);box-shadow:var(--sh2);transform:translateY(-3px)}
.priceCard.pop{border-color:var(--ac);box-shadow:0 0 0 3px rgba(0,0,0,.12),var(--sh2)}
.priceCard.pop::before{content:"MOST POPULAR";position:absolute;top:-10px;left:50%;transform:translateX(-50%);font-size:8px;font-weight:900;font-family:var(--hd);letter-spacing:.14em;padding:3px 10px;border-radius:999px;background:var(--ac);color:#fff}
.priceCard .pcName{font-size:11px;font-weight:900;font-family:var(--hd);text-transform:uppercase;letter-spacing:.08em;color:var(--tx2)}
.priceCard .pcPrice{font-size:28px;font-weight:900;font-family:var(--hd);color:var(--tx)}
.priceCard .pcPrice span{font-size:12px;font-weight:600;color:var(--tx3)}
.priceCard .pcDesc{font-size:11px;color:var(--tx2);line-height:1.4}
.priceCard .pcList{list-style:none;padding:0;margin:0;font-size:11px;color:var(--tx2);display:flex;flex-direction:column;gap:5px;flex:1}
.priceCard .pcList li::before{content:"\2713 ";color:var(--gn);font-weight:900}
.priceCard .pcBtn{display:block;text-align:center;padding:9px 0;border-radius:var(--r);font-size:11px;font-weight:900;text-decoration:none;border:1.5px solid var(--bdr);color:var(--tx);background:var(--s);transition:.15s;cursor:pointer}
.priceCard .pcBtn:hover{border-color:var(--ac);color:var(--ac);background:var(--ac3)}
.priceCard.pop .pcBtn{background:var(--ac);border-color:var(--ac);color:#fff}
.priceCard.pop .pcBtn:hover{background:#4338ca}
.ftDeskBtns{display:flex;gap:5px;padding:0 10px 7px;flex-wrap:wrap;border-top:1px solid var(--bdr)}
.ftDeskBtns button,.ftDeskBtns a{padding:4px 10px;border:1px solid var(--bdr);background:var(--s);border-radius:var(--r);font-size:10px;font-weight:700;color:var(--tx2);cursor:pointer;text-decoration:none;font-family:var(--f);white-space:nowrap;transition:.12s}
.ftDeskBtns button:hover,.ftDeskBtns a:hover{border-color:var(--ac);color:var(--ac);background:var(--ac3)}
/* Quick Key Manager */
.qkWrap{position:absolute;inset:0;overflow-y:auto;padding:30px 20px;z-index:5;background:var(--bg)}
.qkHead{text-align:center;margin-bottom:20px}
.qkHead h2{font-size:18px;font-weight:900;font-family:var(--hd);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.qkHead p{font-size:12px;color:var(--tx2)}
.qkForm{max-width:580px;margin:0 auto 20px;background:var(--s);border:1.5px solid var(--bdr);border-radius:var(--rl);padding:16px;display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.qkField{display:flex;flex-direction:column;gap:3px;flex:1;min-width:100px}
.qkField label{font-size:9px;font-weight:900;font-family:var(--hd);text-transform:uppercase;letter-spacing:.1em;color:var(--tx3)}
.qkField input{padding:7px 10px;border:1px solid var(--bdr);border-radius:var(--r);background:var(--bg);color:var(--tx);font-size:12px;outline:none;font-family:var(--f)}
.qkField input:focus{border-color:var(--ac)}
.qkField input.qkComboIn{font-family:var(--mono);font-weight:700;letter-spacing:.2em;text-transform:lowercase;max-width:90px}
.qkAddBtn{padding:8px 16px;border:none;border-radius:var(--r);background:var(--ac);color:#fff;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap;font-family:var(--hd);letter-spacing:.06em}.qkAddBtn:hover{background:#4338ca}
.qkGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;max-width:960px;margin:0 auto}
.qkCard{background:var(--s);border:1.5px solid var(--bdr);border-radius:var(--rl);padding:16px;display:flex;flex-direction:column;gap:8px;transition:.2s;position:relative}
.qkCard:hover{border-color:var(--ac);box-shadow:var(--sh2);transform:translateY(-2px)}
.qkCard .qkName{font-size:13px;font-weight:900;font-family:var(--hd);text-transform:uppercase;letter-spacing:.04em}
.qkCard .qkCombo{display:inline-flex;align-items:center;gap:2px;font-family:var(--mono);font-size:13px;font-weight:700;color:var(--ac);letter-spacing:.15em;background:var(--ac3);border:1px solid rgba(0,0,0,.2);border-radius:var(--r);padding:4px 10px;width:fit-content}
.qkCard .qkUrl{font-size:10px;color:var(--tx3);font-family:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qkCard .qkActions{display:flex;gap:6px;margin-top:auto}
.qkCard .qkLaunch{flex:1;text-align:center;padding:7px 0;border-radius:var(--r);font-size:10px;font-weight:900;text-decoration:none;border:1.5px solid var(--bdr);color:var(--tx);background:var(--s);transition:.15s;cursor:pointer;font-family:var(--hd);letter-spacing:.06em}
.qkCard .qkLaunch:hover{border-color:var(--ac);color:var(--ac);background:var(--ac3)}
.qkCard .qkDel{width:32px;text-align:center;padding:7px 0;border-radius:var(--r);font-size:11px;border:1.5px solid var(--bdr);color:var(--rd);background:var(--s);cursor:pointer;transition:.15s;font-weight:900}
.qkCard .qkDel:hover{border-color:var(--rd);background:var(--rd2)}
.qkEmpty{text-align:center;padding:40px 20px;color:var(--tx3);font-size:12px;max-width:400px;margin:0 auto}
.qkEmpty .qkEmIco{font-size:36px;margin-bottom:10px}
.qkHint{text-align:center;margin-top:16px;font-size:10px;color:var(--tx3);font-family:var(--mono);letter-spacing:.04em;max-width:580px;margin-left:auto;margin-right:auto}
.qkHint kbd{display:inline-block;padding:1px 6px;border:1px solid var(--bdr);border-radius:4px;background:var(--s);font-weight:700;color:var(--tx2);font-size:10px}
.ftHidden .fti{display:none!important}
.qweBar{display:none;flex-direction:column;gap:0;border-bottom:1px solid var(--bdr);background:linear-gradient(135deg,rgba(0,0,0,.04),rgba(168,85,247,.04));max-height:0;overflow:hidden;transition:max-height .25s ease}
.qweBar.open{display:flex;max-height:350px}
.qweHead{display:flex;align-items:center;gap:8px;padding:6px 14px 0;flex:0 0 auto}
.qweTitle{font-size:10px;font-weight:900;font-family:var(--hd);text-transform:uppercase;color:var(--ac);letter-spacing:.06em}
.qweHint{font-size:8px;color:var(--tx3);margin-left:auto}
.qweX{background:none;border:none;color:var(--tx3);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:4px;margin-left:4px}.qweX:hover{background:var(--bg);color:var(--tx)}
.qweActions{display:flex;gap:4px;padding:6px 14px;overflow-x:auto;scrollbar-width:none;flex:0 0 auto}.qweActions::-webkit-scrollbar{display:none}
.qwePill{padding:4px 10px;border-radius:999px;border:1px solid var(--bdr2);background:var(--bg);font-size:10px;font-weight:700;cursor:pointer;white-space:nowrap;color:var(--tx2);transition:.15s}.qwePill:hover{border-color:var(--ac);color:var(--ac);background:var(--ac2)}.qwePill.on{background:var(--ac);color:#fff;border-color:var(--ac)}
.qweDest{display:flex;align-items:center;gap:12px;padding:4px 14px;flex:0 0 auto;border-top:1px solid rgba(0,0,0,.08)}
.qweDestOpt{display:flex;align-items:center;gap:4px;font-size:9px;font-weight:700;color:var(--tx2);cursor:pointer}
.qweDestOpt input[type="checkbox"]{width:13px;height:13px;accent-color:var(--ac);cursor:pointer}
.qweFormScroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 14px 6px;scrollbar-width:thin;scrollbar-color:var(--bdr) transparent}
.qweFormScroll::-webkit-scrollbar{width:4px}.qweFormScroll::-webkit-scrollbar-thumb{background:var(--bdr);border-radius:4px}
.qweFormScroll input,.qweFormScroll select,.qweFormScroll textarea{padding:6px 10px;border:1px solid var(--bdr);border-radius:var(--rm);background:var(--bg);color:var(--tx);font-size:11px;box-sizing:border-box;font-family:inherit;width:100%}
.qweFormScroll textarea{resize:vertical;min-height:60px}
.qweFormScroll .qweRow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.qweFormScroll .qweFieldLabel{font-size:8px;font-weight:900;text-transform:uppercase;color:var(--tx3);letter-spacing:.04em;margin-bottom:2px}
.qweFormScroll .qweFieldGroup{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
/* ═══ PPPM Unified Stream ═══ */
.pppmBadge{display:inline-flex;align-items:center;gap:3px;font-size:8px;font-weight:900;padding:1px 6px;border-radius:4px;font-family:var(--mono);letter-spacing:.03em}
.pppmBadge.agent{background:rgba(0,0,0,.1);color:var(--ac)}
.pppmBadge.human{background:rgba(34,197,94,.1);color:var(--gn)}
.pppmBadge.waiting{background:rgba(234,179,8,.1);color:#d97706}
.pppmBadge.locked{background:rgba(239,68,68,.1);color:var(--rd)}
.pppmStatus{display:inline-flex;align-items:center;gap:3px;font-size:8px;font-weight:800;padding:2px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}
.pppmStatus.draft{background:var(--bg);color:var(--tx3);border:1px solid var(--bdr)}
.pppmStatus.queued{background:rgba(0,0,0,.08);color:var(--ac)}
.pppmStatus.processing{background:rgba(234,179,8,.08);color:#d97706}
.pppmStatus.delivered{background:rgba(34,197,94,.08);color:var(--gn)}
.pppmStatus.claimed{background:rgba(34,197,94,.15);color:var(--gn)}
.pppmStatus.failed{background:rgba(239,68,68,.08);color:var(--rd)}
.pppmStatus.unread{background:rgba(0,0,0,.12);color:var(--ac)}
.pppmStatus.read{background:var(--bg);color:var(--tx3)}
.pppmType{display:inline-flex;align-items:center;gap:2px;font-size:8px;font-weight:800;padding:2px 6px;border-radius:4px;text-transform:uppercase;background:var(--s2);color:var(--tx2)}
.streamItem{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);padding:8px 10px;margin-bottom:4px;transition:border-color .15s}
.streamItem:hover{border-color:var(--bdr2)}
.streamItem.unread{border-left:3px solid var(--ac)}
.streamHead{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.streamFrom{font-size:11px;font-weight:800}
.streamTime{font-size:8px;color:var(--tx3);margin-left:auto;white-space:nowrap}
.streamTitle{font-size:12px;font-weight:700;margin-bottom:2px}
.streamDesc{font-size:10px;color:var(--tx2);line-height:1.5;margin-bottom:6px}
.streamMeta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.streamActions{display:flex;gap:4px;margin-top:6px}
/* ═══ FEED LAYOUT — Social feed with ad rail (float right) ═══ */
.feedLayout{display:flex;gap:12px;align-items:flex-start;flex-direction:row}
.feedMain{flex:1;min-width:0;max-width:650px;order:1}
.feedAdRail{width:240px;flex-shrink:0;position:sticky;top:0;order:2;margin-left:auto}
@media(max-width:768px){.feedAdRail{display:none}.feedLayout{display:block}}
/* Tutorial smart widget */
.tutWidgetCard{border:1px solid var(--bdr);border-radius:var(--rl);background:var(--s);padding:12px;margin-bottom:10px}
.tutWidgetCard:hover{border-color:var(--ac)}
.tutWidgetTitle{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--tx3);margin-bottom:8px}
.tutWidgetItem{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--bdr);border-radius:var(--rm);margin-bottom:6px;cursor:pointer;transition:.15s;background:var(--bg)}
.tutWidgetItem:hover{border-color:var(--ac);background:rgba(99,102,241,.04)}
.tutWidgetPct{font-size:11px;font-weight:900;font-family:var(--mono);min-width:32px;text-align:right}
.tutWidgetBar{height:3px;background:var(--bdr);border-radius:2px;overflow:hidden;margin-top:4px}
.tutWidgetBarFill{height:100%;border-radius:2px;transition:.3s}
/* System ad spot widget */
.sysAdSpot{border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;margin-bottom:10px;background:var(--s);cursor:pointer;transition:.15s}
.sysAdSpot:hover{border-color:var(--ac);box-shadow:0 2px 8px rgba(99,102,241,.1)}
.sysAdSpotImg{width:100%;height:120px;object-fit:cover}
.sysAdSpotBody{padding:10px}
.sysAdSpotTitle{font-size:11px;font-weight:900;margin-bottom:3px}
.sysAdSpotDesc{font-size:9px;color:var(--tx2);line-height:1.4;margin-bottom:6px}
.sysAdSpotCta{display:inline-block;font-size:9px;font-weight:800;color:var(--ac);cursor:pointer}
/* Sponsored inline cards */
.sponsoredCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);margin-bottom:4px;overflow:hidden}
.spHead{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;border-bottom:1px solid var(--bdr)}
.spBrand{font-size:9px;font-weight:800;color:var(--tx2)}
.spTag{font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--tx3);padding:1px 5px;border:1px solid var(--bdr);border-radius:3px}
.spBody{padding:12px;color:#fff}
.spHL{font-size:13px;font-weight:900;margin-bottom:4px}
.spTxt{font-size:10px;opacity:.9;line-height:1.5;margin-bottom:8px}
.spCta{background:rgba(255,255,255,.2);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:10px;font-weight:800;padding:5px 14px;border-radius:6px;cursor:pointer;transition:.15s}
.spCta:hover{background:rgba(255,255,255,.35)}
/* Right rail ad cards */
.railAdCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);padding:10px;margin-bottom:8px}
.railAdTitle{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;color:var(--tx2);margin-bottom:6px}
.railAdItem{font-size:10px;color:var(--ac);cursor:pointer;padding:3px 0;font-weight:600}
.railAdItem:hover{text-decoration:underline}
.railAdStat{display:flex;justify-content:space-between;padding:3px 0;font-size:9px;border-bottom:1px solid var(--bdr)}
.railAdStat:last-child{border-bottom:none}
.railStatK{color:var(--tx3)}.railStatV{font-weight:900;color:var(--tx);font-family:var(--mono)}
.humanGate{display:flex;align-items:center;gap:6px;padding:8px 10px;border:2px dashed rgba(239,68,68,.3);border-radius:var(--rm);background:rgba(239,68,68,.04);margin-top:6px}
.humanGate .hgIcon{font-size:16px}
.humanGate .hgText{font-size:9px;font-weight:800;color:var(--rd);text-transform:uppercase;letter-spacing:.04em}
.threadItem{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid var(--bdr);cursor:pointer;transition:background .12s}
.threadItem:hover{background:var(--bg)}
.threadItem.unread{background:rgba(0,0,0,.04)}
.threadItem.unread .threadName{font-weight:900}
.threadAvatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--ac2);display:flex;align-items:center;justify-content:center;font-size:14px}
.threadBody{flex:1;min-width:0}
.threadName{font-size:11px;font-weight:700}
.threadPreview{font-size:10px;color:var(--tx3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.threadTime{font-size:8px;color:var(--tx3);white-space:nowrap;flex-shrink:0}
.threadMsgs{display:flex;flex-direction:column;gap:6px;padding:10px 12px;max-height:60vh;overflow-y:auto}
.threadMsg{max-width:80%;padding:8px 12px;border-radius:12px;font-size:11px;line-height:1.5}
.threadMsg.me{align-self:flex-end;background:var(--ac2);border:1px solid rgba(0,0,0,.2)}
.threadMsg.them{align-self:flex-start;background:var(--s);border:1px solid var(--bdr)}
.threadMsg .tmTime{font-size:7px;color:var(--tx3);margin-top:2px}
.autoItem{display:flex;gap:8px;padding:8px 12px;border-bottom:1px solid var(--bdr);font-size:10px}
.autoItem .aiIcon{font-size:14px;flex-shrink:0}
.autoItem .aiBody{flex:1}
.autoItem .aiAction{font-weight:700;color:var(--tx)}
.autoItem .aiDetail{color:var(--tx3);margin-top:1px}
.autoItem .aiTime{font-size:8px;color:var(--tx3);flex-shrink:0;white-space:nowrap}
.autoItem .aiOverride{font-size:8px;padding:2px 8px;border-radius:4px;border:1px solid var(--bdr2);background:var(--bg);cursor:pointer;color:var(--tx2);font-weight:700;white-space:nowrap}.autoItem .aiOverride:hover{border-color:var(--ac);color:var(--ac)}
/* ===== VP3 WORLD ENGINE ===== */
#panelWorld{background:#050b16;position:relative}
#panelWorld canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1}
.wCross{position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;z-index:20;pointer-events:none;opacity:.85;display:none;filter:drop-shadow(0 2px 10px rgba(0,0,0,.7))}
.wCross::before,.wCross::after{content:"";position:absolute;left:50%;top:50%;background:rgba(226,232,240,.9);border-radius:2px;transform:translate(-50%,-50%)}
.wCross::before{width:2px;height:22px}.wCross::after{width:22px;height:2px}
.wCross .wd{position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;background:rgba(0,0,0,.95);transform:translate(-50%,-50%)}
.wHud{position:absolute;left:10px;top:10px;z-index:5;display:flex;gap:6px;flex-wrap:wrap;pointer-events:none}
.wHud .wp{font-size:10px;color:#cbd5e1;padding:5px 8px;border-radius:10px;border:1px solid rgba(148,163,184,.18);background:rgba(2,6,23,.4);backdrop-filter:blur(6px);display:flex;align-items:center;gap:5px;pointer-events:auto}
.wHud .wp b{color:#fff}.wHud .wp small{color:#94a3b8}
.wHudR{position:absolute;right:10px;top:10px;z-index:6;display:flex;gap:6px}
.wHudR .btn{font-size:10px;padding:5px 10px;border-radius:8px;border:1px solid rgba(148,163,184,.2);background:rgba(2,6,23,.45);color:#e2e8f0;cursor:pointer;backdrop-filter:blur(6px)}.wHudR .btn:hover{border-color:rgba(0,0,0,.5);color:#fff}
.wHudR .btn.pri{background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.25));border-color:rgba(0,0,0,.6);color:#fff}
.wSidebar{position:absolute;left:0;top:0;bottom:0;width:220px;z-index:10;background:rgba(11,18,32,.92);border-right:1px solid rgba(148,163,184,.12);backdrop-filter:blur(8px);display:flex;flex-direction:column;overflow:hidden}
.wSidebar .wSbHead{padding:8px 10px;border-bottom:1px solid rgba(148,163,184,.12);display:flex;align-items:center;justify-content:space-between}
.wSidebar .wSbHead span{font-size:10px;font-weight:900;color:#cbd5e1;font-family:var(--hd);letter-spacing:.1em;text-transform:uppercase}
.wSidebar .wSbBody{flex:1;overflow-y:auto;padding:8px}
.wSbRow{padding:6px 8px;border:1px solid rgba(148,163,184,.14);background:rgba(2,6,23,.35);border-radius:10px;margin-bottom:6px;cursor:pointer;transition:.12s}
.wSbRow:hover{border-color:rgba(0,0,0,.4)}
.wSbRow.on{border-color:rgba(0,0,0,.6);background:rgba(0,0,0,.1)}
.wSbRow .wSbT{font-size:11px;font-weight:700;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wSbRow .wSbS{font-size:9px;color:#94a3b8;margin-top:1px}
.wFade{position:absolute;inset:0;z-index:40;background:#000;opacity:0;pointer-events:none;transition:opacity 180ms ease}
.ftWorldBtns{display:flex;gap:5px;padding:0 10px 7px;flex-wrap:wrap;border-top:1px solid var(--bdr)}
.ftWorldBtns button{padding:4px 10px;border:1px solid var(--bdr);background:var(--s);border-radius:var(--r);font-size:10px;font-weight:700;color:var(--tx2);cursor:pointer;font-family:var(--f);white-space:nowrap;transition:.12s}
.ftWorldBtns button:hover{border-color:var(--ac);color:var(--ac);background:var(--ac3)}
/* Header Cart/Wallet */
#hdrCartBtn span,#hdrWalletBtn span{font-weight:900;color:var(--ac);font-family:var(--mono);font-size:10px}
/* Energy Gauge */
.engWrap{margin-bottom:4px}
.engBar{height:8px;border-radius:4px;background:var(--s2);overflow:hidden;margin-bottom:4px;position:relative}
.engFill{height:100%;border-radius:4px;transition:width .5s ease;background:linear-gradient(90deg,#22c55e,#000)}
.engFill.low{background:linear-gradient(90deg,#ef4444,#f59e0b)}
.engFill.mid{background:linear-gradient(90deg,#f59e0b,#000)}
.engStats{display:flex;justify-content:space-between;font-size:9px;color:var(--tx3);font-family:var(--mono)}
.engPack{margin-top:6px;padding:6px 8px;border:1px solid var(--bdr);border-radius:var(--r);background:var(--s);cursor:pointer;font-size:9px;text-align:center;color:var(--tx2);transition:.15s}
.engPack:hover{border-color:var(--ac);color:var(--ac);background:var(--ac2)}
/* Task Notification Badge */
.stNotify{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--ac);color:#fff;font-size:8px;font-weight:900;margin-left:4px;animation:bk 1.5s infinite}
/* Energy Pack Modal */
.engModal{position:fixed;inset:0;z-index:8500;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.5);backdrop-filter:blur(4px)}
.engModal.open{display:flex}
.engModalIn{background:var(--bg);border-radius:var(--rl);border:1px solid var(--bdr);box-shadow:var(--sh3);width:min(460px,92vw);max-height:85vh;overflow-y:auto}
.engModalH{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--bdr)}
.engModalH h3{font-size:14px;font-weight:900;font-family:var(--hd)}
.engModalB{padding:16px 18px}
.engPackCard{display:flex;gap:12px;align-items:center;padding:14px;border:1.5px solid var(--bdr);border-radius:var(--rm);margin-bottom:10px;cursor:pointer;transition:.2s;background:var(--s)}
.engPackCard:hover{border-color:var(--ac);background:var(--ac2);transform:translateY(-1px);box-shadow:var(--sh)}
.engPackCard.pop{border-color:var(--ac);background:linear-gradient(135deg,var(--ac2),var(--s))}
.engPackCard .epIco{font-size:28px;flex:0 0 40px;text-align:center}
.engPackCard .epInfo{flex:1}
.engPackCard .epInfo h4{font-size:13px;font-weight:900;font-family:var(--hd)}
.engPackCard .epInfo p{font-size:10px;color:var(--tx3);margin-top:2px}
.engPackCard .epPrice{font-size:14px;font-weight:900;color:var(--ac);font-family:var(--mono)}
.engPackCard .epBadge{font-size:8px;font-weight:900;background:var(--ac);color:#fff;padding:2px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}
/* Task Results View */
.taskResultsWrap{position:absolute;inset:0;background:var(--bg);overflow-y:auto;z-index:5;padding:0}
.taskResultsWrap .trHead{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:12px 20px;background:var(--s);border-bottom:1px solid var(--bdr)}
.taskResultsWrap .trHead h2{font-size:14px;font-weight:900;font-family:var(--hd);text-transform:uppercase;flex:1}
.taskResultsWrap .trBody{padding:20px;max-width:960px;margin:0 auto}
/* Terminal View */
.vp3Term{background:#0d1117;color:#c9d1d9;font-family:var(--mono);font-size:11px;border-radius:var(--rl);overflow:hidden;border:1px solid #30363d}
.vp3TermHead{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#161b22;border-bottom:1px solid #30363d}
.vp3TermDots{display:flex;gap:5px}.vp3TermDots span{width:10px;height:10px;border-radius:50%}
.vp3TermTitle{font-size:10px;font-weight:700;color:#8b949e;flex:1;text-align:center}
.vp3TermBody{padding:12px 14px;max-height:420px;overflow-y:auto;line-height:1.7;white-space:pre-wrap;word-break:break-all}
.vp3TermBody .tStep{color:#58a6ff;font-weight:700}.vp3TermBody .tOut{color:#c9d1d9}.vp3TermBody .tErr{color:#f85149}.vp3TermBody .tOk{color:#3fb950}.vp3TermBody .tDim{color:#484f58}
.vp3TermBody .tPrompt{color:#bc8cff}
/* Agent Status Pill */
.agentPill{display:inline-flex;align-items:center;gap:4px;font-size:8px;font-weight:900;padding:2px 8px;border-radius:999px;font-family:var(--mono);cursor:pointer}
.agentPill.on{background:rgba(34,197,94,.12);color:var(--gn)}.agentPill.off{background:rgba(239,68,68,.08);color:var(--rd)}
.agentPill .apDot{width:6px;height:6px;border-radius:50%}.agentPill.on .apDot{background:var(--gn);animation:bk 1.5s infinite}.agentPill.off .apDot{background:var(--rd)}
/* Auth Modal */
.authModal{position:fixed;inset:0;z-index:2100;display:none;align-items:center;justify-content:center;background:rgba(15,20,40,.5);backdrop-filter:blur(6px);padding:16px}.authModal.open{display:flex}
.authBox{width:min(560px,100%);max-height:85vh;background:var(--s);border-radius:var(--rl);box-shadow:var(--sh3);overflow:hidden;display:flex;flex-direction:column}
.authHead{padding:16px 20px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:10px}
.authBody{flex:1;overflow-y:auto;padding:20px}
.authCmdList{background:#0d1117;color:#c9d1d9;font-family:var(--mono);font-size:10px;border-radius:var(--rm);padding:12px;margin:10px 0;max-height:200px;overflow-y:auto;line-height:1.8}
.authCmdList .authCmd{padding:2px 0;border-bottom:1px solid #21262d}.authCmdList .authIdx{color:#484f58;margin-right:8px}
.trSection{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:20px;margin-bottom:16px}
.trSection h3{font-size:13px;font-weight:900;font-family:var(--hd);text-transform:uppercase;margin-bottom:10px;color:var(--tx)}
.trSuggest{display:flex;gap:6px;align-items:flex-start;padding:8px 10px;border-radius:var(--rm);background:var(--ac2);border:1px solid rgba(0,0,0,.15);margin-bottom:6px;font-size:11px;color:var(--tx2)}
.trSuggest .trSugIco{flex:0 0 18px;text-align:center;font-size:13px}
.trProgress{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.trProgress .trBar{flex:1;height:10px;border-radius:5px;background:var(--s2);overflow:hidden}
.trProgress .trFill{height:100%;border-radius:5px;transition:width .5s}
.trProgress .trPct{font-size:13px;font-weight:900;font-family:var(--mono);color:var(--ac);min-width:40px;text-align:right}
/* Brand Modal */
.brandMo{position:fixed;inset:0;z-index:9000;display:none;flex-direction:column;overflow-y:auto}
.brandMo.open{display:flex}
.brandMoBg{position:fixed;inset:0;background:linear-gradient(135deg,#0a0e27 0%,#131862 30%,#1a237e 60%,#0d1442 100%);z-index:0;pointer-events:none}
.brandMoBg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 70% 20%,rgba(0,0,0,.18) 0%,transparent 60%);pointer-events:none}
.brandMoIn{position:relative;z-index:1;max-width:960px;width:100%;margin:0 auto;padding:60px 36px 120px;min-height:min-content}
.brandMoClose{position:fixed;top:18px;right:24px;z-index:10;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.4);color:#fff;font-size:18px;cursor:pointer;display:grid;place-items:center;transition:.2s;backdrop-filter:blur(8px)}
.brandMoClose:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.1)}
.brandMoH{margin-bottom:40px}
.brandMoH h2{font-size:clamp(28px,5vw,44px);font-weight:900;font-family:var(--hd);color:#fff;letter-spacing:-.01em;line-height:1.15;margin-bottom:12px}
.brandMoH p{font-size:14px;color:rgba(255,255,255,.6);line-height:1.7;max-width:50ch}
.brandMoSearch{display:flex;max-width:560px;margin-bottom:44px;border-radius:8px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.3)}
.brandMoSearch input{flex:1;padding:14px 20px;border:none;outline:none;font-size:14px;background:#fff;color:#1a1a2e;font-family:var(--body)}
.brandMoSearch input::placeholder{color:#999}
.brandMoSearch button{padding:0 22px;border:none;background:linear-gradient(135deg,#000,#000);color:#fff;font-size:18px;cursor:pointer;transition:.15s}
.brandMoSearch button:hover{filter:brightness(1.15)}
.brandMoGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:40px;padding-bottom:20px}
.brandMoCard{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:24px 20px;cursor:pointer;transition:.25s;backdrop-filter:blur(4px)}
.brandMoCard:hover{border-color:rgba(0,0,0,.5);background:rgba(0,0,0,.1);transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.3)}
.brandMoCard.sel{border-color:#000;background:rgba(0,0,0,.18);box-shadow:0 0 0 2px rgba(0,0,0,.3)}
.brandMoCard .bmIco{font-size:32px;margin-bottom:10px}
.brandMoCard .bmName{font-size:14px;font-weight:900;color:#fff;font-family:var(--hd);margin-bottom:3px}
.brandMoCard .bmDesc{font-size:11px;color:rgba(255,255,255,.5);line-height:1.5}
.brandMoCard .bmPrice{font-size:13px;font-weight:900;color:#a78bfa;margin-top:8px}

.pfModal{position:fixed;inset:0;z-index:8500;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.5);backdrop-filter:blur(4px)}.pfModal.open{display:flex}
.pfModalIn{background:var(--s);border-radius:var(--rl);max-width:560px;width:95%;max-height:85vh;overflow-y:auto;box-shadow:var(--sh3);border:1px solid var(--bdr)}
.pfModalHead{padding:16px 20px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:10px}
.pfModalBody{padding:20px}
.pfField{margin-bottom:14px}.pfField label{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);margin-bottom:4px}
.pfField input,.pfField select{width:100%;padding:10px 12px;border:1px solid var(--bdr);border-radius:var(--rm);background:var(--bg);color:var(--tx);font-size:13px;font-family:var(--body)}
.pfBtn{padding:10px 20px;border:none;border-radius:var(--rm);font-size:12px;font-weight:700;cursor:pointer;transition:.15s}
.pfBtnPri{background:linear-gradient(135deg,#000,#000);color:#fff}.pfBtnPri:hover{filter:brightness(1.1)}
.pfBtnSec{background:var(--bg);border:1px solid var(--bdr);color:var(--tx)}.pfBtnSec:hover{background:var(--s2)}
.pfStatGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.pfStatCard{background:var(--bg);border:1px solid var(--bdr);border-radius:var(--rm);padding:12px;text-align:center}
.pfStatVal{font-size:18px;font-weight:900;font-family:var(--hd);color:var(--tx)}
.pfStatLbl{font-size:9px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}
.pfTxRow{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--bdr);font-size:12px}
.pfTxRow:last-child{border-bottom:none}


.tgConnCard{padding:14px;border-radius:var(--rl);border:1px solid var(--bdr);background:var(--bg);margin-bottom:10px;transition:.15s}
.tgConnCard:hover{border-color:var(--ac)}
.tgConnHead{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.tgConnIco{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#0088cc,#229ed9);display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff}
.tgStat{font-size:9px;font-weight:700;padding:2px 8px;border-radius:var(--r);display:inline-block}
.tgThreadCard{padding:10px 12px;border-radius:var(--rm);border:1px solid var(--bdr);background:var(--s);margin-bottom:6px;cursor:pointer;transition:.15s}
.tgThreadCard:hover{border-color:#0088cc;background:rgba(0,136,204,.06)}
.tgAutoRow{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--bdr)}
.tgAutoRow:last-child{border-bottom:none}
.tgToggle{width:36px;height:20px;border-radius:10px;border:none;cursor:pointer;position:relative;transition:.2s}
.tgToggle.on{background:#0088cc}.tgToggle.off{background:var(--bdr2)}
.tgToggle::after{content:"";position:absolute;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s}
.tgToggle.on::after{left:18px}.tgToggle.off::after{left:2px}
.egTable{width:100%;border-collapse:collapse;font-size:11px}
.egTable th{text-align:left;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);padding:6px 8px;border-bottom:2px solid var(--bdr)}
.egTable td{padding:6px 8px;border-bottom:1px solid var(--bdr)}
.egTable tr:hover{background:var(--s2)}
.egCost{font-weight:900;font-family:var(--mono);color:var(--rd)}
.egEarn{font-weight:900;font-family:var(--mono);color:var(--gn)}


.v3sCard{padding:16px;border-radius:var(--rl);border:1px solid var(--bdr);background:var(--s);margin-bottom:10px;transition:.15s}
.v3sCard:hover{border-color:var(--ac)}
.v3sFeed{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;padding:4px 0}
.v3sPost{padding:12px;border-radius:var(--rm);border:1px solid var(--bdr);background:var(--bg);font-size:11px;line-height:1.6}
.v3sPostHead{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.v3sAvatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--ac),var(--pu));display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;font-weight:900}

.brandMoFeats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid rgba(255,255,255,.08);padding-top:40px}
.brandMoFeat{text-align:center;padding:20px;border-right:1px solid rgba(255,255,255,.06)}
.brandMoFeat:last-child{border-right:none}
.brandMoFeat .bfIco{font-size:28px;margin-bottom:10px;filter:brightness(1.2)}
.brandMoFeat h4{font-size:14px;font-weight:900;color:#fff;font-family:var(--hd);margin-bottom:4px}
.brandMoFeat p{font-size:11px;color:rgba(255,255,255,.45);line-height:1.5}
/* Cart Drawer */
/* Wallet Slideout */
.walletDraw{position:fixed;top:0;right:-420px;bottom:0;width:420px;max-width:96vw;z-index:8100;background:var(--bg);border-left:1px solid var(--bdr);transition:right .3s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;box-shadow:-8px 0 30px rgba(0,0,0,.2)}
.walletDraw.open{right:0}
.walletDraw .wdHead{padding:14px 18px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between}
.walletDraw .wdHead h3{font-size:14px;font-weight:900;font-family:var(--hd)}
.walletDraw .wdTabs{display:flex;gap:0;border-bottom:1px solid var(--bdr)}
.walletDraw .wdTabs button{flex:1;padding:8px;font-size:10px;font-weight:700;border:none;background:none;color:var(--tx3);cursor:pointer;border-bottom:2px solid transparent;font-family:var(--hd);text-transform:uppercase;letter-spacing:.04em}
.walletDraw .wdTabs button.on{color:var(--ac);border-bottom-color:var(--ac)}
.walletDraw .wdBody{flex:1;overflow-y:auto;padding:14px 18px}
.wdBal{text-align:center;padding:16px 0;margin-bottom:14px;border-bottom:1px solid var(--bdr)}
.wdBal .wdBalAmt{font-size:28px;font-weight:900;font-family:var(--mono);color:var(--tx)}
.wdBal .wdBalLbl{font-size:10px;color:var(--tx3);margin-top:2px}
.wdTx{padding:10px;border:1px solid var(--bdr);border-radius:var(--rm);margin-bottom:8px;background:var(--s);cursor:pointer;transition:.15s}
.wdTx:hover{border-color:var(--ac);background:var(--ac2)}
.wdTx .wdTxHead{display:flex;justify-content:space-between;align-items:center}
.wdTx .wdTxName{font-size:11px;font-weight:700}
.wdTx .wdTxAmt{font-size:11px;font-weight:900;font-family:var(--mono)}
.wdTx .wdTxMeta{font-size:9px;color:var(--tx3);margin-top:2px;font-family:var(--mono)}
.wdTx .wdTxTrail{margin-top:6px;padding-top:6px;border-top:1px dashed var(--bdr);display:none}
.wdTx.exp .wdTxTrail{display:block}
.wdTxStep{display:flex;gap:6px;align-items:flex-start;padding:3px 0;font-size:9px;color:var(--tx2)}
.wdTxStep .wdTxIco{flex:0 0 16px;text-align:center}
.wcCard{display:flex;gap:10px;align-items:center;padding:12px;border:1.5px solid var(--bdr);border-radius:var(--rm);margin-bottom:8px;cursor:pointer;transition:.2s;background:var(--s)}
.wcCard:hover{border-color:var(--ac);transform:translateY(-1px)}
.wcCard.conn{border-color:var(--gn);background:rgba(34,197,94,.05)}
.wcCard .wcIco{font-size:24px;flex:0 0 32px;text-align:center}
.wcCard .wcInfo{flex:1}
.wcCard .wcInfo h4{font-size:12px;font-weight:900}
.wcCard .wcInfo p{font-size:9px;color:var(--tx3);margin-top:1px}
.wcCard .wcBadge{font-size:8px;font-weight:900;padding:2px 8px;border-radius:999px}
.clGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;padding:14px}
.clTile{border:1px solid var(--bdr);border-radius:var(--rl);padding:18px 14px;text-align:center;cursor:pointer;transition:.2s;background:var(--s)}
.clTile:hover{border-color:var(--ac);transform:translateY(-2px);box-shadow:var(--sh)}
.clTile .clIco{font-size:28px;margin-bottom:8px}
.clTile .clName{font-size:12px;font-weight:900;font-family:var(--hd);text-transform:uppercase}
.clTile .clCount{font-size:18px;font-weight:900;color:var(--ac);font-family:var(--mono);margin-top:4px}
.clTile .clAdd{font-size:10px;color:var(--ac);margin-top:6px;font-weight:700}
.wtCard{border:1px solid var(--bdr);border-radius:var(--rm);padding:12px;margin-bottom:8px;background:var(--s)}
.wtCard .wtHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.wtCard .wtTitle{font-size:12px;font-weight:900;font-family:var(--hd)}
.wtCard .wtEff{font-size:9px;font-weight:900;font-family:var(--mono);padding:2px 6px;border-radius:999px}
.wtSub{padding-left:14px;border-left:2px solid var(--ac2);margin:4px 0 4px 8px}
.wtSub .wtSubItem{padding:4px 8px;font-size:10px;color:var(--tx2);display:flex;align-items:center;gap:6px}
.wtSub .wtSubItem .wtDot{width:8px;height:8px;border-radius:50%;flex:0 0 8px}
.wtLayer{font-size:8px;font-weight:900;color:var(--ac);font-family:var(--mono);text-transform:uppercase;padding:4px 8px}
/* Game Chat Overlay - transparent, upper right */
.gcOverlay{position:fixed;top:48px;right:10px;width:320px;max-width:42vw;z-index:10002;pointer-events:none;display:none}
.gcOverlay.open{display:flex;flex-direction:column}
.gcOverlay *{pointer-events:auto}
.gcHead{display:flex;align-items:center;gap:8px;padding:8px 12px;background:rgba(0,0,0,.55);backdrop-filter:blur(8px);border-radius:12px 12px 0 0}
.gcHead .gcName{flex:1;font-size:12px;font-weight:900;color:#fff;font-family:var(--hd)}
.gcHead .gcSub{font-size:9px;color:rgba(255,255,255,.6)}
.gcHead .gcBtn{width:28px;height:28px;border-radius:50%;border:none;cursor:pointer;display:grid;place-items:center;font-size:14px;transition:.15s}
.gcHead .gcBtn:hover{transform:scale(1.1)}
.gcHead .gcAudio{background:rgba(34,197,94,.8);color:#fff}
.gcHead .gcVideo{background:rgba(0,0,0,.8);color:#fff}
.gcHead .gcClose{background:rgba(255,255,255,.15);color:#fff;font-size:12px}
.gcBody{max-height:240px;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}
.gcMsg{padding:5px 10px;border-radius:10px;font-size:10px;max-width:85%;word-wrap:break-word;line-height:1.3}
.gcMsg.me{align-self:flex-end;background:rgba(0,0,0,.7);color:#fff;border-bottom-right-radius:2px}
.gcMsg.them{align-self:flex-start;background:rgba(255,255,255,.15);color:#fff;backdrop-filter:blur(4px);border-bottom-left-radius:2px}
.gcMsg.sys{align-self:center;background:rgba(255,255,255,.1);color:rgba(255,255,255,.5);font-size:8px;font-style:italic}
.gcInput{display:flex;gap:4px;padding:6px 8px;background:rgba(0,0,0,.45);backdrop-filter:blur(8px);border-radius:0 0 12px 12px}
.gcInput input{flex:1;padding:6px 10px;border:1px solid rgba(255,255,255,.15);border-radius:8px;font-size:10px;background:rgba(255,255,255,.08);color:#fff;outline:none}
.gcInput input::placeholder{color:rgba(255,255,255,.35)}
.gcInput button{padding:4px 10px;border:none;border-radius:8px;background:rgba(0,0,0,.7);color:#fff;font-size:10px;font-weight:700;cursor:pointer}

/* ═══════════════════════════════════════════════════
   Build 28: Admin Quick-Access Sidebar Bar
   ═══════════════════════════════════════════════════ */
.sideAdminBar{border-top:1px solid rgba(148,163,184,.1);margin-top:4px}
.sideAdminBar .btn{background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.15);color:var(--tx2);font-weight:700;transition:.15s}
.sideAdminBar .btn:hover{background:rgba(0,0,0,.15);color:var(--ac);border-color:rgba(0,0,0,.3)}

/* ═══════════════════════════════════════════════════
   Build 28: Room Editor Panel
   ═══════════════════════════════════════════════════ */
.wRoomEditor{position:fixed;top:0;right:0;width:360px;max-width:100vw;height:100vh;z-index:8000;display:none;flex-direction:column;background:rgba(2,6,23,.92);backdrop-filter:blur(16px);border-left:1px solid rgba(148,163,184,.15);box-shadow:-8px 0 32px rgba(0,0,0,.5)}
.wreHead{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(148,163,184,.12)}
.wreTitle{font-size:14px;font-weight:900;color:#fff;font-family:var(--hd)}
.wreClose{width:28px;height:28px;border-radius:50%;border:none;background:rgba(255,255,255,.1);color:#fff;font-size:14px;cursor:pointer;display:grid;place-items:center}
.wreClose:hover{background:rgba(239,68,68,.3)}
.wreTabs{display:flex;gap:2px;padding:6px 8px;background:rgba(0,0,0,.2);border-bottom:1px solid rgba(148,163,184,.08);overflow-x:auto}
.wreTab{padding:6px 10px;border:none;border-radius:8px;background:transparent;color:rgba(255,255,255,.5);font-size:10px;font-weight:700;cursor:pointer;white-space:nowrap;transition:.15s}
.wreTab:hover{color:#fff;background:rgba(255,255,255,.08)}
.wreTab.active{color:#fff;background:rgba(0,0,0,.4)}
.wreBody{flex:1;overflow-y:auto;padding:14px 16px}
.wreFoot{padding:10px 16px;border-top:1px solid rgba(148,163,184,.12);display:flex;gap:8px}
.wreFoot .btn{flex:1;font-size:11px;padding:8px 16px}
.wreSection{margin-bottom:14px}
.wreLbl{display:block;font-size:10px;font-weight:700;color:rgba(255,255,255,.7);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}
.wreIn{width:100%;padding:8px 10px;border:1px solid rgba(148,163,184,.2);border-radius:8px;background:rgba(255,255,255,.06);color:#fff;font-size:12px;outline:none;box-sizing:border-box}
.wreIn:focus{border-color:rgba(0,0,0,.5)}
.wreIn option{background:#1e293b;color:#fff}
.wreColorRow{display:flex;align-items:center;gap:8px}
.wreColor{width:36px;height:36px;border:2px solid rgba(255,255,255,.15);border-radius:8px;cursor:pointer;padding:0}
.wrePresets{display:flex;gap:4px}
.wrePreset{width:24px;height:24px;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:.15s}
.wrePreset:hover{border-color:rgba(255,255,255,.5);transform:scale(1.15)}

/* Worker cards in editor */
.wreWorkerCard{padding:10px 12px;border:1px solid rgba(148,163,184,.15);border-radius:10px;background:rgba(255,255,255,.04);margin-bottom:8px}
.wreWorkerCard.inactive{opacity:.5}
.wreWcHead{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.wreWcAvatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#f472b6,#000);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;color:#fff;flex-shrink:0}
.wreWcInfo{flex:1;min-width:0}
.wreWcName{font-size:11px;font-weight:700;color:#fff}
.wreWcRole{font-size:9px;color:rgba(255,255,255,.5)}
.wreWcGreeting{font-size:9px;color:rgba(255,255,255,.45);padding:4px 8px;background:rgba(255,255,255,.04);border-radius:6px}

/* ═══════════════════════════════════════════════════
   Build 28: Visitor HUD (upper-left in visit rooms)
   ═══════════════════════════════════════════════════ */
.wVisitorHud{position:absolute;left:10px;top:44px;z-index:6;max-width:280px;display:none}
.vhHeader{padding:8px 12px;background:rgba(0,0,0,.55);backdrop-filter:blur(8px);border-radius:10px 10px 0 0}
.vhStoreName{font-size:12px;font-weight:900;color:#fff;font-family:var(--hd)}
.vhOwner{font-size:9px;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:4px;margin-top:2px}
.vhOnline{width:6px;height:6px;border-radius:50%;background:#22c55e;display:inline-block;animation:vhPulse 2s infinite}
@keyframes vhPulse{0%,100%{opacity:1}50%{opacity:.4}}
.vhPills{display:flex;flex-wrap:wrap;gap:4px;padding:6px 10px;background:rgba(0,0,0,.4);backdrop-filter:blur(6px)}
.vhPill{font-size:9px;color:rgba(255,255,255,.8);padding:3px 8px;border-radius:6px;background:rgba(255,255,255,.1);white-space:nowrap}
.vhActions{padding:6px 10px;background:rgba(0,0,0,.35);backdrop-filter:blur(6px);border-radius:0 0 10px 10px}
.vhActions .btn{font-size:9px;padding:4px 10px}

/* ═══════════════════════════════════════════════════
   Build 28: Music Embed Container
   ═══════════════════════════════════════════════════ */
.wMusicEmbed{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);z-index:6;display:none;border-radius:12px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.5)}

/* ═══════════════════════════════════════════════════
   Build 28: Chat inline action buttons
   ═══════════════════════════════════════════════════ */
.gcAction{padding:3px 8px;border:1px solid rgba(0,0,0,.4);border-radius:6px;background:rgba(0,0,0,.2);color:#a5b4fc;font-size:8px;font-weight:700;cursor:pointer;transition:.15s}
.gcAction:hover{background:rgba(0,0,0,.4);color:#fff}
/* Call UI */
/* call overlay: see end of file */
.callCtrl{display:flex;gap:10px}
.callCtrl button{width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;font-size:20px;transition:.2s;display:grid;place-items:center}
.callCtrl button:hover{transform:scale(1.1)}
.callCtrl .ccMute{background:rgba(255,255,255,.15);color:#fff}
.callCtrl .ccMute.on{background:rgba(239,68,68,.8)}
.callCtrl .ccCam{background:rgba(255,255,255,.15);color:#fff}
.callCtrl .ccCam.on{background:rgba(239,68,68,.8)}
.callCtrl .ccEnd{background:#ef4444;color:#fff}
.callCtrl .ccScreen{background:rgba(255,255,255,.15);color:#fff}
/* Inline call (game mode chat) */
.gcCallBar{padding:6px 10px;background:rgba(34,197,94,.2);border-radius:8px;display:flex;align-items:center;gap:8px;margin:4px 8px}
.gcCallBar .gcCallTime{font-size:10px;font-weight:900;color:#22c55e;font-family:var(--mono);flex:1}
.gcCallBar button{width:24px;height:24px;border-radius:50%;border:none;cursor:pointer;font-size:11px;display:grid;place-items:center}
.cartDraw{position:fixed;top:0;right:-380px;bottom:0;width:380px;z-index:8000;background:var(--bg);border-left:1px solid var(--bdr);transition:right .3s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;box-shadow:-8px 0 30px rgba(0,0,0,.2)}
.cartDraw.open{right:0}
.cartDraw .cdHead{padding:14px 18px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between}
.cartDraw .cdHead h3{font-size:14px;font-weight:900;font-family:var(--hd)}
.cartDraw .cdBody{flex:1;overflow-y:auto;padding:12px}
.cartDraw .cdItem{display:flex;gap:10px;padding:10px;border:1px solid var(--bdr);border-radius:var(--rm);margin-bottom:8px;background:var(--s)}
.cartDraw .cdItem .cdIco{font-size:28px;flex:0 0 36px;text-align:center}
.cartDraw .cdItem .cdInfo{flex:1;min-width:0}
.cartDraw .cdItem .cdInfo h5{font-size:12px;font-weight:900}
.cartDraw .cdItem .cdInfo p{font-size:10px;color:var(--tx3)}
.cartDraw .cdItem .cdPr{font-size:12px;font-weight:900;color:var(--ac)}
.cartDraw .cdItem .cdDel{width:24px;height:24px;border-radius:50%;border:1px solid var(--bdr);background:var(--s2);color:var(--rd);cursor:pointer;font-size:12px;display:grid;place-items:center}
.cartDraw .cdFoot{padding:14px 18px;border-top:1px solid var(--bdr)}
.cartDraw .cdTotal{display:flex;justify-content:space-between;font-size:13px;font-weight:900;margin-bottom:10px}
.cartDraw .cdTotal span:last-child{color:var(--ac)}
.cartDraw .cdBuy{width:100%;padding:12px;border:none;border-radius:var(--rm);background:var(--ac);color:#fff;font-size:12px;font-weight:900;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;transition:.15s}
.cartDraw .cdBuy:hover{filter:brightness(1.15)}
/* ═══ VP3 CANVAS VIEW — Native Social Network Renderer ═══ */
.cvOverlay{display:none;position:fixed;inset:0;z-index:2500;background:var(--bg);flex-direction:column;overflow:hidden}.cvOverlay.open{display:flex}
.cvHead{display:flex;align-items:center;gap:8px;padding:0 14px;height:48px;flex:0 0 48px;background:var(--s);border-bottom:1px solid var(--bdr);z-index:10}
.cvBack{width:32px;height:32px;border-radius:var(--r);border:1px solid var(--bdr2);background:var(--s);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;color:var(--tx2);transition:.12s}.cvBack:hover{border-color:var(--ac);color:var(--ac);background:var(--ac2)}
.cvTitle{font-size:13px;font-weight:900;font-family:var(--hd);text-transform:uppercase;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cvBread{font-size:10px;color:var(--tx3);font-family:var(--mono);display:flex;align-items:center;gap:4px}.cvBread span{cursor:pointer;transition:.12s}.cvBread span:hover{color:var(--ac)}
.cvActions{display:flex;gap:6px;align-items:center}
.cvBody{flex:1;overflow-y:auto;background:var(--bg)}
.chatActionForm{max-height:calc(100vh - 200px);overflow-y:auto;padding-bottom:40px}
.cvProfile{max-width:900px;margin:0 auto;padding-bottom:40px}
.cvCover{width:100%;height:220px;background:linear-gradient(135deg,#000 0%,#000 40%,#000 100%);position:relative;overflow:hidden}
.cvCover img{width:100%;height:100%;object-fit:cover}
.cvCoverGrain{position:absolute;inset:0;opacity:.06;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Crect width='1' height='1' fill='%23fff'/%3E%3C/svg%3E")}
.cvAvatarRow{display:flex;align-items:flex-end;gap:16px;padding:0 24px;margin-top:-48px;position:relative;z-index:2}
.cvAvatar{width:96px;height:96px;border-radius:50%;border:4px solid var(--s);background:linear-gradient(135deg,var(--ac),var(--pu));display:flex;align-items:center;justify-content:center;font-size:36px;color:#fff;font-weight:900;font-family:var(--hd);box-shadow:var(--sh2);flex:0 0 96px;overflow:hidden}.cvAvatar img{width:100%;height:100%;object-fit:cover}
.cvNameBlock{flex:1;min-width:0;padding-bottom:6px}
.cvName{font-size:22px;font-weight:900;font-family:var(--hd);text-transform:uppercase;letter-spacing:.02em;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cvVerified{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.12);color:var(--ac)}
.cvUsername{font-size:12px;color:var(--tx2);font-family:var(--mono);margin-top:2px}
.cvBio{font-size:12px;color:var(--tx2);margin-top:6px;line-height:1.5;max-width:500px}
.cvStatsRow{display:flex;gap:16px;padding:16px 24px 0;flex-wrap:wrap}
.cvStat{text-align:center;cursor:pointer;transition:.12s;padding:6px 12px;border-radius:var(--rm);border:1px solid transparent}.cvStat:hover{background:var(--ac3);border-color:rgba(0,0,0,.15)}
.cvStatN{font-size:18px;font-weight:900;font-family:var(--hd);color:var(--ac)}.cvStatL{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3)}
.cvBtnRow{display:flex;gap:8px;padding:14px 24px;flex-wrap:wrap}
.cvBtn{padding:7px 16px;border:1px solid var(--bdr2);border-radius:999px;font-size:11px;font-weight:700;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px;background:var(--s);color:var(--tx2)}.cvBtn:hover{border-color:var(--ac);color:var(--ac);background:var(--ac2)}
.cvBtn.pri{background:linear-gradient(135deg,var(--ac),var(--pu));color:#fff;border-color:transparent}.cvBtn.pri:hover{filter:brightness(1.08);transform:translateY(-1px)}
.cvBtn.gn{background:rgba(22,163,74,.12);color:var(--gn);border-color:rgba(22,163,74,.2)}.cvBtn.gn:hover{background:var(--gn);color:#fff}
.cvTabs{display:flex;gap:0;border-bottom:1px solid var(--bdr);background:var(--s);overflow-x:auto;padding:0 12px;position:sticky;top:0;z-index:5}.cvTabs::-webkit-scrollbar{display:none}
.cvTab{flex:0 0 auto;padding:10px 16px;border:none;background:transparent;border-bottom:2px solid transparent;font-size:11px;font-weight:700;color:var(--tx2);cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:5px;transition:.12s}.cvTab:hover{color:var(--tx)}.cvTab.on{color:var(--ac);border-bottom-color:var(--ac)}
.cvTabCount{font-size:9px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--ac2);color:var(--ac);font-family:var(--mono)}
.cvTabBody{display:none;padding:16px 24px}.cvTabBody.on{display:block}
.cvPost{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px;margin-bottom:10px;box-shadow:var(--sh1);transition:.15s}.cvPost:hover{box-shadow:var(--sh2)}
.cvPostHead{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cvPostAvatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ac),var(--pu));display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;font-weight:900;flex:0 0 36px;overflow:hidden}.cvPostAvatar img{width:100%;height:100%;object-fit:cover}
.cvPostName{font-size:12px;font-weight:900}.cvPostTime{font-size:9px;color:var(--tx3);font-family:var(--mono)}
.cvPostBody{font-size:12px;line-height:1.65;color:var(--tx);margin-bottom:10px}
.cvPostImg{width:100%;border-radius:var(--rm);margin-bottom:10px;max-height:400px;object-fit:cover;border:1px solid var(--bdr)}
.cvPostActions{display:flex;gap:12px;padding-top:8px;border-top:1px solid var(--bdr)}
.cvPostAction{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--tx3);cursor:pointer;padding:4px 8px;border-radius:999px;transition:.12s;background:none;border:none}.cvPostAction:hover{background:var(--ac2);color:var(--ac)}.cvPostAction.liked{color:var(--rd)}
.hdrDropItem{padding:8px 14px;font-size:11px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:.12s;color:var(--tx2)}.hdrDropItem:hover{background:var(--ac2);color:var(--ac)}
.hdrDropTab{transition:.15s}
.hdrDropTab:hover{color:var(--ac)!important}
[data-drop]:hover{background:var(--ac2);color:var(--ac)}

.onlineDot{width:8px;height:8px;border-radius:50%;background:var(--gn);display:inline-block;animation:pulse 2s infinite;margin-right:4px}
.commFriendItem{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:.12s;font-size:11px;border-bottom:1px solid rgba(255,255,255,.03)}.commFriendItem:hover{background:var(--ac2)}
.commFriendAv{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--ac),#000);display:flex;align-items:center;justify-content:center;font-size:10px;color:#fff;font-weight:900;flex-shrink:0;position:relative}
.commFriendAv .onlineDot{position:absolute;bottom:-1px;right:-1px;width:8px;height:8px;border:2px solid var(--s)}
.regAnim{position:fixed;inset:0;background:var(--bg);z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.regAnimStep{font-size:11px;color:var(--tx3);font-family:var(--mono);opacity:0;transform:translateY(8px);transition:all .4s ease}
.regAnimStep.active{opacity:1;transform:translateY(0);color:var(--ac)}
.regAnimStep.done{opacity:.5;color:var(--gn)}
.regAnimBar{width:280px;height:4px;border-radius:2px;background:var(--s2);overflow:hidden;margin-top:12px}
.regAnimFill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--ac),#000,var(--gn));width:0%;transition:width .3s ease}
.socialTab{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rm);margin:6px;padding:8px;max-height:100%;overflow-y:auto}
.socialKw{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin:2px;border-radius:999px;background:var(--ac2);color:var(--ac);font-size:9px;font-weight:700;cursor:pointer;transition:.12s;font-family:var(--mono)}.socialKw:hover{background:var(--ac);color:#fff}
.socialKwCat{font-size:9px;font-weight:900;color:var(--tx3);text-transform:uppercase;letter-spacing:.08em;margin:8px 0 4px;font-family:var(--hd)}
.cvContentGrid{display:grid;grid-template-columns:1fr 300px;gap:16px}
.cvInfoCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px;box-shadow:var(--sh1);margin-bottom:10px}
.cvInfoTitle{font-size:10px;font-weight:900;font-family:var(--hd);text-transform:uppercase;color:var(--tx3);margin-bottom:10px;display:flex;align-items:center;gap:6px}
.cvInfoRow{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-bottom:1px solid var(--s2);font-size:11px}.cvInfoRow:last-child{border-bottom:none}
.cvInfoIcon{width:24px;text-align:center;font-size:13px;flex:0 0 24px;color:var(--tx3)}.cvInfoLabel{font-weight:700;color:var(--tx2);min-width:70px;flex:0 0 auto}.cvInfoVal{color:var(--tx);flex:1}
.cvPeopleGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.cvPersonCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:12px;text-align:center;cursor:pointer;transition:.15s;box-shadow:var(--sh1)}.cvPersonCard:hover{border-color:rgba(0,0,0,.2);transform:translateY(-2px);box-shadow:var(--sh2)}
.cvPersonAv{width:48px;height:48px;border-radius:50%;margin:0 auto 8px;background:linear-gradient(135deg,var(--ac),var(--pu));display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;font-weight:900;overflow:hidden}.cvPersonAv img{width:100%;height:100%;object-fit:cover}
.cvPersonName{font-size:10px;font-weight:900;font-family:var(--hd);text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cvPersonSub{font-size:9px;color:var(--tx3)}
.cvPhotoGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}
.cvPhotoThumb{aspect-ratio:1;border-radius:var(--rm);background:var(--s2);overflow:hidden;cursor:pointer;border:1px solid var(--bdr);transition:.15s;position:relative}.cvPhotoThumb:hover{border-color:var(--ac);transform:scale(1.02)}
.cvPhotoThumb img{width:100%;height:100%;object-fit:cover}
.cvEmpty{text-align:center;padding:40px 20px;color:var(--tx3)}
.cvEmptyIcon{font-size:40px;margin-bottom:10px}.cvEmptyTitle{font-size:14px;font-weight:900;font-family:var(--hd);text-transform:uppercase;color:var(--tx2);margin-bottom:4px}.cvEmptyDesc{font-size:11px;max-width:300px;margin:0 auto;line-height:1.5}
.cvProductGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.cvProductCard{background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;cursor:pointer;transition:.15s;box-shadow:var(--sh1)}.cvProductCard:hover{border-color:rgba(0,0,0,.2);transform:translateY(-2px)}
.cvProductImg{width:100%;aspect-ratio:4/3;background:linear-gradient(135deg,var(--s2),var(--s3));display:flex;align-items:center;justify-content:center;font-size:32px}
.cvProductInfo{padding:10px}.cvProductName{font-size:10px;font-weight:900;font-family:var(--hd);text-transform:uppercase}.cvProductPrice{font-size:13px;font-weight:900;color:var(--gn);font-family:var(--mono);margin-top:3px}.cvProductSeller{font-size:9px;color:var(--tx3);margin-top:2px}
/* PPPM Voucher Cards */
.voucherCard{position:relative;background:var(--s);border:1px solid var(--bdr);border-radius:var(--rl);padding:14px;margin-bottom:10px;overflow:hidden;transition:.2s}
.voucherCard:hover{border-color:rgba(0,0,0,.3);box-shadow:0 4px 20px rgba(0,0,0,.15)}
.voucherCard.claimed{opacity:.7}.voucherCard.claimed::after{content:"\2716";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:80px;color:rgba(239,68,68,.25);font-weight:900;pointer-events:none;z-index:1}
.voucherBadge{display:inline-flex;align-items:center;gap:3px;font-size:8px;font-weight:900;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}
.voucherBadge.micro{background:rgba(16,185,129,.15);color:var(--gn)}.voucherBadge.digital{background:rgba(0,0,0,.15);color:var(--ac)}.voucherBadge.shipping{background:rgba(239,68,68,.15);color:var(--rd)}
.voucherBadge.sent{background:rgba(251,191,36,.15);color:var(--yl)}.voucherBadge.claimed_b{background:rgba(239,68,68,.15);color:var(--rd)}
.voucherCode{font-family:var(--mono);font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--ac);background:var(--ac3);padding:4px 10px;border-radius:var(--r);display:inline-block;margin:6px 0;user-select:all}
.voucherInvoice{font-size:9px;color:var(--tx3);font-family:var(--mono);border-top:1px dashed var(--bdr);margin-top:8px;padding-top:6px}
/* Claude Voice */
.voiceBtn{width:44px;height:44px;border-radius:50%;border:2px solid var(--ac);background:var(--s);color:var(--ac);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s;flex-shrink:0}
.voiceBtn:hover{background:var(--ac);color:#fff}
.voiceBtn.listening{background:var(--rd);border-color:var(--rd);color:#fff;animation:voicePulse 1s infinite}
.voiceBtn.speaking{background:var(--gn);border-color:var(--gn);color:#fff;animation:voicePulse 1.5s infinite}
/* Store Visitors */
.visitorNode{position:absolute;z-index:17;cursor:pointer;user-select:none;transition:left .2s linear,top .2s linear}
.visitorNodeInner{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.3);border:2px solid #22d3ee;position:relative;background:linear-gradient(135deg,#06b6d4,#0284c7)}
.visitorNodeLabel{position:absolute;top:-16px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:7px;font-weight:900;font-family:var(--mono);color:#06b6d4;background:rgba(6,182,212,.12);padding:1px 5px;border-radius:999px;border:1px solid rgba(6,182,212,.3)}
/* Voice recording indicator */
.voiceRecInd{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:700;color:var(--rd);padding:2px 8px;border-radius:999px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2)}
.voiceRecInd .vrdot{width:6px;height:6px;border-radius:50%;background:var(--rd);animation:voicePulse 1s infinite}
/* Claude thinking indicator */
.claudeThinking{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--rm);background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.15);margin:4px 0;font-size:10px;color:var(--ac)}
.claudeThinking .ctdot{width:4px;height:4px;border-radius:50%;background:var(--ac);animation:ctBounce .6s infinite alternate}
.claudeThinking .ctdot:nth-child(2){animation-delay:.2s}.claudeThinking .ctdot:nth-child(3){animation-delay:.4s}
@keyframes ctBounce{0%{opacity:.3;transform:translateY(0)}100%{opacity:1;transform:translateY(-3px)}}
/* Geolocation badge */
.geoLocBadge{display:inline-flex;align-items:center;gap:3px;font-size:8px;font-weight:700;padding:2px 6px;border-radius:999px;background:rgba(34,211,238,.1);color:#06b6d4;border:1px solid rgba(34,211,238,.2)}

@keyframes voicePulse{0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,.4)}50%{box-shadow:0 0 0 12px rgba(0,0,0,0)}}
/* Proactive engagement banner */
.engageBanner{background:linear-gradient(135deg,rgba(0,0,0,.08),rgba(0,0,0,.08));border:1px solid rgba(0,0,0,.2);border-radius:var(--rl);padding:12px 14px;margin:8px 0;cursor:pointer;transition:.2s}
.engageBanner:hover{border-color:rgba(0,0,0,.4);transform:translateY(-1px)}

.cvNotice{padding:8px 14px;background:rgba(0,0,0,.08);border-bottom:1px solid rgba(0,0,0,.15);font-size:10px;color:var(--ac);font-weight:700;display:flex;align-items:center;gap:6px;flex:0 0 auto}
.cvSearchBar{display:flex;gap:8px;padding:12px 24px;background:var(--s);border-bottom:1px solid var(--bdr)}
.cvSearchIn{flex:1;padding:8px 14px;border:1px solid var(--bdr2);border-radius:999px;font-size:12px;background:var(--bg);outline:none}.cvSearchIn:focus{border-color:var(--ac);background:var(--s)}
.cvSearchBtn{padding:8px 16px;border:none;border-radius:999px;background:var(--ac);color:#fff;font-size:11px;font-weight:700;cursor:pointer}.cvSearchBtn:hover{filter:brightness(1.1)}
@media(max-width:760px){.cvContentGrid{grid-template-columns:1fr}.cvCover{height:140px}.cvAvatar{width:72px;height:72px;font-size:24px;flex:0 0 72px}.cvName{font-size:16px}.cvAvatarRow{padding:0 14px;margin-top:-36px}.cvStatsRow,.cvBtnRow,.cvTabBody{padding-left:14px;padding-right:14px}}

/* ═══ VP3 NOTIFICATION SYSTEM ═══ */
.vp3NotifPanel{padding:0;display:flex;flex-direction:column;height:100%}
.vp3NotifHeader{padding:14px 16px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;background:var(--s)}
.vp3NotifTitle{font-size:14px;font-weight:900;font-family:var(--hd)}
.vp3NotifFilter{padding:4px 10px;border:1px solid var(--bdr);border-radius:999px;font-size:9px;font-weight:700;background:transparent;color:var(--tx3);cursor:pointer;transition:.15s}
.vp3NotifFilter.on{background:var(--ac);color:#fff;border-color:var(--ac)}
.vp3NotifFilter:hover{border-color:var(--ac)}
.vp3NotifList{flex:1;overflow-y:auto;padding:4px 0}
.vp3NotifItem{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s;cursor:pointer}
.vp3NotifItem:hover{background:rgba(0,0,0,.04)}
.vp3NotifItem.unread{background:rgba(0,0,0,.06);border-left:3px solid var(--ac)}
.vp3NotifIcon{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:18px}
.vp3NotifIcon img{width:100%;height:100%;object-fit:cover}
.vp3NotifBody{flex:1;min-width:0}
.vp3NotifMsg{font-size:12px;line-height:1.5;color:var(--tx)}
.vp3NotifTime{font-size:9px;color:var(--tx3);margin-top:3px}
.vp3NotifThumb{width:44px;height:44px;border-radius:6px;overflow:hidden;flex-shrink:0}
.vp3NotifThumb img{width:100%;height:100%;object-fit:cover}
.vp3NotifEmpty{text-align:center;padding:60px 20px;color:var(--tx3)}
@media(max-width:760px){.vp3NotifHeader{flex-direction:column;align-items:flex-start}.vp3NotifItem{padding:10px 12px;gap:8px}.vp3NotifIcon{width:32px;height:32px;font-size:14px}}

/* ═══ CALL OVERLAY UPLIFT ═══ */
.callOverlay{position:fixed;inset:0;z-index:9500;background:linear-gradient(180deg,rgba(15,23,42,.95) 0%,rgba(5,8,22,.98) 100%);backdrop-filter:blur(20px);display:none;flex-direction:column;align-items:center;justify-content:center;padding:20px}
.callOverlay.open{display:flex}
.callOverlay .callInfo{text-align:center;margin-bottom:24px}
.callOverlay .callInfo .callAvatar{width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,#000,#000);display:inline-flex;align-items:center;justify-content:center;font-size:36px;color:#fff;font-weight:900;margin-bottom:14px;box-shadow:0 0 40px rgba(0,0,0,.3);animation:callPulse 2s ease-in-out infinite}
.callOverlay .callInfo h3{color:#fff;font-size:20px;font-weight:900;font-family:var(--hd);margin:0 0 4px}
.callOverlay .callInfo p{color:rgba(255,255,255,.5);font-size:12px;margin:0;letter-spacing:.03em}
.callOverlay .callTimer{color:var(--ac);font-size:24px;font-weight:900;font-family:var(--mono);margin-bottom:24px;letter-spacing:.08em}
.callOverlay .callVideos{display:flex;gap:8px;margin-bottom:24px;max-width:90vw}
.callOverlay .callCtrl{display:flex;gap:12px;align-items:center}
.ccMute,.ccCam,.ccScreen{width:52px;height:52px;border-radius:50%;border:2px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.2s}
.ccMute:hover,.ccCam:hover,.ccScreen:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3)}
.ccMute.on,.ccCam.on{background:rgba(239,68,68,.2);border-color:rgba(239,68,68,.5);color:#ef4444}
.ccEnd{width:64px;height:52px;border-radius:26px;border:none;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(239,68,68,.3);transition:transform .15s}
.ccEnd:hover{transform:scale(1.06)}
@keyframes callPulse{0%,100%{box-shadow:0 0 40px rgba(0,0,0,.3)}50%{box-shadow:0 0 60px rgba(0,0,0,.5)}}
.callVid{width:280px;height:210px;border-radius:12px;overflow:hidden;background:#000;border:2px solid rgba(255,255,255,.1)}
.callVidSelf{width:120px;height:90px;position:absolute;right:12px;bottom:12px;border:2px solid var(--ac)}
@media(max-width:760px){.callOverlay .callInfo .callAvatar{width:72px;height:72px;font-size:28px}.callOverlay .callInfo h3{font-size:16px}.callOverlay .callTimer{font-size:18px}.ccMute,.ccCam,.ccScreen{width:44px;height:44px;font-size:16px}.ccEnd{width:56px;height:44px}.callVid{width:100%;max-width:320px;height:auto;aspect-ratio:4/3}.callCtrl{gap:8px}}

/* ═══ GAME CHAT OVERLAY RESPONSIVE ═══ */
@media(max-width:760px){.gcOverlay{right:0;width:100%;max-width:100vw;top:auto;bottom:0;border-radius:14px 14px 0 0;max-height:70vh}
.wRoomEditor{width:100%;max-width:100vw;border-left:none;border-radius:0}
.wVisitorHud{max-width:calc(100vw - 20px)}
.wMusicEmbed{width:calc(100vw - 40px);left:20px;transform:none}}

/* ═══ FLOW SIDEBAR TASKS ═══ */
.sideFlowTask{display:flex;align-items:center;gap:6px;padding:5px 8px;cursor:pointer;border-radius:var(--r);transition:background .12s;font-size:10px}
.sideFlowTask:hover{background:var(--bg)}
.sideFlowTask .sftDot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.sideFlowTask .sftName{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--tx2)}
.sideFlowTask .sftBadge{font-size:7px;font-weight:900;padding:1px 5px;border-radius:4px}

/* ═══ BUILD 27: ADMIN ADS PANEL ═══ */
.admCardTitle{font-size:11px;font-weight:800;margin-bottom:8px;color:var(--t1)}
.admTable{width:100%;border-collapse:collapse;font-size:10px}
.admTable th{padding:6px 8px;text-align:left;font-weight:700;border-bottom:2px solid var(--bdr);font-size:9px;color:var(--tx3);text-transform:uppercase;letter-spacing:.04em}
.admTable td{padding:6px 8px;border-bottom:1px solid var(--bdr);vertical-align:middle}
.admTable tr:hover{background:var(--bg)}
.admStatVal{font-size:20px;font-weight:900;color:var(--ac)}
.admStatLabel{font-size:8px;color:var(--tx3);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}

/* ══════════════════════════════════════════════════════════════════
   Build 27: 3D World + Advertising Engine CSS
   ══════════════════════════════════════════════════════════════════ */

/* ── 3D World Loading Screen overlay ── */
.w3dLoader {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #070b14 0%, #0f172a 100%);
    z-index: 100;
    pointer-events: none;
}
.w3dLoader .w3dLoaderTitle {
    font-size: 24px;
    font-weight: 900;
    color: #000;
    font-family: var(--hd);
    letter-spacing: 0.1em;
}
.w3dLoader .w3dLoaderMsg {
    font-size: 12px;
    color: #94a3b8;
    margin-top: 12px;
}

/* ── Ad Billboard sprite badge (3D world HUD overlay) ── */
.adBillboard {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 8px;
    background: linear-gradient(135deg, #f59e0b, #ef4444);
    color: #fff;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.03em;
    box-shadow: 0 2px 10px rgba(245, 158, 11, 0.3);
    white-space: nowrap;
}

/* ── Ad Sidebar Banner (below world map) ── */
.adSideBanner {
    margin: 8px 0;
    border-radius: var(--r);
    border: 1px solid rgba(245, 158, 11, 0.2);
    background: rgba(245, 158, 11, 0.04);
    overflow: hidden;
    display: none;
}
.adSideBannerInner {
    padding: 10px 14px;
}
@media (max-width: 760px) {
    .adSideBanner {
        margin: 6px 0;
    }
    .adSideBannerInner {
        padding: 8px 10px;
    }
}

/* ── Widget Kiosk sprite styling ── */
.wdgKiosk {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 8px;
    background: linear-gradient(135deg, #000, #000);
    color: #fff;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.03em;
    box-shadow: 0 2px 10px rgba(139, 92, 246, 0.3);
    white-space: nowrap;
}

/* ── Online User NPC marker ── */
.npcUser {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 12px;
    background: rgba(16, 185, 129, 0.15);
    color: #10b981;
    font-size: 9px;
    font-weight: 800;
    border: 1px solid rgba(16, 185, 129, 0.3);
}

/* ── Presence Dot (visitor on Shell map) ── */
.presenceDot {
    position: relative;
}
@keyframes presencePulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4); }
    50% { box-shadow: 0 0 0 6px rgba(16, 185, 129, 0); }
}
.presenceDot > div:first-child {
    animation: presencePulse 2s ease-in-out infinite;
}

/* ── Employee status colors on map ── */
.empMarkerInside { background: #16a34a !important; }
.empMarkerOutside { background: #d97706 !important; }
.empMarkerOffDuty { background: #6b7280 !important; }

/* ── Ad Admin Panel styles ── */
.admAdPending {
    border-left: 3px solid #f59e0b;
    padding: 10px 14px;
    margin-bottom: 8px;
    border-radius: var(--r);
    background: rgba(245, 158, 11, 0.04);
}
.admAdActive {
    border-left: 3px solid #10b981;
}
.admAdPaused {
    border-left: 3px solid #6b7280;
    opacity: 0.7;
}
.admAdRejected {
    border-left: 3px solid #ef4444;
    opacity: 0.5;
}

/* ── Touch targets for mobile ── */
@media (max-width: 760px) {
    .adSideBannerInner button,
    .admAdPending button {
        min-height: 44px;
        min-width: 44px;
    }
}

/* ══════════════════════════════════════════════════════════════
   BUILD 28: Worker Chat Panel — upper-right corner
   ══════════════════════════════════════════════════════════════ */
.w3dChat{position:fixed;top:48px;right:10px;width:380px;max-width:45vw;z-index:10003;display:none;flex-direction:column;border-radius:12px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.4)}
.w3dChat.open{display:flex}
.w3dChatHead{display:flex;align-items:center;gap:8px;padding:10px 12px;background:rgba(0,0,0,.65);backdrop-filter:blur(12px)}
.w3dChatAvatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#f472b6,#333);display:grid;place-items:center;font-size:13px;font-weight:900;color:#fff;flex:0 0 32px}
.w3dChatInfo{flex:1;min-width:0}
.w3dChatName{font-size:12px;font-weight:900;color:#fff;font-family:var(--hd)}
.w3dChatRole{font-size:9px;color:rgba(255,255,255,.6)}
.w3dChatBadge{display:inline-block;padding:1px 6px;border-radius:999px;background:rgba(0,0,0,.3);color:#a5b4fc;font-size:8px;font-weight:700;margin-left:4px}
.w3dChatCloseBtn{width:28px;height:28px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:12px;cursor:pointer;display:grid;place-items:center;transition:.15s}
.w3dChatCloseBtn:hover{background:rgba(255,255,255,.25);transform:scale(1.1)}
.w3dChatBody{max-height:320px;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px;background:rgba(15,23,42,.85);backdrop-filter:blur(8px)}
.w3dChatMsg{padding:6px 10px;border-radius:10px;font-size:10px;max-width:85%;word-wrap:break-word;line-height:1.4}
.w3dChatMsg.me{align-self:flex-end;background:rgba(0,0,0,.7);color:#fff;border-bottom-right-radius:2px}
.w3dChatMsg.them{align-self:flex-start;background:rgba(255,255,255,.12);color:#fff;backdrop-filter:blur(4px);border-bottom-left-radius:2px}
.w3dChatMsg.sys{align-self:center;background:transparent;color:rgba(255,255,255,.4);font-size:8px;font-style:italic}
.w3dMsgBadge{display:inline-block;font-size:10px;margin-right:3px}
.w3dChatActions{display:flex;flex-wrap:wrap;gap:4px;padding:4px 0}
.w3dChatAction{padding:4px 10px;border:1px solid rgba(0,0,0,.4);border-radius:999px;background:rgba(0,0,0,.1);color:#a5b4fc;font-size:9px;font-weight:700;cursor:pointer;transition:.12s}
.w3dChatAction:hover{background:rgba(0,0,0,.3);border-color:rgba(0,0,0,.7)}
.w3dChatFoot{display:flex;gap:4px;padding:8px;background:rgba(0,0,0,.55);backdrop-filter:blur(8px)}
.w3dChatFoot input{flex:1;padding:7px 10px;border:1px solid rgba(255,255,255,.15);border-radius:8px;font-size:10px;background:rgba(255,255,255,.06);color:#fff;outline:none}
.w3dChatFoot input::placeholder{color:rgba(255,255,255,.3)}
.w3dChatFoot button{padding:5px 12px;border:none;border-radius:8px;background:rgba(0,0,0,.7);color:#fff;font-size:10px;font-weight:700;cursor:pointer}
.w3dChatFoot button:hover{background:rgba(0,0,0,.9)}
.w3dTyping em{color:rgba(255,255,255,.5);font-size:9px}

/* ══════════════════════════════════════════════════════════════
   BUILD 28: Room Editor Panel — right slide-in
   ══════════════════════════════════════════════════════════════ */
.w3dEditor{position:fixed;top:0;right:-380px;width:360px;max-width:90vw;height:100vh;z-index:10004;display:flex;flex-direction:column;background:var(--s);border-left:1px solid var(--bdr);box-shadow:-4px 0 24px rgba(0,0,0,.12);transition:right .25s ease}
.w3dEditor.open{right:0}
.w3dEdHead{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--bdr);background:var(--bg)}
.w3dEdCloseBtn{width:28px;height:28px;border-radius:50%;border:1px solid var(--bdr2);background:var(--s);color:var(--tx2);font-size:12px;cursor:pointer;display:grid;place-items:center;transition:.15s}
.w3dEdCloseBtn:hover{background:var(--rd2);color:var(--rd);border-color:var(--rd)}
.w3dEdTabs{display:flex;border-bottom:1px solid var(--bdr);background:var(--s);overflow-x:auto}
.w3dEdTabs::-webkit-scrollbar{display:none}
.w3dEdTab{flex:1;padding:8px 6px;border:none;background:transparent;border-bottom:2px solid transparent;font-size:10px;font-weight:700;color:var(--tx3);cursor:pointer;white-space:nowrap}
.w3dEdTab:hover{color:var(--tx)}
.w3dEdTab.on{color:var(--ac);border-bottom-color:var(--ac)}
.w3dEdBody{flex:1;overflow-y:auto;padding:14px}
.w3dEdSec{/* tab section */}
.w3dEdFoot{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--bdr);background:var(--bg)}
.w3dColorRow{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.w3dColorPre{width:28px;height:28px;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:.12s}
.w3dColorPre:hover{border-color:var(--ac);transform:scale(1.1)}
.w3dEdWkCard{padding:8px;border:1px solid var(--bdr);border-radius:var(--rm);margin-bottom:6px;background:var(--bg)}

/* ── Mobile responsiveness ── */
@media(max-width:760px){
    .w3dChat{right:0;width:100%;max-width:100vw;top:auto;bottom:0;border-radius:14px 14px 0 0;max-height:60vh}
    .w3dChatBody{max-height:40vh}
    .w3dEditor{width:100%;max-width:100vw;right:-100vw}
    .w3dEditor.open{right:0}
}

/* Voice Recording Sidebar */
.voRecSidebar{position:absolute;right:0;top:0;bottom:0;width:220px;background:var(--s);border-left:1px solid var(--bdr);display:flex;flex-direction:column;z-index:10;font-size:11px;padding-top:50px;transform:translateX(100%);transition:transform .25s ease}
.voRecSidebar.open{transform:translateX(0)}
.voRecItem{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;margin-bottom:3px;background:var(--bg);border:1px solid var(--bdr);font-size:10px}
.voRecItem .voRecPlay{background:none;border:none;font-size:14px;cursor:pointer;padding:2px}
.voRecItem .voRecDel{background:none;border:none;font-size:10px;cursor:pointer;color:var(--rd);padding:2px;margin-left:auto}
.voRecItem .voRecInfo{flex:1;min-width:0;overflow:hidden}
.voRecItem .voRecName{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.voRecItem .voRecMeta{font-size:8px;color:var(--tx3);font-family:var(--mono)}
.voRecRecording{animation:bk 1s infinite;color:var(--rd)!important}
@media(max-width:760px){.voRecSidebar{display:none!important}}

/* ── OB1 Connection Dot Blink ── */
@keyframes ob1blink{0%,100%{opacity:1;box-shadow:0 0 6px rgba(34,197,94,.6)}50%{opacity:.4;box-shadow:0 0 2px rgba(34,197,94,.2)}}

/* ── Logic Activity Panel ── */
.logicActivityPanel{position:fixed;bottom:0;left:200px;right:0;height:450px;z-index:299;background:rgba(10,10,20,.96);border-top:1px solid rgba(245,158,11,.15);backdrop-filter:blur(12px);display:flex;flex-direction:column;transition:height .3s ease}
.logicActivityPanel .lapHead{padding:6px 14px;display:flex;align-items:center;gap:8px;border-bottom:1px solid rgba(245,158,11,.1);flex:0 0 auto}
.logicActivityPanel .lapHead .lapTitle{font-size:10px;font-weight:900;color:#f59e0b;font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px}
.logicActivityPanel .lapHead .lapCount{font-size:8px;color:rgba(245,158,11,.5);font-family:var(--mono)}
.logicActivityPanel .lapStream{flex:1;overflow-y:auto;padding:4px 0;scroll-behavior:smooth}
.logicActivityPanel .lapStream::-webkit-scrollbar{width:4px}
.logicActivityPanel .lapStream::-webkit-scrollbar-thumb{background:rgba(245,158,11,.2);border-radius:2px}
.logicActivityPanel .lapEvt{display:flex;gap:8px;align-items:flex-start;padding:5px 14px;border-bottom:1px solid rgba(255,255,255,.02);transition:background .2s;font-family:var(--mono)}
.logicActivityPanel .lapEvt:hover{background:rgba(245,158,11,.04)}
.logicActivityPanel .lapEvt.lapNew{animation:lapFlash .6s ease-out}
@keyframes lapFlash{0%{background:rgba(245,158,11,.15)}100%{background:transparent}}
.logicActivityPanel .lapIco{font-size:12px;flex:0 0 18px;text-align:center;line-height:18px}
.logicActivityPanel .lapInfo{flex:1;min-width:0}
.logicActivityPanel .lapName{font-size:9px;font-weight:700;color:#f59e0b}
.logicActivityPanel .lapData{font-size:7px;color:rgba(255,255,255,.25);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}
.logicActivityPanel .lapTime{font-size:7px;color:rgba(245,158,11,.35);flex:0 0 auto;text-align:right;line-height:1.4}
.logicActivityPanel .lapFoot{padding:4px 14px;border-top:1px solid rgba(245,158,11,.1);display:flex;gap:4px;flex:0 0 auto}

/* Footer raised when activity panel is open */
.ft.ftRaised{bottom:450px!important}

@media(max-width:760px){
.logicActivityPanel{left:0;height:350px}
.ft.ftRaised{bottom:350px!important}
}

/* ── Sidebar Activity Row ── */
#sideActivityRow:hover{background:rgba(245,158,11,.06)}

/* ── VP3 Merchant Buttons in Post Actions ── */
.post-actions{display:flex;align-items:center;flex-wrap:wrap}
.vp3-merchant-btns{display:flex;align-items:center;gap:6px;margin-left:auto}
.vp3-merch-btn{cursor:pointer;opacity:.65;transition:opacity .15s,color .15s;display:flex;align-items:center;gap:4px;font-size:12px;color:var(--tx2)}
.vp3-merch-btn:hover{opacity:1;color:var(--ac)}
.vp3-merch-btn .action-icon{font-size:15px;width:auto;height:auto}
.vp3-merch-avatar-img{width:24px;height:24px;border-radius:50%;object-fit:cover;border:2px solid var(--bdr);transition:border-color .15s}
.vp3-merch-avatar:hover .vp3-merch-avatar-img{border-color:var(--ac)}
.vp3-merch-avatar{text-decoration:none}

/* ═══ DDRM Flow Builder ═══ */
.ddrm-wrap{display:flex;gap:0;height:100%;min-height:0}
.ddrm-left{width:220px;flex:0 0 220px;border-right:1px solid var(--bdr);overflow-y:auto;background:var(--s);padding:10px}
.ddrm-center{flex:1;overflow-y:auto;padding:14px;min-width:0}
.ddrm-right{width:240px;flex:0 0 240px;border-left:1px solid var(--bdr);overflow-y:auto;background:var(--s);padding:10px}
.ddrm-tool{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--bdr);border-radius:var(--r);background:var(--bg);cursor:grab;margin-bottom:6px;transition:.15s}
.ddrm-tool:hover{border-color:var(--ac);background:var(--ac2)}
.ddrm-tool .dt-ico{font-size:16px;flex:0 0 24px;text-align:center}
.ddrm-tool .dt-info{flex:1;min-width:0}
.ddrm-tool .dt-name{font-size:9px;font-weight:900;text-transform:uppercase}
.ddrm-tool .dt-desc{font-size:7px;color:var(--tx3)}
.ddrm-node{position:relative;padding:12px 14px;border:2px solid var(--bdr);border-radius:var(--rm);background:var(--s);margin-bottom:8px;transition:.15s}
.ddrm-node:hover{border-color:var(--ac)}
.ddrm-node.active{border-color:var(--ac);box-shadow:0 0 0 3px var(--ac2)}
.ddrm-node .dn-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.ddrm-node .dn-ico{font-size:18px}
.ddrm-node .dn-title{font-size:10px;font-weight:900;font-family:var(--hd);text-transform:uppercase}
.ddrm-node .dn-sub{font-size:8px;color:var(--tx3)}
.ddrm-node .dn-badge{font-size:7px;padding:2px 6px;border-radius:999px;font-weight:800;font-family:var(--mono)}
.ddrm-connector{text-align:center;color:var(--bdr);font-size:16px;line-height:1;margin:2px 0}
.ddrm-add-node{display:flex;align-items:center;justify-content:center;padding:10px;border:2px dashed var(--bdr);border-radius:var(--rm);color:var(--tx3);font-size:10px;font-weight:700;cursor:pointer;margin-bottom:8px;transition:.15s}
.ddrm-add-node:hover{border-color:var(--ac);color:var(--ac);background:var(--ac2)}
.ddrm-card{padding:10px 12px;border:1px solid var(--bdr);border-radius:var(--r);background:var(--bg);margin-bottom:8px}
.ddrm-card .dc-head{font-size:9px;font-weight:900;text-transform:uppercase;color:var(--tx3);margin-bottom:6px}
.ddrm-stat{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--bdr);font-size:9px}
.ddrm-stat:last-child{border-bottom:none}
.ddrm-stat .ds-label{color:var(--tx3)}
.ddrm-stat .ds-val{font-weight:900;font-family:var(--mono)}
.ddrm-empty{text-align:center;padding:60px 20px}
.ddrm-empty .de-ico{font-size:48px;margin-bottom:10px}
.ddrm-empty .de-title{font-size:14px;font-weight:900;font-family:var(--hd);text-transform:uppercase;margin-bottom:4px}
.ddrm-empty .de-sub{font-size:10px;color:var(--tx3);max-width:400px;margin:0 auto}
@media(max-width:767px){
  .ddrm-left,.ddrm-right{display:none}
  .ddrm-center{padding:10px}
  #fbRightSidebar{display:none!important}
}

/* Mobile: hide Enter Store (no 3D on mobile), show avatar icon */
@media(max-width:767px){
  .vp3-enter-store-btn{display:none!important}
  .vp3-merch-avatar{display:flex!important}
}
/* Desktop: hide avatar icon, show text buttons */
@media(min-width:768px){
  .vp3-merch-avatar{display:none!important}
}
/* VP3 Branded Profile — hides Sngine chrome, expands content full-width */
.vp3-branded-profile{max-width:100%!important;padding-left:0!important;padding-right:0!important;margin-top:0!important}
.vp3-branded-profile .sg-offcanvas-mainbar{max-width:100%;flex:0 0 100%}
.vp3-branded-profile .profile-header{border-radius:0}
.vp3-branded-profile .profile-cover-wrapper{border-radius:0}
