:root {
  --vu-font: Aptos, "Aptos Display", "Segoe UI Variable", "Segoe UI", Arial, "Noto Sans", sans-serif;
  --vu-ink: #06131f;
  --vu-deep: #071d2d;
  --vu-navy: #0a2940;
  --vu-blue: #124a6d;
  --vu-cyan: #2de3f2;
  --vu-cyan-soft: #a6f6fb;
  --vu-gold: #d8b56c;
  --vu-paper: #f5f8fa;
  --vu-white: #ffffff;
  --vu-line: rgba(124, 176, 204, .25);
  --vu-muted: #6b7d89;
  --vu-radius: 22px;
  --vu-shadow: 0 24px 70px rgba(4, 23, 37, .18);
}

html {
  scroll-behavior: smooth;
}

.vu-page {
  background: var(--vu-paper);
  color: var(--vu-ink);
  overflow-x: hidden;
  font-family: var(--vu-font);
  font-synthesis: weight style;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.vu-page *,
.vu-page *::before,
.vu-page *::after {
  box-sizing: border-box;
  font-family: var(--vu-font) !important;
}

.vu-page button,
.vu-page input,
.vu-page select,
.vu-page textarea {
  font: inherit;
}

.vu-page button {
  cursor: pointer;
}

.vu-skip {
  position: fixed;
  top: -100px;
  left: 20px;
  z-index: 9999;
  background: #fff;
  color: #071d2d;
  padding: 12px 18px;
  border-radius: 10px;
  font-weight: 800;
}

.vu-skip:focus {
  top: 20px;
}

.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;
}

.vu-header {
  background: rgba(5, 20, 32, .92) !important;
  border-bottom: 1px solid rgba(134, 198, 225, .18) !important;
  backdrop-filter: blur(18px);
}

.vu-header .brand-name,
.vu-header .desktop-nav > a:not(.nav-cta),
.vu-header .account-link,
.vu-header .mobile-menu summary {
  color: #eef8fc !important;
}

.vu-header .brand-credit {
  color: #8fb5c8 !important;
}

.vu-header .brand-rule {
  background: rgba(211, 235, 245, .28) !important;
}

.vu-header .vu-nav-active {
  color: var(--vu-cyan) !important;
}

.vu-lang {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: rgba(255, 255, 255, .38);
  margin-left: 2px;
}

.vu-lang button {
  border: 0;
  padding: 4px 3px;
  background: transparent;
  color: #91a9b7;
  font-size: 11px;
  letter-spacing: .08em;
  font-weight: 800;
}

.vu-lang button.active {
  color: var(--vu-cyan);
}

.vu-hero {
  position: relative;
  min-height: 820px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  align-items: center;
  gap: 60px;
  padding: 145px max(6vw, 28px) 100px;
  color: #fff;
  isolation: isolate;
  background: #061724;
}

.vu-hero-image,
.vu-grid-overlay,
.vu-hero::before,
.vu-hero::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
}

.vu-hero-image {
  z-index: -4;
  background-image: url("/vessel-universe-hero.webp");
  background-size: cover;
  background-position: 54% center;
}

.vu-hero::before {
  z-index: -3;
  background:
    linear-gradient(90deg, rgba(3, 15, 26, .95) 0%, rgba(3, 15, 26, .78) 38%, rgba(3, 15, 26, .25) 68%, rgba(3, 15, 26, .15) 100%),
    linear-gradient(0deg, rgba(3, 15, 26, .88) 0%, transparent 48%, rgba(3, 15, 26, .3) 100%);
}

.vu-hero::after {
  z-index: -2;
  background: radial-gradient(circle at 72% 42%, rgba(45, 227, 242, .13), transparent 28%);
}

.vu-grid-overlay {
  z-index: -1;
  opacity: .24;
  background-image:
    linear-gradient(rgba(80, 197, 219, .13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(80, 197, 219, .13) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: linear-gradient(90deg, #000, transparent 78%);
}

.vu-scan-beam {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 58%;
  width: 2px;
  height: 100%;
  background: linear-gradient(180deg, transparent, rgba(45, 227, 242, .85), transparent);
  box-shadow: 0 0 35px rgba(45, 227, 242, .7);
  opacity: .45;
  animation: vuHeroScan 8s ease-in-out infinite;
}

@keyframes vuHeroScan {
  0%, 100% { transform: translateX(-240px); opacity: 0; }
  20%, 80% { opacity: .48; }
  50% { transform: translateX(340px); }
}

.vu-hero-content {
  position: relative;
  z-index: 2;
  max-width: 780px;
}

.vu-live-pill {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 8px 13px;
  border: 1px solid rgba(98, 232, 240, .36);
  border-radius: 999px;
  background: rgba(4, 34, 49, .62);
  color: #bffaff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  backdrop-filter: blur(12px);
}

.vu-live-pill i,
.vu-ai-status i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--vu-cyan);
  box-shadow: 0 0 12px var(--vu-cyan);
  animation: vuPulse 1.9s infinite;
}

@keyframes vuPulse {
  50% { opacity: .4; transform: scale(.75); }
}

.vu-kicker,
.vu-eyebrow {
  margin: 0;
  color: var(--vu-gold);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.vu-kicker {
  margin-top: 28px;
  color: var(--vu-cyan);
}

.vu-hero h1 {
  margin: 14px 0 26px;
  max-width: 760px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(52px, 6vw, 92px);
  line-height: .94;
  letter-spacing: -.055em;
  font-weight: 500;
}

.vu-hero h1 span,
.vu-hero h1 strong {
  display: block;
}

.vu-hero h1 strong {
  color: #e8fcff;
  font-weight: 500;
}

.vu-hero-lead {
  max-width: 680px;
  margin: 0;
  color: #c6d7e0;
  font-size: clamp(17px, 1.6vw, 22px);
  line-height: 1.65;
}

.vu-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
  margin-top: 34px;
}

.vu-btn {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  border: 1px solid transparent;
  border-radius: 4px;
  padding: 0 22px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .02em;
  transition: transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.vu-btn:hover {
  transform: translateY(-2px);
}

.vu-btn-primary {
  color: #03151e;
  background: var(--vu-cyan);
  box-shadow: 0 12px 35px rgba(45, 227, 242, .2);
}

.vu-btn-primary:hover {
  background: #87f7ff;
  box-shadow: 0 16px 38px rgba(45, 227, 242, .3);
}

.vu-btn-ghost {
  border-color: rgba(255, 255, 255, .28);
  color: #fff;
  background: rgba(6, 29, 44, .5);
  backdrop-filter: blur(12px);
}

.vu-btn-ghost-dark {
  border-color: #c5d3db;
  color: #163449;
  background: #fff;
}

.vu-btn-dark {
  width: 100%;
  margin-top: 18px;
  color: #fff;
  background: #0a2a40;
}

.vu-hero-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 46px;
}

.vu-hero-proof div {
  min-width: 125px;
  padding-right: 22px;
  border-right: 1px solid rgba(255, 255, 255, .18);
}

.vu-hero-proof div:last-child {
  border-right: 0;
}

.vu-hero-proof strong {
  display: block;
  color: #fff;
  font-family: Georgia, serif;
  font-size: 28px;
  font-weight: 500;
}

.vu-hero-proof span {
  display: block;
  margin-top: 3px;
  color: #8eb0c1;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.vu-hero-console {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 360px;
  justify-self: end;
  padding: 20px;
  border: 1px solid rgba(91, 213, 230, .25);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(4, 25, 38, .83), rgba(6, 41, 59, .56));
  box-shadow: 0 30px 80px rgba(0, 0, 0, .3);
  backdrop-filter: blur(16px);
}

.vu-console-head,
.vu-panel-label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  color: #7ca3b8;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .15em;
}

.vu-console-head i,
.vu-panel-label i {
  color: var(--vu-cyan);
  font-style: normal;
}

.vu-radar {
  position: relative;
  width: 210px;
  height: 210px;
  margin: 22px auto;
  overflow: hidden;
  border: 1px solid rgba(45, 227, 242, .35);
  border-radius: 50%;
  background:
    linear-gradient(90deg, transparent 49.5%, rgba(45, 227, 242, .18) 50%, transparent 50.5%),
    linear-gradient(transparent 49.5%, rgba(45, 227, 242, .18) 50%, transparent 50.5%),
    repeating-radial-gradient(circle, transparent 0 28px, rgba(45, 227, 242, .13) 29px 30px);
}

.vu-radar::after {
  position: absolute;
  inset: 24px;
  content: "";
  border: 1px dashed rgba(45, 227, 242, .18);
  border-radius: 50%;
}

.vu-radar-sweep {
  position: absolute;
  left: 50%;
  bottom: 50%;
  width: 50%;
  height: 50%;
  transform-origin: left bottom;
  background: conic-gradient(from 70deg, transparent, rgba(45, 227, 242, .32));
  animation: vuRadar 4s linear infinite;
}

@keyframes vuRadar {
  to { transform: rotate(360deg); }
}

.vu-radar-dot {
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--vu-cyan);
  box-shadow: 0 0 15px var(--vu-cyan);
}

.vu-radar-dot.d1 { top: 28%; left: 63%; }
.vu-radar-dot.d2 { top: 62%; left: 28%; }
.vu-radar-dot.d3 { top: 45%; left: 75%; }

.vu-radar b {
  position: absolute;
  left: 50%;
  bottom: 9px;
  transform: translateX(-50%);
  color: #8bb3c5;
  font-size: 9px;
  letter-spacing: .12em;
}

.vu-hero-console dl {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin: 0;
}

.vu-hero-console dl div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 11px;
  border: 1px solid rgba(133, 197, 220, .14);
  background: rgba(5, 26, 40, .55);
}

.vu-hero-console dt {
  color: #8caabd;
  font-size: 9px;
  font-weight: 800;
}

.vu-hero-console dd {
  margin: 0;
  color: #f2fbff;
  font-family: monospace;
  font-size: 12px;
}

.vu-scroll-cue {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  transform: translateX(-50%);
  color: #8caabd;
  text-decoration: none;
}

.vu-scroll-cue span {
  width: 1px;
  height: 34px;
  background: linear-gradient(var(--vu-cyan), transparent);
  animation: vuScroll 1.8s infinite;
}

@keyframes vuScroll {
  50% { transform: translateY(5px); opacity: .45; }
}

.vu-scroll-cue b {
  font-size: 8px;
  letter-spacing: .18em;
}

.vu-subnav {
  position: sticky;
  z-index: 60;
  top: 75px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1360px;
  margin: -1px auto 0;
  border: 1px solid #d5e0e6;
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 12px 35px rgba(5, 30, 45, .08);
  backdrop-filter: blur(15px);
}

.vu-subnav a {
  min-height: 68px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 20px;
  border-right: 1px solid #e0e8ec;
  color: #18384c;
  text-decoration: none;
  transition: background .2s ease;
}

.vu-subnav a:last-child {
  border-right: 0;
}

.vu-subnav a:hover {
  background: #effbfd;
}

.vu-subnav span {
  color: #7e99a9;
  font-family: monospace;
  font-size: 10px;
}

.vu-subnav b {
  font-size: 11px;
  letter-spacing: .04em;
}

.vu-section {
  position: relative;
  max-width: 1460px;
  margin: 0 auto;
  padding: 110px max(5vw, 26px);
}

.vu-section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  align-items: end;
  gap: 60px;
  margin-bottom: 48px;
}

.vu-section-heading h2 {
  max-width: 900px;
  margin: 12px 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 4.6vw, 68px);
  line-height: 1.02;
  letter-spacing: -.045em;
  font-weight: 500;
}

.vu-section-heading > p {
  margin: 0;
  color: #607481;
  line-height: 1.75;
}

.vu-fleet-controls {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 2.2fr auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 30px;
}

.vu-search {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  border: 1px solid #cbd9e0;
  border-radius: 5px;
  background: #fff;
}

.vu-search span {
  color: #3c647a;
  font-size: 22px;
}

.vu-search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: #102c3e;
}

.vu-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.vu-filter-row button {
  min-height: 38px;
  border: 1px solid #cedae1;
  border-radius: 999px;
  padding: 0 13px;
  color: #536b78;
  background: #fff;
  font-size: 10px;
  font-weight: 800;
}

.vu-filter-row button.active {
  border-color: #0d405d;
  color: #fff;
  background: #0d405d;
}

.vu-result-count {
  min-width: 90px;
  text-align: right;
}

.vu-result-count strong {
  display: block;
  color: #0f405b;
  font-family: Georgia, serif;
  font-size: 28px;
}

.vu-result-count span {
  color: #8799a3;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.vu-fleet-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.vu-fleet-empty {
  grid-column: 1 / -1;
  min-height: 230px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  border: 1px dashed #a9c8d3;
  border-radius: 10px;
  color: #607986;
  background: #f4fafb;
  text-align: center;
}

.vu-fleet-empty strong {
  color: #0f526b;
  font-family: monospace;
  letter-spacing: .16em;
}

.vu-fleet-empty p {
  margin: 0;
  font-size: 12px;
}

.vu-vessel-card {
  position: relative;
  min-height: 370px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #d4e0e6;
  border-radius: 10px;
  background: #fff;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.vu-vessel-card:hover {
  transform: translateY(-5px);
  border-color: #9ac8d7;
  box-shadow: var(--vu-shadow);
}

.vu-card-visual {
  position: relative;
  height: auto;
  aspect-ratio: 9 / 4;
  overflow: hidden;
  background: #cddbe2;
}

.vu-card-visual::after {
  position: absolute;
  z-index: 3;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(3, 20, 31, .15), transparent 35%, rgba(3, 20, 31, .13)),
    linear-gradient(rgba(53, 154, 181, .11) 1px, transparent 1px),
    linear-gradient(90deg, rgba(53, 154, 181, .11) 1px, transparent 1px);
  background-size: auto, 32px 32px, 32px 32px;
  box-shadow: inset 0 -1px rgba(13, 77, 99, .2);
}

.vu-vessel-photo {
  position: absolute;
  z-index: 1;
  inset: -2px;
  background-image: var(--vu-vessel-image);
  background-repeat: no-repeat;
  background-size: 200% 300%;
  background-position: var(--vu-vessel-x) var(--vu-vessel-y);
  transform: scale(1.015);
  transition: transform .45s ease, filter .45s ease;
  filter: saturate(.92) contrast(1.03);
}

.vu-vessel-card:hover .vu-vessel-photo {
  transform: scale(1.055);
  filter: saturate(1.03) contrast(1.05);
}

.vu-card-badges {
  position: absolute;
  z-index: 4;
  top: 10px;
  left: 10px;
  right: 10px;
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.vu-card-badges span {
  padding: 5px 7px;
  border-radius: 3px;
  color: #315267;
  background: rgba(255, 255, 255, .8);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .09em;
  backdrop-filter: blur(5px);
}

.vu-card-badges .twin {
  color: #06303d;
  background: rgba(45, 227, 242, .82);
}

.vu-card-copy {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 20px;
}

.vu-card-copy small {
  color: #7a909e;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.vu-card-copy h3 {
  margin: 8px 0 7px;
  font-family: Georgia, serif;
  font-size: 22px;
  line-height: 1.1;
  font-weight: 500;
}

.vu-card-copy > p {
  min-height: 54px;
  margin: 0;
  color: #637783;
  font-size: 12px;
  line-height: 1.5;
}

.vu-card-facts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin: 18px 0;
}

.vu-card-facts span {
  display: block;
  padding: 8px;
  border: 1px solid #e0e8ec;
  color: #7c909b;
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.vu-card-facts b {
  display: block;
  margin-top: 3px;
  color: #173a4f;
  font-size: 10px;
  letter-spacing: 0;
  text-transform: none;
}

.vu-card-actions {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  margin-top: auto;
}

.vu-card-actions button {
  min-height: 40px;
  border: 1px solid #b9cbd4;
  color: #244a60;
  background: #fff;
  font-size: 10px;
  font-weight: 800;
}

.vu-card-actions button:first-child {
  border-color: #0e415d;
  color: #fff;
  background: #0e415d;
}

.vu-card-actions button.selected {
  border-color: #10b9c8;
  color: #062c36;
  background: #bdf8fb;
}

.vu-compare-dock {
  position: sticky;
  z-index: 55;
  left: 0;
  bottom: 18px;
  max-width: 920px;
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 28px auto 0;
  padding: 12px 14px 12px 20px;
  border: 1px solid rgba(100, 204, 218, .35);
  border-radius: 8px;
  color: #fff;
  background: rgba(5, 34, 50, .96);
  box-shadow: 0 20px 55px rgba(3, 22, 35, .28);
  backdrop-filter: blur(15px);
}

.vu-compare-dock small {
  display: block;
  color: var(--vu-cyan);
  font-size: 8px;
  letter-spacing: .15em;
}

.vu-compare-dock strong {
  display: block;
  margin-top: 5px;
  font-size: 12px;
}

.vu-compare-dock > div:last-child {
  display: flex;
  align-items: center;
  gap: 10px;
}

.vu-link-btn {
  border: 0;
  padding: 8px 10px;
  color: inherit;
  background: transparent;
  font-size: 10px;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.vu-explorer-section {
  max-width: none;
  color: #fff;
  background:
    radial-gradient(circle at 70% 20%, rgba(30, 155, 185, .15), transparent 30%),
    linear-gradient(145deg, #04131f, #09273a 60%, #061824);
}

.vu-heading-light h2 {
  color: #f4fbff;
}

.vu-heading-light > p {
  color: #91aebd;
}

.vu-twin-shell {
  max-width: 1500px;
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr) 300px;
  min-height: 720px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(97, 175, 203, .23);
  border-radius: 16px;
  background: rgba(3, 19, 30, .68);
  box-shadow: 0 45px 100px rgba(0, 0, 0, .25);
}

.vu-twin-selector,
.vu-system-panel {
  padding: 18px;
  background: rgba(4, 22, 34, .82);
}

.vu-twin-selector {
  max-height: 780px;
  overflow-y: auto;
  border-right: 1px solid rgba(106, 173, 198, .18);
  scrollbar-color: rgba(45, 227, 242, .45) rgba(4, 22, 34, .35);
  scrollbar-width: thin;
}

.vu-twin-list {
  display: grid;
  gap: 7px;
  margin-top: 18px;
}

.vu-twin-list button {
  min-height: 66px;
  display: grid;
  grid-template-columns: 36px 1fr;
  align-items: center;
  gap: 10px;
  border: 1px solid transparent;
  border-radius: 5px;
  padding: 8px;
  text-align: left;
  color: #8eadbd;
  background: rgba(10, 45, 64, .3);
}

.vu-twin-list button.active {
  border-color: rgba(45, 227, 242, .55);
  color: #fff;
  background: linear-gradient(90deg, rgba(31, 183, 201, .2), rgba(8, 44, 62, .45));
  box-shadow: inset 3px 0 0 var(--vu-cyan);
}

.vu-twin-list button span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(122, 188, 210, .2);
  border-radius: 4px;
  color: var(--vu-cyan);
  font-family: monospace;
  font-size: 9px;
}

.vu-twin-list button b {
  display: block;
  font-size: 10px;
  line-height: 1.2;
}

.vu-twin-list button small {
  display: block;
  margin-top: 4px;
  color: #69899a;
  font-size: 8px;
}

.vu-twin-main {
  min-width: 0;
  padding: 18px;
}

.vu-twin-toolbar {
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 12px;
}

.vu-twin-toolbar span {
  color: var(--vu-cyan);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.vu-twin-toolbar h3 {
  margin: 4px 0 0;
  font-family: Georgia, serif;
  font-size: 23px;
  font-weight: 500;
}

.vu-mode-switch {
  display: flex;
  padding: 3px;
  border: 1px solid rgba(119, 180, 202, .2);
  border-radius: 5px;
  background: rgba(3, 18, 28, .55);
}

.vu-mode-switch button {
  min-height: 34px;
  border: 0;
  border-radius: 3px;
  padding: 0 10px;
  color: #7897a8;
  background: transparent;
  font-size: 9px;
  font-weight: 800;
}

.vu-mode-switch button.active {
  color: #052433;
  background: var(--vu-cyan);
}

.vu-mode-switch button span {
  margin-right: 4px;
  color: inherit;
  font-size: 11px;
}

.vu-twin-view {
  display: none;
}

.vu-twin-view.active {
  display: block;
}

#profileView {
  position: relative;
  min-height: 490px;
}

.vu-ship-stage {
  position: relative;
  height: 450px;
  overflow: hidden;
  border: 1px solid rgba(106, 183, 209, .17);
  border-radius: 9px;
  background:
    radial-gradient(circle at 50% 60%, rgba(24, 113, 144, .2), transparent 45%),
    linear-gradient(180deg, #061b29, #071f2f);
}

.vu-stage-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(65, 155, 184, .1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(65, 155, 184, .1) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(transparent, #000 35%, #000);
}

.vu-stage-grid::after {
  position: absolute;
  inset: 10%;
  content: "";
  border: 1px solid rgba(65, 179, 205, .12);
  border-radius: 50%;
  box-shadow: 0 0 0 70px rgba(57, 166, 194, .03), 0 0 0 140px rgba(57, 166, 194, .02);
}

.vu-waterline {
  position: absolute;
  left: 5%;
  right: 5%;
  bottom: 23%;
  height: 1px;
  background: rgba(57, 221, 233, .32);
  box-shadow: 0 7px 0 rgba(57, 221, 233, .09), 0 14px 0 rgba(57, 221, 233, .04);
}

.vu-ship-svg {
  position: absolute;
  z-index: 4;
  left: 4%;
  right: 4%;
  bottom: 10%;
  height: 310px;
  overflow: hidden;
  border: 1px solid rgba(114, 211, 229, .25);
  border-radius: 7px;
  background-image: var(--vu-vessel-image);
  background-repeat: no-repeat;
  background-size: 200% auto;
  background-position: var(--vu-vessel-x) var(--vu-vessel-y);
  box-shadow: 0 28px 34px rgba(0, 0, 0, .3), inset 0 0 0 1px rgba(255, 255, 255, .035);
  filter: saturate(.9) contrast(1.04);
}

.vu-ship-svg::before {
  position: absolute;
  inset: 0;
  content: "";
  background:
    linear-gradient(180deg, rgba(2, 17, 27, .08), transparent 42%, rgba(2, 17, 27, .2)),
    linear-gradient(rgba(68, 186, 208, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(68, 186, 208, .08) 1px, transparent 1px);
  background-size: auto, 38px 38px, 38px 38px;
  pointer-events: none;
}

.vu-ship-svg::after {
  position: absolute;
  right: 11px;
  bottom: 9px;
  content: "REPRESENTATIVE PROFILE";
  padding: 5px 7px;
  border: 1px solid rgba(94, 222, 236, .35);
  border-radius: 3px;
  color: #d7f9fc;
  background: rgba(3, 22, 33, .72);
  font-family: monospace;
  font-size: 7px;
  letter-spacing: .12em;
  backdrop-filter: blur(7px);
}

.vu-hotspot-layer {
  position: absolute;
  z-index: 7;
  inset: 0;
}

.vu-hotspot {
  position: absolute;
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(170, 250, 255, .8);
  border-radius: 50%;
  color: #05202d;
  background: var(--vu-cyan);
  box-shadow: 0 0 0 6px rgba(45, 227, 242, .12), 0 0 22px rgba(45, 227, 242, .58);
  font-family: monospace;
  font-size: 9px;
  font-weight: 800;
  animation: vuHotspot 2.4s ease-in-out infinite;
}

.vu-hotspot:nth-child(even) {
  animation-delay: .8s;
}

.vu-hotspot.active {
  color: #fff;
  background: #dcad57;
  box-shadow: 0 0 0 7px rgba(220, 173, 87, .16), 0 0 25px rgba(220, 173, 87, .55);
}

@keyframes vuHotspot {
  50% { box-shadow: 0 0 0 10px rgba(45, 227, 242, 0), 0 0 25px rgba(45, 227, 242, .7); }
}

.vu-scanline {
  position: absolute;
  z-index: 6;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--vu-cyan), transparent);
  box-shadow: 0 0 24px var(--vu-cyan);
  opacity: .5;
  animation: vuStageScan 6s ease-in-out infinite;
}

@keyframes vuStageScan {
  0%, 100% { top: 12%; opacity: 0; }
  20%, 80% { opacity: .55; }
  50% { top: 84%; }
}

.vu-telemetry {
  position: absolute;
  z-index: 10;
  top: 18px;
  display: grid;
  gap: 4px;
  padding: 8px 11px;
  border-left: 2px solid var(--vu-cyan);
  background: rgba(4, 28, 41, .72);
  backdrop-filter: blur(7px);
}

.vu-telemetry.top-left { left: 18px; }
.vu-telemetry.top-right { right: 18px; border-left: 0; border-right: 2px solid var(--vu-cyan); text-align: right; }

.vu-telemetry small {
  color: #6f91a3;
  font-size: 8px;
  letter-spacing: .12em;
}

.vu-telemetry strong {
  color: #dffbff;
  font-family: monospace;
  font-size: 11px;
}

.vu-stage-caption {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 3px 0;
  color: #6f91a3;
  font-size: 9px;
  letter-spacing: .08em;
}

.vu-stage-caption span:first-child {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #a8c3cf;
}

.vu-stage-caption i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--vu-cyan);
  box-shadow: 0 0 10px var(--vu-cyan);
}

.vu-onboard-scene {
  position: relative;
  height: 490px;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgba(106, 183, 209, .2);
  border-radius: 9px;
  background: #051722;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .025), 0 20px 40px rgba(0, 0, 0, .2);
}

.vu-onboard-scene::before {
  position: absolute;
  z-index: 0;
  inset: -12px;
  content: "";
  background-image: var(--vu-scene-image);
  background-repeat: no-repeat;
  background-size: 200% auto;
  background-position: var(--vu-scene-x) var(--vu-scene-y);
  transform: translate3d(var(--vu-look-x, 0), var(--vu-look-y, 0), 0) scale(1.035);
  transition: transform .18s ease-out;
  filter: saturate(.9) contrast(1.04) brightness(.9);
  will-change: transform;
}

.vu-onboard-scene::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    linear-gradient(110deg, rgba(1, 14, 22, .3), transparent 43%, rgba(1, 14, 22, .12)),
    linear-gradient(180deg, rgba(2, 14, 22, .1), transparent 60%, rgba(2, 14, 22, .38)),
    radial-gradient(circle at 50% 45%, transparent 48%, rgba(0, 9, 15, .28) 100%);
}

.vu-scene-sky {
  display: none;
}

.vu-scene-window {
  display: none;
}

.vu-scene-window span {
  display: none;
}

.vu-scene-console {
  display: none;
}

.vu-scene-console i {
  display: none;
}

.vu-scene-grid {
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(45, 227, 242, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45, 227, 242, .035) 1px, transparent 1px);
  background-size: 42px 42px;
}

.vu-scene-hud {
  position: absolute;
  z-index: 8;
  top: 20px;
  left: 20px;
  display: grid;
  gap: 3px;
  padding: 11px 14px;
  border-left: 2px solid var(--vu-cyan);
  background: rgba(3, 20, 31, .72);
  backdrop-filter: blur(10px);
}

.vu-scene-hud small {
  color: var(--vu-cyan);
  font-size: 8px;
  letter-spacing: .15em;
}

.vu-scene-hud strong {
  font-family: Georgia, serif;
  font-size: 20px;
}

.vu-scene-hud span {
  color: #84a6b7;
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.vu-scene-hint {
  position: absolute;
  z-index: 8;
  right: 18px;
  bottom: 18px;
  color: #8eb0bf;
  font-size: 8px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.vu-scene-reference {
  position: absolute;
  z-index: 8;
  top: 20px;
  right: 20px;
  max-width: 265px;
  padding: 8px 10px;
  border: 1px solid rgba(45, 227, 242, .35);
  border-radius: 3px;
  color: #b8d7df;
  background: rgba(3, 20, 31, .72);
  font-size: 7px;
  line-height: 1.5;
  letter-spacing: .1em;
  text-align: right;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
}

.vu-onboard-scene[data-scene="engine"] {
  background:
    radial-gradient(circle at 50% 40%, rgba(235, 151, 62, .13), transparent 25%),
    repeating-linear-gradient(90deg, #0d2633 0 30px, #112e3c 31px 60px);
}

.vu-onboard-scene[data-scene="engine"] .vu-scene-sky {
  inset: 10% 15% 18%;
  background: linear-gradient(90deg, #1b3e4c, #31576a 40%, #163846);
  box-shadow: 0 0 0 18px #0a1f2b, inset 0 0 45px rgba(237, 156, 60, .12);
}

.vu-onboard-scene[data-scene="engine"] .vu-scene-window span {
  background: repeating-linear-gradient(90deg, #173c4b 0 12px, #254e5c 13px 22px);
}

.vu-onboard-scene[data-scene="cargo"],
.vu-onboard-scene[data-scene="holds"],
.vu-onboard-scene[data-scene="tanks"],
.vu-onboard-scene[data-scene="vehicle"],
.vu-onboard-scene[data-scene="containment"] {
  background:
    linear-gradient(180deg, rgba(6, 25, 36, .25), rgba(3, 14, 22, .75)),
    repeating-linear-gradient(90deg, #17465d 0 60px, #0e3448 61px 120px);
}

.vu-onboard-scene[data-scene="mooring"],
.vu-onboard-scene[data-scene="manifold"],
.vu-onboard-scene[data-scene="lashing"] {
  background:
    linear-gradient(180deg, #28627e 0 52%, #10354a 52% 58%, #143142 58%);
}

.vu-data-matrix {
  min-height: 490px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(106, 183, 209, .2);
  border-radius: 9px;
  background:
    linear-gradient(rgba(65, 155, 184, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(65, 155, 184, .08) 1px, transparent 1px),
    #061b29;
  background-size: 35px 35px;
}

.vu-data-cell {
  min-height: 112px;
  padding: 16px;
  border: 1px solid rgba(102, 176, 201, .18);
  background: rgba(5, 30, 44, .8);
}

.vu-data-cell span {
  color: #698da0;
  font-size: 8px;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.vu-data-cell strong {
  display: block;
  margin-top: 10px;
  color: #e9faff;
  font-family: Georgia, serif;
  font-size: 19px;
  font-weight: 500;
  line-height: 1.25;
}

.vu-zone-rail {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 5px;
  margin-top: 12px;
}

.vu-zone-rail button {
  min-height: 56px;
  display: grid;
  place-items: center;
  gap: 3px;
  border: 1px solid rgba(105, 167, 190, .18);
  border-radius: 4px;
  color: #7898a8;
  background: rgba(5, 28, 40, .65);
}

.vu-zone-rail button b {
  color: #acd0dc;
  font-size: 8px;
  line-height: 1;
}

.vu-zone-rail button small {
  display: none;
}

.vu-zone-rail button.active {
  border-color: var(--vu-cyan);
  color: #071e29;
  background: var(--vu-cyan);
}

.vu-zone-rail button.active b {
  color: #071e29;
}

.vu-system-panel {
  border-left: 1px solid rgba(106, 173, 198, .18);
}

.vu-system-icon {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  margin-top: 60px;
  border: 1px solid rgba(45, 227, 242, .55);
  border-radius: 50%;
  color: var(--vu-cyan);
  background: radial-gradient(circle, rgba(45, 227, 242, .13), transparent 70%);
  box-shadow: 0 0 40px rgba(45, 227, 242, .12);
  font-size: 28px;
}

.vu-system-panel > .vu-eyebrow {
  margin-top: 24px;
  color: #7899aa;
  font-size: 8px;
}

.vu-system-panel h3 {
  margin: 8px 0 14px;
  font-family: Georgia, serif;
  font-size: 31px;
  font-weight: 500;
}

.vu-system-panel > p:not(.vu-eyebrow) {
  min-height: 120px;
  margin: 0;
  color: #9bb6c3;
  font-size: 13px;
  line-height: 1.75;
}

.vu-operator-card {
  margin-top: 18px;
  padding: 15px;
  border-left: 2px solid var(--vu-gold);
  background: rgba(19, 56, 73, .45);
}

.vu-operator-card span {
  color: var(--vu-gold);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .13em;
}

.vu-operator-card p {
  margin: 7px 0 0;
  color: #c1d3dc;
  font-size: 11px;
  line-height: 1.55;
}

.vu-ai-section {
  max-width: 1420px;
}

.vu-ai-status {
  justify-self: end;
  align-self: start;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 12px;
  border: 1px solid #bcd9df;
  border-radius: 999px;
  color: #345f72;
  background: #e9fbfc;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.vu-ai-status i.offline {
  background: var(--vu-gold);
  box-shadow: 0 0 12px var(--vu-gold);
}

.vu-ai-layout {
  display: grid;
  grid-template-columns: 310px minmax(0, 1fr);
  min-height: 650px;
  overflow: hidden;
  border: 1px solid #cbdbe2;
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--vu-shadow);
}

.vu-ai-context {
  padding: 30px;
  color: #fff;
  background:
    radial-gradient(circle at 50% 18%, rgba(45, 227, 242, .16), transparent 28%),
    linear-gradient(160deg, #061825, #0c3349);
}

.vu-ai-orb {
  position: relative;
  width: 116px;
  height: 116px;
  display: grid;
  place-items: center;
  margin: 10px auto 45px;
  border: 1px solid rgba(45, 227, 242, .4);
  border-radius: 50%;
}

.vu-ai-orb::before,
.vu-ai-orb::after {
  position: absolute;
  inset: 12px;
  content: "";
  border: 1px solid rgba(45, 227, 242, .22);
  border-radius: 50%;
}

.vu-ai-orb::after {
  inset: -12px;
  border-style: dashed;
  animation: vuRadar 12s linear infinite;
}

.vu-ai-orb span,
.vu-ai-orb i {
  position: absolute;
  width: 76px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--vu-cyan), transparent);
}

.vu-ai-orb i {
  transform: rotate(90deg);
}

.vu-ai-orb b {
  position: relative;
  z-index: 2;
  color: #d9fcff;
  font-family: Georgia, serif;
  font-size: 27px;
  font-weight: 500;
}

.vu-ai-context .vu-eyebrow {
  color: #779aab;
  font-size: 8px;
}

.vu-ai-context h3 {
  margin: 8px 0 20px;
  font-family: Georgia, serif;
  font-size: 26px;
  line-height: 1.15;
  font-weight: 500;
}

.vu-ai-context dl {
  display: grid;
  gap: 8px;
  margin: 0 0 24px;
}

.vu-ai-context dl div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(138, 191, 210, .13);
}

.vu-ai-context dt {
  color: #7192a2;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.vu-ai-context dd {
  margin: 0;
  color: #dff7fc;
  font-size: 10px;
  text-align: right;
}

.vu-ai-context label {
  display: grid;
  gap: 7px;
  color: #91aebb;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.vu-ai-context select {
  height: 43px;
  border: 1px solid rgba(129, 189, 210, .3);
  border-radius: 4px;
  padding: 0 10px;
  color: #ecfbff;
  background: #0c3145;
}

.vu-privacy-note {
  margin: 18px 0 0;
  color: #6f919f;
  font-size: 9px;
  line-height: 1.55;
}

.vu-chat {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 28px;
  background:
    linear-gradient(rgba(31, 103, 131, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(31, 103, 131, .04) 1px, transparent 1px),
    #fbfdfe;
  background-size: 40px 40px;
}

.vu-chat-messages {
  flex: 1;
  min-height: 390px;
  max-height: 470px;
  overflow-y: auto;
  padding-right: 8px;
}

.vu-message {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  margin-bottom: 18px;
}

.vu-message > span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #052631;
  background: var(--vu-cyan);
  font-size: 9px;
  font-weight: 900;
}

.vu-message.user > span {
  color: #fff;
  background: #173f57;
}

.vu-message div {
  max-width: 760px;
  padding: 14px 16px;
  border: 1px solid #d7e3e8;
  border-radius: 4px 15px 15px 15px;
  color: #314f5f;
  background: #fff;
  box-shadow: 0 9px 25px rgba(9, 48, 66, .06);
}

.vu-message.user div {
  justify-self: end;
  border-radius: 15px 4px 15px 15px;
  color: #eaf8fb;
  background: #0f3850;
}

.vu-message strong {
  display: block;
  margin-bottom: 5px;
  color: #0b3f55;
  font-size: 11px;
}

.vu-message.user strong {
  color: #a9edf2;
}

.vu-message p {
  margin: 0;
  font-size: 12px;
  line-height: 1.65;
  white-space: pre-wrap;
}

.vu-message.loading div {
  display: flex;
  gap: 5px;
}

.vu-message.loading i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #3ca9bb;
  animation: vuTyping 1s infinite alternate;
}

.vu-message.loading i:nth-child(2) { animation-delay: .2s; }
.vu-message.loading i:nth-child(3) { animation-delay: .4s; }

@keyframes vuTyping {
  to { transform: translateY(-5px); opacity: .4; }
}

.vu-suggestions {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding: 8px 0 12px;
}

.vu-suggestions button {
  flex: 0 0 auto;
  min-height: 34px;
  border: 1px solid #c3d7df;
  border-radius: 999px;
  padding: 0 12px;
  color: #315d70;
  background: #fff;
  font-size: 9px;
  font-weight: 700;
}

.vu-chat-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 50px;
  gap: 8px;
  padding: 8px;
  border: 1px solid #b9cfd8;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(10, 57, 74, .08);
}

.vu-chat-form textarea {
  max-height: 110px;
  resize: none;
  border: 0;
  outline: 0;
  padding: 9px 10px;
  color: #17394c;
  background: transparent;
  line-height: 1.45;
}

.vu-chat-form button {
  border: 0;
  border-radius: 5px;
  color: #04202c;
  background: var(--vu-cyan);
  font-size: 21px;
  font-weight: 800;
}

.vu-chat-foot {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding: 9px 3px 0;
  color: #8499a3;
  font-size: 8px;
  letter-spacing: .05em;
}

.vu-missions-section {
  max-width: none;
  color: #fff;
  background: linear-gradient(145deg, #08243a, #061822);
}

.vu-mission-score {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 11px 15px;
  border: 1px solid rgba(95, 182, 209, .22);
  background: rgba(7, 34, 49, .65);
}

.vu-mission-score span {
  color: #7798a8;
  font-size: 8px;
  letter-spacing: .13em;
}

.vu-mission-score strong {
  font-family: Georgia, serif;
  font-size: 25px;
  font-weight: 500;
}

.vu-mission-score b {
  color: var(--vu-cyan);
}

.vu-mission-layout {
  max-width: 1450px;
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) 245px;
  min-height: 610px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(102, 178, 204, .2);
  border-radius: 15px;
  background: rgba(3, 18, 28, .65);
}

.vu-mission-rail {
  display: grid;
  align-content: start;
  padding: 15px;
  border-right: 1px solid rgba(106, 173, 198, .17);
  background: rgba(4, 23, 35, .75);
}

.vu-mission-rail button {
  min-height: 62px;
  display: grid;
  grid-template-columns: 30px 1fr;
  align-items: center;
  gap: 8px;
  border: 0;
  border-bottom: 1px solid rgba(103, 165, 188, .12);
  padding: 8px 4px;
  text-align: left;
  color: #7897a7;
  background: transparent;
}

.vu-mission-rail button > span {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(117, 181, 202, .2);
  border-radius: 50%;
  font-family: monospace;
  font-size: 8px;
}

.vu-mission-rail button b {
  display: block;
  font-size: 9px;
}

.vu-mission-rail button small {
  display: block;
  margin-top: 4px;
  color: #587585;
  font-size: 7px;
}

.vu-mission-rail button.active {
  color: #effcff;
}

.vu-mission-rail button.active > span {
  border-color: var(--vu-cyan);
  color: #04212d;
  background: var(--vu-cyan);
  box-shadow: 0 0 20px rgba(45, 227, 242, .2);
}

.vu-mission-rail button.done > span {
  color: #042d31;
  background: #80e5cc;
}

.vu-mission-console {
  padding: 34px;
}

.vu-mission-top {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.vu-mission-top small,
.vu-mission-top > span {
  color: var(--vu-cyan);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .13em;
}

.vu-mission-top h3 {
  margin: 7px 0 0;
  font-family: Georgia, serif;
  font-size: 32px;
  font-weight: 500;
}

.vu-mission-top > span {
  align-self: start;
  padding: 8px 10px;
  border: 1px solid rgba(45, 227, 242, .25);
  color: #8dafbf;
}

.vu-brief {
  margin-top: 30px;
  padding: 22px;
  border-left: 3px solid var(--vu-gold);
  background: rgba(15, 56, 75, .56);
}

.vu-brief span {
  color: var(--vu-gold);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .14em;
}

.vu-brief p {
  margin: 10px 0 0;
  color: #c5d7df;
  font-size: 14px;
  line-height: 1.65;
}

.vu-mission-console h4 {
  margin: 28px 0 16px;
  color: #eefaff;
  font-size: 16px;
}

.vu-mission-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.vu-mission-options button {
  min-height: 75px;
  display: grid;
  grid-template-columns: 28px 1fr;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(106, 177, 201, .22);
  border-radius: 5px;
  padding: 12px;
  text-align: left;
  color: #afc6d1;
  background: rgba(7, 34, 49, .62);
  font-size: 11px;
  line-height: 1.45;
}

.vu-mission-options button span {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(133, 192, 212, .22);
  border-radius: 50%;
  font-family: monospace;
  font-size: 9px;
}

.vu-mission-options button:hover:not(:disabled) {
  border-color: var(--vu-cyan);
  color: #fff;
}

.vu-mission-options button.correct {
  border-color: #68d9b7;
  color: #dffdf4;
  background: rgba(29, 116, 91, .32);
}

.vu-mission-options button.wrong {
  border-color: #ef7777;
  color: #ffe7e7;
  background: rgba(142, 46, 46, .3);
}

.vu-mission-feedback {
  margin-top: 14px;
  padding: 15px;
  border: 1px solid rgba(101, 211, 179, .28);
  color: #c5ede0;
  background: rgba(29, 107, 84, .2);
  font-size: 11px;
  line-height: 1.55;
}

.vu-progress-panel {
  padding: 28px 22px;
  text-align: center;
  border-left: 1px solid rgba(106, 173, 198, .17);
  background: rgba(4, 23, 35, .75);
}

.vu-progress-ring {
  position: relative;
  width: 150px;
  height: 150px;
  margin: 40px auto 22px;
}

.vu-progress-ring svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.vu-progress-ring circle {
  fill: none;
  stroke: rgba(103, 177, 200, .13);
  stroke-width: 8;
}

.vu-progress-ring circle:last-child {
  stroke: var(--vu-cyan);
  stroke-linecap: round;
  stroke-dasharray: 314;
  stroke-dashoffset: 314;
  transition: stroke-dashoffset .5s ease;
  filter: drop-shadow(0 0 7px rgba(45, 227, 242, .45));
}

.vu-progress-ring strong {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: Georgia, serif;
  font-size: 32px;
  font-weight: 500;
}

.vu-progress-panel h3 {
  margin: 0;
  font-family: Georgia, serif;
  font-size: 25px;
  font-weight: 500;
}

.vu-progress-panel p:not(.vu-eyebrow) {
  color: #7899a9;
  font-size: 10px;
  line-height: 1.6;
}

.vu-progress-panel .vu-link-btn {
  margin-top: 20px;
  color: #87a7b6;
}

.vu-vision-section {
  max-width: 1420px;
}

.vu-vision-layout {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  gap: 20px;
}

.vu-upload-card,
.vu-vision-report {
  min-height: 600px;
  padding: 24px;
  border: 1px solid #cbdbe2;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 20px 55px rgba(7, 40, 58, .08);
}

.vu-drop-zone {
  min-height: 390px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  border: 1px dashed #8db9c9;
  border-radius: 10px;
  text-align: center;
  background:
    linear-gradient(rgba(36, 133, 161, .06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(36, 133, 161, .06) 1px, transparent 1px),
    linear-gradient(145deg, #f4fbfc, #e9f5f8);
  background-size: 35px 35px, 35px 35px, auto;
  transition: border-color .2s ease, background .2s ease;
}

.vu-drop-zone.dragover {
  border-color: #18cbd8;
  background-color: #e2fcfe;
}

.vu-upload-icon {
  position: relative;
  width: 92px;
  height: 92px;
  display: grid;
  place-items: center;
  margin-bottom: 12px;
  border: 1px solid #81c5d2;
  border-radius: 50%;
  color: #0a4960;
}

.vu-upload-icon::before,
.vu-upload-icon::after {
  position: absolute;
  content: "";
  border: 1px solid rgba(23, 166, 185, .2);
  border-radius: 50%;
}

.vu-upload-icon::before { inset: 11px; }
.vu-upload-icon::after { inset: -9px; border-style: dashed; animation: vuRadar 9s linear infinite; }

.vu-upload-icon span {
  font-size: 29px;
}

.vu-upload-icon i {
  position: absolute;
  width: 2px;
  height: 80%;
  background: linear-gradient(transparent, var(--vu-cyan), transparent);
  animation: vuRadar 3s linear infinite;
}

.vu-drop-zone h3 {
  margin: 8px 0 0;
  font-family: Georgia, serif;
  font-size: 24px;
  font-weight: 500;
}

.vu-drop-zone p {
  margin: 0;
  color: #607986;
  font-size: 12px;
}

.vu-drop-zone small {
  margin-top: 12px;
  color: #8ba0aa;
  font-size: 8px;
  letter-spacing: .12em;
}

.vu-vision-preview {
  position: relative;
  height: 390px;
  overflow: hidden;
  border-radius: 10px;
  background: #061622;
}

.vu-vision-preview img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

.vu-vision-preview > button {
  position: absolute;
  z-index: 6;
  top: 12px;
  right: 12px;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 50%;
  color: #fff;
  background: rgba(3, 16, 25, .72);
  font-size: 20px;
}

.vu-vision-preview .vu-vision-scan {
  opacity: 0;
  transition: opacity .25s ease;
}

.vu-vision-preview.is-scanning .vu-vision-scan {
  opacity: 1;
}

.vu-vision-scan {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(rgba(45, 227, 242, .09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45, 227, 242, .09) 1px, transparent 1px);
  background-size: 40px 40px;
}

.vu-vision-scan span {
  position: absolute;
  left: 0;
  right: 0;
  top: 18%;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--vu-cyan), transparent);
  box-shadow: 0 0 26px var(--vu-cyan);
  animation: vuVisionScan 3.8s ease-in-out infinite;
}

@keyframes vuVisionScan {
  50% { top: 82%; }
}

.vu-vision-scan i {
  position: absolute;
  inset: 8%;
  border: 1px solid rgba(45, 227, 242, .35);
  clip-path: polygon(0 0, 18% 0, 18% 2px, 2px 2px, 2px 18%, 0 18%, 0 100%, 18% 100%, 18% calc(100% - 2px), 2px calc(100% - 2px), 2px 82%, 0 82%, 0 0, 100% 0, 82% 0, 82% 2px, calc(100% - 2px) 2px, calc(100% - 2px) 18%, 100% 18%, 100% 100%, 82% 100%, 82% calc(100% - 2px), calc(100% - 2px) calc(100% - 2px), calc(100% - 2px) 82%, 100% 82%);
}

.vu-vision-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.vu-vision-actions .vu-btn {
  flex: 1 1 190px;
}

.vu-vision-actions .vu-btn:disabled {
  opacity: .45;
  cursor: not-allowed;
  transform: none;
}

.vu-upload-privacy {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 8px;
  margin: 17px 0 0;
  color: #738893;
  font-size: 9px;
  line-height: 1.55;
}

.vu-upload-privacy > span:first-child {
  color: #13aab8;
}

.vu-vision-report {
  overflow: auto;
  background:
    linear-gradient(rgba(43, 124, 150, .04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(43, 124, 150, .04) 1px, transparent 1px),
    #fff;
  background-size: 40px 40px;
}

.vu-report-placeholder {
  min-height: 550px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  text-align: center;
}

.vu-report-placeholder p {
  margin: 0;
  color: #244a60;
  font-family: Georgia, serif;
  font-size: 22px;
}

.vu-report-placeholder small {
  max-width: 420px;
  color: #8296a0;
  font-size: 10px;
  line-height: 1.5;
}

.vu-report-radar {
  position: relative;
  width: 120px;
  height: 120px;
  margin-bottom: 12px;
  border: 1px solid #8acbd4;
  border-radius: 50%;
  background: repeating-radial-gradient(circle, transparent 0 17px, rgba(22, 152, 169, .14) 18px 19px);
}

.vu-report-radar span {
  position: absolute;
  left: 50%;
  bottom: 50%;
  width: 50%;
  height: 50%;
  transform-origin: left bottom;
  background: conic-gradient(from 70deg, transparent, rgba(23, 182, 195, .35));
  animation: vuRadar 4s linear infinite;
}

.vu-report-radar i {
  position: absolute;
  inset: 50%;
  width: 5px;
  height: 5px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: #16bac7;
  box-shadow: 0 0 12px #16bac7;
}

.vu-report {
  color: #18394c;
}

.vu-report-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 20px;
  border-bottom: 1px solid #d4e2e7;
}

.vu-report-head small {
  color: #758d99;
  font-size: 8px;
  letter-spacing: .13em;
}

.vu-report-head h3 {
  margin: 7px 0 0;
  font-family: Georgia, serif;
  font-size: 32px;
  font-weight: 500;
}

.vu-confidence {
  min-width: 85px;
  padding: 11px;
  border: 1px solid #9fd7d9;
  color: #0d5861;
  background: #e8fbfa;
  text-align: center;
}

.vu-confidence span {
  display: block;
  font-size: 8px;
  letter-spacing: .1em;
}

.vu-confidence strong {
  display: block;
  margin-top: 4px;
  font-size: 13px;
}

.vu-report-section {
  padding: 20px 0;
  border-bottom: 1px solid #dde7eb;
}

.vu-report-section > span {
  color: #7b919c;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .13em;
}

.vu-report-section h4 {
  margin: 7px 0 10px;
  font-size: 15px;
}

.vu-report-section p {
  margin: 0;
  color: #59717d;
  font-size: 11px;
  line-height: 1.65;
}

.vu-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}

.vu-chip-list i {
  padding: 7px 9px;
  border: 1px solid #c6d9df;
  border-radius: 999px;
  color: #315a6d;
  background: #f7fbfc;
  font-style: normal;
  font-size: 9px;
}

.vu-report-warning {
  margin-top: 18px;
  padding: 15px;
  border-left: 3px solid #d9ac5e;
  background: #fff8e9;
}

.vu-report-warning strong {
  display: block;
  margin-bottom: 5px;
  color: #795717;
  font-size: 10px;
}

.vu-report-warning p {
  color: #806b42;
}

.vu-report-actions {
  display: flex;
  gap: 9px;
  padding-top: 18px;
}

.vu-report-actions button {
  min-height: 38px;
  border: 1px solid #b6cad3;
  padding: 0 13px;
  color: #31596b;
  background: #fff;
  font-size: 9px;
  font-weight: 800;
}

.vu-method-section {
  padding-top: 0;
}

.vu-method-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  overflow: hidden;
  border: 1px solid #cfdee4;
  border-radius: 10px;
  background: #cfdee4;
}

.vu-method-grid article {
  min-height: 210px;
  padding: 28px;
  background: #fff;
}

.vu-method-grid span {
  color: #14b6c2;
  font-family: monospace;
  font-size: 10px;
}

.vu-method-grid h3 {
  margin: 30px 0 10px;
  font-family: Georgia, serif;
  font-size: 25px;
  font-weight: 500;
}

.vu-method-grid p {
  margin: 0;
  color: #6a7f8a;
  line-height: 1.6;
}

.vu-sources {
  max-width: 1420px;
  padding-top: 60px;
}

.vu-source-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.vu-source-grid a {
  min-height: 250px;
  display: flex;
  flex-direction: column;
  padding: 24px;
  border: 1px solid #d1dfe5;
  border-radius: 8px;
  color: #193c50;
  background: #fff;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}

.vu-source-grid a:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(8, 48, 67, .1);
}

.vu-source-grid span {
  color: #1fa9b5;
  font-family: monospace;
  font-size: 10px;
}

.vu-source-grid h3 {
  margin: 36px 0 10px;
  font-family: Georgia, serif;
  font-size: 25px;
  font-weight: 500;
}

.vu-source-grid p {
  flex: 1;
  margin: 0;
  color: #687d88;
  font-size: 12px;
  line-height: 1.55;
}

.vu-source-grid strong {
  margin-top: 20px;
  color: #176679;
  font-size: 10px;
}

.vu-disclaimer {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 30px;
  margin-top: 16px;
  padding: 22px;
  border: 1px solid #d3e0e5;
  color: #56717e;
  background: #eef5f7;
}

.vu-disclaimer b {
  color: #173f55;
  font-size: 12px;
}

.vu-disclaimer p {
  margin: 0;
  font-size: 11px;
  line-height: 1.6;
}

.vu-footer {
  background: #04131f !important;
}

.vu-dialog {
  width: min(1100px, calc(100vw - 36px));
  max-height: calc(100vh - 36px);
  padding: 0;
  border: 0;
  border-radius: 12px;
  color: #16384b;
  background: #fff;
  box-shadow: 0 30px 100px rgba(0, 0, 0, .35);
}

.vu-dialog::backdrop {
  background: rgba(2, 15, 24, .76);
  backdrop-filter: blur(7px);
}

.vu-dialog-head {
  position: sticky;
  z-index: 2;
  top: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 22px 26px;
  border-bottom: 1px solid #d3e0e5;
  background: #fff;
}

.vu-dialog-head h2 {
  margin: 5px 0 0;
  font-family: Georgia, serif;
  font-size: 30px;
  font-weight: 500;
}

.vu-dialog-head > button {
  width: 38px;
  height: 38px;
  border: 1px solid #cad8de;
  border-radius: 50%;
  color: #284d60;
  background: #fff;
  font-size: 23px;
}

.vu-compare-table {
  overflow-x: auto;
  padding: 26px;
}

.vu-compare-table table {
  width: 100%;
  border-collapse: collapse;
}

.vu-compare-table th,
.vu-compare-table td {
  min-width: 180px;
  padding: 13px;
  border: 1px solid #d9e4e8;
  text-align: left;
  vertical-align: top;
  font-size: 11px;
  line-height: 1.5;
}

.vu-compare-table th {
  min-width: 140px;
  color: #68808c;
  background: #eff5f7;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.vu-compare-table thead td {
  color: #123c52;
  font-family: Georgia, serif;
  font-size: 19px;
}

.vu-toast {
  position: fixed;
  z-index: 999;
  left: 50%;
  bottom: 22px;
  max-width: min(520px, calc(100vw - 36px));
  transform: translate(-50%, 120px);
  padding: 12px 17px;
  border: 1px solid rgba(73, 210, 222, .4);
  border-radius: 6px;
  color: #e8fbff;
  background: rgba(5, 35, 50, .96);
  box-shadow: 0 18px 55px rgba(0, 0, 0, .25);
  opacity: 0;
  transition: transform .3s ease, opacity .3s ease;
  font-size: 11px;
}

.vu-toast.show {
  transform: translate(-50%, 0);
  opacity: 1;
}

@media (max-width: 1220px) {
  .vu-hero {
    grid-template-columns: minmax(0, 1fr) 300px;
  }

  .vu-fleet-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .vu-twin-shell {
    grid-template-columns: 170px minmax(0, 1fr);
  }

  .vu-system-panel {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) 230px;
    align-items: center;
    gap: 20px;
    border-top: 1px solid rgba(106, 173, 198, .18);
    border-left: 0;
  }

  .vu-system-panel .vu-panel-label {
    grid-column: 1 / -1;
  }

  .vu-system-icon {
    margin: 0;
  }

  .vu-system-panel > .vu-eyebrow {
    margin-top: 0;
  }

  .vu-system-panel h3 {
    margin: 5px 0 8px;
  }

  .vu-system-panel > p:not(.vu-eyebrow) {
    min-height: 0;
  }

  .vu-operator-card {
    margin: 0;
  }

  .vu-system-panel .vu-btn-dark {
    grid-column: 3;
  }

  .vu-source-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 980px) {
  .vu-hero {
    min-height: 900px;
    grid-template-columns: 1fr;
    align-items: end;
    padding-top: 130px;
    padding-bottom: 95px;
  }

  .vu-hero::before {
    background: linear-gradient(90deg, rgba(3, 15, 26, .92), rgba(3, 15, 26, .45)), linear-gradient(0deg, rgba(3, 15, 26, .95), transparent 58%);
  }

  .vu-hero-console {
    position: absolute;
    right: 28px;
    bottom: 110px;
    width: 260px;
    opacity: .62;
  }

  .vu-radar {
    width: 130px;
    height: 130px;
    margin: 12px auto;
  }

  .vu-subnav {
    top: 68px;
    overflow-x: auto;
    grid-template-columns: repeat(3, minmax(170px, 1fr));
  }

  .vu-section-heading {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .vu-fleet-controls {
    grid-template-columns: 1fr auto;
  }

  .vu-filter-row {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .vu-fleet-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vu-twin-shell {
    grid-template-columns: 1fr;
  }

  .vu-twin-selector {
    max-height: none;
    border-right: 0;
    border-bottom: 1px solid rgba(106, 173, 198, .18);
  }

  .vu-twin-list {
    grid-template-columns: repeat(4, 1fr);
  }

  .vu-system-panel {
    grid-template-columns: 72px minmax(0, 1fr);
  }

  .vu-system-panel .vu-btn-dark {
    grid-column: 1 / -1;
  }

  .vu-operator-card {
    grid-column: 1 / -1;
  }

  .vu-ai-layout {
    grid-template-columns: 250px minmax(0, 1fr);
  }

  .vu-mission-layout {
    grid-template-columns: 150px minmax(0, 1fr);
  }

  .vu-progress-panel {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 130px 1fr auto;
    align-items: center;
    gap: 20px;
    border-top: 1px solid rgba(106, 173, 198, .17);
    border-left: 0;
    text-align: left;
  }

  .vu-progress-panel .vu-eyebrow {
    display: none;
  }

  .vu-progress-ring {
    width: 110px;
    height: 110px;
    margin: 0;
  }

  .vu-progress-panel .vu-link-btn {
    margin: 0;
  }

  .vu-vision-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .vu-hero {
    min-height: 780px;
    padding: 115px 20px 78px;
  }

  .vu-hero-image {
    background-position: 63% center;
  }

  .vu-hero::before {
    background: linear-gradient(90deg, rgba(3, 15, 26, .9), rgba(3, 15, 26, .5)), linear-gradient(0deg, rgba(3, 15, 26, .97), rgba(3, 15, 26, .2) 72%);
  }

  .vu-hero h1 {
    font-size: clamp(46px, 14vw, 70px);
  }

  .vu-hero-lead {
    font-size: 16px;
  }

  .vu-hero-console {
    display: none;
  }

  .vu-hero-proof {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }

  .vu-hero-proof div {
    border-right: 0;
    padding-right: 0;
  }

  .vu-scroll-cue {
    display: none;
  }

  .vu-section {
    padding: 78px 18px;
  }

  .vu-section-heading h2 {
    font-size: 40px;
  }

  .vu-fleet-controls {
    grid-template-columns: 1fr;
  }

  .vu-filter-row {
    grid-column: 1;
    grid-row: auto;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
  }

  .vu-result-count {
    text-align: left;
  }

  .vu-fleet-grid {
    grid-template-columns: 1fr;
  }

  .vu-vessel-card {
    min-height: 340px;
  }

  .vu-compare-dock {
    align-items: stretch;
    flex-direction: column;
  }

  .vu-twin-selector {
    padding: 14px;
  }

  .vu-twin-list {
    grid-template-columns: repeat(2, 1fr);
  }

  .vu-twin-list button {
    min-height: 56px;
  }

  .vu-twin-main {
    padding: 12px;
  }

  .vu-twin-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .vu-mode-switch {
    width: 100%;
  }

  .vu-mode-switch button {
    flex: 1;
  }

  .vu-ship-stage {
    height: 330px;
  }

  .vu-ship-svg {
    left: 3%;
    right: 3%;
    bottom: 9%;
    height: 225px;
  }

  #profileView {
    min-height: 375px;
  }

  .vu-telemetry {
    top: 10px;
    padding: 7px;
  }

  .vu-telemetry.top-left { left: 10px; }
  .vu-telemetry.top-right { right: 10px; }

  .vu-hotspot {
    width: 25px;
    height: 25px;
  }

  .vu-stage-caption {
    display: none;
  }

  .vu-onboard-scene,
  .vu-data-matrix {
    min-height: 400px;
    height: 400px;
  }

  .vu-scene-hud {
    top: 12px;
    left: 12px;
    max-width: calc(100% - 24px);
  }

  .vu-scene-reference {
    top: auto;
    right: 12px;
    bottom: 12px;
    max-width: calc(100% - 24px);
  }

  .vu-scene-hint {
    display: none;
  }

  .vu-data-matrix {
    grid-template-columns: repeat(2, 1fr);
    overflow-y: auto;
  }

  .vu-zone-rail {
    grid-template-columns: repeat(4, 1fr);
  }

  .vu-system-panel {
    grid-template-columns: 54px 1fr;
    padding: 16px;
  }

  .vu-system-icon {
    width: 54px;
    height: 54px;
    font-size: 21px;
  }

  .vu-system-panel h3 {
    font-size: 25px;
  }

  .vu-ai-section {
    padding-left: 12px;
    padding-right: 12px;
  }

  .vu-ai-status {
    justify-self: start;
  }

  .vu-ai-layout {
    grid-template-columns: 1fr;
  }

  .vu-ai-context {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 15px;
    padding: 20px;
  }

  .vu-ai-orb {
    grid-row: 1 / 4;
    width: 72px;
    height: 72px;
    margin: 0;
  }

  .vu-ai-context h3 {
    margin: 3px 0 0;
    font-size: 21px;
  }

  .vu-ai-context dl,
  .vu-ai-context label,
  .vu-ai-context .vu-privacy-note {
    grid-column: 1 / -1;
  }

  .vu-chat {
    padding: 16px;
  }

  .vu-chat-messages {
    min-height: 340px;
  }

  .vu-chat-foot {
    align-items: flex-start;
    flex-direction: column;
  }

  .vu-mission-layout {
    grid-template-columns: 1fr;
  }

  .vu-mission-rail {
    display: flex;
    overflow-x: auto;
    border-right: 0;
    border-bottom: 1px solid rgba(106, 173, 198, .17);
  }

  .vu-mission-rail button {
    flex: 0 0 150px;
  }

  .vu-mission-console {
    padding: 22px 16px;
  }

  .vu-mission-options {
    grid-template-columns: 1fr;
  }

  .vu-progress-panel {
    grid-template-columns: 90px 1fr;
  }

  .vu-progress-ring {
    width: 82px;
    height: 82px;
  }

  .vu-progress-ring strong {
    font-size: 23px;
  }

  .vu-progress-panel .vu-link-btn {
    grid-column: 1 / -1;
  }

  .vu-upload-card,
  .vu-vision-report {
    min-height: 520px;
    padding: 14px;
  }

  .vu-drop-zone,
  .vu-vision-preview {
    min-height: 330px;
    height: 330px;
  }

  .vu-method-grid {
    grid-template-columns: 1fr;
  }

  .vu-method-grid article {
    min-height: 160px;
  }

  .vu-source-grid {
    grid-template-columns: 1fr;
  }

  .vu-source-grid a {
    min-height: 210px;
  }

  .vu-disclaimer {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

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

@media print {
  .vu-header,
  .vu-subnav,
  .vu-hero,
  .vu-footer,
  .vu-upload-card,
  .vu-method-section,
  .vu-sources,
  .vu-toast {
    display: none !important;
  }

  .vu-vision-layout {
    display: block;
  }

  .vu-vision-report {
    border: 0;
    box-shadow: none;
  }
}
