:root{
  /* Foundation */
  --ink:#05080f;--surface:#0a0f1e;--card:#101828;--card-2:#131d2e;
  --border:rgba(255,255,255,.07);--border-accent:rgba(240,120,48,.18);
  /* Accent */
  --accent:#f07030;--accent2:#ff9848;--accent3:#ffb870;--gold:#f07030;
  --cyan:#00c8ff;--cyan2:#00eeff;--cyan-dim:rgba(0,200,255,.12);
  /* Text */
  --text:#f0ede8;--text-2:#c8c4bc;--muted:#7a8aa8;--dim:#141e32;
  /* Semantic */
  --green:#6dc496;--red:#d45f50;--orange:#f07030;--blue:#00c8ff;
  /* Glow */
  --glow-r:rgba(240,112,48,.3);--glow-g:rgba(0,200,255,.18);
  /* Spacing scale */
  --sp-xs:4px;--sp-sm:8px;--sp-md:14px;--sp-lg:20px;--sp-xl:28px;
  /* Radius */
  --r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:18px;
  /* Transitions */
  --ease-out:cubic-bezier(0.22,1,0.36,1);
  --ease-in-out:cubic-bezier(0.45,0,0.55,1);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden;background:#05091a}
body{font-family:'DM Sans',sans-serif;color:var(--text)}

/* starfield canvas sits behind everything */

.app{position:fixed;inset:0;max-width:430px;margin:0 auto;background:var(--ink);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 120px rgba(2,6,20,.95),0 0 40px rgba(240,112,48,.06),inset 0 0 80px rgba(5,9,26,.9)}

/* ══ SCREENS ══ */
.screen{position:absolute;inset:0;bottom:76px;display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .32s var(--ease-out),transform .32s var(--ease-out);transform:translateY(8px) scale(0.992);overflow:hidden;z-index:1;will-change:opacity,transform}
.screen.active{opacity:1;pointer-events:all;transform:none}
.scroll-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px}
.scroll-body::-webkit-scrollbar{width:1px}
.scroll-body::-webkit-scrollbar-thumb{background:rgba(240,112,48,.25);border-radius:2px}

/* ══ HEADER ══ */
.hdr{padding:48px 20px 14px;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.055);position:relative;overflow:hidden}
.hdr::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(240,112,48,.6),rgba(0,200,255,.4),transparent)}
.hdr-eyebrow{font-family:'Space Mono',monospace;font-size:.48rem;letter-spacing:.32em;text-transform:uppercase;color:var(--accent);margin-bottom:3px;display:flex;align-items:center;gap:6px}
.hdr-eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);animation:hblink 1.4s ease-in-out infinite}
@keyframes hblink{0%,100%{opacity:1}50%{opacity:.15}}
.hdr-title{font-family:'Bebas Neue',sans-serif;font-size:2.1rem;letter-spacing:.1em;color:var(--text);line-height:1}
.hdr-sub{font-size:.65rem;font-weight:300;color:var(--muted);margin-top:4px;letter-spacing:.03em;line-height:1.5}

/* ══ NAV ══ */
.nav-bar{position:absolute;bottom:0;left:0;right:0;height:76px;background:rgba(5,8,18,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.06);border-top-left-radius:0;border-top-right-radius:0;display:flex;align-items:center;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -1px 40px rgba(0,0,0,.5)0,112,48,.12);display:flex;align-items:center;justify-content:space-around;padding:0 8px 12px;z-index:50;backdrop-filter:blur(12px)}
.nbtn{flex:1;height:52px;border:none;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:all .18s;position:relative;border-radius:10px}
.nbtn svg{width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:all .2s}
.nbtn-lbl{font-size:.48rem;font-weight:400;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;transition:color .25s var(--ease-out);margin-top:2px}
.nbtn.active{background:transparent}
.nbtn.active svg{stroke:var(--accent)}
.nbtn.active .nbtn-lbl{color:var(--accent)}
.nbtn.active::after{content:'';position:absolute;bottom:0;left:25%;right:25%;height:2px;background:linear-gradient(90deg,var(--accent),var(--cyan));border-radius:2px 2px 0 0}

/* ══ VOICE SCREEN ══ */
.orb-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 20px 0;gap:14px}
.orb-wrap{position:relative;width:300px;height:300px;display:flex;align-items:center;justify-content:center}
/* orb rings removed — clean gold orb */
.orb{width:240px;height:240px;border-radius:50%;background:transparent;border:none;cursor:pointer;position:relative;z-index:2;display:flex;align-items:center;justify-content:center;overflow:visible}
/* orb::after removed — no fake highlight */
.orb.listening{}
.orb.thinking{}
.orb.speaking{}
.stat-area{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:52px;text-align:center}
.slbl{font-family:'Space Mono',monospace;font-size:.5rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}
.stxt{font-family:'DM Sans',sans-serif;font-weight:300;font-size:1rem;color:var(--text);line-height:1.45;min-height:20px}
.stxt.listening{color:var(--accent2);font-style:italic}
.stxt.speaking{font-style:italic;color:var(--cyan2)}
.stxt.err{color:var(--red);font-size:.82rem}
.live-t{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--cyan);opacity:.75;min-height:14px;letter-spacing:.04em}
.clog{flex:1;overflow-y:auto;padding:4px 14px 6px;display:flex;flex-direction:column;gap:8px}
.clog::-webkit-scrollbar{width:2px}
.clog::-webkit-scrollbar-thumb{background:rgba(0,200,255,.15);border-radius:2px}
.bubble{max-width:90%;padding:9px 13px;border-radius:12px;font-size:.88rem;line-height:1.5}
.bubble.user{align-self:flex-end;background:rgba(240,112,48,.08);color:var(--text);border:1px solid rgba(240,112,48,.25);border-radius:12px 12px 3px 12px;font-style:italic}
.bubble.aura{align-self:flex-start;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:12px 12px 12px 3px}
.blbl{font-family:'Space Mono',monospace;font-size:.5rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cyan);display:block;margin-bottom:4px}
.cempty{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.8;padding:0 24px;font-weight:200;color:var(--muted);font-size:.9rem}

/* ══ VOICE CONTROLS ══ */
.ctrl-row{display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 14px 6px;flex-shrink:0}
.cbtn{display:flex;align-items:center;gap:5px;padding:8px 14px;border-radius:6px;border:none;cursor:pointer;font-family:'Space Mono',monospace;font-size:.6rem;font-weight:400;letter-spacing:.1em;transition:all .18s;text-transform:uppercase}
.cbtn svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.cbtn.primary{background:linear-gradient(135deg,#f07030,#ff9848);color:#0a0f1a;font-weight:700}
.cbtn.secondary{background:var(--card);color:var(--muted);border:1px solid var(--border)}
.cbtn.active-btn{background:rgba(240,112,48,.15)!important;color:var(--gold)!important;border:1px solid rgba(240,112,48,.5)!important;animation:bpulse 1.6s ease-in-out infinite}
@keyframes bpulse{0%,100%{box-shadow:0 0 0 0 rgba(240,112,48,.4)}50%{box-shadow:0 0 0 8px rgba(240,112,48,0)}}

/* ══ VOICE BAR ══ */
.voice-bar{position:absolute;bottom:76px;left:0;right:0;height:50px;display:flex;align-items:center;gap:7px;padding:0 10px;z-index:49;background:rgba(5,9,24,.96);border-top:1px solid rgba(240,112,48,.1);backdrop-filter:blur(10px)}
.vb-orb{width:32px;height:32px;border-radius:50%;border:1px solid rgba(240,112,48,.3);cursor:pointer;flex-shrink:0;background:radial-gradient(circle at 38% 32%,#1a1a0a 0%,#0a0f1a 40%,#050912 100%);display:flex;align-items:center;justify-content:center;transition:all .2s;position:relative}
.vb-orb.listening{border-color:var(--gold);box-shadow:0 0 12px rgba(240,112,48,.5);animation:vbol .8s ease-in-out infinite}
.vb-orb.thinking{border-color:var(--accent2);box-shadow:0 0 12px rgba(0,212,170,.4)}
.vb-orb.speaking{border-color:var(--accent3);box-shadow:0 0 12px rgba(244,162,97,.5);animation:vbos .6s ease-in-out infinite}
@keyframes vbol{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
@keyframes vbos{0%,100%{transform:scale(1.02)}50%{transform:scale(1.1)}}
.vb-orb svg{width:12px;height:12px;stroke:var(--gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vb-pulse-ring{position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(240,112,48,.5);opacity:0}
.vb-orb.listening .vb-pulse-ring{animation:vbring .9s ease-out infinite}
@keyframes vbring{0%{opacity:.6;transform:scale(1)}100%{opacity:0;transform:scale(1.8)}}
.vb-input{flex:1;padding:7px 10px;background:var(--card);border:1px solid var(--border);border-radius:6px;font-family:'DM Sans',sans-serif;font-size:.84rem;color:var(--text);outline:none;min-width:0}
.vb-input:focus{border-color:rgba(240,112,48,.35);background:#0d1628}
.vb-input::placeholder{color:var(--muted)}
.vb-send{width:30px;height:30px;border-radius:6px;border:none;background:var(--gold);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.vb-send svg{width:12px;height:12px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.vb-live{position:absolute;bottom:0;left:52px;right:52px;font-family:'Space Mono',monospace;font-size:.52rem;color:var(--gold);text-align:center;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .2s}
.vb-live.show{opacity:.9}

/* ══ STAT CARDS ══ */
.metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 14px}
.metric-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:10px 12px;position:relative;overflow:hidden;cursor:pointer;transition:all .18s}
.metric-card:hover{border-color:rgba(240,112,48,.3);transform:translateY(-1px)}
.metric-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.metric-card.red::before{background:var(--gold)}
.metric-card.green::before{background:var(--green)}
.metric-card.orange::before{background:var(--orange)}
.metric-card.blue::before{background:var(--blue)}
.metric-val{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;letter-spacing:.04em;line-height:1;margin-bottom:2px}
.metric-val.red{color:var(--accent)}
.metric-val.green{color:var(--green)}
.metric-val.orange{color:var(--orange)}
.metric-val.blue{color:var(--blue)}
.metric-lbl{font-size:.6rem;font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.metric-sub{font-size:.62rem;color:var(--muted);margin-top:4px;font-family:'Space Mono',monospace}

/* ══ SECTION HEADERS ══ */
.sec-hdr{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 6px}
.sec-hdr-title{font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:6px}
.sec-hdr-title::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--gold)}
.sec-hdr-action{font-size:.62rem;color:var(--muted);cursor:pointer;font-family:'Space Mono',monospace;letter-spacing:.05em}
.sec-hdr-action:hover{color:var(--gold)}

/* ══ DATA ROWS ══ */
.data-row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer;transition:background .14s}
.data-row:hover{background:rgba(255,255,255,.02)}
.data-row-icon{width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.85rem}
.data-row-icon.red{background:rgba(230,57,70,.12);border:1px solid rgba(0,200,255,.15)}
.data-row-icon.green{background:rgba(0,212,170,.1);border:1px solid rgba(0,212,170,.18)}
.data-row-icon.orange{background:rgba(244,162,97,.1);border:1px solid rgba(244,162,97,.18)}
.data-row-icon.blue{background:rgba(76,201,240,.1);border:1px solid rgba(76,201,240,.18)}
.data-row-main{flex:1;min-width:0}
.data-row-title{font-size:.83rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.data-row-sub{font-size:.67rem;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:'Space Mono',monospace}
.data-row-right{text-align:right;flex-shrink:0}
.data-row-val{font-family:'Space Mono',monospace;font-size:.75rem;font-weight:700}
.data-row-tag{display:inline-block;padding:2px 7px;border-radius:4px;font-size:.58rem;font-weight:400;letter-spacing:.06em;font-family:'Space Mono',monospace;text-transform:uppercase}
.tag-red{background:rgba(230,57,70,.15);color:var(--accent);border:1px solid rgba(230,57,70,.25)}
.tag-green{background:rgba(0,212,170,.1);color:var(--green);border:1px solid rgba(0,212,170,.2)}
.tag-orange{background:rgba(244,162,97,.1);color:var(--orange);border:1px solid rgba(244,162,97,.2)}
.tag-blue{background:rgba(76,201,240,.1);color:var(--blue);border:1px solid rgba(76,201,240,.2)}
.tag-dim{background:rgba(255,255,255,.05);color:var(--muted);border:1px solid var(--border)}

/* ══ SEARCH BAR ══ */
.srch-bar{display:flex;align-items:center;gap:8px;margin:0 14px 10px;background:var(--card);border:1px solid var(--border);border-radius:6px;padding:7px 12px}
.srch-bar svg{width:13px;height:13px;stroke:var(--muted);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.srch-bar input{flex:1;border:none;background:transparent;font-family:'DM Sans',sans-serif;font-size:.84rem;color:var(--text);outline:none}
.srch-bar input::placeholder{color:var(--muted)}

/* ══ SHOP INVENTORY ══ */
.pal-toolbar{display:flex;gap:6px;padding:8px 14px;overflow-x:auto;flex-shrink:0}
.pal-toolbar::-webkit-scrollbar{display:none}
.pal-filter-btn{padding:5px 11px;border-radius:4px;border:1px solid var(--border);background:transparent;font-family:'Space Mono',monospace;font-size:.57rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);cursor:pointer;white-space:nowrap;transition:all .15s}
.pal-filter-btn.active{border-color:var(--accent);background:rgba(230,57,70,.1);color:var(--accent)}
.pal-location-card{background:var(--card);border:1px solid var(--border);border-radius:8px;margin:0 14px 7px;padding:11px 13px;cursor:pointer;transition:all .18s;position:relative;overflow:hidden}
.pal-location-card:hover{border-color:rgba(230,57,70,.25);transform:translateX(2px)}
.pal-location-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}
.pal-location-card.green::before{background:var(--green)}
.pal-location-card.orange::before{background:var(--orange)}
.pal-location-card.blue::before{background:var(--blue)}
.plc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.plc-name{font-family:'Space Mono',monospace;font-size:.75rem;color:var(--text);font-weight:700;letter-spacing:.04em}
.plc-upc{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted)}
.plc-coords{display:flex;gap:12px}
.plc-coord{text-align:center}
.plc-coord-val{font-family:'Bebas Neue',sans-serif;font-size:1.3rem;color:var(--accent);letter-spacing:.06em}
.plc-coord.green .plc-coord-val{color:var(--green)}
.plc-coord.orange .plc-coord-val{color:var(--orange)}
.plc-coord.blue .plc-coord-val{color:var(--blue)}
.plc-coord-lbl{font-size:.53rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-family:'Space Mono',monospace}
.plc-meta{display:flex;gap:5px;margin-top:6px;flex-wrap:wrap}

/* ══ FLOOR PERFORMANCE ══ */
.realogram-shelf{background:var(--card);border:1px solid var(--border);border-radius:8px;margin:0 14px 8px;overflow:hidden}
.shelf-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:rgba(255,255,255,.03);border-bottom:1px solid var(--border)}
.shelf-label{font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.shelf-scan-time{font-size:.6rem;color:var(--muted);font-family:'Space Mono',monospace}
.shelf-visual{padding:10px 12px;display:flex;gap:3px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.shelf-visual::-webkit-scrollbar{height:2px}
.shelf-visual::-webkit-scrollbar-thumb{background:var(--accent);border-radius:1px}
.facing{min-width:48px;height:64px;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;transition:all .16s;flex-shrink:0;position:relative;border:1px solid rgba(255,255,255,.08)}
.facing:hover{transform:scaleY(1.06);border-color:rgba(230,57,70,.4)}
.facing.par-sale{background:rgba(0,212,170,.12)}
.facing.subpar{background:rgba(76,201,240,.1)}
.facing.onwatch{background:rgba(244,162,97,.12)}
.facing.bad{background:rgba(230,57,70,.12)}
.facing.new{background:rgba(255,255,255,.06)}
.facing.discontinue{background:repeating-linear-gradient(45deg,rgba(230,57,70,.08) 0,rgba(230,57,70,.08) 2px,transparent 2px,transparent 8px)}
.facing-price{font-family:'Bebas Neue',sans-serif;font-size:.88rem;color:var(--text);letter-spacing:.04em}
.facing-upc{font-family:'Space Mono',monospace;font-size:.42rem;color:var(--muted);text-align:center}
.shelf-footer{display:flex;gap:14px;padding:8px 12px;border-top:1px solid var(--border)}
.shelf-stat{text-align:center}
.shelf-stat-val{font-family:'Space Mono',monospace;font-size:.7rem;font-weight:700;color:var(--text)}
.shelf-stat-lbl{font-size:.56rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.legend-row{display:flex;gap:8px;padding:0 14px 10px;flex-wrap:wrap}
.legend-item{display:flex;align-items:center;gap:4px;font-size:.57rem;color:var(--muted);font-family:'Space Mono',monospace;letter-spacing:.05em}
.legend-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}

/* ══ PICKING ══ */
.pick-card{background:var(--card);border:1px solid var(--border);border-radius:8px;margin:0 14px 7px;padding:11px 13px;cursor:pointer;transition:all .18s}
.pick-card:hover{border-color:rgba(0,212,170,.25);transform:translateX(2px)}
.pick-num{font-family:'Bebas Neue',sans-serif;font-size:2rem;color:var(--accent);letter-spacing:.06em;line-height:1;float:right;margin-left:10px}
.pick-product{font-size:.85rem;font-weight:400;color:var(--text);margin-bottom:3px}
.pick-loc{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--green);letter-spacing:.08em;margin-bottom:5px}
.pick-tags{display:flex;gap:4px;flex-wrap:wrap}
.pick-complete{opacity:.4}
.pick-complete .pick-product{text-decoration:line-through;color:var(--muted)}
.pick-complete .pick-num{color:var(--muted)}

/* ══ ANALYTICS ══ */
.analytics-kpi{background:var(--card);border:1px solid var(--border);border-radius:8px;margin:0 14px 8px;padding:13px}
.kpi-title{font-family:'Space Mono',monospace;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.kpi-row{display:flex;justify-content:space-between;gap:8px}
.kpi-item{flex:1;text-align:center}
.kpi-val{font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:.06em}
.kpi-lbl{font-size:.58rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:1px}
.bar-chart{padding:0 14px;margin-bottom:10px}
.bar-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.bar-label{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);width:80px;flex-shrink:0;text-align:right}
.bar-track{flex:1;height:18px;background:rgba(255,255,255,.04);border-radius:3px;overflow:hidden;position:relative}
.bar-fill{height:100%;border-radius:3px;display:flex;align-items:center;justify-content:flex-end;padding-right:6px;transition:width 1s cubic-bezier(.22,.68,0,1.2);position:relative}
.bar-fill-val{font-family:'Space Mono',monospace;font-size:.6rem;color:#fff;font-weight:700;white-space:nowrap}
.bar-fill.green{background:linear-gradient(90deg,rgba(0,212,170,.6),rgba(0,212,170,.9))}
.bar-fill.orange{background:linear-gradient(90deg,rgba(244,162,97,.6),rgba(244,162,97,.9))}
.bar-fill.red{background:linear-gradient(90deg,rgba(230,57,70,.6),rgba(230,57,70,.9))}
.bar-fill.blue{background:linear-gradient(90deg,rgba(76,201,240,.6),rgba(76,201,240,.9))}

/* ══ STORES ══ */
.store-card{background:var(--card);border:1px solid var(--border);border-radius:8px;margin:0 14px 7px;padding:11px 13px;cursor:pointer;transition:all .18s;display:flex;align-items:center;gap:10px}
.store-card:hover{border-color:rgba(76,201,240,.25)}
.store-ic{width:36px;height:36px;border-radius:6px;background:rgba(76,201,240,.1);border:1px solid rgba(76,201,240,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.store-ic svg{width:16px;height:16px;stroke:var(--blue);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.store-main{flex:1;min-width:0}
.store-name{font-size:.85rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.store-meta{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);margin-top:2px}
.store-status{display:flex;align-items:center;gap:4px}
.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.status-dot.live{background:var(--green);box-shadow:0 0 4px rgba(0,212,170,.6);animation:sdot 2s ease-in-out infinite}
.status-dot.sync{background:var(--orange)}
@keyframes sdot{0%,100%{opacity:1}50%{opacity:.3}}
.store-status-lbl{font-size:.6rem;color:var(--muted);font-family:'Space Mono',monospace}

/* ══ PIN GATE ══ */
.pin-gate{position:fixed;inset:0;z-index:500;background:rgba(5,8,20,.98);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center}
.pin-gate.hide{display:none}
.pin-back{position:absolute;top:52px;left:22px;background:none;border:none;color:var(--muted);font-family:'Space Mono',monospace;font-size:.62rem;cursor:pointer;display:flex;align-items:center;gap:5px;letter-spacing:.06em;text-transform:uppercase}
.pin-back svg{width:12px;height:12px;stroke:var(--muted);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pin-logo{font-family:'Bebas Neue',sans-serif;font-size:2.2rem;letter-spacing:.12em;color:var(--text);margin-bottom:2px}
.pin-sub{font-family:'Space Mono',monospace;font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:28px}
.pin-dots{display:flex;gap:14px;margin-bottom:26px}
.pin-dot{width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.2);transition:all .2s}
.pin-dot.filled{background:var(--gold);border-color:var(--gold);box-shadow:0 0 10px rgba(240,112,48,.6)}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:210px}
.pin-key{height:52px;border-radius:6px;background:var(--card);border:1px solid var(--border);color:rgba(255,255,255,.82);font-family:'Space Mono',monospace;font-size:1.1rem;cursor:pointer;transition:all .14s;letter-spacing:.04em}
.pin-key:active{background:rgba(240,112,48,.12);border-color:var(--gold);transform:scale(.95)}
.pin-key.del{font-size:.7rem}
.pin-key.zero{grid-column:2}
.pin-err{color:var(--accent);font-family:'Space Mono',monospace;font-size:.68rem;margin-top:14px;min-height:18px;letter-spacing:.08em}

/* ══ MODAL ══ */
.modal-overlay{position:fixed;inset:0;background:rgba(5,8,16,.85);z-index:200;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(4px)}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal{background:var(--surface);border:1px solid rgba(240,112,48,.1);border-top:1px solid rgba(240,112,48,.3);border-radius:16px 16px 0 0;padding:18px 18px 50px;width:100%;max-width:430px;transform:translateY(100%);transition:transform .32s cubic-bezier(.32,.72,0,1);max-height:88vh;overflow-y:auto}
.modal-overlay.open .modal{transform:none}
.modal-handle{width:28px;height:3px;border-radius:2px;background:var(--dim);margin:0 auto 16px}
.modal-title{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:.1em;color:var(--text);margin-bottom:14px}

/* ══ DRAWER ══ */
.drawer{position:fixed;bottom:0;left:50%;transform:translateX(-50%) translateY(100%);width:100%;max-width:430px;background:var(--surface);border-top:1px solid rgba(240,112,48,.25);border-radius:16px 16px 0 0;padding:18px 20px 90px;transition:transform .33s cubic-bezier(.32,.72,0,1);max-height:55vh;overflow-y:auto;z-index:60}
.drawer.open{transform:translateX(-50%) translateY(0)}
.d-handle{width:26px;height:3px;border-radius:2px;background:var(--dim);margin:0 auto 14px}
.d-tag{font-family:'Space Mono',monospace;font-size:.52rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.d-you{font-style:italic;font-size:.88rem;color:var(--muted);margin-bottom:12px;padding:8px 10px;background:rgba(240,112,48,.05);border-radius:6px;border-left:2px solid var(--gold);line-height:1.5}
.d-div{height:1px;background:var(--border);margin-bottom:10px}
.d-resp{font-size:.9rem;color:var(--text);line-height:1.7;font-weight:300}
.d-close{position:absolute;top:14px;right:18px;background:none;border:none;color:var(--muted);font-size:1.3rem;cursor:pointer;font-family:'Space Mono',monospace}
.dots{display:inline-flex;gap:4px;align-items:center}
.dot{width:5px;height:5px;border-radius:50%;background:var(--gold);animation:db 1.2s ease-in-out infinite}
.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}
@keyframes db{0%,60%,100%{transform:translateY(0);opacity:.3}30%{transform:translateY(-6px);opacity:1}}

/* ══ TOAST ══ */
.toast{position:fixed;top:16px;left:50%;transform:translateX(-50%) translateY(-70px);background:var(--card);border:1px solid rgba(240,112,48,.2);color:var(--text);padding:8px 16px;border-radius:6px;font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:.06em;z-index:400;transition:transform .26s;white-space:nowrap;max-width:calc(100% - 28px);text-align:center}
.toast.show{transform:translateX(-50%) translateY(0)}
.toast.ok{border-color:rgba(126,200,160,.4);color:var(--green)}
.toast.err{border-color:rgba(212,97,74,.4);color:var(--red)}

/* ══ HISTORY ══ */
.hist-layout{display:flex;height:100%;overflow:hidden}
.hist-sidebar{width:200px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--border);height:100%;overflow:hidden}
.hist-sidebar-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 8px;border-bottom:1px solid var(--border);flex-shrink:0}
.hist-sidebar-title{font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.hist-new-btn{width:24px;height:24px;border-radius:4px;background:rgba(240,112,48,.08);border:1px solid rgba(240,112,48,.2);display:flex;align-items:center;justify-content:center;cursor:pointer}
.hist-new-btn svg{width:11px;height:11px;stroke:var(--gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hist-session-list{flex:1;overflow-y:auto;padding:4px 0}
.hist-session-list::-webkit-scrollbar{width:2px}
.hist-session-list::-webkit-scrollbar-thumb{background:rgba(0,200,255,.15);border-radius:2px}
.hist-day-label{font-family:'Space Mono',monospace;font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:8px 12px 3px}
.hist-session-item{padding:8px 12px;cursor:pointer;transition:background .14s;border-left:2px solid transparent;position:relative}
.hist-session-item:hover{background:rgba(255,255,255,.02)}
.hist-session-item.active{background:rgba(240,112,48,.06);border-left-color:var(--gold)}
.hist-session-q{font-size:.72rem;color:var(--text);font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist-session-time{font-family:'Space Mono',monospace;font-size:.56rem;color:var(--muted);margin-top:2px}
.hist-sidebar-footer{display:flex;gap:5px;padding:8px;border-top:1px solid var(--border);flex-shrink:0}
.hist-footer-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:3px;padding:6px 4px;background:var(--card);border:1px solid var(--border);border-radius:4px;font-family:'Space Mono',monospace;font-size:.52rem;color:var(--muted);cursor:pointer;text-transform:uppercase;letter-spacing:.06em;transition:all .15s}
.hist-footer-btn.danger{border-color:rgba(212,100,74,.25);color:var(--red)}
.hist-footer-btn svg{width:9px;height:9px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.hist-chat-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.hist-chat-hdr{padding:10px 14px 8px;border-bottom:1px solid var(--border);flex-shrink:0}
.hist-chat-title{font-size:.84rem;color:var(--text);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist-chat-meta{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--muted);margin-top:2px}
.hist-chat-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}
.hist-chat-body::-webkit-scrollbar{width:2px}
.hist-chat-body::-webkit-scrollbar-thumb{background:rgba(230,57,70,.15);border-radius:2px}
.hist-bubble{display:flex;gap:7px;max-width:92%}
.hist-bubble.user{align-self:flex-end;flex-direction:row-reverse}
.hist-bubble.aura{align-self:flex-start}
.hist-bubble-avatar{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.6rem;margin-top:2px}
.hist-bubble.aura .hist-bubble-avatar{background:linear-gradient(135deg,#f07030,#ff9848);color:#0a0f1a;font-family:'Bebas Neue',sans-serif;font-size:.7rem;letter-spacing:.04em}
.hist-bubble.user .hist-bubble-avatar{background:var(--card);border:1px solid var(--border)}
.hist-bubble.user .hist-bubble-avatar svg{width:10px;height:10px;stroke:var(--muted);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hist-bubble-content{display:flex;flex-direction:column;gap:2px}
.hist-bubble-text{padding:8px 11px;border-radius:10px;font-size:.8rem;line-height:1.55}
.hist-bubble.aura .hist-bubble-text{background:var(--card);border:1px solid rgba(240,112,48,.1);color:var(--text);border-bottom-left-radius:3px}
.hist-bubble.user .hist-bubble-text{background:rgba(240,112,48,.08);border:1px solid rgba(240,112,48,.18);color:var(--text);border-bottom-right-radius:3px;font-style:italic}
.hist-bubble-time{font-family:'Space Mono',monospace;font-size:.52rem;color:var(--muted)}
.hist-bubble.user .hist-bubble-time{text-align:right}
.hist-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:10px;opacity:.5}
.hist-empty-title{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:.1em;color:var(--text)}
.hist-empty-sub{font-size:.72rem;color:var(--muted);text-align:center;line-height:1.6;max-width:170px;font-family:'Space Mono',monospace}
.hist-session-del{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:3px;background:rgba(230,57,70,.1);border:none;display:none;align-items:center;justify-content:center;cursor:pointer}
.hist-session-item:hover .hist-session-del{display:flex}
.hist-session-del svg{width:8px;height:8px;stroke:var(--gold);fill:none;stroke-width:2;stroke-linecap:round}

/* ══ CSV IMPORT ══ */
.import-drop-zone{border:2px dashed rgba(240,112,48,.25);border-radius:10px;padding:28px 18px;text-align:center;cursor:pointer;transition:all .22s;background:rgba(240,112,48,.02);margin:0 14px 10px;position:relative}
.import-drop-zone:hover,.import-drop-zone.drag-over{border-color:var(--gold);background:rgba(240,112,48,.07)}
.import-drop-zone svg{width:32px;height:32px;stroke:var(--gold);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;margin-bottom:8px;opacity:.7}
.import-drop-title{font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:.1em;color:var(--text);margin-bottom:4px}
.import-drop-sub{font-size:.72rem;color:var(--muted);line-height:1.6}
.import-drop-formats{display:flex;gap:6px;justify-content:center;margin-top:10px;flex-wrap:wrap}
.import-format-tag{padding:3px 9px;border-radius:4px;font-family:'Space Mono',monospace;font-size:.58rem;background:rgba(76,201,240,.1);border:1px solid rgba(76,201,240,.2);color:var(--blue);letter-spacing:.06em}
.import-progress{background:var(--card);border:1px solid var(--border);border-radius:8px;margin:0 14px 10px;overflow:hidden}
.import-progress-bar-wrap{height:3px;background:rgba(255,255,255,.06)}
.import-progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--orange));transition:width .3s;width:0%}
.import-progress-info{padding:10px 12px;display:flex;align-items:center;justify-content:space-between}
.import-progress-lbl{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--text);letter-spacing:.06em}
.import-progress-sub{font-size:.62rem;color:var(--muted);font-family:'Space Mono',monospace}
.col-map-table{width:100%;border-collapse:collapse;margin-bottom:10px}
.col-map-table th{font-family:'Space Mono',monospace;font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:5px 8px;text-align:left;border-bottom:1px solid var(--border)}
.col-map-table td{padding:5px 8px;border-bottom:1px solid rgba(255,255,255,.03)}
.col-map-table td:first-child{font-family:'Space Mono',monospace;font-size:.65rem;color:var(--accent);font-weight:700}
.col-map-select{background:var(--ink);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:'Space Mono',monospace;font-size:.6rem;padding:3px 6px;outline:none;width:100%}
.col-map-select:focus{border-color:rgba(230,57,70,.4)}
.import-history-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer;transition:background .14s}
.import-history-item:hover{background:rgba(255,255,255,.02)}
.import-history-name{font-size:.78rem;color:var(--text);font-weight:300}
.import-history-meta{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--muted);margin-top:2px}
.import-history-badge{font-family:'Space Mono',monospace;font-size:.6rem;padding:2px 7px;border-radius:4px;background:rgba(0,212,170,.1);border:1px solid rgba(0,212,170,.2);color:var(--green)}
.import-active-banner{background:rgba(0,212,170,.06);border:1px solid rgba(0,212,170,.2);border-radius:8px;padding:10px 13px;margin:0 14px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.import-active-banner-info{flex:1;min-width:0}
.import-active-banner-lbl{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--green);letter-spacing:.06em;text-transform:uppercase}
.import-active-banner-file{font-size:.78rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.import-active-banner-clear{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--muted);cursor:pointer;background:none;border:1px solid var(--border);border-radius:4px;padding:4px 8px;flex-shrink:0}
.preview-table-wrap{overflow-x:auto;margin:0 14px 10px;border:1px solid var(--border);border-radius:8px}
.preview-table{width:100%;border-collapse:collapse;min-width:380px}
.preview-table th{font-family:'Space Mono',monospace;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 8px;text-align:left;background:rgba(255,255,255,.03);border-bottom:1px solid var(--border);white-space:nowrap}
.preview-table td{font-family:'Space Mono',monospace;font-size:.62rem;color:var(--text);padding:5px 8px;border-bottom:1px solid rgba(255,255,255,.03);white-space:nowrap}
.preview-table tr:last-child td{border-bottom:none}
.preview-table td.hl{color:var(--accent)}
/* ══ AISLE iQ CONNECT ══ */
.conn-card{background:var(--card);border:1px solid var(--border);border-radius:8px;margin:0 14px 7px;padding:12px 13px}
.conn-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.conn-title{font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text)}
.conn-status{display:flex;align-items:center;gap:5px;font-family:'Space Mono',monospace;font-size:.6rem}
.conn-status.live{color:var(--green)}
.conn-status.live .status-dot{background:var(--green);box-shadow:0 0 5px rgba(0,212,170,.6);animation:sdot 2s ease-in-out infinite}
.conn-desc{font-size:.74rem;color:var(--muted);line-height:1.6;margin-bottom:10px}
.fin{width:100%;padding:8px 10px;background:var(--ink);border:1px solid var(--border);border-radius:5px;font-family:'Space Mono',monospace;font-size:.72rem;color:var(--text);outline:none;margin-bottom:7px;letter-spacing:.04em}
.fin:focus{border-color:rgba(230,57,70,.4)}
.fin::placeholder{color:var(--muted)}
.flbl{font-family:'Space Mono',monospace;font-size:.54rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:4px}
.btn-primary{width:100%;padding:10px;background:linear-gradient(135deg,#f07030,#ff9848);color:#09111f;font-weight:600;border:none;border-radius:5px;font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;margin-top:4px}
.btn-secondary{padding:8px 14px;background:var(--card);border:1px solid var(--border);color:var(--muted);border-radius:5px;font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .15s}
.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}
.info-box{background:rgba(0,212,170,.05);border:1px solid rgba(0,212,170,.15);border-radius:6px;padding:10px 12px;font-size:.75rem;color:var(--muted);line-height:1.65;margin-bottom:9px}
.info-box strong{color:var(--green);font-weight:400}
.pricing-row{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--border)}
.pricing-row:last-child{border-bottom:none}
.pricing-row-lbl{font-size:.76rem;color:var(--muted)}
.pricing-row-a,.pricing-row-b{font-family:'Space Mono',monospace;font-size:.75rem;font-weight:700}
.pricing-row-a{color:var(--blue)}
.pricing-row-b{color:var(--green)}
.pricing-row.total .pricing-row-lbl{color:var(--text);font-weight:500}
.pricing-row.total .pricing-row-a,.pricing-row.total .pricing-row-b{font-size:.9rem}

/* ══ DYNAMIC FLOOR PLAN ══ */
.map-screen-wrap{flex:1;overflow:hidden;display:flex;flex-direction:column}
.map-toolbar{display:flex;gap:6px;padding:8px 14px;overflow-x:auto;flex-shrink:0;border-bottom:1px solid var(--border)}
.map-toolbar::-webkit-scrollbar{display:none}
.map-tool-btn{padding:5px 11px;border-radius:4px;border:1px solid var(--border);background:transparent;font-family:'Space Mono',monospace;font-size:.57rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0}
.map-tool-btn.active{border-color:var(--accent);background:rgba(230,57,70,.1);color:var(--accent)}
.map-tool-btn.green{border-color:rgba(0,212,170,.3);color:var(--green);background:rgba(0,212,170,.06)}
.map-canvas-wrap{flex:1;overflow:hidden;position:relative;background:#080c14;cursor:grab}
.map-canvas-wrap.panning{cursor:grabbing}
.map-canvas-wrap canvas{position:absolute;top:0;left:0}
.map-zoom-ctrl{position:absolute;bottom:12px;right:12px;display:flex;flex-direction:column;gap:4px;z-index:10}
.map-zoom-btn{width:32px;height:32px;border-radius:6px;background:rgba(10,14,20,.9);border:1px solid var(--border);color:var(--text);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.map-zoom-btn:hover{border-color:var(--accent);color:var(--accent)}
.map-legend{position:absolute;bottom:12px;left:12px;background:rgba(10,14,20,.92);border:1px solid var(--border);border-radius:6px;padding:8px 10px;z-index:10;backdrop-filter:blur(8px)}
.map-legend-item{display:flex;align-items:center;gap:5px;font-family:'Space Mono',monospace;font-size:.53rem;color:var(--muted);margin-bottom:3px;letter-spacing:.04em}
.map-legend-item:last-child{margin-bottom:0}
.map-legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.map-tooltip{position:absolute;background:rgba(6,11,28,.97);border:1px solid rgba(240,112,48,.35);border-radius:6px;padding:8px 11px;pointer-events:none;z-index:20;white-space:nowrap;backdrop-filter:blur(8px);transition:opacity .15s}
.map-tooltip-title{font-family:'Space Mono',monospace;font-size:.68rem;font-weight:700;color:var(--gold);letter-spacing:.06em;margin-bottom:2px}
.map-tooltip-body{font-size:.72rem;color:var(--text);line-height:1.5}
.map-tooltip-meta{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--muted);margin-top:3px}
.map-search-bar{display:flex;align-items:center;gap:8px;margin:8px 14px 0;background:var(--card);border:1px solid var(--border);border-radius:6px;padding:7px 12px;flex-shrink:0}
.map-search-bar svg{width:13px;height:13px;stroke:var(--muted);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.map-search-bar input{flex:1;border:none;background:transparent;font-family:'DM Sans',sans-serif;font-size:.84rem;color:var(--text);outline:none}
.map-search-bar input::placeholder{color:var(--muted)}
.map-result-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:4px;background:rgba(230,57,70,.12);border:1px solid rgba(230,57,70,.3);font-family:'Space Mono',monospace;font-size:.6rem;color:var(--accent);margin:4px 14px 0;cursor:pointer;max-width:calc(100% - 28px);overflow:hidden}
.map-info-panel{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(4,8,20,.97);border-top:1px solid rgba(240,112,48,.3);border-radius:8px 8px 0 0;padding:14px 14px 10px;z-index:20;backdrop-filter:blur(16px);display:none;overflow:hidden;display:none;flex-direction:column}
.map-info-panel.show{display:flex}
.atab{padding:4px 10px;border-radius:4px;border:1px solid rgba(240,112,48,.25);background:transparent;font-family:'Space Mono',monospace;font-size:.5rem;letter-spacing:.08em;color:var(--muted);cursor:pointer;white-space:nowrap;flex-shrink:0}
.atab.active{background:rgba(240,112,48,.15);border-color:var(--accent);color:var(--accent)}
.drill-section{border:1px solid rgba(240,112,48,.12);border-radius:6px;margin-bottom:6px;overflow:hidden}
.drill-section-hdr{display:flex;align-items:center;padding:8px 10px;background:rgba(240,112,48,.05);cursor:pointer;gap:8px}
.drill-section-hdr:active{background:rgba(240,112,48,.1)}
.drill-section-title{font-family:'Space Mono',monospace;font-size:.58rem;letter-spacing:.1em;color:var(--text);flex:1}
.drill-section-kpis{display:flex;gap:10px;font-family:'Space Mono',monospace;font-size:.5rem;color:var(--muted)}
.drill-section-kpis span{color:var(--accent)}
.drill-shelf{display:flex;align-items:center;padding:6px 12px;border-top:1px solid rgba(255,255,255,.04);cursor:pointer;gap:8px}
.drill-shelf:active{background:rgba(0,200,255,.06)}
.drill-shelf-name{font-family:'Space Mono',monospace;font-size:.54rem;color:var(--muted);width:60px;flex-shrink:0}
.drill-shelf-bar{flex:1;height:6px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden}
.drill-shelf-fill{height:100%;border-radius:3px;transition:width .4s}
.drill-shelf-val{font-family:'Space Mono',monospace;font-size:.52rem;color:var(--text);width:48px;text-align:right}
.drill-upc-row{display:flex;align-items:center;padding:5px 16px;border-top:1px solid rgba(255,255,255,.03);gap:8px;cursor:pointer}
.drill-upc-row:active{background:rgba(0,200,255,.05)}
.drill-upc-desc{font-size:.7rem;color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drill-upc-bars{display:flex;align-items:flex-end;gap:2px;height:18px}
.drill-upc-bar{width:6px;border-radius:1px 1px 0 0;min-height:2px}
.map-info-panel-title{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:.1em;color:var(--text);margin-bottom:4px}
.map-info-panel-close{position:absolute;top:8px;right:10px;background:none;border:none;color:var(--muted);font-size:1rem;cursor:pointer;font-family:'Space Mono',monospace}
.map-info-stats{display:flex;gap:14px;flex-wrap:wrap}
.map-info-stat{text-align:center}
.map-info-stat-val{font-family:'Space Mono',monospace;font-size:.75rem;font-weight:700;color:var(--green)}
.map-info-stat-lbl{font-size:.58rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}

/* ══ BARCODE SCANNER ══ */
.scan-overlay{position:fixed;inset:0;z-index:300;background:rgba(3,6,18,.96);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;backdrop-filter:blur(6px)}
.scan-overlay.open{opacity:1;pointer-events:all}
.scan-box{width:260px;position:relative;margin-bottom:24px}
.scan-viewfinder{width:260px;height:180px;border-radius:12px;overflow:hidden;background:#000;position:relative}
.scan-viewfinder video{width:100%;height:100%;object-fit:cover;display:block}
.scan-viewfinder canvas{position:absolute;inset:0;width:100%;height:100%}
.scan-corner{position:absolute;width:22px;height:22px;border-color:var(--gold);border-style:solid;opacity:.9}
.scan-corner.tl{top:8px;left:8px;border-width:2px 0 0 2px;border-radius:4px 0 0 0}
.scan-corner.tr{top:8px;right:8px;border-width:2px 2px 0 0;border-radius:0 4px 0 0}
.scan-corner.bl{bottom:8px;left:8px;border-width:0 0 2px 2px;border-radius:0 0 0 4px}
.scan-corner.br{bottom:8px;right:8px;border-width:0 2px 2px 0;border-radius:0 0 4px 0}
.scan-line{position:absolute;left:12px;right:12px;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);animation:scanline 2s ease-in-out infinite;top:50%}
@keyframes scanline{0%,100%{top:20%;opacity:.6}50%{top:78%;opacity:1}}
.scan-status{font-family:'Space Mono',monospace;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:8px}
.scan-status.active{color:var(--gold)}
.scan-status.found{color:var(--green)}
.scan-status.error{color:var(--red)}
.scan-manual{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:8px 12px;width:260px;margin-bottom:12px}
.scan-manual input{flex:1;border:none;background:transparent;font-family:'Space Mono',monospace;font-size:.85rem;color:var(--text);outline:none;letter-spacing:.06em}
.scan-manual input::placeholder{color:var(--muted);font-size:.72rem;letter-spacing:.04em;font-family:'DM Sans',sans-serif}
.scan-manual-btn{background:var(--gold);border:none;border-radius:5px;width:28px;height:28px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.scan-manual-btn svg{width:13px;height:13px;stroke:#09111f;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.scan-close{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);background:none;border:1px solid var(--border);border-radius:5px;padding:6px 18px;cursor:pointer;letter-spacing:.1em;text-transform:uppercase}
.scan-result-card{width:260px;background:var(--card);border:1px solid rgba(240,112,48,.3);border-radius:10px;padding:14px;margin-bottom:14px;display:none}
.scan-result-card.show{display:block}
.scan-result-upc{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--muted);letter-spacing:.1em;margin-bottom:2px}
.scan-result-name{font-size:1.05rem;color:var(--text);font-weight:500;margin-bottom:10px;line-height:1.3}
.scan-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.scan-result-cell{background:var(--surface);border-radius:6px;padding:7px 9px}
.scan-result-cell-val{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:.06em;color:var(--gold);line-height:1}
.scan-result-cell-lbl{font-family:'Space Mono',monospace;font-size:.52rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}
.scan-result-status{display:inline-block;padding:3px 9px;border-radius:4px;font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.06em;margin-top:8px}
.scan-result-actions{display:flex;gap:7px;margin-top:10px}
.scan-result-actions button{flex:1;padding:7px;border-radius:5px;font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.08em;cursor:pointer;text-transform:uppercase;border:1px solid var(--border);background:transparent;color:var(--text)}
.scan-result-actions .primary-action{background:linear-gradient(135deg,#f07030,#ff9848);color:#09111f;border:none;font-weight:700}
.scan-fab{position:fixed;bottom:140px;right:18px;width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#f07030,#ff9848);border:none;cursor:pointer;z-index:45;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(240,112,48,.4);transition:transform .15s,box-shadow .15s}
.scan-fab:active{transform:scale(.92)}
.scan-fab svg{width:22px;height:22px;stroke:#09111f;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.scan-fab-label{position:absolute;right:58px;background:rgba(6,11,26,.92);border:1px solid rgba(240,112,48,.3);border-radius:5px;padding:4px 10px;font-family:'Space Mono',monospace;font-size:.6rem;color:var(--gold);white-space:nowrap;letter-spacing:.06em;pointer-events:none;opacity:0;transition:opacity .2s}
.scan-fab:hover .scan-fab-label{opacity:1}


/* ══ USER AUTH / RBAC ══ */
.login-screen{position:fixed;inset:0;z-index:600;background:rgba(4,7,18,0.88);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.login-screen.hide{display:none}
.login-logo{font-family:'Bebas Neue',sans-serif;font-size:3rem;letter-spacing:.18em;color:var(--gold);margin-bottom:4px}
.login-sub{font-family:'Space Mono',monospace;font-size:.58rem;letter-spacing:.22em;color:var(--muted);text-transform:uppercase;margin-bottom:32px}
.login-user-list{width:100%;max-width:320px;display:flex;flex-direction:column;gap:8px;margin-bottom:20px;max-height:340px;overflow-y:auto}
.login-user-btn{width:100%;padding:12px 16px;background:var(--card);border:1px solid var(--border);border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:12px;transition:all .15s;text-align:left}
.login-user-btn:hover{border-color:rgba(240,112,48,.4);background:rgba(240,112,48,.05)}
.login-user-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:.9rem;letter-spacing:.06em;flex-shrink:0}
.login-user-info{flex:1;min-width:0}
.login-user-name{font-size:.88rem;color:var(--text);font-weight:500}
.login-user-role{font-family:'Space Mono',monospace;font-size:.56rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:1px}
.login-user-dept{font-family:'Space Mono',monospace;font-size:.54rem;color:var(--gold);letter-spacing:.06em;margin-top:1px}
.login-pin-wrap{width:100%;max-width:280px}
.login-pin-title{font-family:'Space Mono',monospace;font-size:.6rem;color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin-bottom:16px}
.login-pin-name{font-size:1rem;color:var(--text);font-weight:500;margin-bottom:12px}
.login-back{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--muted);background:none;border:none;cursor:pointer;text-decoration:underline;margin-top:10px;letter-spacing:.06em}
.login-signin-btn{
  width:210px;
  padding:13px 0;
  margin-top:16px;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  border:none;
  border-radius:10px;
  color:#fff;
  font-family:'Space Mono',monospace;
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:0 4px 20px rgba(240,112,48,.35);
  transition:all .22s cubic-bezier(0.22,1,0.36,1);
  display:block;
}
.login-signin-btn:disabled{opacity:0.22;box-shadow:none;cursor:default;transform:none !important;filter:grayscale(0.3);}
.login-signin-btn:not(:disabled):hover{
  transform:scale(1.03);
  box-shadow:0 6px 28px rgba(240,112,48,.5);
}
.login-signin-btn:not(:disabled):active{
  transform:scale(0.97);
  box-shadow:0 2px 10px rgba(240,112,48,.25);
}
/* User header badge */
.user-badge{position:fixed;top:8px;right:12px;z-index:60;display:flex;align-items:center;gap:7px;background:rgba(6,11,26,.85);border:1px solid rgba(240,112,48,.2);border-radius:20px;padding:5px 10px 5px 6px;cursor:pointer;backdrop-filter:blur(8px);transition:all .15s}
.user-badge:hover{border-color:rgba(240,112,48,.5)}
.user-badge-avatar{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:.65rem}
.user-badge-name{font-family:'Space Mono',monospace;font-size:.55rem;color:var(--text);letter-spacing:.06em;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-badge-role{font-family:'Space Mono',monospace;font-size:.48rem;color:var(--muted);letter-spacing:.04em}
/* User management in admin */
.user-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:8px;position:relative}
.user-card-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.user-card-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:.8rem;flex-shrink:0}
.user-card-name{font-size:.88rem;color:var(--text);font-weight:500}
.user-card-meta{font-family:'Space Mono',monospace;font-size:.56rem;color:var(--muted);letter-spacing:.06em;margin-top:1px}
.user-card-actions{display:flex;gap:6px;margin-top:8px}
.user-card-btn{padding:5px 10px;border-radius:4px;font-family:'Space Mono',monospace;font-size:.56rem;letter-spacing:.06em;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--muted);transition:all .14s}
.user-card-btn:hover{border-color:var(--gold);color:var(--gold)}
.user-card-btn.danger:hover{border-color:var(--red);color:var(--red)}
.perm-grid{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.perm-chip{padding:3px 8px;border-radius:4px;font-family:'Space Mono',monospace;font-size:.54rem;letter-spacing:.06em;background:rgba(240,112,48,.08);border:1px solid rgba(240,112,48,.2);color:var(--gold)}
.perm-chip.off{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.06);color:var(--muted)}
/* Activity log */
.activity-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.activity-row:last-child{border-bottom:none}
.activity-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:5px}
.activity-body{flex:1;min-width:0}
.activity-action{font-size:.78rem;color:var(--text);line-height:1.4}
.activity-meta{font-family:'Space Mono',monospace;font-size:.56rem;color:var(--muted);margin-top:2px;letter-spacing:.04em}
.activity-user{color:var(--gold)}
/* Calendar */
.cal-wrap{padding:0 14px}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-title{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:.08em;color:var(--text)}
.cal-nav{width:26px;height:26px;border-radius:5px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:8px}
.cal-day-lbl{font-family:'Space Mono',monospace;font-size:.52rem;color:var(--muted);text-align:center;padding:4px 0;letter-spacing:.06em}
.cal-cell{aspect-ratio:1;border-radius:5px;display:flex;align-items:center;justify-content:center;font-family:'Space Mono',monospace;font-size:.62rem;color:var(--muted);cursor:pointer;position:relative;transition:all .12s;border:1px solid transparent}
.cal-cell:hover{background:rgba(255,255,255,.04);border-color:var(--border)}
.cal-cell.today{color:var(--gold);border-color:rgba(240,112,48,.3)}
.cal-cell.has-events::after{content:'';position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--gold)}
.cal-cell.selected{background:rgba(240,112,48,.12);border-color:rgba(240,112,48,.4);color:var(--gold)}
.cal-cell.other-month{opacity:.25}
.cal-day-events{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:10px;margin-top:8px;max-height:180px;overflow-y:auto;display:none}
.cal-day-events.show{display:block}
/* Edit user modal */
.user-modal{position:fixed;inset:0;z-index:700;background:rgba(3,6,18,.9);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .2s;backdrop-filter:blur(6px)}
.user-modal.open{opacity:1;pointer-events:all}
.user-modal-box{background:var(--surface);border:1px solid rgba(240,112,48,.2);border-radius:12px;padding:20px;width:100%;max-width:380px;max-height:85vh;overflow-y:auto}
.user-modal-title{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;letter-spacing:.1em;color:var(--gold);margin-bottom:16px}
.perm-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.perm-toggle-row:last-child{border-bottom:none}
.perm-toggle-label{font-size:.8rem;color:var(--text)}
.perm-toggle-sub{font-family:'Space Mono',monospace;font-size:.56rem;color:var(--muted);margin-top:1px;letter-spacing:.04em}
.toggle-sw{width:36px;height:20px;border-radius:10px;background:rgba(255,255,255,.1);border:1px solid var(--border);cursor:pointer;position:relative;transition:background .18s;flex-shrink:0}
.toggle-sw.on{background:rgba(240,112,48,.35);border-color:rgba(240,112,48,.5)}
.toggle-sw::after{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--muted);transition:all .18s}
.toggle-sw.on::after{left:18px;background:var(--gold)}


/* ══ MAP EDITOR ══ */
.map-edit-btn{padding:4px 10px;border-radius:4px;border:1px solid rgba(240,112,48,.3);background:transparent;font-family:'Space Mono',monospace;font-size:.55rem;letter-spacing:.07em;color:var(--gold);cursor:pointer;white-space:nowrap;transition:all .12s}
.map-edit-btn:hover{background:rgba(240,112,48,.1)}
.map-edit-btn.active{background:rgba(240,112,48,.18);border-color:var(--gold)}
.ctx-chip{padding:4px 10px;border-radius:12px;border:1px solid rgba(0,200,255,.2);background:rgba(0,200,255,.06);font-family:'Space Mono',monospace;font-size:.5rem;color:var(--cyan);cursor:pointer}
.ctx-label{font-family:'Space Mono',monospace;font-size:.5rem;letter-spacing:.1em;color:var(--muted);margin-bottom:5px}
.ctx-opt{padding:5px 10px;border-radius:4px;border:1px solid rgba(255,255,255,.1);background:transparent;font-family:'Space Mono',monospace;font-size:.5rem;color:var(--muted);cursor:pointer;transition:all .15s}
.ctx-opt.active{background:rgba(0,200,255,.12);border-color:var(--cyan);color:var(--cyan)}
.heat-aisle-card{border:1px solid rgba(255,255,255,.07);border-radius:var(--r-md);margin-bottom:8px;overflow:hidden;background:var(--card);box-shadow:0 2px 12px rgba(0,0,0,.25);transition:border-color .2s var(--ease-out)}
.heat-aisle-card.anomaly{border-color:rgba(212,61,74,.35);box-shadow:0 2px 16px rgba(212,61,74,.08)}
.heat-aisle-card.hot{border-color:rgba(240,112,48,.3);box-shadow:0 2px 16px rgba(240,112,48,.07)}
.heat-aisle-card.cool{border-color:rgba(0,200,255,.15);box-shadow:0 2px 16px rgba(0,200,255,.05)}
.heat-aisle-hdr{display:flex;align-items:center;padding:10px 12px;gap:10px;cursor:pointer}
.heat-aisle-hdr:active{background:rgba(240,112,48,.05)}
.heat-index-ring{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Space Mono',monospace;font-size:.65rem;font-weight:700;flex-shrink:0;border:2px solid}
.heat-aisle-info{flex:1}
.heat-aisle-name{font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.08em;color:var(--text)}
.heat-aisle-meta{font-size:.62rem;color:var(--muted);margin-top:2px}
.heat-aisle-kpis{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.heat-trend{font-family:'Space Mono',monospace;font-size:.62rem}
.heat-predict{font-size:.6rem;color:var(--muted)}
.heat-timeline{height:28px;display:flex;align-items:flex-end;gap:1px;padding:4px 12px 8px;background:rgba(0,0,0,.2)}
.heat-hour-bar{flex:1;border-radius:1px 1px 0 0;min-height:2px;transition:height .3s}
.heat-detail{padding:10px 12px;border-top:1px solid rgba(255,255,255,.04);display:none}
.heat-insight{padding:8px 10px;border-radius:6px;border-left:2px solid;margin-bottom:6px;font-size:.7rem;line-height:1.5}
.heat-insight.warning{border-color:var(--orange);background:rgba(240,112,48,.06);color:var(--text)}
.heat-insight.good{border-color:var(--green);background:rgba(126,200,160,.06);color:var(--text)}
.heat-insight.alert{border-color:var(--red);background:rgba(212,61,74,.06);color:var(--text)}
.heat-insight.predict{border-color:var(--cyan);background:rgba(0,200,255,.06);color:var(--text)}
.heat-restock-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px solid rgba(255,255,255,.04)}
.heat-restock-prod{font-size:.7rem;color:var(--text);flex:1}
.heat-restock-urgency{font-family:'Space Mono',monospace;font-size:.52rem;padding:2px 7px;border-radius:3px}
.tag-preview{background:#fff;border-radius:3px;padding:4px 6px;display:flex;flex-direction:column;position:relative;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:border-color .15s}
.tag-preview:hover{border-color:rgba(0,200,255,.5)}
.tag-preview.selected{border-color:var(--cyan)}
.tag-store{font-size:5px;font-weight:700;color:#111;letter-spacing:.05em;text-transform:uppercase;line-height:1.2}
.tag-aisle{font-size:8px;font-weight:900;color:#000;letter-spacing:.02em;line-height:1}
.tag-location{font-size:6px;color:#444;letter-spacing:.04em;line-height:1.4}
.tag-qr{position:absolute;right:4px;top:50%;transform:translateY(-50%)}
.map-mode-btn{padding:3px 10px;border-radius:16px;border:none;background:transparent;font-family:'Space Mono',monospace;font-size:.5rem;letter-spacing:.08em;color:var(--muted);cursor:pointer;transition:all .15s}
.map-mode-btn.active{background:rgba(240,112,48,.2);color:var(--accent)}
.map-edit-toggle{position:absolute;top:8px;right:8px;z-index:15;padding:6px 12px;border-radius:5px;border:1px solid rgba(240,112,48,.3);background:rgba(6,11,26,.85);font-family:'Space Mono',monospace;font-size:.58rem;color:var(--gold);cursor:pointer;letter-spacing:.08em;backdrop-filter:blur(6px);transition:all .15s}
.map-edit-toggle.active{background:rgba(240,112,48,.15);border-color:var(--gold);box-shadow:0 0 12px rgba(240,112,48,.25)}
.map-selected-ring{position:absolute;pointer-events:none;border:2px solid var(--gold);border-radius:3px;box-shadow:0 0 8px rgba(240,112,48,.5)}
/* Map object props panel */
.map-props-panel{position:absolute;bottom:60px;left:10px;right:10px;background:rgba(6,11,26,.96);border:1px solid rgba(240,112,48,.3);border-radius:10px;padding:12px;z-index:20;backdrop-filter:blur(8px);display:none}
.map-props-panel.show{display:block}
.map-props-row{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.map-props-lbl{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--muted);letter-spacing:.06em;width:54px;flex-shrink:0}
.map-props-input{flex:1;background:var(--card);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:'Space Mono',monospace;font-size:.7rem;padding:4px 8px;outline:none}
.map-props-input:focus{border-color:rgba(240,112,48,.4)}
.map-color-dot{width:20px;height:20px;border-radius:50%;cursor:pointer;border:2px solid rgba(255,255,255,.2);flex-shrink:0}
/* Heatmap legend */
.heat-legend{position:absolute;bottom:50px;right:10px;background:rgba(6,11,26,.9);border:1px solid var(--border);border-radius:6px;padding:8px 10px;z-index:10;font-family:'Space Mono',monospace;font-size:.55rem;color:var(--muted)}
.heat-bar{width:90px;height:8px;border-radius:4px;background:linear-gradient(90deg,#0a1a3a,#1565c0,#2ecc71,#f39c12,#e74c3c);margin:4px 0}

.facing{min-width:62px;height:88px;
  border-radius:6px;padding:5px 5px 3px;display:flex;flex-direction:column;
  cursor:pointer;transition:transform .15s,box-shadow .15s;position:relative;gap:2px;
  flex-shrink:0;
}
.facing:active{transform:scale(.93);}
.facing.selected-facing{box-shadow:0 0 0 2px var(--gold),0 0 12px rgba(240,112,48,.4)!important;transform:scale(1.05);z-index:2;}
.facing-brand{font-family:'Space Mono',monospace;font-size:.44rem;color:rgba(255,255,255,.55);
  letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.1;}
.facing-price{font-family:'Space Mono',monospace;font-size:.82rem;font-weight:700;color:#fff;line-height:1;}
.facing-upc{font-family:'Space Mono',monospace;font-size:.42rem;color:rgba(255,255,255,.4);letter-spacing:.04em;}
.facing-weeks{display:flex;gap:2px;align-items:flex-end;height:18px;margin-top:auto;}
.facing-wbar{flex:1;border-radius:2px 2px 0 0;min-height:2px;transition:height .3s;}
/* Product detail slide-up panel */
#product-detail-panel{
  position:fixed;bottom:0;left:0;right:0;
  background:var(--card);border-top:1px solid rgba(240,112,48,.3);
  border-radius:14px 14px 0 0;padding:0;z-index:200;
  transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);
  max-height:65vh;overflow-y:auto;
}
#product-detail-panel.open{transform:translateY(0);}
.pd-handle{width:36px;height:4px;background:rgba(255,255,255,.2);border-radius:2px;margin:10px auto 0;}
.pd-header{padding:10px 16px 8px;border-bottom:1px solid rgba(255,255,255,.06);}
.pd-brand{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--gold);letter-spacing:.1em;text-transform:uppercase;}
.pd-name{font-size:1.05rem;font-weight:600;color:var(--text);line-height:1.25;margin-top:2px;}
.pd-upc{font-family:'Space Mono',monospace;font-size:.55rem;color:var(--muted);margin-top:3px;}
.pd-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px 16px;}
.pd-stat{background:rgba(255,255,255,.04);border-radius:6px;padding:7px 6px;text-align:center;}
.pd-stat-val{font-family:'Space Mono',monospace;font-size:.85rem;font-weight:700;}
.pd-stat-lbl{font-size:.5rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-top:2px;}
.pd-weeks{padding:0 16px 12px;}
.pd-weeks-title{font-family:'Space Mono',monospace;font-size:.55rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;}
.pd-weeks-bars{display:flex;gap:8px;align-items:flex-end;height:60px;}
.pd-week-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;}
.pd-week-bar{width:100%;border-radius:3px 3px 0 0;transition:height .4s cubic-bezier(.4,0,.2,1);}
.pd-week-val{font-family:'Space Mono',monospace;font-size:.58rem;color:var(--text);}
.pd-week-lbl{font-family:'Space Mono',monospace;font-size:.48rem;color:var(--muted);}
.pd-edit-btn{display:block;width:calc(100% - 32px);margin:0 16px 16px;padding:11px;
  background:rgba(240,112,48,.1);border:1px solid rgba(240,112,48,.3);border-radius:8px;
  font-family:'Space Mono',monospace;font-size:.62rem;color:var(--gold);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;}



/* ══════════════════════════════════════════════════════════
   PEEK & POP — iOS-style long-press preview system
   Hold a nav button → 3D card rises showing that screen
   Release before commit → snaps back
   Hold to threshold → navigates
   ══════════════════════════════════════════════════════════ */

/* Backdrop blur when peek is open */
#peek-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(2,4,12,0);
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  z-index: 900;
  pointer-events: none;
  transition:
    background 0.22s ease,
    backdrop-filter 0.22s ease,
    -webkit-backdrop-filter 0.22s ease;
}
#peek-backdrop.visible {
  background: rgba(2,4,12,0.55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  pointer-events: auto;
}

/* The peek card itself */
#peek-card {
  position: fixed;
  z-index: 901;
  background: var(--card, #101828);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 18px;
  overflow: hidden;
  box-shadow:
    0 24px 64px rgba(0,0,0,0.7),
    0 8px 24px rgba(0,0,0,0.5),
    0 0 0 0.5px rgba(255,255,255,0.06);
  pointer-events: none;
  opacity: 0;
  transform: scale(0.82) translateY(24px) perspective(600px) rotateX(4deg);
  transform-origin: bottom center;
  transition: none;
  will-change: transform, opacity;
  /* Clip the live screen preview inside */
  width: 320px;
  height: 420px;
}

#peek-card.peek-entering {
  transition:
    opacity 0.28s cubic-bezier(0.22,1,0.36,1),
    transform 0.38s cubic-bezier(0.22,1,0.36,1);
  opacity: 1;
  transform: scale(1.0) translateY(0) perspective(600px) rotateX(0deg);
}

#peek-card.peek-commit {
  transition:
    opacity 0.18s ease-in,
    transform 0.22s cubic-bezier(0.4,0,1,1);
  opacity: 0;
  transform: scale(1.04) translateY(-12px) perspective(600px) rotateX(-2deg);
}

#peek-card.peek-dismiss {
  transition:
    opacity 0.20s ease-in,
    transform 0.25s cubic-bezier(0.4,0,1,1);
  opacity: 0;
  transform: scale(0.88) translateY(20px) perspective(600px) rotateX(6deg);
}

/* Progress ring around the button being held */
.nbtn { position: relative; }
.nbtn-progress {
  position: absolute;
  inset: -3px;
  border-radius: 12px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease;
}
.nbtn-progress.active { opacity: 1; }

/* Peek card inner content */
#peek-header {
  padding: 16px 18px 10px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
#peek-icon {
  width: 28px; height: 28px;
  background: rgba(240,112,48,0.12);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
}
#peek-icon svg { width:14px; height:14px; stroke:var(--accent); fill:none; stroke-width:2; stroke-linecap:round; }
#peek-title {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.1rem;
  letter-spacing: .1em;
  color: var(--text, #f0ede8);
  line-height: 1;
}
#peek-sub {
  font-size: 0.58rem;
  color: var(--muted, #7a8aa8);
  letter-spacing: .06em;
  margin-top: 2px;
}
#peek-body {
  flex: 1;
  overflow: hidden;
  position: relative;
}
/* The live screen clone rendered inside */
#peek-body .peek-clone {
  position: absolute;
  inset: 0;
  transform-origin: top left;
  pointer-events: none;
}
/* Hold progress bar at bottom of card */
#peek-progress-bar {
  height: 3px;
  background: rgba(255,255,255,0.06);
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}
#peek-progress-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--accent), var(--cyan));
  border-radius: 2px;
  transition: width 0.06s linear;
}
#peek-hint {
  padding: 8px 18px;
  font-size: 0.52rem;
  letter-spacing: .1em;
  color: var(--muted, #7a8aa8);
  text-align: center;
  text-transform: uppercase;
  flex-shrink: 0;
}

/* Nav button press — compress on hold, no click flash */
.nbtn {
  -webkit-tap-highlight-color: transparent;
  transform: scale(1);
  transition: transform 0.18s cubic-bezier(0.34,1.56,0.64,1);
}
.nbtn.holding {
  transform: scale(0.91) translateY(1px);
  transition: transform 0.12s ease-out;
}



/* ══════════════════════════════════════════════════════════════
   AURA GLASS DESIGN SYSTEM — Full App
   Every surface: frosted glass, depth hierarchy, liquid press
   ══════════════════════════════════════════════════════════════ */

/* ── PIN KEYPAD — large glass numerals ── */
.pin-pad { width:240px; gap:10px; }
.pin-key {
  height:64px !important;
  border-radius:16px !important;
  background:rgba(255,255,255,0.08) !important;
  backdrop-filter:blur(20px) !important;
  -webkit-backdrop-filter:blur(20px) !important;
  border:1px solid rgba(255,255,255,0.14) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.20),
    inset 0 -1px 0 rgba(0,0,0,0.18),
    0 4px 16px rgba(0,0,0,0.30) !important;
  color:rgba(255,255,255,0.92) !important;
  font-size:1.5rem !important;
  font-weight:300 !important;
  font-family:'DM Sans',sans-serif !important;
  letter-spacing:0 !important;
  transition:transform 0.08s ease-out, box-shadow 0.08s ease-out !important;
  position:relative; overflow:hidden;
}
.pin-key::after {
  content:''; position:absolute; top:0; left:0; right:0; height:50%;
  background:linear-gradient(180deg,rgba(255,255,255,0.07) 0%,rgba(255,255,255,0) 100%);
  border-radius:16px 16px 0 0; pointer-events:none;
}
.pin-key:active {
  transform:scale(0.90) !important;
  background:rgba(255,255,255,0.14) !important;
  box-shadow:inset 0 2px 6px rgba(0,0,0,0.28), 0 1px 4px rgba(0,0,0,0.2) !important;
}
.pin-key.del {
  background:rgba(240,112,48,0.10) !important;
  border-color:rgba(240,112,48,0.22) !important;
  color:var(--accent) !important;
  font-size:1.2rem !important;
}
.pin-key.zero { grid-column:2; }

/* PIN dots — glass capsules */
.pin-dot {
  width:14px; height:14px; border-radius:50%;
  background:rgba(255,255,255,0.06);
  border:1.5px solid rgba(255,255,255,0.18);
  transition:all 0.18s cubic-bezier(0.34,1.56,0.64,1);
}
.pin-dot.filled {
  background:var(--accent);
  border-color:var(--accent2);
  box-shadow:0 0 10px rgba(240,112,48,0.5);
  transform:scale(1.15);
}

/* ── NAV BAR — glass shelf ── */
.nav-bar {
  background:rgba(4,6,14,0.82) !important;
  backdrop-filter:blur(28px) saturate(160%) !important;
  -webkit-backdrop-filter:blur(28px) saturate(160%) !important;
  border-top:1px solid rgba(255,255,255,0.08) !important;
  box-shadow:0 -8px 32px rgba(0,0,0,0.4) !important;
}
.nbtn {
  border-radius:14px !important;
  transition:transform 0.22s cubic-bezier(0.34,1.56,0.64,1) !important;
  padding:6px 4px !important;
}
.nbtn svg { transition:stroke 0.2s ease, opacity 0.2s ease; opacity:0.5; }
.nbtn.active svg { opacity:1; }
.nbtn-lbl { font-size:0.47rem !important; letter-spacing:0.14em !important; }
.nbtn:active { transform:scale(0.86) translateY(2px) !important; }
.nbtn:not(:active) { transform:scale(1) !important; }
.nbtn.active {
  background:rgba(240,112,48,0.10) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.06) !important;
}
/* Active indicator line */
.nbtn.active::before {
  content:''; position:absolute; top:2px; left:50%;
  transform:translateX(-50%);
  width:18px; height:2px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  border-radius:2px;
}

/* ── CARDS — glass surfaces with depth ── */
.heat-aisle-card,
.roi-card,
.hist-item,
[class*="card"] {
  background:rgba(255,255,255,0.04) !important;
  backdrop-filter:blur(16px) !important;
  -webkit-backdrop-filter:blur(16px) !important;
  border:1px solid rgba(255,255,255,0.08) !important;
  border-radius:14px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.07),
    0 4px 20px rgba(0,0,0,0.25) !important;
}
/* Card top shimmer */
[class*="card"]::before,
.heat-aisle-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.12),transparent);
  border-radius:14px 14px 0 0;
}

/* ── FILTER TABS / ATABS — glass pills ── */
.atab {
  padding:6px 14px !important;
  border-radius:20px !important;
  background:rgba(255,255,255,0.06) !important;
  backdrop-filter:blur(14px) !important;
  -webkit-backdrop-filter:blur(14px) !important;
  border:1px solid rgba(255,255,255,0.10) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.10), 0 2px 8px rgba(0,0,0,0.2) !important;
  font-size:0.48rem !important;
  letter-spacing:0.12em !important;
  color:rgba(255,255,255,0.55) !important;
  transition:all 0.22s cubic-bezier(0.34,1.56,0.64,1) !important;
}
.atab.active {
  background:rgba(240,112,48,0.16) !important;
  border-color:rgba(240,112,48,0.38) !important;
  color:var(--accent) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 2px 14px rgba(240,112,48,0.18) !important;
}
.atab:active { transform:scale(0.94) !important; }

/* ── PRIMARY BUTTONS — orange glass ── */
.btn-primary,
.login-signin-btn {
  background:linear-gradient(145deg,rgba(240,112,48,0.88),rgba(255,152,72,0.78)) !important;
  backdrop-filter:blur(20px) !important;
  -webkit-backdrop-filter:blur(20px) !important;
  border:1px solid rgba(255,190,120,0.30) !important;
  border-radius:14px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.28),
    inset 0 -1px 0 rgba(0,0,0,0.14),
    0 4px 20px rgba(240,112,48,0.28),
    0 1px 4px rgba(0,0,0,0.28) !important;
  color:rgba(255,255,255,0.96) !important;
  font-weight:500 !important;
  letter-spacing:0.16em !important;
  padding:14px 0 !important;
  width:220px !important;
  transition:all 0.22s cubic-bezier(0.34,1.56,0.64,1) !important;
}
.btn-primary:active,
.login-signin-btn:active {
  transform:scale(0.96) !important;
  box-shadow:
    inset 0 2px 6px rgba(0,0,0,0.20),
    0 1px 6px rgba(240,112,48,0.18) !important;
}
.btn-primary:disabled,
.login-signin-btn:disabled {
  opacity:0.24 !important; box-shadow:none !important; cursor:default !important;
}

/* ── LOGIN USER BUTTONS — glass cards ── */
.login-user-btn {
  background:rgba(255,255,255,0.06) !important;
  backdrop-filter:blur(20px) !important;
  -webkit-backdrop-filter:blur(20px) !important;
  border:1px solid rgba(255,255,255,0.10) !important;
  border-radius:16px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 4px 16px rgba(0,0,0,0.22) !important;
  padding:14px 16px !important;
  transition:all 0.22s cubic-bezier(0.34,1.56,0.64,1) !important;
}
.login-user-btn:active {
  transform:scale(0.97) !important;
  background:rgba(255,255,255,0.10) !important;
}

/* ── INPUT FIELDS — glass trough ── */
.fin {
  background:rgba(255,255,255,0.05) !important;
  backdrop-filter:blur(12px) !important;
  -webkit-backdrop-filter:blur(12px) !important;
  border:1px solid rgba(255,255,255,0.10) !important;
  border-radius:12px !important;
  padding:11px 14px !important;
  box-shadow:inset 0 1px 3px rgba(0,0,0,0.2) !important;
  color:var(--text) !important;
  transition:border-color 0.2s ease, box-shadow 0.2s ease !important;
}
.fin:focus {
  border-color:rgba(240,112,48,0.40) !important;
  box-shadow:inset 0 1px 3px rgba(0,0,0,0.15), 0 0 0 3px rgba(240,112,48,0.08) !important;
  outline:none !important;
}
select.fin {
  background:rgba(255,255,255,0.05) !important;
}

/* ── SECONDARY/GHOST BUTTONS — minimal glass ── */
.login-back,
.pin-back,
.map-mode-btn,
.pal-filter-btn,
button[onclick*="cancel"],
button[onclick*="Cancel"] {
  background:rgba(255,255,255,0.06) !important;
  backdrop-filter:blur(14px) !important;
  -webkit-backdrop-filter:blur(14px) !important;
  border:1px solid rgba(255,255,255,0.10) !important;
  border-radius:20px !important;
  padding:7px 16px !important;
  color:rgba(255,255,255,0.55) !important;
  transition:all 0.2s ease !important;
}
.login-back:active,
.pin-back:active,
.map-mode-btn:active { transform:scale(0.95) !important; }
.map-mode-btn.active,
.pal-filter-btn.active {
  background:rgba(0,200,255,0.14) !important;
  border-color:rgba(0,200,255,0.28) !important;
  color:var(--cyan) !important;
}

/* ── CHAT BUBBLES — glass morphism ── */
.cmsg {
  backdrop-filter:blur(10px) !important;
  -webkit-backdrop-filter:blur(10px) !important;
  border-radius:18px !important;
  border:1px solid rgba(255,255,255,0.07) !important;
}
.cmsg.u {
  background:rgba(240,112,48,0.15) !important;
  border-color:rgba(240,112,48,0.20) !important;
  border-radius:18px 18px 4px 18px !important;
}
.cmsg.a {
  background:rgba(255,255,255,0.05) !important;
  border-radius:18px 18px 18px 4px !important;
}

/* ── MODALS / PANELS — elevated glass ── */
.user-modal-box,
.map-info-panel,
[class*="modal-box"] {
  background:rgba(8,12,28,0.92) !important;
  backdrop-filter:blur(32px) saturate(140%) !important;
  -webkit-backdrop-filter:blur(32px) saturate(140%) !important;
  border:1px solid rgba(255,255,255,0.10) !important;
  border-radius:20px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.10),
    0 24px 64px rgba(0,0,0,0.6) !important;
}

/* ── SCROLLBARS — invisible ── */
* { scrollbar-width:none; }
*::-webkit-scrollbar { display:none; }

/* ── STAT ROWS — subtle glass separation ── */
.stat-row {
  border-bottom:1px solid rgba(255,255,255,0.05) !important;
  padding:10px 0 !important;
}
.stat-row:last-child { border-bottom:none !important; }

/* ── SCREEN HEADER — frosted top ── */
.hdr {
  background:rgba(4,6,16,0.6) !important;
  backdrop-filter:blur(20px) !important;
  -webkit-backdrop-filter:blur(20px) !important;
  border-bottom:1px solid rgba(255,255,255,0.06) !important;
}

/* ── TOAST — glass notification ── */
.toast,
[class*="toast"] {
  background:rgba(12,18,36,0.90) !important;
  backdrop-filter:blur(24px) !important;
  -webkit-backdrop-filter:blur(24px) !important;
  border:1px solid rgba(255,255,255,0.12) !important;
  border-radius:14px !important;
  box-shadow:0 8px 32px rgba(0,0,0,0.4) !important;
}

/* ── UNIVERSAL PRESS INTERACTION ── */
button, .atab, [role="button"] {
  -webkit-tap-highlight-color:transparent !important;
  -webkit-user-select:none !important;
  user-select:none !important;
}


/* ── PIN KEY inner layout — iOS style ── */
.pin-key { display:flex !important; flex-direction:column !important; align-items:center !important; justify-content:center !important; gap:1px !important; }
.pk-num { font-size:1.6rem; font-weight:300; font-family:'DM Sans',sans-serif; line-height:1; color:rgba(255,255,255,0.92); }
.pk-sub { font-size:0.38rem; font-weight:500; letter-spacing:0.18em; color:rgba(255,255,255,0.38); text-transform:uppercase; line-height:1; min-height:6px; }
.pin-key.del { flex-direction:row !important; }
