:root {
  --bg: #070a10;
  --panel: rgba(15, 20, 30, .82);
  --panel-strong: #111722;
  --line: rgba(255,255,255,.09);
  --text: #f4f7fb;
  --muted: #8e9aad;
  --cyan: #54c7ff;
  --green: #51e6a5;
  --red: #ff5367;
  --amber: #ffbd59;
  --radius: 26px;
  --shadow: 0 28px 80px rgba(0,0,0,.38);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--bg); color: var(--text); }
body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  background: radial-gradient(circle at 50% -10%, #172237 0, #090d15 38%, var(--bg) 72%);
  color: var(--text);
  overflow-x: hidden;
}
button, input, select { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
.ambient {
  position: fixed;
  width: 42rem;
  height: 42rem;
  border-radius: 50%;
  filter: blur(90px);
  pointer-events: none;
  opacity: .12;
  z-index: -1;
}
.ambient-a { top: -18rem; left: -16rem; background: var(--cyan); }
.ambient-b { right: -20rem; bottom: -20rem; background: #705bff; }

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 12px;
}
.brand-lockup strong { display: block; font-size: 18px; letter-spacing: .01em; }
.brand-lockup span { display: block; color: var(--muted); font-size: 11px; letter-spacing: .08em; }
.brand-mark {
  width: 42px;
  height: 42px;
  display: grid !important;
  place-items: center;
  border-radius: 14px;
  color: #061019 !important;
  background: linear-gradient(145deg, #8de5ff, #4ab8ff);
  font-weight: 900;
  box-shadow: 0 10px 32px rgba(72,183,255,.28);
}
.login-shell {
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 28px 18px;
}
.login-card {
  width: min(430px, 100%);
  padding: 32px;
  border: 1px solid var(--line);
  border-radius: 30px;
  background: linear-gradient(160deg, rgba(22,29,43,.9), rgba(9,13,21,.92));
  box-shadow: var(--shadow);
  backdrop-filter: blur(24px);
}
.eyebrow {
  margin: 30px 0 10px;
  color: var(--cyan);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
}
.login-card h1 { margin: 0; font-size: clamp(38px, 10vw, 56px); line-height: .98; letter-spacing: -.045em; }
.login-copy { color: var(--muted); line-height: 1.6; margin: 20px 0 26px; }
.login-form { display: grid; gap: 14px; }
.login-form label { display: grid; gap: 8px; color: #bcc6d6; font-size: 12px; font-weight: 700; }
.login-form input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(5,8,14,.72);
  color: var(--text);
  padding: 14px 15px;
  outline: none;
  transition: border-color .18s, box-shadow .18s;
}
.login-form input:focus { border-color: rgba(84,199,255,.62); box-shadow: 0 0 0 4px rgba(84,199,255,.08); }
.form-error { min-height: 18px; margin: 0; color: #ff8090; font-size: 12px; }
.privacy-note { margin: 18px 0 0; color: #707d90; font-size: 11px; line-height: 1.5; }

.btn {
  border: 0;
  border-radius: 17px;
  min-height: 50px;
  padding: 0 18px;
  color: var(--text);
  font-weight: 800;
  cursor: pointer;
  transition: transform .16s ease, opacity .16s ease, box-shadow .16s ease;
}
.btn:active:not(:disabled) { transform: translateY(1px) scale(.995); }
.btn:disabled { opacity: .46; cursor: not-allowed; }
.btn-primary { background: linear-gradient(135deg, #58cdfd, #4d8dff); color: #07111e; box-shadow: 0 14px 34px rgba(77,141,255,.25); }

.app-shell { min-height: 100dvh; padding-bottom: 98px; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px max(16px, env(safe-area-inset-left));
  background: rgba(7,10,16,.74);
  border-bottom: 1px solid rgba(255,255,255,.055);
  backdrop-filter: blur(22px);
}
.brand-compact .brand-mark { width: 36px; height: 36px; border-radius: 12px; }
.brand-compact strong { font-size: 15px; }
.brand-compact span { font-size: 10px; }
.topbar-actions { display: flex; align-items: center; gap: 8px; }
#deviceSelect {
  max-width: 170px;
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #101722;
  color: var(--text);
  padding: 0 10px;
  outline: none;
}
.icon-btn {
  width: 38px;
  height: 38px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.035);
  color: #c6d2e2;
  cursor: pointer;
}

.dashboard { width: min(1120px, 100%); margin: 0 auto; padding: 18px 16px 28px; }
.hero-panel {
  border: 1px solid var(--line);
  border-radius: 30px;
  background: linear-gradient(160deg, rgba(18,25,38,.9), rgba(8,12,20,.88));
  box-shadow: var(--shadow);
  overflow: hidden;
}
.hero-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 22px 22px 0;
}
.hero-head .eyebrow { margin: 0 0 7px; }
.hero-head h2 { margin: 0; font-size: clamp(25px, 5vw, 36px); letter-spacing: -.035em; }
.device-pill {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(255,255,255,.035);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.device-pill.is-online { color: var(--green); border-color: rgba(81,230,165,.24); background: rgba(81,230,165,.07); }
.device-pill.is-offline { color: var(--red); border-color: rgba(255,83,103,.24); background: rgba(255,83,103,.07); }

.vehicle-stage {
  position: relative;
  min-height: 390px;
  margin: 4px 0 -2px;
  display: grid;
  place-items: center;
}
.orbit {
  position: absolute;
  border: 1px solid rgba(120,170,220,.13);
  border-radius: 50%;
  pointer-events: none;
}
.orbit-one { width: 310px; height: 310px; animation: orbitPulse 4.5s ease-in-out infinite; }
.orbit-two { width: 250px; height: 250px; border-style: dashed; opacity: .55; animation: orbitSpin 24s linear infinite; }
.vehicle-core {
  position: relative;
  width: min(390px, 74vw);
  z-index: 3;
  transform: translateY(10px);
  animation: vehicleFloat 5s ease-in-out infinite;
}
.vehicle-art { display: block; width: 100%; filter: drop-shadow(0 22px 28px rgba(0,0,0,.48)); }
.vehicle-glow {
  position: absolute;
  left: 16%;
  right: 16%;
  bottom: 12%;
  height: 26%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(84,199,255,.30), transparent 70%);
  filter: blur(22px);
  z-index: -1;
}
.orbit-card {
  position: absolute;
  z-index: 4;
  width: 112px;
  min-height: 74px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: rgba(12,18,28,.84);
  backdrop-filter: blur(15px);
  box-shadow: 0 14px 34px rgba(0,0,0,.22);
}
.orbit-card strong, .orbit-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orbit-card strong { font-size: 14px; margin-top: 2px; }
.orbit-card small { color: var(--muted); font-size: 10px; margin-top: 3px; }
.orbit-icon { color: var(--cyan); font-size: 16px; }
.orbit-weather { top: 48px; left: max(18px, calc(50% - 218px)); }
.orbit-home { top: 72px; right: max(18px, calc(50% - 220px)); }
.orbit-mode { bottom: 45px; left: max(24px, calc(50% - 220px)); }
.orbit-frost { bottom: 58px; right: max(24px, calc(50% - 220px)); }

.protection-state {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  padding: 0 22px 20px;
}
.protection-state small { display: block; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.protection-state strong { display: block; font-size: 20px; margin-top: 2px; }
.state-dot {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #70798a;
  box-shadow: 0 0 0 7px rgba(112,121,138,.09);
}
.state-dot.is-protected { background: var(--green); box-shadow: 0 0 0 7px rgba(81,230,165,.10), 0 0 28px rgba(81,230,165,.55); }
.state-dot.is-unprotected { background: var(--red); box-shadow: 0 0 0 7px rgba(255,83,103,.10); }
.hero-actions {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 12px;
  padding: 0 20px 22px;
}
.btn-protect {
  background: linear-gradient(135deg, rgba(81,230,165,.22), rgba(44,154,120,.18));
  border: 1px solid rgba(81,230,165,.26);
  color: #bfffe3;
}
.btn-protect.is-active {
  background: linear-gradient(135deg, rgba(255,189,89,.18), rgba(255,123,80,.16));
  border-color: rgba(255,189,89,.26);
  color: #ffe0a3;
}
.btn-stop {
  background: linear-gradient(135deg, #d72d47, #8d1930);
  box-shadow: 0 12px 32px rgba(194,37,64,.23);
}
.btn-protect span, .btn-stop span { margin: 0 3px; }

.status-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
  margin-top: 14px;
}
.status-card {
  min-height: 132px;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--panel);
}
.status-card-head { display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 11px; }
.status-card > strong { display: block; margin-top: 18px; font-size: 20px; }
.status-card > small { display: block; margin-top: 5px; color: var(--muted); line-height: 1.45; }
.mini-badge {
  padding: 4px 7px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--cyan);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .08em;
}
.mini-badge.is-warn { color: var(--amber); border-color: rgba(255,189,89,.25); }
.mini-badge.is-danger { color: var(--red); border-color: rgba(255,83,103,.28); }

.quick-panel {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
  margin-top: 14px;
}
.quick-tile {
  min-height: 84px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 20px;
  color: var(--text);
  background: rgba(15,20,30,.72);
  text-align: left;
  cursor: pointer;
}
.quick-tile strong, .quick-tile small { display: block; }
.quick-tile small { color: var(--muted); margin-top: 3px; }
.quick-icon { font-size: 23px; color: var(--cyan); }
.bottom-nav {
  position: fixed;
  left: 50%;
  bottom: max(10px, env(safe-area-inset-bottom));
  z-index: 30;
  width: min(560px, calc(100% - 24px));
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: repeat(5,1fr);
  padding: 8px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 22px;
  background: rgba(10,14,22,.90);
  backdrop-filter: blur(24px);
  box-shadow: 0 18px 50px rgba(0,0,0,.36);
}
.nav-item {
  min-height: 54px;
  border: 0;
  border-radius: 16px;
  background: transparent;
  color: #738096;
  cursor: pointer;
}
.nav-item span, .nav-item small { display: block; }
.nav-item span { font-size: 18px; }
.nav-item small { margin-top: 3px; font-size: 10px; font-weight: 700; }
.nav-item.is-active { color: var(--cyan); background: rgba(84,199,255,.075); }

.toast {
  position: fixed;
  left: 50%;
  bottom: 92px;
  z-index: 60;
  width: min(420px, calc(100% - 30px));
  transform: translateX(-50%);
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(18,24,35,.96);
  color: var(--text);
  box-shadow: 0 16px 44px rgba(0,0,0,.42);
  text-align: center;
  font-size: 13px;
}
.toast.is-error { border-color: rgba(255,83,103,.32); color: #ffb7c0; }
.toast.is-success { border-color: rgba(81,230,165,.28); color: #bfffe3; }
.busy-overlay {
  position: fixed;
  inset: 0;
  z-index: 70;
  display: grid;
  place-items: center;
  background: rgba(4,7,11,.38);
  backdrop-filter: blur(3px);
}
.spinner {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 3px solid rgba(255,255,255,.13);
  border-top-color: var(--cyan);
  animation: orbitSpin .8s linear infinite;
}

@keyframes orbitSpin { to { transform: rotate(360deg); } }
@keyframes orbitPulse { 0%,100% { transform: scale(.98); opacity: .58; } 50% { transform: scale(1.03); opacity: 1; } }
@keyframes vehicleFloat { 0%,100% { transform: translateY(10px); } 50% { transform: translateY(2px); } }
@media (max-width: 620px) {
  .login-card { padding: 26px 22px; }
  .topbar { align-items: flex-start; }
  .brand-compact div { display: none; }
  #deviceSelect { max-width: 145px; }
  .dashboard { padding-inline: 10px; }
  .hero-panel { border-radius: 24px; }
  .vehicle-stage { min-height: 350px; }
  .orbit-one { width: 270px; height: 270px; }
  .orbit-two { width: 215px; height: 215px; }
  .orbit-card { width: 96px; min-height: 68px; padding: 9px 10px; }
  .orbit-weather { top: 38px; left: 7px; }
  .orbit-home { top: 58px; right: 7px; }
  .orbit-mode { bottom: 41px; left: 10px; }
  .orbit-frost { bottom: 52px; right: 10px; }
  .hero-actions { grid-template-columns: 1fr; }
  .status-grid { grid-template-columns: 1fr; }
  .quick-panel { grid-template-columns: 1fr; }
  .quick-tile { min-height: 68px; }
}

@media (min-width: 880px) {
  .dashboard { padding-top: 28px; }
  .hero-panel { min-height: 590px; }
  .vehicle-stage { min-height: 405px; }
  .status-grid { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}

.btn-stop.is-armed {
  background: linear-gradient(135deg, #ff4c62, #c51f3b);
  box-shadow: 0 0 0 4px rgba(255,83,103,.12), 0 14px 38px rgba(255,45,76,.35);
  animation: stopPulse .8s ease-in-out infinite alternate;
}

@keyframes stopPulse {
  from { filter: brightness(1); }
  to { filter: brightness(1.12); }
}

.feature-page {
  width: min(900px, 100%);
  margin: 0 auto;
  padding: 22px 16px 118px;
}
.feature-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}
.feature-head .eyebrow { margin: 0 0 5px; }
.feature-head h1 { margin: 0; font-size: clamp(27px, 6vw, 40px); letter-spacing: -.04em; }
.feature-back { flex: 0 0 auto; }
.feature-body { display: grid; gap: 14px; }
.feature-card {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--panel);
}
.feature-card-head { margin-bottom: 15px; }
.feature-card-head h2 { margin: 0; font-size: 18px; }
.feature-card-head p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.field { display: grid; gap: 7px; margin-top: 12px; }
.field-label { color: #aab6c8; font-size: 11px; font-weight: 800; }
.field input, .field select {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(5,8,14,.62);
  color: var(--text);
  padding: 0 12px;
  outline: none;
}
.field input:focus, .field select:focus {
  border-color: rgba(84,199,255,.58);
  box-shadow: 0 0 0 3px rgba(84,199,255,.07);
}
.check-row {
  min-height: 46px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
  color: #dce5f1;
  font-size: 13px;
  font-weight: 700;
}
.check-row input { width: 19px; height: 19px; accent-color: var(--cyan); }
.check-row input:disabled + span { opacity: .45; }
.subform { margin-top: 13px; padding-top: 2px; }
.btn-secondary { margin-top: 12px; background: rgba(84,199,255,.08); border: 1px solid rgba(84,199,255,.18); color: #bceaff; }
.selected-region, .muted-copy {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}
.region-results { display: grid; gap: 8px; margin-top: 10px; }
.region-result {
  width: 100%;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.035);
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.region-result strong, .region-result small { display: block; }
.region-result small { margin-top: 4px; color: var(--muted); line-height: 1.35; }
.home-status { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.home-status strong { font-size: 18px; }
.home-status small { color: var(--muted); }
.button-row { display: flex; flex-wrap: wrap; gap: 10px; }
.button-row .btn { flex: 1 1 180px; }
.save-bar {
  position: sticky;
  bottom: 83px;
  z-index: 12;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 19px;
  background: rgba(8,12,19,.88);
  backdrop-filter: blur(18px);
}
.save-bar .btn { width: 100%; }

.btn-link {
  width: 100%;
  margin-top: 10px;
  min-height: 44px;
  background: transparent;
  color: #9edfff;
  border: 1px solid rgba(84,199,255,.14);
}
.signup-card { position: relative; width: min(520px, 100%); }
.signup-back { position: absolute; top: 22px; right: 22px; }
.login-form select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(5,8,14,.72);
  color: var(--text);
  padding: 14px 15px;
  outline: none;
}
.legal-list {
  display: grid;
  gap: 10px;
  padding: 12px 0 2px;
}
.legal-list label {
  display: flex;
  grid-template-columns: none;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.45;
}
.legal-list input {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  margin-top: 1px;
  accent-color: var(--cyan);
}
.legal-link {
  display: inline-block;
  color: #9edfff;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}
.legal-link:hover { text-decoration: underline; }
.signup-result {
  margin-top: 18px;
  padding: 16px;
  border: 1px solid rgba(81,230,165,.24);
  border-radius: 18px;
  background: rgba(81,230,165,.07);
}
.signup-result strong { display: block; color: #bfffe3; font-size: 18px; }
.signup-result p { color: #aebac9; line-height: 1.5; }
.signup-result small { display: block; color: var(--muted); word-break: break-word; }
.link-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.service-status {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.service-status span {
  color: var(--muted);
  font-size: 12px;
}
.service-status strong {
  max-width: 62%;
  text-align: right;
  font-size: 12px;
  overflow-wrap: anywhere;
}
.feature-menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.feature-menu-item {
  min-height: 92px;
}
@media (max-width: 620px) {
  .feature-menu { grid-template-columns: 1fr; }
}
.rental-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.rental-metric {
  min-height: 74px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.025);
}
.rental-metric strong {
  display: block;
  font-size: 18px;
}
.rental-metric small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
}
.rental-list {
  display: grid;
  gap: 8px;
  margin-top: 13px;
}
.rental-list-row {
  padding: 12px 13px;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 14px;
  background: rgba(255,255,255,.022);
}
.rental-list-row strong,
.rental-list-row small {
  display: block;
}
.rental-list-row small {
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.4;
  overflow-wrap: anywhere;
}
@media (min-width: 760px) {
  .rental-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.taxi-message-input,
.voice-text-input {
  width: 100%;
  min-height: 96px;
  resize: vertical;
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(5,8,14,.62);
  color: var(--text);
  padding: 12px;
  outline: none;
}
.taxi-message-input:focus,
.voice-text-input:focus {
  border-color: rgba(84,199,255,.58);
  box-shadow: 0 0 0 3px rgba(84,199,255,.07);
}
.list-stack {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}
.list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 13px;
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 14px;
  background: rgba(255,255,255,.022);
}
.list-item strong,
.list-item small { display: block; }
.list-item small {
  margin-top: 5px;
  color: var(--muted);
  overflow-wrap: anywhere;
}.list-side {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 9px;
  border: 1px solid rgba(84,199,255,.22);
  border-radius: 999px;
  background: rgba(84,199,255,.08);
  color: #ccefff;
  font-size: 11px;
  font-weight: 800;
}
.btn-small { min-height: 34px; padding: 8px 11px; }
@media (max-width: 620px) {
  .list-item { align-items: flex-start; flex-direction: column; }
  .list-side { width: 100%; justify-content: space-between; }
}
.voice-text-input {
  width: 100%;
  min-height: 104px;
  resize: vertical;
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(5,8,14,.62);
  color: var(--text);
  padding: 12px;
  outline: none;
}
.voice-text-input:focus {
  border-color: rgba(84,199,255,.58);
  box-shadow: 0 0 0 3px rgba(84,199,255,.07);
}

/* IMO i18n V18 */
.language-picker {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  margin: -4px 0 18px;
  color: var(--muted);
}
.language-select {
  min-height: 36px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #101722;
  color: var(--text);
  padding: 0 10px;
  outline: none;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
}
.language-select:focus { border-color: rgba(84,199,255,.62); box-shadow: 0 0 0 3px rgba(84,199,255,.08); }
.language-select-compact { width: 102px; }
@media (max-width: 620px) {
  .language-select-compact { width: 72px; padding-inline: 6px; }
  #deviceSelect { max-width: 115px; }
}


/* IMO_PARTNER_ADMIN_V18 */
.admin-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.admin-metric {
  min-width: 0;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(84,199,255,.08), rgba(255,255,255,.025));
}
.admin-metric small, .admin-metric span { display: block; color: var(--muted); font-size: 11px; }
.admin-metric strong { display: block; margin: 8px 0 5px; font-size: 28px; letter-spacing: -.04em; }
.admin-partner-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.admin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-feature-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 16px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.025);
}
.admin-device-row {
  margin-top: 12px;
  padding: 13px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 16px;
  background: rgba(0,0,0,.12);
}
.admin-thread { display: grid; gap: 8px; margin: 12px 0; }
.admin-message { padding: 11px 13px; border-radius: 14px; background: rgba(255,255,255,.04); }
.admin-message.is-support { background: rgba(84,199,255,.07); }
.admin-message strong { display: block; color: var(--muted); font-size: 10px; }
.admin-message p { margin: 6px 0 0; line-height: 1.45; font-size: 13px; }
.admin-diagnostics { margin-top: 10px; padding: 0 12px; border-radius: 14px; background: rgba(84,199,255,.045); }
@media (max-width: 720px) {
  .admin-metrics, .admin-partner-grid, .admin-form-grid { grid-template-columns: 1fr; }
  .admin-feature-grid { grid-template-columns: 1fr; }
}

/* IMO PREMIUM COCKPIT PARITY V18 */
body[data-imo-theme="standard"] { --accent:#55b8ff; --accent2:#2f7dd8; --cockpit-glow:rgba(51,140,220,.24); }
body[data-imo-theme="family-amber"] { --accent:#f0ad38; --accent2:#a86b12; --cockpit-glow:rgba(240,173,56,.23); }
body[data-imo-theme="emerald"] { --accent:#45dc91; --accent2:#168458; --cockpit-glow:rgba(69,220,145,.22); }
body[data-imo-theme="titanium"] { --accent:#b6c4d3; --accent2:#67798e; --cockpit-glow:rgba(182,196,211,.18); }
body[data-imo-theme="platinum-gold"] { --accent:#d7ad50; --accent2:#8e6822; --cockpit-glow:rgba(215,173,80,.26); }

.premium-topbar { max-width: 1120px; margin: 0 auto; border: 0; background: transparent; }
.brand-shield { width:32px; height:32px; display:grid!important; place-items:center; border:1px solid color-mix(in srgb,var(--accent) 55%,transparent); border-radius:10px; color:var(--accent)!important; box-shadow:0 0 22px var(--cockpit-glow); }
.platinum-badge { margin-left:8px; padding:4px 9px; border:1px solid rgba(215,173,80,.38); border-radius:999px; color:#e3be68!important; font-size:8px!important; font-weight:900; letter-spacing:.14em; }
.system-pill { display:flex; align-items:center; gap:7px; min-height:34px; padding:0 10px; border:1px solid var(--line); border-radius:999px; font-size:10px; color:var(--muted); background:rgba(255,255,255,.025); }
.system-pill i { width:7px; height:7px; border-radius:50%; background:#8a96a7; }
.system-pill i.is-ok { background:var(--green); box-shadow:0 0 12px rgba(81,230,165,.65); }
.system-pill i.is-bad { background:var(--red); box-shadow:0 0 12px rgba(255,83,103,.55); }
.icon-btn.is-active { border-color:color-mix(in srgb,var(--accent) 60%,transparent); color:var(--accent); box-shadow:0 0 18px var(--cockpit-glow); }
.premium-picker { width:min(1120px,calc(100% - 32px)); margin:0 auto 10px; display:flex; align-items:center; gap:12px; padding:9px 12px; border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line)); border-radius:13px; background:rgba(10,14,20,.72); }
.premium-picker label { display:grid; flex:1; gap:2px; }
.premium-picker small { color:#6f7f92; font-size:8px; font-weight:900; letter-spacing:.16em; }
.premium-picker #deviceSelect { max-width:none; width:100%; min-height:28px; border:0; padding:0; background:transparent; font-weight:800; }
.vehicle-picker-icon { color:var(--accent); }
.premium-dashboard { max-width:1120px; padding-top:4px; }
.mode-strip { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:14px; margin-bottom:10px; padding:10px 12px; border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line)); border-radius:14px; background:linear-gradient(180deg,rgba(17,22,30,.82),rgba(8,12,18,.88)); }
.mode-strip small,.mode-strip-meta span { display:block; color:#718196; font-size:8px; font-weight:900; letter-spacing:.13em; }
.mode-strip strong,.mode-strip-meta b { color:#f5f8fb; font-size:12px; }
.mini-action { min-height:30px; padding:0 11px; border:1px solid var(--line); border-radius:9px; background:rgba(255,255,255,.035); color:#dce8f3; font-size:10px; font-weight:800; cursor:pointer; }
.premium-hero { position:relative; border-radius:18px; border-color:color-mix(in srgb,var(--accent) 26%,var(--line)); background:radial-gradient(circle at 50% 34%,var(--cockpit-glow),transparent 35%),linear-gradient(180deg,rgba(12,17,24,.96),rgba(5,8,13,.98)); box-shadow:0 30px 90px rgba(0,0,0,.46),inset 0 1px rgba(255,255,255,.025); }
.premium-hero-head { padding:16px 16px 0; align-items:center; }
.premium-hero-head .eyebrow { color:#7d8da0; font-size:8px; }
.alarm-title-row { display:flex; align-items:center; gap:10px; }
.premium-hero-head h2 { font-size:34px; color:#dbe7f1; text-shadow:0 0 25px color-mix(in srgb,var(--accent) 18%,transparent); }
.premium-hero-head small { color:#78899b; font-size:10px; }
.weather-pill { display:flex; align-items:center; gap:6px; min-height:34px; padding:0 11px; border:1px solid var(--line); border-radius:999px; background:rgba(8,12,18,.7); font-size:10px; }
.weather-pill strong { font-size:13px; }
.security-stage { position:relative; min-height:280px; display:grid; place-items:center; overflow:hidden; }
.vehicle-rings { position:absolute; width:340px; height:340px; border:1px solid color-mix(in srgb,var(--accent) 22%,transparent); border-radius:50%; box-shadow:0 0 75px var(--cockpit-glow),inset 0 0 80px color-mix(in srgb,var(--accent) 5%,transparent); }
.vehicle-rings::after { content:""; position:absolute; inset:38px; border:1px solid color-mix(in srgb,var(--accent) 13%,transparent); border-radius:50%; }
.premium-vehicle-core { width:min(440px,62vw); animation:vehicleFloat 6s ease-in-out infinite; }
.vehicle-art-real { display:block; width:100%; max-height:240px; object-fit:contain; filter:drop-shadow(0 24px 26px rgba(0,0,0,.62)); }
.orbit-stat { position:absolute; top:74px; display:flex; align-items:center; gap:8px; min-width:142px; padding:9px 10px; border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line)); border-radius:12px; background:rgba(7,12,18,.78); box-shadow:0 14px 34px rgba(0,0,0,.23); }
.orbit-stat span { width:25px; height:25px; display:grid; place-items:center; border-radius:9px; background:rgba(63,218,139,.11); color:var(--green); }
.orbit-stat small { display:block; color:#75879a; font-size:7px; font-weight:900; }
.orbit-stat strong { display:block; margin-top:2px; font-size:10px; color:#e8f2fa; }
.orbit-left { left:46px; } .orbit-right { right:46px; }
.position-strip { display:flex; align-items:center; gap:10px; margin:0 12px 8px; padding:9px 11px; border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.025); }
.position-strip>span { width:26px; height:26px; display:grid; place-items:center; border-radius:8px; background:rgba(84,199,255,.08); color:var(--accent); }
.position-strip>div { flex:1; min-width:0; } .position-strip small { display:block; color:#687a8f; font-size:7px; font-weight:900; } .position-strip strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; }
.vehicle-health-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; margin:0 12px 9px; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--line); }
.vehicle-health-grid>div { min-width:0; padding:9px 10px; background:rgba(9,13,19,.95); }
.vehicle-health-grid small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#687a8f; font-size:7px; }
.vehicle-health-grid span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--green); font-size:7px; opacity:.82; }
.vehicle-health-grid strong { display:block; margin:3px 0 2px; color:var(--green); font-size:10px; text-shadow:0 0 14px color-mix(in srgb,var(--green) 22%,transparent); }
.frost-banner { width:calc(100% - 24px); margin:0 12px 8px; min-height:38px; display:flex; justify-content:space-between; align-items:center; padding:0 12px; border:1px solid rgba(71,166,255,.20); border-radius:10px; background:linear-gradient(90deg,rgba(28,121,207,.16),rgba(36,93,153,.07)); color:#d9ecff; font-weight:800; cursor:pointer; }
.frost-banner strong { color:#d7e5f3; font-size:10px; }
.premium-actions { grid-template-columns:repeat(3,1fr); margin:0 12px 8px; padding:0; }
.cockpit-action { min-height:48px; border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line)); background:rgba(255,255,255,.025); }
.child-rescue-banner { position:relative; overflow:hidden; width:calc(100% - 24px); margin:0 12px 8px; min-height:50px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; padding:8px 12px; border:1px solid rgba(224,157,49,.28); border-radius:11px; background:linear-gradient(90deg,rgba(145,85,12,.22),rgba(78,46,10,.10)); color:#f3ddba; text-align:left; cursor:pointer; touch-action:manipulation; user-select:none; -webkit-user-select:none; }
.child-rescue-banner span:first-child { font-size:20px; } .child-rescue-banner strong,.child-rescue-banner small { display:block; } .child-rescue-banner strong { font-size:11px; } .child-rescue-banner small { margin-top:2px; color:#a89579; font-size:8px; }
.child-rescue-banner::after { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:#f0b44c; transform:scaleX(0); transform-origin:left center; }
.child-rescue-banner.is-holding::after { animation:childRescueHold 3s linear forwards; }
.child-rescue-banner.is-active { border-color:rgba(63,218,139,.48); background:linear-gradient(90deg,rgba(26,124,76,.28),rgba(16,68,45,.14)); color:#d9f8e8; }
.child-rescue-banner.is-active small { color:#91c9aa; }
.child-rescue-banner:disabled { cursor:not-allowed; opacity:.62; }
@keyframes childRescueHold { from { transform:scaleX(0); } to { transform:scaleX(1); } }
.emergency-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:0 12px 12px; }
.emergency-police { min-height:54px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:9px; padding:8px 12px; border:1px solid rgba(55,154,235,.25); border-radius:11px; background:linear-gradient(90deg,rgba(13,83,140,.25),rgba(10,37,61,.18)); color:#dfefff; text-align:left; cursor:pointer; }
.emergency-police strong,.emergency-police small { display:block; } .emergency-police strong { font-size:10px; } .emergency-police small { color:#7392aa; font-size:8px; }
.emergency-stop { min-height:54px; border-radius:11px; }
.map-geofence-grid { display:grid; grid-template-columns:1.08fr .92fr; gap:10px; margin-top:10px; }
.cockpit-card { border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line)); border-radius:16px; background:linear-gradient(180deg,rgba(13,19,28,.92),rgba(7,11,17,.96)); overflow:hidden; }
.cockpit-card header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 13px; }
.cockpit-card header strong,.cockpit-card header small { display:block; } .cockpit-card header strong { font-size:12px; } .cockpit-card header small { margin-top:2px; color:#708297; font-size:8px; }
.map-wrap { position:relative; height:235px; margin:0 10px; overflow:hidden; border:1px solid var(--line); border-radius:11px; background:#0a1018; }
.map-canvas { position:absolute; inset:0; overflow:hidden; background:#111821; }
.map-tile-layer { position:absolute; left:0; top:0; width:768px; height:768px; display:grid; grid-template-columns:repeat(3,256px); grid-template-rows:repeat(3,256px); filter:saturate(.72) brightness(.78) contrast(1.12); }
.map-tile-layer img { width:256px; height:256px; display:block; }
.vehicle-map-marker { position:absolute; left:50%; top:50%; width:30px; height:30px; display:grid; place-items:center; transform:translate(-50%,-50%); border:3px solid #d8eaff; border-radius:50%; background:var(--accent); color:#fff; box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 18%,transparent),0 6px 18px rgba(0,0,0,.45); z-index:3; font-size:10px; }
.map-empty { position:absolute; inset:0; display:grid; place-items:center; color:#718295; font-size:11px; background:radial-gradient(circle at 50% 50%,rgba(84,199,255,.08),transparent 55%); }
.map-card footer { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:10px; } .map-card footer span { min-width:0; } .map-card footer small,.map-card footer strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .map-card footer small { color:#6e8094; font-size:7px; } .map-card footer strong { margin-top:2px; font-size:8px; }
.geofence-card { display:flex; flex-direction:column; min-height:100%; }
.geofence-main { flex:1; display:flex; align-items:center; gap:12px; padding:20px 16px; }
.geo-dot { width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(81,230,165,.22); border-radius:11px; background:rgba(81,230,165,.06); color:var(--green); }
.geofence-main strong,.geofence-main small { display:block; } .geofence-main strong { font-size:15px; } .geofence-main small { margin-top:4px; color:#75879a; font-size:9px; }
.geofence-card>.btn { margin:0 12px 12px; }
.feature-launch-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:10px; }
.feature-launch-grid button { min-height:82px; display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; column-gap:10px; align-items:center; padding:12px; border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line)); border-radius:13px; background:linear-gradient(180deg,rgba(16,22,31,.82),rgba(8,12,18,.88)); color:#dce7f1; text-align:left; cursor:pointer; }
.feature-launch-grid button>span { grid-row:1/3; width:34px; height:34px; display:grid; place-items:center; border-radius:11px; background:color-mix(in srgb,var(--accent) 9%,transparent); color:var(--accent); font-size:17px; }
.feature-launch-grid button strong { align-self:end; font-size:11px; } .feature-launch-grid button small { align-self:start; color:#6f8195; font-size:8px; line-height:1.35; }
.compact-status-grid { margin-top:10px; }
.settings-toggle-row { min-height:46px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 4px; border-bottom:1px solid var(--line); }
.settings-toggle-row input { width:20px; height:20px; accent-color:var(--accent); }
.theme-choice-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.theme-choice { min-height:58px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.025); color:#d9e4ef; font-size:10px; font-weight:800; cursor:pointer; }
.theme-choice.is-active { border-color:color-mix(in srgb,var(--accent) 65%,transparent); box-shadow:0 0 24px var(--cockpit-glow); color:var(--accent); }
.permission-status { color:#91a1b4; font-size:12px; }
@media (max-width:760px) {
  .premium-topbar { padding:9px 10px; } .platinum-badge,.system-pill span { display:none!important; }
  .topbar-actions { gap:5px; } .topbar-actions .icon-btn { width:34px; height:34px; }
  .premium-picker { width:calc(100% - 20px); }
  .mode-strip { grid-template-columns:1fr auto; margin-inline:0; } .mode-strip-meta { display:none; }
  .premium-dashboard { padding:4px 10px 22px; }
  .premium-hero { border-radius:15px; }
  .premium-hero-head h2 { font-size:28px; }
  .security-stage { min-height:245px; }
  .premium-vehicle-core { width:min(350px,76vw); }
  .vehicle-rings { width:280px; height:280px; }
  .orbit-stat { top:62px; min-width:116px; padding:7px; }
  .orbit-left { left:8px; } .orbit-right { right:8px; }
  .orbit-stat small { font-size:6px; } .orbit-stat strong { font-size:9px; }
  .vehicle-health-grid { grid-template-columns:repeat(2,1fr); }
  .vehicle-health-grid>div:last-child { grid-column:1/-1; }
  .premium-actions { grid-template-columns:1fr; }
  .emergency-grid,.map-geofence-grid { grid-template-columns:1fr; }
  .feature-launch-grid { grid-template-columns:repeat(2,1fr); }
  .theme-choice-grid { grid-template-columns:repeat(2,1fr); }
  .map-wrap { height:220px; }
}

@media (min-width:900px) {
  .bottom-nav { max-width:720px; }
  .app-shell { padding-bottom:88px; }
}
.critical-alarm { position:fixed; inset:0; z-index:1000; display:none; place-items:center; padding:20px; background:rgba(2,4,8,.78); backdrop-filter:blur(12px); }
.critical-alarm.is-open { display:grid; animation:criticalFlash .8s ease-in-out infinite alternate; }
.critical-alarm-card { width:min(520px,100%); padding:26px; border:1px solid rgba(255,83,103,.55); border-radius:22px; background:linear-gradient(180deg,rgba(56,8,18,.98),rgba(17,5,10,.99)); box-shadow:0 35px 110px rgba(255,30,70,.24); text-align:center; }
.critical-alarm-icon { font-size:48px; }
.critical-alarm-card h2 { margin:8px 0; font-size:28px; }
.critical-alarm-card p { margin:8px 0 14px; color:#d3b9bf; line-height:1.55; }
.critical-alarm-card>strong { display:block; color:#ff8392; letter-spacing:.08em; font-size:12px; }
.critical-alarm-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:20px; }
.critical-alarm-actions .btn:first-child { grid-column:1/-1; }
.stop-confirm-modal.is-open { animation:none; background:rgba(2,4,8,.88); }
.stop-confirm-modal .stop-confirm-card { border-color:rgba(255,83,103,.48); }
.stop-confirm-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:20px; }
.stop-confirm-actions .btn { min-height:48px; }
@keyframes criticalFlash { from { background:rgba(2,4,8,.78); } to { background:rgba(70,0,12,.76); } }

.mode-quick-select{display:flex;align-items:center;gap:8px}.mode-quick-select select{min-width:108px;border:1px solid var(--line);background:rgba(5,10,18,.78);color:var(--text);border-radius:9px;padding:7px 28px 7px 10px;font:inherit;font-weight:750}.mode-quick-select select:disabled{opacity:.55}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}


.support-message { white-space:pre-wrap; line-height:1.55; color:var(--text); margin:8px 0 0; }
.support-answer { margin-top:12px; padding:12px; border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line)); border-radius:12px; background:color-mix(in srgb,var(--accent) 7%,transparent); }
.support-answer strong { display:block; margin-bottom:5px; color:var(--accent); font-size:11px; }
.support-answer p { margin:0; white-space:pre-wrap; color:var(--muted); line-height:1.5; }
.section-title { margin:18px 2px 8px; font-size:13px; letter-spacing:.04em; }
.support-ticket select, .support-ticket textarea { width:100%; }

/* IMO_PRODUCTION_PARITY_CORE_V1 */
.parity-quick-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important}
.parity-quick-grid .btn{min-height:54px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important}
.btn-deactivate{border-color:rgba(115,150,188,.28)!important}.btn-deactivate.is-active{box-shadow:inset 0 0 0 1px rgba(115,150,188,.18)}
.map-head-actions,.geofence-direct-actions{display:flex;gap:7px;align-items:center}.geofence-direct-actions{margin-top:12px}.geofence-direct-actions .btn{flex:1}.geofence-settings-link{width:100%;margin-top:7px}
.emergency-stop{min-height:72px!important;border:1px solid rgba(255,68,92,.48)!important;background:linear-gradient(180deg,rgba(94,15,28,.72),rgba(45,8,16,.86))!important;box-shadow:0 12px 30px rgba(255,38,70,.12)!important}.emergency-stop:not(:disabled){color:#fff!important}.emergency-stop.is-armed{animation:criticalFlash .55s ease-in-out infinite alternate!important}
@media(max-width:760px){.parity-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.map-head-actions{flex-wrap:wrap}.geofence-direct-actions{flex-direction:column}.geofence-direct-actions .btn{width:100%}}

/* IMO_PRODUCTION_PARITY_DRIVER_GUARD_V1 */
.mode-button-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:8px 0 10px}.mode-button-row button{position:relative;min-height:52px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;padding:7px 8px;border:1px solid var(--line);border-radius:11px;background:rgba(8,13,21,.78);color:var(--muted);font-weight:800;cursor:pointer}.mode-button-row button.is-active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 12%,rgba(8,13,21,.78))}.mode-button-row button:disabled{opacity:1;cursor:not-allowed;color:#5e6d7c;background:rgba(8,13,21,.58)}
.mode-button-row .mode-icon{font-size:15px;line-height:1}.mode-button-row .mode-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.mode-lock{display:inline-block;min-width:18px;font-size:17px;line-height:1;text-align:center}.mode-lock.is-unlocked{filter:drop-shadow(0 0 5px #f2c65c)}.mode-button-row button.is-licensed .mode-name{color:#d9e4ee}.mode-button-row button.is-locked .mode-lock{opacity:.58;filter:grayscale(.35)}
.driver-guard-live{margin-top:10px;padding:16px}.driver-guard-live-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.driver-guard-live-head>div{display:grid;gap:3px}.driver-guard-live-head small,.driver-guard-disclaimer{color:var(--muted);font-size:10px}.driver-guard-live-status{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.driver-guard-live-status span{padding:10px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.025);display:grid;gap:4px}.driver-guard-live-status small{color:var(--muted);font-size:9px}.driver-guard-live-actions{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:8px}.driver-guard-disclaimer{margin:10px 0 0;line-height:1.45}.driver-check-calls{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.driver-check-calls a{text-decoration:none;display:flex;align-items:center;justify-content:center}
@media(max-width:760px){.mode-button-row{grid-template-columns:repeat(2,minmax(0,1fr))}.driver-guard-live-status{grid-template-columns:1fr}.driver-guard-live-actions{grid-template-columns:1fr}.driver-check-calls{grid-template-columns:1fr 1fr}}

/* IMO_PERMISSION_WIZARD_PARITY_V1 */
.permission-wizard-progress{display:flex;gap:8px;justify-content:center;margin:8px 0 18px}.permission-dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:rgba(255,255,255,.025);color:var(--muted);font-size:10px;font-weight:800}.permission-dot.is-active{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));color:var(--text);background:color-mix(in srgb,var(--accent) 13%,transparent)}.permission-wizard-stage{min-height:125px;padding:16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.02)}.permission-wizard-stage h3{margin:0 0 8px;font-size:16px}.permission-wizard-footer{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.permission-wizard-footer .btn{flex:1 1 180px}

/* IMO_FROST_GUARD_PRODUCTION_PARITY_V1 */
.frost-live-card{margin:12px 0;padding:15px;border:1px solid rgba(88,176,255,.20);border-radius:16px;background:linear-gradient(145deg,rgba(11,28,45,.90),rgba(6,17,29,.94));box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}.frost-live-card[data-state="critical"]{border-color:rgba(255,66,84,.52);box-shadow:0 0 28px rgba(255,45,70,.08)}.frost-live-card[data-state="frost_risk"]{border-color:rgba(255,156,48,.42)}.frost-live-card[data-state="warning"]{border-color:rgba(255,204,70,.34)}.frost-live-head,.frost-live-head>div,.frost-live-control,.frost-live-footer{display:flex;align-items:center}.frost-live-head{justify-content:space-between;gap:10px}.frost-live-head>div{gap:10px}.frost-live-head>div>div{display:grid;gap:2px}.frost-live-head small,.frost-live-temp small,.frost-live-control small{font-size:9px;color:var(--muted)}.frost-live-head b{font-size:9px;padding:6px 8px;border-radius:999px;border:1px solid var(--line);color:#9fb3c7}.frost-live-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:rgba(82,167,255,.10);font-size:19px}.frost-live-temp{display:flex;align-items:center;justify-content:space-between;margin:12px 0;padding:13px;border:1px solid var(--line);border-radius:13px;background:rgba(0,0,0,.10)}.frost-live-temp>div{display:grid;gap:3px}.frost-live-temp>div>strong{font-size:22px}.frost-live-temp>div>span{font-size:9px;color:var(--muted)}.frost-live-temp>span{font-size:30px}.frost-live-control{justify-content:space-between;gap:12px;padding:10px 2px;border-top:1px solid rgba(255,255,255,.045)}.frost-live-control>span{display:grid;gap:2px}.frost-live-control input{width:42px;height:22px;accent-color:var(--accent)}.frost-live-footer{justify-content:space-between;gap:8px;padding-top:9px;border-top:1px solid rgba(255,255,255,.045);font-size:9px;color:var(--muted)}
.rental-quick-periods .btn.is-active{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text)}
.service-diagnostic-log{margin:12px 0 0;max-height:220px;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:12px;background:#04070b;color:#98afc3;font:10px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.service-device-list{margin-top:10px}

/* IMO MOBILE VEHICLE-FIRST UX */
.vehicle-mode-after-image { margin: 0 12px 10px; }
.vehicle-mode-after-image .mode-strip { margin-bottom: 8px; }
@media (max-width:760px) {
  .bottom-nav { width:calc(100% - 16px); padding:6px; border-radius:18px; }
  .nav-item { min-height:48px; min-width:0; padding:4px 1px; }
  .nav-item span { font-size:15px; }
  .nav-item small { font-size:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .brand-compact div { display:flex!important; flex-direction:column; min-width:82px; }
  .brand-compact strong { font-size:12px; line-height:1.05; white-space:nowrap; }
  .brand-compact div span { font-size:7px; white-space:nowrap; }
  .premium-topbar { align-items:center; gap:6px; overflow:visible; }
  .topbar-actions { margin-left:auto; max-width:calc(100vw - 150px); overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .topbar-actions::-webkit-scrollbar { display:none; }
  .system-pill { display:none; }
  .topbar-actions .icon-btn { flex:0 0 34px; }
  .language-select-compact { flex:0 0 auto; max-width:105px; }
  .vehicle-mode-after-image { margin:0 8px 9px; }
  .vehicle-mode-after-image .mode-strip { grid-template-columns:1fr auto; padding:8px 9px; }
  .vehicle-mode-after-image .mode-strip-meta { display:none; }
  .vehicle-mode-after-image .mode-button-row { grid-template-columns:repeat(2,1fr); gap:7px; }
}

/* IMO AUTH RESTORE BOOT V1 */
.auth-boot { display:none; position:fixed; inset:0; z-index:2000; place-items:center; padding:24px; background:#080b12; }
body.auth-restoring #loginView, body.auth-restoring #appView { display:none !important; }
body.auth-restoring .auth-boot { display:grid; }
.auth-boot-card { display:flex; align-items:center; gap:12px; min-width:230px; padding:16px 18px; border:1px solid rgba(85,184,255,.22); border-radius:18px; background:rgba(12,17,24,.94); box-shadow:0 24px 80px rgba(0,0,0,.45); }
.auth-boot-card>div { display:grid; gap:3px; flex:1; }
.auth-boot-card strong { font-size:14px; letter-spacing:.04em; color:#f4f8fb; }
.auth-boot-card div span { font-size:10px; color:#8191a4; }
.auth-boot-spinner { width:18px; height:18px; border:2px solid rgba(255,255,255,.12); border-top-color:var(--accent,#55b8ff); border-radius:50%; animation:orbitSpin .8s linear infinite; }

/* IMO_COMPACT_VEHICLE_PROFILE_V1 */
.premium-picker{display:grid;grid-template-columns:auto minmax(0,1.4fr) minmax(160px,.8fr);align-items:center}
.premium-picker .vehicle-device-field,.premium-picker .vehicle-type-field{min-width:0;display:grid;gap:2px}
.premium-picker #vehicleTypeSelect{width:100%;min-height:28px;border:0;background:transparent;color:var(--text);font-weight:800;outline:none}
.compact-collapsible{min-height:0!important}
.compact-collapse-head{width:100%;min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.compact-collapse-title{display:flex;align-items:center;gap:10px;min-width:0}
.compact-collapse-title>span:last-child{display:grid;gap:2px;min-width:0}
.compact-collapse-title strong{font-size:12px}
.compact-collapse-title small{color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.compact-collapse-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.compact-collapse-meta>strong{font-size:13px;white-space:nowrap}
.compact-collapse-meta>small{max-width:140px;color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.compact-collapse-meta>b{font-size:8px;padding:5px 7px;border:1px solid var(--line);border-radius:999px;color:#9fb3c7;white-space:nowrap}
.compact-collapse-meta>i{font-style:normal;color:var(--muted);font-size:16px;transition:transform .18s ease}
.compact-collapsible.is-open .compact-collapse-meta>i{transform:rotate(180deg)}
.compact-collapse-body{padding:0 13px 13px}
.geofence-card .geofence-direct-actions{margin-top:4px}
.frost-live-card.compact-collapsible{margin:8px 12px;padding:0}
.frost-live-card.compact-collapsible .frost-live-temp{margin:2px 0 10px}

@media(max-width:760px){
  .premium-picker{grid-template-columns:auto minmax(0,1fr);row-gap:6px}
  .premium-picker .vehicle-type-field{grid-column:2}
  .premium-picker #deviceSelect,.premium-picker #vehicleTypeSelect{max-width:none;width:100%}
  .compact-collapse-head{min-height:54px;padding:9px 11px}
  .compact-collapse-meta>b{display:none}
  .compact-collapse-meta>small{max-width:105px}
  .frost-live-card.compact-collapsible{margin:7px 8px}
}

/* IMO_VEHICLE_ONBOARDING_ONCE_V1 */
.premium-picker[hidden],
.premium-picker .vehicle-device-field[hidden],
.premium-picker .vehicle-type-field[hidden]{display:none!important}
.premium-picker #deviceSelect,
.premium-picker #vehicleTypeSelect{
  width:100%;min-height:36px;padding:0 10px;border:1px solid rgba(255,255,255,.10);
  border-radius:9px;background:#111923;color:#f4f8fb;font-weight:800;outline:none;color-scheme:dark;
}
.premium-picker #deviceSelect option,
.premium-picker #vehicleTypeSelect option{background:#111923;color:#f4f8fb}
.premium-picker small{color:#a6b5c6}
.premium-picker.is-type-only,.premium-picker.is-device-only{grid-template-columns:auto minmax(0,1fr)}
.premium-picker.is-type-only .vehicle-type-field,.premium-picker.is-device-only .vehicle-device-field{grid-column:2}
.premium-picker.is-onboarding{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--line));
  background:linear-gradient(180deg,rgba(17,25,35,.96),rgba(8,13,20,.96));
  box-shadow:0 12px 34px rgba(0,0,0,.28),0 0 24px var(--cockpit-glow);
}


/* IMO DRIVER GUARD DIRECT UX V1 */
.driver-guard-live-controls{display:flex;align-items:center;gap:7px}.driver-guard-live-controls #dgToggleBtn{min-height:26px;padding:0 8px;border-radius:8px;font-size:9px}.driver-guard-settings{min-width:32px;padding:0;font-size:15px}.driver-guard-live-actions{grid-template-columns:1.35fr 1fr}.driver-guard-live-actions .btn{margin-top:0}
@media(max-width:760px){.driver-guard-live-actions{grid-template-columns:1fr 1fr}}

/* PRECISE_RSSI_THRESHOLDS_V1 */
.settings-rssi-calibration {
  margin-top: 10px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 12px;
  background: rgba(255,255,255,.035);
}
.settings-rssi-row {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(120px, 2fr) 78px auto;
  gap: 10px;
  align-items: center;
  margin-top: 10px;
}
.settings-rssi-row input[type="range"] {
  width: 100%;
}
.settings-rssi-row input[type="number"] {
  width: 78px;
  min-height: 38px;
  border-radius: 9px;
}
@media (max-width: 640px) {
  .settings-rssi-row {
    grid-template-columns: 1fr 70px auto;
  }
  .settings-rssi-row label {
    grid-column: 1 / -1;
  }
}

/* IMO FLEET V1 */
.fleet-map-canvas{
  position:relative;overflow:hidden;height:360px;margin-top:12px;
  border:1px solid var(--line);border-radius:16px;background:#0b1119;
}
.fleet-map-canvas .map-tile-layer{position:absolute;display:grid;grid-template-columns:repeat(3,256px);grid-template-rows:repeat(3,256px)}
.fleet-map-canvas .map-tile-layer img{display:block;width:256px;height:256px;user-select:none}
.fleet-map-marker{
  position:absolute;z-index:4;transform:translate(-50%,-50%);max-width:140px;
  padding:6px 9px;border:1px solid color-mix(in srgb,var(--accent) 65%,white 10%);
  border-radius:999px;background:rgba(9,15,23,.94);color:var(--text);font-size:10px;font-weight:800;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 8px 22px rgba(0,0,0,.38);
}
.fleet-vehicle-row{width:100%;text-align:left;border:0;background:transparent;color:inherit;cursor:pointer}
.fleet-vehicle-row:hover{background:rgba(255,255,255,.035)}
.fleet-route-overlay{position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none}
.fleet-route-line{fill:none;stroke:var(--accent);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 2px 3px rgba(0,0,0,.65))}
.fleet-route-endpoint{position:absolute;z-index:5;transform:translate(-50%,-50%);padding:5px 8px;border-radius:999px;background:#0b1119;color:var(--text);font-size:10px;font-weight:800;border:1px solid var(--accent);white-space:nowrap}
.fleet-route-start::before{content:"● ";color:#8ee58e}
.fleet-route-end::before{content:"● ";color:#ff8f8f}
.fleet-alert-unread{box-shadow:inset 3px 0 0 var(--accent);background:rgba(255,255,255,.025)}
.fleet-alert-warning-row{border-color:rgba(255,190,80,.38)}
.fleet-alert-critical-row{border-color:rgba(255,107,107,.5);background:rgba(255,107,107,.045)}
.fleet-alert-critical{color:#ff6b6b!important}
.fleet-subtitle{margin:18px 0 8px;font-size:12px;letter-spacing:.04em}
@media(max-width:760px){
  .fleet-map-canvas{height:290px}
  .fleet-map-marker{max-width:108px;padding:5px 7px;font-size:9px}
}

/* IMO LICENSE VOUCHERS V1 */
.voucher-code-output{
  width:100%;
  box-sizing:border-box;
  margin:10px 0;
  padding:12px 13px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#0b1119;
  color:var(--text);
  font:700 14px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  letter-spacing:.04em;
}
.voucher-admin-host{display:grid;gap:12px}


/* IMO_ACTIVATION_PASSWORD_UX_V91 */
.password-input-wrap {
  position: relative;
  display: block;
}
.password-input-wrap input {
  padding-right: 52px;
}
.password-toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #8ea0b8;
  cursor: pointer;
}
.password-toggle:hover,
.password-toggle:focus-visible,
.password-toggle.is-visible {
  color: var(--cyan);
  background: rgba(84,199,255,.08);
  outline: none;
}
.password-toggle svg {
  width: 21px;
  height: 21px;
  fill: currentColor;
}
.password-hint {
  margin: -6px 0 0;
  color: #8f9caf;
  font-size: 11px;
  line-height: 1.45;
}


/* IMO_VEHICLE_MAP_V94 */
.vehicle-map-launch{grid-column:1/-1!important;min-height:64px!important}
.vehicle-map-shell{display:grid;gap:10px}
.vehicle-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}
.vehicle-map-summary{color:var(--muted);font-size:11px;line-height:1.45}
.vehicle-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:10px;min-height:68vh}
.vehicle-map-large{position:relative;min-height:68vh;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#0a1018}
.vehicle-map-tiles{position:absolute;inset:0}
.vehicle-map-tiles img{position:absolute;width:256px;height:256px;display:block;filter:saturate(.72) brightness(.78) contrast(1.12)}
.vehicle-map-point{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;max-width:210px;padding:4px 8px 4px 5px;border:1px solid rgba(216,234,255,.52);border-radius:999px;background:rgba(7,12,18,.94);color:#e8f2fb;box-shadow:0 8px 20px rgba(0,0,0,.38);z-index:3;cursor:pointer}
.vehicle-map-point.is-online{border-color:rgba(81,230,165,.7)}
.vehicle-map-point.is-offline{border-color:rgba(255,119,119,.62)}
.vehicle-map-dot{font-size:15px;color:var(--accent)}
.vehicle-map-point.is-online .vehicle-map-dot{color:#51e6a5}
.vehicle-map-point.is-offline .vehicle-map-dot{color:#ff7777}
.vehicle-map-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}
.vehicle-map-side{display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;min-height:0}
.vehicle-map-detail,.vehicle-map-list{border:1px solid var(--line);border-radius:14px;background:rgba(8,13,20,.9)}
.vehicle-map-detail{padding:12px}.vehicle-map-detail h3{margin:0 0 10px;font-size:14px}
.vehicle-map-detail-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.vehicle-map-detail-row small{color:var(--muted)}.vehicle-map-detail-row strong{text-align:right;font-size:10px}
.vehicle-map-detail .btn{width:100%;margin-top:10px}
.vehicle-map-list{padding:6px;overflow:auto}
.vehicle-map-list-row{width:100%;display:block;padding:9px;border:0;border-bottom:1px solid rgba(255,255,255,.05);background:transparent;color:var(--text);text-align:left;cursor:pointer}
.vehicle-map-list-row strong,.vehicle-map-list-row small{display:block}.vehicle-map-list-row strong{font-size:10px}.vehicle-map-list-row small{margin-top:3px;color:var(--muted);font-size:8px}
.vehicle-map-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);padding:20px;text-align:center}
@media(max-width:760px){.vehicle-map-layout{grid-template-columns:1fr}.vehicle-map-large{min-height:58vh}.vehicle-map-side{grid-template-rows:auto auto}.vehicle-map-list{max-height:260px}.vehicle-map-toolbar{align-items:stretch;flex-direction:column}}
