/* ============================================================
   ROOT DESIGN TOKENS
   ============================================================ */
:root {
  --bg:#f5f7fa; --panel:#ffffff; --panel2:#f0f4f8;
  --border:#e2e8f0; --border2:#cbd5e1;
  --accent:#0062ff; --accent2:#0040cc;
  --green:#10b981; --red:#ef4444; --orange:#f59e0b; --yellow:#eab308;
  --text:#0f172a; --text2:#334155; --text3:#64748b;
  --hp:#0055b3; --ioc:#cc0000; --bpcl:#ff6600; --essar:#6600cc;
  --radius:8px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;overflow:hidden;}
body{background:var(--bg);color:var(--text);font-family:'Barlow',sans-serif;cursor:default;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}
@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes slideDown{from{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes scanline{0%{top:-2px}100%{top:100%}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes teThink{0%,100%{opacity:0.3}50%{opacity:1}}
@keyframes ringFill{from{stroke-dashoffset:201}to{stroke-dashoffset:var(--target-offset)}}

/* ============================================================
   SETUP OVERLAY
   ============================================================ */
#setup-overlay{position:fixed;inset:0;background:rgba(3,6,13,0.97);display:flex;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(12px);}
.setup-box{background:var(--panel);border:1px solid var(--border2);border-radius:12px;padding:36px;width:480px;max-width:94vw;animation:slideUp 0.4s ease;}
.setup-logo{display:flex;align-items:center;gap:12px;margin-bottom:24px;}
.setup-logo-icon{width:42px;height:42px;background:linear-gradient(135deg,#00d4ff22,#00d4ff44);border:1px solid var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px;}
.setup-title{font-family:'Rajdhani',sans-serif;font-size:22px;font-weight:700;}
.setup-title span{color:var(--accent);}
.setup-subtitle{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text3);letter-spacing:0.15em;}
.setup-section{margin-bottom:20px;}
.setup-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text2);letter-spacing:0.15em;margin-bottom:8px;display:block;}
.setup-input,.setup-select{width:100%;background:var(--panel2);border:1px solid var(--border2);border-radius:var(--radius);padding:10px 12px;color:var(--text);font-size:13px;font-family:'Barlow',sans-serif;outline:none;transition:border-color 0.15s;}
.setup-input:focus,.setup-select:focus{border-color:var(--accent);}
.setup-select option{background:var(--panel);}
.setup-hint{font-size:11px;color:var(--text3);margin-top:6px;line-height:1.5;}
.setup-hint a{color:var(--accent);}
.setup-error{color:var(--red);font-size:12px;margin-top:8px;display:none;}
.setup-btn{width:100%;padding:12px;background:var(--accent);border:none;border-radius:var(--radius);color:#000;font-family:'Rajdhani',sans-serif;font-weight:700;font-size:15px;letter-spacing:0.08em;cursor:pointer;transition:background 0.15s;margin-top:8px;}
.setup-btn:hover{background:#00eeff;}
.setup-demo{width:100%;padding:10px;background:transparent;border:1px solid var(--border2);border-radius:var(--radius);color:var(--text2);font-family:'Rajdhani',sans-serif;font-weight:600;font-size:13px;letter-spacing:0.06em;cursor:pointer;margin-top:8px;transition:all 0.15s;}
.setup-demo:hover{border-color:var(--accent);color:var(--accent);}
.setup-divider{display:flex;align-items:center;gap:10px;margin:12px 0;}
.setup-divider::before,.setup-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.setup-divider span{font-size:10px;color:var(--text3);font-family:'JetBrains Mono',monospace;}

/* ============================================================
   LOADING + NOTIFICATION
   ============================================================ */
#loading-screen{position:fixed;inset:0;background:var(--bg);z-index:5000;flex-direction:column;align-items:center;justify-content:center;gap:16px;display:none;}
.loading-icon{font-size:32px;animation:spin 2s linear infinite;}
#loading-msg,.loading-msg{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--accent);letter-spacing:0.1em;}
.loading-dots{display:flex;gap:6px;}
.loading-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:dotpulse 1.2s infinite;}
.loading-dot:nth-child(2){animation-delay:0.2s;}.loading-dot:nth-child(3){animation-delay:0.4s;}
@keyframes dotpulse{0%,80%,100%{opacity:0.2}40%{opacity:1}}
#notification{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--panel);border:1px solid var(--green);border-radius:var(--radius);padding:10px 20px;font-size:13px;color:var(--green);z-index:4000;transition:opacity 0.3s;display:none;white-space:nowrap;}

/* ============================================================
   TOPBAR
   ============================================================ */
#topbar{position:fixed;top:0;left:0;right:0;height:44px;background:rgba(255,255,255,0.97);border-bottom:1px solid var(--border);display:flex;align-items:center;z-index:1000;backdrop-filter:blur(12px);}
.logo{padding:0 16px;display:flex;align-items:center;gap:10px;border-right:1px solid var(--border);height:100%;min-width:200px;cursor:pointer;}
.logo-icon{width:28px;height:28px;background:linear-gradient(135deg,#0062ff11,#0062ff22);border:1px solid var(--accent);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;}
.logo-text{font-family:'Rajdhani',sans-serif;font-weight:700;font-size:17px;letter-spacing:0.06em;}
.logo-text span{color:var(--accent);}
.logo-sub{font-family:'JetBrains Mono',monospace;font-size:8px;color:var(--text3);letter-spacing:0.15em;}
.topbar-stats{display:flex;align-items:center;padding:0 8px;gap:0;}
.stat-chip{padding:0 12px;height:44px;display:flex;align-items:center;gap:8px;border-right:1px solid var(--border);font-family:'JetBrains Mono',monospace;font-size:11px;}
.stat-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.stat-dot.green{background:var(--green);box-shadow:0 0 6px var(--green);animation:pulse 2s infinite;}
.stat-dot.red{background:var(--red);box-shadow:0 0 6px var(--red);animation:pulse 1.5s infinite;}
.stat-dot.orange{background:var(--orange);}
.stat-dot.blue{background:var(--accent);}
.stat-dot.purple{background:#a070ff;box-shadow:0 0 6px #a070ff;animation:pulse 2s infinite;}
.stat-val{color:var(--accent);font-weight:700;}
.stat-lbl{color:var(--text3);font-size:9px;}
.topbar-search{flex:1;padding:0 12px;border-right:1px solid var(--border);}
#search-input{width:100%;background:transparent;border:none;outline:none;color:var(--text);font-size:13px;font-family:'Barlow',sans-serif;}
#search-input::placeholder{color:var(--text3);}
.topbar-right{padding:0 14px;display:flex;align-items:center;gap:12px;border-left:1px solid var(--border);font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text2);}
#clock{color:var(--accent);font-weight:700;font-size:12px;}
#city-label{font-size:10px;color:var(--text3);}
.settings-btn{padding:4px 10px;border:1px solid var(--border2);border-radius:3px;cursor:pointer;font-size:12px;background:transparent;color:var(--text2);transition:all 0.15s;}
.settings-btn:hover{border-color:var(--accent);color:var(--accent);}

/* ============================================================
   LAYER BAR
   ============================================================ */
#layerbar{position:fixed;top:44px;left:0;right:0;height:36px;background:rgba(245,247,250,0.95);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 12px;gap:4px;z-index:999;overflow-x:auto;}
.layer-btn{padding:4px 12px;border-radius:3px;cursor:pointer;font-family:'JetBrains Mono',monospace;font-size:10px;border:1px solid var(--border2);background:var(--panel);color:var(--text2);letter-spacing:0.08em;transition:all 0.15s;white-space:nowrap;}
.layer-btn.active{border-color:var(--accent);background:rgba(0,98,255,0.08);color:var(--accent);font-weight:700;}
.layer-btn:hover{border-color:var(--accent2);color:var(--text);}
.layer-sep{width:1px;height:20px;background:var(--border);margin:0 4px;flex-shrink:0;}
.layer-btn.agent{border-color:#8e44ad44;color:#8e44ad;}
.layer-btn.agent.active{border-color:#a070ff;background:rgba(160,112,255,0.1);color:#a070ff;}

/* ============================================================
   LEFT PANEL / MASTER LIST VIEW
   ============================================================ */
#left-panel{position:fixed;top:80px;left:0;right:0;bottom:0;background:var(--bg);display:flex;flex-direction:column;z-index:100;overflow:hidden;transition:all 0.4s ease;}
.panel-header{padding:10px 14px;border-bottom:1px solid var(--border);background:var(--panel);font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text3);letter-spacing:0.15em;display:flex;align-items:center;justify-content:space-between;}
.panel-header span{color:var(--accent);}
.search-box{padding:10px 14px;border-bottom:1px solid var(--border);background:var(--panel);}
.filter-row{padding:8px 14px;display:flex;gap:4px;border-bottom:1px solid var(--border);background:var(--panel);overflow-x:auto;flex-shrink:0;}
.fpill{padding:3px 10px;border-radius:2px;cursor:pointer;white-space:nowrap;font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:0.08em;border:1px solid var(--border2);background:var(--panel);color:var(--text2);transition:all 0.15s;}
.fpill.active{border-color:var(--accent);background:rgba(0,98,255,0.08);color:var(--accent);font-weight:700;}
#pump-list{flex:1;overflow-y:auto;padding:12px;display:grid;grid-template-columns:repeat(auto-fill, minmax(320px, 1fr));gap:12px;background:var(--bg);align-content:start;}
.pump-item{padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--panel);cursor:pointer;transition:all 0.2s;box-shadow:0 2px 10px rgba(0,0,0,0.02);}
.pump-item:hover,.pump-item.active{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.06);border-color:var(--border2);}
.pump-item.active{border:2px solid var(--accent);}
.pi-top{display:flex;justify-content:space-between;align-items:flex-start;}
.pi-brand{font-family:'JetBrains Mono',monospace;font-size:8px;letter-spacing:0.12em;font-weight:700;padding:1px 5px;border-radius:2px;display:inline-block;margin-bottom:2px;}
.pi-name{font-family:'Rajdhani',sans-serif;font-weight:600;font-size:13px;line-height:1.2;}
.pi-addr{font-size:10px;color:var(--text3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;}
.pi-dist{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text2);flex-shrink:0;}
.pi-badges{display:flex;gap:3px;margin-top:5px;flex-wrap:wrap;}
.pi-badge{font-family:'JetBrains Mono',monospace;font-size:8px;padding:1px 5px;border-radius:1px;letter-spacing:0.04em;}
.pi-badge.ok{background:rgba(0,255,136,0.08);color:var(--green);border:1px solid rgba(0,255,136,0.2);}
.pi-badge.no{background:rgba(255,58,58,0.08);color:var(--red);border:1px solid rgba(255,58,58,0.2);}
.pi-bar{height:2px;background:var(--border);border-radius:1px;margin-top:6px;}
.pi-bar-fill{height:100%;border-radius:1px;transition:width 0.8s;}
.pi-meta{display:flex;justify-content:space-between;margin-top:6px;font-size:10px;color:var(--text3);}
.pi-status{font-weight:600;}
.pi-status.ok{color:var(--green);}
.pi-status.no{color:var(--red);}
.pi-status.busy{color:var(--orange);}
/* Trust badge on pump list item */
.pi-trust-badge{font-family:'JetBrains Mono',monospace;font-size:8px;padding:1px 5px;border-radius:2px;border:1px solid #a070ff44;color:#a070ff;display:inline-block;}
.pi-trust-badge.high{border-color:rgba(0,255,136,0.3);color:var(--green);}
.pi-trust-badge.medium{border-color:rgba(255,215,0,0.3);color:var(--yellow);}
.pi-trust-badge.low{border-color:rgba(255,58,58,0.3);color:var(--red);}

/* Price Board */
#price-board{border-top:1px solid var(--border);flex-shrink:0;background:var(--panel);}
.pb-header{padding:8px 14px;display:flex;justify-content:space-between;align-items:center;font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text3);letter-spacing:0.12em;background:rgba(0,98,255,0.03);border-bottom:1px solid var(--border);}
.pb-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);}
.pb-item{background:var(--panel);padding:8px 14px;}
.pb-label{font-family:'JetBrains Mono',monospace;font-size:8px;color:var(--text3);letter-spacing:0.1em;margin-bottom:2px;}
.pb-val{font-family:'Rajdhani',sans-serif;font-size:18px;font-weight:700;color:var(--accent);}
.pb-sub{font-size:9px;color:var(--text3);}
.pb-footer{padding:5px 14px;font-family:'JetBrains Mono',monospace;font-size:8px;color:var(--text3);border-top:1px solid var(--border);}

/* ============================================================
   MAP CONTAINER (HIDDEN BY DEFAULT)
   ============================================================ */
#map-container{position:fixed;top:80px;left:0;right:0;bottom:0;background:#e5e7eb;overflow:hidden;display:none;z-index:1000;}
#google-map{width:100%;height:100%;}
#map-controls{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:8px;z-index:10;}
.map-ctrl{width:40px;height:40px;background:rgba(255,255,255,0.92);border:1px solid var(--border2);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:20px;color:var(--text2);transition:all 0.15s;box-shadow:0 4px 12px rgba(0,0,0,0.1);}
.map-ctrl:hover{border-color:var(--accent);color:var(--accent);transform:scale(1.05);}
.btn-back-to-list{position:absolute;top:12px;left:12px;background:var(--panel);color:var(--text);border:1px solid var(--border2);padding:10px 16px;border-radius:8px;font-family:'Rajdhani',sans-serif;font-weight:700;font-size:14px;cursor:pointer;z-index:10;box-shadow:0 4px 12px rgba(0,0,0,0.1);display:flex;align-items:center;gap:8px;}
.btn-back-to-list:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
#official-banner{position:absolute;top:10px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,0.96);border:1px solid rgba(0,255,136,0.5);border-radius:8px;padding:12px 20px;max-width:440px;width:90%;text-align:center;z-index:500;backdrop-filter:blur(8px);animation:slideDown 0.5s ease;box-shadow:0 10px 30px rgba(0,0,0,0.05);}
.ob-label{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;color:var(--green);letter-spacing:0.15em;margin-bottom:4px;}
.ob-msg{font-size:13px;font-weight:500;color:var(--text);line-height:1.4;}
.ob-src{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text3);margin-top:6px;}
#conflict-banner{position:absolute;top:90px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,0.96);border:1px solid rgba(255,140,0,0.6);border-radius:8px;padding:12px 20px;max-width:380px;width:88%;text-align:center;z-index:500;backdrop-filter:blur(8px);display:none;box-shadow:0 10px 30px rgba(0,0,0,0.1);}
.cb-label{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;color:var(--orange);letter-spacing:0.15em;margin-bottom:4px;}
.cb-msg{font-size:12px;font-weight:500;color:var(--text);}
.demo-banner{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,0.96);border:1px solid rgba(255,140,0,0.5);border-radius:8px;padding:12px 20px;max-width:440px;width:90%;text-align:center;z-index:500;backdrop-filter:blur(8px);box-shadow:0 10px 30px rgba(0,0,0,0.1);}
.demo-banner span{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:var(--orange);}
.demo-banner button{margin-left:10px;padding:5px 12px;font-size:11px;background:var(--accent);border:none;border-radius:4px;color:#fff;cursor:pointer;font-family:'Rajdhani',sans-serif;font-weight:700;}
#route-bar{position:absolute;bottom:0;left:0;right:0;height:64px;background:rgba(255,255,255,0.97);border-top:1px solid var(--border2);display:none;align-items:center;padding:0 24px;gap:20px;z-index:200;backdrop-filter:blur(12px);box-shadow:0 -5px 30px rgba(0,0,0,0.05);}
.rb-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text3);letter-spacing:0.12em;}
.rb-val{font-family:'Rajdhani',sans-serif;font-size:20px;font-weight:700;color:var(--accent);}
.rb-unit{font-size:11px;color:var(--text3);margin-left:2px;}
.rb-sep{width:1px;height:30px;background:var(--border);}
.rb-btn{padding:7px 16px;border-radius:3px;cursor:pointer;font-family:'Rajdhani',sans-serif;font-weight:700;font-size:12px;letter-spacing:0.08em;background:var(--accent);border:none;color:#000;}
.rb-btn.cancel{background:transparent;border:1px solid var(--border2);color:var(--text3);}
#scanline{position:fixed;top:0;left:0;right:0;height:2px;background:linear-gradient(transparent,rgba(0,212,255,0.06),transparent);z-index:9999;pointer-events:none;animation:scanline 6s linear infinite;opacity:0.4;}

/* ============================================================
   RIGHT PANEL — REDESIGNED WITH TRUST ENGINE
   ============================================================ */
#right-panel{position:fixed;top:80px;right:0;width:340px;bottom:0;background:var(--panel);border-left:1px solid var(--border);display:flex;flex-direction:column;z-index:100;overflow:hidden;}

/* Station Intel (top) */
#detail-card{padding:12px 14px;border-bottom:1px solid var(--border);flex-shrink:0;}
.dc-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;}
.dc-name{font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:700;line-height:1.2;}
.dc-addr{font-size:10px;color:var(--text3);margin-top:2px;line-height:1.4;}
.dc-dist{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--accent);flex-shrink:0;}
.dc-metrics{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:4px;margin:8px 0;}
.dc-metric{background:var(--panel2);border:1px solid var(--border);border-radius:4px;padding:6px 8px;}
.dc-metric-val{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:700;}
.dc-metric-lbl{font-size:8px;color:var(--text3);letter-spacing:0.06em;margin-top:1px;}
.dc-stock{display:flex;gap:4px;margin:8px 0;}
.dc-stock-item{flex:1;background:var(--panel2);border-radius:4px;padding:6px 4px;text-align:center;border:1px solid var(--border);cursor:pointer;transition:border-color 0.15s;}
.dc-stock-item.ok{border-color:rgba(0,255,136,0.25);background:rgba(0,255,136,0.04);}
.dc-stock-item.no{border-color:rgba(255,58,58,0.25);background:rgba(255,58,58,0.04);}
.dc-stock-icon{font-size:14px;}
.dc-stock-label{font-family:'JetBrains Mono',monospace;font-size:8px;color:var(--text3);margin-top:2px;}
.dc-stock-status{font-size:9px;font-weight:700;margin-top:2px;}
.dc-stock-status.ok{color:var(--green);}
.dc-stock-status.no{color:var(--red);}
.dc-btns{display:flex;gap:5px;}
.dc-btn{flex:1;padding:8px;border-radius:4px;cursor:pointer;font-family:'Rajdhani',sans-serif;font-weight:700;font-size:12px;letter-spacing:0.06em;border:none;transition:all 0.15s;}
.dc-btn.primary{background:var(--accent);color:#000;}
.dc-btn.primary:hover{background:#00eeff;}
.dc-btn.secondary{background:var(--panel2);border:1px solid var(--border2);color:var(--text2);}
.dc-btn.secondary:hover{border-color:var(--accent);color:var(--accent);}

/* ============================================================
   TRUST ENGINE PANEL — THE CORE ADDITION
   ============================================================ */
#trust-engine{border-top:1px solid var(--border2);flex-shrink:0;background:rgba(160,112,255,0.02);}
.te-header{padding:8px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);}
.te-title{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.15em;color:#a070ff;display:flex;align-items:center;gap:6px;}
.te-title-dot{width:6px;height:6px;border-radius:50%;background:#a070ff;box-shadow:0 0 8px #a070ff;animation:pulse 2s infinite;}
.te-badge{font-family:'JetBrains Mono',monospace;font-size:9px;padding:2px 8px;border-radius:2px;border:1px solid var(--border2);color:var(--text3);}
.te-badge.online{border-color:#a070ff44;color:#a070ff;background:rgba(160,112,255,0.08);}
.te-badge.thinking{border-color:#ffd70044;color:var(--yellow);animation:teThink 0.8s infinite;}
.te-badge.aligned{border-color:rgba(0,255,136,0.3);color:var(--green);}
.te-badge.diverging{border-color:rgba(255,140,0,0.3);color:var(--orange);}
.te-badge.critical{border-color:rgba(255,58,58,0.3);color:var(--red);}

/* Two-Layer Comparison */
.te-layers{display:grid;grid-template-columns:1fr auto 1fr;gap:0;border-bottom:1px solid var(--border);}
.te-layer{padding:10px 12px;}
.te-layer-tag{font-family:'JetBrains Mono',monospace;font-size:8px;letter-spacing:0.12em;margin-bottom:5px;display:flex;align-items:center;gap:4px;}
.te-layer-tag.official{color:var(--green);}
.te-layer-tag.crowd{color:var(--accent);}
.te-layer-text{font-size:11px;color:var(--text);line-height:1.4;}
.te-layer-src{font-family:'JetBrains Mono',monospace;font-size:8px;color:var(--text3);margin-top:4px;}
.te-vs{display:flex;align-items:center;justify-content:center;padding:0 8px;border-left:1px solid var(--border);border-right:1px solid var(--border);}
.te-vs-icon{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text3);}

/* Analysis Row */
.te-analysis{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);}
.te-score-wrap{position:relative;width:66px;height:66px;flex-shrink:0;}
.te-score-svg{width:66px;height:66px;}
.te-score-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.te-score-num{font-family:'Rajdhani',sans-serif;font-size:22px;font-weight:700;color:var(--accent);line-height:1;}
.te-score-sub{font-family:'JetBrains Mono',monospace;font-size:7px;color:var(--text3);letter-spacing:0.1em;}
.te-analysis-text{flex:1;min-width:0;}
.te-conflict-badge{font-family:'JetBrains Mono',monospace;font-size:8px;padding:2px 8px;border-radius:2px;display:inline-block;margin-bottom:6px;}
.te-conflict-badge.aligned{background:rgba(0,255,136,0.08);color:var(--green);border:1px solid rgba(0,255,136,0.2);}
.te-conflict-badge.minor{background:rgba(255,215,0,0.08);color:var(--yellow);border:1px solid rgba(255,215,0,0.2);}
.te-conflict-badge.major{background:rgba(255,140,0,0.08);color:var(--orange);border:1px solid rgba(255,140,0,0.2);}
.te-conflict-badge.critical{background:rgba(255,58,58,0.08);color:var(--red);border:1px solid rgba(255,58,58,0.2);}
.te-conflict-badge.standby{background:rgba(90,122,154,0.08);color:var(--text3);border:1px solid var(--border2);}
.te-headline{font-size:12px;color:var(--text);line-height:1.4;margin-bottom:4px;}
.te-rec{font-size:10px;color:var(--text2);line-height:1.4;}
.te-insight{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text3);padding:6px 12px;border-bottom:1px solid var(--border);line-height:1.4;}

/* Panic Index */
.te-panic-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);}
.te-panic-lbl{font-family:'JetBrains Mono',monospace;font-size:8px;color:var(--text3);letter-spacing:0.1em;white-space:nowrap;min-width:80px;}
.te-panic-track{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden;}
.te-panic-fill{height:100%;border-radius:2px;transition:width 1s ease,background 1s ease;width:0%;}
.te-panic-num{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text2);white-space:nowrap;}
.te-confidence{font-family:'JetBrains Mono',monospace;font-size:8px;padding:1px 6px;border-radius:2px;border:1px solid var(--border2);color:var(--text3);}

/* Ask FuelIndia Chat */
.te-chat-section{flex-shrink:0;border-top:1px solid var(--border);}
.te-chat-header{padding:6px 12px;font-family:'JetBrains Mono',monospace;font-size:8px;color:var(--text3);letter-spacing:0.12em;display:flex;align-items:center;gap:6px;}
.te-chat-header-dot{width:5px;height:5px;border-radius:50%;background:#a070ff;}
.te-input-row{display:flex;gap:0;border-top:1px solid var(--border);}
#te-ask-input{flex:1;background:var(--panel2);border:none;border-right:1px solid var(--border);padding:8px 12px;color:var(--text);font-size:11px;font-family:'Barlow',sans-serif;outline:none;}
#te-ask-input::placeholder{color:var(--text3);}
#te-ask-btn{padding:8px 12px;background:rgba(160,112,255,0.15);border:none;color:#a070ff;font-family:'JetBrains Mono',monospace;font-size:10px;cursor:pointer;transition:all 0.15s;white-space:nowrap;}
#te-ask-btn:hover{background:rgba(160,112,255,0.3);}
#te-ask-btn:disabled{opacity:0.4;cursor:default;}
#te-response-area{padding:10px 12px;max-height:120px;overflow-y:auto;display:none;}
.te-response-bubble{background:rgba(160,112,255,0.06);border:1px solid rgba(160,112,255,0.15);border-radius:4px;padding:8px 10px;font-size:11px;color:var(--text);line-height:1.5;}
.te-thinking{font-family:'JetBrains Mono',monospace;font-size:10px;color:#a070ff;animation:teThink 0.8s infinite;padding:6px 0;}

/* Intel Feed */
.intel-header{padding:8px 14px;border-bottom:1px solid var(--border);font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text3);letter-spacing:0.15em;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;}
.intel-header span{color:var(--accent);}
#intel-feed{flex:1;overflow-y:auto;}
.intel-item{padding:10px 14px;border-bottom:1px solid var(--border);}
.intel-item.official .ii-tag{color:var(--green);}
.intel-item.crowd .ii-tag{color:var(--accent);}
.intel-item.conflict .ii-tag{color:var(--orange);}
.intel-item.agent .ii-tag{color:#a070ff;}
.ii-tag{font-family:'JetBrains Mono',monospace;font-size:8px;letter-spacing:0.1em;margin-bottom:4px;}
.ii-msg{font-size:11px;color:var(--text);line-height:1.4;}
.ii-meta{font-family:'JetBrains Mono',monospace;font-size:8px;color:var(--text3);margin-top:3px;}
.empty-state{padding:24px;text-align:center;color:var(--text3);font-size:12px;line-height:1.6;}
.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin 0.8s linear infinite;}
.corner-tl,.corner-br{width:6px;height:6px;border-color:var(--accent);border-style:solid;position:absolute;opacity:0.5;}
.corner-tl{top:4px;left:4px;border-width:1px 0 0 1px;}
.corner-br{bottom:4px;right:4px;border-width:0 1px 1px 0;}

/* ============================================================
   REPORT MODAL
   ============================================================ */
#report-modal{display:none;position:fixed;inset:0;background:rgba(3,6,13,0.9);z-index:2000;align-items:center;justify-content:center;backdrop-filter:blur(8px);}
.modal-box{background:var(--panel);border:1px solid var(--border2);border-radius:10px;padding:28px;width:380px;max-width:94vw;animation:slideUp 0.3s ease;}
.modal-title{font-family:'Rajdhani',sans-serif;font-size:18px;font-weight:700;margin-bottom:4px;}
.modal-sub{font-size:11px;color:var(--text3);margin-bottom:20px;}
.modal-section{margin-bottom:16px;}
.modal-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text2);letter-spacing:0.12em;margin-bottom:8px;}
.modal-options{display:flex;gap:8px;flex-wrap:wrap;}
.modal-opt{padding:8px 14px;border:1px solid var(--border2);border-radius:4px;cursor:pointer;font-size:12px;transition:all 0.15s;}
.modal-opt:hover,.modal-opt.selected-yes{border-color:var(--green);background:rgba(0,255,136,0.08);color:var(--green);}
.modal-opt.selected-no{border-color:var(--red);background:rgba(255,58,58,0.08);color:var(--red);}
.modal-opt.selected-q{border-color:var(--accent);background:rgba(0,212,255,0.08);color:var(--accent);}
.modal-btns{display:flex;gap:10px;margin-top:20px;}
.modal-btn{flex:1;padding:11px;border-radius:4px;cursor:pointer;font-family:'Rajdhani',sans-serif;font-weight:700;font-size:14px;letter-spacing:0.06em;border:none;transition:all 0.15s;}
.modal-btn.sub{background:var(--accent);color:#000;}
.modal-btn.sub:disabled{background:var(--border2);color:var(--text3);cursor:default;}
.modal-btn.cxl{background:transparent;border:1px solid var(--border2);color:var(--text3);}

/* ============================================================
   FAB (FLOATING ACTION BUTTON) & COLLAPSIBLE MODULES
   ============================================================ */
.fab-btn{position:fixed;bottom:30px;right:30px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#00d4ff,#0055b3);color:#fff;border:none;box-shadow:0 8px 24px rgba(0,212,255,0.4);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:900;transition:all 0.2s;padding:0;}
.fab-btn:hover{transform:scale(1.05) translateY(-2px);box-shadow:0 12px 28px rgba(0,212,255,0.5);}
.fab-icon{font-size:24px;line-height:0;padding-bottom:4px;}
@keyframes fadeOutDelay { 0%, 80% {opacity:1} 100% {opacity:0; display:none;} }
.fab-tooltip{position:absolute;right:70px;background:rgba(3,6,13,0.9);color:#00d4ff;padding:6px 12px;border-radius:6px;font-family:'JetBrains Mono',monospace;font-size:10px;white-space:nowrap;font-weight:700;border:1px solid rgba(0,212,255,0.3);pointer-events:none;animation: fadeOutDelay 6s forwards;}

#price-board.collapsed .pb-grid, #price-board.collapsed .pb-footer { display:none; }
#price-board.collapsed .pb-header::after { content:' ▲ Tap to expand'; color:var(--accent); cursor:pointer; font-weight:700;}

/* ============================================================
   MOBILE RESPONSIVENESS (PHONES)
   ============================================================ */
@media (max-width: 768px) {
  #topbar { padding: 8px 10px; flex-wrap: wrap; height: auto; gap: 8px; justify-content: space-between; }
  .logo { flex: 0 0 auto; padding: 0; min-width: 0; border: none; margin: 0; }
  .logo-icon { width: 26px; height: 26px; font-size: 12px; border-radius: 5px; }
  .logo-text { font-size: 16px; }
  .logo-sub { font-size: 7px; letter-spacing: 0.05em; }
  .topbar-stats { display: none; }
  .topbar-right { flex: 0 0 auto; padding: 0; border: none; gap: 8px; margin: 0; }
  #city-label { display: none; }
  #clock { font-size: 11px; }
  .settings-btn { padding: 6px 10px; font-size: 10px; border-radius: 4px; }
  .topbar-search { flex: 1 1 100%; padding: 0; border: none; margin: 0; order: 3; display: flex; gap: 6px; align-items: center; }
  #layerbar { display: none; }
  #left-panel { top: 96px; }
  #left-panel .panel-header { font-size: 12px; padding: 8px 12px; }
  #pump-list { padding: 8px; }
  .pump-item > div:nth-child(2) { grid-template-columns: repeat(2, 1fr) !important; }
  #map-container .btn-back-to-list { top: 106px; left: 10px; font-size: 12px; padding: 8px 12px; }
}

/* ============================================================
   TRUST-FIRST PRICING HIERARCHY
   ============================================================ */
.price-official { font-family: 'Rajdhani', sans-serif; font-size: 18px; font-weight: 700; color: var(--text); display: flex; align-items: center; gap: 4px; }
.price-official span { font-size: 12px; color: var(--text3); font-weight: 600; }
.price-owner-match { font-family: 'JetBrains Mono', monospace; font-size: 10px; background: rgba(0,255,136,0.1); color: var(--green); padding: 3px 8px; border-radius: 4px; display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; }
.price-crowd-warn { font-family: 'JetBrains Mono', monospace; font-size: 10px; background: rgba(255,152,0,0.1); color: var(--orange); padding: 3px 8px; border-radius: 4px; display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; }

/* ============================================================
   ASK AI — FLOATING BUTTON + MODAL
   ============================================================ */

/* Floating draggable button */
#ask-ai-fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 2000;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 11px 18px;
  background: linear-gradient(135deg, #6a30ff, #a070ff);
  border: none;
  border-radius: 50px;
  color: #fff;
  font-family: 'Rajdhani', sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.06em;
  cursor: grab;
  box-shadow: 0 4px 20px rgba(160,112,255,0.5);
  transition: box-shadow 0.15s;
  white-space: nowrap;
  user-select: none;
  touch-action: none;
}
#ask-ai-fab:hover { box-shadow: 0 8px 28px rgba(160,112,255,0.65); }
#ask-ai-fab.dragging { cursor: grabbing; box-shadow: 0 12px 36px rgba(160,112,255,0.7); transform: scale(1.04); }

/* On mobile, show shorter label */
@media (max-width: 480px) {
  #ask-ai-fab-label { display: none; }
  #ask-ai-fab { padding: 12px 14px; }
}
/* On desktop, shift left of right panel */
@media (min-width: 769px) {
  #ask-ai-fab { right: 360px; }
}

/* Modal overlay */
#ask-modal {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(3,6,13,0.92);
  z-index: 3000;
  align-items: flex-end;
  justify-content: center;
  backdrop-filter: blur(8px);
}
#ask-modal.open { display: flex; }

/* Modal box — slides up from bottom */
#ask-modal-box {
  width: 100%;
  max-width: 600px;
  background: var(--panel);
  border: 1px solid rgba(160,112,255,0.3);
  border-bottom: none;
  border-radius: 16px 16px 0 0;
  display: flex;
  flex-direction: column;
  max-height: 85vh;
  animation: slideUpModal 0.25s ease;
}
@keyframes slideUpModal {
  from { transform: translateY(40px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

/* On desktop, show as centered card instead */
@media (min-width: 769px) {
  #ask-modal { align-items: center; }
  #ask-modal-box {
    border-radius: 12px;
    border: 1px solid rgba(160,112,255,0.3);
    max-height: 70vh;
    margin-bottom: 0;
  }
}

#ask-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px 12px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}

#ask-modal-context-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 20px;
  background: rgba(160,112,255,0.05);
  border-bottom: 1px solid var(--border);
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  color: var(--text3);
  letter-spacing: 0.06em;
  flex-shrink: 0;
  flex-wrap: wrap;
}

#ask-modal-suggestions {
  display: flex;
  gap: 6px;
  padding: 10px 16px;
  overflow-x: auto;
  flex-shrink: 0;
  border-bottom: 1px solid var(--border);
  scrollbar-width: none;
}
#ask-modal-suggestions::-webkit-scrollbar { display: none; }

.ask-suggestion {
  flex-shrink: 0;
  padding: 6px 12px;
  background: rgba(160,112,255,0.08);
  border: 1px solid rgba(160,112,255,0.2);
  border-radius: 20px;
  color: #c0a0ff;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s;
}
.ask-suggestion:hover {
  background: rgba(160,112,255,0.18);
  border-color: rgba(160,112,255,0.5);
  color: #fff;
}

/* Message thread */
#ask-modal-messages {
  flex: 1;
  overflow-y: auto;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 80px;
}

.ask-msg-user {
  align-self: flex-end;
  background: rgba(160,112,255,0.15);
  border: 1px solid rgba(160,112,255,0.25);
  border-radius: 12px 12px 2px 12px;
  padding: 8px 12px;
  font-size: 13px;
  color: var(--text);
  max-width: 85%;
  line-height: 1.5;
}

.ask-msg-ai {
  align-self: flex-start;
  background: rgba(0,212,255,0.05);
  border: 1px solid rgba(0,212,255,0.12);
  border-radius: 2px 12px 12px 12px;
  padding: 10px 14px;
  font-size: 13px;
  color: var(--text);
  max-width: 90%;
  line-height: 1.6;
}

.ask-msg-ai .ask-msg-meta {
  font-family: 'JetBrains Mono', monospace;
  font-size: 8px;
  color: var(--text3);
  margin-top: 6px;
  letter-spacing: 0.06em;
}

.ask-msg-thinking {
  align-self: flex-start;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  color: #a070ff;
  padding: 6px 0;
  animation: pulse 1.2s infinite;
}

/* Input row */
#ask-modal-input-row {
  display: flex;
  gap: 0;
  border-top: 1px solid var(--border);
  flex-shrink: 0;
}

#ask-modal-input {
  flex: 1;
  background: var(--panel2);
  border: none;
  padding: 14px 16px;
  color: var(--text);
  font-size: 13px;
  font-family: 'Barlow', sans-serif;
  outline: none;
  border-radius: 0 0 0 12px;
}
#ask-modal-input::placeholder { color: var(--text3); }

#ask-modal-send {
  padding: 14px 20px;
  background: linear-gradient(135deg, #6a30ff, #a070ff);
  border: none;
  color: #fff;
  font-family: 'Rajdhani', sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: filter 0.15s;
  border-radius: 0 0 12px 0;
}
#ask-modal-send:hover { filter: brightness(1.1); }
#ask-modal-send:disabled { opacity: 0.5; cursor: default; }

@media (min-width: 769px) {
  #ask-modal-input { border-radius: 0; }
  #ask-modal-send  { border-radius: 0 0 12px 0; }
}

/* ── MOBILE MENU ─────────────────────────────────────────────────────────── */
#topbar-auth-desktop { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
#mobile-menu-btn { display: none; }

@media (max-width: 768px) {
  #topbar-auth-desktop { display: none !important; }
  #mobile-menu-btn { display: block !important; }
  #top-install-btn { display: none !important; }
}
