/* GRID//NODE legacy externalized CSS — consolidated single file (HTML diet, 2026-10-13).
 * Contents: the 42 inline <style> blocks that used to live in html/partials
 * (01-head monolith + scanner patches + confirm overlays + polish patches +
 * tail), moved verbatim, in original document order. Block order inside this
 * file is LOAD-BEARING for the cascade — do not reorder, split, or prune
 * without a computed-style equivalence check. Kept as ONE file so first paint
 * pays exactly one extra request for the whole legacy layer. */

/*
GRID//NODE legacy CSS — extracted from html/partials/01-head.html (inline <style> blocks #1-#6, in original document order).
Block order is load-bearing for the cascade: do not reorder, split, or merge these blocks.
HTML diet, 2026-10-13.
*/

/* ═══════════════════════════════════════════════
   GRID//NODE v1.0.0
   "Your body. Your data. Your grid."
   
   CHANGELOG v1.1:
   - Fixed negative % cycle bug
   - Custom CP2077 themed dropdowns (no native OS)
   - Animated CP2077 phase icons (pure CSS/SVG)
   - Live immersive progress arc with particles
   - CP2077 user avatars
   - GRIDNODE logo + wordmark
   - Standalone weight logging
   - Full body metrics (height, age, sex, BMI)
   - Complete stats grid (6 cards like Shotsy)
   - Edit & delete shots
   - Shot numbers (#1 #2 #3)
   - Month grouped history
   - Calendar view
   - Larger fonts, better contrast
   - PWA manifest
   - Export CSV
═══════════════════════════════════════════════ */

:root {
  --cyan:      #00d4ff;
  --cyan-dim:  rgba(0,212,255,0.12);
  --cyan-glow: rgba(0,212,255,0.4);
  --red-hi: #FF5B5B;
  --red-lo: #D12424;
  --red:       #FF3B3B;
  --red-dim:   rgba(255,59,59,0.12);
  --red-glow: rgba(255, 59, 59, 0.35);
  --red-dim:  rgba(255,59,59,0.4);
  --green:     #00ff88;
  --green-dim: rgba(0,255,136,0.12);
  --yellow:    #ffd700;
  --cp-yellow: #FCEE0A;  /* Cyberpunk 2077 yellow, accent labels only */
  --yellow-dim:rgba(255,215,0,0.12);
  --orange:    #ff8c00;
  --magenta:   #ff00cc;
  /* S2 — TRUST GRAMMAR tokens. Semantics are structural (solid/dashed/outlined),
     never color-only. RECORDED = measured fact (cyan, solid). ESTIMATE = modeled
     or calculated (amber, dashed/segmented, approximate language). PLAN = user
     schedule or intended action (violet, outlined). STATUS = operational state. */
  --trust-recorded-accent: #00d4ff;
  --trust-recorded-border: rgba(0,212,255,.55);
  --trust-recorded-bg:     rgba(0,212,255,.07);
  --trust-estimate-accent: #ffb300;
  --trust-estimate-border: rgba(255,179,0,.55);
  --trust-estimate-bg:     rgba(255,179,0,.06);
  --trust-plan-accent:     #9d7bff;
  --trust-plan-border:     rgba(157,123,255,.55);
  --trust-plan-bg:         rgba(157,123,255,.06);
  --trust-status-ok:       #00ff88;
  --trust-status-warn:     #ffb300;
  --trust-status-err:      #ff5b5b;
  --trust-status-mute:     #9898b0;
  --bg:        #050508;
  --bg2:       #08080d;
  --panel:     #0e0e16;
  --panel2:    #121218;
  --panel3:    #161622;
  --border:    rgba(255,255,255,0.07);
  --border2:   rgba(255,255,255,0.12);
  --text:      #eeeef5;
  --text-mid:  #9898b0;
  --text-dim:  #6f6f88;
  --font-d:    'Orbitron', monospace;
  --font-m:    'Share Tech Mono', monospace;
  --font-b:    'Rajdhani', sans-serif;
  --safe-top:    env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 20px);
  --r: 6px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}
html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font-b);font-size:16px}

/* SCANLINES */
.scanlines{position:fixed;inset:0;z-index:9999;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,0.02) 3px,rgba(0,0,0,0.02) 4px);opacity:.7}
.scan-sweep{position:fixed;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,212,255,0.028),transparent);z-index:9998;pointer-events:none;animation:sweepDown 14s linear infinite;opacity:.55}

/* ANIMATIONS */
@keyframes sweepDown{0%{top:-1%}100%{top:101%}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes slideDown{from{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@keyframes glitch{0%,87%,100%{transform:none;filter:none}88%{transform:skewX(-3deg);filter:hue-rotate(15deg)}90%{transform:skewX(2deg)}92%{transform:none}}
@keyframes neonFlicker{0%,100%{opacity:1}93%{opacity:0.7}95%{opacity:1}97%{opacity:0.85}98%{opacity:1}}
@keyframes bootLine{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes rotateCW{to{transform:rotate(360deg)}}
@keyframes rotateCCW{to{transform:rotate(-360deg)}}
@keyframes floatUp{0%{transform:translateY(0);opacity:1}100%{transform:translateY(-80px);opacity:0}}
@keyframes ripple{0%{transform:scale(0);opacity:0.6}100%{transform:scale(4);opacity:0}}
@keyframes arcParticle{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0) translateY(-20px)}}

/* Phase icon animations */
@keyframes electricArc{0%,100%{opacity:1;filter:drop-shadow(0 0 4px #00d4ff)}50%{opacity:0.7;filter:drop-shadow(0 0 12px #00d4ff) drop-shadow(0 0 24px #00d4ff)}}
@keyframes syringeFill{0%{height:0%}100%{height:70%}}
@keyframes ekg{0%{stroke-dashoffset:100}100%{stroke-dashoffset:0}}
@keyframes hexSpin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
@keyframes barDrop{0%,60%{height:100%}80%{height:40%}100%{height:20%}}
@keyframes hexFill{0%{transform:translateY(11px);opacity:0}50%{opacity:.6}100%{transform:translateY(-2px);opacity:.5}}
@keyframes windingFade{0%,100%{opacity:1}50%{opacity:.15}}
@keyframes fadePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.3;transform:scale(0.85)}}
@keyframes orbitDot{0%{transform:rotate(0deg) translateX(14px)}100%{transform:rotate(360deg) translateX(14px)}}

/* SCREENS */
.screen{position:fixed;inset:0;display:none;flex-direction:column;background:var(--bg)}
.screen.active{display:flex;animation:fadeIn 0.4s ease}

/* ══════════════════════════
   SCREEN 1 — BOOT
══════════════════════════ */
#boot{align-items:center;justify-content:center;padding:40px 28px;gap:0}

.boot-emblem{position:relative;width:90px;height:90px;margin-bottom:28px;display:flex;align-items:center;justify-content:center}
.boot-ring-o{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(0,212,255,0.2);animation:rotateCW 8s linear infinite}
.boot-ring-o::before{content:'';position:absolute;top:-3px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}
.boot-ring-i{position:absolute;inset:14px;border-radius:50%;border:1px solid rgba(255,59,59,0.2);animation:rotateCCW 5s linear infinite}
.boot-ring-i::before{content:'';position:absolute;bottom:-3px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--red);box-shadow:0 0 8px var(--red)}

/* GRIDNODE LOGO SVG */
.boot-logo-svg{margin-bottom:8px}
.boot-slogan{font-family:var(--font-b);font-size:1rem;font-weight:500;color:var(--text-mid);letter-spacing:2px;margin-bottom:44px;text-align:center}
.boot-terminal{width:100%;max-width:320px;background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border2);padding:14px;margin-bottom:20px;min-height:130px}
.boot-line{font-family:var(--font-m);font-size:0.72rem;padding:2px 0;opacity:0;animation:bootLine 0.25s ease forwards;line-height:1.6}
.boot-line.ok{color:var(--green)}.boot-line.warn{color:var(--yellow)}.boot-line.info{color:var(--text-mid)}
.boot-prog-wrap{width:100%;max-width:320px;margin-bottom:10px}
.boot-prog-track{height:2px;background:var(--border2);overflow:hidden}
.boot-prog-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--cyan),var(--green));box-shadow:0 0 8px var(--cyan);transition:width 0.15s ease}
.boot-prog-pct{font-family:var(--font-m);font-size:0.68rem;color:var(--cyan);text-align:right;margin-top:6px}

/* ══════════════════════════
   SCREEN 2 — LOGIN
══════════════════════════ */
#login{align-items:center;justify-content:flex-start;padding:24px;overflow-y:auto;height:100vh;height:100svh}
/* justify-content MUST be flex-start (not center): with center, an
   overflowing card gets unsafely centered and its top lands above the
   scroll origin where scrollTop can never reach it. flex-start lets the
   child's margin:auto do the centering when the card fits, and collapse
   to 0 (top-aligned, scrollable) on overflow. svh anchors the box to the
   visible area on Android Chrome. */
#login>div{display:flex;flex-direction:column;align-items:center;width:100%;max-width:360px;margin:auto}
.login-slogan{font-family:var(--font-b);font-size:1rem;color:var(--text-mid);letter-spacing:1px;margin-bottom:6px;text-align:center}
.login-tag{font-family:var(--font-m);font-size:0.58rem;color:var(--text-dim);letter-spacing:3px;margin-bottom:36px;text-align:center}
.user-sel-title{font-family:var(--font-m);font-size:0.6rem;color:var(--text-dim);letter-spacing:4px;margin-bottom:14px;text-align:center}

/* AVATAR CARDS */
.user-card{background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border2);padding:16px 18px;margin-bottom:10px;display:flex;align-items:center;gap:14px;cursor:pointer;position:relative;overflow:hidden;transition:all 0.2s;width:100%}
.user-card::after{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--cyan);transform:scaleY(0);transition:transform 0.2s}
.user-card:hover::after,.user-card:active::after{transform:scaleY(1)}
.user-card:hover,.user-card:active{border-color:rgba(0,212,255,0.3);background:var(--panel2);transform:translateX(4px)}
.user-ava-wrap{width:52px;height:52px;flex-shrink:0}
.user-info{flex:1}
.user-name{font-family:var(--font-d);font-size:0.9rem;color:var(--text);letter-spacing:2px;margin-bottom:2px}
.user-status{font-family:var(--font-m);font-size:0.58rem;color:var(--text-dim);letter-spacing:2px}
.user-chevron{color:var(--cyan);font-size:1.2rem;opacity:0;transition:opacity 0.2s}
.user-card:hover .user-chevron{opacity:1}

/* PIN */
.pin-screen{display:none;flex-direction:column;align-items:center;width:100%}
.pin-screen.active{display:flex;animation:fadeInUp 0.3s ease}
.pin-who{font-family:var(--font-d);font-size:1rem;color:var(--cyan);letter-spacing:3px;margin-bottom:4px;text-align:center}
.pin-inst{font-family:var(--font-m);font-size:0.58rem;color:var(--text-dim);letter-spacing:3px;margin-bottom:26px;text-align:center}
.pin-dots{display:flex;gap:14px;margin-bottom:32px}
.pin-dot{width:15px;height:15px;border-radius:50%;border:2px solid var(--border2);transition:all 0.2s}
.pin-dot.filled{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 10px var(--cyan-glow);transform:scale(1.1)}
.pin-dot.error{background:var(--red);border-color:var(--red);animation:pulse 0.3s 3}
.pin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}
.pin-key{height:62px;background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border2);border-radius:var(--r);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;transition:all 0.15s;user-select:none}
.pin-key:hover,.pin-key:active{background:var(--panel2);border-color:var(--cyan);transform:scale(0.96)}
.pin-key-n{font-family:var(--font-d);font-size:1.3rem;color:var(--text);line-height:1}
.pin-key-a{font-family:var(--font-m);font-size:0.4rem;color:var(--text-dim);letter-spacing:2px}
.pin-back{font-family:var(--font-m);font-size:0.6rem;color:var(--text-dim);letter-spacing:3px;cursor:pointer;margin-top:14px;padding:8px}
.pin-back:hover{color:var(--cyan)}

/* ══════════════════════════
   PROTECTED VISUAL SYSTEM — MAIN APP SHELL
   Do not redesign during stabilization.
══════════════════════════ */

/* ══════════════════════════
   MAIN APP
══════════════════════════ */
#app{display:none}
#app.active{display:flex;flex-direction:column}

/* TOPBAR */
.topbar,.gn-topbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 16px;padding-top:calc(6px + var(--safe-top));padding-bottom:10px;background:#0a0a14;background:var(--surface, #0a0a14);border-bottom:1px solid var(--border);backdrop-filter:blur(16px);z-index:50;position:sticky;top:0}
.topbar-actions{display:flex;align-items:center;gap:8px}
.topbar-btn{width:44px;height:44px;border-radius:50%;background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:0.9rem;transition:all 0.2s;position:relative}
.topbar-btn:hover{border-color:var(--cyan)}

/* LIVE NODE status pill */
.node-header-wrap{position:relative;z-index:45;flex-shrink:0;padding:8px 16px 9px;background:rgba(5,5,8,.98);border-bottom:1px solid var(--border)}
.node-pill{width:100%;display:flex;align-items:center;gap:9px;min-height:34px;padding:7px 10px;border:1px solid rgba(0,212,255,.24);border-radius:999px;background:#0a1016;color:#d8f7fc;text-align:left;font:700 .61rem var(--font-m);letter-spacing:1px;cursor:default}
.node-pill-signal{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}
.node-pill-phase{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e8fcff}
.node-pill-state{margin-left:auto;flex:0 0 auto;color:#8ea6b0;font-size:.54rem;letter-spacing:1px}
@media(max-width:560px){.node-header-wrap{padding:7px 12px 8px}.node-pill{font-size:.57rem}.node-pill-state{font-size:.49rem}}
@media(max-width:340px){.node-pill-state{display:none}}

/* SCROLL */
.scroll-body{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:calc(50px + var(--safe-bottom))}
.scroll-body::-webkit-scrollbar{display:none}

/* BOTTOM NAV */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:rgba(5,5,8,0.98);border-top:1px solid var(--border);backdrop-filter:blur(20px);display:flex;z-index:50;padding-bottom:var(--safe-bottom)}
/* Public/private shell boundary: fixed private controls stay hidden until app entry. */
body:not(.gn-private-active) .bottom-nav,
body:not(.gn-private-active) .fab{display:none!important;visibility:hidden;pointer-events:none}
.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px 8px;cursor:pointer;gap:3px;position:relative;transition:all 0.2s}
.nav-item::before{content:'';position:absolute;top:0;left:25%;right:25%;height:2px;background:var(--cyan);box-shadow:0 0 6px var(--cyan);transform:scaleX(0);transition:transform 0.2s}
.nav-item.active::before{transform:scaleX(1)}
.nav-item.active .nav-ico{color:var(--cyan);filter:drop-shadow(0 0 5px var(--cyan))}
.nav-item.active .nav-lbl{color:var(--cyan)}
.nav-ico{font-size:1.2rem;color:var(--text-dim);transition:all 0.2s}
.nav-lbl{font-family:var(--font-m);font-size:0.55rem;color:#8a8aa0;letter-spacing:2px}

/* FAB — v0.15.44 shot-console redesign: targeting-reticle log button, floats clear of the tab bar */
.fab{position:fixed;bottom:calc(106px + var(--safe-bottom));right:20px;width:56px;height:56px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#263449,#0a0e14 72%);border:2px solid rgba(255,77,77,.95);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;z-index:60;transition:transform .18s ease}
.fab::before{content:"";position:absolute;inset:-10px;border-radius:50%;border:2px dashed rgba(0,229,255,.5);animation:fab-reticle 16s linear infinite;pointer-events:none}
.fab::after{content:"";position:absolute;inset:-10px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,rgba(0,229,255,.14) 24deg,transparent 48deg);animation:fab-reticle 16s linear infinite;pointer-events:none}
.fab:hover{transform:scale(1.06)}
.fab:active{transform:scale(.9)}
.fab .gn-icon{width:26px;height:26px;color:#ff7a7a;filter:drop-shadow(0 0 7px rgba(255,90,90,.9))}
@keyframes fab-reticle{to{transform:rotate(360deg)}}

/* PAGES */
.page{display:none;padding:18px 16px}
.page.active{display:block;animation:fadeInUp 0.3s ease}

/* PAGE HEADER */
.page-hdr{margin-bottom:20px}
.page-title{font-family:var(--font-d);font-size:1.2rem;font-weight:700;color:var(--text);letter-spacing:3px;margin-bottom:2px;line-height:1.2}
.page-title .a{color:var(--cyan)}
.page-sub{font-family:var(--font-m);font-size:0.6rem;color:var(--text-dim);letter-spacing:3px}

/* STAT CARDS */
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}
.stat-card{background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border);border-top:2px solid transparent;padding:13px 10px}
.stat-card.c{border-top-color:var(--cyan)}.stat-card.r{border-top-color:var(--red)}.stat-card.g{border-top-color:var(--green)}.stat-card.y{border-top-color:var(--yellow)}.stat-card.o{border-top-color:var(--orange)}
.stat-lbl{font-family:var(--font-m);font-size:0.5rem;color:var(--text-dim);letter-spacing:2px;margin-bottom:5px;display:block}
.stat-val{font-family:var(--font-d);font-size:1.1rem;font-weight:700;line-height:1;margin-bottom:3px;display:block}
.stat-val.c{color:var(--cyan)}.stat-val.r{color:var(--red)}.stat-val.g{color:var(--green)}.stat-val.y{color:var(--yellow)}.stat-val.o{color:var(--orange)}
.stat-sub{font-family:var(--font-m);font-size:0.5rem;color:var(--text-dim);display:block}
.stat-sub.up{color:var(--green)}.stat-sub.dn{color:var(--red)}

/* 6-STAT GRID (Shotsy style) */
.stats-6{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}
.s6-card{background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border);padding:14px 12px;border-radius:var(--r)}
.s6-icon{font-size:1rem;margin-bottom:4px;display:block}
.s6-label{font-family:var(--font-m);font-size:0.5rem;color:var(--text-dim);letter-spacing:1px;display:block;margin-bottom:3px}
.s6-val{font-family:var(--font-d);font-size:1rem;font-weight:700;display:block;line-height:1}
.s6-val.g{color:var(--green)}.s6-val.c{color:var(--cyan)}.s6-val.y{color:var(--yellow)}.s6-val.r{color:var(--red)}.s6-val.o{color:var(--orange)}

/* SEC HEADER */
.sec-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.dash-adherence{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border);border-left:2px solid var(--cyan);border-radius:var(--r);margin-top:8px;font-family:var(--font-m);font-size:.68rem;letter-spacing:1.2px;color:var(--text-mid)}
.dash-adherence .streak-dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 6px var(--cyan-glow);flex-shrink:0;opacity:.85}
.dash-adherence .streak-text{color:var(--text);font-weight:500;letter-spacing:1.5px}
.dash-adherence.dim{border-left-color:var(--amber)}
.dash-adherence.dim .streak-dot{background:var(--amber);box-shadow:0 0 6px var(--amber)}
.sec-title{font-family:var(--font-m);font-size:0.62rem;color:var(--text-mid);letter-spacing:3px}
.sec-title .a{color:var(--cyan)}
.sec-act{font-family:var(--font-m);font-size:0.55rem;color:var(--text-dim);letter-spacing:2px;cursor:pointer;transition:color 0.2s}
button.sec-act{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:transparent;text-align:right}
.sec-act:hover{color:var(--cyan)}

/* CARD */
.card{background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border);padding:16px;margin-bottom:14px;border-radius:var(--r)}
.card-title{font-family:var(--font-m);font-size:0.58rem;color:var(--text-dim);letter-spacing:3px;margin-bottom:4px}
.card-val{font-family:var(--font-d);font-size:1.3rem;font-weight:700;color:var(--cyan);margin-bottom:12px;line-height:1}
.card-val span{font-size:0.72rem;color:var(--text-dim);margin-left:4px}

/* CHART */
.chart-wrap{position:relative}
.chart-wrap canvas{display:block}
.time-tabs{display:flex;gap:5px;margin-top:10px}
.time-tab{font-family:var(--font-m);font-size:0.52rem;letter-spacing:2px;padding:5px 11px;border:1px solid var(--border);color:var(--text-dim);background:transparent;cursor:pointer;transition:all 0.2s;border-radius:var(--r)}
.time-tab.active{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim)}

/* ══════════════════════════════════════════
   FEATURE 2 — CP2077 PHASE RING
══════════════════════════════════════════ */
.phase-card{background:#0b0b13;background:var(--panel, #0b0b13);border:1px solid rgba(255,255,255,.07);padding:22px 18px;margin-bottom:16px;position:relative;overflow:hidden;border-radius:18px}
.phase-card::before,.phase-card::after{content:'';position:absolute;width:12px;height:12px;border-color:rgba(255,255,255,0.14);border-style:solid;opacity:0.7}
.phase-card::before{top:8px;left:8px;border-width:1px 0 0 1px}
.phase-card::after{bottom:8px;right:8px;border-width:0 1px 1px 0}

.phase-hdr{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.phase-icon-box{width:48px;height:48px;border-radius:50%;border:2px solid var(--yellow);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:rgba(255,215,0,0.06);box-shadow:0 0 14px rgba(255,215,0,0.2);animation:pulse 3s ease infinite}
.phase-name-txt{font-family:var(--font-d);font-size:0.95rem;font-weight:700;color:var(--yellow);letter-spacing:2px;margin-bottom:2px}
.phase-num-txt{font-family:var(--font-m);font-size:0.58rem;color:var(--text-dim);letter-spacing:2px}

/* THE PERFECT CIRCLE RING */
.phase-ring-outer{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.phase-ring-svg-wrap{position:relative;width:min(280px,85vw);height:min(280px,85vw)}

/* Deco rings */
.deco-outer{position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(255,255,255,.05)}
.deco-inner{position:absolute;inset:10px;border-radius:50%;border:1px solid rgba(255,255,255,.04)}

/* SVG fills full wrap */
.ring-svg{position:absolute;inset:0;width:100%;height:100%}

/* Phase nodes */
.phase-nodes{position:absolute;inset:0}
.p-node{position:absolute;width:38px;height:38px;border-radius:50%;background:var(--panel2);border:2px solid rgba(255,255,255,0.08);display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);transition:all 0.4s ease;cursor:pointer;overflow:hidden}
.p-node.active{border-color:var(--yellow);background:rgba(255,215,0,0.1);box-shadow:0 0 16px rgba(255,215,0,0.4);transform:translate(-50%,-50%) scale(1.25)}
.p-node.passed{border-color:var(--cyan);background:rgba(0,212,255,0.06)}
.p-node.upcoming{opacity:0.35}

/* Ring center */
.ring-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}
.ring-days{font-family:var(--font-d);font-size:clamp(2rem,8.5vw,2.6rem);font-weight:500;color:#f2f5f7;line-height:1;letter-spacing:1px}
.ring-until{font-family:var(--font-m);font-size:0.6rem;color:#8b93a7;letter-spacing:3.2px;margin-top:6px}
.ring-pct{font-family:var(--font-m);font-size:0.64rem;color:#4fb8d8;letter-spacing:2.2px;margin-top:6px}
html[data-theme="light"] .ring-days{color:var(--text-1)}
html[data-theme="light"] .ring-until{color:var(--text-2)}
html[data-theme="light"] .ring-pct{color:var(--brand-cyan)}
.p-tick{position:absolute;width:7px;height:7px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid;pointer-events:none}

/* Arc particles */
.arc-particle{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--yellow);box-shadow:0 0 6px var(--yellow);animation:arcParticle 1s ease forwards;pointer-events:none}

/* Phase next + info */
.phase-next{text-align:center;font-family:var(--font-b);font-size:1rem;color:var(--text-mid);margin-bottom:18px;line-height:1.5}
.phase-next strong{color:var(--text)}.phase-next .nn{color:var(--cyan)}
.phase-info-grid{display:flex;flex-direction:column;gap:10px}
.pib{border-left:2px solid var(--border2);padding-left:12px}
.pib.body{border-left-color:var(--cyan)}.pib.se{border-left-color:var(--red)}.pib.pay{border-left-color:var(--yellow)}
.pib-label{font-family:var(--font-m);font-size:0.56rem;letter-spacing:3px;margin-bottom:3px;display:block}
.pib.body .pib-label{color:var(--cyan)}.pib.se .pib-label{color:var(--red)}.pib.pay .pib-label{color:var(--yellow)}
.pib-text{font-family:var(--font-b);font-size:0.95rem;color:var(--text-mid);line-height:1.6}


/* ══════════════════════════════════════════
   PHASE ENGINE REFINEMENT v1 — CLARITY ONLY
══════════════════════════════════════════ */
.phase-tag{font-family:var(--font-m);font-size:.52rem;color:var(--cyan);letter-spacing:2px;margin-bottom:4px;text-transform:uppercase}
.phase-support{font-family:var(--font-b);font-size:.86rem;color:var(--text-mid);line-height:1.35;margin-top:4px}
.phase-core-readouts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 16px}
.phase-readout{border:1px solid rgba(0,212,255,.14);background:linear-gradient(135deg,rgba(0,212,255,.055),rgba(0,0,0,.23));border-radius:var(--r);padding:11px 10px}
.phase-readout-label{font-family:var(--font-m);font-size:.50rem;line-height:1.25;letter-spacing:1.6px;color:#9fd9e8;text-transform:uppercase;margin-bottom:5px}
.phase-readout-value{font-family:var(--font-d);font-size:.94rem;line-height:1.08;letter-spacing:1px;color:var(--text);font-weight:900}
.phase-readout-copy{font-family:var(--font-b);font-size:.82rem;line-height:1.3;color:var(--text-mid);margin-top:5px}
.phase-transparency{display:grid;gap:10px;margin:0 0 14px}
.phase-transparency-block{border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.20);border-left:2px solid var(--cyan);border-radius:0 var(--r) var(--r) 0;padding:11px 12px}
.phase-transparency-block.data{border-left-color:var(--yellow)}
.phase-transparency-block h4{font-family:var(--font-m);font-size:.56rem;letter-spacing:2px;color:var(--cyan);text-transform:uppercase;margin-bottom:6px}
.phase-transparency-block.data h4{color:var(--yellow)}
.phase-transparency-block p,.phase-transparency-block li{font-family:var(--font-b);font-size:.90rem;line-height:1.42;color:var(--text-mid)}
.phase-transparency-block ul{margin:7px 0 0 17px}
.phase-edu-note{font-family:var(--font-m);font-size:.56rem;letter-spacing:1.2px;color:#a7dce8;line-height:1.45;border:1px solid rgba(0,212,255,.14);background:rgba(0,212,255,.045);border-left:2px solid rgba(0,212,255,.38);border-radius:var(--r);padding:10px 11px;margin-top:10px}
.protocol-curve-copy{font-family:var(--font-b);font-size:.88rem;color:var(--text-mid);line-height:1.35;margin:-4px 0 10px}
@media(max-width:380px){.phase-core-readouts{grid-template-columns:1fr}.phase-readout-value{font-size:.9rem}.phase-transparency-block p,.phase-transparency-block li{font-size:.86rem}}

/* PHASE SPHERE — separate, functional in-app readout */
.phase-sphere-card{border:1px solid rgba(0,230,240,.22);background:linear-gradient(145deg,rgba(0,230,240,.08),rgba(8,8,14,.96) 58%);border-radius:var(--r);padding:16px 14px;margin:14px 0;overflow:hidden;position:relative}
.phase-sphere-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 0 48%,rgba(0,230,240,.06) 49%,transparent 50%);opacity:.75}
.phase-sphere-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;position:relative;z-index:1}
.phase-sphere-title{font:800 .82rem var(--font-d);letter-spacing:2.2px;color:var(--cyan)}
.phase-sphere-status{font:600 .5rem var(--font-m);letter-spacing:1.3px;color:#8bb1bc;white-space:nowrap}
.phase-sphere-grid{display:grid;grid-template-columns:minmax(130px, .9fr) minmax(0,1.1fr);align-items:center;gap:15px;position:relative;z-index:1}
.phase-sphere-visual{display:grid;place-items:center;min-height:150px}
.phase-sphere-orb{--sphere-color:var(--cyan);--sphere-progress:0deg;width:min(42vw,164px);height:min(42vw,164px);border-radius:50%;display:grid;place-items:center;position:relative;background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.32),rgba(0,230,240,.09) 16%,rgba(2,15,22,.96) 64%);box-shadow:0 0 22px rgba(0,230,240,.18),inset 0 0 24px rgba(0,0,0,.75);border:1px solid rgba(0,230,240,.32)}
.phase-sphere-ring{position:absolute;inset:4%;border:1px solid rgba(0,230,240,.28);border-radius:50%;transform:rotate(-18deg);box-shadow:0 0 12px rgba(0,230,240,.14)}
.phase-sphere-ring::before{content:"";position:absolute;inset:8%;border:1px dashed rgba(255,255,255,.2);border-radius:50%;transform:scaleY(.42)}
.phase-sphere-ring::after{content:"";position:absolute;inset:13%;border:1px solid var(--sphere-color);border-radius:50%;border-right-color:transparent;border-bottom-color:transparent;transform:rotate(var(--sphere-progress));filter:drop-shadow(0 0 4px var(--sphere-color));transition:transform 1s ease,border-color .4s ease}
@keyframes sphere-pulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
.phase-sphere-ring.ring-middle{inset:12%;border-color:rgba(0,230,240,.12);border-style:dashed;transform:rotate(12deg);box-shadow:none}
.phase-sphere-ring.ring-middle::before{content:none}
.phase-sphere-ring.ring-middle::after{content:none}
.phase-sphere-ring.ring-pulse{inset:30%;border:2px solid var(--sphere-color);border-radius:50%;transform:rotate(0deg);box-shadow:0 0 18px var(--sphere-color),0 0 40px var(--sphere-color);opacity:.7;animation:sphere-pulse 2.2s ease-in-out infinite;filter:drop-shadow(0 0 8px var(--sphere-color));transition:border-color .4s ease,box-shadow .4s ease}
.phase-sphere-ring.ring-pulse::before{content:none}
.phase-sphere-ring.ring-pulse::after{content:none}
.phase-sphere-ring.ring-inner-pulse{inset:36%;border:1px solid rgba(255,255,255,.12);border-radius:50%;transform:rotate(0deg);box-shadow:inset 0 0 10px rgba(0,230,240,.08);opacity:.5;animation:sphere-pulse 3s ease-in-out 1.1s infinite}
.phase-sphere-ring.ring-inner-pulse::before{content:none}
.phase-sphere-ring.ring-inner-pulse::after{content:none}
.phase-sphere-ring.ring-inner::before{inset:16%;border-style:solid;transform:scaleX(.5)}
.phase-sphere-ring.ring-inner::after{inset:8%;border-color:rgba(255,215,0,.66);border-left-color:transparent;border-bottom-color:transparent}
.phase-sphere-ticks{position:absolute;inset:7%;border-radius:50%;pointer-events:none}
.phase-sphere-tick{position:absolute;left:50%;top:0;width:1px;height:7px;background:rgba(185,248,255,.58);transform-origin:50% calc((min(42vw,164px) * .43) + 1px);opacity:.82}
.phase-sphere-tick:nth-child(3n){height:11px;background:var(--sphere-color);box-shadow:0 0 5px var(--sphere-color)}
.phase-sphere-tick:nth-child(1){transform:translateX(-50%) rotate(0deg)}.phase-sphere-tick:nth-child(2){transform:translateX(-50%) rotate(30deg)}.phase-sphere-tick:nth-child(3){transform:translateX(-50%) rotate(60deg)}.phase-sphere-tick:nth-child(4){transform:translateX(-50%) rotate(90deg)}.phase-sphere-tick:nth-child(5){transform:translateX(-50%) rotate(120deg)}.phase-sphere-tick:nth-child(6){transform:translateX(-50%) rotate(150deg)}.phase-sphere-tick:nth-child(7){transform:translateX(-50%) rotate(180deg)}.phase-sphere-tick:nth-child(8){transform:translateX(-50%) rotate(210deg)}.phase-sphere-tick:nth-child(9){transform:translateX(-50%) rotate(240deg)}.phase-sphere-tick:nth-child(10){transform:translateX(-50%) rotate(270deg)}.phase-sphere-tick:nth-child(11){transform:translateX(-50%) rotate(300deg)}.phase-sphere-tick:nth-child(12){transform:translateX(-50%) rotate(330deg)}
.phase-sphere-marker{position:absolute;left:50%;top:6%;width:7px;height:7px;border-radius:50%;background:var(--sphere-color);box-shadow:0 0 0 4px rgba(0,230,240,.12),0 0 12px var(--sphere-color);transform:translate(-50%,-50%) rotate(var(--sphere-angle)) translateY(calc(min(42vw,164px) * -.43));transform-origin:center calc(min(42vw,164px) * .43);transition:transform 1s ease,background .4s ease,box-shadow .4s ease}
.phase-sphere-core{display:grid;place-items:center;align-content:center;gap:3px;position:relative;z-index:2;width:48%;height:48%;border-radius:50%;background:rgba(2,6,10,.88);border:1px solid rgba(255,255,255,.28);font:900 1.35rem var(--font-d);color:var(--sphere-color);text-shadow:0 0 12px var(--sphere-color);transition:color .4s ease}
.phase-sphere-core-label{font:600 .38rem var(--font-m);letter-spacing:1px;color:#b7d0d7;text-align:center;max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.phase-sphere-readout{display:grid;gap:8px;min-width:0}
.phase-sphere-kicker{font:600 .5rem var(--font-m);letter-spacing:1.7px;color:#8bb1bc}
.phase-sphere-value{font:900 clamp(1.05rem,4.6vw,1.5rem) var(--font-d);letter-spacing:1.5px;color:var(--sphere-color,var(--cyan));line-height:1.05}
.phase-sphere-progress{font:700 .62rem var(--font-m);letter-spacing:1.2px;color:#e8fcff}
.phase-sphere-since{font:400 .84rem/1.35 var(--font-b);color:var(--text-mid)}
.phase-sphere-meta{font:600 .52rem var(--font-m);letter-spacing:1.2px;color:#8bb1bc}
.phase-sphere-action{width:100%;margin-top:4px;padding:10px 11px;border:1px solid rgba(0,230,240,.3);border-radius:var(--r);background:rgba(0,230,240,.07);color:var(--cyan);font:800 .62rem var(--font-d);letter-spacing:1.6px;cursor:pointer}
.phase-sphere-action:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.phase-sphere-note{margin:13px 0 0;position:relative;z-index:1;font:400 .65rem/1.45 var(--font-m);letter-spacing:.5px;color:#91abb5}
@media(max-width:430px){.phase-sphere-grid{grid-template-columns:1fr;gap:8px}.phase-sphere-visual{min-height:142px}.phase-sphere-orb{width:min(48vw,176px);height:min(48vw,176px)}.phase-sphere-marker{transform:translate(-50%,-50%) rotate(var(--sphere-angle)) translateY(calc(min(48vw,176px) * -.43));transform-origin:center calc(min(48vw,176px) * .43)}.phase-sphere-readout{text-align:center}.phase-sphere-action{max-width:260px;justify-self:center}.phase-sphere-note{font-size:.61rem}}
@media(max-width:430px){.phase-sphere-tick{transform-origin:50% calc((min(48vw,176px) * .43) + 1px)} }
@media(prefers-reduced-motion:reduce){.phase-sphere-ring::after,.phase-sphere-marker,.phase-sphere-ring.ring-pulse,.phase-sphere-ring.ring-inner-pulse{transition:none!important;animation:none!important}.phase-sphere-ring::after{filter:none}}

/* PRODUCT COMPLETION — mobile progress, mapped import, and preference controls */
.gn-progress-signals{border-left:2px solid var(--cyan)}
.gn-progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.gn-progress-signal{display:grid;gap:4px;padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:var(--r);background:rgba(0,0,0,.22)}
.gn-progress-signal span,.gn-progress-timeline-label{font:700 .53rem var(--font-m);letter-spacing:1.4px;color:#8bb1bc}.gn-progress-signal b{font:800 .95rem var(--font-d);color:#e8fcff}.gn-progress-signal small{font:.72rem/1.3 var(--font-b);color:var(--text-mid)}
.gn-phase-timeline{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}.gn-progress-timeline-row{display:flex;align-items:center;gap:8px}.gn-progress-timeline-row i{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}.gn-progress-timeline-row span{display:grid;gap:2px}.gn-progress-timeline-row b{font:.78rem var(--font-d);color:#e8fcff}.gn-progress-timeline-row small,.gn-progress-empty{font:.72rem/1.35 var(--font-b);color:var(--text-mid)}
.gn-inventory-history{grid-column:1/-1;margin-top:7px;font:.66rem var(--font-m);color:#9ab3bc}.gn-inventory-history summary{cursor:pointer;color:#9ceff4;letter-spacing:.8px}.gn-inventory-history div{display:grid;gap:4px;padding-top:6px}.gn-inventory-history span{color:#849ba4}
.gn-preferences-card{margin-top:14px;padding:15px;border:1px solid rgba(0,230,240,.2);border-radius:var(--r);background:linear-gradient(145deg,rgba(0,230,240,.07),rgba(8,8,14,.95));}.gn-preferences-card h3{margin:4px 0 5px;font:800 1rem var(--font-d);letter-spacing:1.8px;color:#e8fcff}.gn-preferences-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gn-preferences-grid label{display:grid;gap:5px;font:.56rem var(--font-m);letter-spacing:1.1px;color:#a6c5cc}.gn-preferences-grid input,.gn-preferences-grid select{width:100%;min-height:40px;padding:9px 10px;border:1px solid rgba(255,255,255,.12);border-radius:var(--r);background:rgba(0,0,0,.3);color:#f3fbff;font: .84rem var(--font-b)}.gn-preferences-grid .gn-pref-wide{grid-column:1/-1}.gn-preferences-grid label:has(input[type="checkbox"]){display:flex;align-items:center;grid-template-columns:auto 1fr;gap:8px;font-size:.68rem}.gn-preferences-grid input[type="checkbox"]{width:18px;min-height:18px}.gn-preferences-status{margin-top:9px;font:.58rem var(--font-m);letter-spacing:1px;color:#9ceff4}
.gn-import-map-button{width:100%;margin-top:8px;padding:10px;border:1px solid rgba(0,230,240,.35);border-radius:var(--r);background:rgba(0,230,240,.06);color:#9ceff4;font:700 .65rem var(--font-d);letter-spacing:1.3px}.gn-mapping-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.gn-mapping-grid label{display:grid;gap:4px;font:.55rem var(--font-m);letter-spacing:1px;color:#a6c5cc}.gn-mapping-grid select{min-height:38px;padding:7px;background:#11141c;border:1px solid rgba(255,255,255,.15);border-radius:var(--r);color:#f3fbff}.gn-import-actions{display:flex;gap:8px;margin-top:10px}.gn-import-actions button{flex:1}
@media(max-width:430px){.gn-progress-grid,.gn-preferences-grid,.gn-mapping-grid{grid-template-columns:1fr}.gn-preferences-grid .gn-pref-wide{grid-column:auto}.gn-progress-signal{padding:9px}.gn-preferences-card{padding:13px}}

/* ══════════════════════════════════════════
   ANIMATED PHASE ICONS — CP2077 STYLE
══════════════════════════════════════════ */

/* Icon 1: ACTIVATION — Electric bolt */
.icon-activation{width:24px;height:24px;position:relative}
.icon-activation svg{animation:electricArc 1.5s ease infinite}

/* Icon 2: TAKING EFFECT — Animated syringe fill */
.icon-taking{width:22px;height:26px;position:relative}

/* Icon 3: PEAK EFFECT — EKG heartbeat */
.icon-peak{width:26px;height:18px}
.icon-peak .ekg-line{stroke-dasharray:100;stroke-dashoffset:100;animation:ekg 1.8s ease infinite}

/* Icon 4: CRUISE — Spinning hexagon */
.icon-cruise{width:24px;height:24px}
.icon-cruise .hex{animation:hexSpin 4s linear infinite;transform-origin:center}

/* Icon 5: WINDING — Dropping bars */
.icon-winding{width:22px;height:20px;display:flex;align-items:flex-end;gap:2px}
.wbar{width:4px;background:var(--orange);border-radius:1px;transform-origin:bottom}
.wbar:nth-child(1){animation:barDrop 2s ease infinite 0s}
.wbar:nth-child(2){animation:barDrop 2s ease infinite 0.2s}
.wbar:nth-child(3){animation:barDrop 2s ease infinite 0.4s}
.wbar:nth-child(4){animation:barDrop 2s ease infinite 0.6s}

/* Icon 6: WEAR-OFF — Fading signal */
.icon-wearoff{width:24px;height:24px}
.icon-wearoff .fade-ring{animation:fadePulse 2.5s ease infinite}

/* ══════════════════════════════════════════
   CUSTOM CYBERPUNK DROPDOWNS
   (Replaces all native <select> elements)
══════════════════════════════════════════ */
.cp-select{position:relative;width:100%}
.cp-select-trigger{width:100%;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r);color:var(--text);font-family:var(--font-b);font-size:1rem;padding:12px 40px 12px 14px;cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;transition:border-color 0.2s;user-select:none}
.cp-select-trigger:focus,.cp-select-trigger.open{border-color:var(--cyan);outline:none}
.cp-select-trigger .placeholder{color:var(--text-dim)}
.cp-select-arrow{font-size:0.7rem;color:var(--cyan);transition:transform 0.2s;flex-shrink:0}
.cp-select-trigger.open .cp-select-arrow{transform:rotate(180deg)}

.cp-dropdown{position:fixed;left:16px;right:16px;background:var(--panel2);border:1px solid var(--border2);border-top:2px solid var(--cyan);z-index:500;max-height:60vh;overflow-y:auto;display:none;box-shadow:0 8px 32px rgba(0,0,0,0.6);border-radius:0 0 var(--r) var(--r)}
.cp-dropdown.open{display:block;animation:slideDown 0.2s ease}
.cp-dropdown::-webkit-scrollbar{display:none}
.cp-group-label{font-family:var(--font-m);font-size:0.55rem;color:var(--text-dim);letter-spacing:4px;padding:10px 16px 6px;border-bottom:1px solid var(--border)}
.cp-option{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:background 0.15s;font-family:var(--font-b);font-size:1rem;color:var(--text-mid);border-bottom:1px solid var(--border)}
.cp-option:last-child{border-bottom:none}
.cp-option:hover,.cp-option:active{background:var(--panel3);color:var(--text)}
.cp-option.selected{color:var(--cyan)}
.cp-option .check{color:var(--cyan);font-size:0.9rem}

/* ══════════════════════════════════════════
   MODALS
══════════════════════════════════════════ */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,0.88);z-index:200;display:none;align-items:flex-end;backdrop-filter:blur(6px)}
.overlay.active{display:flex}
.modal{width:100%;background:#0e0e16;background:var(--panel, #0e0e16);border-top:2px solid var(--red);max-height:92vh;overflow-y:auto;padding:18px 16px;padding-bottom:calc(18px + var(--safe-bottom));animation:slideUp 0.35s cubic-bezier(0.34,1.56,0.64,1)}
.modal::-webkit-scrollbar{display:none}
.modal-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.modal-title{font-family:var(--font-d);font-size:1rem;color:var(--text);letter-spacing:3px}
.modal-actions{display:flex;gap:8px}
.modal-btn{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;border:none;transition:all 0.2s}
.modal-btn.close{background:var(--panel2);color:var(--text-dim);border:1px solid var(--border2)}
.modal-btn.close:hover{color:var(--red);border-color:var(--red)}
.modal-btn.save{background:var(--red);color:#fff;box-shadow:0 0 16px var(--red-glow)}
.modal-btn.save:hover{transform:scale(1.05)}


/* ══════════════════════════════════════════
   MVP WORKFLOW POLISH v1 — ARCHIVE CONFIRM
   In-app confirmation replaces native browser confirm for SHOTS archive.
══════════════════════════════════════════ */
.archive-confirm-overlay{position:fixed;inset:0;z-index:520;background:rgba(0,0,0,.82);display:none;align-items:center;justify-content:center;padding:22px;backdrop-filter:blur(8px)}
.archive-confirm-overlay.active{display:flex;animation:fadeIn .18s ease}
.archive-confirm-panel{width:min(360px,100%);background:linear-gradient(180deg,rgba(18,18,28,.98),rgba(8,8,13,.98));border:1px solid rgba(255,215,0,.22);border-top:2px solid var(--yellow);box-shadow:0 18px 50px rgba(0,0,0,.62),0 0 30px rgba(255,215,0,.08);border-radius:var(--r);padding:18px 16px;position:relative;overflow:hidden}
.archive-confirm-panel::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,215,0,.045),transparent);pointer-events:none}
.archive-confirm-title{font-family:var(--font-d);font-size:.92rem;letter-spacing:2px;color:var(--yellow);margin-bottom:9px;text-transform:uppercase}
.archive-confirm-body{font-family:var(--font-b);font-size:1rem;line-height:1.45;color:var(--text-mid);margin-bottom:12px}
.archive-confirm-system{font-family:var(--font-m);font-size:.56rem;letter-spacing:1.8px;color:rgba(0,212,255,.72);margin-bottom:16px;text-transform:uppercase}
.archive-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.archive-confirm-actions button{border-radius:var(--r);padding:12px 10px;font-family:var(--font-d);font-size:.72rem;letter-spacing:2px;cursor:pointer;transition:all .18s;text-transform:uppercase}
.archive-confirm-cancel{background:transparent;color:var(--text-mid);border:1px solid var(--border2)}
.archive-confirm-cancel:hover,.archive-confirm-cancel:active{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim)}
.archive-confirm-archive{background:rgba(255,215,0,.11);color:var(--yellow);border:1px solid rgba(255,215,0,.45);box-shadow:0 0 14px rgba(255,215,0,.08)}
.archive-confirm-archive:hover,.archive-confirm-archive:active{background:rgba(255,215,0,.18);box-shadow:0 0 18px rgba(255,215,0,.16)}

.archive-actions{align-items:center;flex-direction:column;gap:6px;min-width:132px}
.archived-action-btn{width:auto;min-width:128px;height:auto;border-radius:var(--r);padding:7px 8px;font-family:var(--font-m);font-size:.48rem;letter-spacing:1.1px;line-height:1.1;text-align:center;white-space:normal}
.log-action-btn.restore{border-color:rgba(0,255,136,.34);color:var(--green);background:rgba(0,255,136,.07)}
.log-action-btn.restore:hover,.log-action-btn.restore:active{border-color:var(--green);color:var(--green);background:rgba(0,255,136,.12)}
.archive-confirm-panel.danger{border-color:rgba(255,59,59,.26);border-top-color:var(--red);box-shadow:0 18px 50px rgba(0,0,0,.62),0 0 30px rgba(255,59,59,.10)}
.archive-confirm-panel.danger .archive-confirm-title{color:var(--red)}
.archive-confirm-panel.danger .archive-confirm-system{color:rgba(255,215,0,.78)}
.archive-confirm-delete{background:rgba(255,59,59,.12);color:#FF5B5B;border:1px solid rgba(255,59,59,.48);box-shadow:0 0 14px rgba(255,59,59,.08)}
.archive-confirm-delete:hover,.archive-confirm-delete:active{background:rgba(255,59,59,.20);box-shadow:0 0 18px rgba(255,59,59,.16)}

.archive-actions{
  align-items:stretch;
  flex-direction:column;
  gap:7px;
  min-width:118px;
  max-width:128px;
}

.archived-action-btn{
  width:100%;
  min-width:0;
  min-height:42px;
  height:auto;
  border-radius:4px;
  padding:7px 8px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:3px;
  text-align:left;
  white-space:normal;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);
  clip-path:polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,5px 100%,0 calc(100% - 5px));
}

.archived-action-btn .archive-action-main{
  font-family:var(--font-d);
  font-size:.50rem;
  letter-spacing:1.35px;
  line-height:1;
  display:block;
}

.archived-action-btn .archive-action-sub{
  font-family:var(--font-m);
  font-size:.42rem;
  letter-spacing:.85px;
  line-height:1.05;
  opacity:.78;
  display:block;
}

.log-action-btn.restore.archived-action-btn{
  border-color:rgba(0,212,255,.34);
  color:#7ee7f3;
  background:
    linear-gradient(135deg,rgba(0,212,255,.105),rgba(0,126,142,.055)),
    rgba(2,16,20,.42);
  box-shadow:inset 0 0 0 1px rgba(0,212,255,.045),0 0 10px rgba(0,212,255,.055);
}

.log-action-btn.restore.archived-action-btn:hover,
.log-action-btn.restore.archived-action-btn:active{
  border-color:rgba(0,212,255,.55);
  color:#9af4ff;
  background:
    linear-gradient(135deg,rgba(0,212,255,.145),rgba(0,126,142,.075)),
    rgba(2,16,20,.50);
  box-shadow:inset 0 0 0 1px rgba(0,212,255,.07),0 0 12px rgba(0,212,255,.08);
}

.log-action-btn.del.archived-action-btn{
  border-color:rgba(255,51,119,.34);
  color:#FF5B5B;
  background:
    linear-gradient(135deg,rgba(255,51,119,.105),rgba(88,12,34,.085)),
    rgba(20,4,12,.42);
  box-shadow:inset 0 0 0 1px rgba(255,51,119,.04),0 0 10px rgba(255,51,119,.055);
}

.log-action-btn.del.archived-action-btn:hover,
.log-action-btn.del.archived-action-btn:active{
  border-color:rgba(255,51,119,.58);
  color:#FF7B7B;
  background:
    linear-gradient(135deg,rgba(255,51,119,.145),rgba(88,12,34,.105)),
    rgba(20,4,12,.52);
  box-shadow:inset 0 0 0 1px rgba(255,51,119,.07),0 0 12px rgba(255,51,119,.09);
}

@media(max-width:380px){
  .archive-actions{min-width:110px;max-width:120px;gap:6px}
  .archived-action-btn{min-height:40px;padding:6px 7px}
  .archived-action-btn .archive-action-main{font-size:.47rem;letter-spacing:1.1px}
  .archived-action-btn .archive-action-sub{font-size:.39rem;letter-spacing:.7px}
}


/* FORM */
.form-group{margin-bottom:16px}
.form-label{font-family:var(--font-m);font-size:0.58rem;color:var(--text-dim);letter-spacing:3px;display:block;margin-bottom:7px}
.form-input,.form-textarea{width:100%;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r);color:var(--text);font-family:var(--font-b);font-size:1rem;padding:12px 14px;outline:none;transition:border-color 0.2s;-webkit-appearance:none}
.form-input:focus,.form-textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 2px var(--cyan-dim)}
.form-input::placeholder,.form-textarea::placeholder{color:var(--text-dim)}
.form-textarea{height:88px;resize:none}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* DOSE PILLS */
.dose-pills{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}
.dose-pill{padding:7px 13px;background:var(--bg2);border:1px solid var(--border2);border-radius:20px;color:var(--text-mid);font-family:var(--font-m);font-size:0.68rem;letter-spacing:1px;cursor:pointer;transition:all 0.2s}
.dose-pill.active,.dose-pill:hover{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim)}

/* SIDE EFFECTS */
.se-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.se-check{display:flex;align-items:center;gap:9px;font-family:var(--font-b);font-size:0.95rem;color:var(--text-mid);cursor:pointer;padding:9px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);transition:all 0.2s}
.se-check:hover{border-color:rgba(255,59,59,0.3);color:var(--text)}
.se-check input{accent-color:var(--red);width:16px;height:16px}

/* BUTTONS */
.btn-full{width:100%;padding:14px;font-family:var(--font-d);font-size:0.82rem;letter-spacing:3px;border:none;border-radius:var(--r);cursor:pointer;transition:all 0.2s;margin-top:4px}
.btn-primary{background:linear-gradient(135deg,var(--red),#D12424);color:#fff;box-shadow:0 4px 16px rgba(255,59,59,0.3)}
.btn-primary:hover{box-shadow:0 6px 24px rgba(255,59,59,0.5);transform:translateY(-1px)}
.btn-secondary{background:transparent;color:var(--cyan);border:1px solid var(--cyan);margin-top:9px}
.btn-secondary:hover{background:var(--cyan-dim)}

/* DIVIDER */
.divider{height:1px;background:var(--border);margin:18px 0}

/* EMPTY STATE */
.empty{text-align:center;padding:44px 20px;font-family:var(--font-m);font-size:0.62rem;color:var(--text-dim);letter-spacing:2px;line-height:2.5}
.empty-ico{font-size:2.4rem;display:block;margin-bottom:10px;opacity:0.35}
.empty-cta{margin-top:18px;display:inline-block;min-width:200px;max-width:280px;font-size:0.7rem;line-height:1.2;letter-spacing:2.5px;padding:14px 18px}

/* TOAST */
.toast{position:fixed;bottom:calc(84px + var(--safe-bottom));left:14px;right:14px;z-index:400;background:var(--panel2);border:1px solid var(--green);border-left:3px solid var(--green);padding:13px 15px;font-family:var(--font-b);font-size:1rem;color:var(--green);box-shadow:0 4px 20px rgba(0,255,136,0.12);display:none;animation:slideUp 0.3s ease;border-radius:var(--r)}
.toast.active{display:block}
.toast.err{border-color:var(--red);color:var(--red)}
/* CLARITY PASS (QA toast layering, 2026-10-14): the toast must never cover
   a modal's primary action. The body never intercepts taps (its buttons
   stay live), and while any modal overlay is active the toast docks to
   the top of the screen (JS toggles .gn-toast-yield from 00-shared.js),
   slimmed to one row, clear of the bottom sheets and their action bars.
   !important is required: app.js injects competing .toast position rules. */
.toast{pointer-events:none !important}
.toast button{pointer-events:auto !important}
.toast.gn-toast-yield{top:calc(var(--safe-top, 0px) + 8px) !important;bottom:auto !important;padding:6px 10px}
.toast.gn-toast-yield .gn-toast-detail,
.toast.gn-toast-yield .gn-toast-bar,
.toast.gn-toast-yield .gn-toast-check{display:none}
.toast.gn-toast-yield .gn-toast-undo{padding:6px 10px}
.toast.gn-toast-yield .gn-toast-body{padding:0}

/* FLASH */
.flash{position:fixed;inset:0;z-index:500;pointer-events:none;opacity:0;background:rgba(255,59,59,0.12);transition:opacity 0.1s}
.flash.on{opacity:1}

/* FLOAT PARTICLE */
.float-p{position:fixed;z-index:450;font-family:var(--font-d);font-weight:900;font-size:1.1rem;color:var(--green);text-shadow:0 0 10px var(--green);pointer-events:none;animation:floatUp 1.2s ease forwards}
.ripple-c{position:fixed;z-index:440;width:56px;height:56px;border-radius:50%;border:2px solid var(--red);margin-left:-28px;margin-top:-28px;pointer-events:none;animation:ripple 0.8s ease forwards}

/* LOG ENTRY */
.log-month{font-family:var(--font-m);font-size:0.6rem;color:var(--text-dim);letter-spacing:4px;padding:10px 0 6px;border-bottom:1px solid var(--border);margin-bottom:10px}
.log-entry{background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border);border-left:3px solid var(--red);padding:14px;margin-bottom:8px;border-radius:0 var(--r) var(--r) 0;animation:fadeInUp 0.3s ease}
.log-entry-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.log-entry-left{}
.log-shot-num{font-family:var(--font-m);font-size:0.55rem;color:var(--text-dim);letter-spacing:2px;margin-bottom:2px}
.log-med{font-family:var(--font-d);font-size:0.88rem;color:var(--text);letter-spacing:2px}
.log-date{font-family:var(--font-m);font-size:0.58rem;color:var(--text-dim);margin-top:2px}
.log-dose{font-family:var(--font-d);font-size:1.2rem;font-weight:900;color:var(--yellow)}
.log-actions{display:flex;gap:6px;margin-left:8px}
.log-action-btn{width:28px;height:28px;border-radius:50%;background:var(--panel2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:0.75rem;transition:all 0.2s;color:var(--text-mid);padding:0;font-family:inherit;-webkit-appearance:none;appearance:none}
.log-action-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.log-action-btn.del:hover{border-color:var(--red);color:var(--red)}
.log-entry:not(.archived-record) .log-actions{margin:10px 0 0;justify-content:flex-end}
.log-entry:not(.archived-record) .log-action-btn{width:auto;min-width:72px;min-height:36px;height:auto;border-radius:3px;padding:8px 12px;font-family:var(--font-d);font-size:.58rem;letter-spacing:1.2px}
.log-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.log-chip{font-family:var(--font-m);font-size:0.52rem;letter-spacing:1px;padding:3px 8px;border-radius:2px}
.lc-site{background:var(--cyan-dim);color:var(--cyan)}.lc-wt{background:var(--green-dim);color:var(--green)}.lc-se{background:var(--red-dim);color:var(--red)}
.log-notes{font-family:var(--font-b);font-size:0.9rem;color:var(--text-dim);margin-top:8px;line-height:1.5;padding-top:8px;border-top:1px solid var(--border)}

.shot-history-controls{
  display:flex;
  gap:8px;
  margin:10px 0 8px;
}
.shot-history-toggle{
  flex:1;
  border:1px solid rgba(0,212,255,0.16);
  background:rgba(0,0,0,0.24);
  color:#9fd9e8;
  font-family:var(--font-m);
  font-size:0.56rem;
  letter-spacing:2.4px;
  padding:12px 8px;
  min-height:44px;
  border-radius:var(--r);
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease;
}
.shot-history-toggle.active{
  color:var(--cyan);
  border-color:rgba(0,212,255,0.46);
  background:rgba(0,212,255,0.10);
  box-shadow:0 0 14px rgba(0,212,255,0.10) inset;
}
.shot-history-helper{
  font-family:var(--font-m);
  font-size:0.56rem;
  line-height:1.45;
  letter-spacing:1.5px;
  color:#8fa8b5;
  border:1px solid rgba(255,255,255,0.07);
  border-left:2px solid rgba(0,212,255,0.32);
  background:rgba(0,0,0,0.18);
  padding:9px 10px;
  border-radius:var(--r);
  margin-bottom:12px;
}
.shot-history-helper b{
  color:#9fd9e8;
}
.log-chip.lc-se,
.lc-se{
  background:rgba(255,51,92,0.20);
  color:#FF5B5B;
  border:1px solid rgba(255,122,147,0.34);
  text-shadow:0 0 7px rgba(255,59,59,0.28);
}



.log-entry.archived-record .log-shot-num,
.log-entry.archived-record .log-date,
.log-entry.archived-record .log-notes,
.shot-history-helper,
.shot-history-helper span{
  color:#a9bbc7 !important;
}
.log-entry.archived-record .log-date{
  font-size:.62rem;
  line-height:1.65;
  letter-spacing:1.2px;
}
.shot-history-helper{
  color:#a9bbc7 !important;
  border-left-color:rgba(0,212,255,.42);
}
.shot-history-helper b{
  color:#b9edf6 !important;
}
.archive-actions{
  min-width:136px;
  gap:7px;
}
.archived-action-btn{
  width:136px;
  min-width:136px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:8px 7px;
  line-height:1.1;
}
.archived-action-btn .archive-action-main{
  font-family:var(--font-d);
  font-size:.54rem;
  letter-spacing:1.5px;
  line-height:1.1;
  white-space:nowrap;
}
.archived-action-btn .archive-action-sub{
  font-family:var(--font-m);
  font-size:.40rem;
  letter-spacing:.9px;
  line-height:1.1;
  opacity:.82;
  white-space:nowrap;
}
.log-action-btn.restore .archive-action-main{
  color:#32ff9a;
}
.log-action-btn.restore .archive-action-sub{
  color:#9becc2;
}
.log-action-btn.del .archive-action-main{
  color:#FF5B5B;
}
.log-action-btn.del .archive-action-sub{
  color:#ffb1bf;
}


/* NEXT SHOT CARD */
.next-shot-card{background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border);border-top:2px solid var(--red);padding:16px;margin-bottom:14px;border-radius:0 0 var(--r) var(--r)}
.nsc-label{font-family:var(--font-m);font-size:0.58rem;color:var(--text-dim);letter-spacing:3px;margin-bottom:6px}
.nsc-shot{font-family:var(--font-d);font-size:0.95rem;color:var(--text);letter-spacing:2px;margin-bottom:2px}
.nsc-dose{display:inline-block;background:var(--yellow-dim);border:1px solid var(--yellow);color:var(--yellow);font-family:var(--font-m);font-size:0.7rem;padding:3px 10px;border-radius:12px;margin-left:8px}
.nsc-site{font-family:var(--font-m);font-size:0.58rem;color:var(--text-dim);margin-top:4px}

/* WEIGHT LOG QUICK */
.weight-quick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.wq-card{background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border);padding:14px;cursor:pointer;transition:all 0.2s;border-radius:var(--r)}
.wq-card:hover{border-color:var(--cyan);background:var(--panel2)}
.wq-icon{font-size:1.4rem;margin-bottom:6px;display:block}
.wq-label{font-family:var(--font-m);font-size:0.58rem;color:var(--text-dim);letter-spacing:2px;display:block;margin-bottom:3px}
.wq-val{font-family:var(--font-d);font-size:1.1rem;font-weight:700;color:var(--green);display:block}

/* CALENDAR */
.cal-wrap{background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:14px}
.cal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}
.cal-title{font-family:var(--font-d);font-size:0.85rem;color:var(--cyan);letter-spacing:2px}
.cal-nav{width:44px;height:44px;padding:0;background:var(--panel2);border:1px solid var(--border2);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-mid);font-size:0.9rem;transition:all 0.2s}
.cal-nav:hover{border-color:var(--cyan);color:var(--cyan)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-day-name{font-family:var(--font-m);font-size:0.52rem;color:var(--text-dim);letter-spacing:2px;text-align:center;padding:8px 0;border-bottom:1px solid var(--border)}
.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;background:var(--panel);transition:background 0.15s;border-bottom:1px solid var(--border);border-right:1px solid var(--border)}
.cal-day:nth-child(7n){border-right:none}
.cal-day-num{font-family:var(--font-b);font-size:0.95rem;color:var(--text-mid);line-height:1}
.cal-day.today .cal-day-num{color:var(--cyan);font-weight:700}
.cal-day.today{background:var(--cyan-dim)}
.cal-day.has-shot::after{content:'';position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--red);box-shadow:0 0 4px var(--red)}
.cal-day.has-weight::before{content:'';position:absolute;top:3px;right:3px;width:4px;height:4px;border-radius:50%;background:var(--green)}
.cal-day:hover{background:var(--panel2)}
.cal-day.other-month .cal-day-num{color:var(--text-dim);opacity:0.3}
.cal-day.selected{background:var(--panel3);border-color:var(--border2)}

/* Cal detail panel */
.cal-detail{background:var(--panel2);border-top:2px solid var(--cyan);padding:16px;animation:fadeInUp 0.2s ease}
.cal-detail-date{font-family:var(--font-d);font-size:0.85rem;color:var(--cyan);letter-spacing:2px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}
.cal-detail-close{cursor:pointer;color:var(--text-dim);font-size:1.1rem}
.cal-detail-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}
.cal-detail-row:last-child{border-bottom:none}
.cal-detail-icon{font-size:1.2rem;width:28px;text-align:center;flex-shrink:0}
.cal-detail-info{flex:1}
.cal-detail-label{font-family:var(--font-m);font-size:0.56rem;color:var(--text-dim);letter-spacing:2px;display:block;margin-bottom:2px}
.cal-detail-val{font-family:var(--font-b);font-size:1rem;color:var(--text)}
.cal-detail-tap{font-family:var(--font-b);font-size:0.9rem;color:var(--text-dim);cursor:pointer}
.cal-detail-tap:hover{color:var(--cyan)}

/* ARSENAL */
.arsenal-item{background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border);border-left:3px solid transparent;padding:14px;margin-bottom:9px;border-radius:0 var(--r) var(--r) 0}
.arsenal-item.compound{border-left-color:var(--cyan)}.arsenal-item.research{border-left-color:var(--yellow)}.arsenal-item.supply{border-left-color:var(--green)}
.arsenal-row{display:flex;align-items:flex-start;gap:11px}
.arsenal-icon{font-size:1.7rem;flex-shrink:0;margin-top:2px}
.arsenal-info{flex:1;min-width:0}
.arsenal-name{font-family:var(--font-d);font-size:0.82rem;color:var(--text);letter-spacing:2px;margin-bottom:2px}
.arsenal-meta{font-family:var(--font-m);font-size:0.56rem;color:var(--text-dim);letter-spacing:1px;line-height:1.7}
.arsenal-meta .warn{color:var(--red)}
.arsenal-remaining{font-family:var(--font-d);font-size:1.1rem;font-weight:700;flex-shrink:0;text-align:right}
.arsenal-item.compound .arsenal-remaining{color:var(--cyan)}.arsenal-item.research .arsenal-remaining{color:var(--yellow)}.arsenal-item.supply .arsenal-remaining{color:var(--green)}
.arsenal-bar-wrap{height:3px;background:var(--border);margin-top:8px;border-radius:2px;overflow:hidden}
.arsenal-bar{height:100%;border-radius:2px;transition:width 0.5s ease}
.arsenal-item.compound .arsenal-bar{background:var(--cyan);box-shadow:0 0 5px var(--cyan)}.arsenal-item.research .arsenal-bar{background:var(--yellow)}.arsenal-item.supply .arsenal-bar{background:var(--green)}

/* NO DATA */
.no-data{font-family:var(--font-m);font-size:0.58rem;color:var(--text-dim);letter-spacing:2px;text-align:center;padding:20px}

/* PROFILE */
.profile-hero{display:flex;align-items:center;gap:15px;padding:18px;background:#0e0e16;background:var(--panel, #0e0e16);border:1px solid var(--border);margin-bottom:18px;border-radius:var(--r)}
.profile-name-txt{font-family:var(--font-d);font-size:1.1rem;color:var(--text);letter-spacing:2px;margin-bottom:3px}
.profile-med-txt{font-family:var(--font-m);font-size:0.6rem;color:var(--cyan);letter-spacing:2px;margin-bottom:2px}
.profile-ver{font-family:var(--font-m);font-size:0.52rem;color:var(--text-dim);letter-spacing:2px}

/* VAULT v1 DATA OWNERSHIP LAYER */
.vault-card{background:linear-gradient(180deg,rgba(18,18,28,.96),rgba(9,9,14,.96));border:1px solid rgba(0,212,255,.11);border-left:2px solid rgba(0,212,255,.34);padding:15px;margin-bottom:14px;border-radius:var(--r);position:relative;overflow:hidden}
.vault-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,212,255,.035),transparent 45%,rgba(255,0,204,.025));pointer-events:none}
.vault-card>*{position:relative;z-index:1}
.vault-card-title{font-family:var(--font-m);font-size:.58rem;color:#9fd9e8;letter-spacing:2.8px;text-transform:uppercase;margin-bottom:10px}
.vault-card-title .warn{color:#ffd780}
.vault-identity-row{display:flex;align-items:center;gap:14px}
.vault-initials{width:58px;height:58px;border-radius:10px;border:1px solid rgba(0,212,255,.42);background:radial-gradient(circle at 30% 20%,rgba(0,212,255,.16),rgba(0,0,0,.28));display:flex;align-items:center;justify-content:center;font-family:var(--font-d);font-size:1.15rem;color:var(--cyan);letter-spacing:1px;box-shadow:inset 0 0 18px rgba(0,212,255,.08)}
.vault-copy{font-family:var(--font-b);font-size:.92rem;color:#a9bbc7;line-height:1.45;margin-bottom:8px}
.vault-system-line{font-family:var(--font-m);font-size:.54rem;color:rgba(0,212,255,.72);letter-spacing:1.8px;text-transform:uppercase;margin-top:8px}
.vault-pref-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.vault-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.08);border-radius:var(--r);padding:10px 11px}
.vault-toggle span{font-family:var(--font-m);font-size:.56rem;color:#b6cbd6;letter-spacing:1.5px;text-transform:uppercase}
.vault-toggle input{accent-color:var(--cyan);width:17px;height:17px}
.vault-note{font-family:var(--font-m);font-size:.56rem;line-height:1.45;color:#9bb0bd;letter-spacing:1.2px;border:1px solid rgba(255,255,255,.07);background:rgba(0,0,0,.20);border-left:2px solid rgba(255,215,0,.34);border-radius:var(--r);padding:10px;margin-top:8px}

/* PWA v1.2: mobile app-like */
.gn-pwa-install-banner{position:fixed;left:14px;right:14px;bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:120;background:linear-gradient(180deg,rgba(0,212,255,.96),rgba(0,180,220,.96));color:#001318;border:1.5px solid rgba(0,212,255,1);border-radius:var(--r,12px);padding:14px 16px;box-shadow:0 12px 36px rgba(0,212,255,.4);display:flex;align-items:center;gap:12px;font-family:var(--font-b,system-ui);font-size:.92rem;animation:gnPwaBannerIn .4s cubic-bezier(0.34,1.56,0.64,1)}
.gn-pwa-install-banner button{background:#001318;color:#00e5ff;border:1px solid rgba(0,212,255,.5);padding:8px 14px;border-radius:8px;font:inherit;cursor:pointer;font-weight:600;letter-spacing:.5px;-webkit-tap-highlight-color:transparent;min-height:44px}
.gn-pwa-install-banner button.gn-pwa-close{background:transparent;color:#001318;border-color:transparent;padding:8px 10px;min-width:44px;min-height:44px;font-size:1.3rem;line-height:1}
.gn-pwa-install-banner .gn-pwa-text{flex:1;line-height:1.3}
.gn-pwa-install-banner .gn-pwa-text b{display:block;font-size:.95rem;margin-bottom:2px;letter-spacing:.3px}
.gn-pwa-install-banner .gn-pwa-text span{font-size:.78rem;opacity:.85}
.gn-pwa-ios-hint{position:fixed;inset:0;z-index:200;background:rgba(2,2,8,.92);backdrop-filter:blur(12px);display:flex;align-items:flex-end;justify-content:center;padding-bottom:calc(40px + env(safe-area-inset-bottom,20px));padding-left:18px;padding-right:18px;animation:gnPwaFadeIn .3s ease}
.gn-pwa-ios-hint-card{background:linear-gradient(180deg,#1a1a26,#0a0a14);border:1.5px solid rgba(0,212,255,.5);border-radius:16px;padding:18px;max-width:380px;color:#e7fbff;font-family:var(--font-b,system-ui);box-shadow:0 24px 80px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.05)}
.gn-pwa-ios-hint-card h3{margin:0 0 8px 0;font-family:var(--font-m,monospace);font-size:.95rem;color:#00e5ff;letter-spacing:2px;text-transform:uppercase}
.gn-pwa-ios-hint-card p{margin:0 0 14px 0;font-size:.85rem;color:#b0bbc7;line-height:1.45}
.gn-pwa-ios-hint-card .gn-pwa-ios-steps{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.gn-pwa-ios-hint-card .gn-pwa-ios-step{display:flex;align-items:center;gap:10px;font-size:.82rem;color:#c0c5d0}
.gn-pwa-ios-hint-card .gn-pwa-ios-step .step-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:rgba(0,212,255,.1);border-radius:6px;color:#00e5ff;font-size:1.1rem;flex-shrink:0}
.gn-pwa-ios-hint-card button{background:linear-gradient(135deg,var(--red,#FF3B3B),#D12424);color:#fff;border:none;padding:12px 18px;border-radius:8px;font:inherit;font-weight:600;letter-spacing:.5px;cursor:pointer;width:100%;min-height:44px;-webkit-tap-highlight-color:transparent}
.gn-pwa-ios-hint-card button.gn-pwa-ios-later{background:transparent;color:#7a8c97;margin-top:6px;font-weight:400}
.gn-pwa-update-toast{position:fixed;top:calc(20px + env(safe-area-inset-top,0px));left:14px;right:14px;z-index:140;background:linear-gradient(135deg,#05ffa1,#00cc88);color:#001a10;padding:14px;border-radius:12px;font-family:var(--font-b,system-ui);font-weight:600;text-align:center;box-shadow:0 8px 24px rgba(5,255,161,.4);display:flex;align-items:center;justify-content:space-between;gap:12px;animation:gnPwaBannerIn .4s ease}
.gn-pwa-update-toast button{background:#001a10;color:#05ffa1;border:none;padding:8px 14px;border-radius:6px;font:inherit;font-weight:600;cursor:pointer;min-height:36px}
@keyframes gnPwaBannerIn{from{transform:translateY(120%);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes gnPwaFadeIn{from{opacity:0}to{opacity:1}}
@media (display-mode:standalone){
  body{padding-top:env(safe-area-inset-top,0px)!important}
}
html,body{overscroll-behavior-y:contain;touch-action:pan-y}
.cp-option,.se-check,.vault-toggle,.dose-pill,button{min-height:44px}
.cp-option,.se-check{padding:12px 14px}
@media (prefers-reduced-motion:reduce){
  .gn-pwa-install-banner,.gn-pwa-ios-hint,.gn-pwa-update-toast{animation:none}
  *,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important;animation-iteration-count:1!important}
  /* ponytail: kill eye-fatigue shadows when user prefers reduced motion */
  .landing-logo,.gn-syr-num{text-shadow:none!important}
  .gn-pulse,.gn-glow,.pulse{animation:none!important;box-shadow:none!important}
}

/* ponytail: focus visibility for keyboard nav — was missing on vault-action-btn */
.vault-action-btn:focus-visible,.dose-pill:focus-visible,.se-check:focus-visible,
.cp-option:focus-visible,.vault-toggle:focus-visible,button:focus-visible{
  outline:2px solid rgba(0,212,255,.8);outline-offset:2px;border-radius:4px;
}
@media (prefers-reduced-motion:no-preference){
  .vault-action-btn{transition:background-color .15s ease,transform .15s ease}
  .vault-action-btn:hover:not(:disabled){background-color:rgba(0,212,255,.12);transform:translateY(-1px)}
}

@media(max-width:380px){.vault-pref-grid{grid-template-columns:1fr}.vault-card{padding:13px}.vault-copy{font-size:.88rem}}

/* ═══ MINIMALISM: collapsible vault sections ═══ */
.vault-collapse-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;padding:6px 0;background:none;border:none;color:inherit;font:inherit;text-align:left}
.vault-collapse-trigger:hover .vault-card-title{color:#c8e9f5}
.vault-collapse-trigger:focus-visible{outline:1px solid rgba(0,212,255,.6);outline-offset:4px;border-radius:4px}
.vault-collapse-trigger .vault-collapse-chevron{font-family:var(--font-m);font-size:.7rem;color:#9fd9e8;transition:transform var(--dur-2) var(--ease-inout);letter-spacing:0;margin-left:auto;padding-left:8px}
.vault-collapse-trigger[aria-expanded="false"] .vault-collapse-chevron{transform:rotate(-90deg)}
.vault-collapse-body{display:block;overflow:hidden;transition:max-height var(--dur-3) var(--ease-inout),opacity var(--dur-2) var(--ease-out);max-height:2000px;opacity:1}
.vault-collapse-body.gn-hidden{max-height:0;opacity:0;pointer-events:none}
.vault-collapse-trigger .vault-card-title{margin-bottom:0}
/* ═══ VAULT: SYSTEM card (refresh / reconnect) ═══ */
.vault-system-stat{
  background:rgba(0,0,0,.22);
  border:1px solid rgba(0,212,255,.12);
  border-radius:6px;
  padding:8px 10px;
  display:flex;flex-direction:column;gap:3px;
}
.vault-system-stat-label{
  font-family:var(--font-m);
  font-size:.5rem;color:#6a8090;letter-spacing:2px;text-transform:uppercase;
}
.vault-system-stat-value{
  font-family:var(--font-m);
  font-size:.7rem;color:#9fd9e8;letter-spacing:1.5px;
}
.vault-system-stat-value .dot-online{color:#05ffa1}
.vault-system-stat-value .dot-offline{color:#FF3B3B}
.vault-action-btn{
  flex:1;min-width:90px;
  background:rgba(0,0,0,.28);
  border:1px solid rgba(0,212,255,.18);
  border-radius:6px;
  padding:10px 8px;
  color:#9fd9e8;
  font-family:var(--font-m);
  font-size:.58rem;
  letter-spacing:1.8px;
  cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:5px;
  transition:all .2s ease;
}
.vault-action-btn:hover{
  border-color:rgba(0,212,255,.5);
  background:rgba(0,212,255,.06);
  color:#c8e9f5;
}
.vault-action-btn:active{transform:scale(.97)}
.vault-action-btn:disabled{opacity:.4;cursor:not-allowed}
.vault-action-btn.is-working{
  border-color:rgba(0,212,255,.6);
  color:#00E6F0;
  animation:vaultPulse 1.2s ease-in-out infinite;
}
@keyframes vaultPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(0,212,255,0)}
  50%{box-shadow:0 0 0 4px rgba(0,212,255,.08)}
}
.vault-action-ico{
  font-size:1rem;color:#05ffa1;
  transition:transform .3s ease;
}
.vault-action-btn.is-working .vault-action-ico{animation:vaultSpin 1s linear infinite}
@keyframes vaultSpin{to{transform:rotate(360deg)}}
.vault-action-lbl{font-size:.5rem;letter-spacing:1.5px}
.vault-system-message{
  margin-top:10px;
  padding:8px 10px;
  border-radius:4px;
  font-family:var(--font-m);
  font-size:.6rem;
  letter-spacing:1.2px;
  text-align:center;
}
.vault-system-message.success{color:#05ffa1;background:rgba(5,255,161,.06);border:1px solid rgba(5,255,161,.2)}
.vault-system-message.info{color:#9fd9e8;background:rgba(0,212,255,.06);border:1px solid rgba(0,212,255,.2)}
.vault-system-message.warn{color:#ffd780;background:rgba(255,215,128,.06);border:1px solid rgba(255,215,128,.2)}
/* ═══ MINIMALISM: log shot advanced section ═══ */
.gn-shot-advanced-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;padding:10px 12px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.08);border-radius:var(--r);color:#9fd9e8;font-family:var(--font-m);font-size:.62rem;letter-spacing:2.5px;text-transform:uppercase;margin-top:8px;transition:all .2s ease}
.gn-shot-advanced-trigger:hover{border-color:rgba(0,212,255,.3);color:#c8e9f5;background:rgba(0,0,0,.38)}
.gn-shot-advanced-trigger:focus-visible{outline:1px solid rgba(0,212,255,.6);outline-offset:2px}
.gn-shot-advanced-trigger .gn-shot-advanced-chevron{font-size:.8rem;letter-spacing:0;transition:transform var(--dur-2) var(--ease-inout)}
.gn-shot-advanced-trigger[aria-expanded="false"] .gn-shot-advanced-chevron{transform:rotate(-90deg)}
.gn-shot-advanced-body{overflow:hidden;transition:max-height var(--dur-3) var(--ease-inout),opacity var(--dur-2) var(--ease-out);max-height:3000px;opacity:1;margin-top:8px}
.gn-shot-advanced-body.gn-hidden{max-height:0;opacity:0;pointer-events:none;margin-top:0}
/* ═══ MINIMALISM: medication category-first dropdown ═══ */
.cp-dropdown{min-width:240px;max-height:none}
.cp-group-minimized{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s ease}
.cp-group-minimized:hover{background:rgba(0,212,255,.06)}
.cp-group-minimized .cp-group-minimized-label{font-family:var(--font-m);font-size:.6rem;color:#9fd9e8;letter-spacing:2.2px}
.cp-group-minimized .cp-group-minimized-hint{font-family:var(--font-m);font-size:.5rem;color:#7a8c97;letter-spacing:1.4px;text-transform:lowercase}
.cp-group-minimized .cp-group-minimized-count{font-family:var(--font-m);font-size:.5rem;color:#6a7884;background:rgba(0,212,255,.08);border-radius:8px;padding:2px 8px;margin-left:auto}
.cp-group-options{max-height:0;opacity:0;overflow:hidden;transition:max-height var(--dur-2) var(--ease-inout),opacity var(--dur-2) var(--ease-out);padding:0 14px;background:rgba(0,0,0,.18)}
.cp-group-options.gn-revealed{max-height:200px;opacity:1;padding:4px 14px 8px}
.cp-group-options .cp-option{padding:7px 0;font-size:.88rem}
.cp-group-label{cursor:pointer;display:flex;align-items:center;justify-content:space-between}
/* Hide the old non-minimized groups when minimization is on */
.gn-med-minimized .cp-group-label{display:none}
[data-gn-med-minimized] .cp-group-options:not(.gn-revealed){display:none}


/* SYRINGE */
.syringe-visual{background:var(--panel2);border:1px solid var(--border2);border-radius:var(--r);padding:24px 18px 18px;margin-bottom:18px}
.syr-result-big{font-family:var(--font-d);font-size:2.2rem;font-weight:900;color:var(--cyan);text-shadow:0 0 18px rgba(0,212,255,0.5);line-height:1;display:block;text-align:center}
.syr-result-sub{font-family:var(--font-b);font-size:0.95rem;color:var(--text-mid);display:block;text-align:center;margin-top:3px}
.syr-result-ml{font-family:var(--font-m);font-size:0.65rem;color:var(--text-dim);display:block;text-align:center;margin-top:2px;letter-spacing:2px;margin-bottom:20px}
.syringe-body-wrap{position:relative;display:flex;align-items:center;height:72px;margin-bottom:6px}
.syr-plunger{width:26px;height:56px;background:linear-gradient(180deg,#1e1e2e,#141420);border:1px solid rgba(0,212,255,0.3);border-radius:3px 0 0 3px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.syr-grip-lines{display:flex;flex-direction:column;gap:5px;align-items:center}
.syr-grip-line{width:12px;height:2px;background:rgba(0,212,255,0.25);border-radius:1px}
.syr-barrel{flex:1;height:42px;background:rgba(0,0,0,0.4);border:1.5px solid rgba(0,212,255,0.32);border-left:none;border-right:none;position:relative;overflow:hidden;margin-left:8px}
.syr-fluid{position:absolute;left:0;top:0;bottom:0;width:0%;background:linear-gradient(90deg,rgba(0,212,255,0.12),rgba(0,212,255,0.4),rgba(0,180,255,0.5));border-right:2px solid var(--cyan);box-shadow:2px 0 10px rgba(0,212,255,0.5);transition:width 0.6s cubic-bezier(0.34,1.56,0.64,1);z-index:1}
.syr-target-line{position:absolute;top:0;bottom:0;width:3px;background:var(--yellow);box-shadow:0 0 8px var(--yellow);z-index:3;transition:left 0.6s cubic-bezier(0.34,1.56,0.64,1);display:none}
.syr-target-line::before{content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--yellow)}
.syr-marks{position:absolute;inset:0;display:flex;z-index:2}
.syr-mark{flex:1;border-right:1px solid rgba(255,255,255,0.07);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:2px}
.syr-mark.major{border-right-color:rgba(255,255,255,0.16)}
.syr-mark-label{font-family:var(--font-m);font-size:0.42rem;color:rgba(0,212,255,0.5)}
.syr-hub{width:22px;height:28px;flex-shrink:0;background:linear-gradient(180deg,#1e1e2e,#141420);border:1.5px solid rgba(0,212,255,0.28);border-left:none;clip-path:polygon(0 20%,100% 0,100% 100%,0 80%)}
.syr-needle{width:44px;height:3px;flex-shrink:0;background:linear-gradient(90deg,rgba(0,212,255,0.5),rgba(0,212,255,0.9));box-shadow:0 0 5px rgba(0,212,255,0.4);clip-path:polygon(0 40%,100% 0,100% 100%,0 60%)}
.syr-scale-labels{display:flex;justify-content:space-between;padding:0 34px 0 36px;margin-top:3px}
.syr-scale-lbl{font-family:var(--font-m);font-size:0.48rem;color:var(--text-dim);text-align:center;flex:1}
.syr-scale-lbl.major{color:rgba(0,212,255,0.45);font-size:0.52rem}
.cheat-table{width:100%;border-collapse:collapse;margin-top:14px}
.cheat-table th{font-family:var(--font-m);font-size:0.58rem;color:var(--cyan);letter-spacing:2px;padding:9px 13px;text-align:left;background:rgba(0,212,255,0.05);border-bottom:1px solid var(--border2)}
.cheat-table td{font-family:var(--font-b);font-size:0.95rem;color:var(--text-mid);padding:9px 13px;border-bottom:1px solid var(--border)}
.cheat-table tr.ar td{color:var(--yellow);font-weight:700;background:rgba(255,215,0,0.05)}
.cheat-table td:last-child{font-family:var(--font-d);font-size:0.82rem;color:var(--cyan);text-align:right;font-weight:700}
.cheat-table tr.ar td:last-child{color:var(--yellow)}
.mixing-warn{background:var(--red-dim);border:1px solid rgba(255,59,59,0.2);border-radius:var(--r);padding:10px 13px;font-family:var(--font-b);font-size:0.9rem;color:var(--red);margin:12px 0;line-height:1.5}
.mixing-step{display:flex;align-items:flex-start;gap:11px;padding:11px 0;border-bottom:1px solid var(--border)}
.mixing-step:last-child{border-bottom:none}
.mixing-num{width:24px;height:24px;border-radius:50%;background:var(--cyan-dim);border:1px solid var(--cyan);color:var(--cyan);font-family:var(--font-m);font-size:0.62rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.mixing-text{font-family:var(--font-b);font-size:0.95rem;color:var(--text-mid);line-height:1.5}
.mixing-text strong{color:var(--text)}

/* CP2077 AVATARS */
.cp-avatar{width:100%;height:100%;border-radius:50%;overflow:hidden}

/* ══════════════════════════
   LANDING CLARITY LAYER — MVP
══════════════════════════ */
#landing{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:calc(22px + var(--safe-top)) 18px calc(36px + var(--safe-bottom));background:#050508}
#landing::-webkit-scrollbar{display:none}
.landing-shell{width:min(1120px,100%);margin:0 auto}
.gn-language-control{display:flex;align-items:center;gap:5px;padding:5px 6px;border:1px solid rgba(0,212,255,.18);border-radius:999px;background:rgba(5,10,16,.86);font:600 .5rem var(--font-m);letter-spacing:1.2px;color:#8ea6b0}
.gn-language-control > span{margin-right:3px;color:#8ea6b0}
.gn-language-control button{min-width:29px;padding:5px 6px;border:1px solid transparent;border-radius:999px;background:transparent;color:#8ea6b0;font:700 .52rem var(--font-m);letter-spacing:1px;cursor:pointer}
.gn-language-control button:hover,.gn-language-control button:focus-visible{border-color:rgba(0,212,255,.35);color:#d8f7fc;outline:none}
.gn-language-control button.active{border-color:rgba(0,212,255,.58);background:rgba(0,212,255,.1);color:#00d4ff;box-shadow:0 0 10px rgba(0,212,255,.12)}
.gn-auth-language-control{justify-content:flex-end;margin:0 0 14px}
@media(max-width:520px){.landing-language-control{right:0}.gn-language-control{font-size:.46rem}.gn-language-control button{min-width:27px;padding:5px 5px}}
.landing-hero{min-height:calc(100vh - 44px - var(--safe-top));max-width:760px;margin-left:clamp(0px,7vw,110px);display:flex;flex-direction:column;justify-content:center;gap:22px;position:relative;align-items:flex-start;padding:8vh 0 12vh}
.landing-kicker{align-self:flex-start;width:auto;max-width:100%;font-family:var(--font-m);font-size:.62rem;letter-spacing:2.4px;color:#a8eaff;text-transform:uppercase;text-align:left;line-height:1.35}
.landing-node-mark{display:flex;align-items:center;gap:10px;color:var(--cyan);font:700 .58rem var(--font-m);letter-spacing:2px;text-transform:uppercase;opacity:.65}
.landing-node-mark svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 9px rgba(0,212,255,.28))}
.landing-logo{width:min(420px,100%);max-width:100%;overflow:visible;text-align:left;font-family:var(--font-d);font-size:clamp(1.92rem,7vw,3.35rem);font-weight:900;line-height:.95;letter-spacing:clamp(1.5px,.9vw,4px);color:var(--cyan);animation:none}
.landing-logo span{color:var(--red)}
.landing-headline{max-width:10ch;font-family:var(--font-d);font-size:clamp(2.2rem,6vw,4.7rem);font-weight:900;line-height:1.04;letter-spacing:.6px;color:var(--text)}
.landing-copy{font-family:var(--font-b);font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.5;color:var(--text-mid);max-width:47ch}
.landing-copy span{color:#b6d6dd}
.landing-phase-visual{display:block!important;position:absolute;right:-18vw;top:25%;width:min(72vw,460px);height:min(72vw,460px);pointer-events:none;opacity:.42;z-index:0;animation:none!important}
.landing-phase-visual::before{content:"";position:absolute;inset:3%;border-radius:50%;background:conic-gradient(from 215deg,transparent 0 18%,rgba(0,230,240,.8) 19% 27%,transparent 28% 53%,rgba(255,45,85,.82) 54% 61%,transparent 62% 100%);-webkit-mask:radial-gradient(circle,transparent 0 67%,#000 68% 70%,transparent 71%);mask:radial-gradient(circle,transparent 0 67%,#000 68% 70%,transparent 71%);filter:drop-shadow(0 0 10px rgba(0,230,240,.35));animation:phaseRingDrift 18s linear infinite}
.landing-phase-visual::after{content:"";position:absolute;inset:13%;border-radius:50%;border:1px solid rgba(0,230,240,.18);box-shadow:0 0 0 16px rgba(0,230,240,.025),0 0 0 33px rgba(0,230,240,.018),inset 0 0 28px rgba(0,230,240,.08)}
.landing-phase-visual .phase-segment-ring{position:absolute;inset:20%;border-radius:50%;border:1px dashed rgba(0,230,240,.28);transform:rotate(-22deg) scaleY(.55);box-shadow:0 0 16px rgba(0,230,240,.15);animation:phaseRingDrift 24s linear infinite reverse}
.landing-phase-core{position:absolute;inset:37%;display:grid;place-items:center;align-content:center;gap:4px;border:1px solid rgba(0,230,240,.3);border-radius:50%;background:rgba(2,7,12,.58);color:var(--cyan);font-family:var(--font-m);letter-spacing:1.2px;text-align:center}
.landing-phase-core span{font-size:.43rem!important;color:#b9f8ff!important}.landing-phase-core b{font:600 .48rem var(--font-m)!important;letter-spacing:1.6px!important;color:#f5d76e!important}
.landing-hero > *:not(.landing-phase-visual){position:relative;z-index:1}
.landing-hero > .landing-language-control{position:absolute;top:8px;right:0;z-index:4}
@keyframes phaseRingDrift{to{transform:rotate(360deg)}}
.landing-beats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 2px}
.landing-beat{border:1px solid rgba(0,212,255,.16);background:linear-gradient(135deg,rgba(0,212,255,.075),rgba(0,0,0,.25));border-radius:var(--r);padding:10px 11px;font-family:var(--font-m);font-size:.62rem;letter-spacing:1.4px;color:#c9f5ff;text-transform:uppercase}
.landing-cta-row{display:grid;grid-template-columns:repeat(2,minmax(170px,210px));gap:12px;margin-top:6px}
.landing-btn{border-radius:var(--r);padding:14px 16px;font-family:var(--font-d);font-size:.78rem;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s;background:transparent}
.landing-btn.primary{border:0;background:linear-gradient(135deg,var(--red),#D12424);color:#fff;box-shadow:0 10px 28px rgba(255,59,59,.28)}
.landing-btn.secondary{border:1px solid rgba(0,212,255,.38);color:var(--cyan);background:rgba(0,212,255,.06)}
.landing-btn:hover,.landing-btn:active{transform:translateY(-1px)}
.landing-note{font-family:var(--font-m);font-size:.62rem;letter-spacing:1px;color:#9fc7d4;line-height:1.48}
.landing-local-link{border:0;background:none;padding:6px 0;color:#f5d76e;font:600 .58rem var(--font-m);letter-spacing:1.3px;text-transform:uppercase;cursor:pointer}
.landing-local-link:hover,.landing-local-link:focus-visible{color:#fff;outline:none;text-decoration:underline;text-underline-offset:4px}
.landing-trust{padding:0;border:0;background:none;box-shadow:none}
.landing-trust strong{display:block;margin-bottom:4px;color:#e8fcff;font:700 .72rem var(--font-d);letter-spacing:1.6px}
.s6-basis{display:block;margin-top:4px;color:#8295a0;font:500 .48rem/1.25 var(--font-m);letter-spacing:.7px;text-transform:lowercase}
.landing-section{border:1px solid var(--border);background:linear-gradient(180deg,rgba(14,14,22,.92),rgba(5,5,8,.96));border-radius:var(--r);padding:18px 16px;margin:14px 0;position:relative;overflow:hidden}
.landing-section::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,212,255,.42),transparent)}
.landing-section h2{font-family:var(--font-d);font-size:1rem;letter-spacing:2.4px;color:var(--cyan);margin-bottom:8px;text-transform:uppercase}
.landing-section h3{font-family:var(--font-d);font-size:.92rem;letter-spacing:1.7px;color:var(--text);margin-bottom:5px;text-transform:uppercase}
.landing-section p{font-family:var(--font-b);font-size:1rem;line-height:1.48;color:var(--text-mid)}
.founder-note{max-width:620px;border-left:2px solid rgba(255,45,85,.58);background:rgba(255,45,85,.035)}
.founder-note p{max-width:54ch}
.landing-footer{display:grid;gap:16px;margin:20px 0 0;padding:20px 16px 8px;border-top:1px solid rgba(0,212,255,.2);color:var(--text-mid)}
.landing-footer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.landing-footer-block{display:grid;gap:7px}
.landing-footer-block.landing-arrive-lines>p:nth-last-child(-n+2){border-radius:6px;animation:landingArriveMars 1.6s ease-out}
@keyframes landingArriveMars{0%{box-shadow:0 0 0 1px rgba(255,59,59,.5),0 0 26px rgba(255,59,59,.22);background:rgba(255,59,59,.06)}100%{box-shadow:0 0 0 1px rgba(255,59,59,0),0 0 0 rgba(255,59,59,0);background:rgba(255,59,59,0)}}
@media (prefers-reduced-motion:reduce){.landing-footer-block.landing-arrive-lines>p:nth-last-child(-n+2){animation:none}}
.landing-footer-label{font:700 .6rem var(--font-d);letter-spacing:2px;color:var(--cyan)}
.landing-footer a{color:#a9dce8;font:600 .68rem var(--font-m);letter-spacing:1px;text-decoration:none}
.landing-footer a:hover,.landing-footer a:focus{color:#fff;text-decoration:underline}
.landing-footer p{font:400 .88rem/1.5 var(--font-b);color:#a9bac4}
.landing-footer-mobile{display:flex;flex-wrap:wrap;gap:8px;color:#8295a0;font:600 .62rem var(--font-m);letter-spacing:1px}
.landing-footer-mobile span{padding:7px 9px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.025)}
@media(max-width:420px){.landing-footer-mobile{flex-direction:column;gap:10px}.landing-footer-mobile span{text-align:center;padding:10px 9px}}
.system-update-card{display:grid;gap:9px;margin-top:15px;padding:13px;border:1px solid rgba(0,212,255,.22);border-left:2px solid var(--cyan);background:rgba(0,212,255,.035)}
.system-update-card[hidden]{display:none}
.system-update-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.system-update-head strong{font:700 .7rem var(--font-d);letter-spacing:1.7px;color:var(--cyan)}
.system-update-head button{border:0;background:transparent;color:#8295a0;font:600 .58rem var(--font-m);letter-spacing:1px;cursor:pointer;padding:5px}
.system-update-card p,.system-update-card li{font:400 .88rem/1.45 var(--font-b);color:#b9c9d0}
.system-update-card ul{display:grid;gap:4px;margin:0;padding-left:18px}
.module-stack{display:grid;gap:10px}
.module-card{border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.24);border-radius:var(--r);padding:13px 13px;border-left:3px solid var(--cyan)}
.module-card.phase{border-left-color:var(--yellow);background:linear-gradient(90deg,rgba(255,215,0,.065),rgba(0,0,0,.24))}
.module-card.results{border-left-color:var(--green)}
.module-card.lab{border-left-color:var(--orange)}
.module-card.node{border-left-color:var(--magenta)}
.module-card.vault{border-left-color:var(--red)}
.system-line{display:grid;gap:7px;margin-top:12px}
.system-line div{font-family:var(--font-m);font-size:.62rem;letter-spacing:1.3px;color:var(--text-mid);border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);padding:8px 10px;border-radius:var(--r)}
.system-line b{color:var(--cyan);font-weight:400}
.final-cta{text-align:center;margin:18px 0 0;padding:22px 16px;border-color:rgba(255,59,59,.24);background:radial-gradient(circle at 50% 0%,rgba(255,59,59,.14),transparent 40%),linear-gradient(180deg,rgba(14,14,22,.92),rgba(5,5,8,.96))}
.final-cta h2{color:var(--text);font-size:1.2rem}


@media(max-width:900px){.landing-hero{margin-left:0;max-width:720px}}
@media(max-width:560px){.landing-footer-grid{grid-template-columns:1fr}}
@media(max-width:560px){.landing-phase-visual{right:-42vw;top:17%;width:95vw;height:95vw;opacity:.34}.landing-phase-core{inset:38%}}
@media(max-width:420px){#landing{padding-left:14px;padding-right:14px}.landing-hero{justify-content:flex-start;min-height:auto;padding-top:18px;padding-bottom:26px;gap:18px}.landing-headline{text-align:left;font-size:clamp(2rem,10vw,2.55rem)}.landing-copy{max-width:100%;font-size:1.05rem}.landing-beats{gap:7px}.landing-cta-row{grid-template-columns:1fr;width:100%}.landing-btn{width:100%}.landing-note{font-size:.55rem;letter-spacing:.8px}}@media(max-width:360px){.landing-logo{font-size:clamp(1.72rem,9.4vw,2.05rem);letter-spacing:1px}.landing-kicker{font-size:.52rem;letter-spacing:1.25px}.landing-headline{font-size:clamp(1.85rem,9.5vw,2.2rem)}.landing-copy{font-size:1.02rem}.landing-beats{grid-template-columns:1fr}.landing-btn{font-size:.68rem;letter-spacing:1.5px}.landing-note{font-size:.52rem;letter-spacing:.55px}}


/* GRID//NODE Glyph System v1 */
.gn-glyph-defs{position:absolute;width:0;height:0;overflow:hidden}
.gn-icon{width:1.25em;height:1.25em;display:inline-flex;align-items:center;justify-content:center;vertical-align:-.18em;color:currentColor;filter:drop-shadow(0 0 5px rgba(0,212,255,.18))}
.gn-icon svg{width:100%;height:100%;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.gn-icon-sm{width:24px;height:24px}.gn-icon-md{width:30px;height:30px}.gn-icon-lg{width:42px;height:42px}
.gn-icon-hud{border:1px solid rgba(0,212,255,.24);border-radius:50%;padding:5px;background:rgba(0,212,255,.045);box-shadow:inset 0 0 14px rgba(0,212,255,.04),0 0 10px rgba(0,212,255,.08)}
.gn-accent-c{color:var(--cyan)}.gn-accent-g{color:var(--green)}.gn-accent-y{color:var(--yellow)}.gn-accent-r{color:var(--red)}.gn-accent-m{color:var(--magenta)}
.app-wordmark{font-family:var(--font-d);font-size:1rem;font-weight:900;letter-spacing:2.2px;color:var(--cyan);text-shadow:0 0 16px rgba(0,212,255,.32);white-space:nowrap;line-height:1}
.app-wordmark span{color:var(--red);letter-spacing:.7px;margin:0 .08em;text-shadow:0 0 12px rgba(255,59,59,.42)}
.nav-ico,.wq-icon,.s6-icon,.empty-ico,.cal-detail-icon,.arsenal-icon{display:flex;align-items:center;justify-content:center;color:var(--cyan)}
.nav-item.active .gn-icon{filter:drop-shadow(0 0 7px rgba(0,212,255,.55))}
.fab .gn-icon{width:26px;height:26px;color:#ff7a7a;filter:drop-shadow(0 0 7px rgba(255,90,90,.9))} /* v0.15.44: canonical FAB icon spec lives with the .fab block above; this line kept for cascade compatibility */
.log-chip .gn-icon{width:14px;height:14px;margin-right:4px;vertical-align:-2px}
.log-action-btn .gn-icon,.modal-btn .gn-icon{width:18px;height:18px}


/* ══════════════════════════
   SHOTS HOLOGRAPHIC REGION SCANNER v1
   Scanner-first user-entered location tracking
══════════════════════════ */
.shots-scanner-card{
  border:1px solid rgba(0,212,255,.17);
  background:
    radial-gradient(circle at 50% 0%,rgba(0,212,255,.10),transparent 34%),
    linear-gradient(180deg,rgba(14,14,22,.96),rgba(5,5,8,.98));
  border-radius:var(--r);
  padding:16px;
  margin-bottom:96px;
  position:relative;
  overflow:hidden;
}
.shots-scanner-card::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(0,212,255,.55),transparent);
}
.shots-scanner-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.shots-scanner-head h2{
  font-family:var(--font-d);
  font-size:.92rem;
  letter-spacing:2px;
  color:var(--cyan);
  line-height:1.15;
}
.shots-scanner-head p{
  margin-top:4px;
  font-family:var(--font-b);
  color:var(--text-mid);
  font-size:.92rem;
  line-height:1.35;
}
.scanner-source-tag{
  font-family:var(--font-m);
  font-size:.52rem;
  letter-spacing:1.2px;
  color:#bff4ff;
  border:1px solid rgba(0,212,255,.24);
  background:rgba(0,212,255,.07);
  border-radius:999px;
  padding:6px 8px;
  white-space:nowrap;
}
.scanner-mode-tabs{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
  margin:10px 0 12px;
}
.scanner-mode-btn{
  border:1px solid rgba(0,212,255,.18);
  background:rgba(0,0,0,.26);
  color:var(--text-mid);
  border-radius:var(--r);
  padding:12px 6px;
  min-height:44px;
  font-family:var(--font-m);
  font-size:.58rem;
  letter-spacing:1.6px;
  cursor:pointer;
  transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;
}
.scanner-mode-btn:hover{border-color:rgba(0,212,255,.45);color:#d9f6ff}
.scanner-mode-btn.active{
  color:#031318;
  border-color:rgba(0,212,255,.9);
  background:linear-gradient(180deg,rgba(0,212,255,.95),rgba(0,180,220,.85));
  box-shadow:0 0 18px rgba(0,212,255,.35), inset 0 1px 0 rgba(255,255,255,.25);
  text-shadow:none;
  font-weight:700;
}
/* stage entry: soft crossfade + settle on every mode switch */
@keyframes biotechStageIn{
  from{opacity:0;transform:scale(.985)}
  to{opacity:1;transform:scale(1)}
}
.biotech-stage.active .biotech-stage-frame{animation:biotechStageIn .28s ease-out}
.scanner-mode-btn:focus-visible{
  outline:2px solid rgba(0,212,255,.8);
  outline-offset:2px;
}
@media (prefers-reduced-motion:reduce){
  .biotech-stage.active .biotech-stage-frame{animation:none}
}

/* === v0.15.15 SCANNER UX POLISH === */
@keyframes gnAwaitingBlink {
  0%, 100% { opacity: 1; text-shadow: 0 0 6px rgba(255,59,59,.5); }
  50% { opacity: .35; text-shadow: 0 0 2px rgba(255,59,59,.2); }
}
@keyframes gnAwaitingPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,59,59,.0); }
  50% { box-shadow: 0 0 0 4px rgba(255,59,59,.18); }
}
.awaiting-shot,
[data-i18n="runtime.awaitingFirstShot"]{
  animation: gnAwaitingBlink 1.6s ease-in-out infinite, gnAwaitingPulse 1.6s ease-in-out infinite;
  color:#FF3B3B;
  font-weight:700;
  letter-spacing:1.4px;
}
@media (prefers-reduced-motion: reduce) {
  .awaiting-shot,
  [data-i18n="runtime.awaitingFirstShot"]{
    animation: none;
    opacity:1;
  }
}

/* === v0.15.15 SCANNER UX POLISH === */
.scanner-skin-row{
  display:flex;
  align-items:center;
  gap:6px;
  margin:8px 0 4px;
  padding:5px 8px;
  border-radius:8px;
  background:rgba(0,30,40,.32);
  border:1px solid rgba(0,212,255,.12);
  font-family:var(--font-m);
  font-size:.5rem;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:rgba(180,220,240,.7);
  justify-content:center;
  flex-wrap:wrap;
}
.scanner-skin-label{
  opacity:.95;
  margin-right:6px;
  color:var(--cp-yellow);
  font-weight:700;
  letter-spacing:1.8px;
  text-shadow:0 0 8px rgba(252,238,10,.35);
}
.scanner-skin-btn{
  appearance:none;
  background:rgba(0,0,0,.26);
  border:1px solid rgba(0,212,255,.18);
  color:var(--text-mid);
  padding:5px 10px;
  border-radius:var(--r);
  font:inherit;
  letter-spacing:1.4px;
  text-transform:uppercase;
  cursor:pointer;
  transition:all .2s ease;
}
.scanner-skin-btn:hover{
  background:rgba(0,212,255,.06);
  color:#cdeaf3;
  border-color:rgba(0,212,255,.42);
}
.scanner-skin-btn.active{
  color:var(--cp-yellow);
  border-color:rgba(252,238,10,.55);
  background:rgba(252,238,10,.08);
  box-shadow:0 0 12px rgba(252,238,10,.18), inset 0 0 10px rgba(252,238,10,.05);
  text-shadow:0 0 6px rgba(252,238,10,.35);
}
.scanner-skin-btn:focus-visible{outline:1px solid var(--cyan);outline-offset:1px}
@media (max-width:520px){
  .scanner-skin-btn{font-size:.45rem;padding:4px 7px;letter-spacing:1.2px}
}


.site-scanner{
  position:relative;
  border:1px solid rgba(0,212,255,.20);
  border-radius:20px;
  padding:12px;
  background:
    radial-gradient(circle at 50% 10%,rgba(0,212,255,.10),transparent 38%),
    linear-gradient(180deg,rgba(5,10,18,.94),rgba(2,5,10,.98));
  box-shadow:inset 0 0 34px rgba(0,212,255,.055),0 0 24px rgba(0,212,255,.055);
  overflow:hidden;
}
.site-scanner:before{
  content:"";
  position:absolute;
  inset:10px;
  border:1px dashed rgba(0,212,255,.14);
  border-radius:16px;
  pointer-events:none;
}
.asset-matrix-title{
  position:relative;
  z-index:3;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  border:1px solid rgba(0,212,255,.18);
  background:linear-gradient(90deg,rgba(0,212,255,.10),rgba(0,0,0,.36));
  border-radius:14px;
  padding:9px 10px;
}
.asset-matrix-title b{
  font-family:var(--font-d);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:1.2px;
  color:#e8fbff;
}
.asset-matrix-title span{
  font-family:var(--font-m);
  font-size:.50rem;
  letter-spacing:1px;
  color:#aeefff;
  white-space:nowrap;
}
.asset-helper{
  position:relative;
  z-index:3;
  margin-top:8px;
  border-left:2px solid var(--cyan);
  background:rgba(0,212,255,.055);
  border-radius:0 12px 12px 0;
  padding:9px 10px;
  color:#c8d5e7;
  font-size:.84rem;
  line-height:1.35;
}

/* v0.15.19 BIOTECH SCANNER - synthetic diagnostic mannequin */
.biotech-scanner{
  position:relative;
  z-index:3;
  margin:14px auto 0;
  display:flex;
  flex-direction:column;
  gap:0;
}
.biotech-stage{
  position:relative;
  width:100%;
  aspect-ratio:1/1;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(6,187,227,0.06), transparent 50%),
    radial-gradient(ellipse at 50% 100%, rgba(234,9,23,0.04), transparent 50%),
    linear-gradient(180deg, #02060a 0%, #050a10 50%, #02060a 100%);
  border-radius:14px;
  overflow:hidden;
  isolation:isolate;
  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
}
.biotech-stage[hidden]{
  display:none !important;
}
.biotech-stage-frame{
  position:absolute;
  inset:0;
  z-index:1;
}
.biotech-stage-glow{
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 50% 50%, transparent 0%, rgba(0,0,0,0.45) 75%, rgba(0,0,0,0.85) 100%);
  pointer-events:none;
  z-index:3;
}
.biotech-asset{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  z-index:1;
  pointer-events:none;
  -webkit-user-drag:none;
}
.biotech-zones{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:2;
  overflow:visible;
  touch-action:pan-y;
}
/* Excluded center (navel) — hatched cross pattern */
.zone-excluded{
  fill:none;
  stroke:rgba(234,9,23,0.72);
  stroke-width:3;
  stroke-dasharray:9 7;
  pointer-events:none;
}
.zone-excluded::before{ /* fake diagonal hatching via fill */
  fill:url(#gnExcludeHatch);
}
/* Visible zone contour - thin red outline, transparent fill */
.zone-visible{
  fill:rgba(6,187,227,0.04);
  stroke:rgba(6,187,227,0.55);
  stroke-width:2.5;
  stroke-linejoin:round;
  pointer-events:none;
  transition:fill 180ms ease, stroke 180ms ease, stroke-width 180ms ease, opacity 180ms ease;
}
/* Hit area is invisible but receives pointer events */
.zone-hit{
  fill:transparent;
  stroke:transparent;
  cursor:pointer;
  outline:none;
  transition:filter 120ms ease;
}
.zone-hit:focus-visible{
  outline:2px solid #FCEE0A;
  outline-offset:2px;
}
/* IDLE: visible contour shows subtle cyan, hit area highlights on hover */
.zone-hit:hover ~ .zone-visible,
.biotech-stage:hover .zone-hit + .zone-visible{
  /* CSS sibling selector doesn't work for this; use direct path class instead */
}
/* Hover: visible contour brightens via JS-controlled :hover, fallback: */
.biotech-stage .zone-visible{
  filter:drop-shadow(0 0 4px rgba(6,187,227,0.25));
}
.biotech-stage .zone-hit:hover{
  filter:drop-shadow(0 0 6px rgba(6,187,227,0.4));
}
.zone-hit:hover + .zone-visible,
.zone-hit:focus-visible + .zone-visible{
  stroke:rgba(6,187,227,0.95);
  stroke-width:3;
  fill:rgba(6,187,227,0.12);
}
/* PRESSED: immediate response (added by JS on pointerdown) */
.zone-hit.pressed + .zone-visible{
  stroke:rgba(252,238,10,0.95);  /* Signal Yellow flash on touch */
  stroke-width:3.5;
  fill:rgba(252,238,10,0.18);
  transition:fill 0ms, stroke 0ms, stroke-width 0ms;
}
/* ACQUIRING: local scan pulse (added by JS, ~80-180ms) */
.zone-hit.zone-acquiring + .zone-visible{
  stroke:#FCEE0A;
  fill:rgba(234,9,23,0.10);
  animation:biotechAcquiring 220ms ease-out;
}
.zone-hit.zone-acquiring::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}
@keyframes biotechAcquiring{
  0%   { fill:rgba(252,238,10,0.32); stroke-width:4; }
  60%  { fill:rgba(234,9,23,0.20); stroke-width:3.5; }
  100% { fill:rgba(234,9,23,0.12); stroke-width:3; }
}
/* SELECTED: Mars Red pulse + locked state */
.zone-hit.selected + .zone-visible{
  fill:rgba(234,9,23,0.22);
  stroke:#EA0917;
  stroke-width:3.5;
  filter:drop-shadow(0 0 12px rgba(234,9,23,0.6));
}
.zone-hit.selected-active + .zone-visible{
  animation:biotechPulse 320ms ease-out;
}
@keyframes biotechPulse{
  0%   { fill:rgba(252,238,10,0.40); stroke-width:5; }
  50%  { fill:rgba(234,9,23,0.35); stroke-width:4; }
  100% { fill:rgba(234,9,23,0.22); stroke-width:3.5; }
}
/* LAST: most recent - amber accent */
.zone-hit.last + .zone-visible{
  fill:rgba(252,238,10,0.10);
  stroke:rgba(252,238,10,0.85);
  stroke-width:2.5;
  stroke-dasharray:8 3;
}
/* RECENT: recently logged - subtle cyan */
.zone-hit.recent + .zone-visible{
  fill:rgba(6,187,227,0.06);
  stroke:rgba(6,187,227,0.5);
  stroke-width:2;
  stroke-dasharray:4 2;
}
/* DIM: unselected zones in active mode after a selection exists */
.zone-hit.is-dim + .zone-visible{
  opacity:0.35;
  filter:none;
}
/* Frame corners */
.biotech-corner{
  position:absolute;
  width:18px;
  height:18px;
  border:1.5px solid #06BBE3;
  pointer-events:none;
  z-index:4;
}
.biotech-corner.tl{ top:8px; left:8px; border-right:none; border-bottom:none; }
.biotech-corner.tr{ top:8px; right:8px; border-left:none; border-bottom:none; }
.biotech-corner.bl{ bottom:8px; left:8px; border-right:none; border-top:none; }
.biotech-corner.br{ bottom:8px; right:8px; border-left:none; border-top:none; }
/* Scanline sweep on stage entry */
.biotech-scanline{
  position:absolute;
  left:0; right:0; top:0;
  height:2px;
  background:linear-gradient(90deg, transparent, #06BBE3 50%, transparent);
  box-shadow:0 0 12px 2px rgba(6,187,227,0.6);
  opacity:0;
  pointer-events:none;
  z-index:5;
  transform:translateY(0);
}
.biotech-scanline.sweep{
  animation:biotechSweep 600ms ease-out;
}
@keyframes biotechSweep{
  0%   { opacity:0.95; transform:translateY(0); }
  85%  { opacity:0.4; transform:translateY(98%); }
  100% { opacity:0; transform:translateY(100%); }
}
/* Debug mode outlines */
.zone-hit.debug-on{
  fill:rgba(252,238,10,0.04);
  stroke:rgba(252,238,10,0.4);
  stroke-width:1;
  stroke-dasharray:3 2;
}
.zone-hit.debug-on + .zone-visible{
  fill:rgba(6,187,227,0.04);
  stroke:rgba(6,187,227,0.85);
  stroke-width:2;
  stroke-dasharray:5 3;
}
/* Locked confirmation pulse on the panel */
.gn-zone-confirmed{
  animation:gnZoneConfirmed 900ms ease-out;
}
@keyframes gnZoneConfirmed{
  0%   { box-shadow:0 0 0 0 rgba(234,9,23,0.5); }
  50%  { box-shadow:0 0 0 8px rgba(234,9,23,0.15); }
  100% { box-shadow:0 0 0 0 rgba(234,9,23,0); }
}
.gn-location-lock{
  display:flex;
  align-items:baseline;
  gap:8px;
  padding:6px 8px;
  border-left:2px solid #EA0917;
  background:rgba(234,9,23,0.06);
  border-radius:0 8px 8px 0;
  margin-bottom:6px;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity 220ms ease, transform 220ms ease;
}
.gn-location-lock.is-on{
  opacity:1;
  transform:translateX(0);
}
.gn-location-lock small{
  font-family:var(--font-m);
  font-size:.52rem;
  letter-spacing:1.4px;
  color:#EA0917;
  text-transform:uppercase;
}
.gn-location-lock span{
  font-family:var(--font-b);
  font-size:.95rem;
  color:#fff;
  font-weight:600;
}
/* Reduced motion: strip animations, keep state visuals */
@media (prefers-reduced-motion: reduce){
  .biotech-scanline,
  .biotech-stage,
  .zone-visible,
  .zone-hit,
  .gn-zone-confirmed{
    animation-duration:0ms !important;
    transition-duration:0ms !important;
  }
  .biotech-scanline.sweep{ display:none; }
}

.asset-scan-stage{
  position:relative;
  z-index:3;
  margin:10px auto 0;
  overflow:hidden;
  border-radius:18px;
  background-color:#04060a;
  /* v0.15.16: Mars Red dot grid + scan lines for bio-tech scanner aesthetic */
  background-image:
    radial-gradient(circle at 1px 1px, rgba(255,59,59,0.12) 1px, transparent 1.2px),
    repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(0,0,0,0.28) 3px, rgba(0,0,0,0.28) 4px),
    linear-gradient(180deg, #0a0206 0%, #04060a 50%, #0a0206 100%);
  background-size: 6px 6px, 100% 100%, 100% 100%;
  border:1px solid rgba(255,59,59,.40);
  box-shadow:0 0 28px rgba(255,59,59,.12),inset 0 0 26px rgba(255,59,59,.06);
  aspect-ratio:1 / 1;
  width:min(100%, 380px);
  max-width:380px;
  min-height:0;
  max-height:none;
}
/* v0.15.16: Mars Red C-brackets on left and right edges */
.asset-scan-stage::before{
  content:'';
  position:absolute;
  left:3%;
  top:14%;
  bottom:18%;
  width:5px;
  border:1px solid rgba(255,80,80,.65);
  border-right:0;
  border-radius:6px 0 0 6px;
  z-index:2;
  pointer-events:none;
  box-shadow:0 0 8px rgba(255,59,59,.35);
}
.asset-scan-stage::after{
  content:'';
  position:absolute;
  right:3%;
  top:14%;
  bottom:18%;
  width:5px;
  border:1px solid rgba(255,80,80,.65);
  border-left:0;
  border-radius:0 6px 6px 0;
  z-index:2;
  pointer-events:none;
  box-shadow:0 0 8px rgba(255,59,59,.35);
}
.asset-scan-stage.mode-core{
  aspect-ratio:1 / 1;
}
.asset-scan-stage.mode-lower{
  aspect-ratio:1 / 1.1;
}
.asset-scan-stage.mode-upper{
  aspect-ratio:1 / 1.05;
}

/* v0.15.16 SCANNER HUD CHROME: bio-tech diagnostic overlay */
.gn-hud {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  font-family: 'JetBrains Mono', 'SF Mono', 'Menlo', 'Courier New', monospace;
  font-size: 6.5px;
  line-height: 1.2;
  color: rgba(255, 100, 100, 0.88);
  text-shadow: 0 0 4px rgba(255, 59, 59, 0.4), 0 0 1px rgba(255, 30, 30, 0.6);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 10px 9px 9px 9px;
  display: grid;
  grid-template-columns: 38% 1fr 38%;
  grid-template-rows: auto 1fr auto;
  gap: 0;
}
.gn-hud-tl { grid-area: 1 / 1; align-self: start; }
.gn-hud-tr { grid-area: 1 / 3; align-self: start; justify-self: end; text-align: right; }
.gn-hud-ml { grid-area: 2 / 1; align-self: start; }
.gn-hud-mr { grid-area: 2 / 3; align-self: start; text-align: right; }
.gn-hud-bl { grid-area: 3 / 1; align-self: end; display: flex; flex-direction: column; gap: 4px; }
.gn-hud-br { grid-area: 3 / 3; align-self: end; justify-self: end; text-align: right; }
.gn-hud-foot { grid-area: 3 / 1 / 4 / 4; align-self: end; }
.gn-hud-brand { font-size: 8.5px; font-weight: 700; color: #ff5050; letter-spacing: 0.1em; text-shadow: 0 0 6px rgba(255, 59, 59, 0.65); }
.gn-hud-tag { font-size: 5.5px; color: rgba(255, 110, 110, 0.7); margin-bottom: 4px; }
.gn-hud-title { font-size: 11px; font-weight: 800; color: #ff4040; letter-spacing: 0.12em; text-shadow: 0 0 8px rgba(255, 59, 59, 0.7), 0 0 2px rgba(255, 0, 0, 0.8); margin: 2px 0 0 0; }
.gn-hud-sub { font-size: 7px; color: #ff7070; font-weight: 700; letter-spacing: 0.08em; margin-bottom: 5px; }
.gn-hud-spec { font-size: 5.5px; color: rgba(220, 230, 255, 0.6); letter-spacing: 0.04em; }
.gn-hud-userid { display: flex; flex-direction: column; align-items: flex-end; }
.gn-hud-userid-label { font-size: 5.5px; color: rgba(255, 110, 110, 0.7); }
.gn-hud-userid-name { font-size: 8.5px; font-weight: 800; color: #ff4040; text-shadow: 0 0 6px rgba(255, 59, 59, 0.55); }
.gn-hud-section { font-size: 6px; color: #ff5050; font-weight: 700; letter-spacing: 0.08em; margin: 5px 0 2px 0; text-shadow: 0 0 3px rgba(255, 59, 59, 0.45); }
.gn-hud-section:first-child { margin-top: 0; }
.gn-hud-meta { font-size: 5.5px; color: rgba(220, 230, 255, 0.55); letter-spacing: 0.04em; line-height: 1.3; }
.gn-hud-bullet { font-size: 6px; color: rgba(220, 230, 255, 0.7); line-height: 1.3; }
.gn-hud-sub2 { font-size: 5px; color: rgba(220, 230, 255, 0.5); }
.gn-hud-status { font-size: 5.5px; color: #ff5050; font-weight: 700; letter-spacing: 0.08em; line-height: 1.3; padding: 2px 4px; border: 1px solid rgba(255, 80, 80, 0.4); background: rgba(255, 30, 30, 0.06); text-shadow: 0 0 3px rgba(255, 59, 59, 0.45); display: inline-block; }
.gn-hud-signal { font-size: 5.5px; color: rgba(255, 110, 110, 0.7); letter-spacing: 0.06em; line-height: 1.3; }
.gn-hud-foot {
  display: grid;
  grid-template-columns: 38% 1fr 38%;
  align-items: end;
  background: linear-gradient(180deg, transparent, rgba(255, 30, 30, 0.07) 40%, rgba(255, 30, 30, 0.12));
  border-top: 1px solid rgba(255, 59, 59, 0.4);
  margin: 0 -9px -9px -9px;
  padding: 4px 9px 4px 9px;
  gap: 6px;
}
.gn-hud-foot-left { grid-column: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 2px; }
.gn-hud-vlogo { color: #ff4040; font-size: 10px; font-weight: 700; text-shadow: 0 0 6px rgba(255, 59, 59, 0.7); }
.gn-hud-foot-brand { font-size: 9px; font-weight: 800; color: #ff4040; letter-spacing: 0.12em; text-shadow: 0 0 6px rgba(255, 59, 59, 0.65); }
.gn-hud-foot-tag { font-size: 4.5px; color: rgba(220, 230, 255, 0.55); width: 100%; letter-spacing: 0.04em; }
.gn-hud-foot-mid { grid-column: 2; text-align: center; padding: 0 4px; }
.gn-hud-foot-note-label { font-size: 5.5px; color: #ff5050; font-weight: 700; letter-spacing: 0.08em; }
.gn-hud-foot-note-text { font-size: 4.5px; color: rgba(220, 230, 255, 0.55); line-height: 1.3; }
.gn-hud-foot-right { grid-column: 3; text-align: right; }
.gn-hud-foot-rights { font-size: 5.5px; color: rgba(255, 110, 110, 0.7); letter-spacing: 0.06em; }
.gn-hud-foot-control { font-size: 4.5px; color: rgba(220, 230, 255, 0.45); letter-spacing: 0.08em; margin-top: 1px; }
@media (max-width:380px) {
  .gn-hud { font-size: 5.5px; padding: 8px 7px 7px 7px; }
  .gn-hud-title { font-size: 9px; }
  .gn-hud-brand, .gn-hud-userid-name { font-size: 7px; }
  .gn-hud-section, .gn-hud-bullet { font-size: 5px; }
  .gn-hud-foot-brand { font-size: 7px; }
}

.asset-scan-stage::before,
.asset-scan-stage::after{
  content:none;
}
.scan-asset{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  display:block;
  pointer-events:none;
  user-select:none;
}
.clean-zone-layer{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
}
.zone-overlay{
  --switch-color:var(--cyan);
  position:absolute;
  z-index:5;
  display:block;
  padding:0;
  border:0;
  border-radius:14px;
  background:transparent;
  color:var(--switch-color);
  outline:0;
  cursor:pointer;
  touch-action:manipulation;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
  pointer-events:auto;
  opacity:0;
  transition:opacity .18s ease, filter .18s ease;
}
.zone-overlay[hidden]{display:none!important}
.zone-overlay::before,
.zone-overlay::after{
  content:"";
  position:absolute;
  pointer-events:none;
  opacity:0;
}

/* Hitboxes are invisible by default. The 14154 asset carries the visible zone language. */
.zone-overlay::before{
  inset:-5px;
  border-radius:18px;
  background:radial-gradient(circle at 50% 50%, currentColor 0%, rgba(0,0,0,0) 64%);
  filter:blur(9px);
  mix-blend-mode:screen;
}
.zone-overlay::after{
  width:17px;
  height:17px;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border:1px solid currentColor;
  box-shadow:0 0 10px currentColor, inset 0 0 8px color-mix(in srgb, currentColor 30%, transparent);
  background:radial-gradient(circle, currentColor 0 2px, transparent 3px);
}

/* Non-active mode zones must not visually dominate, even if selected in data. */
.zone-overlay.mode-muted,
.zone-overlay.selected-memory{
  opacity:0!important;
  pointer-events:none;
}
.zone-overlay.mode-muted::before,
.zone-overlay.mode-muted::after,
.zone-overlay.selected-memory::before,
.zone-overlay.selected-memory::after{
  opacity:0!important;
}

/* Active filter zones get only a subtle scan halo. */
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"],
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"],
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]{
  opacity:1;
}
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"]::before,
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"]::before,
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]::before{
  opacity:.10;
}
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"]::after,
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"]::after,
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]::after{
  opacity:.18;
}

/* Status accents are restrained and mode-aware. */
.zone-overlay.ready:not(.selected){
  --switch-color:var(--green);
}
.zone-overlay.last:not(.selected){
  --switch-color:var(--yellow);
}
.zone-overlay.recent:not(.selected){
  --switch-color:var(--magenta);
}
.zone-overlay.ready:not(.selected)::before,
.zone-overlay.last:not(.selected)::before,
.zone-overlay.recent:not(.selected)::before{
  opacity:.16;
}
.zone-overlay.ready:not(.selected)::after,
.zone-overlay.last:not(.selected)::after,
.zone-overlay.recent:not(.selected)::after{
  opacity:.28;
}

/* Selected state enhances the existing 14154 panel instead of drawing a new fake capsule. */
.zone-overlay.selected-active{
  --switch-color:var(--cyan);
  opacity:1!important;
  filter:brightness(1.08);
}
.zone-overlay.selected-active::before{
  opacity:.36!important;
  filter:blur(11px);
  animation:regionHaloBreath 2.35s ease-in-out infinite;
}
.zone-overlay.selected-active::after{
  opacity:.82!important;
  animation:regionMarkerPulse 2.0s ease-in-out infinite;
}
.zone-overlay.selected:not(.selected-active)::before,
.zone-overlay.selected:not(.selected-active)::after{
  opacity:0!important;
}
@keyframes regionHaloBreath{
  0%,100%{transform:scale(.96);opacity:.27}
  50%{transform:scale(1.06);opacity:.45}
}
@keyframes regionMarkerPulse{
  0%,100%{transform:translate(-50%,-50%) scale(.92);opacity:.62}
  50%{transform:translate(-50%,-50%) scale(1.12);opacity:.92}
}

/* Invisible hitboxes aligned to the approved embedded front/back scanner assets.
   Front asset: CORE abdomen + LOWER upper thighs.
   Back asset: UPPER back upper arms.
   Hitboxes are intentionally generous for mobile tapping and visually invisible by default. */
.zone-core-l{left:34.5%;top:34.0%;width:15.2%;height:10.6%;border-radius:18px}
.zone-core-r{left:50.4%;top:34.0%;width:15.2%;height:10.6%;border-radius:18px}
.zone-lower-l{left:29.6%;top:48.0%;width:18.2%;height:18.8%;border-radius:22px}
.zone-lower-r{left:52.2%;top:48.0%;width:18.2%;height:18.8%;border-radius:22px}
.zone-upper-l{left:23.8%;top:29.2%;width:12.0%;height:12.5%;border-radius:22px}
.zone-upper-r{left:64.2%;top:29.2%;width:12.0%;height:12.5%;border-radius:22px}

.scanner-status-helper{
  margin-top:10px;
  font-family:var(--font-m);
  font-size:.56rem;
  letter-spacing:.9px;
  color:#a7bdca;
  line-height:1.6;
  overflow-wrap:break-word;
  text-wrap:pretty;
}
.scanner-status-helper b{color:var(--cyan);font-weight:400}
.scanner-keepout-legend{display:flex;align-items:center;justify-content:center;gap:7px;margin:8px 0 0;color:#d9a4aa;font:600 .5rem/1.35 var(--font-m);letter-spacing:.85px;text-align:center;text-transform:uppercase}
.scanner-keepout-legend[hidden]{display:none}
.scanner-keepout-symbol{width:17px;height:17px;flex:0 0 17px;border:2px dashed rgba(234,9,23,.78);border-radius:50%}
.scanner-selected-panel{
  display:grid;
  gap:8px;
  margin-top:12px;
  border:1px solid rgba(0,212,255,.18);
  border-left:3px solid rgba(0,212,255,.65);
  background:linear-gradient(135deg,rgba(0,212,255,.08),rgba(0,0,0,.22));
  border-radius:13px;
  padding:12px 13px;
}
.scanner-selected-panel small{
  font-family:var(--font-m);
  font-size:.56rem;
  letter-spacing:1.25px;
  color:#aeb9ca;
  text-transform:uppercase;
}
.scanner-selected-panel b{
  font-family:var(--font-d);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.45px;
  color:#e9fbff;
  text-shadow:0 0 10px rgba(0,212,255,.18);
  line-height:1.15;
}
.scanner-selected-panel .history-label{display:block;font-family:var(--font-m);font-size:.54rem;letter-spacing:1.05px;color:#aeb9ca;text-transform:uppercase;margin-bottom:4px}
.scanner-selected-panel .history-value{display:block;font-family:var(--font-d);font-size:.78rem;font-weight:800;letter-spacing:.45px;color:#e9fbff;line-height:1.15}
.shots-safety-note{
  margin-top:10px;
  margin-bottom:calc(88px + var(--safe-bottom));
  border:1px solid rgba(0,212,255,.13);
  background:rgba(0,212,255,.045);
  border-left:2px solid rgba(0,212,255,.36);
  border-radius:var(--r);
  padding:9px 10px;
  color:#a9bfcc;
  font-family:var(--font-m);
  font-size:.56rem;
  line-height:1.45;
  letter-spacing:.75px;
}
.shots-scanner-card{
  margin-bottom:calc(86px + var(--safe-bottom));
}
@media(max-width:420px){
  .shots-scanner-card{padding:14px;margin-bottom:calc(102px + var(--safe-bottom))}
  .asset-matrix-title{align-items:flex-start;flex-direction:column;gap:4px}
  .asset-scan-stage{width:min(100%, 318px)}
  .scanner-mode-btn{font-size:.54rem;letter-spacing:1.2px}
  .scanner-status-helper{font-size:.52rem}
  .zone-overlay::after{inset:6px}
}
@media(max-width:360px){
  .asset-scan-stage{width:min(100%, 296px)}
  .zone-overlay::after{inset:5px}
}


.scanner-location-display{
  border:1px solid rgba(0,212,255,.20);
  background:rgba(0,212,255,.055);
  border-radius:var(--r);
  padding:11px 12px;
}
.scanner-location-display b{
  display:block;
  font-family:var(--font-d);
  font-size:.95rem;
  letter-spacing:.8px;
  color:#e9fbff;
  margin-top:3px;
}
.scanner-location-display .muted{color:var(--text-dim)}
.shots-safety-note{
  margin-top:10px;
  margin-bottom:calc(72px + var(--safe-bottom));
  border:1px solid rgba(0,212,255,.13);
  background:rgba(0,212,255,.045);
  border-left:2px solid rgba(0,212,255,.36);
  border-radius:var(--r);
  padding:9px 10px;
  color:#a9bfcc;
  font-family:var(--font-m);
  font-size:.56rem;
  line-height:1.45;
  letter-spacing:.75px;
}
@media(max-width:420px){
  .shots-scanner-card{padding:14px}
  .asset-matrix-title{align-items:flex-start;flex-direction:column;gap:4px}
  .scanner-mode-btn{font-size:.54rem;letter-spacing:1.2px}
  .scanner-status-helper{font-size:.52rem}
}



.asset-scan-stage.mode-core .zone-overlay:not([data-mode="core"]),
.asset-scan-stage.mode-lower .zone-overlay:not([data-mode="lower"]),
.asset-scan-stage.mode-upper .zone-overlay:not([data-mode="upper"]){
  opacity:0 !important;
  filter:none !important;
  pointer-events:none !important;
}
.asset-scan-stage.mode-core .zone-overlay:not([data-mode="core"])::before,
.asset-scan-stage.mode-lower .zone-overlay:not([data-mode="lower"])::before,
.asset-scan-stage.mode-upper .zone-overlay:not([data-mode="upper"])::before,
.asset-scan-stage.mode-core .zone-overlay:not([data-mode="core"])::after,
.asset-scan-stage.mode-lower .zone-overlay:not([data-mode="lower"])::after,
.asset-scan-stage.mode-upper .zone-overlay:not([data-mode="upper"])::after{
  opacity:0 !important;
  border-color:transparent !important;
  background:transparent !important;
  box-shadow:none !important;
  animation:none !important;
}
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"],
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"],
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]{
  opacity:.105 !important;
  pointer-events:auto !important;
}
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"]::before,
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"]::before,
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]::before{
  border-color:rgba(0,212,255,.20);
  background:rgba(0,212,255,.010);
  box-shadow:0 0 10px rgba(0,212,255,.055), inset 0 0 10px rgba(0,212,255,.018);
}
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"]::after,
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"]::after,
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]::after{
  opacity:.16;
}
.asset-scan-stage.mode-core .zone-overlay.selected[data-mode="core"],
.asset-scan-stage.mode-lower .zone-overlay.selected[data-mode="lower"],
.asset-scan-stage.mode-upper .zone-overlay.selected[data-mode="upper"]{
  opacity:1 !important;
  filter:brightness(1.2);
  pointer-events:auto !important;
}
.asset-scan-stage.mode-core .zone-overlay.selected[data-mode="core"]::before,
.asset-scan-stage.mode-lower .zone-overlay.selected[data-mode="lower"]::before,
.asset-scan-stage.mode-upper .zone-overlay.selected[data-mode="upper"]::before{
  border:2px solid rgba(0,212,255,.92);
  background:rgba(0,212,255,.075);
  box-shadow:
    0 0 18px rgba(0,212,255,.42),
    0 0 36px rgba(0,212,255,.22),
    inset 0 0 24px rgba(0,212,255,.18);
  animation:regionPulse 2.3s ease-in-out infinite;
}
.asset-scan-stage.mode-core .zone-overlay.selected[data-mode="core"]::after,
.asset-scan-stage.mode-lower .zone-overlay.selected[data-mode="lower"]::after,
.asset-scan-stage.mode-upper .zone-overlay.selected[data-mode="upper"]::after{
  opacity:.88;
}
.asset-scan-stage.mode-core .zone-overlay.ready[data-mode="core"]:not(.selected),
.asset-scan-stage.mode-lower .zone-overlay.ready[data-mode="lower"]:not(.selected),
.asset-scan-stage.mode-upper .zone-overlay.ready[data-mode="upper"]:not(.selected){
  --switch-color:var(--green);
  opacity:.18 !important;
}
.asset-scan-stage.mode-core .zone-overlay.last[data-mode="core"]:not(.selected),
.asset-scan-stage.mode-lower .zone-overlay.last[data-mode="lower"]:not(.selected),
.asset-scan-stage.mode-upper .zone-overlay.last[data-mode="upper"]:not(.selected){
  --switch-color:var(--yellow);
  opacity:.18 !important;
}
.asset-scan-stage.mode-core .zone-overlay.recent[data-mode="core"]:not(.selected),
.asset-scan-stage.mode-lower .zone-overlay.recent[data-mode="lower"]:not(.selected),
.asset-scan-stage.mode-upper .zone-overlay.recent[data-mode="upper"]:not(.selected){
  --switch-color:var(--magenta);
  opacity:.15 !important;
}

/* Re-aligned to the visible 14154 panels on the contained image. */
.zone-core-l{left:39.4% !important;top:39.0% !important;width:9.0% !important;height:13.8% !important;border-radius:10px 18px 18px 10px !important}
.zone-core-r{left:51.0% !important;top:39.0% !important;width:9.0% !important;height:13.8% !important;border-radius:18px 10px 10px 18px !important}
.zone-lower-l{left:39.1% !important;top:56.6% !important;width:9.5% !important;height:16.9% !important;border-radius:13px 21px 18px 13px !important}
.zone-lower-r{left:53.1% !important;top:56.6% !important;width:9.5% !important;height:16.9% !important;border-radius:21px 13px 13px 18px !important}
.zone-upper-l{left:26.6% !important;top:26.4% !important;width:8.2% !important;height:12.7% !important;transform:rotate(-10deg) !important;border-radius:13px !important}
.zone-upper-r{left:65.1% !important;top:26.4% !important;width:8.2% !important;height:12.7% !important;transform:rotate(10deg) !important;border-radius:13px !important}


/* ══════════════════════════════════════════
   RESULTS OUTCOME LAYER v1 — REAL DATA ONLY
══════════════════════════════════════════ */
.results-ledger{display:grid;gap:14px}
.results-card{background:linear-gradient(180deg,rgba(14,14,22,.96),rgba(6,6,10,.98));border:1px solid rgba(255,255,255,.075);border-radius:var(--r);padding:15px;position:relative;overflow:hidden}
.results-card::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,212,255,.42),transparent)}
.results-card.summary{border-top:2px solid var(--cyan)}
.results-card.weight{border-left:2px solid var(--green)}
.results-card.appetite{border-left:2px solid var(--yellow)}
.results-card.energy{border-left:2px solid var(--cyan)}
.results-card.effects{border-left:2px solid var(--red)}
.results-card.continuity{border-left:2px solid var(--magenta)}
.results-card-title{display:flex;align-items:center;gap:9px;font-family:var(--font-d);font-size:.86rem;letter-spacing:2px;text-transform:uppercase;color:var(--text);margin-bottom:4px}
.results-card-title .gn-icon{flex:0 0 auto}
.results-card-sub{font-family:var(--font-m);font-size:.54rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-dim);line-height:1.45;margin-bottom:12px}
.results-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.results-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.results-metric{border:1px solid rgba(255,255,255,.07);background:rgba(0,0,0,.22);border-radius:var(--r);padding:10px}
.results-metric-label{font-family:var(--font-m);font-size:.49rem;line-height:1.2;letter-spacing:1.3px;color:var(--text-dim);text-transform:uppercase;margin-bottom:5px}
.results-metric-value{font-family:var(--font-d);font-size:.98rem;line-height:1.05;font-weight:900;color:var(--cyan);letter-spacing:.8px}
.results-metric-value.g{color:var(--green)}.results-metric-value.y{color:var(--yellow)}.results-metric-value.r{color:var(--red)}.results-metric-value.m{color:var(--magenta)}
/* v0.15.41 S12: OUTCOME SUMMARY "LOG OBSERVATIONS" is an empty state, not a recorded value. */
.results-metric-value.results-metric-empty{font-family:var(--font-b);font-size:.72rem;font-weight:400;letter-spacing:1.4px;color:var(--text-mid);border:1px dashed rgba(140,170,190,.45);border-radius:8px;padding:9px 10px;background:transparent;box-shadow:none;text-shadow:none}
.results-weight-cta{font-family:var(--font-m);font-size:.68rem;font-weight:700;letter-spacing:1.6px;color:var(--cyan);background:rgba(0,212,255,.07);border:1px dashed rgba(0,212,255,.45);border-radius:8px;padding:9px 10px;cursor:pointer;text-transform:uppercase;width:100%}
.results-copy{font-family:var(--font-b);font-size:.94rem;line-height:1.45;color:var(--text-mid)}
.results-empty{font-family:var(--font-b);font-size:.94rem;line-height:1.45;color:var(--text-mid);border:1px dashed rgba(0,212,255,.18);background:rgba(0,212,255,.04);border-radius:var(--r);padding:11px 12px}
.results-list{display:grid;gap:7px;margin-top:10px}
.results-list-item{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(255,255,255,.06);padding:7px 0;font-family:var(--font-b);font-size:.92rem;color:var(--text-mid)}
.results-list-item:last-child{border-bottom:0}
.results-list-item b{font-family:var(--font-m);font-weight:400;color:var(--text);letter-spacing:.7px;text-align:right}
.results-safety{font-family:var(--font-m);font-size:.56rem;letter-spacing:1px;line-height:1.55;color:#a7dce8;border:1px solid rgba(0,212,255,.14);border-left:2px solid rgba(0,212,255,.42);background:rgba(0,212,255,.045);border-radius:var(--r);padding:12px}
.results-safety b{display:block;color:var(--cyan);letter-spacing:1.5px;margin-bottom:4px}
@media(max-width:390px){.results-grid-3{grid-template-columns:1fr 1fr}.results-grid-2{grid-template-columns:1fr}.results-card{padding:14px 12px}.results-metric-value{font-size:.9rem}}


/* ══════════════════════════════════════════
   RESULTS Flow Fix + Mobile Polish
   Scope: FAB scanner routing and RESULTS readability only.
══════════════════════════════════════════ */
@media (max-width: 480px) {
  #pageResults {
    padding-left: 12px;
    padding-right: 12px;
    padding-bottom: calc(118px + var(--safe-bottom));
  }
  #pageResults .results-ledger,
  #pageResults .results-card,
  #pageResults .chart-wrap {
    max-width: 100%;
    overflow-x: hidden;
  }
  #pageResults .results-card {
    padding-left: 13px;
    padding-right: 13px;
  }
  #pageResults .results-grid-3 {
    grid-template-columns: 1fr;
  }
  #pageResults .stats-6 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  #pageResults .s6-card,
  #pageResults .results-metric {
    min-width: 0;
  }
  #pageResults .s6-val,
  #pageResults .results-metric-value {
    overflow-wrap: anywhere;
  }
  #pageResults .chart-wrap canvas {
    max-width: 100% !important;
  }
}
#pageResults .observed-weight {
  border-left-color: var(--cyan);
}
#pageResults #r6Total,
#pageResults #r6Pct,
#pageResults #wtChartVal {
  color: var(--cyan);
}
#pageResults .foundation-ready {
  color: #9fc7d4;
}



.log-location-action{
  width:100%;
  margin-top:10px;
  padding:11px 12px;
  border:1px solid rgba(0,212,255,.34);
  border-radius:var(--r);
  background:rgba(0,212,255,.055);
  color:var(--cyan);
  font-family:var(--font-d);
  font-size:.68rem;
  letter-spacing:1.8px;
  text-transform:uppercase;
  cursor:pointer;
}
.log-location-action:active{transform:scale(.99);background:rgba(0,212,255,.10)}
.results-direction{
  margin:10px 0 8px;
  padding:9px 10px;
  border:1px solid rgba(0,212,255,.14);
  border-left:2px solid var(--cyan);
  border-radius:var(--r);
  background:rgba(0,212,255,.04);
  font-family:var(--font-m);
  font-size:.58rem;
  line-height:1.45;
  letter-spacing:1.2px;
  color:#bfe9f2;
  text-transform:uppercase;
}
.results-direction.rising{border-left-color:var(--yellow);color:#ffe58f;background:rgba(255,215,0,.045)}
.results-direction.falling{border-left-color:var(--green);color:#b9ffd9;background:rgba(0,255,136,.035)}
.results-direction.stable,.results-direction.insufficient{border-left-color:#7f8f9a;color:#bac7cf;background:rgba(255,255,255,.035)}
.form-label,
.results-card-sub,
.results-metric-label,
.s6-label,
.nsc-label,
.page-sub,
.cal-detail-label{
  color:#9fb3bd;
}
.results-copy,
.results-empty,
.results-list-item,
.pib-text,
.phase-support,
.phase-transparency-block p,
.phase-transparency-block li{
  color:#aeb8c2;
}
.nav-ico{
  color:#8fa4b2;
}
.nav-lbl{
  color:#91a6b3;
}
.nav-item.active .nav-ico,
.nav-item.active .nav-lbl{
  color:var(--cyan);
}
.shots-safety-note,
.results-safety,
.landing-note,
.phase-edu-note{
  color:#a7cbd5;
}
@media (max-width:480px){
  .modal-hdr{position:sticky;top:0;background:linear-gradient(180deg,var(--panel),rgba(14,14,22,.94));z-index:3;padding-bottom:8px}
  .modal-btn.close{border-color:rgba(0,212,255,.32);color:#bfeeff}
  .form-label{font-size:.61rem}
  .nav-lbl{font-size:.45rem}
  .nav-ico{filter:drop-shadow(0 0 3px rgba(0,212,255,.10))}
}


/* ═══════════════════════════════════════════════
   SHOTS Scanner Selection UX Polish
   Scope: discoverability, tap feedback, selected confirmation, panel copy only.
═══════════════════════════════════════════════ */
.zone-overlay{
  border-radius:10px !important;
  overflow:visible;
}
.zone-overlay::before{
  inset:0 !important;
  border-radius:inherit !important;
  border:1px solid rgba(255,0,204,.18);
  background:
    linear-gradient(90deg,rgba(255,0,204,.11),rgba(0,212,255,.035),rgba(255,0,204,.10)),
    repeating-linear-gradient(0deg,rgba(255,255,255,.045) 0 1px,transparent 1px 7px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 9px);
  box-shadow:
    inset 0 0 18px rgba(255,0,204,.10),
    0 0 14px rgba(255,0,204,.08);
  filter:none !important;
  mix-blend-mode:screen;
}
.zone-overlay::after{
  inset:-4px !important;
  left:auto !important;
  top:auto !important;
  width:auto !important;
  height:auto !important;
  transform:none !important;
  border-radius:calc(inherit + 2px);
  border:1px solid rgba(0,212,255,.22);
  background:
    linear-gradient(90deg,transparent,rgba(0,212,255,.14),transparent);
  box-shadow:
    0 0 12px rgba(0,212,255,.10),
    inset 0 0 13px rgba(0,212,255,.055);
}

/* Dormant biotech zone: available, detected, unselected. */
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"],
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"],
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]{
  opacity:.42 !important;
  pointer-events:auto !important;
}
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"]::before,
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"]::before,
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]::before{
  opacity:.18 !important;
  animation:gnAvailableScan 7.8s ease-in-out infinite;
}
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"]::after,
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"]::after,
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]::after{
  opacity:.10 !important;
}

/* Non-active modes never visually dominate. */
.asset-scan-stage.mode-core .zone-overlay:not([data-mode="core"]),
.asset-scan-stage.mode-lower .zone-overlay:not([data-mode="lower"]),
.asset-scan-stage.mode-upper .zone-overlay:not([data-mode="upper"]){
  opacity:0 !important;
  pointer-events:none !important;
}
.asset-scan-stage.mode-core .zone-overlay:not([data-mode="core"])::before,
.asset-scan-stage.mode-lower .zone-overlay:not([data-mode="lower"])::before,
.asset-scan-stage.mode-upper .zone-overlay:not([data-mode="upper"])::before,
.asset-scan-stage.mode-core .zone-overlay:not([data-mode="core"])::after,
.asset-scan-stage.mode-lower .zone-overlay:not([data-mode="lower"])::after,
.asset-scan-stage.mode-upper .zone-overlay:not([data-mode="upper"])::after{
  opacity:0 !important;
  animation:none !important;
}

/* Region lock: selected only dominates in the active filter. */
.asset-scan-stage.mode-core .zone-overlay.selected[data-mode="core"],
.asset-scan-stage.mode-lower .zone-overlay.selected[data-mode="lower"],
.asset-scan-stage.mode-upper .zone-overlay.selected[data-mode="upper"],
.zone-overlay.selected-active{
  opacity:.92 !important;
  filter:brightness(1.12) saturate(1.16) !important;
}
.asset-scan-stage.mode-core .zone-overlay.selected[data-mode="core"]::before,
.asset-scan-stage.mode-lower .zone-overlay.selected[data-mode="lower"]::before,
.asset-scan-stage.mode-upper .zone-overlay.selected[data-mode="upper"]::before,
.zone-overlay.selected-active::before{
  opacity:.36 !important;
  border-color:rgba(0,212,255,.72) !important;
  background:
    linear-gradient(90deg,rgba(255,0,204,.17),rgba(0,212,255,.10),rgba(255,0,204,.16)),
    repeating-linear-gradient(0deg,rgba(0,212,255,.11) 0 1px,transparent 1px 6px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.055) 0 1px,transparent 1px 8px) !important;
  box-shadow:
    0 0 18px rgba(0,212,255,.24),
    0 0 34px rgba(255,0,204,.14),
    inset 0 0 22px rgba(0,212,255,.12) !important;
  animation:gnLockedShimmer 3.8s ease-in-out infinite !important;
}
.asset-scan-stage.mode-core .zone-overlay.selected[data-mode="core"]::after,
.asset-scan-stage.mode-lower .zone-overlay.selected[data-mode="lower"]::after,
.asset-scan-stage.mode-upper .zone-overlay.selected[data-mode="upper"]::after,
.zone-overlay.selected-active::after{
  opacity:.88 !important;
  border-color:rgba(0,212,255,.88) !important;
  box-shadow:
    0 0 13px rgba(0,212,255,.42),
    inset 0 0 18px rgba(0,212,255,.11) !important;
  animation:gnEdgeLock 2.8s ease-in-out infinite !important;
}

/* One-shot tap registration sequence. */
.zone-overlay.zone-confirming{
  opacity:1 !important;
}
.zone-overlay.zone-confirming::before{
  opacity:.52 !important;
  animation:gnTapGridSweep .48s ease-out 1 !important;
}
.zone-overlay.zone-confirming::after{
  opacity:1 !important;
  animation:gnPerimeterTrace .48s ease-out 1 !important;
}

/* Minimal particles: GRID//NODE system registration, not sparkle. */
.scanner-particle{
  position:absolute;
  z-index:9;
  width:3px;
  height:3px;
  border-radius:50%;
  background:rgba(0,212,255,.88);
  box-shadow:0 0 8px rgba(0,212,255,.65);
  pointer-events:none;
  animation:gnParticleFlicker .55s ease-out forwards;
}

/* Selected location panel: system record / mission-log feel. */
.scanner-selected-panel{
  position:relative;
  overflow:hidden;
  border-color:rgba(0,212,255,.24) !important;
  background:
    radial-gradient(circle at 10% 0%,rgba(0,212,255,.10),transparent 34%),
    linear-gradient(135deg,rgba(0,212,255,.070),rgba(0,0,0,.28)) !important;
}
.scanner-selected-panel.zone-locked{
  border-color:rgba(0,212,255,.38) !important;
  box-shadow:0 0 18px rgba(0,212,255,.10), inset 0 0 18px rgba(0,212,255,.045);
}
.scanner-selected-panel .panel-kicker{
  font-family:var(--font-m);
  font-size:.54rem;
  letter-spacing:1.5px;
  color:var(--cyan);
  text-transform:uppercase;
}
.scanner-selected-panel .panel-location{
  font-family:var(--font-d);
  font-size:1.0rem;
  line-height:1.08;
  letter-spacing:1.1px;
  color:#f1fbff;
  text-transform:uppercase;
  text-shadow:0 0 14px rgba(0,212,255,.26);
}
.scanner-selected-panel .panel-sub{
  font-family:var(--font-b);
  font-size:.86rem;
  line-height:1.35;
  color:#c2d4dc;
}
.scanner-selected-panel .panel-history{
  margin-top:5px;
  padding-top:8px;
  border-top:1px solid rgba(255,255,255,.07);
}
.scanner-selected-panel .panel-empty{
  color:#b6c7d0;
  font-family:var(--font-b);
  font-size:.9rem;
  line-height:1.38;
}
.scanner-selected-panel .panel-updated{
  font-family:var(--font-m);
  font-size:.50rem;
  letter-spacing:1.35px;
  color:#84f6ff;
  text-transform:uppercase;
  opacity:.82;
}

@keyframes gnAvailableScan{
  0%,100%{background-position:0 0,0 0,0 0;opacity:.13}
  45%{opacity:.20}
  50%{background-position:24px 0,0 10px,12px 0;opacity:.22}
}
@keyframes gnLockedShimmer{
  0%,100%{background-position:0 0,0 0,0 0}
  50%{background-position:18px 0,0 8px,10px 0}
}
@keyframes gnEdgeLock{
  0%,100%{box-shadow:0 0 12px rgba(0,212,255,.32),inset 0 0 15px rgba(0,212,255,.08)}
  50%{box-shadow:0 0 18px rgba(0,212,255,.54),inset 0 0 20px rgba(0,212,255,.13)}
}
@keyframes gnTapGridSweep{
  0%{clip-path:inset(0 100% 0 0);opacity:.08}
  45%{clip-path:inset(0 0 0 0);opacity:.55}
  100%{clip-path:inset(0 0 0 100%);opacity:.22}
}
@keyframes gnPerimeterTrace{
  0%{transform:scale(.94);opacity:.2}
  42%{transform:scale(1.04);opacity:1}
  100%{transform:scale(1);opacity:.55}
}
@keyframes gnParticleFlicker{
  0%{transform:translate(0,0) scale(.7);opacity:.95}
  100%{transform:translate(var(--px),var(--py)) scale(.15);opacity:0}
}


/* ═══════════════════════════════════════════════
   SCANNER SELECTION UX POLISH v2
   Selected-state no longer uses floating tap markers.
   The selected trackable zone itself carries the lock state.
═══════════════════════════════════════════════ */
.zone-overlay{
  isolation:isolate;
}

/* Remove/minimize floating dot/ring marker from previous polish. */
.zone-overlay::after{
  left:0!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  width:auto!important;
  height:auto!important;
  transform:none!important;
  border-radius:inherit!important;
  border:0!important;
  box-shadow:none!important;
  background:
    linear-gradient(90deg,transparent 0%,rgba(0,212,255,.00) 35%,rgba(0,212,255,.34) 50%,rgba(0,212,255,.00) 65%,transparent 100%)!important;
  opacity:0!important;
  pointer-events:none!important;
}

/* Available zones: subtle dormant biotech-zone visibility, not medical panels. */
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"]::before,
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"]::before,
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]::before{
  inset:0!important;
  border-radius:inherit!important;
  opacity:.18!important;
  border:1px solid rgba(255,0,204,.18);
  background:
    linear-gradient(90deg,rgba(255,0,204,.055) 0 1px,transparent 1px 7px),
    linear-gradient(0deg,rgba(0,212,255,.045) 0 1px,transparent 1px 8px),
    radial-gradient(circle at 50% 50%,rgba(255,0,204,.12),rgba(0,212,255,.04) 48%,transparent 72%)!important;
  filter:drop-shadow(0 0 8px rgba(255,0,204,.16))!important;
  mix-blend-mode:screen!important;
}

/* Prior marker behavior must never return. */
.zone-overlay.selected-active::after{
  opacity:0!important;
  animation:none!important;
}

/* Selected state: lock the region area itself with magenta density + thin cyan edge. */
.zone-overlay.selected-active::before{
  inset:-1px!important;
  opacity:.72!important;
  border:1.5px solid rgba(0,212,255,.74)!important;
  background:
    linear-gradient(90deg,rgba(0,212,255,.00),rgba(0,212,255,.20),rgba(0,212,255,.00)),
    linear-gradient(90deg,rgba(255,0,204,.10) 0 1px,transparent 1px 6px),
    linear-gradient(0deg,rgba(0,212,255,.08) 0 1px,transparent 1px 7px),
    radial-gradient(circle at 50% 50%,rgba(255,0,204,.26),rgba(0,212,255,.12) 48%,transparent 76%)!important;
  filter:drop-shadow(0 0 12px rgba(0,212,255,.36)) drop-shadow(0 0 16px rgba(255,0,204,.18))!important;
  box-shadow:inset 0 0 18px rgba(0,212,255,.16), 0 0 16px rgba(0,212,255,.22);
  animation:zoneLockBreathV2 2.6s ease-in-out infinite!important;
}

/* One-shot confirmation layer appears as region sweep, not point marker. */
.zone-overlay.zone-confirming::after{
  opacity:.62!important;
  animation:zoneSweepOnceV2 .48s ease-out 1!important;
}

.zone-overlay.zone-confirming::before{
  animation:zoneLockConfirmV2 .48s ease-out 1, zoneLockBreathV2 2.6s ease-in-out infinite!important;
}

@keyframes zoneLockBreathV2{
  0%,100%{opacity:.56;filter:drop-shadow(0 0 10px rgba(0,212,255,.26)) drop-shadow(0 0 13px rgba(255,0,204,.15))}
  50%{opacity:.78;filter:drop-shadow(0 0 15px rgba(0,212,255,.42)) drop-shadow(0 0 18px rgba(255,0,204,.22))}
}
@keyframes zoneSweepOnceV2{
  0%{transform:translateX(-115%);opacity:0}
  16%{opacity:.58}
  100%{transform:translateX(115%);opacity:0}
}
@keyframes zoneLockConfirmV2{
  0%{transform:scale(.985);opacity:.35}
  42%{transform:scale(1.025);opacity:.86}
  100%{transform:scale(1);opacity:.62}
}

/* Subtle panel prominence after selection; keeps source-of-truth visible. */
.scanner-selected-panel.zone-locked{
  border-color:rgba(0,212,255,.46)!important;
  background:
    radial-gradient(circle at 12% 0%,rgba(0,212,255,.13),transparent 42%),
    linear-gradient(135deg,rgba(0,212,255,.095),rgba(0,0,0,.25))!important;
  box-shadow:0 0 20px rgba(0,212,255,.13), inset 0 0 18px rgba(0,212,255,.05)!important;
}
.scanner-selected-panel .panel-location{
  color:#f3feff!important;
  text-shadow:0 0 14px rgba(0,212,255,.28)!important;
}
.scanner-selected-panel .panel-empty{
  color:#bdd0dc!important;
  font-family:var(--font-b);
  font-size:.88rem;
  line-height:1.35;
}


/* ═══════════════════════════════════════════════
   SCANNER CANONICAL ASSET SYNC v4
   Body-perspective mapping + CORE/LOWER hitbox precision.
   Prep-only: no overlays, no selected-state FX.
═══════════════════════════════════════════════ */
.asset-scan-stage,
.asset-scan-stage.mode-core,
.asset-scan-stage.mode-lower,
.asset-scan-stage.mode-upper{
  aspect-ratio:2 / 3 !important;
}
.asset-scan-stage.mode-core .zone-overlay:not([data-mode="core"]),
.asset-scan-stage.mode-lower .zone-overlay:not([data-mode="lower"]),
.asset-scan-stage.mode-upper .zone-overlay:not([data-mode="upper"]){
  pointer-events:none !important;
  opacity:0 !important;
}
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"],
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"],
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]{
  pointer-events:auto !important;
}

/* CORE uses front-view body perspective:
   screen-left panel = Right Abdomen, screen-right panel = Left Abdomen.
   Hitboxes are tightened to the visible purple abdomen panels only. */
.zone-core-l{
  left:38.8% !important;
  top:36.6% !important;
  width:10.4% !important;
  height:10.8% !important;
  border-radius:18px 14px 16px 18px !important;
  clip-path:polygon(12% 4%,100% 0%,98% 92%,18% 100%,0% 82%,0% 18%) !important;
}
.zone-core-r{
  left:50.8% !important;
  top:36.6% !important;
  width:10.4% !important;
  height:10.8% !important;
  border-radius:14px 18px 18px 16px !important;
  clip-path:polygon(0% 0%,88% 4%,100% 18%,100% 82%,82% 100%,2% 92%) !important;
}

/* LOWER uses front-view body perspective:
   screen-left panel = Right Thigh, screen-right panel = Left Thigh.
   Tightened to the visible purple upper-thigh panels while preserving upper/middle/lower tap response. */
.zone-lower-l{
  left:31.2% !important;
  top:49.0% !important;
  width:15.0% !important;
  height:22.4% !important;
  border-radius:24px 34px 30px 20px !important;
  clip-path:polygon(18% 0%,88% 5%,100% 18%,92% 88%,70% 100%,6% 92%,0% 76%,2% 18%) !important;
}
.zone-lower-r{
  left:53.8% !important;
  top:49.0% !important;
  width:15.0% !important;
  height:22.4% !important;
  border-radius:34px 24px 20px 30px !important;
  clip-path:polygon(12% 5%,82% 0%,98% 18%,100% 76%,94% 92%,30% 100%,8% 88%,0% 18%) !important;
}

/* UPPER remains back-view body perspective and is intentionally unchanged except for active-mode isolation. */


.phase-clarity-note,
.results-signal-note{
  margin-top:9px;
  padding:9px 10px;
  border:1px solid rgba(0,212,255,.14);
  border-left:2px solid rgba(0,212,255,.42);
  border-radius:var(--r);
  background:rgba(0,212,255,.045);
  font-family:var(--font-m);
  font-size:.56rem;
  line-height:1.45;
  letter-spacing:1px;
  color:#a7dce8;
}
.phase-clarity-note b,
.results-signal-note b{color:var(--cyan);letter-spacing:1.4px}
.results-empty .empty-subline{
  display:block;
  margin-top:6px;
  color:#9fc7d4;
  font-size:.88em;
  line-height:1.35;
}


.phase-card .phase-edu-note{
  margin-bottom:18px !important;
}
.phase-card .phase-edu-note + .phase-info-grid{
  margin-top:2px !important;
}
@media(max-width:430px){
  .phase-card .phase-edu-note{
    margin-bottom:20px !important;
  }
}


.app-wordmark{cursor:pointer;user-select:none}
.app-wordmark:active{transform:scale(.98)}
.boot-logo-svg{overflow:visible}
.boot-prog-pct{font-size:.60rem;letter-spacing:2px;text-align:center;color:#8fbecb;text-transform:uppercase}
.data-transfer-copy{font-family:var(--font-b);font-size:.88rem;color:var(--text-mid);line-height:1.4;margin:8px 0 12px}
.data-transfer-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.data-transfer-btn{font-size:.68rem;padding:12px 8px}
.gn-date-overlay,.csv-import-overlay{position:fixed;inset:0;z-index:560;background:rgba(0,0,0,.84);display:none;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(8px)}
.gn-date-overlay.active,.csv-import-overlay.active{display:flex;animation:fadeIn .18s ease}
.gn-date-panel,.csv-import-panel{width:min(380px,100%);background:linear-gradient(180deg,rgba(18,18,28,.98),rgba(7,7,12,.98));border:1px solid rgba(0,212,255,.22);border-top:2px solid var(--cyan);box-shadow:0 18px 50px rgba(0,0,0,.62),0 0 28px rgba(0,212,255,.08);border-radius:var(--r);padding:16px;position:relative;overflow:hidden}
.gn-date-title,.csv-import-title{font-family:var(--font-d);font-size:.86rem;letter-spacing:2px;color:var(--cyan);text-transform:uppercase;margin-bottom:10px}
.gn-date-month{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.gn-date-month-label{font-family:var(--font-m);font-size:.72rem;letter-spacing:2px;color:var(--text)}
.gn-date-nav{width:34px;height:30px;border:1px solid rgba(0,212,255,.25);background:rgba(0,212,255,.06);color:var(--cyan);border-radius:4px;font-family:var(--font-d);cursor:pointer}
.gn-date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.gn-date-dow{font-family:var(--font-m);font-size:.48rem;color:var(--text-dim);letter-spacing:1px;text-align:center;padding:4px 0}
.gn-date-day{height:34px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);color:var(--text-mid);border-radius:4px;font-family:var(--font-m);font-size:.72rem;cursor:pointer}
.gn-date-day:hover,.gn-date-day:active{border-color:rgba(0,212,255,.45);color:var(--cyan);background:rgba(0,212,255,.08)}
.gn-date-day.selected{border-color:var(--cyan);color:var(--cyan);background:rgba(0,212,255,.14);box-shadow:0 0 12px rgba(0,212,255,.14)}
.gn-date-day.today{border-color:rgba(255,215,0,.35);color:var(--yellow)}
.gn-date-day.blank{visibility:hidden}
.gn-date-actions,.csv-import-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.gn-date-actions button,.csv-import-actions button{border-radius:4px;padding:11px 10px;font-family:var(--font-d);font-size:.68rem;letter-spacing:2px;cursor:pointer;text-transform:uppercase}
.gn-date-cancel,.csv-import-cancel{background:transparent;color:var(--text-mid);border:1px solid var(--border2)}
.gn-date-set,.csv-import-save{background:rgba(0,212,255,.10);color:var(--cyan);border:1px solid rgba(0,212,255,.45)}
.csv-import-body{font-family:var(--font-b);font-size:.92rem;line-height:1.45;color:var(--text-mid);margin-bottom:10px}
.csv-import-summary{border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.22);padding:10px;border-radius:var(--r);font-family:var(--font-m);font-size:.60rem;line-height:1.7;color:#a9bbc7;max-height:210px;overflow:auto}
.csv-import-summary b{color:var(--cyan)}
.csv-import-warn{color:var(--yellow);margin-top:8px;display:block}
.csv-import-rows{margin-top:10px;max-height:34vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px;text-align:left}
.csv-import-rows:empty{display:none}
.csv-import-group{display:flex;flex-direction:column;gap:6px}
.csv-import-group-title{font-family:var(--font-m);font-size:.58rem;letter-spacing:1.8px;color:var(--text-dim)}
.csv-import-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid rgba(0,212,255,.16);border-radius:8px;background:rgba(0,0,0,.25);font-family:var(--font-m);font-size:.62rem;line-height:1.5;color:var(--text-mid)}
.csv-import-badge{flex:0 0 auto;font-size:.55rem;letter-spacing:1.2px;padding:2px 7px;border-radius:20px;border:1px solid}
.csv-import-badge.ok{color:#00ff88;border-color:rgba(0,255,136,.4)}
.csv-import-badge.dupe{color:var(--yellow);border-color:rgba(255,215,0,.4)}
.csv-import-badge.bad{color:#ff6b6b;border-color:rgba(255,107,107,.4)}
.csv-import-row-main{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.csv-import-force{flex:0 0 auto;display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--text-dim);font-size:.58rem;letter-spacing:.6px;white-space:nowrap}
.csv-import-force input{width:18px;height:18px;accent-color:var(--cyan);cursor:pointer}
.csv-import-notimported{font-family:var(--font-m);font-size:.60rem;line-height:1.7;color:var(--text-dim);border:1px dashed rgba(255,255,255,.14);border-radius:8px;padding:8px 10px}
html[data-theme="light"] .csv-import-row{background:rgba(255,255,255,.6);border-color:rgba(0,111,130,.2)}
html[data-theme="light"] .csv-import-notimported{border-color:rgba(0,111,130,.25)}
@media(max-width:380px){
  .data-transfer-actions{grid-template-columns:1fr}
  .gn-date-day{height:32px;font-size:.68rem}
}
@media (prefers-reduced-motion: reduce){
  .gn-date-overlay.active,.csv-import-overlay.active{animation:none}
}
/* Import dialog overlay (source picker). Base layer was missing; the dialog
   previously rendered unstyled. Matches the csv-import overlay pattern. */
.gn-import-overlay{position:fixed;inset:0;z-index:570;background:rgba(0,0,0,.84);display:none;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(8px)}
.gn-import-overlay.active{display:flex;animation:fadeIn .18s ease}
.gn-import-panel{width:min(380px,100%);max-height:86vh;overflow-y:auto;background:linear-gradient(180deg,rgba(18,18,28,.98),rgba(7,7,12,.98));border:1px solid rgba(0,212,255,.22);border-top:2px solid var(--cyan);box-shadow:0 18px 50px rgba(0,0,0,.62),0 0 28px rgba(0,212,255,.08);border-radius:var(--r);padding:16px}
.gn-import-title{font-family:var(--font-d);font-size:.86rem;letter-spacing:2px;color:var(--cyan);text-transform:uppercase;margin-bottom:10px}
.gn-import-panel p{font-family:var(--font-b);font-size:.8rem;line-height:1.5;color:var(--text-mid);margin:0 0 10px}
.gn-import-panel label{display:block;margin-bottom:10px;font-family:var(--font-m);font-size:.6rem;letter-spacing:1.4px;color:var(--text-dim)}
.gn-import-panel label span{display:block;margin-bottom:6px}
.gn-import-panel select{width:100%;padding:11px 10px;font-size:.85rem}
.gn-import-file input[type="file"]{display:block;width:100%;margin-top:2px;font-family:var(--font-m);font-size:.68rem;color:var(--text-mid)}
.gn-import-file input[type="file"]::file-selector-button{margin-right:10px;padding:10px 14px;border:1px solid rgba(0,212,255,.45);background:rgba(0,212,255,.10);color:var(--cyan);border-radius:4px;font-family:var(--font-d);font-size:.62rem;letter-spacing:1.6px;cursor:pointer}
.gn-import-close{display:block;width:100%;margin-top:6px;border-radius:4px;padding:11px 10px;font-family:var(--font-d);font-size:.68rem;letter-spacing:2px;cursor:pointer;text-transform:uppercase;background:transparent;color:var(--text-mid);border:1px solid var(--border2)}
.gn-import-summary{font-family:var(--font-m);font-size:.62rem;line-height:1.6;color:var(--text-dim);margin:10px 0}
.gn-import-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.gn-mapping-grid{display:grid;gap:10px;margin:12px 0}
.gn-inline-error{margin-top:10px;padding:10px;border:1px solid rgba(255,107,107,.5);border-radius:8px;color:#ff6b6b;font-family:var(--font-m);font-size:.62rem;letter-spacing:.8px}
.gn-import-map-button{display:block;width:100%;margin-top:10px;padding:11px;border:1px dashed rgba(0,212,255,.4);background:transparent;color:var(--cyan);border-radius:4px;font-family:var(--font-d);font-size:.62rem;letter-spacing:1.6px;cursor:pointer}
@media (prefers-reduced-motion: reduce){
  .gn-import-overlay.active{animation:none}
}


.syringe-visual{
  background:
    radial-gradient(circle at 18% 30%,rgba(0,255,136,.055),transparent 34%),
    linear-gradient(180deg,rgba(16,18,25,.96),rgba(5,6,10,.96));
  border-color:rgba(0,212,255,.22);
  box-shadow:inset 0 0 0 1px rgba(0,255,136,.035),0 14px 38px rgba(0,0,0,.34);
}
.syr-result-line{
  font-family:var(--font-b);
  font-size:.90rem;
  line-height:1.38;
  color:#bcd0d8;
  text-align:center;
  margin:8px auto 8px;
  max-width:330px;
}
.syr-formula-line{
  font-family:var(--font-m);
  font-size:.58rem;
  line-height:1.45;
  letter-spacing:1px;
  color:#9fcbd6;
  text-align:center;
  border:1px solid rgba(0,212,255,.13);
  background:rgba(0,0,0,.18);
  border-radius:var(--r);
  padding:8px 9px;
  margin:8px 0 12px;
}
.syr-caution-line{
  font-family:var(--font-b);
  font-size:.88rem;
  line-height:1.4;
  color:#ffd979;
  border:1px solid rgba(255,215,0,.24);
  background:rgba(255,215,0,.06);
  border-left:2px solid rgba(255,215,0,.52);
  border-radius:var(--r);
  padding:9px 10px;
  margin:8px 0 12px;
}
.syringe-body-wrap{
  flex-direction:row-reverse;
  height:56px;
  align-items:center;
  gap:0;
  margin:16px 0 4px;
}
.syr-plunger{
  order:0;
  width:28px;
  height:34px;
  border-radius:0 3px 3px 0;
  border:1px solid rgba(0,212,255,.32);
  border-left:none;
  background:linear-gradient(180deg,rgba(32,38,48,.9),rgba(12,16,23,.95));
}
.syr-grip-line{width:10px;height:1px;background:rgba(155,236,255,.34)}
.syr-barrel{
  order:1;
  height:28px;
  margin-left:0;
  margin-right:4px;
  border:1.5px solid rgba(0,212,255,.36);
  border-left:none;
  border-right:none;
  border-radius:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,.035),transparent 40%,rgba(0,0,0,.18)),
    rgba(0,0,0,.46);
}
.syr-fluid{
  left:0;
  right:auto;
  background:linear-gradient(90deg,rgba(0,255,136,.18),rgba(0,255,136,.40),rgba(92,255,185,.52));
  border-right:2px solid rgba(174,255,211,.95);
  box-shadow:2px 0 10px rgba(0,255,136,.25), inset 0 0 10px rgba(0,255,136,.09);
}
.syr-target-line{
  width:2px;
  background:#ffd66b;
  box-shadow:0 0 7px rgba(255,214,107,.74);
}
.syr-target-line::before{
  border-left-width:4px;
  border-right-width:4px;
  border-top-color:#ffd66b;
}
.syr-hub{
  order:2;
  width:14px;
  height:20px;
  border:1.5px solid rgba(0,212,255,.34);
  border-right:none;
  border-left:1.5px solid rgba(0,212,255,.34);
  background:linear-gradient(180deg,rgba(28,34,44,.94),rgba(9,12,18,.94));
  clip-path:polygon(0 50%,100% 12%,100% 88%);
}
.syr-needle{
  order:3;
  width:34px;
  height:2px;
  background:linear-gradient(90deg,rgba(175,238,255,.95),rgba(0,212,255,.52));
  box-shadow:0 0 4px rgba(0,212,255,.34);
  clip-path:polygon(0 50%,100% 0,100% 100%);
}
.syr-marks{
  background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 1px),rgba(255,255,255,.06) calc(10% - 1px),rgba(255,255,255,.06) 10%);
}
.syr-mark{border-right-color:rgba(255,255,255,.075)}
.syr-mark.major{border-right-color:rgba(255,255,255,.22)}
.syr-scale-labels{
  padding:0 32px 0 49px;
  margin-top:7px;
}
.syr-scale-lbl{
  color:#91adba;
  font-size:.46rem;
  letter-spacing:.4px;
}
.syr-scale-lbl.major{color:#a9efff}
.syr-math-helper{
  margin-top:12px;
  border:1px solid rgba(0,212,255,.12);
  background:rgba(0,0,0,.20);
  border-radius:var(--r);
  padding:9px 10px;
}
.syr-math-helper summary{
  cursor:pointer;
  font-family:var(--font-m);
  font-size:.56rem;
  color:#aeefff;
  letter-spacing:1.4px;
  text-transform:uppercase;
}
.syr-math-helper p{
  font-family:var(--font-b);
  font-size:.86rem;
  line-height:1.35;
  color:#a9bfca;
  margin-top:8px;
}
.syr-math-helper b{color:#d9f7ff}
.syr-safety-boundary{color:#ffdca0!important}
.syr-overflow .syr-result-big{color:#FF5B5B;text-shadow:0 0 16px rgba(255,59,59,.38)}
.syr-overflow .syr-fluid{
  width:100%!important;
  background:linear-gradient(90deg,rgba(255,59,59,.14),rgba(255,59,59,.26),rgba(255,120,150,.34));
  border-right:2px solid rgba(255,120,150,.92);
  box-shadow:2px 0 12px rgba(255,59,59,.22);
}
.syr-overflow .syr-formula-line{
  border-color:rgba(255,59,59,.26);
  color:#ffb1c3;
  background:rgba(255,59,59,.045);
}
@media(max-width:380px){
  .syringe-visual{padding:18px 12px 14px}
  .syr-result-line{font-size:.84rem}
  .syr-formula-line{font-size:.53rem}
  .syr-scale-labels{padding:0 28px 0 44px}
  .syr-scale-lbl{font-size:.40rem}
  .syr-needle{width:28px}
  .syr-plunger{width:24px}
}



.results-records-panel{
  margin-top:13px;
  border:1px solid rgba(0,212,255,.13);
  border-left:2px solid rgba(0,212,255,.38);
  background:linear-gradient(180deg,rgba(0,212,255,.045),rgba(0,0,0,.22));
  border-radius:var(--r);
  overflow:hidden;
}
.results-records-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  padding:11px 12px 9px;
  border-bottom:1px solid rgba(255,255,255,.065);
}
.results-records-title{
  font-family:var(--font-m);
  font-size:.56rem;
  letter-spacing:2.4px;
  color:#a9edf6;
  text-transform:uppercase;
}
.results-records-sub{
  font-family:var(--font-m);
  font-size:.48rem;
  line-height:1.35;
  letter-spacing:1.3px;
  color:#7f98a6;
  text-align:right;
  text-transform:uppercase;
}
.results-records-list{
  display:grid;
  gap:0;
}
.results-record-item{
  padding:10px 12px;
  border-bottom:1px solid rgba(255,255,255,.055);
  background:rgba(0,0,0,.10);
}
.results-record-item:last-child{border-bottom:none}
.results-record-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.results-record-stamp{
  font-family:var(--font-m);
  font-size:.57rem;
  letter-spacing:1.3px;
  color:#a8bbc7;
  line-height:1.35;
}
.results-record-value{
  font-family:var(--font-d);
  font-size:.82rem;
  letter-spacing:1px;
  color:var(--green);
  white-space:nowrap;
}
.results-record-note{
  margin-top:7px;
  padding-top:7px;
  border-top:1px solid rgba(255,255,255,.045);
  font-family:var(--font-b);
  font-size:.88rem;
  line-height:1.35;
  color:#b7c6cf;
}
.results-record-empty{
  padding:13px 12px;
  font-family:var(--font-m);
  font-size:.54rem;
  letter-spacing:1.5px;
  line-height:1.45;
  color:#8fa8b5;
}
.results-phase-source{
  border-left:2px solid rgba(255,215,0,.38);
}
.results-phase-source .results-card-sub{
  color:#9fb7c4;
}
.phase-source-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:12px;
}
.phase-source-cell{
  border:1px solid rgba(255,255,255,.075);
  background:rgba(0,0,0,.19);
  border-radius:var(--r);
  padding:10px;
  min-width:0;
}
.phase-source-label{
  font-family:var(--font-m);
  font-size:.48rem;
  letter-spacing:1.65px;
  line-height:1.2;
  color:#8fa8b5;
  text-transform:uppercase;
  margin-bottom:5px;
}
.phase-source-value{
  font-family:var(--font-d);
  font-size:.74rem;
  letter-spacing:.75px;
  line-height:1.2;
  color:#f0f4f7;
  overflow-wrap:anywhere;
}
.phase-source-value.c{color:var(--cyan)}
.phase-source-value.y{color:var(--yellow)}
.phase-source-value.g{color:var(--green)}
.phase-source-note{
  margin-top:11px;
  border:1px solid rgba(0,212,255,.12);
  border-left:2px solid rgba(0,212,255,.36);
  background:rgba(0,212,255,.035);
  border-radius:var(--r);
  padding:9px 10px;
  font-family:var(--font-m);
  font-size:.52rem;
  letter-spacing:1.1px;
  line-height:1.45;
  color:#9fb7c4;
}
@media(max-width:380px){
  .results-records-head{flex-direction:column;align-items:flex-start}
  .results-records-sub{text-align:left}
  .results-record-top{flex-direction:column;gap:5px}
  .phase-source-grid{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════
   SCANNER CANONICAL ASSET SYNC v1 — PREP ONLY
   - Uses verified 1024x1536 canonical front/back masters.
   - Normalizes scanner display to 2:3 in all modes.
   - Preserves object-fit: contain and object-position: center center.
   - Disables old CSS selected-state FX that could interfere with future full-canvas overlay assets.
   - No overlay assets created.
═══════════════════════════════════════════════ */
.asset-scan-stage,
.asset-scan-stage.mode-core,
.asset-scan-stage.mode-lower,
.asset-scan-stage.mode-upper{
  aspect-ratio:2 / 3!important;
  width:min(100%,350px)!important;
  max-width:350px!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
}

.scan-asset,
.scanner-reference-image,
#scannerBodyAsset{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
}

/* Invisible hitboxes remain active; visual selected FX are disabled until derived overlay assets exist. */
.asset-scan-stage .zone-overlay{
  background:transparent!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:0!important;
}
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"],
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"],
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]{
  opacity:0!important;
  pointer-events:auto!important;
}
.asset-scan-stage .zone-overlay::before,
.asset-scan-stage .zone-overlay::after{
  content:none!important;
  display:none!important;
  opacity:0!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
  filter:none!important;
  animation:none!important;
}
.asset-scan-stage .zone-overlay.selected,
.asset-scan-stage .zone-overlay.selected-active,
.asset-scan-stage .zone-overlay.last,
.asset-scan-stage .zone-overlay.ready,
.asset-scan-stage .zone-overlay.recent,
.asset-scan-stage .zone-overlay.tap-pulse,
.asset-scan-stage .zone-overlay.zone-lock-pulse{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:0!important;
}
.asset-scan-stage .zone-overlay.selected::before,
.asset-scan-stage .zone-overlay.selected::after,
.asset-scan-stage .zone-overlay.selected-active::before,
.asset-scan-stage .zone-overlay.selected-active::after,
.asset-scan-stage .zone-overlay.last::before,
.asset-scan-stage .zone-overlay.last::after,
.asset-scan-stage .zone-overlay.ready::before,
.asset-scan-stage .zone-overlay.ready::after,
.asset-scan-stage .zone-overlay.recent::before,
.asset-scan-stage .zone-overlay.recent::after{
  content:none!important;
  display:none!important;
}

@media(max-width:480px){
  .asset-scan-stage,
  .asset-scan-stage.mode-core,
  .asset-scan-stage.mode-lower,
  .asset-scan-stage.mode-upper{
    width:min(100%,350px)!important;
    max-width:350px!important;
    aspect-ratio:2 / 3!important;
    height:auto!important;
    max-height:none!important;
  }
}

/* Keep upper-arm subdivision guide aligned to triceps region, not elbow/forearm. */
.track12-upper-hud{
  left:25.6% !important;
  top:23.9% !important;
  width:48.8% !important;
  height:16.4% !important;
}

/* UPPER rear arm quadrants:
   Upper = upper triceps/upper back-arm field.
   Lower = lower triceps field, above elbow, not elbow/forearm. */
.zone-upper-lu{
  left:26.4% !important;
  top:24.7% !important;
  width:13.3% !important;
  height:7.4% !important;
  border-radius:18px 14px 14px 16px !important;
}
.zone-upper-ll{
  left:26.0% !important;
  top:31.7% !important;
  width:13.0% !important;
  height:6.6% !important;
  border-radius:16px 14px 18px 18px !important;
}
.zone-upper-ru{
  left:60.3% !important;
  top:24.7% !important;
  width:13.3% !important;
  height:7.4% !important;
  border-radius:14px 18px 16px 14px !important;
}
.zone-upper-rl{
  left:61.0% !important;
  top:31.7% !important;
  width:13.0% !important;
  height:6.6% !important;
  border-radius:14px 16px 18px 18px !important;
}

/* Keep selected intelligence clipped inside the corrected region. */
.asset-scan-stage.mode-upper .track12-zone.selected-active::after{
  inset:13% 9% !important;
  font-size:clamp(4.5px,.52vw,7px) !important;
}

/* BACK UPPER ARM TRACKING DIRECTION v1 — LOCKED
   Execution refinement only.
   Posterior triceps placement, broad embedded purple back-upper-arm field,
   clearly above elbow, no forearm drift, no shoulder-cap drift.
   Scanner assets, 12-zone logic, LOG SHOT flow, selected-location source of truth,
   and protected systems remain unchanged. */

.asset-scan-stage.mode-upper .track12-upper-hud{
  left:25.8% !important;
  top:24.4% !important;
  width:48.4% !important;
  height:14.6% !important;
  opacity:.36 !important;
}

/* Rear-view screen-left is body Left. Keep the quadrants centered on posterior triceps.
   Upper = upper posterior triceps field, below shoulder cap.
   Lower = lower posterior triceps field, clearly above elbow and never forearm. */
.asset-scan-stage.mode-upper .zone-upper-lu{
  left:26.8% !important;
  top:25.1% !important;
  width:12.6% !important;
  height:6.7% !important;
  border-radius:20px 15px 14px 18px !important;
}
.asset-scan-stage.mode-upper .zone-upper-ll{
  left:26.5% !important;
  top:31.4% !important;
  width:12.2% !important;
  height:5.9% !important;
  border-radius:17px 14px 19px 20px !important;
}
.asset-scan-stage.mode-upper .zone-upper-ru{
  left:60.6% !important;
  top:25.1% !important;
  width:12.6% !important;
  height:6.7% !important;
  border-radius:15px 20px 18px 14px !important;
}
.asset-scan-stage.mode-upper .zone-upper-rl{
  left:61.2% !important;
  top:31.4% !important;
  width:12.2% !important;
  height:5.9% !important;
  border-radius:14px 17px 20px 19px !important;
}

/* Keep upper/lower subdivision subtle and embedded inside the triceps field. */
.asset-scan-stage.mode-upper .track12-upper-hud::before{
  opacity:.38 !important;
}
.asset-scan-stage.mode-upper .track12-upper-hud::after{
  top:49% !important;
  left:4% !important;
  right:4% !important;
  opacity:.46 !important;
}

/* Live HUD intelligence remains inside the active triceps quadrant only. */
.asset-scan-stage.mode-upper .track12-zone.selected-active{
  overflow:hidden !important;
}
.asset-scan-stage.mode-upper .track12-zone.selected-active::after{
  inset:14% 10% !important;
  font-size:clamp(4px,.48vw,6.5px) !important;
  line-height:1.05 !important;
  letter-spacing:.62px !important;
  opacity:.34 !important;
}

/* Prevent any legacy UPPER full-arm hitbox from responding if it exists alongside 12-zone quadrants. */
.asset-scan-stage.mode-upper .zone-upper-l:not(.track12-zone),
.asset-scan-stage.mode-upper .zone-upper-r:not(.track12-zone){
  pointer-events:none !important;
  opacity:0 !important;
}

/* RESULTS v1.2 Stage 1A/B — RESULTS-only Formula Truth + LOG WEIGHT polish */
.results-stage1-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:10px 0 12px;
}
.results-log-weight-btn{
  border:1px solid rgba(0,255,136,.42);
  background:linear-gradient(135deg,rgba(0,255,136,.12),rgba(0,212,255,.045));
  color:#baffd6;
  border-radius:12px;
  padding:10px 13px;
  font-family:var(--font-d);
  font-size:.66rem;
  letter-spacing:1.8px;
  text-transform:uppercase;
  box-shadow:0 0 18px rgba(0,255,136,.08), inset 0 0 14px rgba(0,255,136,.035);
  cursor:pointer;
}
.results-log-weight-btn:active{transform:scale(.985)}
.results-stage1-note{
  flex:1 1 160px;
  font-family:var(--font-m);
  font-size:.58rem;
  line-height:1.45;
  letter-spacing:1px;
  color:#9fbfd0;
  text-transform:uppercase;
}
.results-weight-modal .form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.results-weight-helper{
  margin:0 0 13px;
  border:1px solid rgba(0,255,136,.16);
  border-left:2px solid rgba(0,255,136,.55);
  border-radius:12px;
  padding:10px 11px;
  background:rgba(0,255,136,.045);
  color:#bcefd2;
  font-family:var(--font-m);
  font-size:.62rem;
  line-height:1.55;
  letter-spacing:1px;
  text-transform:uppercase;
}
.results-weight-unit-toggle{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.results-weight-unit{
  min-height:42px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(255,255,255,.035);
  color:#91a5b0;
  font-family:var(--font-d);
  font-size:.72rem;
  letter-spacing:1.8px;
  text-transform:uppercase;
  cursor:pointer;
}
.results-weight-unit.active{
  border-color:rgba(0,255,136,.55);
  color:#c7ffd9;
  background:linear-gradient(135deg,rgba(0,255,136,.15),rgba(0,212,255,.05));
  box-shadow:0 0 15px rgba(0,255,136,.10), inset 0 0 12px rgba(0,255,136,.05);
}
.results-weight-error{
  margin:10px 0 12px;
  border:1px solid rgba(255,45,85,.34);
  border-left:2px solid rgba(255,45,85,.85);
  border-radius:12px;
  padding:10px 11px;
  background:rgba(255,45,85,.06);
  color:#ff9bad;
  font-family:var(--font-m);
  font-size:.62rem;
  letter-spacing:1px;
  line-height:1.45;
  text-transform:uppercase;
}
@media(max-width:420px){
  .results-weight-modal .form-row{grid-template-columns:1fr}
  .results-stage1-actions{gap:8px}
  .results-log-weight-btn{width:100%;min-height:44px}
  .results-stage1-note{font-size:.56rem}
}

.syringe-visual{background:linear-gradient(180deg,rgba(0,229,255,0.04) 0%,transparent 35%),#0a0a14;border:1px solid rgba(0,229,255,0.4);border-radius:16px;padding:18px 18px 16px;margin-bottom:18px;position:relative;box-shadow:0 0 24px rgba(0,229,255,0.08),inset 0 0 20px rgba(0,229,255,0.02);overflow:visible}
.syringe-visual::before,.syringe-visual::after{content:'';position:absolute;width:14px;height:14px;border:1.5px solid var(--cyan);opacity:0.5}
.syringe-visual::before{top:6px;left:6px;border-right:none;border-bottom:none}
.syringe-visual::after{bottom:6px;right:6px;border-left:none;border-top:none}
.gn-syr-hero{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:16px;margin-bottom:10px;margin-top:10px}
.gn-syr-number{display:flex;align-items:baseline;gap:4px;line-height:.85}
.gn-syr-num{font-size:5.5rem;font-weight:200;color:var(--cyan);letter-spacing:-3px;font-variant-numeric:tabular-nums;text-shadow:0 0 8px rgba(0,229,255,0.25)}
.gn-syr-u{font-size:1.2rem;color:#6a7080;letter-spacing:2px;margin-left:6px;font-weight:300}
.gn-syr-meta{text-align:right;font-size:.6rem;letter-spacing:1.5px;line-height:1.7}
.gn-syr-meta .k{color:#6a7080;margin-right:6px}
.gn-syr-meta .v{color:#05ffa1;font-weight:500;font-variant-numeric:tabular-nums}
.gn-syr-meta .v.amber{color:#ffd700}
.gn-syr-meta .v.peptide{color:#FF3B3B}
.gn-syr-rule{height:1px;background:linear-gradient(90deg,var(--cyan) 0%,var(--cyan) 30%,transparent 100%);margin-bottom:14px;box-shadow:0 0 3px rgba(0,229,255,0.6)}
.gn-syr-body{display:flex;align-items:center;height:96px;margin-bottom:8px}
.gn-syr-needle{width:18px;height:1.5px;background:linear-gradient(90deg,#e7fbff 0%,#9bb4c2 70%,#7d8e9a 100%);flex-shrink:0;position:relative;margin-right:-1px;box-shadow:0 0 2px rgba(178,244,255,.5);border-radius:.5px}
.gn-syr-needle::before{content:'';position:absolute;left:-2px;top:50%;transform:translateY(-50%);width:2px;height:1.5px;background:#e7fbff;border-radius:1px;box-shadow:0 0 2px rgba(178,244,255,.7)}
.gn-syr-hub{width:12px;height:20px;background:linear-gradient(180deg,#f5f5dc 0%,#d4d4b8 50%,#b8b894 100%);border-radius:3px 2px 2px 3px;flex-shrink:0;position:relative;box-shadow:inset 0 0 2px rgba(0,0,0,0.3),-1px 0 2px rgba(0,229,255,0.15)}
.gn-syr-hub span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.28rem;color:#5a5a3a;font-weight:700;letter-spacing:.2px}
.gn-syr-barrel{flex:1;height:30px;background:linear-gradient(180deg,rgba(255,255,255,0.05) 0%,rgba(255,255,255,0.1) 50%,rgba(255,255,255,0.05) 100%);border-top:1px solid rgba(0,229,255,0.4);border-bottom:1px solid rgba(0,229,255,0.4);position:relative;overflow:hidden}
.gn-syr-barrel::after{content:'';position:absolute;top:0;right:0;bottom:0;width:18px;background:linear-gradient(90deg,transparent 0%,rgba(255,130,0,0.12) 40%,rgba(255,130,0,0.4) 100%);border-left:1px solid rgba(255,130,0,0.5);z-index:5}
.gn-syr-u100{position:absolute;right:2px;top:50%;transform:translateY(-50%);font-size:.38rem;color:#ff8200;letter-spacing:1px;font-weight:700;writing-mode:vertical-rl;text-orientation:mixed;z-index:6;opacity:.85}
.gn-syr-markings{position:absolute;top:0;bottom:0;left:0;right:18px;pointer-events:none;z-index:3}
.gn-syr-tick{position:absolute;top:0;bottom:0;width:1px;background:rgba(0,229,255,0.3);transition:background .3s,box-shadow .3s}
.gn-syr-tick.major{background:rgba(0,229,255,0.6)}
.gn-syr-tick.cascaded{background:var(--cyan);box-shadow:0 0 4px var(--cyan)}
.gn-syr-tick-label{position:absolute;top:100%;transform:translate(-50%,3px);font-size:.42rem;color:var(--cyan);font-variant-numeric:tabular-nums;letter-spacing:.5px;transition:color .3s,text-shadow .3s;white-space:nowrap}
.gn-syr-tick-label.cascaded{color:#fff;text-shadow:0 0 3px var(--cyan)}
.gn-syr-fluid{position:absolute;top:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(0,229,255,0.65) 0%,rgba(5,255,161,0.45) 60%,rgba(5,255,161,0.25) 100%);box-shadow:inset 0 0 6px rgba(5,255,161,0.4),0 0 8px rgba(0,229,255,0.3);transition:width .6s cubic-bezier(0.16,1,0.3,1);z-index:1;overflow:hidden}
.gn-syr-fluid::after{content:'';position:absolute;top:0;right:0;bottom:0;width:1px;background:rgba(5,255,161,0.8);box-shadow:0 0 3px rgba(5,255,161,0.6)}
.gn-syr-motes{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.gn-syr-mote{position:absolute;width:1.5px;height:1.5px;background:var(--cyan);border-radius:50%;box-shadow:0 0 3px var(--cyan);opacity:.7;animation:gnSyrDrift 6s linear infinite}
@keyframes gnSyrDrift{0%{transform:translateY(-8px);opacity:0}10%{opacity:.8}90%{opacity:.8}100%{transform:translateY(40px);opacity:0}}
.gn-syr-stopper{position:absolute;top:2px;bottom:2px;width:4px;background:linear-gradient(180deg,#2a2a2a 0%,#000 50%,#2a2a2a 100%);border-left:1px solid rgba(0,229,255,0.5);border-right:1px solid rgba(0,229,255,0.5);transition:left .6s cubic-bezier(0.16,1,0.3,1);z-index:4}
.gn-syr-target{position:absolute;top:-2px;bottom:-2px;width:2px;background:#ffd700;box-shadow:0 0 6px rgba(255,215,0,0.9);z-index:5;transition:left .6s cubic-bezier(0.16,1,0.3,1);border-radius:1px}
.gn-syr-flange{width:8px;height:50px;background:linear-gradient(180deg,#1e1e2e 0%,#050508 50%,#1e1e2e 100);border:1px solid rgba(0,229,255,0.4);border-radius:2px;flex-shrink:0;position:relative;box-shadow:0 0 6px rgba(0,229,255,0.18)}
.gn-syr-flange::before,.gn-syr-flange::after{content:'';position:absolute;left:-2px;right:-2px;height:2px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:.6}
.gn-syr-flange::before{top:25%}
.gn-syr-flange::after{top:75%}
.gn-syr-rod{width:42px;height:6px;background:linear-gradient(180deg,#1e1e2e 0%,#050508 50%,#1e1e2e 100%);border-top:1px solid rgba(0,229,255,0.3);border-bottom:1px solid rgba(0,229,255,0.3);flex-shrink:0;position:relative}
.gn-syr-rod::before{content:'';position:absolute;inset:0;background-image:linear-gradient(45deg,transparent 46%,rgba(0,229,255,0.18) 50%,transparent 54%),linear-gradient(-45deg,transparent 46%,rgba(0,229,255,0.18) 50%,transparent 54%);background-size:5px 5px}
.gn-syr-rod::after{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,229,255,0.3),transparent);transform:translateY(-50%)}
.gn-syr-thumb{width:24px;height:14px;background:linear-gradient(180deg,#2a2a3a 0%,#0a0a14 50%,#1a1a26 100%);border:1px solid rgba(0,229,255,0.45);border-radius:7px;flex-shrink:0;position:relative;box-shadow:inset 0 0 4px rgba(0,229,255,0.12),0 0 6px rgba(0,229,255,0.18)}
.gn-syr-thumb::before{content:'';position:absolute;inset:2px 4px;border-top:1px solid rgba(0,229,255,0.25);border-bottom:1px solid rgba(0,229,255,0.25);border-radius:4px}
.gn-syr-thumb::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:3px;background:#FF3B3B;border-radius:50%;box-shadow:0 0 4px rgba(255,42,109,0.9);animation:gnSyrPulse 2s ease-in-out infinite}
@keyframes gnSyrPulse{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:1}50%{transform:translate(-50%,-50%) scale(1.4);opacity:.6}}
.gn-syr-scale-bottom{margin-top:8px;display:flex;justify-content:space-between;padding:0 30px 0 28px;font-size:.48rem;color:#6a7080;letter-spacing:1.5px;font-variant-numeric:tabular-nums;position:relative}
.gn-syr-headroom{color:#05ffa1;font-weight:500;letter-spacing:1.2px;text-shadow:0 0 4px rgba(5,255,161,0.4);font-size:.48rem}
.gn-syr-results{display:grid;grid-template-columns:2fr 1fr 1fr;gap:6px;margin-top:14px}
.gn-syr-result{background:rgba(0,0,0,0.3);border:1px solid rgba(0,229,255,0.15);border-radius:6px;padding:8px 11px}
.gn-syr-result .k{font-size:.48rem;color:#6a7080;letter-spacing:1.5px;margin-bottom:3px}
.gn-syr-result .v{font-size:.82rem;color:var(--cyan);font-weight:500;font-variant-numeric:tabular-nums}
.gn-syr-result .v.green{color:#05ffa1}
.gn-syr-result .v.amber{color:#ffd700}
.gn-syr-formula{margin-top:10px;padding:7px 11px;background:rgba(0,229,255,0.04);border-left:2px solid var(--cyan);font-size:.68rem;color:#c0c5d0;line-height:1.5}
.gn-syr-caution{margin-top:6px;padding:7px 11px;background:rgba(0,229,255,0.04);border-left:2px solid rgba(0,229,255,0.4);font-size:.62rem;color:#8a8a9a;line-height:1.4}
.gn-syr-pk{display:flex;align-items:center;gap:6px;margin-top:10px;padding:6px 8px;background:rgba(0,0,0,0.5);border:1px solid var(--cyan);border-radius:4px;box-shadow:0 0 8px rgba(0,229,255,0.3)}
.gn-syr-pk-line{width:36px;height:1px;background:repeating-linear-gradient(90deg,var(--cyan) 0,var(--cyan) 3px,transparent 3px,transparent 6px);box-shadow:0 0 3px rgba(0,229,255,0.6);flex-shrink:0}
.gn-syr-pk-hud{flex:1;display:grid;grid-template-columns:repeat(2,1fr);gap:2px 10px;font-size:.5rem;letter-spacing:1.2px;line-height:1.4}
.gn-syr-pk-hud .row{display:flex;gap:4px;align-items:center}
.gn-syr-pk-hud .k{color:#6a7080;font-size:.45rem}
.gn-syr-pk-hud .v{color:var(--cyan);font-variant-numeric:tabular-nums;font-weight:500}
.gn-syr-pk-hud .v.peak{color:#FF3B3B}
.gn-syr-helper{margin-top:10px}
.gn-syr-helper summary{font-size:.6rem;color:var(--cyan);letter-spacing:2px;cursor:pointer;padding:3px 0}
.gn-syr-helper p{font-size:.68rem;color:#c0c5d0;line-height:1.5;margin-top:5px}
.gn-syr-helper b{color:#05ffa1}
.gn-syr-safety{color:#8a8a9a!important;font-style:italic;border-top:1px solid rgba(0,229,255,0.1);padding-top:6px;margin-top:8px;font-size:.6rem}
.gn-syr-forensic{margin-top:12px;padding-top:8px;border-top:1px solid rgba(0,229,255,0.1);display:flex;justify-content:space-between;align-items:center;font-size:.48rem;color:#4a5060;letter-spacing:1.2px;line-height:1.5}
.gn-syr-forensic .left,.gn-syr-forensic .right{display:flex;flex-direction:column;gap:1px}
.gn-syr-forensic .right{text-align:right}
.gn-syr-forensic .k{color:#3a4050}
.gn-syr-oskar{margin-top:8px;text-align:center;font-size:.45rem;color:rgba(255,42,109,0.35);letter-spacing:2px;transition:color 1s}
.syringe-visual:hover .gn-syr-oskar{color:rgba(255,42,109,0.55)}
@media (max-width:600px){.gn-syr-hero{grid-template-columns:1fr;gap:14px;overflow:hidden;align-items:start}.gn-syr-meta{text-align:left;border-top:1px solid var(--border);padding-top:10px;margin-top:4px}.gn-syr-num{font-size:3.4rem;letter-spacing:-1.5px;line-height:1}.gn-syr-u{font-size:.9rem}.gn-syr-body{height:80px}.gn-syr-thumb{width:22px;height:12px}.gn-syr-rod{width:38px;height:5px}.gn-syr-flange{height:42px;width:7px}.gn-syr-hub{width:11px;height:16px}.gn-syr-hub span{font-size:.26rem}.gn-syr-needle{width:12px;height:.8px}.gn-syr-results{grid-template-columns:1fr}.gn-syr-scale-bottom{padding:0 22px 0 20px;font-size:.4rem}.gn-syr-pk-hud{grid-template-columns:1fr}.syringe-visual{overflow:hidden}
.syringe-visual.gn-syr-final{
  padding:18px 14px 16px !important;
  background:
    linear-gradient(180deg,rgba(8,12,18,.92),rgba(3,5,8,.96)),
    radial-gradient(circle at 50% 0%,rgba(0,212,255,.10),transparent 42%) !important;
  border-color:rgba(0,212,255,.22) !important;
}
.syringe-visual.gn-syr-final .syringe-body-wrap{
  display:flex !important;
  flex-direction:row-reverse !important; /* visual order: needle / hub / barrel / plunger */
  align-items:center !important;
  height:58px !important;
  margin:12px 0 5px !important;
  gap:0 !important;
}
.syringe-visual.gn-syr-final .syr-barrel{
  height:25px !important;
  min-width:0 !important;
  margin:0 4px !important;
  border:1px solid rgba(0,212,255,.46) !important;
  border-radius:2px !important;
  background:
    linear-gradient(180deg,rgba(0,212,255,.055),rgba(0,0,0,.46)),
    rgba(0,0,0,.46) !important;
  box-shadow:inset 0 0 12px rgba(0,212,255,.055),0 0 12px rgba(0,212,255,.045) !important;
  overflow:hidden !important;
}
.syringe-visual.gn-syr-final .syr-fluid{
  left:0 !important;
  top:3px !important;
  bottom:3px !important;
  height:auto !important;
  width:var(--gn-syr-pct,0%) !important;
  background:linear-gradient(90deg,rgba(20,255,166,.18),rgba(31,255,174,.48),rgba(116,255,198,.62)) !important;
  border-right:1px solid rgba(156,255,213,.86) !important;
  box-shadow:1px 0 8px rgba(31,255,174,.22),inset 0 0 8px rgba(31,255,174,.10) !important;
  z-index:1 !important;
  transition:width var(--dur-2) var(--ease-out) !important;
}
.syringe-visual.gn-syr-final .syr-stopper{
  position:absolute;
  top:-6px;
  bottom:-6px;
  left:var(--gn-syr-pct,0%);
  width:4px;
  transform:translateX(-2px);
  background:linear-gradient(180deg,#d7f8ff,#7296a2);
  border:1px solid rgba(255,255,255,.34);
  box-shadow:0 0 7px rgba(255,255,255,.18),0 0 8px rgba(31,255,174,.14);
  z-index:4;
  display:none;
  border-radius:1px;
}
.syringe-visual.gn-syr-final .syr-target-line{
  left:var(--gn-syr-pct,0%) !important;
  top:-9px !important;
  bottom:-9px !important;
  width:2px !important;
  transform:translateX(-1px) !important;
  background:#ffd76a !important;
  box-shadow:0 0 8px rgba(255,215,106,.62),0 0 2px rgba(255,255,255,.7) !important;
  z-index:5 !important;
  transition:left var(--dur-2) var(--ease-out) !important;
}
.syringe-visual.gn-syr-final .syr-target-line::before{
  top:-5px !important;
  border-left-width:4px !important;
  border-right-width:4px !important;
  border-top-color:#ffd76a !important;
}
.syringe-visual.gn-syr-final .syr-marks{
  display:grid !important;
  grid-template-columns:repeat(100,1fr) !important;
  z-index:3 !important;
}
.syringe-visual.gn-syr-final .syr-mark{
  min-width:0 !important;
  border-right:1px solid rgba(170,226,238,.055) !important;
  padding:0 !important;
}
.syringe-visual.gn-syr-final .syr-mark.five{border-right-color:rgba(170,226,238,.13) !important;}
.syringe-visual.gn-syr-final .syr-mark.major{border-right-color:rgba(0,212,255,.34) !important;}
.syringe-visual.gn-syr-final .syr-mark.zero{border-left:1px solid rgba(0,212,255,.34) !important;}
.syringe-visual.gn-syr-final .syr-scale-labels{
  display:grid !important;
  grid-template-columns:repeat(11,1fr) !important;
  padding:0 54px 0 50px !important;
  margin-top:6px !important;
  column-gap:0 !important;
}
.syringe-visual.gn-syr-final .syr-scale-lbl{
  font-size:.45rem !important;
  color:#9cb7c4 !important;
  text-align:center !important;
  flex:none !important;
}
.syringe-visual.gn-syr-final .syr-scale-lbl.major{color:#b6f3ff !important;}
.syringe-visual.gn-syr-final .syr-plunger{
  width:18px !important;
  height:42px !important;
  border-radius:0 3px 3px 0 !important;
  margin-left:2px !important;
  background:linear-gradient(180deg,#18232c,#0c1118) !important;
  border:1px solid rgba(0,212,255,.36) !important;
}
.syringe-visual.gn-syr-final .syr-grip-line{
  width:8px !important;
  height:1px !important;
  background:rgba(160,239,255,.34) !important;
}
.syringe-visual.gn-syr-final .syr-hub{
  width:13px !important;
  height:18px !important;
  border:1px solid rgba(0,212,255,.34) !important;
  border-right:none !important;
  border-left:1px solid rgba(0,212,255,.34) !important;
  clip-path:polygon(0 50%,100% 22%,100% 78%) !important;
  background:linear-gradient(180deg,#15222c,#0b1018) !important;
}
.syringe-visual.gn-syr-final .syr-needle{
  width:34px !important;
  height:1.5px !important;
  background:linear-gradient(90deg,rgba(215,250,255,.86),rgba(0,212,255,.44)) !important;
  box-shadow:0 0 5px rgba(0,212,255,.22) !important;
  clip-path:polygon(0 50%,100% 0,100% 100%) !important;
}
.syringe-visual.gn-syr-final.syr-overflow .syr-fluid{
  width:100% !important;
  background:linear-gradient(90deg,rgba(255,59,59,.10),rgba(255,51,119,.24)) !important;
  border-right-color:rgba(255,82,122,.8) !important;
  box-shadow:inset 0 0 10px rgba(255,51,119,.08) !important;
}
.syringe-visual.gn-syr-final.syr-overflow .syr-barrel{
  border-color:rgba(255,51,119,.42) !important;
}
.syringe-visual.gn-syr-final.syr-overflow .syr-stopper,
.syringe-visual.gn-syr-final.syr-overflow .syr-target-line{
  display:none !important;
}
.syringe-visual.gn-syr-final .syr-result-big{font-size:1.85rem !important;}
.syringe-visual.gn-syr-final .syr-result-sub{font-size:.88rem !important;color:#b7cbd4 !important;}
.syringe-visual.gn-syr-final 
.syringe-visual.gn-syr-final.gn-syr-instrument{
  padding:16px 12px 15px !important;
  border-color:rgba(0,212,255,.24) !important;
  background:
    linear-gradient(180deg,rgba(6,9,14,.96),rgba(2,4,7,.98)),
    radial-gradient(circle at 50% 0%,rgba(0,212,255,.075),transparent 44%) !important;
}

/* Less illustration. More instrument panel. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syringe-body-wrap{
  height:54px !important;
  margin:10px 0 3px !important;
  align-items:center !important;
  flex-direction:row-reverse !important; /* needle-left, plunger-right */
}

/* Measurement lane is the dominant object. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-barrel{
  height:31px !important;
  margin:0 4px !important;
  border:1px solid rgba(136,232,255,.58) !important;
  border-radius:2px !important;
  background:
    linear-gradient(180deg,rgba(0,212,255,.07),rgba(0,0,0,.52) 58%,rgba(0,212,255,.045)),
    rgba(0,0,0,.50) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 -1px 0 rgba(0,212,255,.16),
    0 0 9px rgba(0,212,255,.055) !important;
  overflow:hidden !important;
}

/* Cool green liquid is clearly distinct from cyan chrome. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-fluid{
  top:6px !important;
  bottom:6px !important;
  height:auto !important;
  width:var(--gn-syr-pct,0%) !important;
  background:
    linear-gradient(90deg,rgba(20,255,166,.22),rgba(39,255,178,.66),rgba(121,255,202,.76)) !important;
  border-right:2px solid rgba(145,255,211,.95) !important;
  box-shadow:
    1px 0 8px rgba(39,255,178,.28),
    inset 0 0 8px rgba(39,255,178,.12) !important;
  transition:width var(--dur-2) linear !important;
}

/* Exact draw edge/stopper, same shared source as fluid and target. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-stopper{
  left:var(--gn-syr-pct,0%) !important;
  top:-7px !important;
  bottom:-7px !important;
  width:3px !important;
  transform:translateX(-1.5px) !important;
  background:linear-gradient(180deg,#f4fbff,#7e9aa6) !important;
  border:1px solid rgba(255,255,255,.42) !important;
  box-shadow:
    0 0 7px rgba(255,255,255,.16),
    0 0 8px rgba(39,255,178,.18) !important;
  display:block;
  z-index:4 !important;
}

/* Amber target line shares same source and includes a small value tag. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-target-line{
  left:var(--gn-syr-pct,0%) !important;
  top:-11px !important;
  bottom:-11px !important;
  width:2px !important;
  transform:translateX(-1px) !important;
  background:#ffd76a !important;
  box-shadow:0 0 8px rgba(255,215,106,.68),0 0 2px rgba(255,255,255,.72) !important;
  transition:left var(--dur-2) linear !important;
  z-index:6 !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-target-line::before{
  top:-5px !important;
  border-left-width:4px !important;
  border-right-width:4px !important;
  border-top-color:#ffd76a !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-target-line::after{
  content:attr(data-unit);
  position:absolute;
  top:-25px;
  left:50%;
  transform:translateX(-50%);
  min-width:22px;
  padding:2px 4px;
  border:1px solid rgba(255,215,106,.45);
  background:rgba(21,16,6,.94);
  color:#ffd76a;
  font-family:var(--font-m);
  font-size:.52rem;
  letter-spacing:.5px;
  line-height:1;
  text-align:center;
  border-radius:2px;
  box-shadow:0 0 7px rgba(255,215,106,.10);
}

/* Major ticks are readable; minor ticks stay quiet. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-marks{
  display:grid !important;
  grid-template-columns:repeat(100,1fr) !important;
  z-index:3 !important;
  pointer-events:none !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-mark{
  min-width:0 !important;
  border-right:1px solid rgba(170,226,238,.045) !important;
  padding:0 !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-mark.five{
  border-right-color:rgba(170,226,238,.16) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-mark.major{
  border-right:2px solid rgba(178,244,255,.52) !important;
  box-shadow:1px 0 0 rgba(0,0,0,.28) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-mark.zero{
  border-left:2px solid rgba(178,244,255,.52) !important;
}

/* Label lane aligns to barrel, not full syringe assembly. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-labels{
  display:grid !important;
  grid-template-columns:repeat(11,1fr) !important;
  padding:0 23px 0 52px !important; /* left: needle+hub; right: compact plunger */
  margin-top:8px !important;
  column-gap:0 !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-lbl{
  font-size:.58rem !important;
  color:#b1c8d2 !important;
  text-align:center !important;
  flex:none !important;
  font-weight:700 !important;
  text-shadow:0 0 4px rgba(0,212,255,.12) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-lbl.major,
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-lbl:nth-child(6){
  color:#d2f8ff !important;
}

/* Slim insulin/peptide silhouette. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-plunger{
  width:16px !important;
  height:37px !important;
  margin-left:2px !important;
  border-radius:0 3px 3px 0 !important;
  background:linear-gradient(180deg,#17242d,#090e14) !important;
  border:1px solid rgba(136,232,255,.38) !important;
  opacity:.86 !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-grip-lines{gap:4px !important;}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-grip-line{
  width:7px !important;
  height:1px !important;
  background:rgba(178,244,255,.38) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-hub{
  width:12px !important;
  height:17px !important;
  border:1px solid rgba(136,232,255,.36) !important;
  border-right:none !important;
  clip-path:polygon(0 50%,100% 24%,100% 76%) !important;
  background:linear-gradient(180deg,#14222b,#070c12) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-needle{
  width:34px !important;
  height:1px !important;
  background:linear-gradient(90deg,rgba(220,250,255,.88),rgba(0,212,255,.36)) !important;
  box-shadow:0 0 4px rgba(0,212,255,.18) !important;
  clip-path:polygon(0 50%,100% 0,100% 100%) !important;
}

/* Keep result readable but make measurement lane the hero. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-result-big{
  font-size:1.68rem !important;
  margin-bottom:2px !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-result-sub{
  font-size:.84rem !important;
  color:#c0d3dc !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-result-ml{
  color:#a9bdc8 !important;
  margin-bottom:12px !important;
}

/* Overflow remains intentional and does not show a normal target. */
.syringe-visual.gn-syr-final.gn-syr-instrument.syr-overflow .syr-fluid{
  width:100% !important;
  background:linear-gradient(90deg,rgba(255,59,59,.10),rgba(255,51,119,.26)) !important;
  border-right-color:rgba(255,82,122,.82) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument.syr-overflow .syr-barrel{
  border-color:rgba(255,51,119,.46) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument.syr-overflow .syr-stopper,
.syringe-visual.gn-syr-final.gn-syr-instrument.syr-overflow .syr-target-line{
  display:none !important;
}

@media(max-width:380px){
  .syringe-visual.gn-syr-final.gn-syr-instrument{padding-left:10px !important;padding-right:10px !important;}
  .syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-labels{padding-left:50px !important;padding-right:22px !important;}
  .syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-lbl{font-size:.53rem !important;}


}
}
#shotsRegionScanner .biotech-stage { aspect-ratio:1; touch-action:pan-y pinch-zoom; contain:layout paint; }
/* VISUALS MAX 2: cap the scanner stage on wide viewports (was 1188x1188 at
   1280). .biotech-scanner already centers via margin auto; below 560px of
   available width this changes nothing, so mobile rendering is unchanged. */
#shotsRegionScanner .biotech-scanner { max-width:560px; margin-left:auto; margin-right:auto; }
#shotsRegionScanner .biotech-asset,
#shotsRegionScanner .biotech-zones { position:absolute; inset:0; width:100%; height:100%; }
#shotsRegionScanner .zone-hit { pointer-events:all; }
#shotsRegionScanner .zone-visible { vector-effect:non-scaling-stroke; transform-box:fill-box; transform-origin:center; transition:fill 120ms ease,stroke 120ms ease,stroke-width 120ms ease,opacity 120ms ease,filter 120ms ease; }
#shotsRegionScanner .scanner-selected-panel { position:relative; overflow:hidden; scroll-margin-bottom:calc(92px + var(--safe-bottom)); }
#shotsRegionScanner .shots-scanner-head > div { flex:1 1 auto; min-width:0; }
#shotsRegionScanner .zone-hit.pressed + .zone-visible { stroke:#FCEE0A; stroke-width:4; fill:rgba(234,9,23,.24); filter:drop-shadow(0 0 6px rgba(252,238,10,.42)); opacity:1; transition:none; }
#shotsRegionScanner .zone-hit.zone-acquiring + .zone-visible { stroke:#06BBE3; stroke-width:4; fill:rgba(234,9,23,.20); stroke-dasharray:18 11; animation:gn-scanner-acquire 420ms cubic-bezier(.2,.75,.25,1) both; }
#shotsRegionScanner .zone-hit.selected.selected-active + .zone-visible { stroke:#06BBE3; stroke-width:3.5; stroke-dasharray:none; fill:rgba(234,9,23,.22); filter:drop-shadow(0 0 7px rgba(6,187,227,.42)); opacity:1; }
#shotsRegionScanner .zone-hit.is-dim:not(.selected) + .zone-visible { opacity:.38; filter:none; }
#shotsRegionScanner .scanner-selected-panel.gn-zone-confirmed { border-color:#06BBE3; animation:gn-scanner-confirm 720ms cubic-bezier(.2,.75,.25,1) both; }
#shotsRegionScanner .scanner-selected-panel .gn-location-lock { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 8px; padding:9px 10px; min-height:44px; border:1px solid rgba(6,187,227,.34); border-left:3px solid #EA0917; border-radius:10px; background:rgba(5,7,8,.82); color:#06BBE3; opacity:0; transform:translateY(3px); transition:opacity 160ms ease,transform 160ms ease,border-color 160ms ease; }
#shotsRegionScanner .scanner-selected-panel .gn-location-lock.is-on { display:flex; opacity:1; transform:translateY(0); border-left-color:#06BBE3; }
#shotsRegionScanner .scanner-selected-panel.gn-zone-confirmed .gn-location-lock.is-on { animation:gn-scanner-rail-confirm 640ms cubic-bezier(.2,.75,.25,1) both; }
@media (hover:hover) and (pointer:fine) { #shotsRegionScanner .zone-hit:hover + .zone-visible { stroke:#FCEE0A; fill:rgba(234,9,23,.12); filter:drop-shadow(0 0 6px rgba(252,238,10,.38)); } }
@keyframes gn-scanner-acquire { 0% { stroke:#FCEE0A; stroke-dashoffset:58; fill:rgba(234,9,23,.30); opacity:.9; } 52% { stroke:#FCEE0A; stroke-dashoffset:21; fill:rgba(234,9,23,.24); opacity:1; } 100% { stroke:#06BBE3; stroke-dashoffset:0; fill:rgba(234,9,23,.20); opacity:1; } }
@keyframes gn-scanner-confirm { 0% { box-shadow:0 0 0 1px #EA0917,0 0 0 rgba(234,9,23,0); } 48% { box-shadow:0 0 0 1px #FCEE0A,0 0 14px rgba(234,9,23,.16); } 100% { box-shadow:0 0 0 1px rgba(6,187,227,.42),0 0 18px rgba(6,187,227,.16); } }
@keyframes gn-scanner-rail-confirm { 0% { border-left-color:#EA0917; box-shadow:inset 18px 0 24px rgba(234,9,23,.18); } 48% { border-left-color:#FCEE0A; box-shadow:inset 8px 0 18px rgba(252,238,10,.10); } 100% { border-left-color:#06BBE3; box-shadow:inset 0 0 0 rgba(6,187,227,0); } }
@media (prefers-reduced-motion:reduce) { #shotsRegionScanner .zone-hit.zone-acquiring + .zone-visible, #shotsRegionScanner .zone-hit.selected-active + .zone-visible, #shotsRegionScanner .scanner-selected-panel.gn-zone-confirmed, #shotsRegionScanner .scanner-selected-panel.gn-zone-confirmed .gn-location-lock.is-on { animation:none!important; } #shotsRegionScanner .zone-visible, #shotsRegionScanner .scanner-selected-panel .gn-location-lock { transition:none!important; } }
html[data-theme="light"] #shotsRegionScanner .zone-visible { filter:none; }
html[data-theme="light"] #shotsRegionScanner .zone-hit.selected.selected-active + .zone-visible { stroke:#06BBE3; fill:rgba(234,9,23,.16); filter:none; }
html[data-theme="light"] #shotsRegionScanner .scanner-selected-panel .gn-location-lock.is-on { color:#050708; border-color:rgba(6,187,227,.52); border-left-color:#06BBE3; background:rgba(255,255,255,.94); box-shadow:none; }
@media (max-width:430px) {
  #shotsRegionScanner { padding:12px; }
  #shotsRegionScanner .shots-scanner-head { gap:8px; }
  #shotsRegionScanner .site-scanner { padding:9px; border-radius:16px; }
  #shotsRegionScanner .biotech-scanner { margin-top:10px; }
  #pageLog { padding-bottom:calc(104px + var(--safe-bottom)); }
}
@media (max-width:360px) {
  #shotsRegionScanner .shots-scanner-head { display:grid; grid-template-columns:minmax(0,1fr) 48px; }
  #shotsRegionScanner .shots-scanner-head > div { grid-column:1; grid-row:1; }
  #shotsRegionScanner .gn-scanner-badge { grid-column:2; grid-row:1; }
}
/* ============ PHASE ENGINE — REFINED HERO (v0.15.52) ============
 * Premium = restraint. Thin arcs, muted jewel tones, generous whitespace,
 * hairline dividers, quiet typography. No bezels, no pings, no scanlines. */
.gn-phase{background:linear-gradient(165deg,var(--surface-2) 0%,var(--surface-1) 70%);border:1px solid var(--border-1);border-radius:18px;padding:24px 18px 20px;margin:16px 0;position:relative;overflow:hidden}
.gn-phase-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.gn-phase-title{font:600 .72rem var(--font-m);letter-spacing:3px;color:var(--text-3)}
.gn-phase-chip{font:600 .62rem var(--font-m);letter-spacing:1.6px;color:var(--text-2);background:color-mix(in srgb,var(--text-1) 4%,transparent);border:1px solid var(--border-2);border-radius:999px;padding:9px 15px;cursor:pointer;white-space:nowrap;min-height:40px}
.gn-phase-chip[hidden]{display:none}
.gn-phase-hero{position:relative;width:min(300px,78vw);margin:0 auto;aspect-ratio:1}
.gn-phase-hero::before{content:"";position:absolute;inset:-12%;pointer-events:none;background:radial-gradient(circle,color-mix(in srgb,var(--brand-cyan) 7%,transparent) 0%,transparent 62%)}
.gn-phase-svg{position:absolute;inset:0;width:100%;height:100%}
.gn-parc{fill:none;transition:opacity .5s ease}
.gn-parc.todo{opacity:.16}
.gn-parc.done{opacity:.48}
.gn-parc.active{opacity:1;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--text-1) 28%,transparent))}
.gn-pnode{cursor:pointer;outline:none}
.gn-pnode .dot{transition:opacity .5s ease}
.gn-pnode.todo{opacity:.4}
.gn-pnode.done{opacity:.75}
.gn-pnode.active{opacity:1}
.gn-pnode.active .dot{r:3.4px}
.gn-pnode:focus-visible{outline:2px solid color-mix(in srgb,var(--brand-cyan) 60%,transparent);outline-offset:4px;border-radius:50%}
.gn-phase-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;pointer-events:none;text-align:center;padding:0 18%}
.gn-phase-count{font:500 clamp(2.6rem,13vw,3.4rem)/1 var(--font-d);color:var(--text-1);letter-spacing:1px}
.gn-phase-count-label{font:600 .6rem var(--font-m);letter-spacing:3.2px;color:var(--text-3)}
.gn-phase-name{font:600 .78rem var(--font-m);letter-spacing:2.4px;color:var(--text-2);margin-top:5px}
.gn-phase[data-phase="empty"] .gn-phase-svg{opacity:.22}
.gn-phase[data-phase="empty"] .gn-phase-center{opacity:0}
.gn-phase.gn-phase-gated .gn-phase-guidance,.gn-phase.gn-phase-gated .gn-phase-timing,.gn-phase.gn-phase-gated .gn-phase-timeline{display:none}
.gn-phase-ignite{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:600 .72rem var(--font-m);letter-spacing:2.2px;color:var(--text-1);background:color-mix(in srgb,var(--text-1) 4%,transparent);border:1px solid var(--border-2);border-radius:999px;padding:15px 30px;min-height:52px;cursor:pointer;transition:opacity .4s ease,border-color .3s ease}
.gn-phase-ignite[hidden]{display:none}
.gn-phase-ignite:hover{border-color:color-mix(in srgb,var(--brand-cyan) 50%,transparent)}
.gn-phase-meta{text-align:center;font:600 .66rem var(--font-m);letter-spacing:2.2px;color:var(--text-2);margin:18px 0 20px}
@media(max-width:600px){.gn-phase-meta{padding-right:64px}}
.gn-phase-med-menu{position:absolute;top:76px;right:18px;z-index:6;min-width:210px;background:var(--surface-3);border:1px solid var(--border-2);border-radius:14px;padding:6px;box-shadow:var(--elev-2);animation:gnMedMenuIn var(--dur-2) var(--ease-out) both}
.gn-phase-med-menu[hidden]{display:none}
@keyframes gnMedMenuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.gn-phase-med-item{display:flex;width:100%;align-items:center;gap:9px;background:none;border:none;color:var(--text-2);font:600 .68rem var(--font-m);letter-spacing:1.4px;text-align:left;padding:12px 14px;min-height:44px;border-radius:8px;cursor:pointer;transition:background var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}
.gn-phase-med-item::before{content:"";width:6px;height:6px;border-radius:50%;background:transparent;flex-shrink:0}
.gn-phase-med-item.current{color:var(--text-1)}
.gn-phase-med-item.current::before{background:var(--brand-cyan)}
.gn-phase-med-item:hover,.gn-phase-med-item:focus-visible{background:color-mix(in srgb,var(--text-1) 6%,transparent);color:var(--text-1)}
.gn-phase-tabs{display:flex;background:color-mix(in srgb,var(--text-1) 3%,transparent);border:1px solid var(--border-1);border-radius:999px;padding:4px;gap:4px;margin-bottom:14px}
.gn-phase-tab{flex:1;border:none;background:transparent;color:var(--text-3);font:600 .68rem var(--font-m);letter-spacing:2px;padding:12px 0;min-height:46px;border-radius:999px;cursor:pointer;transition:background .3s ease,color .3s ease}
.gn-phase-tab.active{background:color-mix(in srgb,var(--text-1) 8%,transparent);color:var(--text-1)}
.gn-phase-card{background:color-mix(in srgb,var(--text-1) 2%,transparent);border:1px solid var(--border-1);border-radius:14px;padding:20px;margin-bottom:6px}
.gn-phase-card-head{font:600 .66rem var(--font-m);letter-spacing:2.2px;color:var(--text-2);margin-bottom:10px}
.gn-phase-list{list-style:none;margin:0;padding:0}
.gn-phase-list li{font:400 .95rem/1.65 var(--font-b);color:var(--text-2);padding:11px 0;border-top:1px solid var(--border-1)}
.gn-phase-list li:first-child{border-top:none;padding-top:2px}
.gn-phase-list li.flag{border-left:2px solid rgba(194,102,116,.65);padding-left:12px;color:var(--text-1)}
.gn-phase-return{display:block;margin:10px auto 0;background:none;border:none;color:var(--text-3);font:600 .66rem var(--font-m);letter-spacing:2px;cursor:pointer;min-height:46px;padding:12px 20px}
.gn-phase-return[hidden]{display:none}
.gn-phase-timing{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0 6px;padding:16px 0;border-top:1px solid var(--border-1);border-bottom:1px solid var(--border-1)}
.gn-phase-cell{display:flex;flex-direction:column;gap:7px;padding:2px 6px}
.gn-phase-cell-label{font:600 .56rem var(--font-m);letter-spacing:1.8px;color:var(--text-3);text-transform:uppercase;line-height:1.5}
.gn-phase-cell-val{font:600 1.02rem var(--font-d);color:var(--text-1);letter-spacing:.5px}
.gn-phase-timeline{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 4px}
.gn-phase-chip{display:inline-flex;align-items:center;gap:9px;background:color-mix(in srgb,var(--text-1) 2%,transparent);border:1px solid var(--border-1);border-radius:999px;color:var(--text-2);font:600 .66rem var(--font-m);letter-spacing:1.4px;padding:12px 17px;min-height:46px;cursor:pointer;transition:border-color .3s ease,background .3s ease}
.gn-phase-chip .n{color:var(--text-3);font-size:.6rem}
.gn-phase-chip.done{opacity:.55}
.gn-phase-chip.live{border-color:color-mix(in srgb,var(--text-1) 32%,transparent);background:color-mix(in srgb,var(--text-1) 6%,transparent);color:var(--text-1)}
.gn-phase-foot{margin-top:20px}
.gn-phase-edu{font:400 .72rem/1.65 var(--font-b);color:var(--text-3);margin:0 0 4px}
.gn-phase-edu b{font:600 .62rem var(--font-m);letter-spacing:1.8px;color:var(--text-3);margin-right:6px}
.gn-phase-why{background:none;border:none;color:var(--text-3);font:600 .62rem var(--font-m);letter-spacing:1.8px;cursor:pointer;padding:12px 0;min-height:46px}
.gn-phase-why-body{font:400 .8rem/1.6 var(--font-b);color:var(--text-2);display:flex;flex-direction:column;gap:10px;padding:6px 0 4px}
.gn-phase-why-body b{font:600 .6rem var(--font-m);letter-spacing:1.8px;color:var(--text-3)}
.gn-phase-why-body p{margin:4px 0 0}
@media(prefers-reduced-motion:reduce){.gn-parc,.gn-pnode .dot,.gn-phase-ignite,.gn-phase-tab,.gn-phase-chip{transition:none!important}.gn-phase-med-menu{animation:none!important}.gn-phase-med-item{transition:none!important}}

/*
GRID//NODE legacy CSS — extracted from html/partials/09-styles-scanner-patches.html (15 non-empty inline <style> blocks, in original document order; 3 empty placeholder blocks were dropped).
Block order is load-bearing for the cascade: do not reorder, split, or merge these blocks.
HTML diet, 2026-10-13.
*/

/* ═══════════════════════════════════════════════
   SCANNER CANONICAL ASSET SYNC v2 — MODE MAPPING FIX
   - CORE/LOWER use canonical FRONT master.
   - UPPER uses canonical BACK master.
   - All modes remain 2:3 with object-fit: contain.
   - Inactive hitboxes cannot receive taps.
   - No overlays or selected-state FX created.
═══════════════════════════════════════════════ */
.asset-scan-stage,
.asset-scan-stage.mode-core,
.asset-scan-stage.mode-lower,
.asset-scan-stage.mode-upper{
  aspect-ratio:2 / 3!important;
  width:min(100%,350px)!important;
  max-width:350px!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
}
#scannerBodyAsset,
.scan-asset,
.scanner-reference-image{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
}
.asset-scan-stage .zone-overlay{
  background:transparent!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  filter:none!important;
  opacity:0!important;
}
.asset-scan-stage .zone-overlay::before,
.asset-scan-stage .zone-overlay::after{
  content:none!important;
  display:none!important;
}
.asset-scan-stage .zone-overlay.mode-muted,
.asset-scan-stage.mode-core .zone-overlay:not([data-mode="core"]),
.asset-scan-stage.mode-lower .zone-overlay:not([data-mode="lower"]),
.asset-scan-stage.mode-upper .zone-overlay:not([data-mode="upper"]){
  pointer-events:none!important;
}
.asset-scan-stage.mode-core .zone-overlay[data-mode="core"],
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"],
.asset-scan-stage.mode-upper .zone-overlay[data-mode="upper"]{
  pointer-events:auto!important;
  opacity:0!important;
}

/* SCANNER CANONICAL ASSET SYNC v3 — THIGH HITBOX ALIGNMENT
   Prep-only. No overlays. No selected-state FX.
   Fixes LOWER mode vertical hitbox reach so upper/middle/lower portions of the visible thigh zones register.
   CORE and UPPER hitboxes intentionally unchanged. */
.asset-scan-stage.mode-lower .zone-lower-l,
.zone-lower-l{
  left:29.6% !important;
  top:47.4% !important;
  width:18.2% !important;
  height:20.2% !important;
  border-radius:20px 28px 24px 18px !important;
}
.asset-scan-stage.mode-lower .zone-lower-r,
.zone-lower-r{
  left:52.2% !important;
  top:47.4% !important;
  width:18.2% !important;
  height:20.2% !important;
  border-radius:28px 20px 18px 24px !important;
}
.asset-scan-stage.mode-lower .zone-overlay[data-mode="lower"]{
  pointer-events:auto !important;
  opacity:0 !important;
}

/* CORE ABDOMEN 4-ZONE HUD EXPERIMENT v1
   Experiment only. No scanner masters changed. No dropdowns. No selected PNG overlays.
   CORE expands from 2 abdomen zones to 4 user-entered tracking quadrants. */

/* Faint internal CORE subdivision guide embedded into the scanner field. */
.core4-subdivision-hud{
  position:absolute;
  z-index:3;
  left:34.2%;
  top:32.6%;
  width:31.8%;
  height:12.6%;
  pointer-events:none;
  opacity:0;
  transition:opacity .18s ease;
}
.asset-scan-stage.mode-core .core4-subdivision-hud{
  opacity:.52;
}
.core4-subdivision-hud::before,
.core4-subdivision-hud::after{
  content:"" !important;
  position:absolute;
  display:block !important;
  opacity:1 !important;
  pointer-events:none;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
}
.core4-subdivision-hud::before{
  left:50%;
  top:3%;
  bottom:3%;
  width:1px;
  background:linear-gradient(180deg,transparent,rgba(0,212,255,.48),rgba(255,0,204,.38),transparent) !important;
  box-shadow:0 0 8px rgba(0,212,255,.14) !important;
}
.core4-subdivision-hud::after{
  left:5%;
  right:5%;
  top:50%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(0,212,255,.42),rgba(255,0,204,.32),transparent) !important;
  box-shadow:0 0 8px rgba(0,212,255,.10) !important;
}

/* Four CORE quadrant hitboxes, body-perspective naming on a front-facing body:
   screen-left = Right Abdomen, screen-right = Left Abdomen. */
.zone-core-lu{left:34.7% !important; top:33.1% !important; width:14.7% !important; height:5.35% !important; border-radius:14px 12px 10px 14px !important;}
.zone-core-ll{left:34.7% !important; top:38.5% !important; width:14.7% !important; height:5.85% !important; border-radius:12px 10px 16px 14px !important;}
.zone-core-ru{left:50.7% !important; top:33.1% !important; width:14.7% !important; height:5.35% !important; border-radius:12px 14px 14px 10px !important;}
.zone-core-rl{left:50.7% !important; top:38.5% !important; width:14.7% !important; height:5.85% !important; border-radius:10px 12px 14px 16px !important;}

/* Dormant biotech-zone discoverability for CORE quadrants only. */
.asset-scan-stage.mode-core .zone-core-q{
  opacity:.18 !important;
  pointer-events:auto !important;
  background:
    linear-gradient(135deg,rgba(255,0,204,.14),rgba(0,212,255,.045)) !important;
  border:1px solid rgba(0,212,255,.16) !important;
  box-shadow:
    inset 0 0 10px rgba(255,0,204,.10),
    0 0 10px rgba(0,212,255,.035) !important;
  filter:none !important;
}
.asset-scan-stage.mode-core .zone-core-q:hover,
.asset-scan-stage.mode-core .zone-core-q:active{
  opacity:.34 !important;
}

/* Selected zone lock: four subtle HUD brackets + embedded magenta density.
   No bullseyes, dots, capsules, checkmarks, or medical target visuals. */
.asset-scan-stage.mode-core .zone-core-q.selected-active{
  opacity:.70 !important;
  background:
    linear-gradient(rgba(0,212,255,.82),rgba(0,212,255,.82)) left top/13px 1px no-repeat,
    linear-gradient(rgba(0,212,255,.82),rgba(0,212,255,.82)) left top/1px 13px no-repeat,
    linear-gradient(rgba(0,212,255,.82),rgba(0,212,255,.82)) right top/13px 1px no-repeat,
    linear-gradient(rgba(0,212,255,.82),rgba(0,212,255,.82)) right top/1px 13px no-repeat,
    linear-gradient(rgba(0,212,255,.82),rgba(0,212,255,.82)) left bottom/13px 1px no-repeat,
    linear-gradient(rgba(0,212,255,.82),rgba(0,212,255,.82)) left bottom/1px 13px no-repeat,
    linear-gradient(rgba(0,212,255,.82),rgba(0,212,255,.82)) right bottom/13px 1px no-repeat,
    linear-gradient(rgba(0,212,255,.82),rgba(0,212,255,.82)) right bottom/1px 13px no-repeat,
    repeating-linear-gradient(90deg,rgba(0,212,255,.12) 0 1px,transparent 1px 7px),
    linear-gradient(135deg,rgba(255,0,204,.30),rgba(0,212,255,.08)) !important;
  border:1px solid rgba(0,212,255,.46) !important;
  box-shadow:
    inset 0 0 14px rgba(255,0,204,.20),
    inset 0 0 20px rgba(0,212,255,.06),
    0 0 14px rgba(0,212,255,.18) !important;
}

/* One-shot scanline pulse across selected quadrant. */
.asset-scan-stage.mode-core .zone-core-q.zone-confirming{
  animation:core4ZoneConfirm .46s ease-out 1 !important;
}
@keyframes core4ZoneConfirm{
  0%{filter:brightness(1.45);opacity:.92}
  35%{filter:brightness(1.22);opacity:.80}
  100%{filter:brightness(1);opacity:.70}
}

/* Tap point pulse is transient only and removed from DOM after animation. */
.core4-tap-pulse{
  position:absolute;
  z-index:8;
  width:30px;
  height:30px;
  margin-left:-15px;
  margin-top:-15px;
  border-radius:50%;
  pointer-events:none;
  border:1px solid rgba(0,212,255,.72);
  box-shadow:0 0 14px rgba(0,212,255,.25), inset 0 0 10px rgba(0,212,255,.12);
  animation:core4TapPulse .42s ease-out forwards;
}
.core4-tap-pulse::after{
  content:"" !important;
  position:absolute;
  display:block !important;
  left:50%;
  top:50%;
  width:3px;
  height:3px;
  margin-left:-1.5px;
  margin-top:-1.5px;
  border-radius:50%;
  background:rgba(0,212,255,.55) !important;
  box-shadow:0 0 8px rgba(0,212,255,.36) !important;
}
@keyframes core4TapPulse{
  0%{transform:scale(.38);opacity:.85}
  70%{transform:scale(1.42);opacity:.38}
  100%{transform:scale(1.76);opacity:0}
}

.fab.core4-ready{
  box-shadow:0 6px 28px rgba(255,59,59,.52),0 0 18px rgba(0,212,255,.18) !important;
  filter:brightness(1.08);
}

.scanner-selected-panel.core4-locked{
  border-color:rgba(0,212,255,.32) !important;
  background:linear-gradient(135deg,rgba(0,212,255,.10),rgba(255,0,204,.055),rgba(0,0,0,.24)) !important;
}
.scanner-selected-panel .core4-panel-state{
  font-family:var(--font-m);
  font-size:.55rem;
  letter-spacing:1.6px;
  color:#aeefff;
}
.scanner-selected-panel .core4-panel-zone{
  font-family:var(--font-d);
  font-size:.88rem;
  font-weight:900;
  letter-spacing:.65px;
  color:#f4feff;
  text-transform:uppercase;
}
.scanner-selected-panel .core4-panel-sub{
  font-family:var(--font-b);
  font-size:.84rem;
  line-height:1.3;
  color:#c1cfda;
}
.scanner-selected-panel .core4-panel-empty{
  font-family:var(--font-b);
  font-size:.88rem;
  line-height:1.35;
  color:#c4d1dc;
}
.scanner-body-perspective-note{
  margin-top:8px;
  font-family:var(--font-m);
  font-size:.50rem;
  letter-spacing:1.05px;
  color:#7fa8b8;
  text-align:center;
  opacity:.88;
}

/* TRACKING REGIONS EXPANSION + LIVE HUD ZONE INTELLIGENCE v1
   Experiment only. User-entered tracking regions. No medical instruction visuals.
   Scanner masters, LOG SHOT flow, selected-location source-of-truth preserved. */

/* Disable prior CORE-only subdivision HUD when 12-zone system is active. */
.core4-subdivision-hud{display:none!important}

/* Shared subtle scanner-native subdivision guides. They imply upper/lower regions without turning zones into buttons. */
.track12-subdivision-hud{
  position:absolute;
  z-index:3;
  pointer-events:none;
  opacity:0;
  transition:opacity .18s ease;
  mix-blend-mode:screen;
}
.track12-subdivision-hud::before,
.track12-subdivision-hud::after{
  content:"" !important;
  position:absolute;
  display:block !important;
  pointer-events:none;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
}
.track12-core-hud{left:34.2%;top:32.4%;width:31.9%;height:12.4%}
.track12-lower-hud{left:31.4%;top:46.7%;width:38.8%;height:20.8%}
.track12-upper-hud{left:25.4%;top:22.5%;width:49.2%;height:20.6%}

.asset-scan-stage.mode-core .track12-core-hud,
.asset-scan-stage.mode-lower .track12-lower-hud,
.asset-scan-stage.mode-upper .track12-upper-hud{opacity:.42}

.track12-core-hud::before,
.track12-lower-hud::before,
.track12-upper-hud::before{
  left:50%;top:3%;bottom:3%;width:1px;
  background:linear-gradient(180deg,transparent,rgba(0,212,255,.38),rgba(255,0,204,.22),transparent)!important;
  box-shadow:0 0 8px rgba(0,212,255,.10)!important;
}
.track12-core-hud::after,
.track12-lower-hud::after,
.track12-upper-hud::after{
  left:5%;right:5%;top:50%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(0,212,255,.34),rgba(255,0,204,.20),transparent)!important;
  box-shadow:0 0 8px rgba(0,212,255,.08)!important;
}

/* 12-zone coordinate map. Front-facing body uses body perspective:
   screen-left = body right, screen-right = body left.
   Back-facing body uses natural rear view: screen-left = body left, screen-right = body right. */

/* CORE abdomen quadrants */
.zone-core-lu{left:32%!important;top:44%!important;width:18%!important;height:14%!important;border-radius:14px 12px 10px 14px!important}
.zone-core-ll{left:32%!important;top:65%!important;width:18%!important;height:22%!important;border-radius:12px 10px 16px 14px!important}
.zone-core-ru{left:50%!important;top:44%!important;width:18%!important;height:14%!important;border-radius:12px 14px 14px 10px!important}
.zone-core-rl{left:50%!important;top:65%!important;width:18%!important;height:22%!important;border-radius:10px 12px 14px 16px!important}

/* LOWER thigh quadrants */
.zone-lower-lu{left:12%!important;top:1%!important;width:25%!important;height:14%!important;border-radius:14px 12px 12px 16px!important}
.zone-lower-ll{left:14%!important;top:18%!important;width:25%!important;height:19%!important;border-radius:14px 13px 18px 18px!important}
.zone-lower-ru{left:63%!important;top:1%!important;width:25%!important;height:14%!important;border-radius:12px 14px 16px 12px!important}
.zone-lower-rl{left:62%!important;top:18%!important;width:25%!important;height:19%!important;border-radius:13px 14px 18px 18px!important}

/* UPPER rear arm quadrants */
.zone-upper-lu{left:5%!important;top:33%!important;width:15%!important;height:18%!important;border-radius:18px 14px 14px 16px!important}
.zone-upper-ll{left:5%!important;top:53%!important;width:15%!important;height:22%!important;border-radius:16px 14px 18px 18px!important}
.zone-upper-ru{left:80%!important;top:33%!important;width:15%!important;height:18%!important;border-radius:14px 18px 16px 14px!important}
.zone-upper-rl{left:80%!important;top:53%!important;width:15%!important;height:22%!important;border-radius:14px 16px 18px 18px!important}

/* Available zone discoverability. No hard boxes, no target markers. */
.asset-scan-stage.mode-core .track12-zone[data-mode="core"],
.asset-scan-stage.mode-lower .track12-zone[data-mode="lower"],
.asset-scan-stage.mode-upper .track12-zone[data-mode="upper"]{
  pointer-events:auto!important;
  opacity:.16!important;
  background:
    linear-gradient(135deg,rgba(255,0,204,.10),rgba(0,212,255,.035))!important;
  border:1px solid rgba(0,212,255,.10)!important;
  box-shadow:
    inset 0 0 9px rgba(255,0,204,.08),
    0 0 10px rgba(0,212,255,.025)!important;
  filter:none!important;
  mix-blend-mode:screen;
}
.asset-scan-stage.mode-core .track12-zone:not([data-mode="core"]),
.asset-scan-stage.mode-lower .track12-zone:not([data-mode="lower"]),
.asset-scan-stage.mode-upper .track12-zone:not([data-mode="upper"]){
  pointer-events:none!important;
  opacity:0!important;
}

/* Selected state: selected region feels locked/registered. */
.track12-zone.selected-active{
  opacity:.74!important;
  border:1px solid rgba(0,212,255,.54)!important;
  background:
    linear-gradient(rgba(0,212,255,.84),rgba(0,212,255,.84)) left top/12px 1px no-repeat,
    linear-gradient(rgba(0,212,255,.84),rgba(0,212,255,.84)) left top/1px 12px no-repeat,
    linear-gradient(rgba(0,212,255,.84),rgba(0,212,255,.84)) right top/12px 1px no-repeat,
    linear-gradient(rgba(0,212,255,.84),rgba(0,212,255,.84)) right top/1px 12px no-repeat,
    linear-gradient(rgba(0,212,255,.84),rgba(0,212,255,.84)) left bottom/12px 1px no-repeat,
    linear-gradient(rgba(0,212,255,.84),rgba(0,212,255,.84)) left bottom/1px 12px no-repeat,
    linear-gradient(rgba(0,212,255,.84),rgba(0,212,255,.84)) right bottom/12px 1px no-repeat,
    linear-gradient(rgba(0,212,255,.84),rgba(0,212,255,.84)) right bottom/1px 12px no-repeat,
    repeating-linear-gradient(90deg,rgba(0,212,255,.08) 0 1px,transparent 1px 7px),
    repeating-linear-gradient(0deg,rgba(255,0,204,.055) 0 1px,transparent 1px 9px),
    linear-gradient(135deg,rgba(255,0,204,.25),rgba(0,212,255,.075))!important;
  box-shadow:
    inset 0 0 15px rgba(255,0,204,.18),
    inset 0 0 19px rgba(0,212,255,.06),
    0 0 14px rgba(0,212,255,.13)!important;
}

/* Live Zone Intelligence v6: visible Blade Runner-style telemetry clipped inside selected region only. */
.track12-zone.selected-active::after{
  content:"LOCKED  //  TRACE_ACTIVE  //  NODE_SYNC  //  GRID  //  ZONE_REGISTERED  //  0xA7  0xF3  â–‘â–’â–“"!important;
  position:absolute!important;
  inset:8% 6%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  font-family:var(--font-m)!important;
  font-size:clamp(7px,.76vw,11px)!important;
  line-height:1.05!important;
  letter-spacing:1.05px!important;
  color:rgba(190,250,255,.70)!important;
  text-align:left!important;
  text-transform:uppercase!important;
  opacity:.74!important;
  border:0!important;
  background:
    linear-gradient(90deg,rgba(0,0,0,0),rgba(0,212,255,.13),rgba(255,190,70,.065),rgba(0,0,0,0)),
    repeating-linear-gradient(0deg,rgba(0,212,255,.10) 0 1px,transparent 1px 6px)!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  transform:translateX(-22%);
  animation:track12IntelSweepV6 2.15s linear infinite!important;
  text-shadow:
    0 0 5px rgba(0,212,255,.44),
    0 0 10px rgba(255,0,204,.20),
    0 0 12px rgba(255,176,64,.10)!important;
  mix-blend-mode:screen!important;
}
.track12-zone.selected-active::before{
  content:"GRID // 0xF3 // NODE_SYNC"!important;
  position:absolute!important;
  left:10%!important;
  right:10%!important;
  bottom:13%!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  font-family:var(--font-m)!important;
  font-size:clamp(5px,.56vw,8px)!important;
  letter-spacing:.9px!important;
  color:rgba(255,194,95,.44)!important;
  opacity:.46!important;
  pointer-events:none!important;
  text-shadow:0 0 7px rgba(255,176,64,.20)!important;
  animation:track12IntelGhostV6 3.6s ease-in-out infinite!important;
}
@keyframes track12IntelSweepV6{
  0%{transform:translateX(-42%);opacity:.28}
  14%{opacity:.76}
  52%{opacity:.66}
  100%{transform:translateX(24%);opacity:.30}
}
@keyframes track12IntelGhostV6{
  0%,100%{transform:translateY(2px);opacity:.25}
  45%{transform:translateY(-2px);opacity:.50}
}
@media(max-width:430px){
  .track12-zone.selected-active::after{
    font-size:clamp(7px,1.55vw,10px)!important;
    letter-spacing:.85px!important;
    opacity:.82!important;
    animation-duration:1.9s!important;
  }
  .track12-zone.selected-active::before{
    font-size:clamp(5px,1.15vw,7px)!important;
    opacity:.50!important;
  }
}

/* One-shot scan pulse on tap. */
.track12-zone.zone-confirming{
  animation:track12ZoneConfirm .46s ease-out 1!important;
}
@keyframes track12ZoneConfirm{
  0%{filter:brightness(1.45);opacity:.88}
  36%{filter:brightness(1.18);opacity:.82}
  100%{filter:brightness(1);opacity:.74}
}
.track12-tap-pulse{
  position:absolute;
  z-index:9;
  width:28px;height:28px;
  margin-left:-14px;margin-top:-14px;
  border-radius:50%;
  pointer-events:none;
  border:1px solid rgba(0,212,255,.70);
  box-shadow:0 0 14px rgba(0,212,255,.22), inset 0 0 9px rgba(0,212,255,.10);
  animation:track12TapPulse .42s ease-out forwards;
}
@keyframes track12TapPulse{
  0%{transform:scale(.34);opacity:.82}
  72%{transform:scale(1.32);opacity:.30}
  100%{transform:scale(1.64);opacity:0}
}

.fab.track12-ready{
  box-shadow:0 6px 28px rgba(255,59,59,.52),0 0 18px rgba(0,212,255,.20)!important;
  filter:brightness(1.08);
}

.scanner-selected-panel.track12-locked{
  border-color:rgba(0,212,255,.34)!important;
  background:linear-gradient(135deg,rgba(0,212,255,.10),rgba(255,0,204,.055),rgba(0,0,0,.24))!important;
}
.scanner-selected-panel .track12-panel-state{
  font-family:var(--font-m);
  font-size:.55rem;
  letter-spacing:1.6px;
  color:#aeefff;
}
.scanner-selected-panel .track12-panel-zone{
  font-family:var(--font-d);
  font-size:.88rem;
  font-weight:900;
  letter-spacing:.65px;
  color:#f4feff;
  text-transform:uppercase;
}
.scanner-selected-panel .track12-panel-sub{
  font-family:var(--font-b);
  font-size:.84rem;
  line-height:1.3;
  color:#c1cfda;
}
.scanner-selected-panel .track12-panel-empty{
  font-family:var(--font-b);
  font-size:.88rem;
  line-height:1.35;
  color:#c4d1dc;
}
.scanner-body-perspective-note{
  margin-top:8px;
  font-family:var(--font-m);
  font-size:.50rem;
  letter-spacing:1.05px;
  color:#7fa8b8;
  text-align:center;
  opacity:.88;
}

/* Preserve scanner-native restraint, but make the selected zone visibly "alive." */
.track12-zone.selected-active{
  opacity:.88!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
.track12-zone.selected-active::after{
  content:none!important;
  display:none!important;
}

/* Real child layer avoids older global .zone-overlay::after suppression. */
.track12-intel-layer{
  position:absolute!important;
  inset:8% 7%!important;
  z-index:4!important;
  pointer-events:none!important;
  overflow:hidden!important;
  border-radius:inherit!important;
  display:block!important;
  opacity:.86!important;
  mix-blend-mode:screen!important;
}
.track12-intel-layer::before{
  content:"LOCKED  //  TRACE_ACTIVE  //  NODE_SYNC  //  GRID  //  0xA7  //  0xF3  //  â–‘â–’â–“"!important;
  position:absolute!important;
  left:-28%!important;
  top:50%!important;
  width:156%!important;
  transform:translateY(-50%)!important;
  font-family:var(--font-m)!important;
  font-size:clamp(6px,1.55vw,10px)!important;
  line-height:1.05!important;
  letter-spacing:.8px!important;
  color:rgba(198,252,255,.72)!important;
  text-align:center!important;
  white-space:nowrap!important;
  text-transform:uppercase!important;
  text-shadow:0 0 6px rgba(0,212,255,.45),0 0 11px rgba(255,0,204,.18)!important;
  animation:track12IntelVisibleSweep 2.15s linear infinite!important;
}
.track12-intel-layer::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  display:block!important;
  opacity:.55!important;
  background:
    repeating-linear-gradient(90deg,rgba(0,212,255,.17) 0 1px,transparent 1px 9px),
    repeating-linear-gradient(0deg,rgba(255,0,204,.12) 0 1px,transparent 1px 11px),
    linear-gradient(90deg,transparent,rgba(0,212,255,.13),transparent)!important;
  animation:track12MatrixBreath 1.9s ease-in-out infinite alternate!important;
}
@keyframes track12IntelVisibleSweep{
  0%{transform:translate(-16%,-50%);opacity:.28}
  18%{opacity:.78}
  50%{opacity:.62}
  100%{transform:translate(16%,-50%);opacity:.30}
}
@keyframes track12MatrixBreath{
  from{filter:brightness(.86);opacity:.38}
  to{filter:brightness(1.16);opacity:.62}
}

/* Slightly larger/readable on the smaller arm quadrants without becoming a label on the body. */
.zone-upper-lu .track12-intel-layer::before,
.zone-upper-ll .track12-intel-layer::before,
.zone-upper-ru .track12-intel-layer::before,
.zone-upper-rl .track12-intel-layer::before{
  font-size:clamp(5px,1.25vw,8px)!important;
  letter-spacing:.55px!important;
}

/* TRACKING REGIONS 12-ZONE LIVE HUD EXPERIMENT v5
   Adds subtle scrolling terminal-style intelligence inside the selected region only.
   Scanner masters, 12-zone model, LOG SHOT flow, selected-location source of truth,
   and protected systems remain unchanged. */

/* Keep the intelligence clipped to the selected zone itself. */
.track12-zone.selected-active{
  overflow:hidden !important;
  isolation:isolate !important;
}

/* V5 uses real child content, not external labels or floating tooltips. */
.track12-zone.selected-active .track12-intel-layer.v5-scrolling{
  position:absolute !important;
  inset:9% 8% !important;
  z-index:5 !important;
  overflow:hidden !important;
  display:block !important;
  border-radius:inherit !important;
  pointer-events:none !important;
  opacity:.70 !important;
  mix-blend-mode:screen !important;
  background:
    repeating-linear-gradient(90deg,rgba(0,212,255,.09) 0 1px,transparent 1px 9px),
    repeating-linear-gradient(0deg,rgba(255,0,204,.07) 0 1px,transparent 1px 10px),
    linear-gradient(180deg,rgba(0,212,255,.05),rgba(255,0,204,.04),rgba(0,212,255,.035)) !important;
  box-shadow:
    inset 0 0 7px rgba(0,212,255,.10),
    inset 0 0 10px rgba(255,0,204,.08) !important;
}

/* Suppress the older pseudo-text so the V5 rows are the only visible terminal activity. */
.track12-zone.selected-active .track12-intel-layer.v5-scrolling::before{
  content:none !important;
  display:none !important;
}
.track12-zone.selected-active .track12-intel-layer.v5-scrolling::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:-35% !important;
  height:40% !important;
  display:block !important;
  background:linear-gradient(180deg,transparent,rgba(0,212,255,.16),transparent) !important;
  opacity:.34 !important;
  animation:track12V5Scanline 2.8s linear infinite !important;
}

/* Scrolling terminal stream remains low-opacity and clipped to the selected region. */
.track12-terminal-stream{
  position:absolute !important;
  inset:-24% 0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:2px !important;
  transform:translateY(0) !important;
  animation:track12V5TerminalDrift 4.8s linear infinite !important;
  pointer-events:none !important;
}
.track12-terminal-line{
  font-family:var(--font-m) !important;
  font-size:clamp(4.8px,1.08vw,8px) !important;
  line-height:1.05 !important;
  letter-spacing:.62px !important;
  white-space:nowrap !important;
  color:rgba(196,250,255,.58) !important;
  text-shadow:0 0 5px rgba(0,212,255,.35),0 0 8px rgba(255,0,204,.14) !important;
  opacity:.58 !important;
  text-transform:uppercase !important;
}
.track12-terminal-line:nth-child(2n){
  color:rgba(255,125,248,.36) !important;
  opacity:.42 !important;
}
.track12-terminal-line:nth-child(3n){
  color:rgba(133,255,209,.34) !important;
  opacity:.34 !important;
}

/* Keep very small arm quadrants readable but not cluttered. */
.asset-scan-stage.mode-upper .track12-zone.selected-active .track12-intel-layer.v5-scrolling{
  inset:10% 9% !important;
  opacity:.66 !important;
}
.asset-scan-stage.mode-upper .track12-terminal-line{
  font-size:clamp(4px,.92vw,6.5px) !important;
  letter-spacing:.45px !important;
}

@keyframes track12V5TerminalDrift{
  0%{transform:translateY(-3%);opacity:.20}
  14%{opacity:.58}
  55%{opacity:.48}
  100%{transform:translateY(26%);opacity:.22}
}
@keyframes track12V5Scanline{
  0%{transform:translateY(-40%);opacity:0}
  22%{opacity:.30}
  58%{opacity:.18}
  100%{transform:translateY(320%);opacity:0}
}

/* Motion safety: keep selected lock readable with reduced motion. */
@media (prefers-reduced-motion: reduce){
  .track12-terminal-stream,
  .track12-zone.selected-active .track12-intel-layer.v5-scrolling::after{
    animation:none !important;
  }
}

/* TRACKING REGIONS 12-ZONE LIVE HUD EXPERIMENT v7
   Scope: selected-zone telemetry visibility only.
   Preserves scanner assets, 12-zone logic, triceps lock, LOG SHOT flow, selected-location source of truth, and protected systems.
*/

/* Foreground diagnostic layer: larger, brighter, still clipped inside the selected active region. */
.track12-zone.selected-active::after{
  content:"LOCKED   GRID//   NODE_SYNC   0xA7   TRACE_ACTIVE   ZONE_REGISTERED"!important;
  position:absolute!important;
  inset:6% 5%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  font-family:var(--font-m)!important;
  font-size:clamp(11px,1.55vw,17px)!important;
  line-height:1!important;
  letter-spacing:1.25px!important;
  color:rgba(214,255,255,.92)!important;
  text-align:left!important;
  text-transform:uppercase!important;
  opacity:.96!important;
  z-index:8!important;
  border:0!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  background:
    linear-gradient(90deg,rgba(0,0,0,0),rgba(0,212,255,.26),rgba(255,0,204,.16),rgba(255,184,72,.10),rgba(0,0,0,0)),
    repeating-linear-gradient(0deg,rgba(0,212,255,.18) 0 1px,transparent 1px 7px)!important;
  transform:translateX(-36%);
  animation:track12IntelSweepV7 1.62s linear infinite!important;
  text-shadow:
    0 0 3px rgba(230,255,255,.80),
    0 0 8px rgba(0,212,255,.92),
    0 0 15px rgba(255,0,204,.42),
    0 0 20px rgba(255,176,64,.18)!important;
  mix-blend-mode:screen!important;
}

/* Secondary amber ghost diagnostic line; intentionally sparse and cinematic. */
.track12-zone.selected-active::before{
  content:"// TRACE_ACTIVE    â–‘â–’â–“    0xF3    NODE_SYNC"!important;
  position:absolute!important;
  left:7%!important;
  right:7%!important;
  bottom:11%!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  font-family:var(--font-m)!important;
  font-size:clamp(8px,1.12vw,13px)!important;
  line-height:1!important;
  letter-spacing:1.05px!important;
  color:rgba(255,206,110,.72)!important;
  opacity:.76!important;
  z-index:7!important;
  pointer-events:none!important;
  text-shadow:
    0 0 5px rgba(255,206,110,.58),
    0 0 10px rgba(0,212,255,.28)!important;
  animation:track12IntelGhostV7 2.6s ease-in-out infinite!important;
}

/* Brighter scanline through selected region without becoming a medical target. */
.track12-zone.selected-active .track12-zone-intel,
.track12-zone.selected-active .track12-zone-intel-v2{
  opacity:1!important;
  z-index:9!important;
  pointer-events:none!important;
}
.track12-zone.selected-active .track12-zone-intel::before,
.track12-zone.selected-active .track12-zone-intel-v2::before{
  content:""!important;
  position:absolute!important;
  left:-20%!important;
  right:-20%!important;
  top:44%!important;
  height:1px!important;
  background:linear-gradient(90deg,transparent,rgba(0,232,255,.88),rgba(255,0,204,.44),transparent)!important;
  box-shadow:0 0 10px rgba(0,232,255,.62),0 0 18px rgba(255,0,204,.24)!important;
  opacity:.78!important;
  transform:translateX(-35%);
  animation:track12DiagnosticLineV7 1.85s ease-in-out infinite!important;
}

@keyframes track12IntelSweepV7{
  0%{transform:translateX(-48%);opacity:.52}
  10%{opacity:.98}
  58%{opacity:.92}
  100%{transform:translateX(20%);opacity:.58}
}
@keyframes track12IntelGhostV7{
  0%,100%{transform:translateX(-8%) translateY(1px);opacity:.50}
  50%{transform:translateX(10%) translateY(-1px);opacity:.82}
}
@keyframes track12DiagnosticLineV7{
  0%{transform:translateX(-45%);opacity:.10}
  20%{opacity:.82}
  70%{opacity:.62}
  100%{transform:translateX(45%);opacity:.12}
}

@media(max-width:430px){
  .track12-zone.selected-active::after{
    font-size:clamp(12px,3.1vw,16px)!important;
    letter-spacing:1px!important;
    opacity:.98!important;
    animation-duration:1.45s!important;
  }
  .track12-zone.selected-active::before{
    font-size:clamp(8px,2.2vw,12px)!important;
    opacity:.80!important;
    bottom:9%!important;
  }
}

/* TRACKING REGIONS 12-ZONE LIVE HUD EXPERIMENT v8
   Scope: selected-zone telemetry contrast only.
   No scanner assets, region geometry, LOG SHOT flow, selected-location source of truth,
   navigation, data, or protected systems changed. */

/* Let the zone remain atmospheric, but make telemetry a clear foreground holo diagnostic layer. */
.track12-zone.selected-active{
  overflow:hidden!important;
  isolation:isolate!important;
}

/* Suppress older micro-telemetry child streams so v8 strips are the visible system layer. */
.track12-zone.selected-active .track12-intel-layer,
.track12-zone.selected-active .track12-terminal-stream,
.track12-zone.selected-active .track12-zone-intel,
.track12-zone.selected-active .track12-zone-intel-v2{
  opacity:0!important;
  display:none!important;
}

/* Main foreground diagnostic strip */
.track12-zone.selected-active::after{
  content:"LOCKED   GRID//   NODE_SYNC   0xA7"!important;
  position:absolute!important;
  left:7%!important;
  right:7%!important;
  top:23%!important;
  height:auto!important;
  min-height:17px!important;
  padding:3px 5px 3px 6px!important;
  display:block!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:clip!important;
  font-family:var(--font-m)!important;
  font-size:clamp(12px,3.35vw,17px)!important;
  line-height:1.05!important;
  letter-spacing:.9px!important;
  text-align:left!important;
  text-transform:uppercase!important;
  color:rgba(255,214,118,.96)!important;
  opacity:.98!important;
  z-index:12!important;
  border-radius:2px!important;
  border:1px solid rgba(0,232,255,.22)!important;
  background:
    linear-gradient(90deg,rgba(3,7,10,.70),rgba(6,11,16,.46),rgba(3,7,10,.64)),
    linear-gradient(90deg,rgba(0,232,255,.10),rgba(255,0,204,.075),rgba(255,190,82,.08))!important;
  box-shadow:
    inset 0 0 8px rgba(0,232,255,.14),
    inset 0 -1px 0 rgba(255,190,82,.20),
    0 0 7px rgba(0,232,255,.20),
    0 0 12px rgba(255,0,204,.10)!important;
  text-shadow:
    0 0 3px rgba(255,214,118,.76),
    0 0 8px rgba(255,169,54,.34),
    0 0 10px rgba(0,232,255,.26)!important;
  pointer-events:none!important;
  mix-blend-mode:normal!important;
  transform:translateX(-8%);
  animation:track12DiagnosticStripDriftV8 2.85s ease-in-out infinite!important;
}

/* Secondary smaller strip, still visible but not instructional. */
.track12-zone.selected-active::before{
  content:"TRACE_ACTIVE   ZONE_REGISTERED   0xF3"!important;
  position:absolute!important;
  left:10%!important;
  right:10%!important;
  bottom:18%!important;
  min-height:14px!important;
  padding:2px 4px!important;
  display:block!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  font-family:var(--font-m)!important;
  font-size:clamp(9px,2.55vw,13px)!important;
  line-height:1.05!important;
  letter-spacing:.72px!important;
  color:rgba(168,245,224,.88)!important;
  opacity:.90!important;
  z-index:11!important;
  border-radius:2px!important;
  border:1px solid rgba(255,0,204,.15)!important;
  background:
    linear-gradient(90deg,rgba(2,5,8,.62),rgba(8,8,13,.36),rgba(2,5,8,.55)),
    linear-gradient(90deg,rgba(255,0,204,.07),rgba(0,232,255,.09),rgba(255,190,82,.045))!important;
  box-shadow:
    inset 0 0 7px rgba(255,0,204,.11),
    0 0 7px rgba(0,232,255,.14)!important;
  text-shadow:
    0 0 4px rgba(168,245,224,.56),
    0 0 8px rgba(0,232,255,.24)!important;
  pointer-events:none!important;
  transform:translateX(6%);
  animation:track12DiagnosticStripGhostV8 3.4s ease-in-out infinite!important;
}

/* Thin foreground sweep line, clipped to the region and intentionally not target-like. */
.track12-zone.selected-active{
  background-image:
    linear-gradient(90deg,transparent 0%,rgba(255,211,110,.08) 34%,rgba(0,232,255,.15) 50%,rgba(255,0,204,.08) 64%,transparent 100%)!important;
  background-size:220% 100%!important;
  animation:track12ZoneHoloSweepV8 2.7s ease-in-out infinite!important;
}

@keyframes track12DiagnosticStripDriftV8{
  0%,100%{transform:translateX(-7%) translateY(0);opacity:.86}
  32%{opacity:1}
  55%{transform:translateX(5%) translateY(-1px);opacity:.98}
  82%{opacity:.90}
}
@keyframes track12DiagnosticStripGhostV8{
  0%,100%{transform:translateX(8%) translateY(1px);opacity:.68}
  45%{transform:translateX(-7%) translateY(-1px);opacity:.94}
}
@keyframes track12ZoneHoloSweepV8{
  0%{background-position:120% 0}
  52%{background-position:0% 0}
  100%{background-position:-100% 0}
}

/* Mobile-specific: arm zones are smaller, so keep strips compact and visible. */
@media(max-width:430px){
  .track12-zone.selected-active::after{
    left:6%!important;
    right:6%!important;
    top:19%!important;
    min-height:16px!important;
    font-size:clamp(10px,3vw,14px)!important;
    letter-spacing:.6px!important;
    padding:3px 4px!important;
  }
  .track12-zone.selected-active::before{
    left:8%!important;
    right:8%!important;
    bottom:15%!important;
    min-height:13px!important;
    font-size:clamp(8px,2.25vw,11px)!important;
    letter-spacing:.45px!important;
  }
  .asset-scan-stage.mode-upper .track12-zone.selected-active::after{
    top:18%!important;
    font-size:clamp(8px,2.2vw,11px)!important;
    min-height:13px!important;
    padding:2px 3px!important;
  }
  .asset-scan-stage.mode-upper .track12-zone.selected-active::before{
    font-size:clamp(7px,1.9vw,9px)!important;
    min-height:11px!important;
    bottom:14%!important;
  }
}

@media (prefers-reduced-motion: reduce){
  .track12-zone.selected-active,
  .track12-zone.selected-active::before,
  .track12-zone.selected-active::after{
    animation:none!important;
  }
}

/* TRACKING REGIONS 12-ZONE LIVE HUD EXPERIMENT v9
   Scope: selected-zone telemetry presentation only.
   Replaces buried in-zone terminal text with one consistent anchored near-zone HUD tag.
   Preserves scanner assets, 12-zone tracking model, posterior triceps lock,
   selected-location source of truth, LOG SHOT flow, and protected systems. */

/* Suppress V5-V8 in-region terminal text/strips. Keep the selected zone lock/glow/background. */
.track12-zone.selected-active::before,
.track12-zone.selected-active::after{
  content:none !important;
  display:none !important;
}
.track12-zone .track12-intel-layer,
.track12-zone .track12-terminal-stream,
.track12-zone .track12-zone-intel,
.track12-zone .track12-zone-intel-v2{
  opacity:0 !important;
  display:none !important;
}

/* The HUD tag lives inside the scanner stage, not outside the scanner. */
.track12-anchored-hud-tag{
  position:absolute;
  width:132px;
  min-height:38px;
  padding:7px 9px 6px;
  z-index:22;
  pointer-events:none;
  border-radius:5px;
  border:1px solid rgba(0,232,255,.36);
  background:
    linear-gradient(135deg,rgba(4,8,12,.84),rgba(8,12,18,.58) 52%,rgba(4,7,11,.78)),
    linear-gradient(90deg,rgba(0,232,255,.08),rgba(255,0,204,.06),rgba(255,190,82,.08));
  box-shadow:
    inset 0 0 12px rgba(0,232,255,.13),
    inset 0 -1px 0 rgba(255,196,82,.20),
    0 0 12px rgba(0,232,255,.24),
    0 0 18px rgba(255,0,204,.10);
  backdrop-filter:blur(2px);
  opacity:0;
  transform:translate3d(0,3px,0) scale(.985);
  transition:opacity .16s ease, transform .16s ease, left .18s ease, top .18s ease;
  overflow:hidden;
  isolation:isolate;
}
.track12-anchored-hud-tag.active{
  opacity:.98;
  transform:translate3d(0,0,0) scale(1);
}
.track12-anchored-hud-tag::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,transparent,rgba(0,232,255,.18),rgba(255,0,204,.10),transparent);
  transform:translateX(-115%);
  animation:track12HudTagSweepV9 3.1s ease-in-out infinite;
  opacity:.7;
  z-index:0;
}
.track12-anchored-hud-tag::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,207,104,.70),rgba(0,232,255,.55),transparent);
  opacity:.72;
  z-index:0;
}
.track12-hud-line{
  position:absolute;
  height:1px;
  width:1px;
  z-index:21;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(0,232,255,.88),rgba(0,232,255,.30),rgba(255,0,204,.16),transparent);
  box-shadow:0 0 7px rgba(0,232,255,.44);
  transform-origin:0 50%;
  opacity:0;
  transition:opacity .16s ease, width .18s ease, left .18s ease, top .18s ease, transform .18s ease;
}
.track12-hud-line.active{opacity:.82}
.track12-hud-dot{
  position:absolute;
  width:5px;
  height:5px;
  border-radius:50%;
  z-index:23;
  pointer-events:none;
  background:rgba(0,232,255,.78);
  box-shadow:0 0 8px rgba(0,232,255,.66),0 0 12px rgba(255,0,204,.20);
  transform:translate(-50%,-50%);
  opacity:0;
  transition:opacity .16s ease, left .18s ease, top .18s ease;
}
.track12-hud-dot.active{opacity:.85}

.track12-hud-tag-content{
  position:relative;
  z-index:1;
  display:grid;
  gap:3px;
  font-family:var(--font-m);
  text-transform:uppercase;
  white-space:nowrap;
}
.track12-hud-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  line-height:1;
}
.track12-hud-row.primary{
  color:rgba(255,215,126,.96);
  font-size:11px;
  letter-spacing:.95px;
  text-shadow:0 0 5px rgba(255,197,92,.46),0 0 9px rgba(0,232,255,.20);
}
.track12-hud-row.secondary{
  color:rgba(167,248,226,.90);
  font-size:9px;
  letter-spacing:.8px;
  text-shadow:0 0 6px rgba(0,232,255,.35),0 0 9px rgba(255,0,204,.13);
}

@keyframes track12HudTagSweepV9{
  0%,18%{transform:translateX(-115%);opacity:.20}
  48%{opacity:.68}
  70%,100%{transform:translateX(115%);opacity:.10}
}

@media(max-width:430px){
  .track12-anchored-hud-tag{
    width:120px;
    min-height:35px;
    padding:6px 8px 5px;
    border-radius:4px;
  }
  .track12-hud-row.primary{
    font-size:10px;
    letter-spacing:.75px;
  }
  .track12-hud-row.secondary{
    font-size:8px;
    letter-spacing:.62px;
  }
}

/* TRACKING REGIONS 12-ZONE LIVE HUD EXPERIMENT v10
   Scope: anchored HUD tag mobile polish only.
   Preserves v9 direction, 12-zone model, posterior triceps lock, scanner assets,
   selected-location source of truth, LOG SHOT flow, and protected systems. */

.track12-anchored-hud-tag{
  width:106px !important;
  min-height:31px !important;
  padding:5px 7px 4px !important;
  border-radius:4px !important;
  border-color:rgba(0,232,255,.28) !important;
  background:
    linear-gradient(135deg,rgba(4,8,12,.76),rgba(8,12,18,.50) 52%,rgba(4,7,11,.70)),
    linear-gradient(90deg,rgba(0,232,255,.055),rgba(255,0,204,.045),rgba(255,190,82,.055)) !important;
  box-shadow:
    inset 0 0 9px rgba(0,232,255,.10),
    inset 0 -1px 0 rgba(255,196,82,.15),
    0 0 8px rgba(0,232,255,.16),
    0 0 12px rgba(255,0,204,.07) !important;
  opacity:0 !important;
}
.track12-anchored-hud-tag.active{opacity:.88 !important}
.track12-anchored-hud-tag::before{
  opacity:.46 !important;
  animation-duration:3.8s !important;
}
.track12-anchored-hud-tag::after{
  opacity:.52 !important;
}
.track12-hud-row{gap:5px !important}
.track12-hud-row.primary{
  font-size:8.6px !important;
  letter-spacing:.55px !important;
  text-shadow:0 0 4px rgba(255,197,92,.32),0 0 7px rgba(0,232,255,.14) !important;
}
.track12-hud-row.secondary{
  font-size:7px !important;
  letter-spacing:.48px !important;
  text-shadow:0 0 4px rgba(0,232,255,.24),0 0 7px rgba(255,0,204,.10) !important;
}
.track12-hud-line{
  height:1px !important;
  background:linear-gradient(90deg,rgba(0,232,255,.62),rgba(0,232,255,.22),rgba(255,0,204,.10),transparent) !important;
  box-shadow:0 0 4px rgba(0,232,255,.26) !important;
}
.track12-hud-line.active{opacity:.58 !important}
.track12-hud-dot{
  width:4px !important;
  height:4px !important;
  background:rgba(0,232,255,.52) !important;
  box-shadow:0 0 5px rgba(0,232,255,.38),0 0 8px rgba(255,0,204,.12) !important;
}
.track12-hud-dot.active{opacity:.64 !important}

@media(max-width:430px){
  .track12-anchored-hud-tag{
    width:102px !important;
    min-height:30px !important;
    padding:5px 6px 4px !important;
  }
  .track12-hud-row.primary{
    font-size:8.2px !important;
    letter-spacing:.48px !important;
  }
  .track12-hud-row.secondary{
    font-size:6.7px !important;
    letter-spacing:.42px !important;
  }
}

/* TRACKING REGIONS 12-ZONE LIVE HUD EXPERIMENT v12
   Scope: anchored HUD placement only.
   Applies outboard placement, lower-thigh tether safety, and lower back-upper-arm anchor safety.
   Preserves V10/V11 HUD visual style and protected scanner systems. */

/* TRACKING REGIONS 12-ZONE LIVE HUD EXPERIMENT v13
   Scope: final abdomen tap smoothing, Back Upper Arm tether visibility, and locked Back Upper Arm naming.
   Preserves v12 outboard placement, 12-zone model, posterior triceps direction, scanner assets,
   selected-location source of truth, LOG SHOT flow, and protected systems. */

/* 1) CORE abdomen tap glitch fix:
   Disable only the one-shot legacy confirmation flash for CORE abdomen quadrants.
   Selected-state glow/lock remains subtle and scanner-native. */
.asset-scan-stage.mode-core .track12-zone.zone-core-q.zone-confirming,
.asset-scan-stage.mode-core .track12-zone.zone-core-q.zone-confirming::before,
.asset-scan-stage.mode-core .track12-zone.zone-core-q.zone-confirming::after{
  animation:none !important;
  transition:opacity var(--dur-1) var(--ease-out), filter var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out), box-shadow var(--dur-1) var(--ease-out) !important;
}
.asset-scan-stage.mode-core .track12-zone.zone-core-q.zone-confirming::before,
.asset-scan-stage.mode-core .track12-zone.zone-core-q.zone-confirming::after{
  opacity:0 !important;
  content:none !important;
  display:none !important;
}
.asset-scan-stage.mode-core .track12-zone.zone-core-q.selected-active{
  transform:none !important;
  animation:none !important;
}

/* 2) Back Upper Arm tether visibility:
   Slightly more visible than v12, but still restrained and non-target-like. */
.asset-scan-stage.mode-upper .track12-hud-line.arm-tether{
  height:1.5px !important;
  opacity:.82 !important;
  background:linear-gradient(90deg,
    rgba(0,232,255,.82),
    rgba(0,232,255,.40),
    rgba(255,0,204,.18),
    transparent) !important;
  box-shadow:
    0 0 5px rgba(0,232,255,.36),
    0 0 9px rgba(255,0,204,.12) !important;
}
.asset-scan-stage.mode-upper .track12-hud-dot.arm-tether{
  width:4.5px !important;
  height:4.5px !important;
  opacity:.76 !important;
  background:rgba(0,232,255,.62) !important;
  box-shadow:
    0 0 6px rgba(0,232,255,.46),
    0 0 10px rgba(255,0,204,.16) !important;
}

/* Lock CORE abdomen HUD geometry through CSS variables so older delayed HUD-placement timers cannot
   briefly move the tag/line/dot to a stale/default location between selection and final render. */
.asset-scan-stage.gn-core-abdomen-hud-locked .track12-anchored-hud-tag{
  left:var(--gn-core-hud-left) !important;
  top:var(--gn-core-hud-top) !important;
}
.asset-scan-stage.gn-core-abdomen-hud-locked .track12-hud-line{
  left:var(--gn-core-line-left) !important;
  top:var(--gn-core-line-top) !important;
  width:var(--gn-core-line-width) !important;
  transform:rotate(var(--gn-core-line-angle)) !important;
}
.asset-scan-stage.gn-core-abdomen-hud-locked .track12-hud-dot{
  left:var(--gn-core-dot-left) !important;
  top:var(--gn-core-dot-top) !important;
}
/* Disable positional interpolation only while CORE abdomen lock variables are controlling placement.
   Opacity/visual styling remains intact; this removes the visible left/right snap. */
.asset-scan-stage.gn-core-abdomen-hud-locked .track12-anchored-hud-tag,
.asset-scan-stage.gn-core-abdomen-hud-locked .track12-hud-line,
.asset-scan-stage.gn-core-abdomen-hud-locked .track12-hud-dot{
  transition-property:opacity,transform !important;
}

/* Lock non-CORE HUD geometry through CSS variables so older approved delayed HUD-placement timers
   cannot briefly move thigh/arm HUD tags back to stale/opposite-side positions. */
.asset-scan-stage.gn-thigh-arm-hud-locked .track12-anchored-hud-tag{
  left:var(--gn-ta-hud-left) !important;
  top:var(--gn-ta-hud-top) !important;
}
.asset-scan-stage.gn-thigh-arm-hud-locked .track12-hud-line{
  left:var(--gn-ta-line-left) !important;
  top:var(--gn-ta-line-top) !important;
  width:var(--gn-ta-line-width) !important;
  transform:rotate(var(--gn-ta-line-angle)) !important;
}
.asset-scan-stage.gn-thigh-arm-hud-locked .track12-hud-dot{
  left:var(--gn-ta-dot-left) !important;
  top:var(--gn-ta-dot-top) !important;
}
/* Preserve v10/v13 visual language; this only stabilizes placement. */
.asset-scan-stage.gn-thigh-arm-hud-locked .track12-anchored-hud-tag,
.asset-scan-stage.gn-thigh-arm-hud-locked .track12-hud-line,
.asset-scan-stage.gn-thigh-arm-hud-locked .track12-hud-dot{
  transition-property:opacity,transform !important;
}
.asset-scan-stage.gn-thigh-arm-hud-locked .track12-hud-line.arm-clearance{
  opacity:.72 !important;
  background:linear-gradient(90deg,rgba(0,232,255,.74),rgba(0,232,255,.28),rgba(255,0,204,.14),transparent) !important;
  box-shadow:0 0 5px rgba(0,232,255,.32) !important;
}
.asset-scan-stage.gn-thigh-arm-hud-locked .track12-hud-dot.arm-clearance{
  opacity:.72 !important;
  background:rgba(0,232,255,.58) !important;
}

.asset-scan-stage.gn-thigh-hud-force-same-side .track12-anchored-hud-tag{
  left:var(--gn-thigh-force-hud-left) !important;
  top:var(--gn-thigh-force-hud-top) !important;
}
.asset-scan-stage.gn-thigh-hud-force-same-side .track12-hud-line{
  left:var(--gn-thigh-force-line-left) !important;
  top:var(--gn-thigh-force-line-top) !important;
  width:var(--gn-thigh-force-line-width) !important;
  transform:rotate(var(--gn-thigh-force-line-angle)) !important;
}
.asset-scan-stage.gn-thigh-hud-force-same-side .track12-hud-dot{
  left:var(--gn-thigh-force-dot-left) !important;
  top:var(--gn-thigh-force-dot-top) !important;
}

/*
GRID//NODE legacy CSS — extracted from html/partials/10-overlays-confirm.html (2 inline <style> blocks, in original document order).
Block order is load-bearing for the cascade: do not reorder, split, or merge these blocks.
HTML diet, 2026-10-13.
*/

.log-entry.archived-record .log-actions.archive-actions{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:7px !important;
    min-width:118px !important;
    width:118px !important;
    max-width:118px !important;
    margin-left:10px !important;
  }

  .log-entry.archived-record .log-action-btn.archived-action-btn,
  .log-entry.archived-record .log-action-btn.restore.archived-action-btn,
  .log-entry.archived-record .log-action-btn.del.archived-action-btn{
    width:118px !important;
    min-width:118px !important;
    max-width:118px !important;
    height:42px !important;
    min-height:42px !important;
    border-radius:3px !important;
    padding:7px 8px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:center !important;
    gap:3px !important;
    text-align:left !important;
    line-height:1 !important;
    white-space:normal !important;
    overflow:hidden !important;
    transform:none !important;
    animation:none !important;
    filter:none !important;
    clip-path:polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,5px 100%,0 calc(100% - 5px)) !important;
  }

  .log-entry.archived-record .log-action-btn.archived-action-btn::before{
    content:'' !important;
    position:absolute !important;
    inset:0 !important;
    pointer-events:none !important;
    background:linear-gradient(90deg,rgba(255,255,255,.035),transparent 38%,rgba(255,255,255,.025)) !important;
    opacity:.55 !important;
  }

  .log-entry.archived-record .log-action-btn.archived-action-btn .archive-action-main{
    font-family:var(--font-d) !important;
    font-size:.47rem !important;
    letter-spacing:1.15px !important;
    line-height:1 !important;
    font-weight:700 !important;
    white-space:nowrap !important;
    text-align:left !important;
  }

  .log-entry.archived-record .log-action-btn.archived-action-btn .archive-action-sub{
    font-family:var(--font-m) !important;
    font-size:.36rem !important;
    letter-spacing:.65px !important;
    line-height:1 !important;
    opacity:.86 !important;
    white-space:nowrap !important;
    text-align:left !important;
  }

  .log-entry.archived-record .log-action-btn.restore.archived-action-btn{
    color:#7ddde7 !important;
    border:1px solid rgba(65,196,210,.38) !important;
    border-left:2px solid rgba(94,221,231,.58) !important;
    background:
      linear-gradient(135deg,rgba(0,212,255,.09),rgba(17,63,70,.16) 52%,rgba(2,12,16,.64)),
      rgba(4,18,22,.72) !important;
    box-shadow:
      inset 0 0 0 1px rgba(0,212,255,.045),
      0 0 7px rgba(0,212,255,.035) !important;
  }

  .log-entry.archived-record .log-action-btn.restore.archived-action-btn .archive-action-main{
    color:#8eeaf1 !important;
    text-shadow:0 0 6px rgba(0,212,255,.16) !important;
  }

  .log-entry.archived-record .log-action-btn.restore.archived-action-btn .archive-action-sub{
    color:#95bfc6 !important;
  }

  .log-entry.archived-record .log-action-btn.del.archived-action-btn{
    color:#c66a87 !important;
    border:1px solid rgba(173,51,91,.40) !important;
    border-left:2px solid rgba(192,58,100,.62) !important;
    background:
      linear-gradient(135deg,rgba(158,32,78,.11),rgba(62,10,29,.22) 54%,rgba(18,4,10,.68)),
      rgba(20,5,12,.74) !important;
    box-shadow:
      inset 0 0 0 1px rgba(255,51,119,.04),
      0 0 7px rgba(255,51,119,.035) !important;
  }

  .log-entry.archived-record .log-action-btn.del.archived-action-btn .archive-action-main{
    color:#d87696 !important;
    text-shadow:0 0 6px rgba(255,51,119,.13) !important;
  }

  .log-entry.archived-record .log-action-btn.del.archived-action-btn .archive-action-sub{
    color:#b98999 !important;
  }

  .log-entry.archived-record .log-action-btn.archived-action-btn:hover,
  .log-entry.archived-record .log-action-btn.archived-action-btn:active{
    transform:none !important;
    filter:none !important;
  }

  .log-entry.archived-record .log-action-btn.restore.archived-action-btn:hover,
  .log-entry.archived-record .log-action-btn.restore.archived-action-btn:active{
    border-color:rgba(88,226,238,.52) !important;
    background:
      linear-gradient(135deg,rgba(0,212,255,.12),rgba(17,63,70,.20) 52%,rgba(2,12,16,.68)),
      rgba(4,18,22,.76) !important;
    box-shadow:inset 0 0 0 1px rgba(0,212,255,.065),0 0 9px rgba(0,212,255,.06) !important;
  }

  .log-entry.archived-record .log-action-btn.del.archived-action-btn:hover,
  .log-entry.archived-record .log-action-btn.del.archived-action-btn:active{
    border-color:rgba(210,68,112,.54) !important;
    background:
      linear-gradient(135deg,rgba(158,32,78,.14),rgba(62,10,29,.25) 54%,rgba(18,4,10,.72)),
      rgba(20,5,12,.78) !important;
    box-shadow:inset 0 0 0 1px rgba(255,51,119,.055),0 0 9px rgba(255,51,119,.055) !important;
  }

  @media(max-width:380px){
    .log-entry.archived-record .log-actions.archive-actions{
      width:112px !important;
      min-width:112px !important;
      max-width:112px !important;
      gap:6px !important;
      margin-left:8px !important;
    }
    .log-entry.archived-record .log-action-btn.archived-action-btn,
    .log-entry.archived-record .log-action-btn.restore.archived-action-btn,
    .log-entry.archived-record .log-action-btn.del.archived-action-btn{
      width:112px !important;
      min-width:112px !important;
      max-width:112px !important;
      height:40px !important;
      min-height:40px !important;
      padding:6px 7px !important;
      border-radius:3px !important;
    }
    .log-entry.archived-record .log-action-btn.archived-action-btn .archive-action-main{
      font-size:.43rem !important;
      letter-spacing:.95px !important;
    }
    .log-entry.archived-record .log-action-btn.archived-action-btn .archive-action-sub{
      font-size:.33rem !important;
      letter-spacing:.52px !important;
    }
  }

.oskar-dedication{
  margin-top:14px;
  font-family:var(--font-m);
  font-size:.56rem;
  letter-spacing:1.8px;
  color:rgba(169,191,204,.58);
  text-align:center;
  text-transform:none;
}
.oskar-dedication::before{
  content:"// ";
  color:rgba(0,212,255,.28);
}
/* Memorial paw: subtle Cyberpunk 2077 acid-green print beside Oskar's name. */
.oskar-name{white-space:nowrap;}
.oskar-name::after{
  content:"";
  display:inline-block;
  width:.66em;
  height:.66em;
  margin-left:.32em;
  vertical-align:-.05em;
  background-color:#a6ff00;
  opacity:.5;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cellipse cx='50' cy='68' rx='24' ry='18'/%3E%3Cellipse cx='24' cy='40' rx='10' ry='13'/%3E%3Cellipse cx='42' cy='26' rx='10' ry='13'/%3E%3Cellipse cx='58' cy='26' rx='10' ry='13'/%3E%3Cellipse cx='76' cy='40' rx='10' ry='13'/%3E%3C/svg%3E") no-repeat center/contain;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cellipse cx='50' cy='68' rx='24' ry='18'/%3E%3Cellipse cx='24' cy='40' rx='10' ry='13'/%3E%3Cellipse cx='42' cy='26' rx='10' ry='13'/%3E%3Cellipse cx='58' cy='26' rx='10' ry='13'/%3E%3Cellipse cx='76' cy='40' rx='10' ry='13'/%3E%3C/svg%3E") no-repeat center/contain;
}
.future-confirm-overlay{
  position:fixed;
  inset:0;
  z-index:540;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(0,0,0,.84);
  backdrop-filter:blur(8px);
}
.future-confirm-overlay.active{display:flex;animation:fadeIn .18s ease}
.future-confirm-panel{
  width:min(372px,100%);
  background:linear-gradient(180deg,rgba(18,18,28,.98),rgba(7,7,12,.99));
  border:1px solid rgba(0,212,255,.22);
  border-top:2px solid rgba(0,212,255,.72);
  border-radius:var(--r);
  box-shadow:0 18px 52px rgba(0,0,0,.64),0 0 28px rgba(0,212,255,.08);
  padding:18px 16px;
  position:relative;
  overflow:hidden;
}
.future-confirm-panel::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,transparent,rgba(0,212,255,.045),transparent);
  pointer-events:none;
}
.future-confirm-title{
  font-family:var(--font-d);
  font-size:.9rem;
  letter-spacing:2px;
  color:var(--cyan);
  margin-bottom:9px;
}
.future-confirm-body{
  font-family:var(--font-b);
  font-size:1rem;
  line-height:1.42;
  color:#b7c8d2;
  margin-bottom:12px;
}
.future-confirm-system{
  font-family:var(--font-m);
  font-size:.56rem;
  letter-spacing:1.8px;
  color:rgba(255,215,0,.76);
  margin-bottom:16px;
}
.future-confirm-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.future-confirm-actions button{
  border-radius:4px;
  padding:12px 10px;
  font-family:var(--font-d);
  font-size:.72rem;
  letter-spacing:2px;
  cursor:pointer;
  text-transform:uppercase;
}
.future-confirm-cancel{
  background:transparent;
  border:1px solid rgba(255,255,255,.14);
  color:#a9bbc7;
}
.future-confirm-cancel:hover,.future-confirm-cancel:active{
  border-color:rgba(0,212,255,.42);
  color:var(--cyan);
  background:rgba(0,212,255,.08);
}
.future-confirm-save{
  background:rgba(255,215,0,.10);
  border:1px solid rgba(255,215,0,.42);
  color:var(--yellow);
  box-shadow:0 0 12px rgba(255,215,0,.06);
}
.future-confirm-save:hover,.future-confirm-save:active{
  background:rgba(255,215,0,.16);
}
/* Collapse SHOTS scanner-to-history gap without moving scanner systems */
#pageLog .shots-scanner-card{
  margin-bottom:12px !important;
}
#pageLog .shots-safety-note{
  margin-bottom:12px !important;
}
#pageLog .shot-history-controls{
  margin-top:8px !important;
}
.protocol-curve-copy .curve-subline{
  display:block;
  margin-top:4px;
  color:#8fa8b5;
}
.phase-low-data-note{
  font-family:var(--font-m);
  font-size:.55rem;
  letter-spacing:1px;
  color:#8fa8b5;
  margin-top:8px;
  line-height:1.45;
}

#pageProfile{
  padding-bottom:calc(132px + var(--safe-bottom)) !important;
}

#pageProfile .vault-card{
  margin-bottom:16px !important;
  overflow:visible !important;
}

#pageProfile .form-group{
  margin-bottom:18px !important;
}

#pageProfile .form-label{
  line-height:1.32 !important;
  margin-bottom:8px !important;
  white-space:normal !important;
}

#pageProfile .cp-select{
  position:relative !important;
  z-index:2;
}

#pageProfile .cp-dropdown{
  position:static !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  width:100% !important;
  max-height:240px !important;
  margin-top:6px !important;
  border-radius:var(--r) !important;
  border-top:1px solid rgba(0,212,255,.38) !important;
  box-shadow:inset 0 0 0 1px rgba(0,212,255,.04), 0 10px 24px rgba(0,0,0,.32) !important;
  background:linear-gradient(180deg,rgba(18,18,28,.98),rgba(7,7,12,.98)) !important;
  overflow-y:auto !important;
}

#pageProfile .cp-dropdown.open{
  display:block !important;
}

#pageProfile .cp-option{
  min-height:42px !important;
  padding:12px 14px !important;
  line-height:1.25 !important;
}

#pageProfile .cp-group-label{
  padding:9px 14px 6px !important;
}

#pageProfile .vault-date-text{
  letter-spacing:1.6px;
  font-family:var(--font-m);
}

#pageProfile .vault-date-text::placeholder{
  color:#6f7f8c;
}

@media(max-width:520px){
  #pageProfile .form-row{
    grid-template-columns:1fr !important;
    gap:0 !important;
  }

  #pageProfile .vault-card{
    padding:15px 14px !important;
  }

  #pageProfile .vault-pref-grid{
    grid-template-columns:1fr !important;
    gap:8px !important;
  }

  #pageProfile .profile-hero{
    align-items:flex-start !important;
  }
}

@media(max-width:380px){
  #pageProfile{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  #pageProfile .vault-card-title{
    letter-spacing:2px !important;
  }

  #pageProfile .form-label{
    font-size:.55rem !important;
    letter-spacing:2.1px !important;
  }
}

/*
GRID//NODE legacy CSS — extracted from html/partials/12-styles-polish-patches.html (15 inline <style> blocks, in original document order).
Block order is load-bearing for the cascade: do not reorder, split, or merge these blocks.
HTML diet, 2026-10-13.
*/

:root{
  --text-mid:#b7c7d3;
  --text-dim:#8195a6;
  --text-soft:#9eb3c1;
}
.stat-lbl,.s6-label,.sec-title,.sec-act,.page-sub,.card-title,.form-label,
.nav-lbl,.log-date,.log-shot-num,.results-card-sub,
.results-copy,.empty,.empty-subline,.phase-support,.protocol-curve-copy,
.results-empty,.results-list-item span,.shot-history-helper,.vault-helper,
.data-transfer-copy,.csv-import-body,.csv-import-summary,.boot-prog-pct{
  color:var(--text-soft) !important;
}
.nav-item:not(.active) .nav-lbl{color:#8a8aa0 !important}
.nav-item:not(.active) .nav-ico{color:#8ea2b0 !important}
.form-input::placeholder,.form-textarea::placeholder{color:#8ea2b0 !important}
.log-notes,.pib-text,.phase-transparency-block p,.phase-transparency-block li{color:#aebdca !important}

.boot-logo-svg{width:min(230px,86vw) !important;max-width:230px;overflow:visible;margin-bottom:10px}

/* ===== GRID//NODE Boot Redesign v2 (Cyberpunk Terminal Stream) ===== */
.boot-b2b-symbol-wrap{ position:relative; }
.boot-b2b-symbol-wrap::after{
  content:'';
  position:absolute;
  left:50%; top:50%;
  width:46%; height:46%;
  border:1.5px solid var(--red);
  border-radius:50%;
  transform:translate(-50%,-50%) scale(0);
  animation:gnBootRing 2.4s ease-out infinite;
  pointer-events:none;
}
@keyframes gnBootRing{
  0%{transform:translate(-50%,-50%) scale(0.4); opacity:0.9;}
  100%{transform:translate(-50%,-50%) scale(2.6); opacity:0;}
}
.boot-b2b-symbol{
  animation:gnSymPulse 1.8s ease-in-out infinite;
}
@keyframes gnSymPulse{
  0%,100%{filter:drop-shadow(0 0 16px rgba(0,229,255,.5));}
  50%{filter:drop-shadow(0 0 28px rgba(0,229,255,.8));}
}
.boot-terminal{
  max-width:342px !important;
  min-height:188px !important;
  border-color:rgba(0,212,255,.22) !important;
  border-top:2px solid rgba(0,212,255,.55) !important;
  background:
    linear-gradient(180deg,rgba(0,212,255,.045),rgba(5,8,13,.62)) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),0 18px 45px rgba(0,0,0,.45),0 0 30px rgba(0,212,255,.055) !important;
  padding:14px !important;
  position:relative;
  overflow:hidden;
  font-family:var(--font-m);
  font-size:.6rem;
  line-height:1.62;
  color:#8fbecb;
  text-align:left;
}
.boot-terminal::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent,rgba(0,212,255,.085),transparent);
  transform:translateX(-100%);
  animation:gnBootScan 2.6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes gnBootScan{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}
.boot-hud-title{
  font-family:var(--font-m);
  font-size:.58rem;
  letter-spacing:2.5px;
  color:#a8dce8;
  margin-bottom:8px;
  text-transform:uppercase;
}
.boot-log-line{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  opacity:0;
  transition:opacity .25s ease;
}
.boot-log-line.show{ opacity:1; }
.boot-log-key{ color:#00E6F0; }
.boot-log-ok{ color:#05FFA1; }
.boot-log-warn{ color:#ffb74d; }
.boot-log-cursor{
  display:inline-block;
  width:6px; height:.85em;
  background:#05FFA1;
  margin-left:2px;
  vertical-align:text-bottom;
  animation:gnCursor 1s steps(2) infinite;
}
@keyframes gnCursor{50%{opacity:0;}}
/* Old module grid kept as fallback in case GN_BOOT_MODULES still references it */
.boot-hud-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.boot-hud-module{
  border:1px solid rgba(0,212,255,.13);
  background:rgba(0,0,0,.22);
  padding:8px 9px;
  border-radius:4px;
  min-height:38px;
  display:none;
}
/* Cyberpunk 2077 yellow segmented progress bar — replaces flat green stripe */
.boot-prog-track{
  height:14px !important;
  border:1px solid rgba(255,182,39,.45) !important;
  background:rgba(255,182,39,.06) !important;
  padding:2px !important;
  display:flex !important;
  gap:3px !important;
  overflow:hidden !important;
  position:relative !important;
}
.boot-prog-fill{
  transition:none !important;
  background:transparent !important;
  box-shadow:none !important;
  height:100% !important;
  width:100% !important;
  display:contents !important;
}
.boot-prog-seg{
  flex:1;
  background:rgba(255,182,39,.08);
  border:1px solid rgba(255,182,39,.22);
  transition:background 90ms linear, box-shadow 90ms linear, border-color 90ms linear;
}
.boot-prog-seg.on{
  background:#ffb627;
  border-color:#ffb627;
  box-shadow:0 0 6px rgba(255,182,39,.75), inset 0 0 3px rgba(255,255,255,.35);
}
.boot-prog-seg.on.lead{
  background:#ffd866;
  box-shadow:0 0 12px rgba(255,182,39,1), 0 0 22px rgba(255,182,39,.5), inset 0 0 5px rgba(255,255,255,.6);
}
.boot-prog-pct{
  font-size:.58rem !important;
  color:#ffb627 !important;
  text-align:center !important;
  letter-spacing:2px !important;
  text-transform:uppercase;
  margin-top:8px !important;
  font-family:var(--font-m) !important;
  text-shadow:0 0 8px rgba(255,182,39,.55);
  font-variant-numeric:tabular-nums;
}

/* CSV zero-valid-record polish */
.csv-import-save[disabled],
.csv-import-save.disabled{
  opacity:.38;
  cursor:not-allowed;
  filter:saturate(.45);
  box-shadow:none !important;
}
.csv-import-blocker{
  display:block;
  margin-top:10px;
  color:#ffd700;
  font-family:var(--font-m);
  font-size:.56rem;
  letter-spacing:1.2px;
  line-height:1.45;
}
.csv-import-warn{
  display:block;
  margin-top:8px;
  color:#ff9aae;
  font-family:var(--font-m);
  font-size:.54rem;
  line-height:1.45;
  letter-spacing:.8px;
}

/* RESULTS verified trend readability */
.results-direction{color:#bdd3de !important}
.results-direction.falling{color:#88f2c2 !important}
.results-direction.rising{color:#ff9aae !important}
.results-direction.stable{color:#a8dce8 !important}
.results-direction.insufficient{color:#9eb3c1 !important}

/* Asset replacement only — approved B2-B geometry preserved. */
.b2b-logo-surface,
.app-wordmark-b2b,
.boot-b2b-stack,
.login-b2b-wordmark{display:flex;align-items:center;justify-content:center}

.gn-b2b-lockup,
.gn-b2b-wordmark,
.gn-b2b-symbol{display:block;width:100%;height:auto;overflow:visible}

.landing-logo.b2b-logo-surface{
  width:min(92vw,520px);
  max-width:100%;
  margin:0 auto;
  animation:none !important;
  text-shadow:none !important;
  line-height:1;
}
.landing-logo .gn-b2b-lockup{
  width:100%;
  max-height:118px;
  filter:drop-shadow(0 0 18px rgba(0,230,240,.24));
}

.app-wordmark-b2b{
  width:clamp(138px,34vw,210px);
  max-width:46vw;
  min-width:128px;
  cursor:pointer;
  user-select:none;
  line-height:1;
  text-shadow:none !important;
  color:inherit;
  overflow:visible;
}
.app-wordmark-b2b .gn-b2b-wordmark{
  width:100%;
  max-height:30px;
  filter:drop-shadow(0 0 10px rgba(0,230,240,.18));
}
.app-wordmark-b2b:active{transform:scale(.985)}

.boot-emblem,.boot-ring-o,.boot-ring-i{display:none !important}
.boot-b2b-stack{
  flex-direction:column;
  gap:10px;
  margin-bottom:24px;
}
.boot-b2b-symbol-wrap{
  width:76px;
  height:76px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(0,230,240,.16);
  background:radial-gradient(circle at 50% 50%,rgba(0,230,240,.08),rgba(0,0,0,.18) 64%,transparent);
  box-shadow:inset 0 0 22px rgba(0,230,240,.045),0 0 22px rgba(0,230,240,.08);
  border-radius:16px;
}
.boot-b2b-symbol-wrap .gn-b2b-symbol{
  width:58px;
  max-height:58px;
  filter:drop-shadow(0 0 12px rgba(0,230,240,.22));
}
.boot-b2b-wordmark-wrap{
  width:min(240px,78vw);
  display:flex;
}
.boot-b2b-wordmark-wrap .gn-b2b-wordmark{
  filter:drop-shadow(0 0 13px rgba(0,230,240,.20));
}
.boot-logo-svg{display:none !important}
.boot-slogan{
  margin:0 !important;
  font-size:.96rem !important;
  letter-spacing:1.6px !important;
  color:#b7c7d3 !important;
}
.boot-terminal.boot-hud-startup{
  max-width:342px !important;
  min-height:112px !important;
  border:1px solid rgba(0,230,240,.20) !important;
  border-top:2px solid rgba(0,230,240,.42) !important;
  background:linear-gradient(135deg,rgba(0,230,240,.06),rgba(255,45,85,.026)),rgba(5,8,13,.70) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),0 14px 36px rgba(0,0,0,.42),0 0 24px rgba(0,230,240,.045) !important;
}
.boot-system-title{
  font-family:var(--font-m);
  color:#a8dce8;
  letter-spacing:2.4px;
  font-size:.58rem;
  text-transform:uppercase;
  margin-bottom:10px;
}
.boot-system-list{display:grid;gap:7px}
.boot-system-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-left:2px solid rgba(0,230,240,.28);
  background:rgba(0,0,0,.18);
  padding:7px 9px;
}
.boot-system-line b{
  font-family:var(--font-d);
  color:#dbeef5;
  font-size:.56rem;
  letter-spacing:1.25px;
}
.boot-system-line span{
  font-family:var(--font-m);
  color:#8ea2b0;
  font-size:.48rem;
  letter-spacing:1px;
  white-space:nowrap;
}
.boot-system-line.active{
  border-left-color:#00E6F0;
  background:rgba(0,230,240,.065);
}
.boot-system-line.active span{color:#8ff2fb}

.login-b2b-wordmark{
  width:min(220px,70vw);
  margin-bottom:10px;
  filter:drop-shadow(0 0 12px rgba(0,230,240,.18));
}

@media(max-width:420px){
  .topbar{gap:8px}
  .app-wordmark-b2b{width:clamp(126px,36vw,166px);max-width:42vw}
  .app-wordmark-b2b .gn-b2b-wordmark{max-height:25px}
  .landing-logo.b2b-logo-surface{width:min(92vw,430px)}
  .boot-b2b-symbol-wrap{width:68px;height:68px;border-radius:14px}
  .boot-b2b-symbol-wrap .gn-b2b-symbol{width:52px;max-height:52px}
  .boot-b2b-wordmark-wrap{width:min(220px,76vw)}
}
@media(max-width:360px){
  .app-wordmark-b2b{width:118px;min-width:112px;max-width:38vw}
  .topbar-actions{gap:6px}
  .topbar-btn{width:44px;height:44px}
  .landing-logo.b2b-logo-surface{width:min(90vw,360px)}
}

:root{
  --text-dim:#708493;
  --text-mid:#b5c6d0;
}

.login-b2b-wordmark{
  width:min(78vw,300px);
  margin:0 auto 10px;
  filter:drop-shadow(0 0 12px rgba(0,230,240,.18));
}
.login-b2b-wordmark svg{width:100%;height:auto;display:block}
#userSelWrap{
  border:1px solid rgba(0,230,240,.12);
  background:linear-gradient(180deg,rgba(0,230,240,.035),rgba(0,0,0,.16));
  border-radius:10px;
  padding:12px;
  box-shadow:inset 0 0 24px rgba(0,230,240,.025);
}
.user-card{
  border-color:rgba(0,230,240,.15);
  background:linear-gradient(135deg,rgba(7,12,18,.92),rgba(5,5,8,.94));
  box-shadow:inset 0 0 18px rgba(0,230,240,.025);
}
.user-card:hover,.user-card:active{
  background:linear-gradient(135deg,rgba(0,230,240,.08),rgba(5,5,8,.95));
  border-color:rgba(0,230,240,.36);
}
.node-emblem-wrap{
  width:52px;height:52px;
  border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 40%,rgba(0,230,240,.10),rgba(0,0,0,.35));
}
.node-emblem-svg{width:100%;height:100%;filter:drop-shadow(0 0 8px rgba(0,230,240,.22))}
.node-emblem-svg.secondary{filter:drop-shadow(0 0 8px rgba(0,230,240,.14))}
.user-sel-title{color:#a8d9e6}

.syringe-visual{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 0%,rgba(0,230,240,.13),transparent 38%),
    linear-gradient(180deg,rgba(10,16,22,.98),rgba(5,5,8,.98));
  border:1px solid rgba(0,230,240,.22);
  border-top:2px solid rgba(0,230,240,.48);
  box-shadow:inset 0 0 34px rgba(0,230,240,.045),0 0 24px rgba(0,0,0,.36);
}
.syringe-visual::before{
  content:"U-100 DRAW VISUALIZER";
  display:block;
  font-family:var(--font-m);
  font-size:.52rem;
  letter-spacing:2.4px;
  color:#9ee9f5;
  margin-bottom:10px;
  text-align:center;
}
.syr-result-big{
  font-size:clamp(2.05rem,10vw,3.15rem);
  color:#9ff6ff;
  text-shadow:0 0 22px rgba(0,230,240,.38);
}
.syr-result-sub{
  font-family:var(--font-d);
  font-size:.82rem;
  letter-spacing:1.4px;
  color:#ffd966;
  text-transform:uppercase;
}
.syr-result-ml{
  color:#a9c5cf;
  margin-bottom:6px;
}
.syr-formula-line{
  font-family:var(--font-m);
  font-size:.58rem;
  line-height:1.45;
  color:#b7cbd4;
  text-align:center;
  letter-spacing:.9px;
  margin:0 auto 18px;
  border:1px solid rgba(0,230,240,.12);
  background:rgba(0,0,0,.23);
  border-radius:var(--r);
  padding:7px 8px;
}
.syringe-body-wrap{height:84px;margin-bottom:8px}
.syr-plunger,.syr-hub{
  background:linear-gradient(180deg,#17222d,#090d12);
  border-color:rgba(0,230,240,.42);
}
.syr-barrel{
  height:50px;
  border:1.5px solid rgba(0,230,240,.48);
  border-left:none;border-right:none;
  background:
    linear-gradient(180deg,rgba(255,255,255,.035),transparent),
    rgba(0,0,0,.54);
}
.syr-fluid{
  background:linear-gradient(90deg,rgba(0,230,240,.18),rgba(0,230,240,.42),rgba(255,45,85,.20));
  border-right:2px solid #00E6F0;
  transition:width .38s ease;
}
.syr-target-line{
  width:2px;
  background:#ffd966;
  box-shadow:0 0 10px rgba(255,217,102,.78),0 0 18px rgba(255,217,102,.22);
  transition:left .38s ease;
}
.syr-target-line::before{
  border-top-color:#ffd966;
}
.syr-mark{border-right-color:rgba(255,255,255,.12)}
.syr-mark.major{border-right-color:rgba(0,230,240,.35)}
.syr-scale-labels{padding:0 66px 0 44px;gap:0}
.syr-scale-lbl{
  color:#9db5c0;
  font-size:.48rem;
  letter-spacing:0;
}
.syr-scale-lbl.major{
  color:#cceff6;
  font-size:.52rem;
}
.syr-needle{
  background:linear-gradient(90deg,rgba(0,230,240,.42),rgba(255,217,102,.70));
}
.syr-overflow .syr-result-big,
.syr-overflow .syr-result-sub{color:#FF5B5B;text-shadow:0 0 18px rgba(255,59,59,.28)}
.syr-overflow .syr-target-line{display:none!important}
.cheat-context{
  font-family:var(--font-m);
  font-size:.56rem;
  line-height:1.35;
  letter-spacing:1px;
  color:#a7c6d0;
  border:1px solid rgba(0,230,240,.12);
  border-left:2px solid rgba(0,230,240,.42);
  background:rgba(0,230,240,.04);
  padding:8px 9px;
  border-radius:var(--r);
  margin-bottom:8px;
}

.arsenal-actions{
  display:flex;
  gap:6px;
  justify-content:flex-end;
  margin-top:10px;
}
.arsenal-command{
  border:1px solid rgba(0,230,240,.24);
  background:rgba(0,230,240,.055);
  color:#9fefff;
  font-family:var(--font-d);
  font-size:.54rem;
  letter-spacing:1.4px;
  padding:7px 9px;
  border-radius:4px;
  cursor:pointer;
}
.arsenal-command.remove{
  border-color:rgba(255,59,59,.28);
  background:rgba(255,59,59,.055);
  color:#FF7B7B;
}
.arsenal-command:hover,.arsenal-command:active{filter:brightness(1.16)}
.arsenal-total-note{
  font-family:var(--font-m);
  font-size:.48rem;
  letter-spacing:.75px;
  color:#99b5bf;
  margin-top:2px;
}
@media(max-width:380px){
  .syr-scale-labels{padding:0 56px 0 38px}
  .syr-scale-lbl{font-size:.42rem}
  .arsenal-row{gap:8px}
  .arsenal-actions{justify-content:flex-start;flex-wrap:wrap}
}

.data-transfer-btn.disabled,.data-transfer-btn:disabled{opacity:.45;filter:saturate(.55);cursor:not-allowed;box-shadow:none!important}

.syringe-visual.gn-syr-final{
  padding:18px 14px 16px !important;
  background:
    linear-gradient(180deg,rgba(8,12,18,.92),rgba(3,5,8,.96)),
    radial-gradient(circle at 50% 0%,rgba(0,212,255,.10),transparent 42%) !important;
  border-color:rgba(0,212,255,.22) !important;
}
.syringe-visual.gn-syr-final .syringe-body-wrap{
  display:flex !important;
  flex-direction:row-reverse !important; /* visual order: needle / hub / barrel / plunger */
  align-items:center !important;
  height:58px !important;
  margin:12px 0 5px !important;
  gap:0 !important;
}
.syringe-visual.gn-syr-final .syr-barrel{
  height:25px !important;
  min-width:0 !important;
  margin:0 4px !important;
  border:1px solid rgba(0,212,255,.46) !important;
  border-radius:2px !important;
  background:
    linear-gradient(180deg,rgba(0,212,255,.055),rgba(0,0,0,.46)),
    rgba(0,0,0,.46) !important;
  box-shadow:inset 0 0 12px rgba(0,212,255,.055),0 0 12px rgba(0,212,255,.045) !important;
  overflow:hidden !important;
}
.syringe-visual.gn-syr-final .syr-fluid{
  left:0 !important;
  top:3px !important;
  bottom:3px !important;
  height:auto !important;
  width:var(--gn-syr-pct,0%) !important;
  background:linear-gradient(90deg,rgba(20,255,166,.18),rgba(31,255,174,.48),rgba(116,255,198,.62)) !important;
  border-right:1px solid rgba(156,255,213,.86) !important;
  box-shadow:1px 0 8px rgba(31,255,174,.22),inset 0 0 8px rgba(31,255,174,.10) !important;
  z-index:1 !important;
  transition:width var(--dur-2) var(--ease-out) !important;
}
.syringe-visual.gn-syr-final .syr-stopper{
  position:absolute;
  top:-6px;
  bottom:-6px;
  left:var(--gn-syr-pct,0%);
  width:4px;
  transform:translateX(-2px);
  background:linear-gradient(180deg,#d7f8ff,#7296a2);
  border:1px solid rgba(255,255,255,.34);
  box-shadow:0 0 7px rgba(255,255,255,.18),0 0 8px rgba(31,255,174,.14);
  z-index:4;
  display:none;
  border-radius:1px;
}
.syringe-visual.gn-syr-final .syr-target-line{
  left:var(--gn-syr-pct,0%) !important;
  top:-9px !important;
  bottom:-9px !important;
  width:2px !important;
  transform:translateX(-1px) !important;
  background:#ffd76a !important;
  box-shadow:0 0 8px rgba(255,215,106,.62),0 0 2px rgba(255,255,255,.7) !important;
  z-index:5 !important;
  transition:left var(--dur-2) var(--ease-out) !important;
}
.syringe-visual.gn-syr-final .syr-target-line::before{
  top:-5px !important;
  border-left-width:4px !important;
  border-right-width:4px !important;
  border-top-color:#ffd76a !important;
}
.syringe-visual.gn-syr-final .syr-marks{
  display:grid !important;
  grid-template-columns:repeat(100,1fr) !important;
  z-index:3 !important;
}
.syringe-visual.gn-syr-final .syr-mark{
  min-width:0 !important;
  border-right:1px solid rgba(170,226,238,.055) !important;
  padding:0 !important;
}
.syringe-visual.gn-syr-final .syr-mark.five{border-right-color:rgba(170,226,238,.13) !important;}
.syringe-visual.gn-syr-final .syr-mark.major{border-right-color:rgba(0,212,255,.34) !important;}
.syringe-visual.gn-syr-final .syr-mark.zero{border-left:1px solid rgba(0,212,255,.34) !important;}
.syringe-visual.gn-syr-final .syr-scale-labels{
  display:grid !important;
  grid-template-columns:repeat(11,1fr) !important;
  padding:0 54px 0 50px !important;
  margin-top:6px !important;
  column-gap:0 !important;
}
.syringe-visual.gn-syr-final .syr-scale-lbl{
  font-size:.45rem !important;
  color:#9cb7c4 !important;
  text-align:center !important;
  flex:none !important;
}
.syringe-visual.gn-syr-final .syr-scale-lbl.major{color:#b6f3ff !important;}
.syringe-visual.gn-syr-final .syr-plunger{
  width:18px !important;
  height:42px !important;
  border-radius:0 3px 3px 0 !important;
  margin-left:2px !important;
  background:linear-gradient(180deg,#18232c,#0c1118) !important;
  border:1px solid rgba(0,212,255,.36) !important;
}
.syringe-visual.gn-syr-final .syr-grip-line{
  width:8px !important;
  height:1px !important;
  background:rgba(160,239,255,.34) !important;
}
.syringe-visual.gn-syr-final .syr-hub{
  width:13px !important;
  height:18px !important;
  border:1px solid rgba(0,212,255,.34) !important;
  border-right:none !important;
  border-left:1px solid rgba(0,212,255,.34) !important;
  clip-path:polygon(0 50%,100% 22%,100% 78%) !important;
  background:linear-gradient(180deg,#15222c,#0b1018) !important;
}
.syringe-visual.gn-syr-final .syr-needle{
  width:34px !important;
  height:1.5px !important;
  background:linear-gradient(90deg,rgba(215,250,255,.86),rgba(0,212,255,.44)) !important;
  box-shadow:0 0 5px rgba(0,212,255,.22) !important;
  clip-path:polygon(0 50%,100% 0,100% 100%) !important;
}
.syringe-visual.gn-syr-final.syr-overflow .syr-fluid{
  width:100% !important;
  background:linear-gradient(90deg,rgba(255,59,59,.10),rgba(255,51,119,.24)) !important;
  border-right-color:rgba(255,82,122,.8) !important;
  box-shadow:inset 0 0 10px rgba(255,51,119,.08) !important;
}
.syringe-visual.gn-syr-final.syr-overflow .syr-barrel{
  border-color:rgba(255,51,119,.42) !important;
}
.syringe-visual.gn-syr-final.syr-overflow .syr-stopper,
.syringe-visual.gn-syr-final.syr-overflow .syr-target-line{
  display:none !important;
}
.syringe-visual.gn-syr-final .syr-result-big{font-size:1.85rem !important;}
.syringe-visual.gn-syr-final .syr-result-sub{font-size:.88rem !important;color:#b7cbd4 !important;}
.syringe-visual.gn-syr-final .syr-result-ml{color:#9fb4c1 !important;}

/* VAULT Controls Completion v2 */
.vault-edit-controls{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin:12px 0 14px;
}
.vault-edit-actions{
  display:none;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
#pageProfile.vault-editing .vault-edit-actions{display:grid;}
#pageProfile.vault-editing #vaultEditBtn{display:none;}
.vault-control-btn{
  border:1px solid rgba(0,212,255,.32);
  background:rgba(0,212,255,.065);
  color:#9fefff;
  border-radius:var(--r);
  padding:11px 10px;
  font-family:var(--font-d);
  font-size:.68rem;
  letter-spacing:2px;
  text-transform:uppercase;
}
.vault-control-btn.cancel{
  border-color:rgba(255,215,0,.28);
  color:#ffd780;
  background:rgba(255,215,0,.06);
}
.vault-control-btn.save{
  border-color:rgba(35,255,174,.34);
  color:#96ffd6;
  background:rgba(35,255,174,.06);
}
.vault-status-line,.vault-date-error{
  font-family:var(--font-m);
  font-size:.56rem;
  letter-spacing:1.3px;
  line-height:1.35;
  margin:8px 0 0;
}
.vault-status-line{color:#96ffd6;}
.vault-date-error{color:#FF5B5B;display:none;}
#pageProfile.vault-readonly .vault-card input,
#pageProfile.vault-readonly .vault-card textarea{
  opacity:.76;
  pointer-events:none;
}
#pageProfile.vault-readonly .vault-card .cp-select,
#pageProfile.vault-readonly .vault-card .vault-toggle{
  opacity:.76;
  pointer-events:none;
}
#pageProfile.vault-readonly .vault-card input{
  background:rgba(0,0,0,.20);
  border-color:rgba(255,255,255,.07);
}
#pageProfile.vault-editing .vault-card input,
#pageProfile.vault-editing .vault-card textarea,
#pageProfile.vault-editing .vault-card .cp-select,
#pageProfile.vault-editing .vault-card .vault-toggle{
  opacity:1;
  pointer-events:auto;
}

.syringe-visual.gn-syr-final.gn-syr-instrument{
  padding:16px 12px 15px !important;
  border-color:rgba(0,212,255,.24) !important;
  background:
    linear-gradient(180deg,rgba(6,9,14,.96),rgba(2,4,7,.98)),
    radial-gradient(circle at 50% 0%,rgba(0,212,255,.075),transparent 44%) !important;
}

/* Less illustration. More instrument panel. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syringe-body-wrap{
  height:54px !important;
  margin:10px 0 3px !important;
  align-items:center !important;
  flex-direction:row-reverse !important; /* needle-left, plunger-right */
}

/* Measurement lane is the dominant object. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-barrel{
  height:31px !important;
  margin:0 4px !important;
  border:1px solid rgba(136,232,255,.58) !important;
  border-radius:2px !important;
  background:
    linear-gradient(180deg,rgba(0,212,255,.07),rgba(0,0,0,.52) 58%,rgba(0,212,255,.045)),
    rgba(0,0,0,.50) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 -1px 0 rgba(0,212,255,.16),
    0 0 9px rgba(0,212,255,.055) !important;
  overflow:hidden !important;
}

/* Cool green liquid is clearly distinct from cyan chrome. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-fluid{
  top:6px !important;
  bottom:6px !important;
  height:auto !important;
  width:var(--gn-syr-pct,0%) !important;
  background:
    linear-gradient(90deg,rgba(20,255,166,.22),rgba(39,255,178,.66),rgba(121,255,202,.76)) !important;
  border-right:2px solid rgba(145,255,211,.95) !important;
  box-shadow:
    1px 0 8px rgba(39,255,178,.28),
    inset 0 0 8px rgba(39,255,178,.12) !important;
  transition:width var(--dur-2) linear !important;
}

/* Exact draw edge/stopper, same shared source as fluid and target. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-stopper{
  left:var(--gn-syr-pct,0%) !important;
  top:-7px !important;
  bottom:-7px !important;
  width:3px !important;
  transform:translateX(-1.5px) !important;
  background:linear-gradient(180deg,#f4fbff,#7e9aa6) !important;
  border:1px solid rgba(255,255,255,.42) !important;
  box-shadow:
    0 0 7px rgba(255,255,255,.16),
    0 0 8px rgba(39,255,178,.18) !important;
  display:block;
  z-index:4 !important;
}

/* Amber target line shares same source and includes a small value tag. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-target-line{
  left:var(--gn-syr-pct,0%) !important;
  top:-11px !important;
  bottom:-11px !important;
  width:2px !important;
  transform:translateX(-1px) !important;
  background:#ffd76a !important;
  box-shadow:0 0 8px rgba(255,215,106,.68),0 0 2px rgba(255,255,255,.72) !important;
  transition:left var(--dur-2) linear !important;
  z-index:6 !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-target-line::before{
  top:-5px !important;
  border-left-width:4px !important;
  border-right-width:4px !important;
  border-top-color:#ffd76a !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-target-line::after{
  content:attr(data-unit);
  position:absolute;
  top:-25px;
  left:50%;
  transform:translateX(-50%);
  min-width:22px;
  padding:2px 4px;
  border:1px solid rgba(255,215,106,.45);
  background:rgba(21,16,6,.94);
  color:#ffd76a;
  font-family:var(--font-m);
  font-size:.52rem;
  letter-spacing:.5px;
  line-height:1;
  text-align:center;
  border-radius:2px;
  box-shadow:0 0 7px rgba(255,215,106,.10);
}

/* Major ticks are readable; minor ticks stay quiet. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-marks{
  display:grid !important;
  grid-template-columns:repeat(100,1fr) !important;
  z-index:3 !important;
  pointer-events:none !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-mark{
  min-width:0 !important;
  border-right:1px solid rgba(170,226,238,.045) !important;
  padding:0 !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-mark.five{
  border-right-color:rgba(170,226,238,.16) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-mark.major{
  border-right:2px solid rgba(178,244,255,.52) !important;
  box-shadow:1px 0 0 rgba(0,0,0,.28) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-mark.zero{
  border-left:2px solid rgba(178,244,255,.52) !important;
}

/* Label lane aligns to barrel, not full syringe assembly. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-labels{
  display:grid !important;
  grid-template-columns:repeat(11,1fr) !important;
  padding:0 23px 0 52px !important; /* left: needle+hub; right: compact plunger */
  margin-top:8px !important;
  column-gap:0 !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-lbl{
  font-size:.58rem !important;
  color:#b1c8d2 !important;
  text-align:center !important;
  flex:none !important;
  font-weight:700 !important;
  text-shadow:0 0 4px rgba(0,212,255,.12) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-lbl.major,
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-lbl:nth-child(6){
  color:#d2f8ff !important;
}

/* Slim insulin/peptide silhouette. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-plunger{
  width:16px !important;
  height:37px !important;
  margin-left:2px !important;
  border-radius:0 3px 3px 0 !important;
  background:linear-gradient(180deg,#17242d,#090e14) !important;
  border:1px solid rgba(136,232,255,.38) !important;
  opacity:.86 !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-grip-lines{gap:4px !important;}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-grip-line{
  width:7px !important;
  height:1px !important;
  background:rgba(178,244,255,.38) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-hub{
  width:12px !important;
  height:17px !important;
  border:1px solid rgba(136,232,255,.36) !important;
  border-right:none !important;
  clip-path:polygon(0 50%,100% 24%,100% 76%) !important;
  background:linear-gradient(180deg,#14222b,#070c12) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-needle{
  width:34px !important;
  height:1px !important;
  background:linear-gradient(90deg,rgba(220,250,255,.88),rgba(0,212,255,.36)) !important;
  box-shadow:0 0 4px rgba(0,212,255,.18) !important;
  clip-path:polygon(0 50%,100% 0,100% 100%) !important;
}

/* Keep result readable but make measurement lane the hero. */
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-result-big{
  font-size:1.68rem !important;
  margin-bottom:2px !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-result-sub{
  font-size:.84rem !important;
  color:#c0d3dc !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument .syr-result-ml{
  color:#a9bdc8 !important;
  margin-bottom:12px !important;
}

/* Overflow remains intentional and does not show a normal target. */
.syringe-visual.gn-syr-final.gn-syr-instrument.syr-overflow .syr-fluid{
  width:100% !important;
  background:linear-gradient(90deg,rgba(255,59,59,.10),rgba(255,51,119,.26)) !important;
  border-right-color:rgba(255,82,122,.82) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument.syr-overflow .syr-barrel{
  border-color:rgba(255,51,119,.46) !important;
}
.syringe-visual.gn-syr-final.gn-syr-instrument.syr-overflow .syr-stopper,
.syringe-visual.gn-syr-final.gn-syr-instrument.syr-overflow .syr-target-line{
  display:none !important;
}

@media(max-width:380px){
  .syringe-visual.gn-syr-final.gn-syr-instrument{padding-left:10px !important;padding-right:10px !important;}
  .syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-labels{padding-left:50px !important;padding-right:22px !important;}
  .syringe-visual.gn-syr-final.gn-syr-instrument .syr-scale-lbl{font-size:.53rem !important;}
  .syringe-visual.gn-syr-final.gn-syr-instrument .syr-target-line::after{font-size:.48rem;top:-23px;}
}

#pageProfile .vault-card-title{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
#pageProfile .vault-info-btn{
  width:22px;
  height:22px;
  border:1px solid rgba(0,212,255,.38);
  border-radius:999px;
  background:rgba(0,212,255,.075);
  color:#9fefff;
  font-family:var(--font-d);
  font-size:.76rem;
  line-height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  box-shadow:0 0 9px rgba(0,212,255,.08);
  vertical-align:middle;
}
#pageProfile .form-label .vault-info-btn{
  width:19px;
  height:19px;
  line-height:17px;
  font-size:.68rem;
  margin-left:6px;
  transform:translateY(-1px);
}
#pageProfile .vault-info-btn.active{
  border-color:rgba(35,255,174,.52);
  color:#b8ffe6;
  background:rgba(35,255,174,.09);
}
#pageProfile .vault-context-helper{
  margin:8px 0 14px;
  padding:10px 11px;
  border:1px solid rgba(0,212,255,.16);
  border-left:2px solid rgba(0,212,255,.55);
  background:linear-gradient(180deg,rgba(0,212,255,.055),rgba(0,0,0,.20));
  color:#bdd2dc;
  font-family:var(--font-m);
  font-size:.68rem;
  letter-spacing:.55px;
  line-height:1.5;
  border-radius:10px;
}
#pageProfile .vault-inline-tip{
  margin:8px 0 4px;
  padding:10px 11px;
  border:1px solid rgba(0,212,255,.28);
  border-left:2px solid rgba(35,255,174,.46);
  background:
    linear-gradient(180deg,rgba(7,14,20,.98),rgba(4,7,12,.98)),
    radial-gradient(circle at 15% 0%,rgba(0,212,255,.10),transparent 54%);
  color:#c8e7ef;
  font-family:var(--font-m);
  font-size:.68rem;
  letter-spacing:.45px;
  line-height:1.45;
  border-radius:10px;
  box-shadow:0 0 18px rgba(0,212,255,.08);
}
#pageProfile .vault-inline-tip::before{
  content:'VAULT_EXPLAIN //';
  display:block;
  margin-bottom:5px;
  color:#7defff;
  font-family:var(--font-d);
  font-size:.55rem;
  letter-spacing:1.7px;
}
#pageProfile .vault-preset-select{
  width:100%;
  min-height:44px;
  margin-bottom:8px;
  border:1px solid rgba(0,212,255,.26);
  border-radius:var(--r);
  background:
    linear-gradient(180deg,rgba(0,212,255,.075),rgba(0,0,0,.30)),
    rgba(0,0,0,.28);
  color:#e7fbff;
  font-family:var(--font-m);
  font-size:.78rem;
  letter-spacing:.55px;
  padding:10px 12px;
  outline:none;
}
#pageProfile .vault-preset-select:focus{
  border-color:rgba(35,255,174,.50);
  box-shadow:0 0 0 2px rgba(35,255,174,.08),0 0 18px rgba(0,212,255,.08);
}
#pageProfile .vault-preset-select option{
  background:#071017;
  color:#e7fbff;
}
#pageProfile .vault-custom-input{
  display:none;
}
#pageProfile .vault-custom-active .vault-custom-input{
  display:block;
}
#pageProfile .vault-presets-active #cpMed{
  display:none !important;
}
#pageProfile .vault-presets-active .vault-field-note{
  display:block;
}
#pageProfile .vault-field-note{
  display:none;
  margin:-2px 0 8px;
  color:#95aeb9;
  font-family:var(--font-m);
  font-size:.60rem;
  letter-spacing:.65px;
  line-height:1.35;
}
#pageProfile .vault-bottom-actions{
  display:none;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:16px 0 92px;
  padding:12px;
  border:1px solid rgba(0,212,255,.16);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(0,212,255,.055),rgba(0,0,0,.30));
}
#pageProfile.vault-editing .vault-bottom-actions{
  display:grid;
}
#pageProfile .vault-control-btn{
  min-height:44px;
}
#pageProfile .vault-date-error{
  color:#FF5B5B !important;
}
#pageProfile.vault-readonly input,
#pageProfile.vault-readonly .vault-preset-select{
  color:#d7eef5 !important;
  -webkit-text-fill-color:#d7eef5 !important;
}
#pageProfile.vault-readonly input::placeholder{
  color:#738894 !important;
}
#pageProfile.vault-readonly .vault-preset-select,
#pageProfile.vault-readonly .form-input{
  opacity:1 !important;
  background:rgba(0,0,0,.24) !important;
  border-color:rgba(0,212,255,.14) !important;
}
#pageProfile .vault-copy,
#pageProfile .vault-note,
#pageProfile .vault-system-line{
  line-height:1.48;
}
#pageProfile .vault-note{
  font-size:.66rem !important;
  letter-spacing:.72px !important;
  color:#a9bdc8 !important;
}
#pageProfile .vault-copy{
  font-size:.70rem !important;
  letter-spacing:.56px !important;
  color:#bdd0d9 !important;
}
#pageProfile .form-label{
  letter-spacing:2px;
}
@media(max-width:430px){
  #pageProfile .vault-context-helper,
  #pageProfile .vault-inline-tip{
    font-size:.70rem;
    line-height:1.5;
  }
  #pageProfile .vault-preset-select{
    font-size:.80rem;
    letter-spacing:.35px;
  }
  #pageProfile .form-label{
    letter-spacing:1.6px !important;
    line-height:1.25;
  }
}

#pageProfile .vault-preset-select.gn-native-select-hidden{
  position:absolute !important;
  left:-9999px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
}

#pageProfile .gn-vault-hud-select{
  position:relative;
  width:100%;
  margin-bottom:8px;
  z-index:12;
}

#pageProfile .gn-vault-hud-select-trigger{
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 12px;
  border:1px solid rgba(0,212,255,.30);
  border-radius:12px;
  background:
    linear-gradient(180deg,rgba(0,212,255,.075),rgba(0,0,0,.34)),
    rgba(3,8,13,.94);
  color:#e7fbff;
  font-family:var(--font-m);
  font-size:.80rem;
  letter-spacing:.45px;
  text-align:left;
  box-shadow:
    inset 0 0 14px rgba(0,212,255,.045),
    0 0 14px rgba(0,212,255,.055);
  outline:none;
  -webkit-tap-highlight-color:transparent;
}

#pageProfile .gn-vault-hud-select-trigger:focus{
  border-color:rgba(35,255,174,.54);
  box-shadow:
    0 0 0 2px rgba(35,255,174,.08),
    0 0 18px rgba(0,212,255,.11);
}

#pageProfile .gn-vault-hud-select-label{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

#pageProfile .gn-vault-hud-select-label.placeholder{
  color:#86a2ad;
}

#pageProfile .gn-vault-hud-select-arrow{
  color:#7defff;
  font-family:var(--font-d);
  font-size:.64rem;
  letter-spacing:0;
  transition:transform .16s ease;
  flex:0 0 auto;
}

#pageProfile .gn-vault-hud-select.open .gn-vault-hud-select-arrow{
  transform:rotate(180deg);
}

#pageProfile .gn-vault-hud-options{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 6px);
  display:none;
  max-height:min(56vh,292px);
  overflow:auto;
  border:1px solid rgba(0,212,255,.34);
  border-radius:14px;
  background:
    linear-gradient(180deg,rgba(7,14,20,.98),rgba(3,6,10,.99)),
    radial-gradient(circle at 18% 0%,rgba(0,212,255,.13),transparent 52%);
  box-shadow:
    0 18px 38px rgba(0,0,0,.62),
    0 0 22px rgba(0,212,255,.12),
    inset 0 0 18px rgba(0,212,255,.045);
  padding:6px;
  z-index:999;
}

#pageProfile .gn-vault-hud-select.open .gn-vault-hud-options{
  display:block;
}

#pageProfile .gn-vault-hud-option{
  width:100%;
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 10px;
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  color:#d8f4fb;
  font-family:var(--font-m);
  font-size:.78rem;
  letter-spacing:.40px;
  text-align:left;
  outline:none;
  -webkit-tap-highlight-color:transparent;
}

#pageProfile .gn-vault-hud-option:hover,
#pageProfile .gn-vault-hud-option:focus{
  border-color:rgba(0,212,255,.22);
  background:rgba(0,212,255,.07);
}

#pageProfile .gn-vault-hud-option.active{
  border-color:rgba(35,255,174,.38);
  background:
    linear-gradient(90deg,rgba(35,255,174,.12),rgba(0,212,255,.06));
  color:#b8ffe6;
}

#pageProfile .gn-vault-hud-option.active::after{
  content:'LOCKED';
  color:#7defff;
  font-family:var(--font-d);
  font-size:.50rem;
  letter-spacing:1.3px;
  opacity:.74;
}

#pageProfile .gn-vault-hud-option.disabled{
  color:#6f8791;
  cursor:default;
  pointer-events:none;
}

#pageProfile .gn-vault-hud-select.disabled{
  opacity:.82;
}

#pageProfile .gn-vault-hud-select.disabled .gn-vault-hud-select-trigger{
  color:#c8e6ee;
  border-color:rgba(0,212,255,.15);
  background:rgba(0,0,0,.25);
  box-shadow:none;
}

#pageProfile .gn-vault-hud-select.disabled .gn-vault-hud-select-arrow{
  opacity:.34;
}

#pageProfile .gn-vault-autofill-hardened{
  caret-color:#96ffd6;
}

#pageProfile .gn-vault-autofill-hardened:-webkit-autofill,
#pageProfile .gn-vault-autofill-hardened:-webkit-autofill:hover,
#pageProfile .gn-vault-autofill-hardened:-webkit-autofill:focus{
  -webkit-text-fill-color:#e7fbff !important;
  transition:background-color 9999s ease-in-out 0s !important;
  box-shadow:0 0 0 1000px #05090d inset !important;
}

@media(max-width:430px){
  #pageProfile .gn-vault-hud-select-trigger{
    min-height:48px;
    font-size:.82rem;
    letter-spacing:.30px;
  }
  #pageProfile .gn-vault-hud-option{
    min-height:44px;
    font-size:.80rem;
    letter-spacing:.26px;
  }
  #pageProfile .gn-vault-hud-options{
    max-height:48vh;
  }
}

#pageProfile .vault-alias-helper{
  margin-top:-4px !important;
  margin-bottom:10px !important;
  color:#9fb8c3 !important;
  font-family:var(--font-m) !important;
  font-size:.68rem !important;
  letter-spacing:.48px !important;
  line-height:1.42 !important;
}

/* Kill prior inline option stacks; the contained portal below owns option display. */
#pageProfile .gn-vault-hud-options,
#pageProfile .gn-vault-hud-select.open .gn-vault-hud-options{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

#pageProfile .gn-vault-hud-select.open .gn-vault-hud-select-trigger{
  border-color:rgba(35,255,174,.60) !important;
  box-shadow:
    0 0 0 2px rgba(35,255,174,.09),
    0 0 18px rgba(0,212,255,.14),
    inset 0 0 16px rgba(35,255,174,.035) !important;
}

#gnVaultHudDropdownPortal{
  position:fixed;
  left:16px;
  right:16px;
  top:72px;
  z-index:2147483000;
  display:none;
  pointer-events:none;
}

#gnVaultHudDropdownPortal.open{
  display:block;
  pointer-events:auto;
}

#gnVaultHudDropdownPortal .gn-vault-portal-panel{
  width:100%;
  max-width:520px;
  margin:0 auto;
  border:1px solid rgba(0,212,255,.58);
  border-radius:16px;
  background:
    linear-gradient(180deg,rgba(5,13,19,.995),rgba(2,5,9,.998)),
    radial-gradient(circle at 16% 0%,rgba(0,212,255,.13),transparent 50%),
    radial-gradient(circle at 84% 8%,rgba(35,255,174,.08),transparent 48%);
  box-shadow:
    0 24px 60px rgba(0,0,0,.82),
    0 0 0 1px rgba(35,255,174,.05),
    0 0 30px rgba(0,212,255,.20),
    inset 0 0 22px rgba(0,212,255,.055);
  overflow:hidden;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

#gnVaultHudDropdownPortal .gn-vault-portal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 12px 9px;
  border-bottom:1px solid rgba(0,212,255,.18);
  background:linear-gradient(90deg,rgba(0,212,255,.08),rgba(35,255,174,.04),transparent);
}

#gnVaultHudDropdownPortal .gn-vault-portal-kicker{
  color:#7defff;
  font-family:var(--font-d);
  font-size:.54rem;
  letter-spacing:1.8px;
  text-transform:uppercase;
  white-space:nowrap;
}

#gnVaultHudDropdownPortal .gn-vault-portal-title{
  color:#e7fbff;
  font-family:var(--font-m);
  font-size:.76rem;
  letter-spacing:.48px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:right;
}

#gnVaultHudDropdownPortal .gn-vault-portal-list{
  max-height:var(--gn-vault-portal-max, 292px);
  overflow:auto;
  padding:7px;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}

#gnVaultHudDropdownPortal .gn-vault-portal-option{
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 11px;
  margin:2px 0;
  border:1px solid rgba(0,212,255,.10);
  border-radius:12px;
  background:rgba(0,0,0,.30);
  color:#dff9ff;
  font-family:var(--font-m);
  font-size:.82rem;
  letter-spacing:.30px;
  line-height:1.25;
  text-align:left;
  outline:none;
  -webkit-tap-highlight-color:transparent;
}

#gnVaultHudDropdownPortal .gn-vault-portal-option:focus,
#gnVaultHudDropdownPortal .gn-vault-portal-option:active{
  border-color:rgba(0,212,255,.38);
  background:rgba(0,212,255,.085);
}

#gnVaultHudDropdownPortal .gn-vault-portal-option.active{
  border-color:rgba(35,255,174,.48);
  background:
    linear-gradient(90deg,rgba(35,255,174,.14),rgba(0,212,255,.07)),
    rgba(0,0,0,.36);
  color:#bffff0;
}

#gnVaultHudDropdownPortal .gn-vault-portal-option-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:normal;
}

#gnVaultHudDropdownPortal .gn-vault-portal-selected{
  flex:0 0 auto;
  color:#86f7ff;
  border:1px solid rgba(0,212,255,.22);
  border-radius:999px;
  padding:3px 6px;
  font-family:var(--font-d);
  font-size:.46rem;
  letter-spacing:1.15px;
  opacity:.86;
}

@media(max-width:430px){
  #gnVaultHudDropdownPortal{
    left:12px !important;
    right:12px !important;
  }
  #gnVaultHudDropdownPortal .gn-vault-portal-panel{
    border-radius:15px;
  }
  #gnVaultHudDropdownPortal .gn-vault-portal-title{
    font-size:.72rem;
    letter-spacing:.30px;
  }
  #gnVaultHudDropdownPortal .gn-vault-portal-option{
    min-height:48px;
    font-size:.82rem;
    letter-spacing:.18px;
  }
}

/* Lock the active scroll surface while a VAULT PICKER is open. */
html.gn-vault-picker-open,
body.gn-vault-picker-open{
  overscroll-behavior:none !important;
}

body.gn-vault-picker-open .scroll-body.gn-vault-scroll-locked{
  overflow:hidden !important;
  overscroll-behavior:none !important;
  -webkit-overflow-scrolling:auto !important;
  touch-action:none !important;
}

/* Do not let the red FAB visually compete with the VAULT picker. */
body.gn-vault-picker-open .fab{
  opacity:0 !important;
  pointer-events:none !important;
  transform:scale(.86) !important;
  filter:blur(1px) !important;
}

/* Keep the contained VAULT picker opaque and above all app chrome. */
body.gn-vault-picker-open #gnVaultHudDropdownPortal{
  z-index:2147483600 !important;
  pointer-events:auto !important;
}

body.gn-vault-picker-open #gnVaultHudDropdownPortal .gn-vault-portal-panel{
  background:
    linear-gradient(180deg,rgba(4,10,15,1),rgba(1,4,8,1)) !important;
  border-color:rgba(0,212,255,.72) !important;
  box-shadow:
    0 26px 70px rgba(0,0,0,.92),
    0 0 0 1px rgba(35,255,174,.10),
    0 0 34px rgba(0,212,255,.22),
    inset 0 0 24px rgba(0,212,255,.07) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  will-change:auto !important;
  transform:translateZ(0);
}

body.gn-vault-picker-open #gnVaultHudDropdownPortal .gn-vault-portal-list{
  overscroll-behavior:contain !important;
  -webkit-overflow-scrolling:touch !important;
  touch-action:pan-y !important;
}

/* Guard against older inline HUD option stacks reappearing during repaint. */
body.gn-vault-picker-open #pageProfile .gn-vault-hud-options,
body.gn-vault-picker-open #pageProfile .gn-vault-hud-select.open .gn-vault-hud-options{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* FIX 1: LOG SHOT native Android time picker cleanup */
#logOv .gn-shot-datetime-group .form-row{
  align-items:flex-start;
}
#logOv .gn-shot-time-input{
  -webkit-appearance:none;
  appearance:none;
  letter-spacing:1.2px;
  font-family:var(--font-m);
  text-transform:uppercase;
}
#logOv .gn-shot-time-helper{
  margin-top:7px;
  font-family:var(--font-m);
  font-size:.55rem;
  line-height:1.42;
  letter-spacing:1.4px;
  color:#8eb4c0;
  border-left:2px solid rgba(0,212,255,.32);
  background:rgba(0,212,255,.045);
  padding:7px 9px;
  border-radius:var(--r);
}

/* FIX 2: lower-right SHOTS/archive FAB overlap reduction without changing FAB action */
#pageLog{
  padding-bottom:calc(142px + var(--safe-bottom)) !important;
}
#pageLog #logList{
  padding-bottom:calc(96px + var(--safe-bottom)) !important;
}
#pageLog #logList .empty{
  margin-bottom:calc(92px + var(--safe-bottom)) !important;
  padding-right:74px;
}
#pageLog .shot-history-helper{
  margin-right:0;
}
@media(max-width:420px){
  #pageLog #logList .empty{
    padding-right:58px;
  }
  /* v0.15.44 SHOT CONSOLE: reticle FAB keeps its geometry on small phones too. */
  .fab{
    right:20px;
    bottom:calc(106px + var(--safe-bottom));
  }
}

/* FIX 3: boot logo lockup + cinematic density polish, B2-B geometry untouched */
#boot{
  padding:26px 24px !important;
  gap:12px !important;
  background:
    radial-gradient(circle at 50% 14%,rgba(0,230,240,.10),transparent 34%),
    radial-gradient(circle at 82% 72%,rgba(255,45,85,.055),transparent 31%),
    #050508;
}
#boot::before{
  content:"";
  position:absolute;
  inset:20px;
  border:1px solid rgba(0,230,240,.08);
  border-top-color:rgba(0,230,240,.20);
  border-bottom-color:rgba(255,45,85,.12);
  pointer-events:none;
  box-shadow:inset 0 0 28px rgba(0,230,240,.035);
}
#boot::after{
  content:"SHOTS // PHASE ENGINE // RESULTS // VAULT";
  position:absolute;
  bottom:calc(18px + var(--safe-bottom));
  left:24px;
  right:24px;
  text-align:center;
  font-family:var(--font-m);
  font-size:.48rem;
  line-height:1.45;
  letter-spacing:2px;
  color:rgba(142,190,203,.56);
  pointer-events:none;
}
#boot .boot-b2b-stack{
  gap:7px !important;
  margin-bottom:10px !important;
  padding:14px 18px 12px;
  width:min(330px,88vw);
  border:1px solid rgba(0,230,240,.14);
  border-top-color:rgba(0,230,240,.30);
  border-radius:18px;
  background:
    linear-gradient(90deg,rgba(0,230,240,.05),transparent 22%,transparent 78%,rgba(255,45,85,.035)),
    rgba(0,0,0,.18);
  box-shadow:0 16px 42px rgba(0,0,0,.34),inset 0 0 0 1px rgba(255,255,255,.025);
}
#boot .boot-b2b-symbol-wrap{
  width:68px !important;
  height:68px !important;
  border-radius:14px !important;
}
#boot .boot-b2b-symbol-wrap .gn-b2b-symbol{
  width:52px !important;
  max-height:52px !important;
}
#boot .boot-b2b-wordmark-wrap{
  width:min(252px,76vw) !important;
}
#boot .boot-slogan{
  font-size:.88rem !important;
  letter-spacing:1.3px !important;
  color:#c4d4dd !important;
}
#boot .boot-terminal.boot-hud-startup{
  width:min(356px,90vw) !important;
  max-width:356px !important;
  min-height:118px !important;
  max-height:142px !important;
  margin-bottom:8px !important;
  padding:12px 13px !important;
  background:
    linear-gradient(180deg,rgba(0,230,240,.07),rgba(0,0,0,.16)),
    rgba(5,8,13,.86) !important;
}
#boot .boot-line{
  font-size:.66rem !important;
  line-height:1.48 !important;
  letter-spacing:.35px;
}
#boot .boot-prog-wrap{
  width:min(356px,90vw) !important;
  max-width:356px !important;
  margin-bottom:26px !important;
  border:1px solid rgba(0,230,240,.13);
  background:rgba(0,0,0,.24);
  padding:10px 11px 9px;
  box-shadow:inset 0 0 16px rgba(0,230,240,.035);
}
#boot .boot-prog-track{
  height:3px !important;
  background:rgba(255,255,255,.08) !important;
}
#boot .boot-prog-pct{
  margin-top:8px !important;
  text-align:center !important;
  color:#b5dce7 !important;
}
@media(max-height:720px){
  #boot{padding-top:18px !important;padding-bottom:18px !important;gap:8px !important}
  #boot .boot-b2b-stack{padding:10px 14px 9px;margin-bottom:6px !important}
  #boot .boot-b2b-symbol-wrap{width:56px !important;height:56px !important}
  #boot .boot-b2b-symbol-wrap .gn-b2b-symbol{width:43px !important;max-height:43px !important}
  #boot .boot-terminal.boot-hud-startup{min-height:104px !important;max-height:122px !important}
  #boot::after{display:none}
}

/* LOG SHOT date/time human display + AM/PM toggle */
#logOv .gn-shot-datetime-group{
  border:1px solid rgba(0,230,240,.12);
  background:linear-gradient(180deg,rgba(0,230,240,.035),rgba(0,0,0,.16));
  border-radius:10px;
  padding:12px;
}
#logOv .gn-shot-date-input{
  -webkit-appearance:none;
  appearance:none;
  font-family:var(--font-d);
  letter-spacing:1px;
  color:#dff8ff;
  text-transform:none;
}
#logOv .gn-shot-date-helper,
#logOv .gn-shot-time-helper{
  margin-top:7px;
  font-family:var(--font-m);
  font-size:.56rem;
  line-height:1.42;
  letter-spacing:.9px;
  color:#93b7c2;
  border-left:2px solid rgba(0,230,240,.30);
  background:rgba(0,230,240,.045);
  padding:7px 9px;
  border-radius:var(--r);
}
#logOv .gn-shot-time-label{
  margin-top:13px;
}
#logOv .gn-shot-time-control{
  display:grid;
  grid-template-columns:minmax(112px,1fr) auto;
  gap:9px;
  align-items:stretch;
}
#logOv .gn-shot-time-input{
  -webkit-appearance:none;
  appearance:none;
  font-family:var(--font-d);
  letter-spacing:2px;
  text-align:center;
  font-size:1.02rem;
}
#logOv .gn-ampm-toggle{
  display:grid;
  grid-template-columns:repeat(2,50px);
  gap:6px;
}
#logOv .gn-ampm-btn{
  border:1px solid rgba(0,230,240,.22);
  background:rgba(0,0,0,.32);
  color:#91b7c2;
  font-family:var(--font-d);
  font-size:.72rem;
  letter-spacing:1.6px;
  border-radius:8px;
  min-height:46px;
  cursor:pointer;
  box-shadow:inset 0 0 16px rgba(0,230,240,.025);
}
#logOv .gn-ampm-btn.active{
  color:#061015;
  border-color:rgba(0,230,240,.78);
  background:linear-gradient(180deg,#8ff6ff,#00e6f0);
  box-shadow:0 0 18px rgba(0,230,240,.18), inset 0 0 12px rgba(255,255,255,.22);
}
@media(max-width:380px){
  #logOv .gn-shot-time-control{grid-template-columns:1fr;gap:8px}
  #logOv .gn-ampm-toggle{grid-template-columns:1fr 1fr}
}

#boot{
  position:relative;
  isolation:isolate;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden;
  padding:calc(24px + var(--safe-top)) 20px calc(24px + var(--safe-bottom)) !important;
  gap:14px !important;
  background:
    radial-gradient(circle at 50% 28%,rgba(0,230,240,.16),transparent 34%),
    radial-gradient(circle at 18% 72%,rgba(0,255,136,.07),transparent 28%),
    radial-gradient(circle at 84% 66%,rgba(255,45,85,.055),transparent 26%),
    linear-gradient(180deg,#071015 0%,#05070b 54%,#030306 100%) !important;
}
#boot::before{
  content:"";
  position:absolute;
  inset:18px 16px;
  border:1px solid rgba(154,239,255,.12);
  border-radius:24px;
  background:
    linear-gradient(90deg,rgba(0,230,240,.045),transparent 18%,transparent 82%,rgba(0,255,136,.034)),
    linear-gradient(180deg,rgba(255,255,255,.035),transparent 38%);
  box-shadow:
    inset 0 0 48px rgba(0,230,240,.035),
    inset 0 0 0 1px rgba(255,255,255,.025),
    0 28px 90px rgba(0,0,0,.42);
  pointer-events:none;
  z-index:-2;
}
#boot::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,transparent 0 9%,rgba(0,230,240,.055) 9.4%,transparent 10%,transparent 90%,rgba(0,230,240,.05) 90.6%,transparent 91%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 48px),
    repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 54px);
  opacity:.36;
  pointer-events:none;
  z-index:-3;
}
#boot .boot-b2b-stack{
  position:relative;
  width:min(328px,86vw) !important;
  gap:6px !important;
  margin:0 !important;
  padding:18px 18px 16px !important;
  border:1px solid rgba(155,241,255,.16) !important;
  border-radius:24px !important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.018)),
    rgba(6,14,20,.52) !important;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:
    0 18px 60px rgba(0,0,0,.38),
    0 0 38px rgba(0,230,240,.055),
    inset 0 0 0 1px rgba(255,255,255,.04) !important;
}
#boot .boot-b2b-stack::before,
#boot .boot-b2b-stack::after{
  content:"";
  position:absolute;
  top:28px;
  bottom:28px;
  width:46px;
  border:1px solid rgba(0,230,240,.12);
  border-radius:14px;
  background:
    linear-gradient(180deg,rgba(0,230,240,.06),transparent 48%,rgba(0,255,136,.035)),
    rgba(0,0,0,.13);
  opacity:.62;
}
#boot .boot-b2b-stack::before{left:-58px}
#boot .boot-b2b-stack::after{right:-58px}
#boot .boot-b2b-symbol-wrap{
  width:72px !important;
  height:72px !important;
  border-radius:18px !important;
  border:1px solid rgba(0,230,240,.18) !important;
  background:
    radial-gradient(circle at 50% 45%,rgba(0,230,240,.16),transparent 62%),
    rgba(0,0,0,.18) !important;
  box-shadow:inset 0 0 28px rgba(0,230,240,.045),0 0 22px rgba(0,230,240,.075) !important;
}
#boot .boot-b2b-symbol-wrap .gn-b2b-symbol{
  width:54px !important;
  max-height:54px !important;
}
#boot .boot-b2b-wordmark-wrap{
  width:min(258px,76vw) !important;
}
#boot .boot-slogan{
  font-size:.86rem !important;
  line-height:1.25 !important;
  letter-spacing:1.25px !important;
  color:#d1e6ee !important;
  margin-top:2px !important;
}
#boot .boot-terminal.boot-hud-startup{
  width:min(362px,88vw) !important;
  max-width:362px !important;
  min-height:0 !important;
  max-height:none !important;
  margin:0 !important;
  padding:12px !important;
  border:1px solid rgba(0,230,240,.16) !important;
  border-radius:18px;
  background:
    linear-gradient(180deg,rgba(0,230,240,.055),rgba(0,0,0,.22)),
    rgba(4,10,16,.58) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),0 18px 55px rgba(0,0,0,.28) !important;
  overflow:hidden;
}
.boot-vitals-title{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
  font-family:var(--font-m);
  font-size:.55rem;
  letter-spacing:1.55px;
  color:#a9eaf3;
  text-transform:uppercase;
}
.boot-vitals-title span:last-child{color:#82ffbe}
.boot-vitals-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}
.boot-vitals-cell{
  min-height:40px;
  padding:8px 9px;
  border:1px solid rgba(0,230,240,.12);
  border-left-color:rgba(0,255,136,.22);
  border-radius:10px;
  background:rgba(0,0,0,.18);
  position:relative;
  overflow:hidden;
}
.boot-vitals-cell::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  bottom:7px;
  height:1px;
  background:linear-gradient(90deg,rgba(0,230,240,.18),rgba(0,255,136,.34),transparent);
  opacity:.74;
}
.boot-vitals-cell b{
  display:block;
  font-family:var(--font-d);
  font-size:.55rem;
  letter-spacing:1.2px;
  color:#e3faff;
  margin-bottom:3px;
}
.boot-vitals-cell span{
  display:block;
  font-family:var(--font-m);
  font-size:.46rem;
  line-height:1.35;
  letter-spacing:.75px;
  color:#88acb8;
  white-space:nowrap;
}
.boot-vitals-cell.active{
  border-left-color:#00ff88;
  background:rgba(0,255,136,.045);
}
.boot-vitals-cell.active span{color:#8dffc2}
#boot .boot-prog-wrap{
  width:min(362px,88vw) !important;
  max-width:362px !important;
  margin:0 !important;
  padding:11px 12px 10px !important;
  border:1px solid rgba(0,230,240,.14) !important;
  border-radius:14px;
  background:rgba(2,8,13,.62) !important;
  box-shadow:inset 0 0 18px rgba(0,230,240,.035) !important;
}
#boot .boot-prog-track{
  height:4px !important;
  border-radius:99px;
  background:rgba(255,255,255,.08) !important;
}
#boot .boot-prog-fill{
  background:linear-gradient(90deg,#00e6f0,#7dffd0) !important;
  box-shadow:0 0 16px rgba(0,230,240,.28) !important;
}
#boot .boot-prog-pct{
  text-align:center !important;
  margin-top:9px !important;
  color:#c4f3ff !important;
  font-size:.62rem !important;
  letter-spacing:1.45px !important;
  text-transform:uppercase;
}
@media(max-width:430px){
  #boot .boot-b2b-stack::before,
  #boot .boot-b2b-stack::after{
    width:24px;
    opacity:.42;
  }
  #boot .boot-b2b-stack::before{left:-32px}
  #boot .boot-b2b-stack::after{right:-32px}
}
@media(max-height:700px){
  #boot{gap:10px !important;padding-top:18px !important;padding-bottom:18px !important}
  #boot::before{inset:12px}
  #boot .boot-b2b-stack{padding:13px 16px 12px !important}
  #boot .boot-b2b-symbol-wrap{width:58px !important;height:58px !important}
  #boot .boot-b2b-symbol-wrap .gn-b2b-symbol{width:44px !important;max-height:44px !important}
  #boot .boot-slogan{font-size:.78rem !important}
  .boot-vitals-grid{gap:6px}
  .boot-vitals-cell{min-height:34px;padding:7px 8px}
  .boot-vitals-cell b{font-size:.5rem}
  .boot-vitals-cell span{font-size:.42rem}
}

/* LOG SHOT containment only: keeps DATE/TIME content from sliding under the sticky header. */
#logOv.active{
  align-items:flex-end;
  overflow:hidden;
}
#logOv .modal{
  box-sizing:border-box;
  max-height:75dvh !important;
  height:auto;
  overflow-y:auto !important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scroll-padding-top:82px;
  padding-top:0 !important;
  padding-left:16px !important;
  padding-right:16px !important;
  padding-bottom:calc(24px + var(--safe-bottom)) !important;
  border-top:2px solid var(--red);
  background:
    linear-gradient(180deg,rgba(18,18,28,.99),rgba(9,10,16,.99) 42%,rgba(6,7,11,.995));
}
#logOv .modal-hdr{
  position:sticky !important;
  top:0 !important;
  z-index:90 !important;
  margin:0 0 14px !important;
  padding:calc(12px + max(0px,var(--safe-top))) 16px 12px !important;
  min-height:62px;
  background:
    linear-gradient(180deg,rgba(18,18,28,1),rgba(14,14,22,.985));
  border-bottom:1px solid rgba(0,230,240,.13);
  box-shadow:0 12px 24px rgba(0,0,0,.42),0 1px 0 rgba(255,255,255,.025) inset;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
#logOv .modal-title{
  line-height:1;
  text-align:center;
}
#logOv .gn-shot-datetime-group{
  position:relative;
  z-index:1;
  margin-top:0 !important;
  scroll-margin-top:86px;
}
#logOv .form-group{
  scroll-margin-top:86px;
}
#logOv .scanner-location-display{
  scroll-margin-top:86px;
}

/* Medication picker containment: bottom HUD panel, opaque, above modal content, no layout jump. */
#logOv #cpShotMedDrop.cp-dropdown{
  left:14px !important;
  right:14px !important;
  top:auto !important;
  bottom:calc(12px + var(--safe-bottom)) !important;
  width:auto !important;
  max-height:min(430px,58dvh) !important;
  overflow-y:auto !important;
  border-radius:18px !important;
  border:1px solid rgba(0,230,240,.34) !important;
  border-top:2px solid rgba(0,230,240,.82) !important;
  background:
    linear-gradient(180deg,rgba(15,24,31,.995),rgba(6,9,15,.998)) !important;
  box-shadow:
    0 28px 80px rgba(0,0,0,.84),
    0 0 36px rgba(0,230,240,.14),
    inset 0 0 0 1px rgba(255,255,255,.035) !important;
  z-index:760 !important;
  padding:8px 0 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
#logOv #cpShotMedDrop.cp-dropdown.open{
  display:block !important;
  animation:gnLogShotPickerRise .16s ease-out both !important;
}
#logOv #cpShotMedDrop .cp-group-label{
  padding:12px 16px 7px !important;
  color:#86ddea !important;
  background:rgba(0,230,240,.055);
  border-bottom:1px solid rgba(0,230,240,.10) !important;
}
#logOv #cpShotMedDrop .cp-option{
  min-height:48px;
  padding:14px 16px !important;
  color:#d7edf4 !important;
  background:rgba(0,0,0,.12);
  border-bottom:1px solid rgba(255,255,255,.065) !important;
}
#logOv #cpShotMedDrop .cp-option:active,
#logOv #cpShotMedDrop .cp-option:hover{
  background:rgba(0,230,240,.12) !important;
  color:#fff !important;
}
body.gn-log-shot-picker-open #logOv::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:740;
  background:rgba(0,0,0,.48);
  pointer-events:none;
}
body.gn-log-shot-picker-open .fab{
  opacity:0;
  pointer-events:none;
}
@keyframes gnLogShotPickerRise{
  from{opacity:0;transform:translateY(14px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media(max-height:680px){
  #logOv #cpShotMedDrop.cp-dropdown{
    max-height:54dvh !important;
  }
  #logOv .modal-hdr{
    min-height:56px;
    padding-top:10px !important;
    padding-bottom:10px !important;
  }
}

/* ═══ SHOTS full-flow premium polish: modal, next-shot card, history ═══ */

/* --- Modal chrome: 44px touch targets, press feedback --- */
.modal-btn{width:44px;height:44px}
.modal-btn:active{transform:scale(.94)}
.modal-btn.save:active{transform:scale(.94);box-shadow:0 0 22px var(--red-glow)}

/* Overlay fade-in (was an instant cut) */
.overlay.active{animation:gnOverlayFade .22s ease-out}
@keyframes gnOverlayFade{from{opacity:0}to{opacity:1}}

/* --- Form rhythm: airier groups, consistent 48px inputs --- */
#logOv .form-group{margin-bottom:20px}
#logOv .form-input,#logOv .form-textarea{min-height:48px}
#logOv .form-label{margin-bottom:8px}

/* Medication trigger: full 48px target, clearer affordance */
.cp-select-trigger{min-height:48px}
.cp-select-trigger:hover{border-color:rgba(0,212,255,.4)}
.cp-select-trigger .cp-select-arrow{color:var(--cyan);font-size:.7rem}

/* --- Dose pills: real touch targets, premium active state --- */
.dose-pill{min-height:44px;display:inline-flex;align-items:center;padding:10px 18px;font-size:.72rem}
.dose-pill.active{box-shadow:0 0 12px rgba(0,212,255,.25),inset 0 0 8px rgba(0,212,255,.12)}
.dose-pill:active{transform:scale(.96)}

/* --- AM/PM: press feedback --- */
#logOv .gn-ampm-btn{transition:all .18s ease}
#logOv .gn-ampm-btn:active{transform:scale(.94)}

/* --- Side effects: taller rows, bigger checkboxes, checked state --- */
.se-grid{gap:8px}
.se-check{padding:12px 14px;min-height:52px}
.se-check input{width:20px;height:20px;flex-shrink:0;cursor:pointer}
.se-check:focus-within{border-color:rgba(0,212,255,.5);box-shadow:0 0 0 2px rgba(0,212,255,.15)}
.se-check:has(input:checked){border-color:rgba(255,59,59,.45);background:rgba(255,59,59,.07);color:var(--text)}
.se-check:active{transform:scale(.98)}

/* --- Advanced trigger + location action: 48px targets --- */
.gn-shot-advanced-trigger{min-height:48px;padding:12px 14px}
.log-location-action{min-height:48px;transition:all .18s ease}
.log-location-action:hover{border-color:rgba(0,212,255,.6);background:rgba(0,212,255,.10);box-shadow:0 0 14px rgba(0,212,255,.12)}

/* --- Next-shot card: tighter hierarchy, dose pill alignment --- */
.next-shot-card{padding:18px 16px;position:relative;overflow:hidden}
.next-shot-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red);box-shadow:0 0 10px var(--red-glow)}
.nsc-label{margin-bottom:8px}
.nsc-shot{margin-bottom:6px;line-height:1.35}
.nsc-dose{vertical-align:middle;white-space:nowrap}
.nsc-site{margin-top:8px;letter-spacing:1.5px;line-height:1.6}

/* --- History: airier entries, 36px action targets, readable chips --- */
.log-entry{padding:16px;margin-bottom:10px}
.log-entry-top{margin-bottom:10px}
.log-action-btn{width:36px;height:36px}
.log-action-btn:active{transform:scale(.92)}
.log-entry:not(.archived-record) .log-action-btn{min-height:40px}
.log-chips{gap:6px;margin-top:6px}
.log-chip{padding:5px 10px;font-size:.55rem}
.log-notes{line-height:1.6}

/* Empty state CTA: full-width premium button */
.empty-cta{margin-top:14px;min-height:52px;font-size:.8rem;letter-spacing:2.5px}

/* Reduced motion: kill the new entrance animations too */
@media (prefers-reduced-motion:reduce){
  .overlay.active{animation:none}
  .log-entry{animation:none}
}

/* RESULTS Stage 1B.1 — WEIGHT RECORDS edit/remove ownership actions only */
.results-record-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:10px;
}
.results-record-action{
  min-height:34px;
  border-radius:8px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.22);
  color:#9fbfd0;
  font-family:var(--font-d);
  font-size:.56rem;
  letter-spacing:1.5px;
  text-transform:uppercase;
  cursor:pointer;
  transition:all .16s ease;
}
.results-record-action.edit{
  border-color:rgba(0,212,255,.34);
  color:#9beeff;
  background:linear-gradient(135deg,rgba(0,212,255,.11),rgba(0,0,0,.20));
}
.results-record-action.remove{
  border-color:rgba(255,59,59,.34);
  color:#FF7B7B;
  background:linear-gradient(135deg,rgba(255,59,59,.10),rgba(0,0,0,.20));
}
.results-record-action:active{transform:scale(.985)}
.results-record-remove-meta{
  margin-top:8px;
  font-family:var(--font-m);
  font-size:.56rem;
  letter-spacing:1.2px;
  line-height:1.45;
  color:#a9bbc7;
}
@media(max-width:380px){
  .results-record-actions{grid-template-columns:1fr;gap:7px}
  .results-record-action{min-height:36px}
}
/* v0.15.44: LOG SHOT full-width bottom sheet.
   #logOv.active is a row-direction flex container, so the injected
   .gn-drawer-handle (44px wide) sat BESIDE .modal and shoved the sheet
   right, leaving a dead strip on the left ("half on the side"). Column
   direction puts the handle on top (its own margin centers it) and the
   sheet spans the full width, pinned to the bottom. */
#logOv.active{
  flex-direction:column !important;
  justify-content:flex-end !important;
  align-items:stretch !important;
}
#logOv .gn-drawer-handle{
  margin:10px auto 6px !important;
}
#logOv.active .modal{
  margin:0 !important;
  align-self:stretch !important;
  width:100% !important;
  max-width:100% !important;
  border-radius:18px 18px 0 0 !important;
}

/* v0.15.44 — SHOT CONSOLE redesign: the LOG SHOT sheet becomes a protocol
   console. Console chrome (header / scroll / sticky action bar), HUD section
   headers, unmissable dose chips, target-grid zone picker. All hooks and IDs
   unchanged; pure presentation layer. */
#logOv .modal.gn-shot-console{
  display:flex !important;
  flex-direction:column !important;
  padding:0 !important;
  overflow:hidden !important;
  max-height:94vh !important;
  background:
    radial-gradient(120% 90% at 50% -10%, rgba(0,229,255,.07), transparent 60%),
    linear-gradient(180deg, #101623 0%, #0a0d15 100%) !important;
  border-top:2px solid rgba(0,229,255,.65) !important;
  box-shadow:0 -12px 60px rgba(0,229,255,.12) !important;
}
/* Console header */
#logOv .gn-console-hdr{
  flex:0 0 auto;
  display:flex;align-items:center;gap:10px;
  padding:14px 14px 12px !important;
  background:linear-gradient(180deg, rgba(0,229,255,.08), transparent);
  border-bottom:1px solid rgba(0,229,255,.22);
  position:relative;
}
#logOv .gn-console-hdr::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:repeating-linear-gradient(90deg, rgba(0,229,255,.5) 0 8px, transparent 8px 16px);
  opacity:.5;pointer-events:none;
}
#logOv .gn-console-titleblock{flex:1 1 auto;min-width:0;text-align:center}
#logOv .gn-console-hdr .modal-title{
  font-size:1.02rem !important;letter-spacing:3px !important;
  color:#fff;text-shadow:0 0 14px rgba(0,229,255,.5);
}
#logOv .gn-console-sub{
  font-family:var(--font-m);font-size:.58rem;letter-spacing:2.5px;
  color:rgba(0,229,255,.65);margin-top:3px;
}
/* Scroll region */
#logOv .gn-shot-scroll{
  flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;
  padding:14px 16px 18px;
  scrollbar-width:thin;scrollbar-color:rgba(0,229,255,.35) transparent;
}
/* Section headers — restyles the .gn-log-step divs injected by openLogModal */
#logOv .gn-log-step{
  display:flex;align-items:center;gap:8px;
  font-family:var(--font-m);font-size:.68rem;font-weight:700;letter-spacing:2.5px;
  color:var(--cyan);text-shadow:0 0 10px rgba(0,229,255,.4);
  margin:18px 0 10px;padding:8px 12px;
  background:linear-gradient(90deg, rgba(0,229,255,.1), rgba(0,229,255,.02));
  border:1px solid rgba(0,229,255,.28);border-radius:8px;
  position:relative;
}
#logOv .gn-log-step:first-child{margin-top:2px}
#logOv .gn-log-step::before{content:"▸";color:var(--red);text-shadow:0 0 8px rgba(255,60,60,.7)}
#logOv .gn-log-step::after{
  content:"";position:absolute;top:6px;right:8px;bottom:6px;width:22px;
  background:repeating-linear-gradient(180deg, rgba(0,229,255,.35) 0 2px, transparent 2px 5px);
  opacity:.6;pointer-events:none;
}
/* Console panes: form groups become HUD panels */
#logOv .gn-shot-scroll .form-group{
  background:rgba(10,16,26,.72);
  border:1px solid rgba(120,160,200,.16);border-radius:12px;
  padding:14px 12px;margin-bottom:6px;
  position:relative;
}
#logOv .gn-shot-scroll .form-group::before,
#logOv .gn-shot-scroll .form-group::after{
  content:"";position:absolute;width:14px;height:14px;pointer-events:none;
  border:2px solid rgba(0,229,255,.55);
}
#logOv .gn-shot-scroll .form-group::before{top:-1px;left:-1px;border-right:none;border-bottom:none;border-radius:12px 0 0 0}
#logOv .gn-shot-scroll .form-group::after{bottom:-1px;right:-1px;border-left:none;border-top:none;border-radius:0 0 12px 0}
/* Dose chips — unmissable selection (OnePlus QA lesson) */
#logOv .dose-pills{display:grid !important;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}
/* CLARITY PASS (P5): the pills are the user's own recent doses — the caption
   says so, in plain words, so a shortcut never reads as a suggestion. */
#logOv .dose-pills-caption{grid-column:1/-1;font-family:var(--font-m);font-size:var(--type-caption);font-weight:700;letter-spacing:.08em;color:var(--text-3);margin-bottom:-2px}
#logOv .dose-pill{
  min-height:60px !important;border-radius:12px !important;
  background:var(--bg2);border:1.5px solid rgba(0,229,255,.35) !important;
  color:var(--text-1);font-size:1rem !important;font-weight:800;letter-spacing:.03em;
  display:flex;align-items:center;justify-content:center;
  transition:transform .12s ease, box-shadow .15s ease, background .15s ease;
  position:relative;
}
#logOv .dose-pill:active{transform:scale(.94)}
#logOv .dose-pill.active{
  background:linear-gradient(135deg,#00e5ff,#00a9c7) !important;
  border-color:#bffbff !important;color:#03141b !important;
  box-shadow:0 0 20px rgba(0,229,255,.75), inset 0 0 10px rgba(255,255,255,.35) !important;
  text-shadow:none;
}
#logOv .dose-pill.active::after{
  content:"✓";position:absolute;top:4px;right:8px;font-size:.8rem;font-weight:900;color:#03141b;
}
/* Compound selector trigger as console readout */
#logOv .cp-select-trigger{
  background:rgba(0,229,255,.05) !important;border:1.5px solid rgba(0,229,255,.35) !important;
  border-radius:12px !important;padding:14px 12px !important;font-size:.92rem !important;
}
/* Zone picker as target grid */
#logOv .gn-modal-zone-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
#logOv .gn-stable-zone-btn{
  min-height:52px;border-radius:10px;
  background:rgba(255,77,77,.05);border:1.5px solid rgba(255,77,77,.3);
  color:#ffd9d9;font-size:.82rem;font-weight:700;letter-spacing:.04em;
  transition:all .14s ease;
}
#logOv .gn-stable-zone-btn:active{transform:scale(.95)}
#logOv .gn-stable-zone-btn.selected{
  background:linear-gradient(135deg, rgba(255,77,77,.9), rgba(200,30,30,.9)) !important;
  border-color:#ffb3b3 !important;color:#fff !important;
  box-shadow:0 0 18px rgba(255,60,60,.6) !important;
}
#logOv .gn-modal-zone-modes{display:flex;gap:8px;margin-bottom:10px}
#logOv .gn-modal-zone-modes .time-tab{
  flex:1;min-height:44px;border-radius:10px;
  background:transparent;border:1px solid rgba(120,160,200,.3);
  color:var(--text-mid);font-family:var(--font-m);font-size:.68rem;letter-spacing:2px;
}
#logOv .gn-modal-zone-modes .time-tab.active{
  background:rgba(0,229,255,.14);border-color:var(--cyan);color:var(--cyan);
  box-shadow:0 0 12px rgba(0,229,255,.3);
}
#logOv #modalSelectedLocation{
  display:block;text-align:center;font-size:.95rem;letter-spacing:1px;
  color:#fff;margin-bottom:10px;text-shadow:0 0 10px rgba(0,229,255,.35);
}
/* Sticky action bar with live summary */
#logOv .gn-shot-actionbar{
  flex:0 0 auto;
  padding:10px 16px calc(14px + var(--safe-bottom));
  background:linear-gradient(180deg, rgba(8,12,20,.4), rgba(8,12,20,.96) 30%);
  border-top:1px solid rgba(0,229,255,.28);
  position:relative;z-index:2;
}
#logOv .gn-shot-summary{
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-m);font-size:.66rem;letter-spacing:1.5px;
  color:rgba(220,245,255,.85);margin-bottom:10px;
  min-height:1.2em;text-align:center;
}
#logOv .gn-shot-summary-item{
  flex:1 1 0;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
#logOv .gn-shot-summary-item:first-child{flex:1.5 1 0;color:var(--cyan);font-weight:700}
#logOv .gn-shot-summary-sep{flex:0 0 auto;color:rgba(0,229,255,.4)}
#logOv .gn-shot-fire{
  border:none;border-radius:14px !important;
  min-height:58px !important;font-size:1rem !important;font-weight:900 !important;letter-spacing:3px !important;
  background:linear-gradient(135deg,#ff5252,#c41e1e) !important;color:#fff !important;
  box-shadow:0 0 24px rgba(255,60,60,.5), inset 0 1px 0 rgba(255,255,255,.25) !important;
  text-shadow:0 1px 3px rgba(0,0,0,.5);
  position:relative;overflow:hidden;
}
#logOv .gn-shot-fire::before{
  content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent);
  animation:gn-fire-sheen 3.2s ease-in-out infinite;pointer-events:none;
}
#logOv .gn-shot-fire:active{transform:scale(.97)}
@keyframes gn-fire-sheen{0%,55%{left:-60%}90%,100%{left:130%}}
/* Advanced trigger inside console */
#logOv .gn-shot-advanced-trigger{
  width:100%;margin:14px 0 4px;min-height:48px;border-radius:10px;
  background:transparent;border:1px dashed rgba(120,160,200,.35);
  color:var(--text-mid);font-family:var(--font-m);font-size:.66rem;letter-spacing:2px;
}
/* S1 — QUICK REPEAT confirm view. Toggled by .gn-quick-mode on #logOv:
   hides the full form + action bar, shows the compact confirm. */
#logOv.gn-quick-mode .gn-shot-scroll,
#logOv.gn-quick-mode .gn-shot-actionbar{display:none !important}
#logOv #gnQuickConfirm{display:none}
#logOv.gn-quick-mode #gnQuickConfirm{display:block !important}
#logOv .gn-quick-confirm{padding:28px 22px 26px;text-align:center}
#logOv .gn-quick-confirm-kicker{
  font-family:var(--font-m);font-size:.62rem;letter-spacing:3px;color:var(--cyan);
  margin-bottom:10px;
}
#logOv .gn-quick-confirm-title{
  font-family:var(--font-d);font-weight:700;font-size:1.15rem;letter-spacing:1px;
  color:#fff;margin-bottom:18px;
}
#logOv .gn-quick-confirm-summary{
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:10px;
}
#logOv .gn-quick-confirm-chip{
  font-family:var(--font-m);font-size:.72rem;letter-spacing:1px;color:#eaf6ff;
  background:rgba(0,229,255,.08);border:1px solid rgba(0,229,255,.35);
  border-radius:8px;padding:9px 13px;
}
#logOv .gn-quick-confirm-time{
  font-family:var(--font-m);font-size:.66rem;letter-spacing:2px;color:var(--text-mid);
  margin-bottom:24px;
}
#logOv .gn-quick-confirm-fire{min-height:58px;font-size:.85rem}
#logOv .gn-quick-confirm-details{margin-top:12px;background:transparent}

/*
GRID//NODE legacy CSS — extracted from html/partials/15-styles-tail.html (4 inline <style> blocks, in original document order).
Block order is load-bearing for the cascade: do not reorder, split, or merge these blocks.
Note: the source partial contained one HTML comment between blocks #1 and #2, reading 'Final scanner abdomen geometry lock (wins over earlier track12 rules)', immediately before the #gn-scanner-region-lock block. An HTML comment has no CSS or cascade effect; its text is preserved in this header note only.
HTML diet, 2026-10-13.
*/

.gn-syr-inscale{position:absolute;inset:0;right:18px;display:grid;grid-template-columns:repeat(11,1fr);align-items:center;justify-items:center;pointer-events:none;z-index:6}
.gn-syr-inscale > *{font-family:var(--font-m);font-size:.62rem;font-weight:700;color:rgba(220,245,255,.92);letter-spacing:.3px;font-variant-numeric:tabular-nums;text-shadow:0 0 4px rgba(0,229,255,.55),0 1px 2px rgba(0,0,0,.6);line-height:1;padding-bottom:1px;width:auto !important;height:auto !important;background:transparent !important;border:none !important;display:flex;align-items:center;justify-content:center}
.gn-syr-inscale > *:first-child{justify-self:start;margin-left:2px;color:#fff;text-shadow:0 0 6px rgba(0,229,255,.85),0 1px 2px rgba(0,0,0,.7)}
.gn-syr-inscale > *:last-child{justify-self:end;margin-right:2px;color:#fff;text-shadow:0 0 6px rgba(0,229,255,.85),0 1px 2px rgba(0,0,0,.7)}

/* One deliberate initialization surface: the Personal Biotech OS comes online here. */
#boot{
  min-height:100dvh !important;
  height:100dvh !important;
  align-items:center !important;
  justify-content:center !important;
  padding:calc(18px + var(--safe-top)) 14px calc(18px + var(--safe-bottom)) !important;
  gap:0 !important;
  background:
    radial-gradient(circle at 50% 28%,rgba(0,230,240,.14),transparent 34%),
    radial-gradient(circle at 82% 78%,rgba(255,45,85,.055),transparent 28%),
    linear-gradient(180deg,#050a0e 0%,#04060a 58%,#020204 100%) !important;
}
#boot::before{
  inset:12px !important;
  border:1px solid rgba(0,230,240,.09) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(0,230,240,.025),transparent 32%) !important;
  box-shadow:inset 0 0 56px rgba(0,230,240,.025) !important;
}
#boot::after{
  content:"" !important;
  inset:0 !important;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.014) 0 1px,transparent 1px 5px) !important;
  opacity:.4 !important;
}
.boot-command-deck{
  position:relative;
  width:min(440px,calc(100vw - 28px));
  max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 28px);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:12px;
  padding:19px;
  overflow:hidden;
  border:1px solid rgba(0,230,240,.22);
  border-top-color:rgba(0,230,240,.54);
  border-bottom-color:rgba(255,45,85,.20);
  border-radius:16px;
  background:
    linear-gradient(135deg,rgba(0,230,240,.055),transparent 30%,transparent 75%,rgba(255,45,85,.025)),
    rgba(4,8,13,.92);
  box-shadow:0 26px 76px rgba(0,0,0,.58),0 0 38px rgba(0,230,240,.075),inset 0 0 0 1px rgba(255,255,255,.025);
}
.boot-command-deck::before{
  content:"";
  position:absolute;
  left:0;right:0;top:-36%;height:32%;
  background:linear-gradient(180deg,transparent,rgba(0,230,240,.07),transparent);
  animation:gnDeckSweep 2.6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes gnDeckSweep{0%{transform:translateY(0)}72%,100%{transform:translateY(440%)}}
.boot-deck-kicker{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-bottom:9px;
  border-bottom:1px solid rgba(0,230,240,.13);
  font-family:var(--font-m);
  font-size:.53rem;
  line-height:1.3;
  letter-spacing:1.45px;
  color:#93b5c0;
}
.boot-deck-kicker b{font-weight:400;color:#ffd166;text-shadow:0 0 10px rgba(255,209,102,.22)}
#boot .boot-b2b-stack{
  width:100% !important;
  margin:0 !important;
  padding:4px 0 7px !important;
  gap:5px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}
#boot .boot-b2b-stack::before,#boot .boot-b2b-stack::after{display:none !important}
#boot .boot-b2b-symbol-wrap{
  width:78px !important;height:78px !important;
  border-radius:18px !important;
  border-color:rgba(0,230,240,.22) !important;
  background:radial-gradient(circle,rgba(0,230,240,.12),rgba(0,0,0,.18) 66%) !important;
}
#boot .boot-b2b-symbol-wrap .gn-b2b-symbol{width:59px !important;max-height:59px !important}
#boot .boot-b2b-wordmark-wrap{width:min(278px,78vw) !important}
#boot .boot-slogan{font-size:.91rem !important;color:#d3e3e9 !important;letter-spacing:1.35px !important}
#boot .boot-terminal.boot-hud-startup{
  width:100% !important;
  max-width:none !important;
  min-height:126px !important;
  max-height:126px !important;
  margin:0 !important;
  padding:13px 14px !important;
  border:1px solid rgba(0,230,240,.16) !important;
  border-left:2px solid rgba(0,230,240,.48) !important;
  border-radius:8px !important;
  background:linear-gradient(180deg,rgba(0,230,240,.045),rgba(0,0,0,.22)),rgba(2,7,11,.82) !important;
  box-shadow:inset 0 0 24px rgba(0,230,240,.025) !important;
  overflow:auto !important;
  scrollbar-width:none;
}
#boot .boot-terminal.boot-hud-startup::-webkit-scrollbar{display:none}
#boot .boot-line{font-size:.65rem !important;line-height:1.5 !important;letter-spacing:.2px;color:#9bb8c2}
#boot .boot-line.info{color:#a7dce5}#boot .boot-line.warn{color:#ffd166}#boot .boot-line.ok{color:#77f2b5}
#boot .boot-prog-wrap{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:11px 12px 10px !important;
  border:1px solid rgba(255,209,102,.15) !important;
  border-radius:8px !important;
  background:rgba(0,0,0,.22) !important;
  box-shadow:inset 0 0 18px rgba(255,209,102,.025) !important;
}
#boot .boot-prog-track{
  height:13px !important;
  border:1px solid rgba(255,209,102,.38) !important;
  border-radius:2px !important;
  background:rgba(255,209,102,.045) !important;
  padding:2px !important;
}
#boot .boot-prog-pct{margin-top:7px !important;font-size:.56rem !important;letter-spacing:1.55px !important;color:#d9c88f !important;text-shadow:none !important}
.boot-deck-footer{
  display:flex;
  align-items:center;
  gap:9px;
  font-family:var(--font-m);
  font-size:.48rem;
  letter-spacing:1.25px;
  color:#718e99;
  white-space:nowrap;
}
.boot-deck-footer i{height:1px;flex:1;background:linear-gradient(90deg,rgba(0,230,240,.28),rgba(255,45,85,.18))}

/* Utility actions share the same accessible operator-control language as navigation. */
.gn-utility-row{
  width:100%;min-height:56px;
  display:flex;align-items:center;justify-content:space-between;
  padding:15px 16px;
  border:0;border-bottom:1px solid rgba(255,255,255,.05);
  background:transparent;
  color:#eeeef5;
  text-align:left;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease;
}
.gn-utility-row:last-child{border-bottom:0}
.gn-utility-row:hover,.gn-utility-row:active{background:linear-gradient(90deg,rgba(0,230,240,.07),rgba(0,230,240,.015))}
.gn-utility-row:focus-visible{outline:1px solid rgba(0,230,240,.68);outline-offset:-2px;background:rgba(0,230,240,.06)}
.gn-utility-icon{
  flex:0 0 32px;width:32px;height:32px;padding:5px;
  color:#74eaf4;
  border:1px solid rgba(0,230,240,.22);
  border-radius:7px;
  background:rgba(0,230,240,.045);
  filter:drop-shadow(0 0 7px rgba(0,230,240,.16));
}
.gn-utility-chevron{color:#66808b;font-size:1rem;line-height:1}
.gn-utility-row-danger .gn-utility-icon,.gn-utility-row-danger .gn-utility-chevron{color:#FF5B5B;border-color:rgba(255,59,59,.28);background:rgba(255,59,59,.05);filter:drop-shadow(0 0 7px rgba(255,59,59,.15))}
.gn-utility-row-danger:hover,.gn-utility-row-danger:active{background:linear-gradient(90deg,rgba(255,59,59,.075),rgba(255,59,59,.012))}

@media(max-width:430px){
  .boot-command-deck{width:calc(100vw - 24px);padding:15px;gap:9px;border-radius:14px}
  .boot-deck-kicker{font-size:.47rem;letter-spacing:1.05px}
  #boot .boot-b2b-symbol-wrap{width:66px !important;height:66px !important;border-radius:15px !important}
  #boot .boot-b2b-symbol-wrap .gn-b2b-symbol{width:50px !important;max-height:50px !important}
  #boot .boot-b2b-wordmark-wrap{width:min(248px,72vw) !important}
  #boot .boot-terminal.boot-hud-startup{min-height:116px !important;max-height:116px !important;padding:11px 12px !important}
  .boot-deck-footer{font-size:.43rem;letter-spacing:.85px;gap:7px}
}
@media(max-height:700px){
  .boot-command-deck{padding:12px;gap:7px}
  .boot-deck-kicker{padding-bottom:6px}
  #boot .boot-b2b-stack{padding:0 0 3px !important}
  #boot .boot-b2b-symbol-wrap{width:52px !important;height:52px !important}
  #boot .boot-b2b-symbol-wrap .gn-b2b-symbol{width:40px !important;max-height:40px !important}
  #boot .boot-slogan{font-size:.76rem !important}
  #boot .boot-terminal.boot-hud-startup{min-height:102px !important;max-height:102px !important}
}
@media(prefers-reduced-motion:reduce){.boot-command-deck::before,#boot .boot-b2b-symbol,#boot .boot-b2b-symbol-wrap::after{animation:none !important}}

/* Premium scanner foundation — FAL nano-banana-pro mannequin system.
   Neutral artwork; regions, states, and touch live in the layer above. */
#shotsRegionScanner .asset-scan-stage {
  --gn-zone-ready: rgba(0, 235, 250, .85);
  --gn-zone-selected: rgba(0, 255, 255, 1);
  --gn-zone-last: rgba(255, 214, 120, .9);
  --gn-zone-recent: rgba(190, 150, 210, .85);
  background: radial-gradient(ellipse at 50% 38%, rgba(0, 40, 58, .5), rgba(2, 6, 12, .98) 74%) !important;
  overflow: hidden !important;
}
#shotsRegionScanner .asset-scan-stage.gn-scan-channel { animation: gnScanChannel .3s ease; }
@keyframes gnScanChannel {
  0% { filter: brightness(.82) saturate(.6); }
  50% { filter: brightness(1.08) saturate(1.05); }
  100% { filter: none; }
}
@media (prefers-reduced-motion: reduce) {
  #shotsRegionScanner .asset-scan-stage.gn-scan-channel { animation: none; }
}

/* Premium square cover — body fills the whole stage on iOS/Android */
#shotsRegionScanner .asset-scan-stage #scannerBodyAsset,
#shotsRegionScanner .asset-scan-stage .scan-asset {
  object-fit: cover !important;
  object-position: center center !important;
  transform: none !important;
  filter: none !important;
  opacity: 1 !important;
  transition: opacity var(--dur-2) var(--ease-out) !important;
  width: 100% !important;
  height: 100% !important;
  -webkit-object-fit: cover !important;
}
/* CORE: focus the body which sits in the lower 2/3 of the 16:9 image */
#shotsRegionScanner .asset-scan-stage.mode-core #scannerBodyAsset {
  object-position: center 62% !important;
  transform: scale(1.18) !important;
}
/* LOWER: focus the thighs (lower 2/3 of the image) */
#shotsRegionScanner .asset-scan-stage.mode-lower #scannerBodyAsset {
  object-fit: cover !important;
  object-position: center 58% !important;
  transform: scale(1.22) !important;
}
/* UPPER: focus the back/torso (middle of the image) */
#shotsRegionScanner .asset-scan-stage.mode-upper #scannerBodyAsset {
  object-position: center 50% !important;
  transform: scale(1.20) !important;
}

/* Hide legacy decorative layers */
#shotsRegionScanner .clean-zone-layer,
#shotsRegionScanner .track12-subdivision-hud,
#shotsRegionScanner .core4-subdivision-hud { display: none !important; }

/* SVG anatomical contours over premium art */
#shotsRegionScanner .gn-scanner-frame,
#shotsRegionScanner .gn-zone-map {
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; z-index: 6;
}
#shotsRegionScanner .gn-zone-map { z-index: 7; }
#shotsRegionScanner .gn-zone-layer { opacity: 0; transition: opacity .18s ease; }
#shotsRegionScanner .asset-scan-stage.mode-core .gn-zone-layer[data-mode="core"],
#shotsRegionScanner .asset-scan-stage.mode-lower .gn-zone-layer[data-mode="lower"],
#shotsRegionScanner .asset-scan-stage.mode-upper .gn-zone-layer[data-mode="upper"] { opacity: 1; }
#shotsRegionScanner .gn-zone-path {
  fill: rgba(0, 220, 245, .04);
  stroke: var(--gn-zone-ready);
  stroke-width: 0.95;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
  filter: url(#gnZoneGlow);
  transition: fill .14s ease, stroke .14s ease, stroke-width .14s ease, opacity .14s ease;
}
/* hierarchy: unselected siblings dim once one is locked */
#shotsRegionScanner .gn-zone-path.is-dim {
  opacity: .38;
  stroke-width: .8;
  filter: none;
}
#shotsRegionScanner .gn-zone-path.last:not(.selected) {
  stroke: var(--gn-zone-last); stroke-dasharray: 2.6 1.8;
  fill: rgba(255, 214, 120, .05); filter: none;
}
#shotsRegionScanner .gn-zone-path.recent:not(.selected) {
  stroke: var(--gn-zone-recent); stroke-dasharray: 1.2 2.0;
  fill: rgba(190, 150, 210, .04); filter: none;
}
#shotsRegionScanner .gn-zone-path.selected,
#shotsRegionScanner .gn-zone-path.selected-active {
  fill: rgba(0, 240, 255, .32);
  stroke: var(--gn-zone-selected);
  stroke-width: 2.1;
  filter: url(#gnZoneLock);
  animation: gnZoneLockPulse .5s ease-out 1;
}
#shotsRegionScanner .gn-zone-path.selected {
  stroke-width: 2.2; fill: rgba(0, 240, 255, .36);
  opacity: 1;
}
/* lock tick */
#shotsRegionScanner .gn-zone-path.selected::after { content: none; }
@keyframes gnZoneLockPulse {
  0% { fill: rgba(0, 255, 255, .34); stroke-width: 2.0; }
  100% { fill: rgba(0, 235, 255, .18); stroke-width: 1.5; }
}
@media (prefers-reduced-motion: reduce) {
  #shotsRegionScanner .gn-zone-path.selected { animation: none; }
}

/* Invisible forgiving touch targets */
#shotsRegionScanner .asset-scan-stage .track12-zone,
#shotsRegionScanner .asset-scan-stage .zone-overlay {
  opacity: 0 !important; background: transparent !important;
  border: 0 !important; box-shadow: none !important; filter: none !important;
  z-index: 8 !important; pointer-events: none !important;
}
#shotsRegionScanner .asset-scan-stage.mode-core .track12-zone[data-mode="core"],
#shotsRegionScanner .asset-scan-stage.mode-lower .track12-zone[data-mode="lower"],
#shotsRegionScanner .asset-scan-stage.mode-upper .track12-zone[data-mode="upper"] {
  pointer-events: auto !important; visibility: visible !important;
  min-width: 48px !important; min-height: 48px !important;
}
#shotsRegionScanner .asset-scan-stage .track12-zone::before,
#shotsRegionScanner .asset-scan-stage .track12-zone::after { content: none !important; display: none !important; }
/* Hit boxes only */
#shotsRegionScanner .asset-scan-stage.mode-core .zone-core-lu { left: 33% !important; top: 52% !important; width: 17% !important; height: 14% !important; transform: none !important; border-radius: 0 !important; }
#shotsRegionScanner .asset-scan-stage.mode-core .zone-core-ru { left: 50% !important; top: 52% !important; width: 17% !important; height: 14% !important; transform: none !important; border-radius: 0 !important; }
#shotsRegionScanner .asset-scan-stage.mode-core .zone-core-ll { left: 33% !important; top: 64% !important; width: 17% !important; height: 14% !important; transform: none !important; border-radius: 0 !important; }
#shotsRegionScanner .asset-scan-stage.mode-core .zone-core-rl { left: 50% !important; top: 64% !important; width: 17% !important; height: 14% !important; transform: none !important; border-radius: 0 !important; }
#shotsRegionScanner .asset-scan-stage.mode-lower .zone-lower-lu { left: 20% !important; top: 36% !important; width: 22% !important; height: 22% !important; transform: none !important; border-radius: 0 !important; }
#shotsRegionScanner .asset-scan-stage.mode-lower .zone-lower-ru { left: 58% !important; top: 36% !important; width: 22% !important; height: 22% !important; transform: none !important; border-radius: 0 !important; }
#shotsRegionScanner .asset-scan-stage.mode-lower .zone-lower-ll { left: 20% !important; top: 56% !important; width: 22% !important; height: 22% !important; transform: none !important; border-radius: 0 !important; }
#shotsRegionScanner .asset-scan-stage.mode-lower .zone-lower-rl { left: 58% !important; top: 56% !important; width: 22% !important; height: 22% !important; transform: none !important; border-radius: 0 !important; }
#shotsRegionScanner .asset-scan-stage.mode-upper .zone-upper-lu { left: 1% !important; top: 25% !important; width: 18% !important; height: 20% !important; transform: none !important; border-radius: 0 !important; }
#shotsRegionScanner .asset-scan-stage.mode-upper .zone-upper-ll { left: 2% !important; top: 43% !important; width: 18% !important; height: 20% !important; transform: none !important; border-radius: 0 !important; }
#shotsRegionScanner .asset-scan-stage.mode-upper .zone-upper-ru { left: 81% !important; top: 25% !important; width: 18% !important; height: 20% !important; transform: none !important; border-radius: 0 !important; }
#shotsRegionScanner .asset-scan-stage.mode-upper .zone-upper-rl { left: 80% !important; top: 43% !important; width: 18% !important; height: 20% !important; transform: none !important; border-radius: 0 !important; }

#shotsRegionScanner .asset-scan-stage.mode-core .track12-zone:not([data-mode="core"]),
#shotsRegionScanner .asset-scan-stage.mode-lower .track12-zone:not([data-mode="lower"]),
#shotsRegionScanner .asset-scan-stage.mode-upper .track12-zone:not([data-mode="upper"]) {
  pointer-events: none !important; visibility: hidden !important;
}

#shotsRegionScanner .gn-location-lock {
  display: none; margin-top: 8px; padding: 10px 12px; border-radius: 12px;
  border: 1px solid rgba(0, 245, 255, .38);
  background: linear-gradient(135deg, rgba(0, 212, 255, .14), rgba(0, 0, 0, .3));
  font: 700 .68rem/1.25 var(--font-m, monospace);
  letter-spacing: 1.2px; color: #e9fbff; text-transform: uppercase;
}
#shotsRegionScanner .gn-location-lock.is-on { display: block; animation: gnLockIn .28s ease; }
#shotsRegionScanner .gn-location-lock small {
  display: block; margin-bottom: 3px; font-size: .52rem; letter-spacing: 1.6px; color: #00d4ff; opacity: .92;
}
@keyframes gnLockIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
html[data-theme="light"] #shotsRegionScanner .gn-location-lock {
  background: rgba(0, 111, 130, .08); border-color: rgba(0, 111, 130, .35); color: #00384a;
}
html[data-theme="light"] #shotsRegionScanner .gn-location-lock small { color: #006f82; }
html[data-theme="light"] #shotsRegionScanner .gn-zone-path {
  stroke: rgba(0, 111, 130, .75); fill: rgba(0, 111, 130, .05);
}
html[data-theme="light"] #shotsRegionScanner .gn-zone-path.selected {
  stroke: #006f82; fill: rgba(0, 111, 130, .16);
}

/* S2 — TRUST GRAMMAR components. Semantics are structural, never color-only.
   RECORDED: solid frame, cyan. ESTIMATE: dashed/segmented frame, amber.
   PLAN: outlined frame, violet. STATUS: operational pills. */
.gn-trust-badge{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--font-m);font-size:.58rem;font-weight:700;letter-spacing:2.5px;
  padding:4px 10px;border-radius:3px;white-space:nowrap;vertical-align:middle;
}
.gn-trust-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.gn-trust-recorded{color:var(--trust-recorded-accent);border:1px solid var(--trust-recorded-border);background:var(--trust-recorded-bg)}
.gn-trust-estimate{color:var(--trust-estimate-accent);border:1px dashed var(--trust-estimate-border);background:var(--trust-estimate-bg)}
.gn-trust-plan{color:var(--trust-plan-accent);border:1px solid var(--trust-plan-border);background:transparent}
.gn-trust-status{color:var(--trust-status-mute);border:1px solid var(--border2);background:transparent}
.gn-trust-status.ok{color:var(--trust-status-ok)}
.gn-trust-status.warn{color:var(--trust-status-warn)}
.gn-trust-status.err{color:var(--trust-status-err)}
/* Structural treatments for surfaces (not just badges) */
.gn-trust-surface-estimate{border-style:dashed !important;border-color:var(--trust-estimate-border) !important}
.gn-trust-surface-plan{border-style:solid !important;border-color:var(--trust-plan-border) !important;background:var(--trust-plan-bg)}
/* Module-level inheritance: a module declares its nature once, children inherit
   the accent without repeating the badge (ChatGPT: don't over-badge). */
[data-trust="estimate"]{--trust-module-accent:var(--trust-estimate-accent)}
[data-trust="recorded"]{--trust-module-accent:var(--trust-recorded-accent)}
[data-trust="plan"]{--trust-module-accent:var(--trust-plan-accent)}
/* Estimate ring treatment: amber dashed halo for modeled values */
.gn-phase-ring-estimate{filter:drop-shadow(0 0 6px rgba(255,179,0,.25))}
.gn-phase-ring-estimate{position:relative}
.gn-phase-ring-estimate::after{
  content:'';position:absolute;inset:-10px;border:1.5px dashed var(--trust-estimate-border);
  border-radius:50%;pointer-events:none;
}
