
/*
 GP's Route Optimizer V9.3.8
 Visual-only premium dark theme.
 Camera, OCR, printing and application JavaScript are intentionally untouched.
*/

:root{
  --v938-black:#02050b;
  --v938-black-soft:#060b14;
  --v938-panel:#0b1322;
  --v938-panel-2:#111c2e;
  --v938-line:rgba(148,163,184,.17);
  --v938-text:#f8fafc;
  --v938-muted:#94a3b8;
  --v938-blue:#2388ff;
  --v938-blue-2:#135de6;
  --v938-cyan:#22d3ee;
  --v938-neon:#38bdf8;
  --v938-green:#22c55e;
  --v938-danger:#ff4967;
  --v938-shadow:0 24px 64px rgba(0,0,0,.42);
  --v938-radius:24px;
}

/* Premium typography and dark canvas */
html,
body{
  background:
    radial-gradient(circle at 90% -8%,rgba(35,136,255,.13),transparent 26rem),
    linear-gradient(180deg,var(--v938-black),var(--v938-black-soft))!important;
  color:var(--v938-text)!important;
  font-family:
    Inter,
    Poppins,
    ui-sans-serif,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4,strong,b{
  letter-spacing:-.025em;
}

small,.small,p,.muted{
  color:var(--v938-muted);
}

/* Elegant card surfaces without changing document structure */
.card,
.panel,
.sheet,
[class*="-panel"],
[class*="-card"],
.v84-result-box,
.v85-result,
.v85-privacy{
  border-color:var(--v938-line)!important;
}

.v84-scanner-sheet{
  background:rgba(1,4,10,.78)!important;
  backdrop-filter:blur(16px) saturate(125%);
  -webkit-backdrop-filter:blur(16px) saturate(125%);
}

.v84-scanner-panel{
  background:
    linear-gradient(160deg,rgba(17,28,46,.98),rgba(5,11,20,.99))!important;
  border:1px solid rgba(56,189,248,.20)!important;
  border-radius:30px!important;
  box-shadow:
    0 34px 100px rgba(0,0,0,.62),
    inset 0 1px 0 rgba(255,255,255,.055)!important;
}

.v84-scanner-head{
  border-bottom-color:rgba(148,163,184,.11)!important;
}

.v84-scanner-head h2{
  color:#fff!important;
  font-weight:900!important;
}

.v6-eyebrow{
  color:var(--v938-cyan)!important;
  letter-spacing:.17em!important;
}

/* Premium camera widget */
.v85-video-wrap{
  position:relative!important;
  isolation:isolate;
  overflow:hidden!important;
  border-radius:26px!important;
  border:1px solid rgba(56,189,248,.28)!important;
  background:#01040a!important;
  box-shadow:
    0 24px 58px rgba(0,0,0,.48),
    0 0 0 1px rgba(35,136,255,.08),
    inset 0 0 42px rgba(0,0,0,.30)!important;
}

.v85-video-wrap::before{
  content:"";
  position:absolute;
  z-index:3;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:
    linear-gradient(180deg,rgba(2,6,15,.18),transparent 28%,transparent 72%,rgba(2,6,15,.25)),
    radial-gradient(circle at center,transparent 45%,rgba(2,6,15,.24) 100%);
}

/* Animated laser line above the camera stream */
.v85-video-wrap::after{
  content:"";
  position:absolute;
  z-index:6;
  left:8%;
  right:8%;
  top:18%;
  height:2px;
  pointer-events:none;
  border-radius:999px;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(34,211,238,.55) 10%,
      #7dd3fc 48%,
      #fff 50%,
      #7dd3fc 52%,
      rgba(34,211,238,.55) 90%,
      transparent
    );
  box-shadow:
    0 0 8px rgba(56,189,248,.95),
    0 0 18px rgba(35,136,255,.78),
    0 0 34px rgba(34,211,238,.38);
  animation:v938LaserScan 2.15s cubic-bezier(.45,0,.55,1) infinite;
}

@keyframes v938LaserScan{
  0%,100%{
    transform:translateY(0);
    opacity:.25;
  }
  12%{
    opacity:1;
  }
  50%{
    transform:translateY(calc(42vh - 96px));
    opacity:1;
  }
  88%{
    opacity:1;
  }
}

#v85Video{
  display:block!important;
  width:100%!important;
  background:#01040a!important;
  filter:saturate(.96) contrast(1.04);
}

.v85-focus-box{
  z-index:5!important;
  border:3px solid #25d67d!important;
  border-radius:24px!important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.11),
    0 0 26px rgba(34,197,94,.30),
    inset 0 0 28px rgba(34,197,94,.07)!important;
}

.v85-focus-label{
  z-index:7!important;
  border:1px solid rgba(255,255,255,.10)!important;
  background:rgba(2,6,15,.76)!important;
  color:#dcfce7!important;
  box-shadow:0 9px 28px rgba(0,0,0,.34)!important;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

/* Mode selector */
.v85-mode-tabs{
  padding:5px!important;
  gap:5px!important;
  border-radius:19px!important;
  background:#060d19!important;
  border:1px solid rgba(148,163,184,.14)!important;
  box-shadow:inset 0 1px 5px rgba(0,0,0,.5)!important;
}

.v85-mode-tabs button{
  border-radius:15px!important;
  color:#8ea1bb!important;
  font-weight:850!important;
  transition:
    transform .15s ease,
    color .18s ease,
    background .18s ease,
    box-shadow .18s ease!important;
}

.v85-mode-tabs button.active{
  color:#fff!important;
  background:linear-gradient(135deg,var(--v938-blue),var(--v938-blue-2))!important;
  box-shadow:
    0 11px 26px rgba(35,136,255,.34),
    inset 0 1px 0 rgba(255,255,255,.18)!important;
}

/* Modern action buttons */
button,
.button,
.primary,
.soft{
  font-family:inherit!important;
  font-weight:820!important;
  letter-spacing:-.012em;
  transition:
    transform .14s ease,
    box-shadow .18s ease,
    border-color .18s ease,
    background .18s ease,
    filter .18s ease!important;
  -webkit-tap-highlight-color:transparent;
}

button:active,
.button:active,
.primary:active,
.soft:active{
  transform:scale(.975)!important;
}

button:focus-visible{
  outline:3px solid rgba(56,189,248,.38)!important;
  outline-offset:2px;
}

.primary{
  color:#fff!important;
  background:linear-gradient(135deg,var(--v938-blue),var(--v938-blue-2))!important;
  border:1px solid rgba(125,211,252,.26)!important;
  box-shadow:
    0 15px 32px rgba(35,136,255,.28),
    inset 0 1px 0 rgba(255,255,255,.18)!important;
}

.primary:hover{
  filter:brightness(1.08);
  box-shadow:
    0 18px 38px rgba(35,136,255,.36),
    0 0 24px rgba(34,211,238,.12)!important;
}

.soft{
  color:#e5efff!important;
  background:
    linear-gradient(145deg,rgba(25,40,64,.96),rgba(12,22,37,.98))!important;
  border:1px solid rgba(148,163,184,.17)!important;
  box-shadow:
    0 11px 25px rgba(0,0,0,.25),
    inset 0 1px 0 rgba(255,255,255,.045)!important;
}

/* Icons for scanner actions, added visually only */
#v85RestartCamera::before{
  content:"↻";
  margin-right:8px;
  color:var(--v938-cyan);
  font-size:1.13em;
}

#v852AutoScanToggle::before{
  content:"Ⅱ";
  display:inline-grid;
  place-items:center;
  width:19px;
  height:19px;
  margin-right:8px;
  border-radius:6px;
  color:#fff;
  background:rgba(255,255,255,.13);
  font-size:.72em;
}

#v84CloseScanner::before{
  content:"×";
  margin-right:7px;
  color:#fda4af;
  font-size:1.15em;
}

#v851RepeatStop::before{
  content:"↻";
  margin-right:8px;
}

#v85ClearList::before{
  content:"⌫";
  margin-right:7px;
  color:#fda4af;
}

/* Result card */
.v85-result{
  border-radius:26px!important;
  background:
    radial-gradient(circle at 50% 22%,rgba(35,136,255,.13),transparent 46%),
    linear-gradient(160deg,#0d192b,#050b14)!important;
  border:1px solid rgba(56,189,248,.22)!important;
  box-shadow:
    0 24px 54px rgba(0,0,0,.36),
    inset 0 1px 0 rgba(255,255,255,.05)!important;
}

.v85-stop-label{
  color:#93c5fd!important;
  letter-spacing:.17em!important;
}

.v85-stop-number{
  color:#fff!important;
  text-shadow:
    0 0 24px rgba(35,136,255,.26),
    0 8px 28px rgba(0,0,0,.45)!important;
}

.v85-stop-address{
  color:#cbd5e1!important;
}

/* Privacy and list surfaces */
.v85-privacy,
.v84-result-box{
  border-radius:22px!important;
  background:linear-gradient(160deg,rgba(11,25,41,.96),rgba(5,14,25,.98))!important;
  border:1px solid rgba(45,212,191,.20)!important;
  box-shadow:0 15px 34px rgba(0,0,0,.23)!important;
}

.v85-privacy{
  color:#99f6e4!important;
}

/* Respect accessibility */
@media(prefers-reduced-motion:reduce){
  .v85-video-wrap::after{
    animation:none!important;
    top:50%;
    opacity:.75;
  }
  button,
  .button,
  .primary,
  .soft{
    transition:none!important;
  }
}

/*
 Printing protection:
 no existing print selectors, dimensions, page breaks, or print-only content
 are changed by this theme.
*/
@media print{
  .v85-video-wrap::after{
    display:none!important;
  }
}
