/* VIENNA v170 — complete visual system.
   Keeps the existing HTML/application structure and re-skins every shared surface
   with the VIENNA brand board: peach/orange, ivory, warm charcoal and warm gray. */
:root{
  --vienna-primary:#F59A62;
  --vienna-primary-soft:#FFC39B;
  --vienna-primary-deep:#D9703F;
  --vienna-paper:#FFFBF2;
  --vienna-paper-2:#FFF6EE;
  --vienna-paper-3:#F7EEE5;
  --vienna-ink:#27231F;
  --vienna-muted:#706861;
  --vienna-line:rgba(112,104,97,.16);
  --vienna-line-strong:rgba(112,104,97,.25);
  --vienna-white:#FFFFFF;
  --vienna-shadow-sm:0 8px 24px rgba(79,58,43,.08);
  --vienna-shadow:0 18px 50px rgba(79,58,43,.12);
  --vienna-shadow-lg:0 30px 90px rgba(79,58,43,.16);
  --vienna-ring:0 0 0 4px rgba(245,154,98,.16);
  --bg:#FFFBF2!important;
  --surface:#FFFFFF!important;
  --surface-2:#FFF6EE!important;
  --surface-3:#F7EEE5!important;
  --text:#27231F!important;
  --muted:#706861!important;
  --muted-2:#948A82!important;
  --line:rgba(112,104,97,.16)!important;
  --orange:#F59A62!important;
  --orange-2:#D9703F!important;
  --orange-3:#FFC39B!important;
  --o:#F59A62!important;
  --o2:#FFC39B!important;
  --shadow:var(--vienna-shadow)!important;
  --brand:#F59A62!important;
  --brand-2:#D9703F!important;
  --brand-soft:#FFF0E5!important;
  --accent:#F59A62!important;
  --ink:#27231F!important;
  --soft:#FFF6EE!important;
}
html{color-scheme:light!important;background:var(--vienna-paper)!important}
html[data-rairo-theme],html[data-vaizu-theme]{color-scheme:light!important}
body{
  color:var(--vienna-ink)!important;
  background:
    radial-gradient(circle at 8% -8%,rgba(255,195,155,.28),transparent 30rem),
    radial-gradient(circle at 94% 0,rgba(245,154,98,.12),transparent 28rem),
    var(--vienna-paper)!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body:before{background:none!important}
::selection{background:rgba(245,154,98,.28);color:var(--vienna-ink)}
:focus-visible{outline:2px solid rgba(217,112,63,.55)!important;outline-offset:2px!important}

/* Header / navigation */
.topbar{
  background:rgba(255,251,242,.86)!important;
  border-bottom:1px solid rgba(112,104,97,.12)!important;
  box-shadow:0 8px 30px rgba(79,58,43,.045)!important;
  backdrop-filter:blur(24px) saturate(1.2)!important;
  -webkit-backdrop-filter:blur(24px) saturate(1.2)!important;
}
.nav{gap:14px!important}
.brand{color:var(--vienna-ink)!important;font-weight:880!important;letter-spacing:-.45px!important}
.brand>span{display:none!important}
.rairo-brand-wordmark{width:126px!important;height:38px!important;object-fit:contain!important;object-position:left center!important}
.navlinks a,.navlinks button.navbtn{color:var(--vienna-muted)!important;border-radius:999px!important;font-weight:720!important}
.navlinks a:hover,.navlinks button.navbtn:hover,.navlinks a.active{background:rgba(245,154,98,.11)!important;color:var(--vienna-ink)!important}

/* Buttons */
.btn,.auth-button,.profile-v108-button,.guest-limit-primary,.guest-limit-secondary{
  border-radius:14px!important;
  font-weight:800!important;
  letter-spacing:-.12px!important;
  transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease,border-color .18s ease,background .18s ease!important;
}
.btn{
  background:rgba(255,255,255,.92)!important;
  color:var(--vienna-ink)!important;
  border:1px solid var(--vienna-line)!important;
  box-shadow:0 5px 16px rgba(79,58,43,.045)!important;
}
.btn:hover{transform:translateY(-1px)!important;border-color:rgba(217,112,63,.28)!important;box-shadow:var(--vienna-shadow-sm)!important}
.btn:active{transform:translateY(0) scale(.985)!important}
.btn-primary{
  color:#fff!important;
  border-color:transparent!important;
  background:linear-gradient(135deg,#FFC39B 0%,#F59A62 45%,#D9703F 100%)!important;
  box-shadow:0 11px 26px rgba(217,112,63,.22),inset 0 1px 0 rgba(255,255,255,.42)!important;
}
.btn-primary:hover{box-shadow:0 15px 34px rgba(217,112,63,.27),inset 0 1px 0 rgba(255,255,255,.46)!important}
.btn-danger{background:#FFF3F0!important;border-color:#F3CDC6!important;color:#A04435!important}

/* Shared cards / panels / forms */
.card,.panel,.kpi,.alert-card,.auth-card,.modal-card,.sheet-card{
  background:rgba(255,255,255,.94)!important;
  color:var(--vienna-ink)!important;
  border-color:var(--vienna-line)!important;
  box-shadow:var(--vienna-shadow-sm)!important;
}
.card:hover,.panel:hover{border-color:rgba(217,112,63,.23)!important}
.panel-head{border-bottom-color:rgba(112,104,97,.12)!important}
.subtitle,.page-subtitle,.muted,.tiny,.card p,.panel p{color:var(--vienna-muted)!important}
.eyebrow{color:var(--vienna-primary-deep)!important}
.title,.page-title,.section-title{color:var(--vienna-ink)!important}
.title span,.section-title span,.hero h1 span{color:var(--vienna-primary-deep)!important}
.iconbox{
  background:linear-gradient(145deg,#FFF7F0,#FFE7D6)!important;
  color:var(--vienna-primary-deep)!important;
  border-color:#FFDCC6!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 9px 22px rgba(217,112,63,.08)!important;
}
.input,.select,.textarea,input:not([type=radio]):not([type=checkbox]):not([type=hidden]),select,textarea{
  color:var(--vienna-ink)!important;
  background:rgba(255,255,255,.94)!important;
  border-color:var(--vienna-line)!important;
}
.input::placeholder,.textarea::placeholder,input::placeholder,textarea::placeholder{color:#9C9189!important}
.input:focus,.select:focus,.textarea:focus,input:focus,select:focus,textarea:focus{
  border-color:rgba(217,112,63,.5)!important;
  box-shadow:var(--vienna-ring)!important;
}
.badge{background:#FFF3E9!important;border-color:#FFD9C2!important;color:#A9522D!important}
.badge.green{background:#EDF8F3!important;border-color:#CDE8DB!important;color:#2B7258!important}
.badge.red{background:#FFF0EE!important;border-color:#F0CAC4!important;color:#A34B3E!important}
.table th{color:#8E837C!important;background:#FFF8F2!important;border-color:var(--vienna-line)!important}
.table td{color:var(--vienna-ink)!important;border-color:rgba(112,104,97,.10)!important}
.table tr:hover td{background:#FFFAF6!important}
.flash{background:rgba(255,255,255,.96)!important;border-color:var(--vienna-line)!important;color:var(--vienna-ink)!important;box-shadow:var(--vienna-shadow-sm)!important}

/* Landing / public pages */
.hero-card{background:linear-gradient(145deg,#FFFFFF,#FFF6EE)!important;border-color:var(--vienna-line)!important;box-shadow:var(--vienna-shadow-lg)!important}
.mock-map{background:radial-gradient(circle at 30% 20%,#FFFDF9,#F4EDE6 62%,#EEE4DA)!important}
.mock-map:before,.mock-map:after{filter:none!important;opacity:.7!important}
.map-bubble{background:rgba(39,35,31,.92)!important;color:#fff!important;border-color:rgba(255,255,255,.10)!important;box-shadow:0 15px 36px rgba(39,35,31,.18)!important}
.map-bubble small{color:#D9D1CB!important}
.route-line{border-color:var(--vienna-primary)!important;border-left-color:transparent!important;border-bottom-color:var(--vienna-primary-soft)!important;filter:drop-shadow(0 0 12px rgba(245,154,98,.27))!important}

/* Mobile dock */
.mobile-dock{
  background:rgba(255,251,242,.94)!important;
  border-color:rgba(112,104,97,.14)!important;
  box-shadow:0 16px 42px rgba(79,58,43,.14)!important;
  backdrop-filter:blur(24px) saturate(1.2)!important;
  -webkit-backdrop-filter:blur(24px) saturate(1.2)!important;
}
.mobile-dock a{color:#847A73!important}
.mobile-dock a:hover,.mobile-dock a.active{background:#FFF0E5!important;color:var(--vienna-primary-deep)!important}

/* Login standalone: override legacy purple without changing its structure */
.auth-page{background:
  radial-gradient(circle at 8% 0,rgba(255,195,155,.26),transparent 34rem),
  var(--vienna-paper)!important}
.auth-shell{background:#fff!important;border-color:var(--vienna-line)!important;box-shadow:var(--vienna-shadow-lg)!important}
.auth-pane{background:linear-gradient(160deg,#FFFFFF 0%,#FFFCF8 100%)!important}
.auth-page .eyebrow,.auth-page h1 span{color:var(--vienna-primary-deep)!important}
.auth-page .eyebrow:before{background:var(--vienna-primary)!important}
.product-pill{background:#FFF8F2!important;border-color:var(--vienna-line)!important;color:var(--vienna-muted)!important}
.product-pill i{background:var(--vienna-primary)!important;box-shadow:0 0 0 4px rgba(245,154,98,.13)!important}
.auth-button.email{
  background:linear-gradient(135deg,#FFC39B,#F59A62 52%,#D9703F)!important;
  color:#fff!important;
  box-shadow:0 12px 28px rgba(217,112,63,.23)!important;
}
.auth-button.google{border-color:var(--vienna-line)!important;box-shadow:0 6px 18px rgba(79,58,43,.06)!important}
.auth-links a:hover{color:var(--vienna-primary-deep)!important}
.route-pane{background:#F4EEE7!important;border-left-color:var(--vienna-line)!important}
.route-glow{background:rgba(245,154,98,.17)!important}
.live-badge,.mini-chip,.route-summary,.reroute-card{border-color:var(--vienna-line)!important;box-shadow:var(--vienna-shadow-sm)!important}
.mini-chip svg,.reroute-icon{color:var(--vienna-primary-deep)!important}
.reroute-icon{background:#FFF0E5!important}
.reroute-line i{background:linear-gradient(90deg,var(--vienna-primary-soft),var(--vienna-primary-deep))!important}
.location-dot{background:var(--vienna-primary)!important;box-shadow:0 4px 16px rgba(217,112,63,.28)!important}
.location-dot.end{background:var(--vienna-ink)!important}

/* Onboarding/profile/admin polish */
.ob-card,.profile-v108-card,.profile-v72-card,.activity-card,.admin-card,.admin-kpi{
  background:#fff!important;
  border-color:var(--vienna-line)!important;
  box-shadow:var(--vienna-shadow-sm)!important;
}
.ob-option.active,.profile-v72-accent:has(input:checked),.profile-v108-quick a:hover{
  border-color:rgba(217,112,63,.34)!important;
  background:#FFF5EC!important;
}
.profile-v108-quick-icon,.profile-v72-icon,.ob-icon{background:#FFF0E5!important;color:var(--vienna-primary-deep)!important}

/* Shared route / live trip standalone */
.share-app,.live-app{background:#F5EFE8!important;color:var(--vienna-ink)!important}
.share-top,.route-panel,.live-top,.live-app .card{background:rgba(255,251,242,.96)!important;border-color:var(--vienna-line)!important;box-shadow:var(--vienna-shadow)!important}
.route-kicker,.live-app .eyebrow{color:var(--vienna-primary-deep)!important}
.route-actions .primary{background:linear-gradient(135deg,#FFC39B,#F59A62 55%,#D9703F)!important;color:#fff!important;box-shadow:0 10px 24px rgba(217,112,63,.2)!important}
.route-note{background:#FFF1E7!important;color:#8A4B2D!important}
.metric,.stat{background:#FFF9F4!important;border-color:var(--vienna-line)!important}
.progress i{background:linear-gradient(90deg,#FFC39B,#F59A62,#D9703F)!important}

@media(max-width:760px){
  .topbar{background:rgba(255,251,242,.94)!important}
  .container,.nav{width:calc(100% - 18px)!important}
  .page{padding-top:18px!important}
  .card,.panel{border-radius:18px!important}
  .auth-page{padding:0!important;background:#fff!important}
  .auth-shell{border:0!important;border-radius:0!important;min-height:100dvh!important;box-shadow:none!important}
}

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


/* Dedicated admin/risk screens that shipped with hard-coded violet rules. */
body:has(.risk-admin){background:var(--vienna-paper)!important;color:var(--vienna-ink)!important}
body:has(.risk-admin) .topbar{background:rgba(255,251,242,.94)!important;border-color:var(--vienna-line)!important}
.risk-eyebrow{color:var(--vienna-primary-deep)!important}
.risk-card{border-color:var(--vienna-line)!important;background:#fff!important;box-shadow:var(--vienna-shadow-sm)!important}
.risk-card-head{border-color:rgba(112,104,97,.11)!important}
.rf-input,.rf-select{background:#FFFCF9!important;border-color:var(--vienna-line)!important;color:var(--vienna-ink)!important}
.rf-input:focus,.rf-select:focus{border-color:rgba(217,112,63,.52)!important;box-shadow:var(--vienna-ring)!important}
.switch input:checked+span{background:linear-gradient(135deg,var(--vienna-primary-soft),var(--vienna-primary))!important}
.risk-submit{background:linear-gradient(135deg,#FFC39B,#F59A62 52%,#D9703F)!important;box-shadow:0 10px 24px rgba(217,112,63,.2)!important}
.zone-pill{background:#FFF1E7!important;color:#A4512D!important}
.policy-note{background:#FFF6EF!important;border-color:#FFE0CD!important;color:#795C4B!important}
.risk-back,.mini-btn{border-color:var(--vienna-line)!important;color:var(--vienna-ink)!important}

/* Register / entry experience */
body:has(.rairo-entry),.rairo-entry{background:var(--vienna-paper)!important;color:var(--vienna-ink)!important}
.v63-entry-shell{background:#fff!important;border-color:var(--vienna-line)!important;box-shadow:var(--vienna-shadow-lg)!important}
.v63-entry-shell:before{background:linear-gradient(115deg,rgba(255,255,255,.96) 0 43%,rgba(255,246,238,.54) 43% 100%)!important}
.v63-entry-brand em,.v63-entry-kicker,.v63-entry-panel h1 span{color:var(--vienna-primary-deep)!important}
.v63-entry-brand em{background:#FFF0E5!important}
.v63-entry-proof span{border-color:var(--vienna-line)!important;background:#FFF9F4!important;color:var(--vienna-muted)!important}
.v63-route-stage{background:radial-gradient(circle at 72% 8%,rgba(255,195,155,.22),transparent 26%),linear-gradient(145deg,#FFF9F4,#F0E7DE)!important;border-color:var(--vienna-line)!important}
.v63-stage-card,.v63-stage-brand{background:rgba(255,251,242,.90)!important;border-color:var(--vienna-line)!important;color:var(--vienna-ink)!important;box-shadow:var(--vienna-shadow-sm)!important}
.auth-choice.primary,.auth-google.auth-google-primary{background:linear-gradient(135deg,#FFC39B,#F59A62 50%,#D9703F)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 12px 28px rgba(217,112,63,.21)!important}
.auth-choice.secondary,.auth-guest{background:#fff!important;color:var(--vienna-ink)!important;border-color:var(--vienna-line)!important}
.auth-sheet .sheet-card{border-color:var(--vienna-line)!important;box-shadow:var(--vienna-shadow-lg)!important}
.sheet-input:focus,.sheet-select:focus{border-color:rgba(217,112,63,.5)!important;box-shadow:var(--vienna-ring)!important}
.sheet-submit{background:linear-gradient(135deg,#FFC39B,#F59A62 50%,#D9703F)!important;box-shadow:0 12px 26px rgba(217,112,63,.21)!important}

/* Onboarding: convert the legacy dark setup flow into a warm VIENNA setup flow. */
.onboard{
  background:radial-gradient(circle at 86% -6%,rgba(255,195,155,.30),transparent 30rem),radial-gradient(circle at 4% 36%,rgba(245,154,98,.10),transparent 25rem),var(--vienna-paper)!important;
  color:var(--vienna-ink)!important;
}
.rairo-mini{color:var(--vienna-ink)!important}
.rairo-mini img{filter:drop-shadow(0 8px 18px rgba(217,112,63,.16))!important}
.step-pill{color:var(--vienna-primary-deep)!important;border-color:#FFD7BF!important;background:#FFF1E6!important}
.ob-progress{background:#EFE4DB!important}.ob-progress i{background:linear-gradient(90deg,#FFC39B,#F59A62,#D9703F)!important;box-shadow:0 0 15px rgba(245,154,98,.22)!important}
.ob-head .eyebrow{color:var(--vienna-primary-deep)!important}
.ob-head h1{color:var(--vienna-ink)!important}.ob-head h1 span{color:#8A7F77!important}.ob-head p{color:var(--vienna-muted)!important}
.ob-section{border-color:var(--vienna-line)!important;background:rgba(255,255,255,.92)!important;box-shadow:var(--vienna-shadow-sm)!important}
.ob-section-title .ico{background:#FFF0E5!important;border-color:#FFDCC7!important;color:var(--vienna-primary-deep)!important}
.ob-section-title b{color:var(--vienna-ink)!important}.ob-section-title span{color:var(--vienna-muted)!important}
.onboard .input,.onboard .select{background:#FFFCF9!important;color:var(--vienna-ink)!important;border-color:var(--vienna-line)!important}
.onboard .input::placeholder{color:#A0958D!important}
.choice label,.pref label,.night-card{background:#FFFDFC!important;border-color:var(--vienna-line)!important}
.choice label b,.pref label b,.night-card b,.presence-consent b{color:var(--vienna-ink)!important}
.choice label span,.pref label span,.night-card span,.presence-consent span span{color:var(--vienna-muted)!important}
.choice input:checked+label,.pref input:checked+label{border-color:rgba(217,112,63,.38)!important;background:#FFF2E8!important;box-shadow:inset 0 0 0 1px rgba(245,154,98,.05)!important}
.pref-icon{background:#FFF5ED!important;color:#8A7E76!important}.pref input:checked+label .pref-icon{background:#FFEBDD!important;color:var(--vienna-primary-deep)!important}
.radio-dot{border-color:#CFC2B8!important}.pref input:checked+label .radio-dot{border-color:var(--vienna-primary)!important}.pref input:checked+label .radio-dot:after{background:var(--vienna-primary)!important}
.slider{background:#D7CCC3!important}.switch input:checked+.slider{background:linear-gradient(135deg,var(--vienna-primary-soft),var(--vienna-primary))!important}
.mini-note{background:#FFF8F2!important;color:var(--vienna-muted)!important}
.privacy-note{background:#FFF6EF!important;border-color:#FFE1CE!important;color:#796C63!important}.privacy-note i{color:var(--vienna-primary-deep)!important}
.presence-consent{border-color:#FFD9C3!important;background:#FFF4EB!important}
.fine,.optional,.vehicle-hint{color:#887D75!important}.vehicle-hint i{color:var(--vienna-primary-deep)!important}

/* Live trip standalone */
.app{background:#F4EEE7!important;color:var(--vienna-ink)!important}
.app .map{background:#F1EAE3!important}
.app .veil{background:linear-gradient(180deg,rgba(255,251,242,.18),transparent 24%,transparent 70%,rgba(255,251,242,.12))!important}
.app .brand,.app .status{background:rgba(255,251,242,.95)!important;border-color:var(--vienna-line)!important;color:var(--vienna-ink)!important;box-shadow:var(--vienna-shadow-sm)!important}
.app .status{color:var(--vienna-muted)!important}
.app .dot{background:var(--vienna-primary)!important;box-shadow:0 0 0 5px rgba(245,154,98,.13)!important}
.app .card{background:rgba(255,251,242,.97)!important;border-color:var(--vienna-line)!important;color:var(--vienna-ink)!important;box-shadow:0 -14px 42px rgba(67,49,37,.14)!important}
.app .grab{background:#D6CBC2!important}.app .eyebrow{color:var(--vienna-primary-deep)!important}.app .card p,.app .stat span,.app .privacy{color:var(--vienna-muted)!important}
.app .stat{background:#FFF8F2!important;border-color:var(--vienna-line)!important}.app .progress{background:#EDE2D9!important}
.app .progress i{background:linear-gradient(90deg,#FFC39B,#F59A62,#D9703F)!important}
.app .puck{background:linear-gradient(145deg,#FFC39B,#F59A62 55%,#D9703F)!important;border-color:#FFFBF2!important;box-shadow:0 0 0 4px rgba(39,35,31,.82),0 9px 22px rgba(39,35,31,.24)!important}
.app .offline{background:var(--vienna-paper)!important;color:var(--vienna-ink)!important}.app .offline p{color:var(--vienna-muted)!important}
