/* ============================================================
   SHUTTLEME.PT — DESIGN SYSTEM v2
   Black & white. Mobile-first. Three pillars: Arrive · Stay · Explore.
   ============================================================ */
:root{
  --ink:#0a0a0a; --ink-soft:#1c1c1c;
  --paper:#ffffff;
  --grey-50:#f7f7f7; --grey-100:#f0f0f0; --grey-200:#e4e4e4; --grey-300:#d0d0d0;
  --grey-400:#a3a3a3; --grey-500:#737373; --grey-600:#525252;
  --success:#0e7a4f; --success-bg:#eef8f2;
  --error:#c0362c; --error-bg:#fbf0ef;
  --warn:#8a6d1a; --warn-bg:#faf5e6;
  --band-bg:#0a0a0a; --band-fg:#ffffff; --band-muted:rgba(255,255,255,.65);
  --header-glass:rgba(255,255,255,.88);
  --radius-s:8px; --radius-m:14px; --radius-l:20px;
  --shadow-1:0 1px 2px rgba(0,0,0,.04),0 4px 12px rgba(0,0,0,.05);
  --shadow-2:0 2px 4px rgba(0,0,0,.05),0 12px 32px rgba(0,0,0,.10);
  --shadow-3:0 4px 8px rgba(0,0,0,.06),0 24px 56px rgba(0,0,0,.14);
  --ease:cubic-bezier(.22,.61,.36,1);
  --header-h:64px; --container:1180px;
  color-scheme:light;
}

/* Customer privacy centre */
.profile-email-note{margin:-10px 0 14px}.privacy-card-body{padding:20px}.privacy-card-body>p:first-child{margin:0 0 16px;line-height:1.6}.privacy-action-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.privacy-setting{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.privacy-setting div{display:grid;gap:4px}.privacy-setting span:not(.status-pill){font-size:.84rem;color:var(--grey-600)}.privacy-status-list{display:grid}.privacy-status-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--grey-200)}.privacy-status-list>div:first-child{border-top:0}.privacy-status-list span:first-child{display:grid;gap:3px}.privacy-status-list small,.privacy-status-list time{font-size:.78rem;color:var(--grey-600)}.danger-zone{border-color:color-mix(in srgb,#a73a33 34%,var(--grey-200))}.danger-zone .acct-card-head h3{color:#92342e}
@media(max-width:640px){.privacy-action-row{display:grid}.privacy-action-row .btn{width:100%}.privacy-setting{align-items:center}.privacy-status-list>div{grid-template-columns:minmax(0,1fr) auto}.privacy-status-list time{grid-column:1/-1}.privacy-card-body{padding:18px}}
/* ============================================================
   DARK MODE — token flip only; components stay token-driven.
   Applied via html[data-theme="dark"] (set by the theme engine
   for "dark" or when "system" resolves to dark).
   ============================================================ */
html[data-theme="dark"]{
  --ink:#f1f1f1; --ink-soft:#dcdcdc;
  --paper:#121316;
  --grey-50:#1a1b1f; --grey-100:#222329; --grey-200:#2e3037; --grey-300:#3e414a;
  --grey-400:#8d919a; --grey-500:#a8acb5; --grey-600:#c6c9d0;
  --success:#3fbf85; --success-bg:#12291e;
  --error:#e2695f; --error-bg:#2c1614;
  --warn:#d5b45e; --warn-bg:#2a2410;
  --band-bg:#1b1c21; --band-fg:#f1f1f1; --band-muted:rgba(241,241,241,.6);
  --header-glass:rgba(18,19,22,.85);
  --shadow-1:0 1px 2px rgba(0,0,0,.3),0 4px 12px rgba(0,0,0,.35);
  --shadow-2:0 2px 4px rgba(0,0,0,.35),0 12px 32px rgba(0,0,0,.5);
  --shadow-3:0 4px 8px rgba(0,0,0,.4),0 24px 56px rgba(0,0,0,.6);
  color-scheme:dark;
}
html[data-theme="dark"] .btn-primary{background:#f1f1f1;color:#121316}
html[data-theme="dark"] .btn-primary:hover{background:#ffffff}
html[data-theme="dark"] .btn-inverse{background:#f1f1f1;color:#121316}
html[data-theme="dark"] .t-visual,html[data-theme="dark"] .oc-visual,html[data-theme="dark"] .detail-visual,html[data-theme="dark"] .veh-thumb{background:#26282e}
html[data-theme="dark"] .overlay{background:rgba(0,0,0,.6)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper);line-height:1.55;font-size:16px;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink);color:var(--paper)}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}

/* ---- Typography ---- */
h1,h2,h3,h4{font-weight:700;letter-spacing:-0.02em;line-height:1.12}
.display{font-size:clamp(2.1rem,6vw,3.9rem);font-weight:800;letter-spacing:-0.035em;line-height:1.06}
.h2{font-size:clamp(1.6rem,3.6vw,2.4rem);letter-spacing:-0.03em}
.h3{font-size:1.22rem;font-weight:600;letter-spacing:-0.015em}
.eyebrow{font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-500)}
.lead{font-size:clamp(1rem,1.8vw,1.18rem);color:var(--grey-600);line-height:1.6}
.muted{color:var(--grey-500)}
.small{font-size:.86rem}

/* ---- Layout ---- */
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 18px}
.section{padding:64px 0}
.section-head{max-width:600px;margin-bottom:38px}
.section-head .h2{margin:10px 0 12px}
.section-head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:32px}
@media(min-width:768px){.section{padding:96px 0}.container{padding:0 32px}}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:var(--radius-s);font-weight:600;font-size:.94rem;letter-spacing:-0.01em;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s,border-color .2s,opacity .2s;white-space:nowrap;user-select:none;min-height:48px}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--ink);color:var(--paper)}
.btn-primary:hover{background:#000;transform:translateY(-1px);box-shadow:var(--shadow-2)}
.btn-secondary{background:var(--paper);color:var(--ink);border:1px solid var(--grey-300)}
.btn-secondary:hover{border-color:var(--ink);transform:translateY(-1px)}
.btn-ghost{padding:10px 16px;color:var(--ink);font-weight:500;border-radius:var(--radius-s);min-height:44px}
.btn-ghost:hover{background:var(--grey-100)}
.btn-inverse{background:var(--paper);color:var(--ink)}
.btn-inverse:hover{transform:translateY(-1px);box-shadow:0 12px 32px rgba(255,255,255,.15)}
.btn-block{width:100%}
.btn-lg{padding:16px 32px;font-size:1rem}
.btn-mini{padding:8px 14px;font-size:.8rem;border-radius:7px;min-height:36px}
.btn[disabled]{opacity:.45;pointer-events:none}
.icon-14{width:14px;height:14px}.icon-16{width:16px;height:16px}

/* ---- Header ---- */
.header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--header-h);background:var(--header-glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s}
.header.scrolled{border-bottom-color:var(--grey-200)}
.header-inner{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:12px}
.logo{font-weight:800;font-size:1.2rem;letter-spacing:-0.04em;display:flex;align-items:baseline;flex:none}
.logo .tld{color:var(--grey-400);font-weight:600}
.nav-desktop{display:none;align-items:center;gap:2px}
.nav-link{padding:9px 13px;border-radius:var(--radius-s);font-size:.92rem;font-weight:500;color:var(--grey-600);transition:color .2s,background .2s}
.nav-link:hover{color:var(--ink);background:var(--grey-100)}
.nav-link.active{color:var(--ink);font-weight:600}
.header-actions{display:flex;align-items:center;gap:8px}
.menu-btn{display:flex;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;align-items:center;border-radius:var(--radius-s)}
.menu-btn span{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
.menu-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(min-width:1240px){.nav-desktop{display:flex}.menu-btn{display:none}}
.drawer{position:fixed;inset:var(--header-h) 0 0 0;z-index:99;background:var(--paper);transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .28s var(--ease),transform .28s var(--ease);padding:12px 20px 40px;overflow-y:auto}
.drawer.open{opacity:1;transform:none;pointer-events:auto}
.drawer a{display:block;padding:15px 4px;font-size:1.1rem;font-weight:600;letter-spacing:-0.02em;border-bottom:1px solid var(--grey-100)}
.drawer .drawer-sub{font-size:.95rem;font-weight:500;color:var(--grey-500);padding-left:14px}
.drawer-cta{margin-top:22px;display:grid;gap:10px}

/* ---- Language switcher ---- */
.lang-switch{position:relative;display:flex;align-items:center}
.lang-switch svg{position:absolute;left:10px;width:15px;height:15px;color:var(--grey-500);pointer-events:none}
.lang-switch select{appearance:none;-webkit-appearance:none;border:1px solid var(--grey-200);border-radius:var(--radius-s);background:var(--paper);padding:10px 26px 10px 31px;font-size:.85rem;font-weight:600;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;transition:border-color .2s;min-height:44px}
.lang-switch select:hover{border-color:var(--ink)}
.drawer .lang-switch{margin-top:18px}
.drawer .lang-switch select{width:100%;padding:14px 26px 14px 34px;font-size:1rem}

/* ---- Pages / router ---- */
.page{display:none}
.page.active{display:block;animation:pageIn .45s var(--ease)}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
main{padding-top:var(--header-h);min-height:45vh}

/* ---- Hero + pillars ---- */
.hero{padding:44px 0 56px;position:relative}
.hero-grid{display:grid;gap:34px}
.hero-copy .display{margin:14px 0 16px}
.hero-copy .lead{max-width:480px}
.hero-trustline{display:flex;flex-wrap:wrap;gap:16px;margin-top:24px}
.trust-item{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:500;color:var(--grey-600)}
.trust-item svg{width:16px;height:16px;flex:none}
@media(min-width:1020px){.hero{padding:80px 0 88px}.hero-grid{grid-template-columns:1.05fr .95fr;align-items:start;gap:64px}}
.pillars{display:grid;gap:10px;margin-top:28px}
@media(min-width:640px){.pillars{grid-template-columns:repeat(3,1fr)}}
.pillar{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--grey-200);border-radius:var(--radius-m);background:var(--paper);cursor:pointer;text-align:left;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.pillar:hover{transform:translateY(-2px);box-shadow:var(--shadow-1)}
.pillar svg{width:19px;height:19px;flex:none;margin-top:2px}
.pillar b{display:block;font-size:.94rem;letter-spacing:-0.01em}
.pillar span{font-size:.8rem;color:var(--grey-500)}

/* ---- Forms ---- */
.card-form{background:var(--paper);border:1px solid var(--grey-200);border-radius:var(--radius-l);box-shadow:var(--shadow-2);padding:22px;width:100%}
@media(min-width:640px){.card-form{padding:26px}}
.card-form .bc-title{font-weight:700;font-size:1.05rem;letter-spacing:-0.02em;margin-bottom:14px}
.seg{display:flex;background:var(--grey-100);border-radius:var(--radius-s);padding:4px;margin-bottom:16px;overflow-x:auto}
.seg button{flex:1;padding:10px 8px;border-radius:6px;font-size:.85rem;font-weight:600;color:var(--grey-500);transition:all .25s var(--ease);white-space:nowrap;min-height:42px}
.seg button.active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-1)}
.field{margin-bottom:13px}
.field label{display:block;font-size:.73rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--grey-500);margin-bottom:6px}
.field .control{position:relative;display:flex;align-items:center;border:1px solid var(--grey-200);border-radius:var(--radius-s);background:var(--paper);transition:border-color .2s,box-shadow .2s}
.field .control:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(10,10,10,.07)}
.field .control>svg{width:18px;height:18px;margin-left:13px;flex:none;color:var(--grey-400)}
.field input,.field select,.field textarea{width:100%;padding:13px 13px;border:none;background:transparent;outline:none;font-size:.95rem;font-weight:500;appearance:none;-webkit-appearance:none;min-height:48px}
.field textarea{min-height:80px;resize:vertical}
.field select{padding-right:34px;cursor:pointer}
.field.select .control{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center}
.field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:11px}
.field-row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.field .error-msg{display:none;font-size:.78rem;color:var(--error);margin-top:5px;font-weight:500}
.field.invalid .control{border-color:var(--error);box-shadow:0 0 0 3px rgba(192,54,44,.08)}
.field.invalid .error-msg{display:block}
.hint{font-size:.78rem;color:var(--grey-400);margin-top:5px}
.bc-note{text-align:center;font-size:.78rem;color:var(--grey-400);margin-top:12px;line-height:1.5}

/* address autocomplete */
.ac-wrap{position:relative}
.ac-list{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--paper);color:var(--ink);border:1px solid var(--grey-200);border-radius:var(--radius-s);box-shadow:var(--shadow-2);z-index:50;max-height:240px;overflow-y:auto;display:none}
.ac-list.open{display:block}
.ac-item{width:100%;text-align:left;padding:12px 14px;font-size:.92rem;display:flex;gap:10px;align-items:center;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--grey-100)}
.ac-item:last-child{border-bottom:none}
.ac-item:hover,.ac-item.focus,.ac-item[aria-selected="true"]{background:var(--grey-50)}
.ac-item svg{width:14px;height:14px;color:var(--grey-400);flex:none}
.ac-item .muted{font-size:.78rem}

/* The hero booking card stays light in both themes, so its popup must too. */
.hero .ac-list{background:#fff;color:#151512;border-color:#dbd7cd;box-shadow:0 18px 42px rgba(17,18,15,.2)}
.hero .ac-item{background:#fff;color:#151512;border-bottom-color:#ebe8e0}
.hero .ac-item:hover,.hero .ac-item.focus,.hero .ac-item[aria-selected="true"]{background:#f1eee7;color:#151512}
.hero .ac-item .muted{color:#77736b}
.hero .ac-item svg{color:#77736b}

/* progressive disclosure */
.disclosure{border:1px solid var(--grey-200);border-radius:var(--radius-s);margin-bottom:13px;overflow:hidden}
.disclosure-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;font-weight:600;font-size:.92rem;text-align:left;min-height:50px}
.disclosure-head svg{width:15px;height:15px;color:var(--grey-400);transition:transform .3s var(--ease);flex:none}
.disclosure.open .disclosure-head svg{transform:rotate(180deg)}
.disclosure-body{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.disclosure-body>div{padding:2px 14px 14px}
.disclosure .tag-done{font-size:.72rem;font-weight:600;color:var(--success);background:var(--success-bg);padding:3px 9px;border-radius:100px;margin-left:auto}

/* steppers + chips */
.stepper{display:flex;align-items:center;gap:0;border:1px solid var(--grey-200);border-radius:var(--radius-s);overflow:hidden;flex:none}
.stepper button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:600;transition:background .15s}
.stepper button:hover{background:var(--grey-100)}
.stepper button:disabled{opacity:.3;pointer-events:none}
.stepper .val{min-width:34px;text-align:center;font-weight:700;font-size:.95rem}
.extra-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--grey-100)}
.extra-row:last-child{border-bottom:none}
.extra-row .x-name{font-weight:600;font-size:.92rem}
.extra-row .x-price{font-size:.8rem;color:var(--grey-500)}
.chip-row{display:flex;flex-wrap:wrap;gap:8px}
.chip-select{padding:10px 16px;border:1px solid var(--grey-200);border-radius:100px;background:transparent;color:inherit;font-family:inherit;font-size:.86rem;font-weight:500;cursor:pointer;transition:all .2s;min-height:42px;display:inline-flex;align-items:center;gap:7px}
.chip-select svg{width:14px;height:14px}
.chip-select:hover{border-color:var(--ink)}
.chip-select.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* ---- Cards: routes / stays / trips / vehicles ---- */
.grid-cards{display:grid;gap:13px}
@media(min-width:640px){.grid-cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1020px){.grid-cards{grid-template-columns:repeat(3,1fr)}.grid-cards.cols4{grid-template-columns:repeat(4,1fr)}}
.route-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border:1px solid var(--grey-200);border-radius:var(--radius-m);background:var(--paper);cursor:pointer;text-align:left;width:100%;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}
.route-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:var(--grey-300)}
.route-card .rc-route{font-weight:600;font-size:.96rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.route-card .rc-route svg{width:14px;height:14px;color:var(--grey-400);flex:none}
.route-card .rc-meta{font-size:.8rem;color:var(--grey-500);margin-top:3px}
.route-card .rc-price{text-align:right;flex:none}
.route-card .rc-price .from{display:block;font-size:.7rem;color:var(--grey-400);font-weight:500}
.route-card .rc-price .amount{font-weight:700;font-size:1.02rem}

.tile{border:1px solid var(--grey-200);border-radius:var(--radius-m);overflow:hidden;background:var(--paper);transition:transform .3s var(--ease),box-shadow .3s var(--ease);cursor:pointer;text-align:left;width:100%;display:flex;flex-direction:column}
.tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.tile .t-visual{position:relative;background:var(--grey-50);min-height:160px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.tile .t-visual img{width:100%;height:100%;min-height:160px;object-fit:cover}
.tile .t-badge{position:absolute;top:12px;left:12px;background:var(--ink);color:var(--paper);font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:100px;display:flex;align-items:center;gap:5px}
.tile .t-badge svg{width:11px;height:11px}
.tile .t-badge.light{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-1)}
.tile .t-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.tile h3{font-size:1rem;letter-spacing:-0.015em}
.tile .t-sub{font-size:.82rem;color:var(--grey-500)}
.tile .t-meta{display:flex;flex-wrap:wrap;gap:10px 14px;font-size:.8rem;color:var(--grey-600);font-weight:500}
.tile .t-meta span{display:flex;align-items:center;gap:5px}
.tile .t-meta svg{width:13px;height:13px;color:var(--grey-400)}
.tile .t-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px}
.tile .t-price b{font-size:1.08rem;font-weight:800;letter-spacing:-0.02em}
.tile .t-price span{font-size:.72rem;color:var(--grey-400);display:block}
.tile .t-rating{display:flex;align-items:center;gap:4px;font-size:.82rem;font-weight:600}
.tile .t-rating svg{width:13px;height:13px}
.cat-tags{display:flex;flex-wrap:wrap;gap:6px}
.cat-tag{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--grey-500);background:var(--grey-100);padding:4px 9px;border-radius:100px}

/* placeholder visuals */
.ph-visual{width:100%;height:100%;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(160deg,var(--grey-100),var(--grey-200))}
.ph-visual .ph-glyph{width:54px;height:54px;border-radius:16px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.3rem;letter-spacing:-0.03em}
.ph-visual .ph-label{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--grey-400)}

/* ---- Steps / benefits ---- */
.steps-grid{display:grid;gap:32px}
@media(min-width:768px){.steps-grid{grid-template-columns:repeat(4,1fr);gap:26px}}
.step{position:relative}
.step .step-num{width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-weight:700;margin-bottom:16px}
.step h3{font-size:1.02rem;margin-bottom:7px}
.step p{font-size:.89rem;color:var(--grey-500);line-height:1.6}
@media(min-width:768px){.step:not(:last-child)::after{content:"";position:absolute;top:22px;left:56px;right:12px;height:1px;background:var(--grey-200)}}
.benefits-grid{display:grid;gap:12px}
@media(min-width:640px){.benefits-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1020px){.benefits-grid{grid-template-columns:repeat(3,1fr)}}
.benefit{padding:26px;border:1px solid var(--grey-200);border-radius:var(--radius-m);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.benefit:hover{transform:translateY(-3px);box-shadow:var(--shadow-1)}
.benefit .b-icon{width:42px;height:42px;border-radius:10px;background:var(--grey-100);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.benefit .b-icon svg{width:20px;height:20px}
.benefit h3{font-size:1rem;margin-bottom:7px}
.benefit p{font-size:.89rem;color:var(--grey-500);line-height:1.6}

/* ---- Map preview ---- */
.map-panel{border:1px solid var(--grey-200);border-radius:var(--radius-m);overflow:hidden;background:var(--grey-50)}
.map-canvas{position:relative;height:220px}
@media(min-width:768px){.map-canvas{height:280px}}
.map-canvas>svg{width:100%;height:100%}
.map-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--grey-400);font-size:.88rem;font-weight:500;text-align:center;padding:20px}
.map-empty svg{width:28px;height:28px}
.map-foot{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px;background:var(--paper);border-top:1px solid var(--grey-100)}
.map-note{font-size:.72rem;color:var(--grey-400);padding:0 14px 12px;background:var(--paper)}

/* Branded OpenStreetMap treatment: real OSM tiles, ShuttleMe route language. */
.osm-map-panel{border-radius:22px;box-shadow:var(--shadow-1)}
.osm-map-panel .map-canvas{height:290px;background:#e9e8e2;isolation:isolate}
.osm-map{width:100%;height:100%;font-family:"DM Sans",sans-serif;background:#e9e8e2}
.osm-map .leaflet-tile-pane{opacity:.84}
html[data-theme="dark"] .osm-map{background:#10110f}
html[data-theme="dark"] .osm-map .leaflet-tile-pane{opacity:.28}
.map-brand{position:absolute;z-index:500;top:14px;left:14px;display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--grey-300) 72%,transparent);border-radius:100px;background:color-mix(in srgb,var(--paper) 92%,transparent);color:var(--ink);font:700 .72rem Manrope;letter-spacing:.02em;box-shadow:0 8px 28px rgba(17,17,15,.13);backdrop-filter:blur(12px);pointer-events:none}
.map-brand svg{width:15px;height:15px}
.map-brand:after{content:"";width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 0 rgba(185,255,87,.65);animation:sm-live-pulse 1.8s ease-out infinite}
.osm-map-panel .leaflet-control-zoom{border:0;margin:14px 14px 0 0;box-shadow:0 8px 28px rgba(17,17,15,.14)}
.osm-map-panel .leaflet-control-zoom a{display:grid;place-items:center;width:38px;height:38px;border:0;border-bottom:1px solid var(--grey-200);background:color-mix(in srgb,var(--paper) 94%,transparent);color:var(--ink);font:600 1.15rem Manrope;line-height:1;backdrop-filter:blur(12px)}
.osm-map-panel .leaflet-control-zoom a:first-child{border-radius:12px 12px 0 0}
.osm-map-panel .leaflet-control-zoom a:last-child{border:0;border-radius:0 0 12px 12px}
.osm-map-panel .leaflet-control-zoom a:hover{background:var(--ink);color:var(--paper)}
.osm-map-panel .leaflet-control-attribution{margin:0!important;padding:3px 7px!important;border-radius:9px 0 0 0;background:color-mix(in srgb,var(--paper) 90%,transparent)!important;color:var(--grey-500);font-size:9px;backdrop-filter:blur(8px)}
.osm-map-panel .leaflet-control-attribution a{color:var(--ink);font-weight:700}
.sm-map-marker-wrap{background:transparent;border:0}
.sm-map-marker{position:relative;display:grid;place-items:center;width:30px;height:30px;border:3px solid var(--paper);border-radius:50%;background:var(--ink);box-shadow:0 5px 18px rgba(17,17,15,.32)}
.sm-map-marker i{display:block;width:7px;height:7px;border-radius:50%;background:var(--paper)}
.sm-map-marker.start{background:var(--lime);border-color:var(--ink)}
.sm-map-marker.start i{width:8px;height:8px;background:var(--ink)}
.sm-map-marker.stop{width:22px;height:22px;margin:4px;border-width:2px}
.sm-map-marker.stop i{width:5px;height:5px}
.sm-route-dot-wrap{display:grid;place-items:center;background:transparent;border:0;filter:drop-shadow(0 3px 5px rgba(17,17,15,.3));transition:opacity .18s}
.sm-route-dot-wrap.is-paused{opacity:0}
.sm-route-dot{position:relative;display:block;width:13px;height:13px;border:2px solid #11120f;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px rgba(255,255,255,.9)}
.sm-route-dot:after{content:"";position:absolute;inset:-5px;border:1px solid rgba(185,255,87,.7);border-radius:50%;animation:sm-dot-pulse 1.5s ease-out infinite}
.sm-route-draw{stroke-dasharray:1400;stroke-dashoffset:1400;animation:sm-route-reveal 1.5s cubic-bezier(.22,.8,.24,1) forwards}
.sm-route-flow{animation:sm-route-flow 1.15s linear infinite,sm-route-arrive .55s ease .8s both}
.sm-map-marker{animation:sm-marker-arrive .5s cubic-bezier(.2,.8,.2,1) .9s both}
@keyframes sm-route-reveal{to{stroke-dashoffset:0}}
@keyframes sm-route-flow{to{stroke-dashoffset:-32}}
@keyframes sm-route-arrive{from{opacity:0}to{opacity:.8}}
@keyframes sm-marker-arrive{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}
@keyframes sm-live-pulse{70%,100%{box-shadow:0 0 0 8px rgba(185,255,87,0)}}
@keyframes sm-dot-pulse{from{opacity:.75;transform:scale(.7)}to{opacity:0;transform:scale(1.4)}}
@media(prefers-reduced-motion:reduce){.sm-route-draw,.sm-route-flow,.sm-map-marker,.map-brand:after,.sm-route-dot:after{animation:none}.sm-route-draw{stroke-dashoffset:0}}
.leaflet-tooltip.sm-map-tooltip{padding:7px 10px;border:1px solid var(--grey-200);border-radius:9px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow-1);font:700 .7rem Manrope}
.leaflet-tooltip-top.sm-map-tooltip:before{border-top-color:var(--paper)}
.osm-map-panel .map-foot{position:relative;z-index:2;padding:14px 16px}
.osm-map-panel .map-note{padding:0 16px 15px;line-height:1.45}
.osm-map-panel .map-note span{display:block;max-width:100%}
.manage-shell{max-width:760px;margin:0 auto;padding:52px 0 90px}
.manage-lookup{max-width:560px;margin:34px auto 0}
.booked-trip-route{margin:0 0 30px;padding:18px;border:1px solid var(--grey-200);border-radius:24px;background:var(--paper);box-shadow:var(--shadow-1)}
.booked-trip-route-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.booked-trip-route-head h2{font:800 1.05rem/1.35 Manrope;margin-top:4px}
.booked-trip-route .osm-map-panel{margin:0;box-shadow:none}
.booked-trip-route .osm-map-panel .map-canvas{height:380px}
.booked-trip-route.result-route{margin:0;border:0;border-top:1px solid var(--grey-100);border-radius:0;box-shadow:none}
@media(max-width:640px){.manage-shell{padding:34px 0 72px}.booked-trip-route{padding:12px;border-radius:18px}.booked-trip-route-head{flex-direction:column}.booked-trip-route .osm-map-panel .map-canvas{height:320px}}
.veh-img{background:#020202}
.veh-img img{object-position:center center}

/* ---- Results / summary ---- */
.results-head{background:var(--grey-50);border-bottom:1px solid var(--grey-200);padding:24px 0}
.search-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.search-summary .ss-route{font-weight:700;font-size:1.08rem;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.search-summary .ss-route svg{width:15px;height:15px;color:var(--grey-400)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:100px;background:var(--paper);border:1px solid var(--grey-200);font-size:.79rem;font-weight:500;color:var(--grey-600)}
.chip svg{width:13px;height:13px;color:var(--grey-400)}
.results-body{padding:30px 0 72px}
.results-grid{display:grid;gap:26px}
@media(min-width:1020px){.results-grid{grid-template-columns:1fr 360px;align-items:start}.results-grid .map-side{position:sticky;top:calc(var(--header-h) + 16px)}}
.option-list{display:grid;gap:14px}
.option-card{display:grid;grid-template-columns:1fr;border:1px solid var(--grey-200);border-radius:var(--radius-m);overflow:hidden;background:var(--paper);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.option-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.option-card.recommended{border-color:var(--ink)}
.oc-visual{background:var(--grey-50);display:flex;align-items:center;justify-content:center;position:relative;min-height:150px;overflow:hidden}
.oc-visual svg{max-width:200px;margin:22px}
.oc-badge{position:absolute;top:12px;left:12px;background:var(--ink);color:var(--paper);font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:100px;z-index:2}
.oc-body{padding:18px 20px;display:flex;flex-direction:column;gap:13px}
.oc-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.oc-top h3{font-size:1.08rem}
.oc-top .oc-cat{font-size:.8rem;color:var(--grey-500);margin-top:2px}
.oc-price{text-align:right;flex:none}
.oc-price .from{font-size:.7rem;color:var(--grey-400);display:block;font-weight:500}
.oc-price .amount{font-size:1.4rem;font-weight:800;letter-spacing:-0.03em}
.group-full-price{display:block;margin-top:2px;font-size:.66rem;font-weight:650;color:var(--grey-500)}
.feature-pill{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:500;color:var(--grey-600);background:var(--grey-100);padding:5px 10px;border-radius:100px}
.feature-pill svg{width:12px;height:12px}
.oc-features{display:flex;flex-wrap:wrap;gap:7px}
.oc-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;flex-wrap:wrap}
.oc-caps{display:flex;gap:14px;font-size:.84rem;font-weight:500;color:var(--grey-600)}
.oc-caps span{display:flex;align-items:center;gap:6px}
.oc-caps svg{width:15px;height:15px;color:var(--grey-400)}
@media(min-width:720px){.option-card{grid-template-columns:230px 1fr}}

/* upsell band */
.upsell{border:1px solid var(--grey-200);border-radius:var(--radius-m);padding:20px;display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--grey-50)}
.upsell .u-txt b{display:block;font-size:.98rem;letter-spacing:-0.01em}
.upsell .u-txt span{font-size:.84rem;color:var(--grey-500)}

/* ---- Detail layouts ---- */
.detail-layout{display:grid;gap:30px;padding:32px 0 90px}
@media(min-width:960px){.detail-layout{grid-template-columns:1.15fr .85fr;gap:52px;align-items:start}}
.detail-visual{background:var(--grey-50);border-radius:var(--radius-l);border:1px solid var(--grey-100);overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:240px}
.detail-visual svg{max-width:420px;margin:48px 36px}
.gallery{display:grid;grid-template-columns:2fr 1fr;grid-auto-rows:120px;gap:8px;border-radius:var(--radius-l);overflow:hidden}
.gallery>div{background:var(--grey-100);overflow:hidden}
.gallery>div:first-child{grid-row:span 2}
.gallery img{width:100%;height:100%;object-fit:cover}
@media(min-width:768px){.gallery{grid-auto-rows:150px}}
.availability{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:600;color:var(--success);background:var(--success-bg);padding:6px 13px;border-radius:100px;margin:12px 0 18px}
.availability .dot{width:7px;height:7px;border-radius:50%;background:var(--success);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.spec-table{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--grey-200);border:1px solid var(--grey-200);border-radius:var(--radius-m);overflow:hidden;margin:20px 0}
.spec-cell{background:var(--paper);padding:14px 16px}
.spec-cell .label{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--grey-400);font-weight:600;margin-bottom:3px}
.spec-cell .value{font-weight:600;font-size:.93rem}
.detail-sec{margin:22px 0}
.detail-sec h3{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grey-400);margin-bottom:13px}
.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:9px 16px;list-style:none}
.feature-list li{display:flex;align-items:center;gap:9px;font-size:.89rem;font-weight:500}
.feature-list svg{width:15px;height:15px;flex:none}
.feature-list li.off{color:var(--grey-400);text-decoration:line-through}
.suit-tags{display:flex;flex-wrap:wrap;gap:8px}
.suit-tag{font-size:.79rem;font-weight:600;padding:7px 13px;border:1px solid var(--grey-300);border-radius:100px}
.price-box{border:1px solid var(--grey-200);border-radius:var(--radius-m);padding:20px;margin:20px 0;background:var(--grey-50)}
.van-mode{margin:24px 0}.van-mode-head{margin-bottom:12px}.van-mode-head h3{margin-top:4px;font:800 1.05rem Manrope;letter-spacing:-.02em}.van-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.van-mode-card{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;position:relative;min-height:154px;padding:15px;border:1px solid var(--grey-200);border-radius:15px;background:var(--paper);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.van-mode-card:hover{border-color:var(--grey-400);transform:translateY(-1px)}.van-mode-card.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}.van-mode-card.selected:after{content:'✓';position:absolute;right:11px;top:10px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ink);color:var(--lime);font:800 .7rem Manrope}.van-mode-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--grey-50)}.van-mode-icon svg{width:18px;height:18px}.van-mode-card>span:nth-child(2){display:flex;flex-direction:column;padding-right:16px}.van-mode-card b{font:800 .8rem/1.3 Manrope}.van-mode-card small{margin-top:5px;font-size:.68rem;line-height:1.45;color:var(--grey-500)}.van-mode-card>strong{grid-column:2;font:800 1.05rem Manrope;align-self:end}.shared-transfer-warning{display:flex;gap:11px;margin-top:11px;padding:14px;border:1px solid #e0c970;border-radius:13px;background:#fff9df}.shared-transfer-warning>svg{width:18px;height:18px;flex:none;margin-top:1px;color:#735b00}.shared-transfer-warning>div{display:grid;gap:3px}.shared-transfer-warning b{font:800 .76rem Manrope;color:#493c0a}.shared-transfer-warning span{font-size:.72rem;line-height:1.5;color:#5d501c}.shared-transfer-warning small{font-size:.65rem;color:#7b6a28}.booking-mode-summary{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:18px;padding:15px;border:1px solid var(--grey-200);border-radius:15px;background:var(--grey-50)}.booking-mode-summary.shared{border-color:#dfca78;background:#fff9df}.booking-mode-summary>svg{width:19px;height:19px}.booking-mode-summary>div{display:grid;gap:3px}.booking-mode-summary b{font:800 .8rem Manrope}.booking-mode-summary span{font-size:.7rem;line-height:1.45;color:var(--grey-500)}.booking-mode-summary button{border:0;background:transparent;color:var(--ink);font:800 .69rem Manrope;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media(max-width:560px){.van-mode-grid{grid-template-columns:1fr}.van-mode-card{min-height:130px}.booking-mode-summary{grid-template-columns:34px minmax(0,1fr)}.booking-mode-summary button{grid-column:2;justify-self:start;padding:4px 0}}
.price-line{display:flex;justify-content:space-between;gap:12px;font-size:.89rem;color:var(--grey-600);padding:4px 0}
.price-line.total{border-top:1px solid var(--grey-200);margin-top:10px;padding-top:13px;font-weight:700;color:var(--ink);font-size:1.03rem}
.trust-row{display:flex;flex-wrap:wrap;gap:13px;margin-top:16px}
.trust-row .trust-item{font-size:.79rem}
.verified-badge{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--ink);color:var(--paper);padding:6px 12px;border-radius:100px}
.verified-badge svg{width:12px;height:12px}
.verified-box{border:1px solid var(--grey-200);border-radius:var(--radius-m);padding:18px;margin:20px 0}
.verified-box .vb-head{display:flex;align-items:center;gap:10px;font-weight:700;font-size:.95rem;margin-bottom:10px}
.verified-box .vb-head svg{width:18px;height:18px}
.verified-box ul{list-style:none;display:grid;gap:7px}
.verified-box li{display:flex;gap:9px;align-items:flex-start;font-size:.85rem;color:var(--grey-600)}
.verified-box li svg{width:14px;height:14px;flex:none;margin-top:3px;color:var(--success)}

/* ---- Itinerary timeline ---- */
.itinerary{position:relative;margin:8px 0;padding-left:26px}
.itinerary::before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:var(--grey-200)}
.it-stop{position:relative;padding:0 0 22px}
.it-stop:last-child{padding-bottom:0}
.it-stop::before{content:"";position:absolute;left:-24px;top:5px;width:14px;height:14px;border-radius:50%;background:var(--paper);border:3px solid var(--ink)}
.it-stop.minor::before{width:10px;height:10px;border-width:2px;left:-22px;border-color:var(--grey-400)}
.it-stop b{display:block;font-size:.95rem;letter-spacing:-0.01em}
.it-stop .it-meta{font-size:.8rem;color:var(--grey-500);margin-top:2px;display:flex;gap:10px;flex-wrap:wrap}
.it-stop .it-note{font-size:.8rem;color:var(--grey-500);margin-top:3px}
.ticket-tag{font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:100px;background:var(--grey-100);color:var(--grey-600)}
.ticket-tag.inc{background:var(--success-bg);color:var(--success)}

/* ---- Calendars ---- */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:16px}
.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:500;border-radius:8px;border:1px solid var(--grey-100);cursor:pointer;transition:all .15s;min-height:38px}
.cal-cell:hover{border-color:var(--ink)}
.cal-cell.head{border:none;color:var(--grey-400);font-size:.66rem;font-weight:600;text-transform:uppercase;cursor:default;aspect-ratio:auto;padding:5px 0;min-height:0}
.cal-cell.booked{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cal-cell.blocked-day{background:var(--grey-100);color:var(--grey-400);text-decoration:line-through}
.cal-cell.empty{border:none;cursor:default}
.cal-legend{display:flex;flex-wrap:wrap;gap:16px;padding:0 16px 16px;font-size:.76rem;color:var(--grey-500)}
.cal-legend span{display:flex;align-items:center;gap:6px}
.cal-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}
.cal-head-row{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 0}
.cal-head-row h4{font-size:.92rem}
.cal-panel.compact{overflow:hidden}.compact-cal-layout{display:grid;grid-template-columns:minmax(285px,350px) minmax(0,1fr);align-items:stretch}.cal-panel.compact .cal-grid{grid-template-columns:repeat(7,minmax(28px,40px));justify-content:start;padding:12px 16px 9px}.cal-panel.compact .cal-cell{width:100%;min-height:30px;aspect-ratio:auto;border-radius:7px;font-size:.7rem}.cal-panel.compact .cal-cell.head{min-height:18px;padding:2px 0;font-size:.58rem}.cal-panel.compact .cal-legend{gap:11px;padding:0 16px 14px;font-size:.65rem}.compact-cal-summary{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:18px 20px;border-left:1px solid var(--grey-100);background:var(--grey-50)}.compact-cal-summary>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.compact-cal-summary article{display:grid;gap:1px;padding:11px;border:1px solid var(--grey-200);border-radius:11px;background:var(--paper)}.compact-cal-summary article b{font:800 1.25rem Manrope;letter-spacing:-.04em}.compact-cal-summary article span{font-size:.61rem;color:var(--grey-500)}.compact-cal-summary p{max-width:430px;margin-bottom:12px;font-size:.68rem;line-height:1.5;color:var(--grey-500)}.compact-cal-summary .btn{align-self:flex-start}
.month-nav{display:flex;gap:6px}
.month-nav button{width:44px;height:44px;border-radius:8px;border:1px solid var(--grey-200);display:flex;align-items:center;justify-content:center}
.month-nav button:hover{border-color:var(--ink)}
.month-nav svg{width:13px;height:13px}

/* ---- Filters bar ----
   Chips WRAP instead of overflowing, so no category is ever cut off
   (fix for the truncated "food and loc…" issue). */
.filters{display:flex;flex-wrap:wrap;gap:8px;padding:4px 2px 12px}
.filters .chip-select{flex:none;font-size:.82rem;padding:9px 14px}
.filters-label{width:100%;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--grey-400);margin:4px 0 -2px}

/* ---- Bar charts (admin analytics) ---- */
.bar-row{display:grid;grid-template-columns:130px 1fr 64px;gap:10px;align-items:center;padding:7px 20px;font-size:.83rem}
.bar-row .b-label{font-weight:500;color:var(--grey-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-row .b-track{height:8px;border-radius:100px;background:var(--grey-100);overflow:hidden}
.bar-row .b-fill{height:100%;border-radius:100px;background:var(--ink);transition:width .8s var(--ease)}
.bar-row .b-val{text-align:right;font-weight:700;font-size:.82rem}

/* ---- Alerts / rank rows ---- */
.alert-row{display:flex;gap:12px;align-items:center;padding:13px 20px;border-bottom:1px solid var(--grey-100);cursor:pointer;transition:background .15s;width:100%;text-align:left}
.alert-row:hover{background:var(--grey-50)}
.alert-row:last-child{border-bottom:none}
.alert-row .a-dot{width:9px;height:9px;border-radius:50%;flex:none}
.alert-row .a-dot.bad{background:var(--error)}
.alert-row .a-dot.mid{background:var(--warn)}
.alert-row span{font-size:.87rem;font-weight:500}
.score-ring{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.82rem;border:3px solid var(--ink);flex:none}
.score-ring.low{border-color:var(--grey-300);color:var(--grey-400)}

/* ---- Messaging ---- */
.msg-thread{display:flex;flex-direction:column;gap:10px;padding:18px 20px;max-height:420px;overflow-y:auto}
.msg{max-width:82%;padding:11px 15px;border-radius:14px;font-size:.89rem;line-height:1.5}
.msg .m-meta{font-size:.68rem;color:var(--grey-400);margin-top:4px}
.msg.customer{align-self:flex-start;background:var(--grey-100);border-bottom-left-radius:4px}
.msg.owner{align-self:flex-end;background:var(--ink);color:var(--paper);border-bottom-right-radius:4px}
.msg.owner .m-meta{color:var(--paper);opacity:.55}
.msg.support{align-self:center;background:var(--success-bg);color:var(--success);font-size:.82rem;border-radius:10px}
.msg-input{display:flex;gap:8px;padding:14px 20px;border-top:1px solid var(--grey-100)}
.msg-input input{flex:1;border:1px solid var(--grey-200);border-radius:100px;padding:12px 18px;outline:none;font-size:.9rem;min-height:46px}
.msg-input input:focus{border-color:var(--ink)}
.quick-replies{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px 14px}
.quick-replies button{font-size:.76rem;padding:7px 12px;border:1px solid var(--grey-200);border-radius:100px;color:var(--grey-600);transition:all .15s}
.quick-replies button:hover{border-color:var(--ink);color:var(--ink)}
.conv-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:14px 20px;border-bottom:1px solid var(--grey-100);cursor:pointer;transition:background .15s;width:100%;text-align:left}
.conv-row:hover{background:var(--grey-50)}
.conv-row .unread-dot{width:9px;height:9px;border-radius:50%;background:var(--ink);display:inline-block;margin-right:7px}

/* ---- Photo manager (listing wizard) ---- */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;padding:4px 0 14px}
.photo-cell{position:relative;aspect-ratio:4/3;border-radius:10px;background:var(--grey-100);border:1px solid var(--grey-200);display:flex;align-items:center;justify-content:center;overflow:hidden}
.photo-cell .p-cat{position:absolute;bottom:6px;left:6px;right:6px;font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--grey-500);background:var(--paper);border-radius:6px;padding:3px 6px;text-align:center}
.photo-cell .p-x{position:absolute;top:4px;right:4px;width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center}
.photo-cell .p-x svg{width:10px;height:10px}
.photo-cell.cover{border:2px solid var(--ink)}
.photo-cell .p-cover{position:absolute;top:6px;left:6px;font-size:.6rem;font-weight:700;background:var(--ink);color:var(--paper);padding:3px 7px;border-radius:100px}
.photo-drop{border:2px dashed var(--grey-300);border-radius:var(--radius-m);padding:28px;text-align:center;color:var(--grey-400);font-size:.86rem;cursor:pointer;transition:border-color .2s}
.photo-drop:hover{border-color:var(--ink);color:var(--ink)}

/* ---- Reports ---- */
.report-card{border:1px solid var(--grey-200);border-radius:var(--radius-m);padding:18px 20px;background:var(--paper);display:flex;flex-direction:column;gap:10px}
.report-card h4{font-size:.94rem}
.report-card p{font-size:.8rem;color:var(--grey-500)}
.report-card .r-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.reports-grid{display:grid;gap:12px}
@media(min-width:768px){.reports-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.reports-grid{grid-template-columns:repeat(3,1fr)}}

/* ---- Restaurant cards ---- */
.rst-meta{display:flex;flex-wrap:wrap;gap:6px}
.rst-actions{display:flex;gap:8px;margin-top:4px}
.rst-actions a{flex:1;text-align:center;font-size:.78rem;font-weight:600;padding:9px 6px;border:1px solid var(--grey-200);border-radius:8px;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:5px;min-height:38px}
.rst-actions a:hover{border-color:var(--ink)}
.rst-actions a svg{width:12px;height:12px}

/* ---- Reviews ---- */
.reviews-section{background:var(--grey-50)}
.reviews-slider{position:relative;max-width:720px;margin:0 auto}
.reviews-track{overflow:hidden}
.reviews-inner{display:flex;transition:transform .55s var(--ease)}
.review{flex:0 0 100%;padding:0 4px}
.review-card{background:var(--paper);border:1px solid var(--grey-200);border-radius:var(--radius-l);padding:32px 24px;text-align:center}
.review-stars{display:flex;justify-content:center;gap:3px;margin-bottom:18px}
.review-stars svg{width:15px;height:15px}
.review-quote{font-size:1.04rem;line-height:1.65;font-weight:500;max-width:540px;margin:0 auto 22px}
.review-author{font-size:.88rem;font-weight:600}
.review-meta{font-size:.79rem;color:var(--grey-400);margin-top:3px}
.reviews-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:26px}
.rev-btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--grey-300);background:var(--paper);display:flex;align-items:center;justify-content:center;transition:all .25s}
.rev-btn:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.rev-btn svg{width:16px;height:16px}
.rev-dots{display:flex;gap:8px}
.rev-dot{width:24px;height:24px;border-radius:50%;padding:0;background:radial-gradient(circle,var(--grey-300) 0 4px,transparent 4.5px);transition:all .3s}
.rev-dot.active{background:radial-gradient(circle,var(--ink) 0 5px,transparent 5.5px)}

/* ---- Modal / overlay ---- */
.overlay{position:fixed;inset:0;z-index:200;background:rgba(10,10,10,.45);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}
.overlay.open{opacity:1;pointer-events:auto}
.modal{background:var(--paper);border-radius:var(--radius-l) var(--radius-l) 0 0;width:100%;max-width:580px;max-height:92vh;overflow-y:auto;padding:24px 20px 30px;transform:translateY(24px);transition:transform .35s var(--ease)}
.overlay.open .modal{transform:none}
@media(min-width:640px){.overlay{align-items:center;padding:24px}.modal{border-radius:var(--radius-l);padding:34px}}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:12px}
.modal-head h2{font-size:1.3rem;letter-spacing:-0.025em}
.modal-head p{font-size:.87rem;color:var(--grey-500);margin-top:4px}
.modal-close{width:40px;height:40px;border-radius:50%;background:var(--grey-100);display:flex;align-items:center;justify-content:center;flex:none;transition:background .2s}
.modal-close:hover{background:var(--grey-200)}
.modal-close svg{width:15px;height:15px}
.summary-mini{border:1px solid var(--grey-200);border-radius:var(--radius-s);padding:13px 15px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.87rem}
.summary-mini .route{font-weight:600}
.summary-mini .price{font-weight:700;font-size:1.02rem;flex:none}

/* ---- Confirmation ---- */
.confirm-wrap{max-width:640px;margin:0 auto;padding:54px 0 90px;text-align:center}
.confirm-icon{width:74px;height:74px;border-radius:50%;background:var(--success-bg);color:var(--success);display:flex;align-items:center;justify-content:center;margin:0 auto 26px;animation:popIn .5s var(--ease) both .15s}
@keyframes popIn{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.confirm-icon svg{width:32px;height:32px}
.confirm-ref{display:inline-block;margin:18px 0 6px;padding:10px 20px;background:var(--grey-100);border-radius:100px;font-weight:700;letter-spacing:.05em;font-size:.92rem}
.next-steps{text-align:left;margin:34px 0;border:1px solid var(--grey-200);border-radius:var(--radius-m);overflow:hidden}
.next-step{display:flex;gap:15px;padding:18px 20px;align-items:flex-start}
.next-step:not(:last-child){border-bottom:1px solid var(--grey-100)}
.next-step .ns-icon{width:38px;height:38px;border-radius:10px;background:var(--grey-100);display:flex;align-items:center;justify-content:center;flex:none}
.next-step .ns-icon svg{width:17px;height:17px}
.next-step h4{font-size:.94rem;margin-bottom:3px}
.next-step p{font-size:.85rem;color:var(--grey-500);line-height:1.55}
.trip-parts{display:grid;gap:10px;margin:26px 0;text-align:left}
.trip-part{border:1px solid var(--grey-200);border-radius:var(--radius-m);padding:16px 18px;display:flex;gap:13px;align-items:flex-start}
.trip-part svg{width:18px;height:18px;flex:none;margin-top:2px}
.trip-part b{display:block;font-size:.93rem}
.trip-part span{font-size:.83rem;color:var(--grey-500)}
.trip-part .tp-price{margin-left:auto;font-weight:700;flex:none}
.confirm-actions{display:grid;gap:10px}
@media(min-width:560px){.confirm-actions{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}

/* ---- Static pages ---- */
.page-hero{padding:52px 0 36px;max-width:700px}
.page-hero .display{font-size:clamp(1.9rem,5vw,3rem)}
.page-hero .lead{margin-top:14px}
.prose{max-width:680px;padding-bottom:72px}
.prose p{margin-bottom:16px;color:var(--grey-600);line-height:1.7}
.prose h3{margin:32px 0 10px}
.prose ul{margin:0 0 16px 18px;color:var(--grey-600)}
.prose li{margin-bottom:6px}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:36px 0}
.stat{border:1px solid var(--grey-200);border-radius:var(--radius-m);padding:20px 14px;text-align:center}
.stat .num{font-size:1.6rem;font-weight:800;letter-spacing:-0.03em}
.stat .lbl{font-size:.76rem;color:var(--grey-500);margin-top:4px}

/* ---- FAQ ---- */
.faq-list{max-width:720px;padding-bottom:72px}
.faq-item{border-bottom:1px solid var(--grey-200)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 4px;text-align:left;font-weight:600;font-size:.98rem;min-height:56px}
.faq-q svg{width:16px;height:16px;flex:none;transition:transform .3s var(--ease);color:var(--grey-400)}
.faq-item.open .faq-q svg{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.faq-a p{padding:0 4px 20px;color:var(--grey-500);font-size:.92rem;line-height:1.65;max-width:620px}

/* ---- Contact: direct human channels only ---- */
.contact-page-heading{max-width:850px;padding:72px 0 46px}
.contact-page-heading .display{max-width:780px}
.contact-page-heading .lead{max-width:650px;color:var(--grey-500);font-size:1rem;line-height:1.7}
.contact-direct{padding:0 0 96px}
.contact-direct-head{display:flex;align-items:center;gap:18px;margin-bottom:24px;padding-top:20px;border-top:1px solid var(--ink)}
.contact-direct-head>span{font:800 .7rem Manrope;letter-spacing:.12em}
.contact-direct-head p{max-width:600px;color:var(--grey-500);font-size:.82rem;line-height:1.55}
.contact-channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,370px));gap:12px}
a.channel{position:relative;display:flex;min-height:180px;flex-direction:column;align-items:flex-start;gap:18px;padding:25px;border:1px solid var(--grey-200);border-radius:var(--radius-m);background:var(--paper);transition:border-color .2s,transform .25s var(--ease),box-shadow .25s var(--ease);cursor:pointer}
a.channel:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-1)}
a.channel>svg:first-child{width:42px;height:42px;flex:none;padding:11px;border-radius:13px;background:var(--ink);color:var(--paper)}
.channel .ch-label{font-size:.72rem;color:var(--grey-400);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.channel .ch-value{margin-top:6px;overflow-wrap:anywhere;font:750 1.05rem/1.35 Manrope}
.channel .ch-go{position:absolute;top:27px;right:25px;width:16px;height:16px;color:var(--grey-300)}
@media(max-width:640px){
  .contact-page-heading{padding:45px 0 32px}
  .contact-direct{padding-bottom:68px}
  .contact-direct-head{align-items:flex-start}
  .contact-channels{grid-template-columns:1fr}
  a.channel{min-height:100px;flex-direction:row;align-items:center;padding:20px 54px 20px 20px}
  a.channel>svg:first-child{width:40px;height:40px}
  .channel .ch-go{top:50%;right:20px;transform:translateY(-50%)}
}

/* ---- CTA band ---- */
.cta-band{background:var(--band-bg);color:var(--band-fg);border-radius:var(--radius-l);padding:48px 24px;text-align:center}
.cta-band .h2{color:var(--band-fg);margin-bottom:12px}
.cta-band p{color:var(--band-muted);max-width:460px;margin:0 auto 26px;font-size:1rem}
@media(min-width:768px){.cta-band{padding:72px 48px}}
.partner-band{display:grid;gap:12px}
@media(min-width:768px){.partner-band{grid-template-columns:1fr 1fr}}
.partner-card{border:1px solid var(--grey-200);border-radius:var(--radius-l);padding:30px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.partner-card h3{font-size:1.15rem}
.partner-card p{font-size:.9rem;color:var(--grey-500);line-height:1.6}
.partner-card .btn{margin-top:8px}

/* ---- Footer (collapsible mobile) ---- */
.footer{border-top:1px solid var(--grey-200);padding:44px 0 32px;margin-top:20px}
.footer-grid{display:grid;gap:0;margin-bottom:36px}
.f-brand{padding-bottom:22px}
.f-brand p{font-size:.88rem;color:var(--grey-500);max-width:300px;margin-top:10px}
.f-group{border-bottom:1px solid var(--grey-100)}
.f-group-head{width:100%;display:flex;justify-content:space-between;align-items:center;padding:15px 0;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grey-500);font-weight:600;min-height:52px;text-align:left}
.f-group-head svg{width:14px;height:14px;color:var(--grey-400);transition:transform .3s var(--ease)}
.f-group.open .f-group-head svg{transform:rotate(180deg)}
.f-group-body{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.f-group-body a{display:block;padding:9px 0;font-size:.9rem;color:var(--grey-600)}
.f-group-body a:hover{color:var(--ink)}
@media(min-width:900px){
  .footer-grid{grid-template-columns:2fr repeat(4,1fr);gap:32px}
  .f-group{border-bottom:none}
  .f-group-head{pointer-events:none;padding:0 0 14px;min-height:0}
  .f-group-head svg{display:none}
  .f-group-body{max-height:none!important;overflow:visible}
  .f-group-body a{padding:5px 0}
}
.footer-bottom{border-top:1px solid var(--grey-100);padding-top:22px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:.78rem;color:var(--grey-400)}
.footer-bottom a{text-decoration:underline;text-underline-offset:2px}

/* ---- Sticky mobile CTA ---- */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:90;background:var(--paper);border-top:1px solid var(--grey-200);padding:12px 18px calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:14px;transform:translateY(110%);transition:transform .35s var(--ease)}
.sticky-cta.show{transform:none}
.sticky-cta .sc-price b{font-size:1.15rem;font-weight:800}
.sticky-cta .sc-price span{display:block;font-size:.7rem;color:var(--grey-400)}
@media(min-width:960px){.sticky-cta{display:none}}

/* ---- Status pills / toasts / misc ---- */
.status-pill{font-size:.7rem;font-weight:600;padding:5px 11px;border-radius:100px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.status-pill.ok{background:var(--success-bg);color:var(--success)}
.status-pill.mid{background:var(--warn-bg);color:var(--warn)}
.status-pill.neutral{background:var(--grey-100);color:var(--grey-600)}
.status-pill.bad{background:var(--error-bg);color:var(--error)}
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,80px);z-index:300;background:var(--ink);color:var(--paper);padding:14px 22px;border-radius:100px;font-size:.87rem;font-weight:500;box-shadow:var(--shadow-3);opacity:0;transition:transform .4s var(--ease),opacity .4s;max-width:92vw;text-align:center}
.toast.show{transform:translate(-50%,0);opacity:1}
.empty-note{padding:32px 22px;text-align:center;color:var(--grey-400);font-size:.9rem}
.skeleton{position:relative;overflow:hidden;background:var(--grey-100);border-radius:var(--radius-m);min-height:120px}
.skeleton::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:shimmer 1.4s infinite}
@keyframes shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}

/* ---- Reveal ---- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}

/* ============================================================
   PORTALS (operator / owner / admin) — PT/EN only
   ============================================================ */
.portal-body{background:var(--grey-50)}
.dash-layout{display:grid;min-height:calc(100vh - var(--header-h))}
@media(min-width:960px){.dash-layout{grid-template-columns:236px 1fr}}
.dash-side{border-bottom:1px solid var(--grey-200);padding:12px 16px;display:flex;gap:6px;overflow-x:auto;background:var(--paper);scrollbar-width:none}
.dash-side::-webkit-scrollbar{display:none}
@media(min-width:960px){.dash-side{border-bottom:none;border-right:1px solid var(--grey-200);flex-direction:column;padding:26px 14px;overflow:visible}}
.dash-nav-item{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:var(--radius-s);font-size:.9rem;font-weight:500;color:var(--grey-500);white-space:nowrap;transition:all .2s;width:100%;text-align:left;min-height:44px}
.dash-nav-item svg{width:17px;height:17px;flex:none}
.dash-nav-item:hover{background:var(--grey-100);color:var(--ink)}
.dash-nav-item.active{background:var(--ink);color:var(--paper)}
.dash-main{padding:28px 18px 64px}
@media(min-width:960px){.dash-main{padding:38px 38px 80px}}
@media(max-width:959px){
  .dash-side{align-items:center;min-height:68px}
  .dash-side>.dash-nav-item{width:auto;align-self:center;flex:none}
  .dash-side-tools{display:flex!important;align-items:center;align-self:center;flex:none;margin-top:0!important;padding-top:0!important}
  .dash-side-tools>.dash-nav-item{width:auto;flex:none}
  .dash-side-tools>.seg{flex:none}
}
.dash-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:26px}
.dash-head h1{font-size:1.45rem;letter-spacing:-0.03em}
.kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:26px}
@media(min-width:900px){.kpi-grid{grid-template-columns:repeat(4,1fr)}}
.kpi{border:1px solid var(--grey-200);border-radius:var(--radius-m);padding:18px;background:var(--paper)}
.overview-kpis{margin-bottom:20px}
.overview-kpis .kpi{padding:14px 15px}
@media(min-width:760px){
  .overview-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
}
.kpi .k-label{font-size:.74rem;color:var(--grey-400);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.kpi .k-value{font-size:1.55rem;font-weight:800;letter-spacing:-0.03em;margin-top:5px}
.kpi .k-delta{font-size:.77rem;font-weight:600;color:var(--success);margin-top:2px}
.dash-panel{border:1px solid var(--grey-200);border-radius:var(--radius-m);overflow:hidden;margin-bottom:22px;background:var(--paper)}
.dash-panel-head{padding:16px 20px;border-bottom:1px solid var(--grey-100);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.dash-panel-head h3{font-size:.98rem}
.booking-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;padding:15px 20px;border-bottom:1px solid var(--grey-100);align-items:center}
.booking-row:last-child{border-bottom:none}
.booking-row .br-route{font-weight:600;font-size:.91rem}
.booking-row .br-meta{font-size:.79rem;color:var(--grey-500);margin-top:2px}
.br-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.flight-inline{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:9px;font-size:.72rem;color:var(--grey-600)}
.flight-inline b{color:var(--ink)}
.flight-delay{font-weight:800;color:var(--warn)}
.flight-state{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:5px 9px;border-radius:999px;font:800 .65rem Manrope;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap}
.flight-state i{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 18%,transparent)}
.flight-state.ok{background:var(--success-bg);color:var(--success)}
.flight-state.mid{background:var(--warn-bg);color:var(--warn)}
.flight-state.bad{background:var(--error-bg);color:var(--error)}
.flight-state.neutral{background:var(--grey-100);color:var(--grey-600)}
.flight-watch{position:relative;overflow:hidden;margin-bottom:22px;padding:22px;border:1px solid var(--grey-200);border-radius:22px;background:linear-gradient(145deg,#11120f,#23251f);color:#fff;box-shadow:0 18px 48px rgba(17,18,15,.12)}
.flight-watch:before{content:"";position:absolute;width:320px;height:320px;right:-160px;top:-190px;border:60px solid rgba(185,255,87,.08);border-radius:50%;pointer-events:none}
.flight-watch-head{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:18px}
.flight-watch-head h2{font:800 1.4rem Manrope;letter-spacing:-.035em;margin:4px 0}
.flight-watch-head p{font-size:.82rem;color:#b9bbb3}
.flight-kicker{display:flex;align-items:center;gap:7px;font:800 .64rem Manrope;letter-spacing:.12em;text-transform:uppercase;color:var(--lime)}
.flight-kicker i{width:7px;height:7px;border-radius:50%;background:var(--lime);animation:sm-live-pulse 1.8s ease-out infinite}
.flight-watch-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.flight-auto-refresh{display:flex;align-items:center;gap:7px;min-height:34px;padding:5px 10px;border:1px solid #44463e;border-radius:999px;background:#1d1f1a;font:750 .61rem Manrope;color:#bec0b8;white-space:nowrap}.flight-auto-refresh i{width:6px;height:6px;border-radius:50%;background:var(--lime);animation:sm-live-pulse 1.8s ease-out infinite}.flight-auto-refresh b{min-width:34px;color:var(--lime);font-variant-numeric:tabular-nums;text-align:right}
.flight-alert-toggle{display:flex;align-items:center;gap:9px;font:700 .72rem Manrope;color:#d9dbd3}
.flight-watch .switch .track{background:#4a4d43}.flight-watch .switch input:checked + .track{background:var(--lime)}
.flight-watch .switch input:checked + .track:after{background:#11120f}
.flight-watch .btn-secondary{border-color:#44463e;background:#292b25;color:#fff}.flight-watch .btn-secondary:hover{border-color:var(--lime)}
.flight-feed-health{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;margin:0 0 14px;padding:11px 13px;border:1px solid #3f4239;border-radius:13px;background:rgba(29,31,26,.92)}
.flight-feed-health-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#292c25;color:var(--lime)}.flight-feed-health-icon i{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 5px color-mix(in srgb,currentColor 14%,transparent);animation:sm-live-pulse 1.8s ease-out infinite}.flight-feed-health div{display:grid;gap:2px}.flight-feed-health b{font:800 .7rem Manrope;letter-spacing:.025em;color:#f4f5ef}.flight-feed-health small{font-size:.63rem;line-height:1.45;color:#a9aca3}.flight-feed-health time{font:750 .6rem Manrope;color:#8f9289;white-space:nowrap}
.flight-feed-health.cached,.flight-feed-health.simulation{border-color:#665d32}.flight-feed-health.cached .flight-feed-health-icon,.flight-feed-health.simulation .flight-feed-health-icon{background:#302c1d;color:#ffd456}.flight-feed-health.unavailable{border-color:#6b3936}.flight-feed-health.unavailable .flight-feed-health-icon{background:#321e1d;color:#f08078}.flight-feed-health.unavailable .flight-feed-health-icon i{animation:none}.flight-feed-health.loading .flight-feed-health-icon i{border:2px solid currentColor;border-top-color:transparent;background:transparent;box-shadow:none;animation:flight-spin .8s linear infinite}
.feed-simulation .flight-kicker,.feed-simulation .flight-auto-refresh b{color:#ffd456}.feed-simulation .flight-kicker i,.feed-simulation .flight-auto-refresh i{background:#ffd456}.feed-unavailable .flight-kicker{color:#f08078}.feed-unavailable .flight-kicker i{background:#f08078;animation:none}
.flight-watch-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:10px}
.flight-watch-card{display:flex;flex-direction:column;height:100%;min-height:318px;padding:16px;border:1px solid #393b34;border-radius:15px;background:#1d1f1a}
.flight-watch-card.simulated{border-color:#655d34;background:linear-gradient(155deg,#282519,#1d1f1a 68%)}.flight-watch-card.simulated .flight-live-summary>span,.flight-watch-card.simulated .flight-card-open{color:#ffd456}.flight-watch-card.simulated .flight-live-summary>span i{background:#ffd456;box-shadow:0 0 0 4px rgba(255,212,86,.1)}
.flight-watch-card.mid{border-color:#897121;background:linear-gradient(155deg,#282515,#1d1f1a 65%)}
.flight-watch-card.bad{border-color:#8d3c39;background:linear-gradient(155deg,#2b1918,#1d1f1a 65%)}
.flight-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.flight-number{display:block;font:800 1rem Manrope;letter-spacing:.02em}.flight-booking{display:block;margin-top:2px;font-size:.65rem;color:#8f918a}
.arrival-time-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 0;border-top:1px solid #32342e;border-bottom:1px solid #32342e}.arrival-time-row>div{display:grid;gap:1px}.arrival-time-row span{font:800 .58rem Manrope;letter-spacing:.075em;text-transform:uppercase;color:#969991}.arrival-time-row time{font:800 1.75rem/1 Manrope;letter-spacing:-.055em;color:#fff;font-variant-numeric:tabular-nums}.arrival-time-row em{padding:5px 8px;border-radius:999px;background:rgba(185,255,87,.09);color:var(--lime);font:800 .59rem Manrope;font-style:normal;white-space:nowrap}.arrival-time-row em.late{background:rgba(255,212,86,.1);color:#ffd456}
.arrival-customer{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;padding:12px 0}.arrival-avatar{display:grid;place-items:center;width:36px;height:36px;border:1px solid #484b42;border-radius:11px;background:#292c25;color:#fff;font:800 .68rem Manrope}.arrival-customer>div{display:grid;min-width:0;gap:1px}.arrival-customer small,.arrival-transfer>span{font:800 .55rem Manrope;letter-spacing:.075em;text-transform:uppercase;color:#8f928a}.arrival-customer b{overflow:hidden;font:800 .78rem Manrope;color:#f6f7f2;text-overflow:ellipsis;white-space:nowrap}.arrival-customer>div>span{font-size:.59rem;color:#8f928a}
.arrival-transfer{display:grid;gap:3px;padding:11px 12px;border-radius:11px;background:#252720}.arrival-transfer b{font:750 .73rem/1.35 Manrope;color:#fff}.arrival-transfer small{font-size:.61rem;color:#9da098}.arrival-flight-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0 2px;font-size:.6rem;color:#999c94}.arrival-flight-meta>span{display:flex;align-items:center;gap:5px}.arrival-flight-meta b{color:#dfe1da}.arrival-flight-meta i{width:6px;height:6px;border-radius:50%;background:currentColor}.arrival-flight-meta .live{color:var(--lime)}.arrival-flight-meta .simulated{color:#ffd456}
.flight-watch-card h3{margin:14px 0 12px;font:700 .82rem/1.35 Manrope;color:#f4f3ee}
.flight-times{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) minmax(0,.8fr);align-items:end;gap:8px;padding:10px 0;border-top:1px solid #32342e;border-bottom:1px solid #32342e}
.flight-times>span{align-self:center;color:#7f8179}.flight-times small{display:block;margin-bottom:2px;font-size:.59rem;text-transform:uppercase;letter-spacing:.06em;color:#8f918a}.flight-times b{font:800 .88rem Manrope;color:#fff}
.flight-live-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:11px 0;border-top:1px solid #32342e;border-bottom:1px solid #32342e}.flight-live-summary>span{display:flex;align-items:center;gap:7px;font:800 .62rem Manrope;letter-spacing:.075em;text-transform:uppercase;color:var(--lime)}.flight-live-summary>span i{width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px rgba(185,255,87,.1);animation:sm-live-pulse 1.8s ease-out infinite}.flight-live-summary>b{font:800 .82rem Manrope;color:#fff;text-align:right}.flight-live-summary>small{grid-column:1/-1;color:#92958d;font-size:.62rem}
.flight-official-arrival{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 10px;padding:9px 0;border-bottom:1px solid #32342e}.flight-official-arrival span{font:750 .58rem Manrope;letter-spacing:.055em;text-transform:uppercase;color:#9da098}.flight-official-arrival b{font:800 .75rem Manrope;color:#fff;text-align:right}.flight-official-arrival em{grid-column:1/-1;font:750 .61rem Manrope;color:var(--lime);font-style:normal}.flight-official-arrival em.late{color:#ffd456}.flight-position-only{padding:9px 0;border-bottom:1px solid #32342e;font:650 .61rem/1.45 Manrope;color:#9da098}
.flight-signal-wait{display:flex;align-items:flex-start;gap:10px;padding:12px 0;border-top:1px solid #32342e;border-bottom:1px solid #32342e}.flight-signal-wait>i{width:8px;height:8px;margin-top:4px;flex:none;border:2px solid #8f918a;border-radius:50%}.flight-signal-wait div{display:grid;gap:3px}.flight-signal-wait b{font:750 .72rem Manrope;color:#e5e6df}.flight-signal-wait span{font-size:.62rem;line-height:1.45;color:#92958d}
.flight-card-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:12px;font-size:.69rem;color:#b7b9b1}
.flight-card-foot>div{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.flight-source-chip{display:inline-flex;align-items:center;max-width:54%;font:750 .59rem Manrope;color:#9da098;line-height:1.3}.flight-source-chip.live{color:var(--lime)}.flight-source-chip.simulated{color:#ffd456}
.flight-card-open,.flight-inline-open{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:5px;border:0;background:transparent;color:var(--lime);font:800 .68rem Manrope;letter-spacing:.01em;text-decoration:underline;text-underline-offset:3px;padding:7px 6px;cursor:pointer}
.flight-card-open svg{width:12px;height:12px}.flight-card-open:hover,.flight-inline-open:hover{color:#fff}.flight-inline-open{color:var(--ink);font-size:.7rem}.flight-inline-open:hover{color:var(--grey-600)}
.flight-watch-note{position:relative;display:flex;gap:8px;align-items:flex-start;margin-top:14px;font-size:.69rem;line-height:1.5;color:#969990}.flight-watch-note span{color:var(--lime)}
.flight-live-empty{position:relative;display:flex;align-items:center;justify-content:center;gap:11px;min-height:126px;border:1px dashed #44463e;border-radius:15px;background:#1d1f1a;text-align:left}.flight-live-empty>i{width:10px;height:10px;border:2px solid var(--lime);border-top-color:transparent;border-radius:50%;animation:flight-spin .8s linear infinite}.flight-live-empty.unavailable>i{border-color:#f08078;background:#f08078;animation:none}.flight-live-empty b,.flight-live-empty span{display:block}.flight-live-empty b{font:800 .78rem Manrope}.flight-live-empty span{font-size:.65rem;color:#9da098}
.flight-live-test{position:relative;margin-top:18px;padding-top:18px;border-top:1px solid #35372f}
.flight-live-test.live-primary{margin:0 0 20px;padding:0 0 18px;border-top:0;border-bottom:1px solid #35372f}.flight-booked-head{position:relative;margin:0 0 10px}.flight-booked-head h3{font:800 .92rem Manrope;color:#fff}.flight-booked-head p{margin-top:3px;font-size:.7rem;line-height:1.5;color:#aeb0a8}
.flight-live-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}.flight-live-head h3{font:800 .92rem Manrope;color:#fff}.flight-live-head p{margin-top:3px;font-size:.7rem;color:#aeb0a8}.flight-feed-mode{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(185,255,87,.3);border-radius:999px;padding:5px 9px;color:var(--lime);font:800 .59rem Manrope;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.flight-feed-mode:not(.snapshot):before{content:"";width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px rgba(185,255,87,.12);animation:sm-live-pulse 1.8s ease-out infinite}.flight-feed-mode.snapshot{border-color:#55584e;color:#c4c6be}
.flight-live-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.flight-live-card{display:grid;grid-template-columns:minmax(0,1fr) auto 14px;align-items:center;gap:9px;min-height:66px;padding:10px 12px;border:1px solid #393b34;border-radius:12px;background:#1d1f1a;color:#fff;text-align:left;cursor:pointer;transition:border-color .18s,transform .18s,background .18s}.flight-live-card:hover{border-color:var(--lime);background:#252820;transform:translateY(-1px)}.flight-live-card span{min-width:0}.flight-live-card b,.flight-live-card small{display:block}.flight-live-card b{font:800 .76rem Manrope;white-space:nowrap}.flight-live-card small{margin-top:2px;font-size:.58rem;color:#969990;white-space:nowrap}.flight-live-card svg{width:13px;height:13px;color:var(--lime)}
.flight-detail-modal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px}.flight-detail-scrim{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(8,9,7,.72);backdrop-filter:blur(7px);cursor:pointer}.flight-detail-sheet{position:relative;width:min(860px,100%);max-height:calc(100vh - 40px);overflow:auto;border:1px solid var(--grey-200);border-radius:24px;background:var(--paper);padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.32);animation:flight-sheet-in .25s var(--ease)}@keyframes flight-sheet-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.flight-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.flight-detail-head .flight-kicker{color:var(--grey-500)}.flight-detail-head h2{margin-top:5px;font:800 1.8rem Manrope;letter-spacing:-.04em}.flight-detail-close{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--grey-200);border-radius:50%;background:var(--paper);color:var(--ink);font-size:1.35rem;cursor:pointer}.flight-detail-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:17px 0;padding-bottom:17px;border-bottom:1px solid var(--grey-100);font-size:.7rem;color:var(--grey-500)}.flight-booking-context{display:grid;gap:3px;margin-bottom:16px;padding:14px;border-radius:13px;background:var(--grey-50)}.flight-booking-context span{font:800 .6rem Manrope;text-transform:uppercase;letter-spacing:.07em;color:var(--grey-400)}.flight-booking-context b{font:750 .82rem/1.4 Manrope}.flight-booking-context small{color:var(--grey-500)}.flight-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--grey-200);border-radius:14px;overflow:hidden;margin-bottom:14px}.flight-detail-grid>div{display:grid;gap:3px;min-height:64px;padding:12px 14px;border-right:1px solid var(--grey-100);border-bottom:1px solid var(--grey-100)}.flight-detail-grid>div:nth-child(2n){border-right:0}.flight-detail-grid span,.flight-position span{font-size:.64rem;color:var(--grey-400)}.flight-detail-grid b,.flight-position b{font:750 .79rem Manrope}.flight-position{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:13px 14px;border-radius:13px;background:var(--lime-soft)}.flight-position svg{width:18px;height:18px;color:var(--ink)}.flight-position div{display:grid;gap:2px}.flight-no-position{margin-bottom:14px;padding:13px 14px;border-radius:13px;background:var(--grey-50);font-size:.75rem;line-height:1.5;color:var(--grey-500)}
.flight-live-source{display:inline-flex;align-items:center;gap:7px;font:800 .62rem Manrope;letter-spacing:.045em;color:var(--success);text-transform:uppercase}.flight-live-source i{width:6px;height:6px;border-radius:50%;background:currentColor;animation:sm-live-pulse 1.8s ease-out infinite}.flight-live-source.simulated{color:#997814}.flight-live-source.simulated i{animation:none}.flight-detail-sheet.simulated{border-color:#d7ca91}.flight-detail-sheet.simulated .flight-detail-head .flight-kicker{color:#876b16}.flight-detail-sheet.simulated .flight-detail-head .flight-kicker i{background:#b6911d;animation:none}
.flight-detail-status>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.flight-phase-chip{display:inline-flex;align-items:center;min-height:26px;padding:5px 9px;border-radius:999px;background:var(--warn-bg);color:var(--warn);font:800 .62rem Manrope;letter-spacing:.04em;text-transform:uppercase}
.flight-route-summary{display:grid;grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr);align-items:center;gap:12px;margin:0 0 12px;padding:13px 15px;border:1px solid var(--grey-200);border-radius:14px;background:var(--grey-50)}.flight-route-summary>div{display:grid;min-width:0;gap:2px}.flight-route-summary>div:last-child{text-align:right}.flight-route-summary span{font:800 .56rem Manrope;letter-spacing:.1em;text-transform:uppercase;color:var(--grey-400)}.flight-route-summary b{font:800 1.05rem Manrope;letter-spacing:-.02em}.flight-route-summary small{overflow:hidden;color:var(--grey-500);font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.flight-route-plane{justify-self:center;width:24px;height:24px;fill:var(--ink);filter:drop-shadow(0 2px 2px rgba(0,0,0,.12));transform:rotate(90deg)}
.flight-track-map{position:relative;z-index:0;width:100%;height:330px;margin-bottom:0;overflow:hidden;border:1px solid var(--grey-200);border-radius:15px 15px 0 0;background:#dfe5d8}.flight-track-map .leaflet-control-attribution{font-size:8px}.flight-track-map .leaflet-control-zoom a{color:#111}.flight-map-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:9px 11px;border:1px solid var(--grey-200);border-top:0;border-radius:0 0 13px 13px;background:var(--grey-50)}.flight-map-meta b{font:750 .65rem Manrope;color:var(--grey-600)}.flight-map-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.flight-map-legend span{display:inline-flex;align-items:center;gap:6px;font:800 .58rem Manrope;letter-spacing:.055em;text-transform:uppercase;color:var(--grey-600)}.flight-map-legend span:before{content:"";width:19px;height:3px;border-radius:3px;background:var(--ink)}.flight-map-legend span.remaining:before,.flight-map-legend span.estimated:before{height:2px;background:repeating-linear-gradient(90deg,#777b72 0 5px,transparent 5px 8px)}.flight-map-legend span.coverage:before{height:2px;background:repeating-linear-gradient(90deg,#a2a69d 0 2px,transparent 2px 6px)}
.operator-flight-marker{border:0!important;background:transparent!important}.operator-flight-aircraft{display:block;width:40px;height:40px;overflow:visible;fill:#11120f;stroke:#fff;stroke-width:2.2;paint-order:stroke fill;filter:drop-shadow(0 5px 5px rgba(0,0,0,.38));transform:rotate(var(--flight-heading));transform-origin:center}.flight-airport-marker{border:0!important;background:transparent!important}.flight-airport-marker span{position:absolute;left:3px;top:10px;width:11px;height:11px;border:3px solid #fff;border-radius:50%;background:#11120f;box-shadow:0 2px 6px rgba(0,0,0,.3)}.flight-airport-marker b{position:absolute;left:19px;top:7px;max-width:42px;padding:2px 4px;border-radius:4px;background:rgba(255,255,255,.9);font:800 9px Manrope;color:#111;white-space:nowrap}
.flight-progress-card{margin:0 0 14px;padding:17px 18px;border-radius:16px;background:#11120f;color:#fff}.flight-progress-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.flight-progress-head>div{display:flex;align-items:baseline;gap:9px}.flight-progress-head span{font:800 .65rem Manrope;letter-spacing:.08em;text-transform:uppercase;color:#b8bbb2}.flight-progress-head b{font:800 1.2rem Manrope;color:var(--lime)}.flight-progress-head small{font-size:.63rem;color:#90938b;text-align:right}.flight-progress-track{position:relative;height:5px;margin:17px 10px 14px 0;border-radius:999px;background:#3f423a}.flight-progress-track i{position:absolute;inset:0 auto 0 0;width:var(--flight-progress);border-radius:inherit;background:var(--lime)}.flight-progress-plane{position:absolute;left:clamp(0px,var(--flight-progress),calc(100% - 4px));top:50%;width:23px;height:23px;overflow:visible;fill:#fff;filter:drop-shadow(0 2px 3px rgba(0,0,0,.45));transform:translate(-50%,-50%) rotate(90deg)}.flight-progress-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.flight-progress-times>div{display:grid;gap:2px}.flight-progress-times>div:nth-child(2),.flight-progress-times>div:nth-child(3){text-align:center}.flight-progress-times>div:last-child{text-align:right}.flight-progress-times span{font-size:.57rem;color:#8f928a;text-transform:uppercase;letter-spacing:.055em}.flight-progress-times b{font:800 .76rem Manrope}.flight-progress-distance{display:flex;justify-content:space-between;gap:14px;margin-top:13px;padding-top:11px;border-top:1px solid #30332d;color:#9a9d95;font-size:.62rem}.flight-progress-distance b{color:#fff}
.flight-alert-explainer{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px;padding:12px 14px;border:1px solid var(--grey-200);border-radius:13px;background:var(--grey-50)}.flight-alert-explainer svg{width:16px;height:16px;margin-top:1px;flex:none;color:var(--ink)}.flight-alert-explainer div{display:grid;gap:3px}.flight-alert-explainer b{font:800 .7rem Manrope}.flight-alert-explainer span{font-size:.68rem;line-height:1.5;color:var(--grey-500)}
.flight-watch .is-loading svg{animation:flight-spin .8s linear infinite}@keyframes flight-spin{to{transform:rotate(360deg)}}
@media(max-width:1050px){.flight-live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.flight-watch{padding:17px}.flight-watch-head{align-items:flex-start;flex-direction:column}.flight-watch-tools{width:100%;justify-content:space-between}.flight-auto-refresh{order:-1;width:100%;justify-content:flex-start}.flight-auto-refresh b{margin-left:auto}.flight-feed-health{grid-template-columns:32px minmax(0,1fr)}.flight-feed-health time{grid-column:2}.flight-watch-grid,.flight-live-grid{grid-template-columns:1fr}.flight-watch-card{min-height:0}.arrival-flight-meta{align-items:flex-start;flex-direction:column}.flight-live-head{flex-direction:column}.flight-detail-modal{align-items:flex-end;padding:0}.flight-detail-sheet{width:100%;max-height:94vh;border-radius:22px 22px 0 0;padding:18px}.flight-route-summary{grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);padding:11px 12px}.flight-track-map{height:285px}.flight-progress-card{padding:15px 14px}.flight-progress-head{align-items:flex-start}.flight-progress-head small{max-width:46%;line-height:1.4}.flight-progress-times{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.flight-progress-times>div:nth-child(2),.flight-progress-times>div:nth-child(3){text-align:right}.flight-progress-times>div:nth-child(3){text-align:left}.flight-progress-times>div:last-child{text-align:right}.flight-progress-distance{align-items:flex-start;flex-direction:column;gap:5px}.flight-detail-grid{grid-template-columns:1fr}.flight-detail-grid>div,.flight-detail-grid>div:nth-child(2n){border-right:0}.flight-card-foot{align-items:flex-start}.flight-card-foot>div{justify-content:flex-start}.flight-source-chip{max-width:46%}.flight-map-meta{align-items:flex-start;flex-direction:column}.compact-cal-layout{grid-template-columns:1fr}.cal-panel.compact .cal-grid{justify-content:center}.compact-cal-summary{border-top:1px solid var(--grey-100);border-left:0}.compact-cal-summary .btn{width:100%}}
.dash-form{padding:20px;display:grid;gap:0}
.filter-chips{display:flex;gap:8px;flex-wrap:wrap}
.filter-chip{padding:8px 15px;border-radius:100px;border:1px solid var(--grey-200);font-size:.81rem;font-weight:600;color:var(--grey-500);transition:all .2s;background:var(--paper);min-height:38px}
.filter-chip:hover{border-color:var(--ink);color:var(--ink)}
.filter-chip.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.switch{position:relative;width:44px;height:26px;flex:none;cursor:pointer;display:inline-block}
.switch input{opacity:0;width:0;height:0}
.switch .track{position:absolute;inset:0;border-radius:100px;background:var(--grey-300);transition:background .25s}
.switch .track::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--paper);transition:transform .25s var(--ease);box-shadow:var(--shadow-1)}
.switch input:checked + .track{background:var(--ink)}
.switch input:checked + .track::after{transform:translateX(18px)}
.veh-row{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 20px;border-bottom:1px solid var(--grey-100)}
.veh-row:last-child{border-bottom:none}
.veh-thumb{background:var(--grey-50);border-radius:10px;overflow:hidden;height:52px;display:flex;align-items:center;justify-content:center}
.veh-thumb svg{max-width:68px;margin:0}
.vehicle-service-card{border-bottom:1px solid var(--grey-100)}
.vehicle-service-card:last-child{border-bottom:0}
.vehicle-service-card .veh-row{border-bottom:0}
.vehicle-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.vehicle-offer-section{margin:4px 0 20px;padding:16px;border:1px solid var(--grey-200);border-radius:14px;background:var(--grey-50)}
.vehicle-offer-section h4,.vehicle-service-editor h4{font:800 .86rem Manrope}
.vehicle-offer-section>p,.vehicle-service-editor>div>p{margin:3px 0 12px;font-size:.74rem;color:var(--grey-500)}
.vehicle-offer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.vehicle-offer-check{position:relative;cursor:pointer}
.vehicle-offer-check input{position:absolute;opacity:0;pointer-events:none}
.vehicle-offer-check span{display:flex;align-items:center;gap:7px;min-height:42px;padding:9px 10px;border:1px solid var(--grey-200);border-radius:10px;background:var(--paper);font-size:.74rem;font-weight:700;line-height:1.25;transition:border-color .18s,background .18s,color .18s}
.vehicle-offer-check svg{width:14px;height:14px;flex:none;color:var(--grey-400)}
.vehicle-offer-check.on span{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.vehicle-offer-check.on svg{color:var(--lime)}
.vehicle-offer-summary{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.vehicle-offer-summary span{padding:4px 7px;border-radius:999px;background:var(--grey-100);color:var(--grey-600);font-size:.62rem;font-weight:700;line-height:1.2}
.vehicle-service-editor{display:grid;gap:14px;padding:18px 20px 20px;border-top:1px solid var(--grey-100);background:var(--grey-50)}
.vehicle-service-editor>.btn{justify-self:start}
.amen-groups{display:grid;gap:18px;padding:20px}
.amen-group h4{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--grey-400);margin-bottom:10px}
.amen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.amen-check{position:relative;display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--grey-200);border-radius:var(--radius-s);font-size:.84rem;font-weight:500;cursor:pointer;transition:all .15s;min-height:44px}
.amen-check:hover{border-color:var(--grey-400)}
.amen-check.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.amen-check input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.amen-check:has(input:focus-visible){outline:3px solid var(--lime);outline-offset:2px}
.amen-check:has(input[aria-invalid="true"]){border-color:var(--error)}
.wizard-steps{display:flex;gap:6px;padding:0 20px 16px;flex-wrap:wrap}
.wizard-step{font-size:.76rem;font-weight:600;padding:6px 12px;border-radius:100px;background:var(--grey-100);color:var(--grey-500)}
.wizard-step.done{background:var(--success-bg);color:var(--success)}
.wizard-step.now{background:var(--ink);color:var(--paper)}
.check-list{list-style:none;display:grid;gap:8px;padding:20px}
.check-list li{display:flex;gap:10px;align-items:center;font-size:.88rem}
.check-list li svg{width:15px;height:15px;flex:none}
.login-layout{display:grid;min-height:calc(100vh - var(--header-h));grid-template-columns:1fr}
@media(min-width:960px){.login-layout{grid-template-columns:1fr 1fr}}
.login-pitch{background:var(--band-bg);color:var(--band-fg);padding:48px 26px;display:flex;flex-direction:column;justify-content:center}
@media(min-width:960px){.login-pitch{padding:72px 60px}}
.login-pitch .h2{color:var(--band-fg);margin:12px 0 14px}
.login-pitch>p{color:var(--band-muted);max-width:420px;margin-bottom:32px}
.pitch-list{list-style:none;display:grid;gap:15px}
.pitch-list li{display:flex;gap:13px;align-items:flex-start;font-size:.92rem;color:var(--band-fg)}
.pitch-list svg{width:17px;height:17px;flex:none;margin-top:2px}
.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:48px 22px;background:var(--paper)}
.login-form{width:100%;max-width:400px}
.login-form h1{font-size:1.55rem;letter-spacing:-0.03em;margin-bottom:6px}
.login-form>p{color:var(--grey-500);font-size:.92rem;margin-bottom:26px}
.login-note{margin-top:20px;padding:13px 15px;background:var(--grey-50);border:1px solid var(--grey-200);border-radius:var(--radius-s);font-size:.81rem;color:var(--grey-500);line-height:1.5}

/* ============================================================
   v2.3 — dark-mode extras, theme toggle, customer account area
   ============================================================ */
html[data-theme="dark"] .skeleton::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}

/* ---- Theme toggle + account menu ---- */
.icon-btn{width:44px;height:44px;border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;border:1px solid var(--grey-200);background:var(--paper);transition:border-color .2s;flex:none}
.icon-btn:hover{border-color:var(--ink)}
.icon-btn svg{width:17px;height:17px}
.avatar-btn{width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;flex:none;transition:transform .2s}
.avatar-btn:hover{transform:scale(1.06)}
.acct-menu{position:absolute;top:calc(var(--header-h) - 6px);right:18px;background:var(--paper);border:1px solid var(--grey-200);border-radius:var(--radius-m);box-shadow:var(--shadow-3);min-width:230px;padding:8px;z-index:120;display:none}
.acct-menu.open{display:block;animation:pageIn .25s var(--ease)}
.acct-menu a,.acct-menu button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:11px 13px;border-radius:8px;font-size:.9rem;font-weight:500;min-height:44px}
.acct-menu a:hover,.acct-menu button:hover{background:var(--grey-100)}
.acct-menu svg{width:16px;height:16px;color:var(--grey-400)}
.acct-menu .am-head{padding:11px 13px 8px;border-bottom:1px solid var(--grey-100);margin-bottom:6px}
.acct-menu .am-head b{display:block;font-size:.92rem}
.acct-menu .am-head span{font-size:.78rem;color:var(--grey-500)}
@media(min-width:768px){.acct-menu{right:32px}}

/* ---- Account area ---- */
.acct-layout{display:grid;gap:18px;padding:28px 0 80px}
@media(min-width:960px){.acct-layout{grid-template-columns:220px 1fr;gap:36px;align-items:start}}
.acct-nav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.acct-nav::-webkit-scrollbar{display:none}
@media(min-width:960px){.acct-nav{flex-direction:column;overflow:visible;position:sticky;top:calc(var(--header-h) + 20px)}}
.acct-nav button{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:var(--radius-s);font-size:.9rem;font-weight:500;color:var(--grey-500);white-space:nowrap;text-align:left;min-height:44px;transition:all .2s}
.acct-nav button svg{width:16px;height:16px;flex:none}
.acct-nav button:hover{background:var(--grey-100);color:var(--ink)}
.acct-nav button.active{background:var(--ink);color:var(--paper)}
html[data-theme="dark"] .acct-nav button.active{background:#f1f1f1;color:#121316}
html[data-theme="dark"] .avatar-btn{background:#f1f1f1;color:#121316}
.acct-card{border:1px solid var(--grey-200);border-radius:var(--radius-m);background:var(--paper);overflow:hidden;margin-bottom:16px}
.acct-card-head{padding:16px 20px;border-bottom:1px solid var(--grey-100);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.acct-card-head h3{font-size:.98rem}
.seg-mini{display:flex;background:var(--grey-100);border-radius:var(--radius-s);padding:3px;gap:2px;flex-wrap:wrap}
.seg-mini button{padding:8px 14px;border-radius:6px;font-size:.82rem;font-weight:600;color:var(--grey-500);min-height:38px;display:flex;align-items:center;gap:6px}
.seg-mini button svg{width:14px;height:14px}
.seg-mini button.active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-1)}
.auth-wrap{max-width:440px;margin:0 auto;padding:48px 0 90px}
.auth-wrap .h2{margin:8px 0 6px}
.auth-alt{text-align:center;font-size:.88rem;color:var(--grey-500);margin-top:18px}
.auth-alt a{font-weight:600;text-decoration:underline;text-underline-offset:2px;color:var(--ink)}
.pw-meter{height:4px;border-radius:100px;background:var(--grey-100);margin:-6px 0 12px;overflow:hidden}
.pw-meter span{display:block;height:100%;border-radius:100px;background:var(--ink);width:0;transition:width .3s var(--ease)}
.save-btn{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;background:var(--paper);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1);z-index:3;transition:transform .2s}
.save-btn:hover{transform:scale(1.1)}
.save-btn svg{width:16px;height:16px}
.save-btn.on svg{fill:var(--ink)}
.demo-note{border:1px dashed var(--grey-300);border-radius:var(--radius-s);padding:10px 14px;font-size:.78rem;color:var(--grey-500);margin-bottom:16px}

/* ============================================================
   v2.4 — MOBILE EMERGENCY REPAIR PASS
   Root-cause overflow fixes + mobile-only declutter/centring.
   Desktop is untouched except shrink-permission fixes above
   (minmax(0,1fr)) which cannot change desktop rendering.
   ============================================================ */

/* Containment floor — applied AFTER fixing root causes above.
   `clip` (not hidden) so no phantom scroll container is created. */
html,body{overflow-x:clip}

/* Flex/grid children must be allowed to shrink below content width */
.field .control{min-width:0}
.field input,.field select,.field textarea{min-width:0}
.oc-top>div:first-child,.summary-mini>div:first-child,.trip-part>div,
.booking-row>div:first-child,.conv-row>div:first-child,.upsell .u-txt{min-width:0}
.oc-cat,.br-meta,.ch-value,.t-sub{overflow-wrap:anywhere}
body{overflow-wrap:break-word}

/* Long-translation safety: primary CTAs may wrap on small screens */
@media(max-width:640px){
  .btn{white-space:normal;line-height:1.25}
  .seg button{white-space:normal;line-height:1.15;padding:8px 6px}
}

.operator-apply-layout{display:grid;grid-template-columns:1fr 520px;gap:70px;align-items:start;padding:80px 0}.operator-apply-layout>section{position:sticky;top:130px}.operator-apply-layout .display{font-size:clamp(2.6rem,5vw,5.2rem);margin:16px 0}.operator-standards{display:grid;gap:10px;margin-top:30px}.operator-standards>div{display:grid;gap:5px;padding:17px;border:1px solid var(--grey-200);border-radius:14px}.operator-standards span{color:var(--grey-500);font-size:.82rem}.operator-apply-form{padding:30px;border:1px solid var(--grey-200);border-radius:24px;background:var(--paper);box-shadow:var(--shadow-2)}.operator-apply-form .h2{margin:10px 0 24px}.operator-apply-form .small{margin-top:12px;text-align:center}
@media(max-width:900px){.operator-apply-layout{grid-template-columns:1fr;gap:32px;padding:42px 0}.operator-apply-layout>section{position:static}.operator-apply-form{padding:22px}.operator-apply-layout .display{font-size:2.8rem}}

/* Transfer-only edition: keeps the original premium ShuttleMe visual language. */
.transfer-promise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.transfer-promise-grid>div{display:grid;grid-template-columns:28px 1fr;gap:2px 8px;align-items:center;padding:14px;border:1px solid var(--grey-200);border-radius:14px;background:color-mix(in srgb,var(--paper) 78%,transparent)}.transfer-promise-grid svg{width:20px;height:20px;grid-row:1/3}.transfer-promise-grid b{font-family:Manrope;font-size:.82rem}.transfer-promise-grid span{font-size:.68rem;color:var(--grey-500);line-height:1.3}.operator-nav{gap:6px}.operator-home-card{display:grid;grid-template-columns:1.3fr .7fr;align-items:center;gap:44px;padding:48px;border-radius:28px;background:#11120f;color:#fff}.operator-home-card .eyebrow{color:#a7a99f}.operator-home-card .h2{margin:12px 0;color:#fff}.operator-home-card p{max-width:680px;color:#bfc1b8;line-height:1.7}.operator-home-actions{display:grid;gap:10px}.operator-home-actions .btn-inverse{border:1px solid #fff;background:#fff!important;color:#11120f!important}.operator-home-actions .btn-secondary{border-color:#5b5d55;background:transparent!important;color:#fff!important}
@media(max-width:760px){.transfer-promise-grid{grid-template-columns:1fr}.operator-home-card{grid-template-columns:1fr;padding:30px 22px;gap:24px}.operator-home-actions{grid-template-columns:1fr}.operator-nav{display:none}}
.transfer-payment{margin:24px 0 14px;padding:20px;border:1px solid var(--grey-200);border-radius:var(--radius-m);background:var(--paper)}.transfer-payment-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.transfer-payment-head h3{font-family:Manrope;margin-top:5px}.transfer-payment-head>svg{width:22px;height:22px}.payment-choice{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:12px;padding:14px 12px;border:1px solid var(--grey-200);border-radius:12px;margin-top:8px;cursor:pointer}.payment-choice:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.payment-choice input{width:18px;height:18px;accent-color:var(--ink)}.payment-choice b,.payment-choice small{display:block}.payment-choice small{color:var(--grey-500);font-size:.72rem;margin-top:3px}.payment-choice strong{font-family:Manrope;font-size:.76rem}.transfer-terms{margin:16px 0}
.theme-labeled{width:auto!important;min-width:76px;padding:0 11px!important;gap:7px;border-radius:999px!important}.theme-labeled span{font-size:.72rem;font-weight:700}.transfer-footer-cols{grid-template-columns:repeat(5,minmax(0,1fr))}.transfer-footer-tools{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:24px 0;border-top:1px solid var(--grey-800)}.transfer-footer-tools .drawer-label{display:block;margin-bottom:7px}.footer-theme{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--grey-700);border-radius:999px;color:var(--paper);font-weight:700}.footer-theme svg{width:17px;height:17px}
@media(max-width:900px){.transfer-footer-cols{grid-template-columns:1fr}.transfer-footer-tools{align-items:stretch;flex-direction:column}.footer-theme{align-self:flex-start}.theme-labeled{min-width:44px}.theme-labeled span{display:none}}

/* v1.2 UX architecture — traveller-first header, clearer route logic, mobile conversion */
:where(a,button,input,select,textarea):focus-visible{outline:3px solid #a8ef58;outline-offset:3px}
.header{overflow:visible}.header-utility{height:32px;border-bottom:1px solid var(--grey-200);font-size:.68rem;font-weight:700;color:var(--grey-500)}.header-utility .container,.header-utility .container>div{height:100%;display:flex;align-items:center}.header-utility .container{justify-content:space-between}.header-utility .container>span{display:flex;align-items:center;gap:6px}.header-utility svg{width:13px;height:13px}.header-utility .container>div{gap:20px}.header-utility a:hover{color:var(--ink)}.header-inner{height:68px}.nav-desktop{gap:0!important}.nav-link{font-size:.8rem;padding:9px 11px!important}.header-actions{gap:7px}.header-theme{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--grey-200);border-radius:50%;background:var(--paper)}.header-theme svg{width:17px;height:17px}.header-lang{height:40px;display:flex;align-items:center;border:1px solid var(--grey-200);border-radius:999px;padding:0 8px;gap:3px;background:var(--paper)}.header-lang svg{width:15px;height:15px}.header-lang select{appearance:none;border:0;background:transparent;color:var(--ink);font-size:.72rem;font-weight:800;padding:0 3px;outline:0}.header-login{font-size:.78rem;font-weight:700;padding:10px 5px;white-space:nowrap}.header-price{min-height:40px!important;padding-inline:16px!important;font-size:.78rem!important}.drawer{inset:100px 0 0}.drawer-intro{display:grid;gap:5px;padding:12px 4px 18px;border-bottom:1px solid var(--grey-100)}.drawer-intro b{font:700 1.35rem Manrope}.drawer-language select{width:100%;height:50px;border:1px solid var(--grey-200);border-radius:12px;background:var(--paper);color:var(--ink);padding:0 14px}.drawer-theme{display:flex;align-items:center;gap:10px;width:100%;min-height:50px;margin-top:10px;padding:0 14px;border:1px solid var(--grey-200);border-radius:12px;font-weight:700}.drawer-theme svg{width:18px;height:18px}.route-direction{display:flex;align-items:center;gap:8px;margin:10px 0 14px;padding:10px 12px;border-radius:10px;background:var(--grey-50);color:var(--grey-600);font-size:.72rem;font-weight:700}.route-direction svg{width:15px;height:15px}.transfer-route-fields{display:flex;flex-direction:column}.airport-route-field,.address-route-field{order:1}.card-form[data-trip-type="dropoff"] .address-route-field{order:0}.fleet-preview{background:var(--paper)}.fleet-card{cursor:default}.fleet-caps{display:flex;gap:14px;margin-top:auto;padding-top:16px;font-size:.78rem;font-weight:700}.fleet-caps span{display:flex;align-items:center;gap:5px}.fleet-caps svg{width:15px;height:15px}.transfer-footer-cols{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(min-width:960px){.nav-desktop{display:flex!important}.menu-btn{display:none!important}.header-actions{display:flex!important}}
@media(max-width:959px){.header-utility{display:none}.header-inner{height:68px}.drawer{inset:68px 0 0}.nav-desktop{display:none!important}.menu-btn{display:flex!important}.header-actions{display:none!important}}
@media(max-width:640px){.hero{padding-top:20px}.hero-grid{gap:28px}.hero-copy{order:2}.hero-copy .display{font-size:clamp(2.3rem,11.5vw,3rem);line-height:.98}.hero-copy .lead{font-size:.94rem;line-height:1.55;margin-top:16px}.hero-trustline{margin-top:18px;gap:8px}.transfer-promise-grid{display:none}#searchFormMount{order:1}.card-form{margin-top:2px}.transfer-route-section{padding-top:44px}.fleet-preview .section-head-row{align-items:flex-start}.fleet-preview .section-head-row>.btn{width:100%}.field-row{grid-template-columns:1fr}.transfer-footer-cols{grid-template-columns:1fr}}
/* Admin bar charts: narrower label column on phones */
@media(max-width:480px){
  .bar-row{grid-template-columns:96px minmax(0,1fr) 52px;padding:7px 14px}
}
/* Sticky CTA must never cover form fields */
body.has-sticky main{padding-bottom:96px}

/* ============================================================
   v6.8 — OPERATOR BOOKING CARDS, AVAILABILITY + PRICING MODEL
   ============================================================ */
.operator-booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
.operator-booking-empty{grid-column:1/-1;border:1px dashed var(--grey-300);border-radius:18px;background:var(--paper)}
.operator-booking-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--grey-200);border-radius:18px;background:var(--paper);box-shadow:0 10px 30px rgba(17,18,15,.04);transition:transform .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease)}
.operator-booking-card.flight-test-booking{border-color:#d7ca91;background:linear-gradient(150deg,#fffdf4,var(--paper) 64%)}.operator-booking-card.flight-test-booking .operator-booking-kind{color:#876b16}
.operator-booking-card:hover{transform:translateY(-2px);border-color:var(--grey-300);box-shadow:0 16px 38px rgba(17,18,15,.07)}
.operator-booking-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid var(--grey-100)}
.operator-booking-card-head>div{display:flex;align-items:center;gap:8px;min-width:0}.operator-booking-ref{font:800 .75rem Manrope;letter-spacing:.035em}.operator-booking-kind{padding-left:8px;border-left:1px solid var(--grey-200);font-size:.68rem;color:var(--grey-400)}
.operator-booking-route{padding:19px 17px 17px}.operator-booking-route>span,.operator-booking-facts span,.operator-booking-person span{display:block;margin-bottom:4px;font:800 .58rem Manrope;letter-spacing:.075em;text-transform:uppercase;color:var(--grey-400)}.operator-booking-route h2{font:800 1.05rem/1.35 Manrope;letter-spacing:-.025em}
.operator-booking-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 17px;border:1px solid var(--grey-200);border-radius:12px;overflow:hidden}.operator-booking-facts>div{min-width:0;padding:10px;border-right:1px solid var(--grey-100)}.operator-booking-facts>div:last-child{border-right:0}.operator-booking-facts b{display:block;overflow:hidden;font:750 .76rem Manrope;text-overflow:ellipsis;white-space:nowrap}
.operator-booking-person{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:17px}.operator-booking-person b,.operator-booking-person small{display:block}.operator-booking-person b{font:750 .78rem/1.35 Manrope}.operator-booking-person small{margin-top:2px;overflow-wrap:anywhere;font-size:.66rem;color:var(--grey-500)}
.operator-booking-note{margin:0 17px 14px;padding:10px 12px;border-radius:10px;background:var(--grey-50);font-size:.68rem;line-height:1.5;color:var(--grey-600)}
.operator-booking-card>.flight-inline{margin:0 17px 16px;padding:11px 0;border-top:1px solid var(--grey-100);border-bottom:1px solid var(--grey-100)}.operator-booking-card .flight-inline-open{min-width:88px;min-height:36px;margin-left:auto;border:1px solid var(--ink);border-radius:9px;background:var(--ink);color:#fff;text-decoration:none}.operator-booking-card .flight-inline-open:hover,.operator-booking-card .flight-inline-open:focus-visible{border-color:#2f312c!important;background:#2f312c!important;color:#fff!important}.operator-booking-card .flight-inline-open:disabled{opacity:.6;cursor:wait}
.operator-booking-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;margin-top:auto;padding:12px 17px;background:var(--grey-50);font-size:.68rem;color:var(--grey-500)}.operator-booking-actions>div:first-child b{color:var(--ink)}.operator-booking-actions .btn{min-width:96px;min-height:40px}

.calendar-sync-panel{overflow:hidden;margin-bottom:22px;border:1px solid var(--grey-200);border-radius:18px;background:var(--paper)}.calendar-sync-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:20px;border-bottom:1px solid var(--grey-100)}.calendar-sync-head h2{margin-top:5px;font:800 1.1rem Manrope}.calendar-sync-head>p{max-width:540px;font-size:.75rem;line-height:1.55;color:var(--grey-500)}
.calendar-sync-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid var(--grey-100)}.calendar-sync-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--lime-soft)}.calendar-sync-icon svg{width:18px;height:18px}.calendar-sync-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.calendar-sync-title h3{font:800 .84rem Manrope}.calendar-sync-card p{margin-top:3px;font-size:.7rem;color:var(--grey-500)}.calendar-sync-card small{display:block;margin-top:4px;font-size:.62rem;color:var(--grey-400)}.calendar-sync-card>.btn{min-width:134px}.calendar-sync-note{display:flex;align-items:flex-start;gap:12px;padding:14px 20px;background:var(--grey-50);font-size:.68rem;line-height:1.5}.calendar-sync-note b{white-space:nowrap}.calendar-sync-note span{color:var(--grey-500)}

.pricing-title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pricing-benchmark-note{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.75fr);gap:34px;align-items:end;margin-bottom:18px;padding:24px;border-radius:20px;background:#11120f;color:#fff}.pricing-benchmark-note>div>span{font:800 .6rem Manrope;letter-spacing:.1em;text-transform:uppercase;color:var(--lime)}.pricing-benchmark-note h2{max-width:660px;margin-top:8px;font:800 1.4rem/1.25 Manrope;letter-spacing:-.035em}.pricing-benchmark-note p{font-size:.72rem;line-height:1.6;color:#b8bbb2}
.pricing-workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:18px;align-items:start}.pricing-workspace>div{display:grid;gap:14px}.pricing-panel{overflow:hidden;border:1px solid var(--grey-200);border-radius:18px;background:var(--paper)}.pricing-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--grey-100)}.pricing-panel-head h2{margin-top:4px;font:800 1rem Manrope}.pricing-panel-head>p{max-width:320px;font-size:.68rem;line-height:1.5;color:var(--grey-500);text-align:right}
.pricing-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px 20px}.pricing-field{display:grid;gap:6px}.pricing-field>span,.pricing-quote-fields label>span{font:750 .64rem Manrope;color:var(--grey-500)}.pricing-field>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;overflow:hidden;border:1px solid var(--grey-200);border-radius:10px;background:var(--paper)}.pricing-field input{width:100%;min-width:0;height:44px;border:0;background:transparent;padding:0 11px;color:var(--ink);font:700 .8rem Manrope;outline:0}.pricing-field>div:focus-within{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.pricing-field>div>b{padding:0 11px;border-left:1px solid var(--grey-100);font:750 .68rem Manrope;color:var(--grey-400)}.pricing-time-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px;padding:0 20px 20px}.pricing-time-row>span{padding-bottom:13px;color:var(--grey-400)}
.vehicle-multiplier-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:18px 20px}.vehicle-multiplier-grid>label{display:flex;min-width:0;min-height:122px;flex-direction:column;padding:12px;border:1px solid var(--grey-200);border-radius:12px}.vehicle-multiplier-grid>label>span{overflow:hidden;font:800 .72rem Manrope;text-overflow:ellipsis}.vehicle-multiplier-grid small{min-height:30px;margin-top:3px;font-size:.57rem;line-height:1.4;color:var(--grey-400)}.vehicle-multiplier-grid>label>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px;margin-top:auto}.vehicle-multiplier-grid b{font:800 .72rem Manrope;color:var(--grey-400)}.vehicle-multiplier-grid input{width:100%;min-width:0;height:36px;border:1px solid var(--grey-200);border-radius:8px;padding:0 7px;background:var(--grey-50);color:var(--ink);font:800 .74rem Manrope}
.pricing-publish{display:grid;grid-template-columns:20px minmax(0,1fr);gap:11px;margin:0;padding:17px 19px;border:1px solid var(--grey-200);border-radius:16px;background:var(--paper);cursor:pointer}.pricing-publish input,.pricing-check input{width:18px;height:18px;accent-color:var(--ink)}.pricing-publish b,.pricing-publish small{display:block}.pricing-publish b{font:750 .75rem/1.4 Manrope}.pricing-publish small{margin-top:3px;font-size:.65rem;line-height:1.45;color:var(--grey-500)}
.pricing-calculator{position:sticky;top:96px;overflow:hidden;border:1px solid #34362f;border-radius:20px;background:#11120f;color:#fff;box-shadow:0 20px 55px rgba(17,18,15,.16)}.pricing-calculator-head{padding:20px 20px 16px}.pricing-calculator-head .eyebrow{color:var(--lime)}.pricing-calculator-head h2{margin-top:6px;font:800 1.2rem Manrope}.pricing-calculator-head p{margin-top:5px;font-size:.68rem;line-height:1.5;color:#aeb1a8}.pricing-quote-fields{display:grid;gap:10px;padding:0 20px 18px}.pricing-quote-fields label{display:grid;gap:5px}.pricing-quote-fields label>span{color:#b9bbb3}.pricing-quote-fields select,.pricing-quote-fields input[type="time"],.pricing-quote-fields input[type="number"]{width:100%;min-width:0;height:42px;border:1px solid #474a41;border-radius:9px;background:#20221d;padding:0 10px;color:#fff;font:700 .72rem Manrope;outline:0}.pricing-quote-fields select:focus,.pricing-quote-fields input:focus{border-color:var(--lime)}.pricing-quote-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pricing-check{grid-template-columns:18px minmax(0,1fr)!important;align-items:center;gap:8px!important;min-height:30px}.pricing-check span{font-size:.63rem!important;line-height:1.4;color:#d5d7d0!important}
.pricing-quote-result{border-top:1px solid #383a34;background:#191b17}.pricing-preview-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:18px 20px}.pricing-preview-head>span{font:800 .63rem Manrope;letter-spacing:.07em;text-transform:uppercase;color:#aeb0aa}.pricing-preview-head>b{grid-row:1/3;grid-column:2;font:800 1.65rem Manrope;color:var(--lime)}.pricing-preview-head>small{font-size:.61rem;color:#878a82}.pricing-breakdown{padding:0 20px 15px}.pricing-breakdown-line{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid #30322d;font-size:.64rem}.pricing-breakdown-line span{color:#c6c8c1}.pricing-breakdown-line b{font:750 .65rem Manrope;white-space:nowrap}.pricing-breakdown-line.muted span,.pricing-breakdown-line.muted b{color:#858880}.pricing-payout{display:grid;gap:8px;padding:14px 20px;background:#23251f}.pricing-payout>div{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:.64rem;color:#aeb0a8}.pricing-payout b{font:750 .65rem Manrope}.pricing-payout strong{font:800 .94rem Manrope;color:#fff}.pricing-inclusion-note{padding:13px 20px 17px;font-size:.59rem;line-height:1.5;color:#898c84}

@media(max-width:1180px){.operator-booking-grid{grid-template-columns:1fr}.pricing-workspace{grid-template-columns:1fr}.pricing-calculator{position:static}.vehicle-multiplier-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.operator-booking-card:hover{transform:none}.operator-booking-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-booking-facts>div:nth-child(2){border-right:0}.operator-booking-facts>div:nth-child(-n+2){border-bottom:1px solid var(--grey-100)}.operator-booking-person{grid-template-columns:1fr}.operator-booking-card>.flight-inline{align-items:stretch;flex-direction:column}.operator-booking-card .flight-inline-open{width:100%;margin-left:0}.operator-booking-actions{align-items:flex-start;flex-direction:column}.operator-booking-actions .br-actions{width:100%}.operator-booking-actions .btn{flex:1}.calendar-sync-head{align-items:flex-start;flex-direction:column;gap:8px}.calendar-sync-card{grid-template-columns:42px minmax(0,1fr)}.calendar-sync-card>.btn{grid-column:1/-1;width:100%}.calendar-sync-note{flex-direction:column;gap:4px}.pricing-benchmark-note{grid-template-columns:1fr;gap:12px;padding:20px}.pricing-field-grid,.vehicle-multiplier-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pricing-panel-head{align-items:flex-start;flex-direction:column;gap:5px}.pricing-panel-head>p{text-align:left}.pricing-calculator{border-radius:18px}}
@media(max-width:440px){.operator-booking-route,.operator-booking-person{padding-left:14px;padding-right:14px}.operator-booking-facts,.operator-booking-card>.flight-inline,.operator-booking-note{margin-left:14px;margin-right:14px}.operator-booking-card-head,.operator-booking-actions{padding-left:14px;padding-right:14px}.pricing-field-grid,.vehicle-multiplier-grid{grid-template-columns:1fr}.pricing-time-row{grid-template-columns:1fr}.pricing-time-row>span{display:none}.pricing-quote-row{grid-template-columns:1fr}}

/* ---- Mobile declutter + centring (≤640px only) ---- */
@media(max-width:640px){
  .section{padding:48px 0}
  .section-head,.section-head-row>div,.page-hero{text-align:center;margin-inline:auto}
  .section-head-row{flex-direction:column;align-items:center}
  .section-head-row .btn{align-self:center}
  .hero{padding:36px 0 44px}
  .hero-copy{text-align:center}
  .hero-copy .lead{margin-inline:auto}
  .hero-trustline{justify-content:center}
  .pillars{max-width:420px;margin-inline:auto;margin-top:22px}
  .step{text-align:center}
  .step .step-num{margin-inline:auto}
  .benefit{text-align:center}
  .benefit .b-icon{margin-inline:auto}
  .partner-card{align-items:center;text-align:center}
  .auth-wrap{text-align:center}
  .auth-wrap form,.auth-wrap .login-note{text-align:left}
  .confirm-wrap{padding:40px 0 72px}
  .review-card{padding:26px 18px}
  .detail-visual svg{margin:32px 20px}
  .prose{text-align:left}
  /* fewer cards per section on the phone homepage — calm, not shouting */
  #page-home .grid-cards>:nth-child(n+5){display:none}
  #page-home .benefits-grid>:nth-child(n+4){display:none}
  /* faster perceived motion on mobile */
  .reveal{transition-duration:.45s}
  .tile:hover,.route-card:hover,.benefit:hover{transform:none;box-shadow:var(--shadow-1)}
}
/* Drawer group labels */
.drawer-label{display:block;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--grey-400);padding:18px 4px 6px}

/* ---- v2.5: curated imagery ---- */
.dest-hero{border-radius:var(--radius-l);overflow:hidden;margin-bottom:28px;aspect-ratio:16/7;background:var(--grey-100)}
.dest-hero img{width:100%;height:100%;object-fit:cover}
@media(max-width:640px){.dest-hero{aspect-ratio:16/9;border-radius:var(--radius-m)}}
/* unified photographic tone so mixed sources sit calmly in the B/W system */
.veh-img img,.dest-hero img,.gallery img{filter:saturate(.85) contrast(1.02)}
html[data-theme="dark"] .veh-img img,html[data-theme="dark"] .dest-hero img,html[data-theme="dark"] .gallery img{filter:saturate(.8) brightness(.92)}

/* ============================================================
   v2.6 — VISUAL CONSISTENCY SYSTEM
   Fixed aspect-ratio containers: cards can never jump in height
   because images differ. Photos cover; car renders contain.
   ============================================================ */
.header-right{display:flex;align-items:center;gap:8px}

/* Hamburger: unmistakably visible in both themes, both states */
.menu-btn{border:1px solid var(--grey-200);border-radius:var(--radius-s);background:var(--paper);z-index:120;flex:none}
.menu-btn span{width:18px;height:2.5px}
.menu-btn:hover{border-color:var(--ink)}
@media(max-width:1239px){.menu-btn{display:flex !important}}

/* ---- Card image ratio standard ---- */
.t-visual,.tile .t-visual,.tile .t-visual img{min-height:0}
.t-visual{aspect-ratio:16/10}
.t-visual .ph-visual,.t-visual .veh-img{min-height:0;height:100%}
.oc-visual{aspect-ratio:4/3;min-height:0}
.oc-visual .veh-img{min-height:0}
.vc-visual{aspect-ratio:4/3}
.detail-visual{aspect-ratio:16/10;min-height:0}
.veh-img{background:var(--grey-100)}          /* loading placeholder */
.veh-render{display:flex;align-items:center;justify-content:center;padding:10%}
.veh-render svg{width:100%;height:auto;max-width:240px}
.oc-visual .veh-render svg{max-width:200px}
.ph-visual{min-height:0}

/* ---- Property gallery carousel (multiple images per listing) ---- */
.pgal{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:var(--radius-l);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pgal::-webkit-scrollbar{display:none}
.pgal-slide{position:relative;flex:0 0 100%;scroll-snap-align:center;aspect-ratio:16/10;border-radius:var(--radius-m);overflow:hidden;background:var(--grey-100)}
.pgal-slide img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.02)}
.pgal-slide .ph-visual{height:100%}
.pgal-cat{position:absolute;bottom:10px;left:10px;font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--paper);color:var(--ink);padding:5px 11px;border-radius:100px;box-shadow:var(--shadow-1)}
@media(min-width:768px){.pgal-slide{flex:0 0 calc(50% - 5px)}}

/* ---- Owner "My Properties" cards (fixes vertical letter-break) ---- */
.br-route{overflow-wrap:break-word}           /* names wrap by word, never per letter */
.br-meta{overflow-wrap:anywhere}              /* IDs/emails may break anywhere */
.prop-card{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px 14px;padding:14px 16px;border-bottom:1px solid var(--grey-100);align-items:start}
.prop-card:last-child{border-bottom:none}
.prop-thumb{aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--grey-100)}
.prop-thumb img{width:100%;height:100%;object-fit:cover}
.prop-thumb .ph-visual{height:100%}.prop-thumb .ph-glyph{width:34px;height:34px;font-size:.95rem;border-radius:9px}
.prop-name{font-weight:600;font-size:.95rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word}
.prop-sub{font-size:.79rem;color:var(--grey-500);margin-top:3px}
.prop-actions{grid-column:1 / -1;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
@media(min-width:640px){.prop-actions{grid-column:2}}

/* ---- Portal mobile repair: rows become stacked cards ---- */
@media(max-width:640px){
  .dash-head{flex-direction:column;align-items:flex-start}
  .dash-head h1{font-size:1.25rem}
  .booking-row{grid-template-columns:1fr;gap:10px}
  .booking-row .br-actions,.booking-row .status-pill,.booking-row .switch{justify-self:start}
  .br-actions{justify-content:flex-start}
  .veh-row{grid-template-columns:64px minmax(0,1fr)}
  .veh-row>div:last-child{grid-column:1 / -1;display:flex;justify-content:flex-start}
  .vehicle-offer-grid{grid-template-columns:1fr}
  .vehicle-row-actions{justify-content:flex-start}
  .vehicle-service-editor{padding:16px}
  .dash-main{padding:22px 14px 56px}
  .dash-panel-head{padding:14px 16px}
  .booking-row{padding:13px 16px}
  .flight-inline{align-items:flex-start}
  .flight-watch{padding:18px 14px;border-radius:18px}
  .flight-watch-head{align-items:flex-start;flex-direction:column}
  .flight-watch-tools{width:100%;justify-content:space-between}
  .flight-watch-grid{grid-template-columns:1fr}
  .flight-watch-card{min-height:0}
  .flight-times{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  .flight-times>div:nth-of-type(3){grid-column:1 / -1;padding-top:6px}
  .kpi{padding:14px}
  .kpi .k-value{font-size:1.3rem}
  .msg-thread{padding:14px}
  .amen-grid{grid-template-columns:1fr 1fr}
  .check-list li{flex-wrap:wrap}
  .prov-row{grid-template-columns:44px minmax(0,1fr)}
  .prov-row>div:last-child{grid-column:1 / -1}
}
.prov-row{grid-template-columns:52px minmax(0,1fr) auto}
@media(max-width:480px){.field-row3{grid-template-columns:1fr}}


/* ============================================================
   v2.7 — MOBILE NAVIGATION REPAIR
   Root cause of the invisible hamburger: `.nav-desktop{display:none}`
   (line ~99) was overridden by LATER same-specificity rules on
   co-classed elements (`.lang-switch{display:flex}`), so the header
   language selector stayed visible on mobile, overflowed the header
   row and pushed the hamburger past the clipped right edge.
   Fix: cascade-proof hiding + a logo-and-hamburger-only mobile header.
   Desktop (≥1000px) untouched.
   ============================================================ */
@media(max-width:1239px){
  .nav-desktop{display:none !important}      /* immune to later co-class rules */
  #headerActionsMount{display:none}          /* theme/lang/account live in the menu */
  .menu-btn{display:flex !important}
}
.header{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}

/* drawer: language grid (8 languages, active highlighted, wrap-safe) */
.lang-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 4px}
.lang-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid var(--grey-200);border-radius:var(--radius-s);padding:10px 14px;min-height:52px;background:var(--paper);text-align:left;transition:border-color .2s}
.lang-chip b{font-size:.92rem;font-weight:600;letter-spacing:-0.01em;overflow-wrap:break-word;min-width:0}
.lang-chip .lc-code{font-size:.66rem;font-weight:700;letter-spacing:.1em;color:var(--grey-400)}
.lang-chip:hover{border-color:var(--ink)}
.lang-chip.active{background:var(--ink);border-color:var(--ink)}
.lang-chip.active b{color:var(--paper)}
.lang-chip.active .lc-code{color:var(--paper);opacity:.55}

/* drawer: theme segmented control */
.theme-seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 4px}
.theme-seg button{border:1px solid var(--grey-200);border-radius:var(--radius-s);padding:12px 6px;font-size:.88rem;font-weight:600;min-height:48px;background:var(--paper);transition:border-color .2s}
.theme-seg button:hover{border-color:var(--ink)}
.theme-seg button.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* drawer: buttons styled like drawer links (logout) */
.drawer .drawer-btn{display:block;width:100%;text-align:left;padding:15px 4px;font-size:1.1rem;font-weight:600;letter-spacing:-0.02em;border-bottom:1px solid var(--grey-100)}

/* drawer: active page state */
.drawer a.active{color:var(--ink);padding-left:12px;border-left:2px solid var(--ink)}

/* footer: mobile language selector */
.f-lang{margin:26px 0 4px;max-width:340px}
.f-lang .drawer-label{padding-left:0}
@media(min-width:900px){.f-lang{display:none}}


/* ============================================================
   v2.9 — FOOTER REDESIGN + BUTTON CONSISTENCY + REVIEWS UI
   ============================================================ */
/* footer: centred logo, columns below, reduced height */
.f-logo{text-align:center;padding:0 0 8px}
.f-logo .logo{font-size:1.3rem;justify-content:center}
.f-logo p{margin-top:6px}
footer.footer{padding:34px 0 18px}
.footer-cols{margin-bottom:10px}
@media(min-width:900px){
  .footer-cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px;text-align:left}
  .footer-cols .f-group-head{pointer-events:none;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grey-400);padding:0 0 8px}
  .footer-cols .f-group-body{max-height:none !important;display:block}
  .footer-cols .f-group-body a{padding:5px 0;font-size:.85rem}
  .footer-bottom{margin-top:18px;padding-top:16px}
}

/* button consistency: same-height groups, clean mobile stacking */
.btn{min-height:48px}
.btn-mini{min-height:38px;padding:8px 16px;display:inline-flex;align-items:center;justify-content:center}
.cta-row,.hero-ctas{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
.cta-row .btn,.hero-ctas .btn{display:inline-flex;align-items:center;justify-content:center}
@media(max-width:640px){
  .hero-ctas .btn,.cta-row .btn{flex:1 1 100%}
  .modal-actions .btn{flex:1 1 auto}
}
.modal-actions{display:flex;gap:10px;flex-wrap:wrap}
.modal-actions .btn{flex:1;min-width:0}
.rst-actions a{min-height:40px;display:inline-flex;align-items:center}

/* restaurant: family badge + good-to-know */
.gk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin-top:10px}
.gk-item{display:flex;align-items:center;gap:7px;font-size:.8rem;color:var(--grey-600)}
.gk-item svg{width:13px;height:13px;color:var(--ink);flex:none}
.badge-family{background:var(--ink);color:var(--paper)}

/* reviews */
.rating-line{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600}
.rating-line svg{width:14px;height:14px}
.rating-line .rl-count{color:var(--grey-500);font-weight:500;font-size:.8rem}
.rvw-card{border:1px solid var(--grey-100);border-radius:var(--radius-m);padding:16px;margin-top:10px;text-align:left}
.rvw-card .rc-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.rvw-card .rc-badge{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--grey-100);padding:4px 10px;border-radius:100px}
.rvw-card .rc-resp{margin-top:10px;padding:10px 12px;background:var(--grey-50);border-radius:10px;font-size:.85rem;text-align:left}
.star-input{display:flex;gap:4px}
.star-input button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--grey-300)}
.star-input button.on{color:var(--ink)}
.star-input svg{width:20px;height:20px}
.rev-cats{display:grid;gap:8px;margin:12px 0}
.rev-cat-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;font-size:.85rem}

/* hotel room types */
.room-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:13px 0;border-bottom:1px solid var(--grey-100);align-items:center}
.room-row:last-child{border-bottom:none}
.room-meta{font-size:.8rem;color:var(--grey-500);margin-top:3px}
.hstars{color:var(--ink);letter-spacing:2px;font-size:.8rem}


/* ============================================================
   v3.0 — GOD MODE REPAIR PASS
   ============================================================ */
/* chips: 'on' state parity with 'active' (restaurant + admin filters) */
.filter-chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* restaurant contact actions: wrap into a tidy 2-col grid — nothing clipped */
.rst-actions{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rst-actions a{min-height:44px;justify-content:flex-start;overflow-wrap:anywhere}
@media(min-width:700px){.rst-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* date/select pairs stack on the narrowest phones (booking funnel) */
@media(max-width:380px){
  .field-row{grid-template-columns:1fr}
  .rev-cat-row{grid-template-columns:1fr;gap:4px}
}

/* horizontal-scroll affordance: edge fade on hidden-scrollbar navs */
@media(max-width:960px){
  .acct-nav,.dash-side{-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent)}
}

/* sticky CTA clearance incl. notch safe-area */
body.has-sticky main{padding-bottom:calc(110px + env(safe-area-inset-bottom))}

/* thumb targets: 44px interactive floor on touch widths */
@media(max-width:640px){
  .field input,.field select,.field textarea,.drawer select,.open-controls select,.open-controls input{font-size:16px}
  .btn-mini,.filter-chip,.seg-mini button,.chip-select{min-height:44px}
  .quick-replies button{min-height:40px}
  .p-x{width:40px;height:40px}
  .p-cover{min-height:32px;display:inline-flex;align-items:center}
  .star-input button{width:44px;height:44px}
  .rev-dot{width:40px;height:40px}
  .status-pill{white-space:normal}
  .cal-grid{padding:8px;gap:2px}
}

/* message composer aligns with its button */
.msg-input input,.msg-input textarea{min-height:48px}

/* dark mode: gallery images join the dimming rule; visible focus/error rings */
html[data-theme="dark"] .pgal-slide img{filter:saturate(.8) brightness(.9)}
html[data-theme="dark"] .field .control input:focus,html[data-theme="dark"] .field .control select:focus,html[data-theme="dark"] .field .control textarea:focus{box-shadow:0 0 0 3px rgba(241,241,241,.14)}
html[data-theme="dark"] .field.invalid .control input,html[data-theme="dark"] .field.invalid .control select{box-shadow:0 0 0 3px rgba(255,107,97,.18)}

/* placeholder labels: readable contrast */
.ph-visual .ph-label{color:var(--grey-600)}

/* every modal gets a visible close control */
.modal{position:relative}
.modal-x{position:absolute;top:10px;right:10px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--grey-500);z-index:5}
.modal-x:hover{background:var(--grey-100);color:var(--ink)}


/* ============================================================
   v3.1 — GOD MODE 2 (known-issue fixes)
   ============================================================ */
/* Issue 1 — restaurant suggestion cards: room to breathe.
   Inside the narrow detail column they go single-column full width;
   on wide destination pages max 2-up. CTA row = 3 equal buttons. */
.rc-suggest-grid{grid-template-columns:1fr !important}
@media(min-width:960px){
  .detail-layout .rc-suggest-grid{grid-template-columns:1fr !important}
  .container > * > .rc-suggest-grid,.page-hero ~ * .rc-suggest-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
#destRst .rc-suggest-grid{grid-template-columns:1fr}
@media(min-width:760px){#destRst .rc-suggest-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media(min-width:1100px){#destRst .rc-suggest-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important}}
.rc-suggest .t-visual{aspect-ratio:16/9}
.rc-cta-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.rc-cta-row .btn{width:100%;padding-left:8px;padding-right:8px}
@media(max-width:380px){.rc-cta-row{grid-template-columns:1fr 1fr}.rc-cta-row .btn:first-child{grid-column:1 / -1}}

/* Issue 2 — no button text may ever clip: labels wrap on touch widths;
   upsell rows stack with a full-width CTA on mobile */
@media(max-width:640px){
  .btn{white-space:normal;line-height:1.3;height:auto}
  .upsell{flex-direction:column;align-items:stretch;text-align:left}
  .upsell .btn{width:100%}
}

/* Issue 4 — provider respond composer: proper field, never clipped */
.resp-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.resp-row input{flex:1 1 220px;min-width:0;border:1px solid var(--grey-200);border-radius:var(--radius-s);padding:11px 14px;font-size:.88rem;min-height:44px;background:var(--paper);color:var(--ink)}
.resp-row input::placeholder{font-size:.85rem;color:var(--grey-400)}
.resp-row .btn{flex:0 0 auto}

/* Issue 6 — dates never split mid-token or clip */
.nowrap-date{white-space:nowrap}
@media(max-width:430px){.field-row:has(input[type="date"]){grid-template-columns:1fr}}

/* Issue 5 — profile contact person cards */
.cp-card{border:1px solid var(--grey-100);border-radius:var(--radius-m);padding:14px 16px;margin-bottom:10px;display:grid;gap:4px}
.cp-card b{font-size:.93rem}
.cp-meta{font-size:.8rem;color:var(--grey-500);overflow-wrap:anywhere}
.cp-actions{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}


/* ============================================================
   v3.2 — SCREENSHOT FIX PASS
   ============================================================ */
/* Issue 7 — no layout shift when tab/selection changes content height
   (scrollbar appearing/disappearing resized everything) */
html{scrollbar-gutter:stable}

/* Issue 2 — compact, refined mobile menu */
.lang-grid{gap:6px;margin:8px 0 2px}
.lang-chip{flex-direction:row;align-items:center;gap:8px;padding:0 12px;min-height:42px}
.lang-chip b{font-size:.86rem;font-weight:600}
.lang-chip .lc-code{font-size:.6rem}
.theme-seg{gap:6px;margin:8px 0 2px}
.theme-seg button{min-height:40px;padding:8px 6px;font-size:.82rem}
.drawer-label{padding:14px 4px 5px;font-size:.64rem}
.drawer a{padding:12px 4px;font-size:1.02rem}
.drawer .drawer-sub{padding-top:10px;padding-bottom:10px;font-size:.9rem}
.drawer-cta{margin-top:16px}
.drawer-cta .btn{min-height:50px}
.drawer{padding-bottom:calc(28px + env(safe-area-inset-bottom))}

/* Issue 3 — curated trips: filters behind a toggle on mobile */
.trip-filter-toggle{display:none}
@media(max-width:640px){
  .trip-filter-toggle{display:inline-flex;margin-bottom:12px;width:100%}
  .trip-filters{display:none}
  .trip-filters.open{display:block}
  .trip-filters .filters{gap:6px}
  .trip-filters .chip-select{font-size:.8rem;padding:8px 12px;min-height:40px}
}

/* Issue 4 — restaurant card CTA rows: equal, balanced, centred */
.rc-cta-row .btn{min-height:44px;padding:8px 6px;text-align:center;white-space:normal;line-height:1.2}
.t-body .btn-mini{align-self:center}

/* Issue 6 — transfer trip-type tabs: equal height whether labels wrap or not */
@media(max-width:640px){
  .seg{align-items:stretch}
  .seg button{min-height:54px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2;white-space:normal}
}

/* Issue 5 — tighter bottom rhythm on list pages */
@media(max-width:640px){
  #pkgResults{padding-bottom:40px !important}
  .container [id$="Results"]{padding-bottom:40px}
}

/* ============================================================
   SHUTTLEME.PT — PREMIUM REDESIGN v3.3
   A warmer, editorial travel identity layered over the existing
   product architecture. All legacy flows remain component-compatible.
   ============================================================ */
:root{
  --ink:#141411;--ink-soft:#24241f;--paper:#f7f5ef;
  --grey-50:#efede6;--grey-100:#e8e5dc;--grey-200:#dcd8cd;--grey-300:#c9c4b8;
  --grey-400:#969187;--grey-500:#68645d;--grey-600:#57544e;
  --lime:#bafd56;--lime-soft:#e6ffc0;--blue-soft:#dcecf3;
  --band-bg:#141411;--band-fg:#fff;--band-muted:rgba(255,255,255,.66);
  --header-glass:rgba(247,245,239,.88);
  --radius-s:12px;--radius-m:20px;--radius-l:28px;
  --shadow-1:0 2px 8px rgba(20,20,17,.05),0 8px 24px rgba(20,20,17,.04);
  --shadow-2:0 8px 30px rgba(20,20,17,.08),0 24px 60px rgba(20,20,17,.06);
  --shadow-3:0 18px 70px rgba(20,20,17,.16);
  --header-h:76px;--container:1240px;
}
html[data-theme="dark"]{
  --ink:#f5f3ed;--ink-soft:#dcdad4;--paper:#11120f;
  --grey-50:#191a16;--grey-100:#22231e;--grey-200:#30312b;--grey-300:#45463e;
  --grey-400:#85867e;--grey-500:#aaa9a1;--grey-600:#cbc9c2;
  --header-glass:rgba(17,18,15,.86);--lime:#bafd56;--lime-soft:#28351a;
  --band-bg:#20211c;
}
body{font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:-.01em}
h1,h2,h3,h4,.logo,.btn,.display,.h2,.h3{font-family:'Manrope',sans-serif}
.display{font-size:clamp(2.8rem,6.6vw,5.9rem);letter-spacing:-.065em;line-height:.96;font-weight:700}
.h2{font-size:clamp(2rem,4vw,3.7rem);line-height:1.02;letter-spacing:-.055em}
.h3{letter-spacing:-.035em}.eyebrow{letter-spacing:.17em;font-weight:700;color:var(--grey-500)}
.container{padding-inline:20px}.section{padding:84px 0}
@media(min-width:768px){.container{padding-inline:36px}.section{padding:128px 0}}

/* Header */
.header{border-bottom:1px solid transparent}.header.scrolled{border-bottom-color:color-mix(in srgb,var(--grey-200) 75%,transparent)}
.logo{font-size:1.25rem;align-items:center;gap:0;letter-spacing:-.055em}
.logo:before{content:'↗';display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--ink);color:var(--paper);font-size:18px;line-height:1}
.logo:before{margin-right:9px}
.logo .tld{font-size:.72em;color:var(--grey-500);margin-left:1px}
.nav-desktop{gap:8px}.nav-link{padding:10px 14px;border-radius:999px;font-weight:600}
.nav-link:hover,.nav-link.active{background:var(--grey-100)}
.btn{border-radius:999px;padding:14px 24px;font-weight:700}.btn-lg{padding:17px 30px}
.btn-primary{background:var(--ink)}.btn-primary:hover{background:var(--ink-soft)}
.header-actions>.btn-primary{background:var(--ink);color:var(--paper)}
.lang-switch select{border-radius:999px;background-color:transparent;padding-inline-end:32px}
.theme-toggle{border-radius:999px!important}

/* Flagship hero */
.hero{padding:20px 0 68px}.hero>.container{max-width:calc(var(--container) + 40px)}
.hero-grid{position:relative;overflow:hidden;background:#11120f;color:#fff;border-radius:34px;padding:64px 6%;min-height:690px;gap:48px;isolation:isolate}
.hero-grid:before{content:'';position:absolute;z-index:-1;width:660px;height:660px;border:105px solid #252620;border-radius:50%;right:-180px;top:-170px;animation:heroOrbit 16s ease-in-out infinite alternate}
.hero-grid:after{content:'';position:absolute;z-index:-1;width:310px;height:310px;border-radius:50%;right:16%;bottom:-160px;background:var(--lime);filter:blur(1px);opacity:.88}
@keyframes heroOrbit{to{transform:translate(-28px,35px) scale(1.04)}}
.hero-copy{position:relative;z-index:2;align-self:center}.hero-copy .eyebrow{color:#d3d1c8;display:flex;align-items:center;gap:9px}
.hero-copy .eyebrow:before{content:'';width:8px;height:8px;border-radius:50%;background:var(--lime)}
.hero-copy .display{margin:24px 0 26px;max-width:690px;color:#fff}
.hero-copy .lead{max-width:590px;color:#bdbdb6;font-size:clamp(1.05rem,1.7vw,1.25rem)}
.hero-trustline{gap:12px 24px;margin-top:30px}.hero .trust-item{color:#deddd6;font-size:.82rem}.hero .trust-item svg{color:var(--lime)}
.pillars{margin-top:36px;gap:10px}.pillar{border-color:#ffffff1f;background:#ffffff0b;color:#fff;border-radius:16px;backdrop-filter:blur(10px);padding:16px 14px}
.pillar:hover{background:#ffffff14;border-color:#ffffff42}.pillar span{color:#9f9f98;line-height:1.35;display:block;margin-top:3px}.pillar svg{color:var(--lime)}
.hero #searchFormMount{position:relative;z-index:3;align-self:center}
.hero .card-form{border:0;border-radius:26px;background:#fbfaf6;color:#151512;box-shadow:0 30px 90px #0007;padding:28px}
.hero .card-form .bc-title{font-family:Manrope;font-size:1.15rem}
.hero .field .control{border-color:#dbd7cd;background:#fff;border-radius:13px}.hero .field label{color:#6e6a62}
.hero .seg{background:#ece9e1;border-radius:13px}.hero .seg button.active{background:#fff;color:#151512}
.hero .card-form .btn-primary{background:var(--lime)!important;color:#151512!important;min-height:56px}.hero .card-form .btn-primary:hover{background:#c7ff70!important;box-shadow:0 12px 28px #84b83440}.header-actions>.header-price{background:#11120f!important;color:#fff!important}
.hero .bc-note{color:#77736b}

/* Cards and editorial sections */
.grid-cards{gap:18px}.route-card,.tile,.benefit,.partner-card,.panel,.card{border-radius:22px;border-color:var(--grey-200);box-shadow:none;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .2s}
.route-card{padding:22px 24px;background:var(--paper)}.route-card:hover,.tile:hover,.partner-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-2);border-color:var(--grey-300)}
.route-card .rc-price .amount{font-family:Manrope;font-weight:800}.route-card .rc-route svg{color:var(--grey-400)}
.tile{overflow:hidden;background:color-mix(in srgb,var(--paper) 92%,white)}.t-visual{min-height:245px}.t-body{padding:22px}.t-body h3{font-family:Manrope;font-size:1.15rem;letter-spacing:-.035em}
.t-badge,.verified-badge{border-radius:999px;background:var(--lime-soft);color:#21310b;border-color:transparent;font-weight:700}
html[data-theme="dark"] .t-badge,html[data-theme="dark"] .verified-badge{color:#cfff86}
.section[style*="background:var(--grey-50)"]{background:var(--grey-50)!important}
.section-head-row{margin-bottom:42px}.section-head{margin-bottom:44px;max-width:720px}
.steps-grid{gap:12px}.step{border-top:1px solid var(--ink);padding:24px 8px 12px}.step-num{background:var(--ink);color:var(--paper);border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-family:Manrope}
.benefits-grid{gap:14px}.benefit{padding:28px;background:color-mix(in srgb,var(--paper) 88%,white)}.benefit .b-icon{border-radius:14px;background:var(--lime-soft)}
.reviews-section{background:#141411!important;color:#fff}.reviews-section .eyebrow{color:#99998f}.reviews-section .review-card{background:#22231e;border-color:#34352f;border-radius:26px}.reviews-section .review-quote{color:#f5f3ed;font-family:Manrope;letter-spacing:-.025em}
.reviews-section .review-meta{color:#aaa99f}.reviews-section .rev-btn{border-color:#ffffff30}.reviews-section .rev-dot{background:#ffffff35}.reviews-section .rev-dot.active{background:var(--lime)}
.partner-band{gap:16px}.partner-card{padding:34px;background:var(--blue-soft);color:#172127;border:0}.partner-card:nth-child(2){background:var(--lime-soft);color:#1c2610}
.partner-card p{color:inherit;opacity:.72}.partner-card .btn{background:#fff;color:#141411;border:0}
.cta-band{border-radius:30px;padding:64px;background:#141411;position:relative;overflow:hidden}.cta-band:after{content:'';position:absolute;width:260px;height:260px;border:60px solid #2b2c25;border-radius:50%;right:-40px;top:-90px}.cta-band>*{position:relative;z-index:1}.cta-band .btn{background:var(--lime);color:#141411}

/* Internal pages and booking funnels */
.page-hero{padding-top:62px}.page-hero .display{max-width:850px}.filters,.filter-bar{border-radius:20px}
.detail-layout,.booking-grid,.results-layout{gap:28px}.detail-card,.summary-card,.result-card,.vehicle-card{border-radius:22px}
.sticky-cta{background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(16px)}
.footer{background:#e9e6dd;color:#141411;padding-top:86px}.footer .logo:before{background:#141411;color:#f7f5ef}.footer a{transition:opacity .2s}.footer a:hover{opacity:.55}
html[data-theme="dark"] .footer{background:#090a08;color:#f5f3ed}

/* Mobile: one-hand friendly, visual impact retained */
@media(max-width:1019px){
  .hero-grid{padding:52px 34px;min-height:0}.hero-grid:before{right:-360px}.hero-grid:after{display:none}
  .hero-copy{text-align:left}.hero-copy .lead{margin-inline:0}.hero-trustline{justify-content:flex-start}
}
@media(max-width:640px){
  :root{--header-h:68px}.container{padding-inline:14px}.section{padding:78px 0}
  .header-inner{padding-inline:14px}.header-actions .lang-switch,.header-actions .theme-toggle,.header-actions .btn-ghost{display:none}
  .logo{font-size:1.08rem}.logo:before{width:32px;height:32px;border-radius:10px}.menu-btn{border-radius:50%}
  .hero{padding:8px 0 54px}.hero>.container{width:calc(100% - 28px);margin-inline:14px;padding-inline:22px}.hero-grid{border-radius:24px;padding-block:46px 26px;gap:30px}.hero-grid:before{width:390px;height:390px;border-width:65px;right:-220px;top:-95px}
  .hero-copy,.hero #searchFormMount{min-width:0;max-width:100%}
  .hero-copy .display{font-size:clamp(2.65rem,13vw,4rem);margin:18px 0 20px}.hero-copy .lead{font-size:1rem}.hero-trustline{gap:10px 15px;margin-top:24px}
  .pillars{display:flex;overflow-x:auto;max-width:100%;margin-inline:-2px;padding:2px 2px 8px}.pillar{min-width:220px}
  .hero .card-form{padding:20px;border-radius:20px;box-shadow:0 20px 55px #0008}.hero .seg button{min-height:48px}.hero .btn-primary{min-height:54px}
  .section-head,.section-head-row>div,.page-hero{text-align:left;margin-inline:0}.section-head-row{align-items:flex-start}.section-head-row .btn{align-self:flex-start}
  .h2{font-size:2.25rem}.grid-cards{gap:12px}.route-card{padding:19px}.t-visual{min-height:230px}
  .benefit{padding:23px}.cta-band{padding:42px 24px;border-radius:24px}.cta-band:after{opacity:.65}
  .footer{text-align:left}.drawer{border-radius:0;padding-inline:24px}.drawer a{font-family:Manrope;font-size:1.05rem}
}
@media(prefers-reduced-motion:reduce){.hero-grid:before{animation:none}}

/* v3.4 production polish: every pill and compact action shares one rhythm */
.chip-select,.filter-chip,.cat-tag,.suit-tag{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1.15;text-align:center;vertical-align:middle}
.chip-select,.filter-chip{min-height:44px;padding:10px 16px}.cat-tag,.suit-tag{min-height:28px;padding:6px 10px}
.trip-filters .chip-select{height:44px;min-width:72px}.t-foot .btn-mini,.rc-cta-row .btn-mini,.open-actions .btn-mini{min-height:44px;min-width:112px;padding:10px 16px}
.tile>.t-body{height:100%;display:flex;flex-direction:column}.tile .t-foot,.tile .rc-cta-row,.tile .open-actions{margin-top:auto}
.grid-cards>.tile{height:100%}

/* Open restaurant directory — broad OSM discovery, visually distinct from verified partners */
.open-directory{margin-top:86px;padding-top:72px;border-top:1px solid var(--grey-200)}
.open-directory>.h2{margin:12px 0}.open-directory>.lead{max-width:720px}
.open-controls{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(260px,1.3fr);gap:14px;margin:30px 0 14px}
.open-controls .field{margin:0}.open-controls .field>span{display:block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--grey-500);margin-bottom:7px}
.open-controls select,.open-controls input{width:100%;height:52px;padding:0 16px;border:1px solid var(--grey-200);background:var(--paper);border-radius:14px;outline:0}
.open-controls select:focus,.open-controls input:focus{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 8%,transparent)}
.open-attribution{font-size:.78rem;color:var(--grey-500);margin:12px 0 28px}.open-attribution a{text-decoration:underline}
.open-count{font-family:Manrope;font-weight:700;margin-bottom:16px}.open-r-card .t-visual{min-height:170px;background:var(--blue-soft)}
.open-r-card .open-source{background:#fff;color:#141411}.open-fact{margin-top:7px}.open-r-card .cat-tags{margin-top:12px}
.open-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:20px}.open-more{display:flex;margin:28px auto 0}
@media(max-width:640px){.trip-filters .chip-select{height:44px!important;min-height:44px!important}.open-directory{margin-top:64px;padding-top:54px}.open-controls{grid-template-columns:1fr}.open-r-card .t-visual{min-height:155px}.open-actions .btn{flex:1 1 calc(50% - 4px)}}

/* v3.5 Taste Portugal + restaurant directory refinement */
.directory-tabs{display:inline-grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;background:var(--grey-100);border-radius:999px;margin:24px 0;max-width:100%}
.directory-tabs button{min-height:46px;padding:10px 22px;border-radius:999px;font-family:Manrope;font-weight:700;font-size:.86rem;color:var(--grey-500);white-space:nowrap}
.directory-tabs button.on{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-1)}
.directory-panel{display:none}.directory-panel.on{display:block}.directory-panel.open-directory{margin-top:0;padding-top:12px;border-top:0}
.taste-restaurant-hub{padding:38px;border:1px solid var(--grey-200);border-radius:28px;background:color-mix(in srgb,var(--paper) 90%,white)}
.taste-restaurant-hub>.open-controls{margin-top:8px}.taste-r-grid{align-items:stretch}
@media(min-width:1180px){.taste-r-grid{grid-template-columns:repeat(4,1fr)}}
.open-r-card .t-visual{min-height:150px}.open-r-card .t-body{padding:16px}.open-r-card .t-body h3{font-size:1.02rem}
.open-summary{font-size:.79rem;line-height:1.45;color:var(--grey-600);margin-top:4px}
.open-image-note{position:absolute;left:10px;bottom:10px;padding:5px 8px;background:rgba(15,15,13,.76);color:#fff;border-radius:999px;font-size:.6rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;backdrop-filter:blur(8px)}
.open-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;min-height:95px;align-content:end}.open-actions .btn{width:100%;min-width:0!important;padding-inline:8px!important;font-size:.72rem}
#page-restaurants .grid-cards>.tile .t-visual{min-height:190px}#page-restaurants .grid-cards>.tile .t-body{padding:18px}
.rst-actions{min-height:96px;align-content:start;margin-top:12px!important}.rst-actions a{justify-content:center!important;text-align:center}
.restaurant-primary-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto;padding-top:12px}.restaurant-primary-row>*{width:100%;height:44px;min-height:44px!important;margin:0!important;align-self:stretch!important}
.restaurant-primary-row .save-chip{justify-content:center}
@media(max-width:640px){
  .directory-tabs{display:grid;width:100%;border-radius:18px}.directory-tabs button{white-space:normal;line-height:1.2;padding-inline:12px;border-radius:14px}
  .taste-restaurant-hub{padding:26px 18px;border-radius:22px;margin-inline:-2px}.taste-r-grid{grid-template-columns:1fr}
  .rst-actions{min-height:148px}.open-actions{min-height:95px}
}

/* Transfer edition breakpoint authority: standard laptops use the desktop header. */
@media(min-width:960px){.header .nav-desktop{display:flex!important}.header .menu-btn{display:none!important}.header .header-actions{display:flex!important}}
@media(max-width:959px){.header-utility{display:none!important}.header-inner{height:68px}.drawer{inset:68px 0 0}.header .nav-desktop{display:none!important}.header .menu-btn{display:flex!important}.header .header-actions{display:none!important}}

/* v1.4 motion system — purposeful, restrained and reduced-motion safe */
@keyframes sm-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes sm-scale-in{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes sm-soft-pulse{0%,100%{box-shadow:0 0 0 0 rgba(169,239,88,0)}50%{box-shadow:0 0 0 7px rgba(169,239,88,.12)}}
@keyframes sm-tour-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.page.active .hero-copy>.eyebrow{animation:sm-rise .45s var(--ease) both}.page.active .hero-copy>.display{animation:sm-rise .55s .06s var(--ease) both}.page.active .hero-copy>.lead{animation:sm-rise .55s .12s var(--ease) both}.page.active .hero-trustline{animation:sm-rise .55s .18s var(--ease) both}.page.active #searchFormMount{animation:sm-scale-in .65s .08s var(--ease) both}.route-card,.fleet-card,.option-card{transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s var(--ease)}.route-card:hover,.fleet-card:hover,.option-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}.btn svg{transition:transform .22s var(--ease)}.btn:hover svg#never,.btn:hover>.icon-16{transform:translateX(3px)}.header-price{animation:sm-soft-pulse 3.4s ease-in-out 1.2s 2}.dash-main>*{animation:sm-rise .32s var(--ease) both}.kpi:nth-child(2){animation-delay:.04s}.kpi:nth-child(3){animation-delay:.08s}.kpi:nth-child(4){animation-delay:.12s}
.guided-help-launch{border:1px solid var(--grey-200)!important;color:var(--ink)!important}.guided-help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:22px}.guided-help-card{display:grid;gap:7px;text-align:left;padding:20px;border:1px solid var(--grey-200);border-radius:var(--radius-m);background:var(--paper);transition:transform .2s var(--ease),border-color .2s}.guided-help-card:hover{transform:translateY(-3px);border-color:var(--ink)}.guided-help-card>span{font:600 .68rem JetBrains Mono;color:var(--grey-400)}.guided-help-card>b{font:700 .95rem Manrope}.guided-help-card>small{color:var(--grey-500);line-height:1.5}.guided-checklist .check-list{padding:8px 20px 20px}.guided-checklist label{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--grey-100);font-size:.86rem}.guided-checklist input{width:18px;height:18px;accent-color:var(--ink)}
.op-tour{position:fixed;inset:0;z-index:1000;display:grid;place-items:end;padding:24px;pointer-events:none}.op-tour-scrim{position:absolute;inset:0;background:rgba(15,15,13,.52);backdrop-filter:blur(2px);pointer-events:auto}.op-tour-card{position:relative;width:min(430px,calc(100vw - 32px));padding:24px;border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 28px 80px rgba(0,0,0,.28);pointer-events:auto;animation:sm-tour-in .35s var(--ease) both}.op-tour-top{display:flex;align-items:center;justify-content:space-between;font:700 .67rem JetBrains Mono;letter-spacing:.08em;text-transform:uppercase;color:var(--grey-500)}.op-tour-top button{width:36px;height:36px;border-radius:50%;font-size:1.5rem}.op-tour-progress{height:3px;margin:12px 0 20px;background:var(--grey-100);border-radius:9px;overflow:hidden}.op-tour-progress i{display:block;height:100%;background:var(--ink);transition:width .25s}.op-tour-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:var(--grey-100)}.op-tour-icon svg{width:21px;height:21px}.op-tour-card h2{font:800 1.45rem Manrope;margin:16px 0 8px}.op-tour-card p{color:var(--grey-600);line-height:1.6}.op-tour-actions{display:flex;justify-content:space-between;gap:10px;margin-top:22px}.tour-focus{position:relative;z-index:1001!important;background:var(--paper)!important;color:var(--ink)!important;box-shadow:0 0 0 4px #a9ef58,0 12px 34px rgba(0,0,0,.2)!important}.tour-focus svg{color:var(--ink)!important}
@media(max-width:640px){.guided-help-grid{grid-template-columns:1fr}.op-tour{place-items:end center;padding:12px}.op-tour-card{border-radius:20px}.op-tour-actions .btn{flex:1}}
@media(prefers-reduced-motion:reduce){.header-price{animation:none!important}.route-card:hover,.fleet-card:hover,.option-card:hover,.guided-help-card:hover{transform:none}}

/* Deployment fallback: essential information remains usable if JavaScript is blocked. */
.noscript-card{max-width:760px;margin:40px auto;padding:28px;border:1px solid #deded8;border-radius:20px;background:#fff;color:#171714;font:16px/1.6 'DM Sans',sans-serif}.noscript-card h1{margin-bottom:12px;font:800 clamp(1.8rem,5vw,3rem)/1.05 Manrope,sans-serif;letter-spacing:-.045em}.noscript-card p+p{margin-top:10px}.noscript-card nav{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:20px}.noscript-card a{text-decoration:underline;text-underline-offset:3px}

/* Transfer requirements are captured before matching so unsuitable vehicles
   never become false choices later in the booking flow. */
.booking-needs{min-width:0;margin:4px 0 15px;padding:0;border:0}.booking-needs>summary{display:none}.booking-needs>fieldset{min-width:0;margin:0;padding:0;border:0}.booking-needs legend{margin-bottom:8px;font-size:.74rem;font-weight:700;color:var(--grey-600)}.booking-needs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.booking-need{position:relative;cursor:pointer}.booking-need:last-child{grid-column:1/-1}.booking-need input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.booking-need span{display:flex;align-items:center;gap:7px;min-height:42px;padding:8px 10px;border:1px solid var(--grey-200);border-radius:10px;background:var(--paper);color:var(--grey-600);font-size:.69rem;font-weight:700;line-height:1.25;transition:border-color .18s,background .18s,color .18s,transform .18s}.booking-need svg{width:14px;height:14px;flex:none}.booking-need:hover span{border-color:var(--grey-400);transform:translateY(-1px)}.booking-need input:checked+span{border-color:var(--ink);background:var(--ink);color:var(--paper)}.booking-need input:focus-visible+span{outline:3px solid var(--lime);outline-offset:2px}.booking-price-promise{display:flex;align-items:flex-start;gap:9px;margin-top:11px;padding:10px 12px;border-radius:11px;background:var(--grey-50);text-align:left}.booking-price-promise>svg{width:16px;height:16px;flex:none;margin-top:1px}.booking-price-promise div{display:grid;gap:1px}.booking-price-promise b{font:800 .7rem Manrope}.booking-price-promise span{font-size:.63rem;line-height:1.45;color:var(--grey-500)}.requirement-chip{border-color:var(--ink)!important;color:var(--ink)!important}.price-assurance{font-size:.75rem;color:var(--grey-600)}

/* Flight detail is the only scroll container while open. */
body.flight-modal-open{overscroll-behavior:none}.flight-detail-scrim{touch-action:none}.flight-detail-sheet{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

.calendar-sync-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:16px 20px;border-bottom:1px solid var(--grey-100);background:var(--grey-50)}.calendar-sync-rules span{display:flex;align-items:flex-start;gap:8px;font-size:.7rem;font-weight:700;line-height:1.45;color:var(--grey-600)}.calendar-sync-rules svg{width:15px;height:15px;flex:none;margin-top:1px;color:var(--ink)}.profile-calendar-setup{margin-top:22px}.profile-calendar-setup .calendar-sync-card{border-left:0;border-right:0}
.operator-profile-form{gap:14px}
.operator-profile-form .field-row,.operator-profile-form .field-row3{align-items:stretch}
.operator-profile-form .field{display:grid;grid-template-rows:minmax(2.25em,auto) auto;align-content:start;min-width:0;margin:0}
.operator-profile-form .field>label{display:flex;align-items:flex-end;min-height:2.25em;margin:0 0 6px;line-height:1.25}
.operator-profile-form .field .control{width:100%;min-height:48px}
.operator-profile-form .field input,.operator-profile-form .field select{height:48px;min-height:48px}
.operator-profile-form .field textarea{min-height:96px}
.operator-contact-form>.btn{min-width:150px;margin-top:2px}
@media(max-width:900px){.operator-profile-form .field-row3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.operator-profile-form{gap:13px;padding:16px}.operator-profile-form .field-row,.operator-profile-form .field-row3{grid-template-columns:1fr;gap:13px}.operator-profile-form .field{grid-template-rows:auto auto}.operator-profile-form .field>label{min-height:0}.operator-contact-form>.btn{width:100%}}
@media(max-width:720px){.calendar-sync-rules{grid-template-columns:1fr}.vehicle-offer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.booking-needs-grid,.vehicle-offer-grid{grid-template-columns:1fr}.booking-need:last-child{grid-column:auto}}

/* ============================================================
   SHUTTLEME.PT — LAUNCH REDESIGN v5.0
   Authoritative transfer-edition rules. Keeps the established
   cream / ink / lime palette and Manrope + DM Sans typography.
   ============================================================ */
.skip-link{position:fixed;z-index:2000;top:10px;left:10px;transform:translateY(-160%);padding:12px 16px;border-radius:999px;background:var(--lime);color:#141411;font:700 .85rem Manrope;box-shadow:var(--shadow-2)}
.skip-link:focus{transform:none}
.field-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.environment-note{margin-top:12px;padding:12px 14px;border:1px dashed var(--grey-300);border-radius:12px;background:var(--grey-50);color:var(--grey-600);font-size:.78rem;line-height:1.5;text-align:center}
.success-panel{display:grid;gap:4px;margin-top:16px;padding:16px;border-radius:14px;background:var(--success-bg);color:var(--success)}
.success-panel span{font-size:.82rem;line-height:1.5}
.error-page{min-height:100vh;padding:24px;display:grid;place-items:center;background:#141411;color:#fff}
.error-card{width:min(760px,100%);padding:clamp(30px,7vw,72px);border:1px solid #ffffff24;border-radius:30px;background:#1e1f1a;box-shadow:0 30px 100px #0008}
.error-card .logo{margin-bottom:72px;color:#fff}.error-card .logo:before{background:var(--lime);color:#141411}
.error-card .eyebrow{color:#aaa99f}.error-card .display{margin:16px 0 20px;font-size:clamp(3rem,8vw,6.3rem)}
.error-card .lead{max-width:580px;color:#c7c6bf;margin-bottom:30px}
.error-card .btn{background:var(--lime);color:#141411}

/* Header architecture: utility + primary row on wide screens, calm drawer below. */
@media(min-width:1180px){
  :root{--header-h:100px}
  .header{height:100px}
  .header-inner{height:68px}
  .header .nav-desktop{display:flex!important}
  .header .menu-btn{display:none!important}
  .header .header-actions{display:flex!important}
  .nav-desktop{gap:2px!important}
  .nav-link{font-size:.78rem;padding:9px 10px!important}
  .header-actions{gap:6px}
  .header-price{max-width:148px;overflow:hidden;text-overflow:ellipsis}
}
@media(max-width:1179px){
  :root{--header-h:68px}
  .header{height:68px}
  .header-utility{display:none!important}
  .header-inner{height:68px}
  .drawer{inset:68px 0 0}
  .header .nav-desktop{display:none!important}
  .header .menu-btn{display:flex!important}
  .header .header-actions{display:none!important}
}
.header .logo{min-width:max-content}
.header.scrolled{box-shadow:0 1px 0 color-mix(in srgb,var(--grey-200) 70%,transparent)}
.header-utility .container{max-width:var(--container)}
.header-utility a{min-height:32px;display:inline-flex;align-items:center}
.drawer{max-width:520px;margin-left:auto;border-left:1px solid var(--grey-200);box-shadow:-30px 0 70px rgba(20,20,17,.08)}
.drawer a,.drawer-theme,.drawer-language select{min-height:48px}
.drawer .drawer-cta .btn{min-height:52px}

/* First screen: tighter editorial headline and a complete booking action. */
.hero{padding:14px 0 46px}
.hero>.container{max-width:calc(var(--container) + 40px)}
.hero-grid{grid-template-columns:minmax(0,1fr) minmax(420px,.78fr);align-items:center;min-height:630px;padding:44px 5%;gap:46px;border-radius:32px}
.hero-copy .display{font-size:clamp(3.15rem,4.65vw,4.65rem);line-height:.94;max-width:660px;margin:20px 0 22px}
.hero-copy .lead{font-size:clamp(1rem,1.25vw,1.16rem);line-height:1.55;max-width:580px}
.hero-trustline{margin-top:25px;gap:10px 18px}
.hero .card-form{padding:24px;border-radius:24px;max-width:500px;margin-left:auto}
.hero .card-form .bc-title{margin-bottom:12px}
.hero .seg{margin-bottom:12px}
.hero .seg button{min-height:44px;padding-block:8px}
.hero .route-direction{margin:8px 0 11px;min-height:36px}
.hero .field{margin-bottom:9px}
.hero .field label{margin-bottom:4px;font-size:.67rem}
.hero .field input,.hero .field select{min-height:46px;padding-block:11px}
.hero .btn-primary{min-height:52px}
.hero .bc-note{margin-top:9px}

/* Operational promises are factual and scannable; no invented review volume. */
.service-standard-strip{padding:0 0 44px}
.standard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--grey-200);border-radius:22px;background:var(--paper);overflow:hidden}
.standard-grid>div{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;padding:20px;border-right:1px solid var(--grey-200)}
.standard-grid>div:last-child{border-right:0}
.standard-grid svg{width:20px;height:20px;color:var(--ink);margin-top:2px}
.standard-grid b,.standard-grid small{display:block}
.standard-grid b{font:700 .86rem Manrope;line-height:1.3}
.standard-grid small{margin-top:4px;color:var(--grey-500);font-size:.72rem;line-height:1.4}
.transfer-route-section{padding-top:88px}
.route-card{min-height:94px}
.coverage-band{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr);gap:30px;align-items:center;margin-top:24px;padding:28px;border:1px solid var(--grey-200);border-radius:24px;background:var(--grey-50)}
.coverage-band p{margin-top:8px;color:var(--grey-600);font-size:.9rem;line-height:1.55}
.airport-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.airport-chips span{display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 11px;border:1px solid var(--grey-200);border-radius:12px;background:var(--paper);font-size:.72rem;line-height:1.2;color:var(--grey-600)}
.airport-chips b{min-width:30px;font:800 .72rem Manrope;color:var(--ink)}
.fleet-grid{align-items:stretch}
.fleet-card{height:100%;min-height:410px;font:inherit;color:inherit;cursor:pointer}
.fleet-card .t-visual{min-height:220px}
.fleet-card .t-body{min-height:184px}
.fleet-caps{justify-content:space-between;border-top:1px solid var(--grey-100);margin-top:auto}
.fleet-action{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;margin-top:4px;padding-top:12px;border-top:1px solid var(--grey-100);font:800 .72rem Manrope;color:var(--ink)}
.fleet-action svg{width:15px;height:15px;transition:transform .2s var(--ease)}
.fleet-card:hover .fleet-action svg{transform:translateX(3px)}
.fleet-card.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink),var(--shadow-2)}
.fleet-card.selected .fleet-action:before{content:'✓';display:grid;place-items:center;width:20px;height:20px;margin-right:1px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:.68rem}
.fleet-card:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.preferred-vehicle-choice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px 0 13px;padding:10px 11px;border:1px solid var(--ink);border-radius:11px;background:var(--grey-50)}
.preferred-vehicle-choice[hidden]{display:none}
.preferred-vehicle-choice>span{display:grid;grid-template-columns:18px 1fr;align-items:center;column-gap:8px;min-width:0}
.preferred-vehicle-choice svg{grid-row:1/3;width:16px;height:16px}
.preferred-vehicle-choice small{font-size:.58rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--grey-400)}
.preferred-vehicle-choice b{overflow:hidden;font:800 .74rem Manrope;text-overflow:ellipsis;white-space:nowrap}
.preferred-vehicle-choice button{display:grid;place-items:center;width:30px;height:30px;flex:none;border:1px solid var(--grey-200);border-radius:50%;background:var(--paper);color:var(--ink);font-size:1rem;cursor:pointer}
@media(min-width:1180px){.fleet-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.fleet-card .t-visual{min-height:170px}.fleet-card{min-height:365px}.fleet-card .t-body{padding:18px}.fleet-card .eyebrow{font-size:.62rem}}
.assurance-section{background:var(--paper)}
.assurance-section .benefits-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.assurance-section .benefit{height:100%;min-height:245px}
.home-faq-section{background:var(--grey-50)}
.home-faq-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.home-faq-grid article{height:100%;padding:26px;border:1px solid var(--grey-200);border-radius:20px;background:var(--paper)}
.home-faq-grid h3{font-size:1rem;line-height:1.35;margin-bottom:9px}
.home-faq-grid p{color:var(--grey-500);font-size:.86rem;line-height:1.6}
.operator-home-card{box-shadow:var(--shadow-3)}
.operator-home-actions .btn{width:100%;min-height:54px}

/* Funnel consistency and equal actions. */
.option-card .oc-bottom .btn{min-width:166px;min-height:50px}
.option-card,.detail-info,.transfer-payment,.price-box{border-color:var(--grey-200)}
.results-head{background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(14px)}
.results-body{padding-top:34px}
.request-payment{background:var(--grey-50)}
.request-payment p{font-size:.84rem;line-height:1.6}
.transfer-terms{align-items:flex-start}
.transfer-terms a{text-decoration:underline;text-underline-offset:2px}
.transfer-sensitive-data{display:grid;gap:9px;margin:16px 0;padding:16px;border:1px solid #9fb85a;border-radius:16px;background:#eff4df;color:#25300e}
.transfer-sensitive-data[hidden]{display:none}
.transfer-sensitive-data>strong{font:800 .88rem Manrope}
.transfer-sensitive-data>p{margin:0;color:#596044;font-size:.78rem;line-height:1.55}
.transfer-sensitive-data .amen-check{align-items:flex-start;margin-top:2px}
[data-theme="dark"] .transfer-sensitive-data{border-color:#788b3f;background:#202715;color:#f5f8e9}
[data-theme="dark"] .transfer-sensitive-data>p{color:#cbd5ac}
.amen-check{min-height:44px}
.amen-check input{flex:none}

/* Legal information is navigable rather than a placeholder paragraph. */
.legal-hero{padding-bottom:32px}
.legal-hero .display{font-size:clamp(2.4rem,5vw,4.6rem)!important;max-width:780px}
.legal-meta{margin-top:18px;color:var(--grey-500);font-size:.82rem}
.legal-preview-notice{display:grid;gap:4px;max-width:760px;margin-top:18px;padding:14px 16px;border:1px solid #c79b49;border-radius:14px;background:#fff8e9;color:#55370c;font-size:.78rem;line-height:1.55}
.legal-preview-notice b{font-family:Manrope}.legal-preview-notice span{color:#72511f}
[data-theme="dark"] .legal-preview-notice{border-color:#7c632d;background:#2a2315;color:#fff1c7}[data-theme="dark"] .legal-preview-notice span{color:#e6d29b}
.legal-layout{display:grid;grid-template-columns:230px minmax(0,760px);gap:64px;align-items:start;padding-bottom:96px}
.legal-layout aside{position:sticky;top:calc(var(--header-h) + 24px);display:grid;padding:10px;border:1px solid var(--grey-200);border-radius:16px;background:var(--paper)}
.legal-layout aside a{padding:11px 12px;border-radius:10px;font-size:.82rem;color:var(--grey-600)}
.legal-layout aside a[aria-current="page"]{background:var(--ink);color:var(--paper);font-weight:700}
.legal-prose{max-width:none;padding-bottom:0}
.legal-prose section{padding:0 0 30px;margin-bottom:30px;border-bottom:1px solid var(--grey-200)}
.legal-prose section:last-child{border-bottom:0}
.legal-prose h2{font-size:1.2rem;margin-bottom:10px}
.legal-prose p{font-size:.96rem;line-height:1.75;color:var(--grey-600)}

/* Operator acquisition: same brand, clearer verification expectation. */
.operator-apply-header{height:76px}
.operator-apply-header .header-inner{height:76px}
.operator-apply-layout{grid-template-columns:minmax(0,1fr) 520px;gap:54px;padding:72px 0 100px}
.operator-apply-layout>.operator-join-story{position:static;top:auto;min-width:0}
.operator-apply-layout>section .display{max-width:780px;margin:17px 0 20px;font-size:clamp(3rem,5vw,5.3rem);line-height:.94}
.operator-join-story>.lead{max-width:760px;color:var(--grey-600);font-size:1.02rem;line-height:1.7}
.operator-local-badge{display:inline-flex;align-items:center;gap:8px;margin-bottom:20px;padding:8px 11px;border:1px solid var(--grey-200);border-radius:999px;background:var(--paper);color:var(--grey-600);font-size:.66rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}
.operator-local-badge svg{width:15px;height:15px;color:var(--ink)}
.operator-join-actions{display:flex;align-items:center;gap:18px;margin-top:25px;flex-wrap:wrap}
.operator-join-actions>a:last-child{color:var(--grey-600);font-size:.76rem;font-weight:800;text-decoration:underline;text-underline-offset:4px}
.operator-join-actions .btn svg{width:15px;height:15px}
.operator-local-pledge{margin-top:34px;padding:25px;border-radius:22px;background:var(--ink);color:#fff}
.operator-local-pledge>.eyebrow{color:var(--lime)}
.operator-local-pledge h2{max-width:620px;margin:10px 0 11px;font:800 1.55rem/1.2 Manrope;letter-spacing:-.04em}
.operator-local-pledge>p{max-width:700px;color:#b9bcb3;font-size:.78rem;line-height:1.7}
.operator-local-pledge>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:22px;overflow:hidden;border:1px solid #ffffff1c;border-radius:13px}
.operator-local-pledge>div span{display:flex;min-height:70px;align-items:center;gap:8px;padding:12px;border-right:1px solid #ffffff18;color:#d6d8d1;font-size:.63rem;font-weight:750;line-height:1.4}
.operator-local-pledge>div span:last-child{border-right:0}
.operator-local-pledge>div svg{width:15px;height:15px;flex:none;color:var(--lime)}
.operator-benefit-head{margin-top:40px}
.operator-benefit-head h2{max-width:640px;margin:8px 0 8px;font:800 1.52rem/1.22 Manrope;letter-spacing:-.04em}
.operator-benefit-head p{max-width:650px;color:var(--grey-500);font-size:.76rem;line-height:1.6}
.operator-benefit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.operator-benefit-grid article{display:flex;min-width:0;min-height:196px;flex-direction:column;padding:18px;border:1px solid var(--grey-200);border-radius:16px;background:var(--paper)}
.operator-benefit-grid article>div{display:grid;width:36px;height:36px;place-items:center;margin-bottom:auto;border-radius:10px;background:var(--ink);color:var(--paper)}
.operator-benefit-grid svg{width:17px;height:17px}
.operator-benefit-grid h3{margin:22px 0 7px;font:800 .9rem/1.3 Manrope;letter-spacing:-.02em}
.operator-benefit-grid p{color:var(--grey-500);font-size:.69rem;line-height:1.55}
.operator-join-process{margin-top:34px;padding:22px;border:1px solid var(--grey-200);border-radius:18px;background:var(--paper)}
.operator-join-process>div{display:flex;align-items:end;justify-content:space-between;gap:20px;padding-bottom:17px;border-bottom:1px solid var(--grey-100)}
.operator-join-process h2{margin-top:6px;font:800 1.18rem Manrope;letter-spacing:-.03em}
.operator-join-process ol{display:grid;margin:0;padding:0;list-style:none;counter-reset:join-step}
.operator-join-process li{display:grid;grid-template-columns:28px minmax(0,.42fr) minmax(0,.58fr);align-items:center;gap:12px;min-height:72px;border-bottom:1px solid var(--grey-100);counter-increment:join-step}
.operator-join-process li:last-child{border-bottom:0}
.operator-join-process li::before{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;background:var(--ink);color:#fff;content:counter(join-step);font:800 .58rem Manrope}
.operator-join-process li b{font:800 .72rem Manrope}
.operator-join-process li span{color:var(--grey-500);font-size:.66rem;line-height:1.5}
.operator-independence-note{display:grid;grid-template-columns:38px minmax(0,1fr);gap:13px;margin-top:14px;padding:17px;border:1px solid var(--grey-200);border-radius:15px;background:var(--grey-50)}
.operator-independence-note>svg{width:20px;height:20px;margin:2px 0 0 4px}
.operator-independence-note b{font:800 .75rem Manrope}
.operator-independence-note p{margin-top:5px;color:var(--grey-500);font-size:.66rem;line-height:1.55}
.operator-form-intro{margin:-12px 0 22px;line-height:1.55}
.operator-apply-form{scroll-margin-top:92px}
.operator-application-assurance{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:10px;margin:-7px 0 20px;padding:12px;border:1px solid var(--grey-200);border-radius:12px;background:var(--grey-50);color:var(--grey-600);font-size:.65rem;line-height:1.5}
.operator-application-assurance svg{width:16px;height:16px;margin:1px 0 0 4px}
.operator-secure-verification{display:grid;grid-template-columns:26px minmax(0,1fr);gap:11px;align-items:start;margin:16px 0;padding:14px;border:1px solid var(--grey-200);border-radius:14px;background:var(--grey-50)}
.operator-secure-verification>svg{width:18px;height:18px;margin-top:2px}.operator-secure-verification b,.operator-secure-verification span{display:block}.operator-secure-verification b{font:800 .76rem Manrope}.operator-secure-verification span{margin-top:4px;color:var(--grey-600);font-size:.68rem;line-height:1.55}
.operator-apply-form .amen-check{margin-top:10px}
.operator-apply-form .amen-check a{text-decoration:underline;text-underline-offset:2px}
.operator-fleet-setup{display:grid;gap:14px;margin:8px 0 20px;padding:18px;border:1px solid var(--grey-200);border-radius:18px;background:var(--grey-50)}
.operator-fleet-setup h3{font:800 1.05rem Manrope;margin:4px 0}
.operator-fleet-setup>.small{text-align:left;margin-top:4px}
.operator-fleet-card{padding:16px;border:1px solid var(--grey-200);border-radius:14px;background:var(--paper)}
.operator-fleet-card+.operator-fleet-card{margin-top:10px}
.operator-fleet-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.operator-fleet-card-head b{font:800 .86rem Manrope}.operator-fleet-card-head span{font-size:.67rem;color:var(--grey-500)}

@media(max-width:1100px){
  .operator-apply-layout{grid-template-columns:1fr;gap:36px}
  .operator-apply-form{width:100%;max-width:760px}
}
@media(max-width:640px){
  .operator-apply-layout{padding-top:36px}
  .operator-apply-layout>section .display{font-size:clamp(2.55rem,13vw,3.35rem)}
  .operator-join-story>.lead{font-size:.92rem}
  .operator-join-actions{align-items:stretch;flex-direction:column}
  .operator-join-actions .btn{width:100%}
  .operator-local-pledge{padding:21px 18px}
  .operator-local-pledge>div{grid-template-columns:1fr}
  .operator-local-pledge>div span{min-height:52px;border-right:0;border-bottom:1px solid #ffffff18}
  .operator-local-pledge>div span:last-child{border-bottom:0}
  .operator-benefit-grid{grid-template-columns:1fr}
  .operator-benefit-grid article{min-height:176px}
  .operator-join-process{padding:18px}
  .operator-join-process li{grid-template-columns:28px minmax(0,1fr);padding:12px 0}
  .operator-join-process li span{grid-column:2}
}

/* Footer controls follow the current theme in both modes. */
.transfer-footer-tools{border-top-color:var(--grey-200)}
.footer-theme{border-color:var(--grey-300);color:var(--ink);background:var(--paper)}
.footer-theme:hover{border-color:var(--ink)}

@media(max-width:1179px) and (min-width:641px){
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(390px,.9fr);padding:40px 34px;gap:30px}
  .hero-copy .display{font-size:clamp(3rem,5vw,4rem)}
  .standard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .standard-grid>div:nth-child(2){border-right:0}
  .standard-grid>div:nth-child(-n+2){border-bottom:1px solid var(--grey-200)}
  .assurance-section .benefits-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:760px){
  .coverage-band{grid-template-columns:1fr;padding:22px}
  .airport-chips{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-faq-grid{grid-template-columns:1fr}
  .legal-layout{grid-template-columns:1fr;gap:24px;padding-bottom:72px}
  .legal-layout aside{position:static;display:flex;overflow-x:auto;padding:6px}
  .legal-layout aside a{white-space:nowrap;min-height:44px;display:flex;align-items:center}
}

@media(max-width:640px){
  .container{padding-inline:16px}
  .section{padding:72px 0}
  .section-head,.section-head-row>div,.page-hero{text-align:left;margin-inline:0}
  .section-head-row{align-items:flex-start}
  .section-head-row .btn{align-self:stretch;width:100%}
  .hero{padding:8px 0 38px}
  .hero>.container{width:100%;margin:0;padding-inline:12px}
  .hero-grid{display:grid;grid-template-columns:1fr;min-height:0;padding:38px 18px 24px;gap:30px;border-radius:24px}
  .hero #searchFormMount{order:1}
  .hero-copy{order:2;text-align:left}
  .hero-copy .display{font-size:clamp(2.65rem,12.4vw,3.45rem);line-height:.94;margin:18px 0 18px;max-width:100%}
  .hero-copy .lead{font-size:.96rem;line-height:1.55;margin:0}
  .hero-trustline{justify-content:flex-start;margin-top:20px}
  .hero .card-form{max-width:none;padding:18px;border-radius:19px}
  .hero .card-form .bc-title{font-size:1.05rem}
  .hero .seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}
  .hero .seg button{min-height:48px;font-size:.78rem;padding-inline:4px}
  .hero .field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .hero .field{margin-bottom:8px}
  .hero .field label{font-size:.62rem;letter-spacing:.05em}
  .hero .field input,.hero .field select{font-size:.86rem;min-height:44px;padding:9px 10px}
  .hero .field .control>svg{width:16px;height:16px;margin-left:10px}
  .hero .route-direction{font-size:.65rem}
  .hero .btn-primary{min-height:52px}
  .service-standard-strip{padding:0 0 28px}
  .standard-grid{grid-template-columns:1fr 1fr;border-radius:18px}
  .standard-grid>div{grid-template-columns:26px minmax(0,1fr);padding:16px 13px}
  .standard-grid>div:nth-child(2){border-right:0}
  .standard-grid>div:nth-child(-n+2){border-bottom:1px solid var(--grey-200)}
  .standard-grid small{display:none}
  .standard-grid b{font-size:.75rem}
  .transfer-route-section{padding-top:66px}
  .route-card{min-height:88px;padding:18px}
  .coverage-band{margin-top:16px}
  .airport-chips{grid-template-columns:1fr 1fr}
  .airport-chips span{font-size:.66rem}
  #page-home .grid-cards>:nth-child(n){display:flex!important}
  .fleet-grid{grid-template-columns:1fr}
  .fleet-card{min-height:0}
  .fleet-card .t-visual{min-height:210px}
  .fleet-card .t-body{min-height:170px}
  .assurance-section .benefits-grid{grid-template-columns:1fr}
  .assurance-section .benefit{min-height:0;text-align:left}
  .assurance-section .benefit .b-icon{margin-inline:0}
  .home-faq-grid article{padding:22px}
  .operator-home-card{padding:30px 22px}
  .option-card .oc-bottom{display:grid;grid-template-columns:1fr}
  .option-card .oc-bottom .btn{width:100%;min-width:0}
  .option-card .oc-caps{justify-content:space-between}
  .results-head{position:relative}
  .results-body{padding-top:24px}
  .legal-hero{padding-top:42px}
  .legal-prose p{font-size:.92rem}
  .operator-apply-layout{padding:40px 0 72px}
  .operator-apply-layout>section .display{font-size:2.75rem}
  .operator-apply-form{padding:22px 18px}
  .operator-apply-form .field-row{grid-template-columns:1fr}
}

@media(max-width:390px){
  .hero-grid{padding-inline:14px}
  .hero .card-form{padding:16px 14px}
  .hero .seg button{font-size:.72rem}
  .airport-chips{grid-template-columns:1fr}
}

/* Portal pages use the compact portal header, not the public two-tier header. */
.portal-body{--header-h:76px}
.portal-body .header{height:76px}
.portal-body .header-inner{height:76px}

@media(prefers-reduced-motion:reduce){
  .page.active .hero-copy>*,.page.active #searchFormMount,.dash-main>*{animation:none!important}
}

/* v7.1 — A quieter, more deliberate close to the public site. */
.footer{margin-top:0!important;border-top:0!important;padding:0!important;background:#11120f!important;color:#f5f3ed!important}
.footer-shell{padding-top:72px;padding-bottom:26px}
.footer-primary{display:grid;grid-template-columns:minmax(230px,1fr) minmax(430px,1.55fr) minmax(220px,.72fr);gap:clamp(36px,5vw,76px);align-items:start}
.footer-brand-block .logo{width:max-content;color:#f5f3ed}
.footer-brand-block .logo:before{background:var(--lime);color:#11120f}
.footer-brand-block .logo .tld{color:#aaa9a0}
.footer-brand-block>p{max-width:310px;margin:24px 0 28px;color:#aaa9a0;font-size:.9rem;line-height:1.65}
.footer-contact{display:grid;grid-template-columns:20px minmax(0,1fr) 17px;align-items:center;gap:12px;max-width:310px;padding:16px 0;border-top:1px solid #ffffff1c;border-bottom:1px solid #ffffff1c;color:#f5f3ed}
.footer-contact>svg{width:18px;height:18px;color:var(--lime)}
.footer-contact span{display:grid;gap:2px;min-width:0}
.footer-contact small{color:#85857e;font-size:.61rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.footer-contact strong{overflow:hidden;text-overflow:ellipsis;font-size:.83rem;font-weight:700;white-space:nowrap}
.footer-contact .footer-contact-arrow{width:15px;height:15px;color:#85857e;transition:transform .25s var(--ease),color .2s}
.footer-contact:hover{opacity:1!important}.footer-contact:hover .footer-contact-arrow{transform:translateX(3px);color:var(--lime)}
.footer-nav-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.footer-nav-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;padding:0;border:0;background:none;color:inherit;text-align:left;cursor:default}.footer-nav-toggle span,.footer-operator-label{display:block;margin:2px 0 18px;color:#96978f;font:800 .63rem/1.35 Manrope;letter-spacing:.12em;text-transform:uppercase}.footer-nav-toggle svg{display:none}
.footer-nav-group>div{display:grid;align-content:start;gap:2px}
.footer-nav-group a{display:flex;align-items:center;min-height:35px;width:max-content;max-width:100%;color:#c8c7bf;font-size:.84rem;line-height:1.35;transition:color .2s,transform .2s!important}
.footer-nav-group a:hover{opacity:1!important;color:#fff;transform:translateX(3px)}
.footer-operator-access{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;padding:22px;border:1px solid #ffffff17;border-radius:18px;background:#ffffff08}
.footer-operator-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--lime);color:#11120f}
.footer-operator-icon svg{width:18px;height:18px}
.footer-operator-label{margin:1px 0 10px}
.footer-operator-primary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;color:#f5f3ed;font-size:.86rem;font-weight:800}
.footer-operator-primary svg{width:15px;height:15px;color:var(--lime);transition:transform .25s var(--ease)}
.footer-operator-primary:hover{opacity:1!important}.footer-operator-primary:hover svg{transform:translateX(3px)}
.footer-operator-secondary{display:inline-block;margin-top:6px;color:#92928a;font-size:.77rem;text-decoration:underline;text-decoration-color:#ffffff2b;text-underline-offset:4px}
.footer-operator-secondary:hover{opacity:1!important;color:#fff}
.footer-utility{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:62px;padding-top:22px;border-top:1px solid #ffffff17}
.footer-preferences{display:flex;align-items:center;gap:9px}
.footer .footer-language select,.footer .footer-theme{min-height:42px;border-color:#ffffff20;background:#ffffff08;color:#e7e5de}
.footer .footer-language select{max-width:220px;padding-right:32px}
.footer .footer-language select option{color:#11120f;background:#fff}
.footer .footer-language svg{color:#9a9991}
.footer .footer-theme{padding-inline:14px;font-size:.76rem}
.footer .footer-theme:hover,.footer .footer-language select:hover{border-color:#ffffff55;opacity:1!important}
.footer .footer-bottom{display:flex;align-items:center;justify-content:flex-end;gap:22px;margin:0;padding:0;border-top:0;color:#96978f;font-size:.72rem}
.footer-owner-link{display:inline-flex;min-height:42px;align-items:center;gap:9px;padding:5px 10px 5px 7px;border:1px solid #ffffff17;border-radius:12px;color:#d8d7cf!important;text-decoration:none!important;transition:border-color .2s,background .2s,color .2s!important}.footer-owner-link img{width:28px;height:28px;filter:invert(1);opacity:.9}.footer-owner-link b{max-width:220px;font-size:.68rem;font-weight:700;line-height:1.3}.footer-owner-link svg{width:13px;height:13px;color:var(--lime);transition:transform .2s}.footer-owner-link:hover,.footer-owner-link:focus-visible{border-color:#ffffff38;background:#ffffff08;color:#fff!important;opacity:1!important}.footer-owner-link:hover svg{transform:translate(2px,-2px)}

@media(max-width:1080px){
  .footer-primary{grid-template-columns:minmax(220px,.75fr) minmax(430px,1.5fr)}
  .footer-operator-access{grid-column:1/-1;max-width:360px}
}

@media(max-width:760px){
  .footer-shell{padding-top:52px;padding-bottom:24px}
  .footer-primary{grid-template-columns:1fr;gap:38px}
  .footer-brand-block>p,.footer-contact{max-width:100%}
  .footer-nav-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px}
  .footer-nav-group:last-child{grid-column:1/-1}
  .footer-nav-group:last-child>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .footer-nav-group a{min-height:42px;width:auto}
  .footer-operator-access{grid-column:auto;max-width:none}
  .footer-utility{align-items:stretch;flex-direction:column;margin-top:42px;padding-top:20px}
  .footer-preferences{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .footer .footer-language,.footer .footer-language select{width:100%;max-width:none}
  .footer .footer-bottom{align-items:flex-start;justify-content:flex-start;flex-direction:column;gap:6px}
  .footer-owner-link{width:100%;justify-content:flex-start;margin:5px 0}.footer-owner-link b{max-width:none}
}

@media(max-width:390px){
  .footer-operator-access{padding:18px}
  .footer .footer-theme span{display:none}
  .footer .footer-theme{width:42px;padding:0}
}

@media(max-width:340px){
  .footer-nav-grid{grid-template-columns:1fr}
  .footer-nav-group:last-child{grid-column:auto}
  .footer-nav-group:last-child>div{grid-template-columns:1fr 1fr}
}

/* v7.7 — Operator fleet, route, availability and support refinement. */
.operator-command-hero{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr);gap:36px;align-items:end;margin-bottom:18px;padding:28px;border:1px solid #30322d;border-radius:22px;background:#11120f;color:#f7f6f1;box-shadow:0 18px 48px rgba(17,18,15,.1)}
.operator-command-copy .eyebrow{color:var(--lime)}
.operator-command-copy h2{max-width:680px;margin:8px 0 10px;font:800 clamp(1.35rem,2.2vw,1.8rem)/1.18 Manrope;letter-spacing:-.045em}
.operator-command-copy p{max-width:680px;color:#b3b5ad;font-size:.75rem;line-height:1.62}
.operator-command-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid #ffffff1c;border-radius:15px;background:#ffffff08}
.operator-command-stats article{display:flex;min-width:0;min-height:94px;flex-direction:column;justify-content:flex-end;padding:14px;border-right:1px solid #ffffff16}
.operator-command-stats article:last-child{border-right:0}
.operator-command-stats b{font:800 1.45rem/1 Manrope;letter-spacing:-.05em;white-space:nowrap}
.operator-command-stats b small{font-size:.72rem;color:#8e9188}
.operator-command-stats span{margin-top:7px;color:#9da098;font-size:.58rem;font-weight:700;line-height:1.35;text-transform:uppercase;letter-spacing:.055em}
.route-command-stats{grid-template-columns:repeat(3,minmax(0,1fr))}

.operator-route-builder{overflow:hidden;margin-bottom:22px;border:1px solid var(--grey-300);border-radius:20px;background:var(--paper);box-shadow:0 18px 48px rgba(17,18,15,.07)}
.operator-route-builder.is-open{animation:routeBuilderIn .28s var(--ease) both}
@keyframes routeBuilderIn{from{transform:translateY(-7px);opacity:0}to{transform:none;opacity:1}}
.route-builder-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:20px 22px;border-bottom:1px solid var(--grey-100)}
.route-builder-head h2{margin:6px 0 7px;font:800 1.18rem/1.25 Manrope;letter-spacing:-.035em}
.route-builder-head p{max-width:690px;color:var(--grey-500);font-size:.68rem;line-height:1.55}
.route-builder-form{display:block}
.route-builder-main{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:18px;padding:20px 22px}
.route-builder-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-content:start}
.route-builder-step{position:relative;min-width:0;padding:36px 13px 3px;border:1px solid var(--grey-200);border-radius:14px;background:var(--grey-50)}
.route-builder-step>span{position:absolute;top:12px;left:13px;color:var(--grey-400);font:800 .58rem Manrope;letter-spacing:.1em}
.route-builder-step .field{margin:0}
.route-builder-step .field label{font-size:.58rem}
.route-builder-step .field .control{background:var(--paper)}
.route-builder-step .field input,.route-builder-step .field select{min-height:45px;padding-inline:11px;font-size:.78rem}
.route-builder-preview{overflow:hidden;border:1px solid #ffffff18;border-radius:15px;background:var(--ink);color:#fff}
.route-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #ffffff16}
.route-preview-head>span:first-child{color:#a5a89f;font:800 .55rem Manrope;letter-spacing:.075em;text-transform:uppercase}
.route-preview-path{display:grid;grid-template-columns:minmax(0,1fr) 36px minmax(0,1.35fr);align-items:center;gap:8px;padding:19px 14px 17px}
.route-preview-path>div{display:flex;min-width:0;flex-direction:column}
.route-preview-path span,.route-preview-fare span{color:#8f9289;font:800 .52rem Manrope;letter-spacing:.07em;text-transform:uppercase}
.route-preview-path b{margin:4px 0 2px;overflow:hidden;font:800 1rem/1.2 Manrope;letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap}
.route-preview-path small,.route-preview-fare small{color:#a7aaa1;font-size:.57rem;line-height:1.35}
.route-preview-path>i{display:grid;width:30px;height:30px;place-items:center;border:1px solid #ffffff24;border-radius:50%;color:#c7ff5b}
.route-preview-path svg{width:14px;height:14px}
.route-preview-fare{display:flex;align-items:flex-end;gap:9px;padding:13px 14px;border-top:1px solid #ffffff16;background:#ffffff08}
.route-preview-fare b{margin-left:auto;font:800 1.08rem Manrope;letter-spacing:-.035em}
.route-preview-fare small{max-width:100px;text-align:right}
.route-builder-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 22px;border-top:1px solid var(--grey-100);background:var(--grey-50)}
.route-builder-footer>div{display:flex;gap:9px;flex:none}
.route-builder-activation{display:flex;max-width:580px;align-items:center;gap:14px;cursor:pointer}
.route-builder-activation>span:first-child{display:flex;flex-direction:column}
.route-builder-activation b{font:800 .68rem/1.35 Manrope}
.route-builder-activation small{margin-top:3px;color:var(--grey-500);font-size:.6rem;line-height:1.4}
.route-builder-activation>.switch{order:-1;flex:none}
.operator-route-card.is-new{animation:routeCardAdded .75s var(--ease) both}
@keyframes routeCardAdded{0%{transform:translateY(8px);border-color:var(--lime);box-shadow:0 0 0 4px rgba(199,255,91,.22)}100%{transform:none;border-color:var(--grey-200);box-shadow:0 10px 30px rgba(17,18,15,.04)}}

.operator-vehicle-grid,.operator-route-grid,.operator-driver-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
.operator-vehicle-card,.operator-route-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--grey-200);border-radius:20px;background:var(--paper);box-shadow:0 10px 30px rgba(17,18,15,.04);transition:transform .24s var(--ease),border-color .2s var(--ease),box-shadow .24s var(--ease)}
.operator-vehicle-card:hover,.operator-route-card:hover{transform:translateY(-3px);border-color:var(--grey-300);box-shadow:0 18px 42px rgba(17,18,15,.075)}
.operator-vehicle-card.is-off,.operator-route-card.is-paused{background:var(--grey-50)}
.operator-vehicle-card.is-off .operator-vehicle-render,.operator-route-card.is-paused .operator-route-path{opacity:.58}
.operator-card-index{font:800 .58rem Manrope;letter-spacing:.09em;text-transform:uppercase;color:var(--grey-400)}
.operator-vehicle-visual{position:relative;display:flex;width:100%;height:auto;min-height:240px;max-height:380px;aspect-ratio:8/5;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid #ffffff18;background:#030403}
.operator-vehicle-visual::after{position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.46) 0,rgba(0,0,0,0) 34%,rgba(0,0,0,.08) 100%);content:"";pointer-events:none}
.operator-vehicle-visual>.operator-card-index{position:absolute;z-index:2;top:14px;left:16px;padding:6px 9px;border:1px solid #ffffff24;border-radius:999px;background:#11120f99;color:#fff;box-shadow:0 5px 18px #0003;backdrop-filter:blur(8px)}
.operator-vehicle-visual>.status-pill{position:absolute;z-index:2;top:13px;right:16px;box-shadow:0 5px 18px #0003}
.operator-vehicle-render{position:absolute;inset:0;display:grid;width:100%;height:100%;overflow:hidden;place-items:center;transition:opacity .2s var(--ease)}
.operator-vehicle-render img{position:absolute;inset:0;display:block;width:100%;height:100%;padding:14px 18px 8px;object-fit:contain;object-position:center;background:linear-gradient(180deg,#11120f 0%,#171814 72%,#0c0d0b 100%)}
.operator-vehicle-render.operator-vehicle-fallback{position:static;padding:38px 24px 18px;background:var(--grey-50)}
.operator-vehicle-render svg{width:min(82%,300px);height:auto;margin:0;filter:drop-shadow(0 13px 8px rgba(17,18,15,.08))}
.operator-vehicle-body{display:flex;flex:1;flex-direction:column;padding:19px}
.operator-card-title>span{display:block;margin-bottom:5px;color:var(--grey-400);font:800 .59rem Manrope;letter-spacing:.09em;text-transform:uppercase}
.operator-card-title h2{font:800 1.08rem/1.3 Manrope;letter-spacing:-.028em}
.operator-card-title p{margin-top:2px;color:var(--grey-500);font:700 .68rem JetBrains Mono,monospace}
.operator-card-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}
.operator-card-facts>div{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:50px;padding:9px 10px;border:1px solid var(--grey-200);border-radius:11px;background:var(--paper)}
.operator-card-facts svg{width:16px;height:16px;color:var(--grey-500)}
.operator-card-facts span{font-size:.62rem;color:var(--grey-500)}
.operator-card-facts b{font:800 .9rem Manrope}
.operator-vehicle-services{display:flex;min-height:104px;flex-direction:column;margin-top:auto;padding-top:3px}
.operator-vehicle-services>span{margin-bottom:8px;color:var(--grey-400);font:800 .57rem Manrope;letter-spacing:.08em;text-transform:uppercase}
.operator-vehicle-card .vehicle-offer-summary{align-content:flex-start;margin-top:0}
.operator-vehicle-card .vehicle-offer-summary span{padding:5px 8px;border:1px solid var(--grey-100);background:var(--grey-50);font-size:.59rem}
.operator-card-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:68px;margin-top:auto;padding:12px 18px;border-top:1px solid var(--grey-100);background:var(--grey-50)}
.operator-card-actions .btn{min-width:144px}
.operator-toggle-control{display:flex;align-items:center;gap:9px;color:var(--grey-500);font-size:.62rem;font-weight:750;cursor:pointer}
.operator-toggle-control>.switch{flex:none}
.operator-vehicle-card>.vehicle-service-editor{border-top:1px solid var(--grey-200)}

.operator-driver-form{overflow:hidden;margin-bottom:20px;border:1px solid var(--grey-300);border-radius:20px;background:var(--paper);box-shadow:0 18px 48px rgba(17,18,15,.07);animation:routeBuilderIn .28s var(--ease) both}
.operator-driver-form>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:19px 21px;border-bottom:1px solid var(--grey-100)}
.operator-driver-form>header h2{margin-top:5px;font:800 1.12rem/1.25 Manrope;letter-spacing:-.035em}
.operator-driver-form>.dash-form{padding:20px 21px}
.operator-driver-form>.dash-form>.btn{justify-self:start;min-width:160px}
.driver-active-field{display:flex;min-width:0;flex-direction:column;gap:7px}
.driver-active-field>span:first-child{color:var(--grey-600);font-size:.7rem;font-weight:700}
.driver-active-field>span:last-child{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border:1px solid var(--grey-200);border-radius:10px;background:var(--paper)}
.driver-active-field b{font-size:.65rem;line-height:1.35}
.operator-driver-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--grey-200);border-radius:20px;background:var(--paper);box-shadow:0 10px 30px rgba(17,18,15,.04);transition:transform .24s var(--ease),border-color .2s var(--ease),box-shadow .24s var(--ease)}
.operator-driver-card:hover{transform:translateY(-3px);border-color:var(--grey-300);box-shadow:0 18px 42px rgba(17,18,15,.075)}
.operator-driver-card.is-off{background:var(--grey-50)}
.operator-driver-card>header{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:13px;padding:18px;border-bottom:1px solid var(--grey-100)}
.operator-driver-avatar{display:grid;width:52px;height:52px;place-items:center;border-radius:16px;background:var(--ink);color:var(--lime);font:800 .9rem Manrope;letter-spacing:.04em}
.operator-driver-card>header>div:nth-child(2){min-width:0}
.operator-driver-card>header>div:nth-child(2)>span{display:block;color:var(--grey-400);font:800 .55rem Manrope;letter-spacing:.085em;text-transform:uppercase}
.operator-driver-card h2{margin-top:4px;overflow:hidden;font:800 1.03rem/1.25 Manrope;letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap}
.operator-driver-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:17px 18px}
.operator-driver-details>div{display:flex;min-width:0;min-height:63px;flex-direction:column;justify-content:center;padding:10px 12px;border:1px solid var(--grey-100);border-radius:11px;background:var(--grey-50)}
.operator-driver-details span{color:var(--grey-400);font:800 .54rem Manrope;letter-spacing:.07em;text-transform:uppercase}
.operator-driver-details b{margin-top:5px;overflow:hidden;font-size:.67rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.operator-driver-card>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:64px;margin-top:auto;padding:12px 18px;border-top:1px solid var(--grey-100);background:var(--grey-50)}
.operator-driver-empty{grid-column:1/-1}
.operator-driver-assignment{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:13px 15px;border-top:1px solid var(--grey-100);background:#f7f8f2}
.operator-driver-assignment label{display:flex;min-width:0;flex:1;flex-direction:column;gap:6px}
.operator-driver-assignment label>span,.operator-driver-assignment.empty span{color:var(--grey-500);font:800 .55rem Manrope;letter-spacing:.07em;text-transform:uppercase}
.operator-driver-assignment select{width:100%;min-height:42px;border:1px solid var(--grey-200);border-radius:9px;background:var(--paper);padding:0 34px 0 11px;color:var(--ink);font:700 .68rem DM Sans;outline:0}
.operator-driver-assignment select:focus{border-color:var(--ink);box-shadow:0 0 0 2px rgba(17,18,15,.1)}
.operator-driver-assignment.empty{align-items:center}
.operator-driver-assignment.empty>div{display:flex;min-width:0;flex-direction:column;gap:5px}
.operator-driver-assignment.empty b{font-size:.68rem}
.operator-payout-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;margin-bottom:16px;padding:23px;border:1px solid #30322d;border-radius:20px;background:#11120f;color:#fff;box-shadow:0 16px 42px rgba(17,18,15,.09)}
.operator-payout-panel .eyebrow{color:var(--lime)}
.operator-payout-panel h2{margin:7px 0 8px;font:800 1.2rem/1.25 Manrope;letter-spacing:-.035em}
.operator-payout-panel p{max-width:720px;color:#adafa7;font-size:.69rem;line-height:1.58}
.operator-payout-status{display:flex;min-width:225px;align-items:center;justify-content:flex-end;gap:12px}
.operator-payout-status .btn{min-height:48px}

.operator-route-card>header,.operator-route-card>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px}
.operator-route-card>header{border-bottom:1px solid var(--grey-100)}
.operator-route-path{display:grid;grid-template-columns:minmax(80px,.8fr) minmax(72px,.5fr) minmax(120px,1.2fr);align-items:center;gap:10px;min-height:142px;padding:23px 19px;transition:opacity .2s}
.operator-route-path>div:first-child,.operator-route-path>div:last-child{display:flex;min-width:0;flex-direction:column}
.operator-route-path span,.operator-route-fare span{margin-bottom:5px;color:var(--grey-400);font:800 .57rem Manrope;letter-spacing:.08em;text-transform:uppercase}
.operator-route-path b{overflow:hidden;font:800 1.08rem/1.25 Manrope;letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap}
.operator-route-path>div:first-child b{font-size:1.45rem;letter-spacing:-.05em}
.operator-route-path small,.operator-route-fare small{margin-top:3px;color:var(--grey-500);font-size:.62rem;line-height:1.35}
.operator-route-line{position:relative;display:grid;min-width:0;place-items:center;color:var(--grey-500)}
.operator-route-line i{position:absolute;right:0;left:0;height:1px;background:var(--grey-300)}
.operator-route-line svg{position:relative;width:26px;height:26px;padding:6px;border:1px solid var(--grey-200);border-radius:50%;background:var(--paper)}
.operator-route-fare{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 18px 18px;padding:13px 14px;border:1px solid var(--grey-200);border-radius:12px;background:var(--grey-50)}
.operator-route-fare>div{display:flex;min-width:0;flex-direction:column}
.operator-route-fare label{display:grid;grid-template-columns:auto 72px;align-items:center;overflow:hidden;border:1px solid var(--grey-200);border-radius:9px;background:var(--paper)}
.operator-route-fare label>b{padding:0 8px;color:var(--grey-400);font:800 .72rem Manrope}
.operator-route-fare input{width:72px;height:40px;border:0;border-left:1px solid var(--grey-100);background:transparent;padding:0 9px;color:var(--ink);font:800 .82rem Manrope;text-align:right;outline:0}
.operator-route-fare label:focus-within{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.operator-route-card>footer{min-height:62px;margin-top:auto;border-top:1px solid var(--grey-100);background:var(--grey-50)}
.operator-route-card>footer>span{max-width:58%;color:var(--grey-500);font-size:.62rem;line-height:1.4}

.availability-command-hero{margin-bottom:16px}
.availability-calendar-hint{display:flex;align-items:center;gap:8px;align-self:flex-start;padding:9px 11px;border:1px solid var(--grey-200);border-radius:10px;background:var(--paper);font-size:.62rem;font-weight:750}
.availability-calendar-hint svg{width:14px;height:14px;color:var(--success)}
.availability-sync-panel{margin-top:16px}
.calendar-sync-connections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--grey-100)}
.availability-sync-panel .calendar-sync-card{grid-template-columns:42px minmax(0,1fr);align-items:start;border-right:1px solid var(--grey-100);border-bottom:0;padding:18px 20px}
.availability-sync-panel .calendar-sync-card:nth-child(2){border-right:0}
.availability-sync-panel .calendar-sync-card>.btn{grid-column:1/-1;width:100%;margin-top:2px}
.availability-sync-panel .calendar-sync-rules{border-bottom:0}

.support-command-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:34px;align-items:end;margin-bottom:16px;padding:28px;border-radius:22px;background:#11120f;color:#f7f6f1;box-shadow:0 18px 48px rgba(17,18,15,.1)}
.support-online{display:flex;align-items:center;gap:8px;color:var(--lime);font:800 .61rem Manrope;letter-spacing:.09em;text-transform:uppercase}
.support-online i{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(169,239,88,.1)}
.support-command-hero h2{max-width:710px;margin:10px 0 9px;font:800 clamp(1.4rem,2.3vw,1.9rem)/1.18 Manrope;letter-spacing:-.045em}
.support-command-hero p{max-width:720px;color:#afb2a9;font-size:.75rem;line-height:1.6}
.support-command-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.operator-support-compose{scroll-margin-top:92px;margin-bottom:16px;overflow:hidden;border:1px solid var(--grey-200);border-radius:20px;background:var(--paper);box-shadow:0 16px 44px rgba(17,18,15,.08)}
.operator-support-compose>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:21px 22px;border-bottom:1px solid var(--grey-100);background:var(--grey-50)}
.operator-support-compose>header h2{margin:6px 0 6px;font:800 1.15rem/1.25 Manrope;letter-spacing:-.03em}
.operator-support-compose>header p{max-width:680px;color:var(--grey-500);font-size:.7rem;line-height:1.55}
.operator-support-close{display:grid;width:36px;height:36px;flex:none;place-items:center;border:1px solid var(--grey-200);border-radius:50%;background:var(--paper);color:var(--ink);font-size:1.2rem;cursor:pointer}
.operator-support-compose form{padding:21px 22px}
.operator-support-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.operator-support-compose textarea{width:100%;resize:vertical}
.operator-support-submit{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:4px;padding-top:17px;border-top:1px solid var(--grey-100)}
.operator-support-submit>p{display:flex;max-width:470px;align-items:flex-start;gap:8px;color:var(--grey-500);font-size:.64rem;line-height:1.5}
.operator-support-submit>p svg{width:14px;height:14px;flex:none;margin-top:1px;color:var(--ink)}
.operator-support-submit>div{display:flex;gap:8px;flex:none}
.btn-light{border-color:#f7f6f1!important;background:#f7f6f1!important;color:#11120f!important}
.btn-outline-light{border:1px solid #ffffff44!important;background:transparent!important;color:#f7f6f1!important}
.btn-outline-light:hover{border-color:#fff!important;background:#ffffff0d!important;color:#fff!important}
.support-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.support-topic-card{display:flex;min-height:268px;flex-direction:column;padding:19px;border:1px solid var(--grey-200);border-radius:18px;background:var(--paper)}
.support-topic-icon{display:grid;width:38px;height:38px;margin-bottom:17px;place-items:center;border-radius:11px;background:var(--grey-100)}
.support-topic-icon.urgent{background:var(--lime-soft)}
.support-topic-icon svg{width:17px;height:17px}
.support-topic-card>span{color:var(--grey-400);font:800 .57rem Manrope;letter-spacing:.08em;text-transform:uppercase}
.support-topic-card h3{margin:6px 0 8px;font:800 .92rem/1.35 Manrope;letter-spacing:-.02em}
.support-topic-card p{color:var(--grey-500);font-size:.67rem;line-height:1.55}
.support-topic-card>a,.support-topic-card>button{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:auto;padding-top:16px;border:0;border-top:1px solid var(--grey-100);background:transparent;color:var(--ink);font:800 .67rem Manrope;text-align:left;cursor:pointer}
.support-topic-card>a svg,.support-topic-card>button svg{width:14px;height:14px;transition:transform .2s var(--ease)}
.support-topic-card>a:hover svg,.support-topic-card>button:hover svg{transform:translateX(3px)}
.support-guide-panel{overflow:hidden;margin-bottom:16px;border:1px solid var(--grey-200);border-radius:18px;background:var(--paper)}
.support-guide-head{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:18px 20px;border-bottom:1px solid var(--grey-100)}
.support-guide-head h2{margin-top:5px;font:800 1rem Manrope}
.support-guide-head>p{max-width:360px;color:var(--grey-500);font-size:.67rem;line-height:1.5;text-align:right}
.support-guided-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0}
.support-guided-grid .guided-help-card{min-height:154px;border:0;border-right:1px solid var(--grey-100);border-radius:0;padding:17px}
.support-guided-grid .guided-help-card:last-child{border-right:0}
.support-guided-grid .guided-help-card:hover{transform:none;background:var(--grey-50)}
.support-footer-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:16px;align-items:stretch}
.support-footer-grid>.dash-panel{margin:0}
.support-contact-card{display:flex;flex-direction:column;padding:21px;border:1px solid var(--grey-200);border-radius:18px;background:var(--paper)}
.support-contact-card h3{margin:8px 0 9px;overflow-wrap:anywhere;font:800 1rem/1.3 Manrope}
.support-contact-card p{margin-bottom:18px;color:var(--grey-500);font-size:.67rem;line-height:1.55}
.support-contact-card .btn{align-self:flex-start;margin-top:auto}

@media(max-width:1180px){
  .operator-command-hero{grid-template-columns:1fr;gap:22px;align-items:start}
  .operator-vehicle-grid,.operator-route-grid,.operator-driver-grid{grid-template-columns:1fr}
  .support-guided-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .support-guided-grid .guided-help-card:nth-child(2){border-right:0}
  .support-guided-grid .guided-help-card:nth-child(-n+2){border-bottom:1px solid var(--grey-100)}
}
@media(max-width:820px){
  .route-builder-main{grid-template-columns:1fr}
  .support-command-hero{grid-template-columns:1fr;align-items:start}
  .support-command-actions{justify-content:flex-start}
  .support-topic-grid{grid-template-columns:1fr}
  .support-topic-card{min-height:220px}
  .support-footer-grid{grid-template-columns:1fr}
  .operator-payout-panel{grid-template-columns:1fr;align-items:start}
  .operator-payout-status{width:100%;justify-content:space-between}
}
@media(max-width:720px){
  .route-builder-head{align-items:stretch;flex-direction:column;gap:13px;padding:18px}
  .route-builder-head .btn{align-self:flex-start}
  .route-builder-main{padding:18px}
  .route-builder-fields{grid-template-columns:1fr}
  .route-builder-step{padding-top:34px}
  .route-builder-footer{align-items:stretch;flex-direction:column;padding:15px 18px}
  .route-builder-footer>div{display:grid;grid-template-columns:1fr 1fr}
  .operator-command-hero,.support-command-hero{padding:21px 18px;border-radius:19px}
  .operator-command-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .operator-command-stats article{min-height:82px;border-bottom:1px solid #ffffff16}
  .operator-command-stats article:nth-child(2n){border-right:0}
  .operator-command-stats article:nth-last-child(-n+2){border-bottom:0}
  .route-command-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .route-command-stats article{border-bottom:0}
  .route-command-stats article:nth-child(2){border-right:1px solid #ffffff16}
  .operator-card-actions{align-items:stretch;flex-direction:column}
  .operator-card-actions .btn{width:100%}
  .operator-toggle-control{justify-content:space-between;min-height:38px}
  .operator-route-path{grid-template-columns:minmax(70px,.75fr) minmax(54px,.35fr) minmax(100px,1.1fr);padding-inline:16px}
  .operator-route-card>footer{align-items:flex-start;flex-direction:column}
  .operator-route-card>footer>span{max-width:none}
  .operator-route-card>footer .operator-toggle-control{width:100%}
  .operator-driver-card>footer{align-items:stretch;flex-direction:column}
  .operator-driver-card>footer .btn{width:100%;min-height:48px}
  .operator-driver-card>footer .operator-toggle-control{width:100%}
  .operator-driver-assignment{align-items:stretch;flex-direction:column}
  .operator-driver-assignment .btn{width:100%;min-height:48px}
  .operator-payout-panel{padding:20px 18px}
  .operator-payout-status{align-items:stretch;flex-direction:column}
  .operator-payout-status .btn{width:100%}
  .calendar-sync-connections{grid-template-columns:1fr}
  .availability-sync-panel .calendar-sync-card{border-right:0;border-bottom:1px solid var(--grey-100)}
  .availability-sync-panel .calendar-sync-card:nth-child(2){border-bottom:0}
  .support-guide-head{align-items:flex-start;flex-direction:column;gap:6px}
  .support-guide-head>p{text-align:left}
  .operator-support-fields{grid-template-columns:1fr}
  .operator-support-submit{align-items:stretch;flex-direction:column}
  .operator-support-submit>div{display:grid;grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .route-builder-footer>div{grid-template-columns:1fr}
  .route-builder-footer .btn{width:100%}
  .operator-command-stats b{font-size:1.25rem}
  .route-command-stats article{min-height:84px;padding:10px}
  .route-command-stats span{font-size:.5rem;letter-spacing:.04em}
  .operator-vehicle-visual{height:auto;min-height:206px;max-height:none;aspect-ratio:8/5}
  .operator-card-facts{grid-template-columns:1fr}
  .operator-route-path{grid-template-columns:minmax(62px,.75fr) 38px minmax(88px,1.1fr);gap:7px}
  .operator-route-path b{font-size:.9rem}
  .operator-route-path>div:first-child b{font-size:1.15rem}
  .operator-route-fare{align-items:stretch;flex-direction:column}
  .operator-route-fare label{grid-template-columns:auto minmax(0,1fr)}
  .operator-route-fare input{width:100%}
  .support-command-actions{display:grid;grid-template-columns:1fr;width:100%}
  .support-command-actions .btn{width:100%}
  .support-guided-grid{grid-template-columns:1fr}
  .support-guided-grid .guided-help-card{min-height:128px;border-right:0;border-bottom:1px solid var(--grey-100)!important}
  .support-guided-grid .guided-help-card:last-child{border-bottom:0!important}
}

@media(prefers-reduced-motion:reduce){
  .operator-route-builder.is-open,.operator-route-card.is-new{animation:none}
  .operator-vehicle-card,.operator-route-card{transition:none}
  .operator-vehicle-card:hover,.operator-route-card:hover{transform:none}
}

/* v7.8 — Operator reputation and review workspace. */
.review-reputation-hero{display:grid;grid-template-columns:210px minmax(0,1fr) minmax(330px,.72fr);gap:28px;align-items:stretch;margin-bottom:16px;padding:26px;border:1px solid #30322d;border-radius:22px;background:#11120f;color:#f7f6f1;box-shadow:0 18px 48px rgba(17,18,15,.1)}
.review-overall-score{display:flex;min-width:0;flex-direction:column;justify-content:center;padding-right:25px;border-right:1px solid #ffffff1c}
.review-overall-score>.eyebrow,.review-reputation-copy>.eyebrow{color:var(--lime)}
.review-overall-score>div{display:flex;align-items:baseline;gap:5px;margin:8px 0 4px}
.review-overall-score strong{font:800 3.45rem/.95 Manrope;letter-spacing:-.075em}
.review-overall-score small{color:#92958c;font:700 .8rem Manrope}
.operator-review-stars{display:inline-flex;align-items:center;gap:2px}
.operator-review-stars i{color:var(--grey-300);font-style:normal;font-size:.78rem;line-height:1}
.operator-review-stars i.filled{color:var(--ink)}
.review-overall-score>.operator-review-stars i{color:#565950}
.review-overall-score>.operator-review-stars i.filled{color:var(--lime)}
.review-overall-score>p{margin-top:9px;color:#969990;font-size:.61rem;line-height:1.45}
.review-reputation-copy{display:flex;min-width:0;flex-direction:column;justify-content:center}
.review-reputation-copy h2{margin:8px 0 8px;font:800 clamp(1.25rem,2vw,1.62rem)/1.2 Manrope;letter-spacing:-.04em}
.review-reputation-copy p{max-width:560px;color:#afb2a9;font-size:.7rem;line-height:1.58}
.review-reputation-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;align-self:center;border:1px solid #ffffff1c;border-radius:15px;background:#ffffff08}
.review-reputation-metrics article{display:flex;min-width:0;min-height:108px;flex-direction:column;justify-content:flex-end;padding:14px;border-right:1px solid #ffffff16}
.review-reputation-metrics article:last-child{border-right:0}
.review-reputation-metrics b{font:800 1.35rem/1 Manrope;letter-spacing:-.045em;white-space:nowrap}
.review-reputation-metrics span{margin-top:7px;color:#999c94;font-size:.52rem;font-weight:800;line-height:1.35;letter-spacing:.05em;text-transform:uppercase}

.review-performance-panel{overflow:hidden;margin-bottom:16px;border:1px solid var(--grey-200);border-radius:18px;background:var(--paper)}
.review-performance-head{display:flex;align-items:end;justify-content:space-between;gap:28px;padding:18px 20px;border-bottom:1px solid var(--grey-100)}
.review-performance-head h2{margin-top:5px;font:800 1rem Manrope;letter-spacing:-.02em}
.review-performance-head>p{max-width:420px;color:var(--grey-500);font-size:.65rem;line-height:1.5;text-align:right}
.review-category-bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:7px 20px 15px}
.review-category-bar{padding:11px 16px 10px;border-right:1px solid var(--grey-100)}
.review-category-bar:nth-child(3n){border-right:0}
.review-category-bar:nth-child(n+4){border-top:1px solid var(--grey-100)}
.review-category-bar>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.review-category-bar span{color:var(--grey-600);font-size:.64rem;font-weight:700}
.review-category-bar b{font:800 .72rem Manrope}
.review-category-bar>i{display:block;height:5px;overflow:hidden;border-radius:999px;background:var(--grey-100)}
.review-category-bar>i>span{display:block;height:100%;border-radius:inherit;background:var(--ink)}

.operator-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.operator-review-card{display:flex;min-width:0;min-height:470px;flex-direction:column;overflow:hidden;border:1px solid var(--grey-200);border-radius:20px;background:var(--paper);box-shadow:0 10px 30px rgba(17,18,15,.04);transition:transform .24s var(--ease),border-color .2s var(--ease),box-shadow .24s var(--ease)}
.operator-review-card:hover{transform:translateY(-3px);border-color:var(--grey-300);box-shadow:0 18px 42px rgba(17,18,15,.075)}
.operator-review-card>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 19px;border-bottom:1px solid var(--grey-100)}
.operator-review-rating{display:flex;align-items:center;gap:11px}
.operator-review-rating>strong{font:800 1.6rem/1 Manrope;letter-spacing:-.05em}
.operator-review-rating>div{display:flex;flex-direction:column;gap:4px}
.operator-review-rating>div>span:last-child{color:var(--grey-400);font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.review-verified{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;background:var(--success-bg);color:var(--success);font-size:.56rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase;white-space:nowrap}
.review-verified svg{width:12px;height:12px}
.operator-review-context{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:13px 19px 0}
.operator-review-context span{padding:5px 8px;border:1px solid var(--grey-200);border-radius:999px;background:var(--grey-50);color:var(--grey-500);font:700 .56rem Manrope}
.operator-review-context span:nth-child(2){font-family:JetBrains Mono,monospace}
.operator-review-card blockquote{margin:0;padding:20px 19px 18px}
.operator-review-card blockquote h2{margin-bottom:8px;font:800 1.08rem/1.3 Manrope;letter-spacing:-.025em}
.operator-review-card blockquote p{color:var(--grey-600);font-size:.78rem;line-height:1.65}
.operator-review-score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 19px 18px;overflow:hidden;border:1px solid var(--grey-200);border-radius:12px;background:var(--grey-50)}
.operator-review-score-grid>div{display:flex;min-width:0;min-height:65px;flex-direction:column;justify-content:space-between;padding:10px;border-right:1px solid var(--grey-100)}
.operator-review-score-grid>div:last-child{border-right:0}
.operator-review-score-grid span{overflow:hidden;color:var(--grey-500);font-size:.52rem;line-height:1.25;text-overflow:ellipsis}
.operator-review-score-grid b{margin-top:6px;font:800 .83rem Manrope}
.operator-review-card>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:70px;margin-top:auto;padding:13px 19px;border-top:1px solid var(--grey-100);background:var(--grey-50)}
.operator-review-author{display:flex;min-width:0;flex-direction:column;gap:2px}
.operator-review-author span{font:800 .66rem Manrope}
.operator-review-author small{color:var(--grey-500);font-size:.58rem}
.operator-review-card>footer .btn{min-width:120px}
.operator-review-response{margin-top:auto;padding:16px 19px;border-top:1px solid var(--grey-100);background:var(--grey-50)}
.operator-review-response>div{display:flex;align-items:center;gap:7px;margin-bottom:7px;color:var(--grey-500);font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.operator-review-response svg{width:14px;height:14px}
.operator-review-response p{font-size:.7rem;line-height:1.55}
.operator-review-response small{display:block;margin-top:6px;color:var(--grey-400);font-size:.57rem}
.review-response-composer{display:grid;gap:10px;padding:17px 19px 19px;border-top:1px solid var(--grey-200);background:var(--grey-50)}
.review-response-composer label{display:flex;align-items:end;justify-content:space-between;gap:12px}
.review-response-composer label>span{font:800 .72rem Manrope}
.review-response-composer label>small{color:var(--grey-500);font-size:.57rem;text-align:right}
.review-response-composer textarea{width:100%;min-height:96px;resize:vertical;border:1px solid var(--grey-200);border-radius:11px;background:var(--paper);padding:11px 12px;color:var(--ink);font:500 .72rem/1.5 DM Sans;outline:0}
.review-response-composer textarea:focus{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.review-response-composer>div{display:flex;justify-content:flex-end;gap:8px}
.operator-review-empty{grid-column:1/-1}

@media(max-width:1180px){
  .review-reputation-hero{grid-template-columns:190px minmax(0,1fr)}
  .review-reputation-metrics{grid-column:1/-1;width:100%}
  .review-reputation-metrics article{min-height:82px}
  .operator-review-grid{grid-template-columns:1fr}
  .operator-review-card{min-height:0}
}
@media(max-width:760px){
  .review-reputation-hero{grid-template-columns:1fr;gap:21px;padding:21px 18px;border-radius:19px}
  .review-overall-score{padding:0 0 20px;border-right:0;border-bottom:1px solid #ffffff1c}
  .review-overall-score strong{font-size:3rem}
  .review-reputation-metrics{grid-column:auto}
  .review-performance-head{align-items:flex-start;flex-direction:column;gap:6px}
  .review-performance-head>p{text-align:left}
  .review-category-bars{grid-template-columns:repeat(2,minmax(0,1fr));padding:7px 14px 14px}
  .review-category-bar:nth-child(3n){border-right:1px solid var(--grey-100)}
  .review-category-bar:nth-child(2n){border-right:0}
  .review-category-bar:nth-child(n+3){border-top:1px solid var(--grey-100)}
  .review-category-bar:nth-child(3){border-right:1px solid var(--grey-100)}
  .operator-review-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .operator-review-score-grid>div:nth-child(2){border-right:0}
  .operator-review-score-grid>div:nth-child(-n+2){border-bottom:1px solid var(--grey-100)}
  .operator-review-card:hover{transform:none}
}
@media(max-width:480px){
  .review-reputation-metrics article{min-height:76px;padding:10px}
  .review-reputation-metrics b{font-size:1.15rem}
  .review-reputation-metrics span{font-size:.47rem}
  .operator-review-card>header{align-items:flex-start;flex-direction:column}
  .operator-review-card>footer{align-items:stretch;flex-direction:column}
  .operator-review-card>footer .btn{width:100%}
  .review-response-composer label{align-items:flex-start;flex-direction:column;gap:3px}
  .review-response-composer label>small{text-align:left}
  .review-response-composer>div{display:grid;grid-template-columns:1fr 1fr}
  .review-response-composer .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .operator-review-card{transition:none}
  .operator-review-card:hover{transform:none}
}

/* Prevent Safari from zooming the page when a traveller focuses a form control. */
@media(max-width:1024px){
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea{font-size:16px!important}
}

/* ============================================================
   v7.16 — MOBILE LAYOUT AUTHORITY
   A single, late cascade for phone rhythm, equal controls and
   deliberate alignment across the traveller and operator apps.
   ============================================================ */
@media(max-width:640px){
  :root{--header-h:68px}
  body{font-size:16px}
  .container{max-width:none;padding-inline:16px}
  .section{padding:64px 0}
  .section-head,.section-head-row>div,.page-hero{width:100%;margin-inline:0;text-align:left}
  .section-head{margin-bottom:28px}
  .section-head-row{align-items:stretch;flex-direction:column;gap:18px;margin-bottom:26px}
  .section-head-row .btn{align-self:stretch;width:100%}
  .page-hero{padding:42px 0 30px}
  .page-hero .display{font-size:clamp(2.2rem,10.8vw,3rem);line-height:.98}
  .page-hero .lead{font-size:.95rem;line-height:1.6}

  /* Comparable actions use one 52px mobile rhythm. */
  .btn{min-height:52px;padding:13px 18px;border-radius:12px;line-height:1.2;text-align:center}
  .btn-lg{min-height:56px;padding:15px 20px}
  .btn-mini{min-height:46px;padding:10px 14px;border-radius:10px}
  .btn svg{flex:none}
  .drawer-cta .btn,.cta-band .btn,.partner-card .btn,.auth-wrap .btn,
  .contact-form button[type="submit"],.manage-lookup button[type="submit"]{width:100%}
  .menu-btn{width:46px;height:46px;border:1px solid color-mix(in srgb,var(--grey-300) 72%,transparent);border-radius:50%}
  .drawer{inset:68px 0 0;padding:14px 20px calc(32px + env(safe-area-inset-bottom))}
  .drawer a{display:flex;min-height:52px;align-items:center;padding:12px 4px}

  /* Traveller homepage: message first, booking tool second. */
  .hero{padding:10px 0 44px}
  .hero>.container{width:100%;margin:0;padding-inline:12px}
  .hero-grid{display:grid;min-height:0;grid-template-columns:1fr;gap:24px;padding:30px 18px 20px;border-radius:24px}
  .hero-copy{order:1;min-width:0;text-align:left}
  .hero #searchFormMount{order:2;min-width:0}
  .hero-copy .eyebrow{font-size:.67rem;letter-spacing:.12em}
  .hero-copy .display{max-width:520px;margin:14px 0 16px;font-size:clamp(2.35rem,11.25vw,3.05rem);line-height:.96;letter-spacing:-.052em}
  .hero-copy .lead{max-width:520px;margin:0;font-size:.94rem;line-height:1.58}
  .hero-trustline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;justify-content:stretch;margin-top:20px}
  .hero-trustline .trust-item{min-width:0;font-size:.72rem;line-height:1.35}
  .hero .card-form{max-width:none;margin:0;padding:18px;border-radius:20px;box-shadow:0 20px 50px rgba(0,0,0,.38)}
  .hero .card-form .bc-title{margin-bottom:13px;font-size:1.05rem}
  .hero .seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-bottom:13px;overflow:visible;border-radius:12px}
  .hero .seg button{display:flex;min-width:0;min-height:50px;align-items:center;justify-content:center;padding:7px 5px;border-radius:9px;font-size:.75rem;line-height:1.18;text-align:center;white-space:normal}
  .hero .route-direction{min-height:38px;padding:8px 10px;border-radius:10px;font-size:.64rem;line-height:1.35}
  .hero .field{margin-bottom:10px}
  .hero .field label{margin-bottom:5px;font-size:.61rem;letter-spacing:.055em}
  .hero .field input,.hero .field select{min-height:50px;padding-block:10px;font-size:16px}
  .hero .field-row{gap:9px}
  .hero .btn-primary{min-height:56px;border-radius:12px}
  .booking-needs{margin:3px 0 14px}
  .booking-needs legend{margin-bottom:8px;font-size:.68rem}
  .booking-needs-grid{display:grid;grid-auto-columns:140px;grid-auto-flow:column;grid-template-columns:none;gap:8px;max-width:100%;overflow-x:auto;padding:1px 1px 5px;scroll-padding-inline:1px;scroll-snap-type:x proximity;scrollbar-width:none}
  .booking-needs-grid::-webkit-scrollbar{display:none}
  .booking-need,.booking-need:last-child{grid-column:auto;scroll-snap-align:start}
  .booking-need span{height:50px;min-height:50px;padding:8px 10px;border-radius:11px;font-size:.67rem;line-height:1.2}
  .booking-price-promise{margin-top:12px;padding:11px 12px}
  .booking-price-promise b{font-size:.7rem}
  .booking-price-promise span{font-size:.64rem}
  .hero .booking-price-promise{background:#f1eee7;color:#151512}
  .hero .booking-price-promise span{color:#6f6b64}
  .bc-note{margin-top:11px;font-size:.7rem}

  /* Public cards and transaction pages share one edge and action grid. */
  .grid-cards{gap:12px}
  .route-card{min-height:108px;padding:18px;border-radius:16px}
  .fleet-card,.option-card,.detail-card,.summary-card,.contact-form,.acct-card{border-radius:18px}
  .fleet-card .t-visual{min-height:205px}
  .fleet-card .t-body{min-height:0;padding:20px}
  .option-card .oc-bottom{display:grid;grid-template-columns:1fr;gap:10px}
  .option-card .oc-bottom .btn{width:100%;min-width:0}
  .option-card{min-height:572px}
  #page-home .assurance-section .benefits-grid>:nth-child(n+4){display:block!important}
  .contact-page-heading{padding-top:42px}
  .manage-shell{padding:34px 0 72px}
  .manage-lookup{margin-top:26px}
  .cta-band{padding:40px 20px;border-radius:22px}
  .cta-band .h2{font-size:clamp(1.8rem,9vw,2.35rem)}
  .partner-card{align-items:stretch;padding:24px 20px;border-radius:20px}
  .sticky-cta{padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
  .sticky-cta .btn{min-height:50px}

  /* Operator application: actions align with the form controls. */
  .operator-apply-layout{gap:30px;padding:34px 0 68px}
  .operator-apply-layout>section .display{font-size:clamp(2.45rem,12.2vw,3.2rem);line-height:.95}
  .operator-join-actions{align-items:stretch;flex-direction:column;gap:12px}
  .operator-join-actions .btn{width:100%}
  .operator-apply-form{padding:20px 16px;border-radius:20px}
  .operator-apply-form button[type="submit"]{width:100%;min-height:56px}
  .operator-fleet-setup{padding:14px;border-radius:16px}
  .operator-fleet-card{padding:14px}
  .operator-fleet-card-head{align-items:flex-start;flex-direction:column;gap:3px}

  /* Operator app: compact sticky navigation and a consistent card gutter. */
  .portal-body{--header-h:76px}
  .portal-body .header,.portal-body .header-inner{height:76px}
  .portal-body .header-inner{padding-inline:16px}
  .portal-body .logo{font-size:1.08rem}
  .portal-body #portalTag{max-width:178px;font-size:.62rem;line-height:1.45}
  .dash-layout{min-height:calc(100vh - 76px)}
  .dash-side{position:sticky;z-index:82;top:76px;height:69px;min-height:69px;align-items:center;gap:6px;padding:12px 14px;border-bottom:1px solid var(--grey-200);background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(15px);scroll-padding-inline:14px}
  .dash-side>.dash-nav-item,.dash-side-tools>.dash-nav-item{width:auto;min-height:44px;flex:none;align-self:center;padding:10px 13px;border-radius:11px}
  .dash-side-tools{height:44px;align-items:center;margin:0!important;padding:0!important}
  .dash-side-tools>.seg{height:44px;margin:0!important;padding:3px}
  .dash-side-tools>.seg button{min-height:38px;padding:6px 8px;font-size:.72rem}
  .dash-main{width:100%;min-width:0;padding:24px 14px 68px}
  .dash-head{align-items:stretch;flex-direction:column;gap:15px;margin-bottom:22px}
  .dash-head h1{font-size:1.35rem}
  .dash-head>.btn{width:100%;min-height:50px}
  .kpi-grid{gap:10px;margin-bottom:20px}
  .kpi{min-height:102px;padding:15px;border-radius:16px}
  .overview-kpis .kpi{padding:14px}
  .dash-panel{margin-bottom:16px;border-radius:18px}
  .dash-panel-head{align-items:flex-start;padding:16px}
  .dash-panel-head .btn{width:100%}
  .operator-command-hero,.support-command-hero,.review-reputation-hero{padding:20px 17px;border-radius:19px}
  .operator-command-copy h2,.support-command-hero h2{font-size:1.38rem}
  .operator-command-stats article{min-height:82px;padding:12px}
  .operator-booking-grid,.operator-vehicle-grid,.operator-route-grid,.operator-driver-grid,.operator-review-grid{width:100%;gap:14px}
  .operator-booking-card,.operator-vehicle-card,.operator-route-card,.operator-driver-card,.operator-review-card{width:100%;border-radius:18px}
  .operator-booking-actions{align-items:stretch;flex-direction:column;padding:12px 14px}
  .operator-booking-actions .br-actions{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .operator-booking-actions .btn{width:100%;min-width:0;min-height:48px}
  .operator-booking-card .flight-inline-open{min-height:48px}
  .flight-card-open{min-height:44px;padding:7px 6px}
  .flight-watch{padding:18px 16px;border-radius:19px}
  .flight-watch-head{align-items:stretch;gap:16px}
  .flight-watch-tools{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .flight-auto-refresh,.flight-alert-toggle{grid-column:1/-1;width:100%;justify-content:space-between}
  .flight-alert-toggle{min-height:42px}
  .flight-watch-tools .btn{width:100%;min-width:0;min-height:52px;padding-inline:9px;font-size:.72rem}
  .flight-feed-health{margin-bottom:12px}
  .operator-card-actions{gap:10px;padding:12px 16px}
  .operator-card-actions .btn{width:100%;min-width:0;min-height:50px}
  .operator-vehicle-visual{min-height:0;max-height:none;aspect-ratio:8/5}
  .operator-vehicle-render img{padding:12px 14px 7px;object-fit:contain;object-position:center}
  .operator-route-card>header,.operator-route-card>footer{padding-inline:16px}
  .operator-route-fare{margin-inline:16px}
  .calendar-sync-card>.btn,.availability-sync-panel .calendar-sync-card>.btn{min-height:50px}
  .support-contact-card .btn{align-self:stretch;width:100%}
  .operator-support-compose>header,.operator-support-compose form{padding:18px 16px}
  .operator-support-submit>div{grid-template-columns:1fr}
  .operator-support-submit .btn{width:100%;min-height:48px}
  .support-topic-card>a,.support-topic-card>button{min-height:48px;padding-top:13px}
  .month-nav button{width:44px;height:44px}
  .operator-review-card>footer .btn{min-height:48px}
  .review-response-composer .btn{min-height:48px}
  .op-tour-card{width:calc(100vw - 24px);padding:22px;border-radius:20px}
  .op-tour-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .op-tour-actions .btn{width:100%;min-width:0;min-height:50px;padding-inline:10px}

  /* Route context belongs before the vehicle decision on a phone. */
  .results-grid{gap:16px}
  .results-grid .map-side{order:-1;width:100%;min-width:0}
  .results-grid .map-side .osm-map-panel{border-radius:18px;box-shadow:0 12px 34px rgba(17,18,15,.09)}
  .results-grid .map-side .map-canvas{height:260px}
  .results-grid .map-side .map-brand{top:12px;left:12px;min-height:36px;padding:7px 11px}
  .results-grid .map-side .map-foot{padding:12px 13px 10px}
  .results-grid .map-side .map-note{padding:0 13px 13px}

  /* One deliberate footer system: stacked groups, two-column links and
     full-width controls. This replaces the competing phone grids above. */
  .footer-shell{padding-top:40px;padding-bottom:calc(22px + env(safe-area-inset-bottom))}
  .footer-primary{gap:0}
  .footer-brand-block>p{margin:20px 0 22px;font-size:.87rem;line-height:1.6}
  .footer-contact{max-width:none;min-height:62px;padding:13px 0}
  .footer-nav-grid{display:grid;grid-template-columns:1fr;gap:0;margin-top:30px;border-top:1px solid #ffffff17}
  .footer-nav-group,.footer-nav-group:last-child{grid-column:auto;padding:20px 0;border-bottom:1px solid #ffffff17}
  .footer-nav-toggle{min-height:58px;cursor:pointer}.footer-nav-toggle span,.footer-operator-label{margin:0}.footer-nav-toggle svg{display:block;width:17px;height:17px;color:#878880;transition:transform .24s var(--ease)}.footer-nav-group.open .footer-nav-toggle svg{transform:rotate(180deg)}
  .footer-nav-group>div,.footer-nav-group:last-child>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px}
  .footer-nav-group>div[hidden]{display:none!important}.footer-nav-group.open>div{padding-bottom:16px}
  .footer-nav-group a{width:auto;min-height:42px;padding:5px 0;font-size:.84rem}
  .footer-operator-access{margin-top:24px;padding:18px;border-radius:16px}
  .footer-utility{gap:16px;margin-top:28px;padding-top:18px}
  .footer-preferences{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:10px;align-items:stretch}
  .footer .footer-language,.footer .footer-language select{width:100%;max-width:none}
  .footer .footer-language select,.footer .footer-theme{height:48px;min-height:48px}
  .footer .footer-theme{width:48px;padding:0}
  .footer .footer-theme span{display:none}
  .footer .footer-bottom{gap:4px;line-height:1.55}

  /* Special requests are a visible accordion instead of an unlabelled
     horizontal strip. The count and preview make all five choices obvious. */
  .booking-needs{overflow:hidden;margin:4px 0 14px;border:1px solid var(--grey-200);border-radius:13px;background:color-mix(in srgb,var(--paper) 94%,var(--grey-50))}
  .booking-needs>summary{display:flex;min-height:62px;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;list-style:none;cursor:pointer;user-select:none}
  .booking-needs>summary::-webkit-details-marker{display:none}
  .booking-needs-summary-copy{display:grid;min-width:0;gap:3px;text-align:left}
  .booking-needs-summary-copy b{font:800 .72rem/1.35 Manrope;color:var(--ink)}
  .booking-needs-summary-copy small{overflow:hidden;color:var(--grey-500);font-size:.61rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
  .booking-needs-summary-action{display:flex;flex:none;align-items:center;gap:8px}
  .booking-needs-summary-action>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:var(--ink);color:var(--paper);font:800 .66rem Manrope}
  .booking-needs.has-selection .booking-needs-summary-action>span{background:var(--lime);color:#11120f}
  .booking-needs-summary-action svg{width:16px;height:16px;color:var(--ink);transition:transform .24s var(--ease)}
  .booking-needs[open] .booking-needs-summary-action svg{transform:rotate(180deg)}
  .booking-needs>fieldset{padding:0 12px 12px;border-top:1px solid var(--grey-100)}
  .booking-needs legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .booking-needs-grid{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:none;overflow:visible;padding:12px 0 0;scroll-snap-type:none}
  .booking-need,.booking-need:last-child{grid-column:auto;scroll-snap-align:none}
  .booking-need span{height:100%;min-height:50px;padding:8px 9px}
}

@media(max-width:360px){
  .container{padding-inline:14px}
  .hero>.container{padding-inline:10px}
  .hero-grid{padding:26px 14px 18px;border-radius:22px}
  .hero-copy .display{font-size:2.25rem}
  .hero-trustline{grid-template-columns:1fr}
  .hero .card-form{padding:15px 13px}
  .hero .seg button{font-size:.69rem}
  .booking-needs-grid{grid-auto-columns:132px}
  .option-card{min-height:650px}
  .dash-main{padding-inline:12px}
  .portal-body #portalTag{max-width:150px;font-size:.58rem}
  .route-command-stats span{font-size:.47rem}
  .operator-route-path{grid-template-columns:minmax(56px,.72fr) 32px minmax(82px,1.15fr);padding-inline:13px}
}

@media(max-width:320px){
  .footer-nav-group>div,.footer-nav-group:last-child>div{grid-template-columns:1fr}
  .booking-needs-grid{grid-template-columns:1fr}
}

/* Tablets need a composed single-column hero; two compressed columns
   made both the editorial message and booking tool harder to use. */
@media(min-width:641px) and (max-width:900px){
  .hero{padding:14px 0 52px}
  .hero>.container{padding-inline:24px}
  .hero-grid{display:grid;min-height:0;grid-template-columns:1fr;gap:34px;padding:48px 40px;border-radius:30px}
  .hero-copy{order:1;max-width:650px}
  .hero #searchFormMount{order:2;width:100%;max-width:620px}
  .hero-copy .display{max-width:650px;margin:18px 0 20px;font-size:clamp(3.25rem,8vw,4.2rem);line-height:.94}
  .hero-copy .lead{max-width:620px}
  .hero .card-form{width:100%;max-width:620px;margin:0;padding:24px}
  .hero .seg button{min-height:50px}
  .hero .btn-primary{min-height:56px}
  .booking-needs-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
  .booking-need:last-child{grid-column:auto}
  .booking-need span{height:58px;min-height:58px;padding:8px;font-size:.65rem}
  .footer .footer-language select,.footer .footer-theme{min-height:48px}
  .flight-watch-tools{display:grid;width:min(100%,290px);grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .flight-auto-refresh,.flight-alert-toggle{grid-column:1/-1;width:100%;justify-content:space-between}
  .flight-watch-tools .btn{width:100%;min-width:0;min-height:48px;padding-inline:9px;font-size:.72rem}
}

@media(min-width:641px) and (max-width:959px){
  .portal-body{--header-h:76px}
  .portal-body .header,.portal-body .header-inner{height:76px}
  .dash-side{position:sticky;z-index:82;top:76px;height:69px;min-height:69px;padding:12px 18px;background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(15px)}
  .dash-side-tools{height:44px;margin:0!important;padding:0!important}
  .dash-side-tools>.seg{height:44px;margin:0!important;padding:3px}
  .dash-side-tools>.seg button{min-height:38px;padding-block:6px}
}

@media(min-width:901px){
  .booking-needs-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
  .booking-need:last-child{grid-column:auto}
  .booking-need span{height:100%;min-height:50px}
}

/* ShuttleMe mobile app: integrated product and install page. */
.app-home-section{padding-block:52px;background:var(--paper)}
.app-home-promo{display:grid;min-height:390px;grid-template-columns:minmax(0,.82fr) minmax(430px,1.18fr);align-items:center;gap:clamp(30px,5vw,70px);overflow:hidden;padding:clamp(34px,5vw,70px);border-radius:32px;background:#0b0c0a;color:#f7f5ef;box-shadow:0 30px 80px rgba(0,0,0,.14)}
.app-home-promo>div{position:relative;z-index:2}.app-home-promo .eyebrow{color:var(--lime)}.app-home-promo .h2{max-width:430px;margin:15px 0 16px;color:#fff;font-size:clamp(2.35rem,4vw,4.4rem);line-height:.94}.app-home-promo p{max-width:430px;margin:0 0 28px;color:#a9aaa3;line-height:1.7}.app-home-promo img{width:100%;height:auto;border:1px solid #ffffff16;border-radius:24px;box-shadow:0 25px 70px #0009}
.mobile-app-page{background:var(--paper)}
.mobile-app-hero{position:relative;overflow:hidden;padding:66px 0 78px;background:#0a0b09;color:#fff}
.mobile-app-hero:before{position:absolute;right:-12%;bottom:-65%;width:680px;height:680px;border-radius:50%;background:var(--lime);content:"";filter:blur(190px);opacity:.11;pointer-events:none}
.mobile-app-hero-grid{position:relative;display:grid;min-height:620px;grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);align-items:center;gap:clamp(45px,7vw,110px)}
.mobile-app-copy{position:relative;z-index:2}.mobile-app-copy .eyebrow{color:var(--lime)}.mobile-app-copy .display{max-width:650px;margin:22px 0 25px;color:#fff;font-size:clamp(4rem,6.2vw,7rem);line-height:.87}.mobile-app-copy .lead{max-width:580px;color:#aaa;line-height:1.68}.mobile-app-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:34px}.mobile-app-actions .btn{min-height:56px}.mobile-app-actions .btn-secondary{border-color:#ffffff27;background:#ffffff09;color:#fff}.mobile-app-actions .btn-secondary:hover{border-color:#ffffff55;background:#ffffff10}.mobile-app-proof{display:flex;align-items:center;gap:9px;margin:21px 0 0;color:#8e9088;font-size:.78rem}.mobile-app-proof svg{width:17px;height:17px;color:var(--lime)}
.mobile-app-visual{position:relative;display:block;overflow:hidden;border:1px solid #ffffff19;border-radius:34px;background:#080907;box-shadow:0 50px 130px #000b;transform:rotate(-1.3deg);transition:transform .45s var(--ease),border-color .25s}
.mobile-app-visual:hover{border-color:#c7ff1855;transform:rotate(0) translateY(-4px)}.mobile-app-visual img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.mobile-app-visual>span{position:absolute;right:20px;bottom:20px;display:flex;min-height:48px;align-items:center;gap:13px;padding:0 11px 0 18px;border-radius:999px;background:var(--lime);color:#11120f;font-size:.78rem;font-weight:800;box-shadow:0 12px 32px #0005}.mobile-app-visual>span svg{width:30px;height:30px;padding:8px;border-radius:50%;background:#11120f;color:var(--lime)}
.mobile-app-benefits{padding-block:100px}.mobile-app-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.mobile-app-feature-grid article{min-height:300px;padding:30px;border:1px solid var(--grey-200);border-radius:24px;background:var(--paper);box-shadow:0 18px 45px rgba(18,19,16,.05)}.mobile-app-feature-grid article>span{display:grid;width:52px;height:52px;place-items:center;margin-bottom:60px;border-radius:16px;background:#11120f;color:var(--lime)}.mobile-app-feature-grid svg{width:22px;height:22px}.mobile-app-feature-grid h3{margin:0 0 13px;font:800 1.35rem/1.15 Manrope;letter-spacing:-.035em}.mobile-app-feature-grid p{max-width:370px;margin:0;color:var(--grey-500);font-size:.9rem;line-height:1.68}
.mobile-app-install{padding-block:94px;background:#e9e6dd;color:#11120f;scroll-margin-top:90px}.mobile-app-install .eyebrow{color:#526611}.mobile-app-install .h2{color:#11120f}.mobile-app-install .section-head-row>.btn-secondary{border-color:#11120f;background:#11120f;color:#fff}.mobile-app-install .section-head-row>.btn-secondary:hover{border-color:#11120f;background:#2a2b25}.mobile-app-install-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:35px}.mobile-app-install-grid article{display:grid;min-height:180px;grid-template-columns:50px minmax(0,1fr);align-items:start;gap:18px;padding:26px;border:1px solid #c8c5bc;border-radius:20px;background:#f7f5ef;color:#11120f}.mobile-app-install-grid article>b{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;background:#11120f;color:var(--lime);font:800 .72rem Manrope}.mobile-app-install-grid h3{margin:3px 0 10px;color:#11120f;font:800 1.05rem Manrope}.mobile-app-install-grid p{margin:0;color:#55574f;font-size:.84rem;line-height:1.65}.mobile-app-final{padding-block:80px;background:var(--paper)}
html[data-theme="dark"] .mobile-app-page,html[data-theme="dark"] .app-home-section,html[data-theme="dark"] .mobile-app-benefits,html[data-theme="dark"] .mobile-app-final{background:#12130f}.mobile-app-page .cta-band{background:var(--lime);color:#11120f}.mobile-app-page .mobile-app-final .cta-band:after{border-color:rgba(17,18,15,.12);opacity:1}.mobile-app-page .mobile-app-final .cta-band .h2{color:#11120f}.mobile-app-page .mobile-app-final .cta-band p{color:#34372d}.mobile-app-page .cta-band .btn-inverse{background:#11120f;color:#fff}

@media(max-width:900px){
  .app-home-promo{min-height:0;grid-template-columns:1fr;padding:38px 28px}.app-home-promo img{order:-1}.app-home-promo .h2{font-size:clamp(2.5rem,8vw,3.8rem)}
  .mobile-app-hero{padding:42px 0 58px}.mobile-app-hero-grid{min-height:0;grid-template-columns:1fr;gap:42px}.mobile-app-copy .display{font-size:clamp(3.4rem,11vw,5.5rem)}.mobile-app-visual{width:min(100%,720px);margin:auto;transform:none}.mobile-app-feature-grid,.mobile-app-install-grid{grid-template-columns:1fr}.mobile-app-feature-grid article{min-height:0}.mobile-app-feature-grid article>span{margin-bottom:34px}.mobile-app-benefits,.mobile-app-install{padding-block:68px}
}
@media(max-width:640px){
  .app-home-section{padding-block:36px}.app-home-promo{gap:25px;padding:22px 18px 25px;border-radius:22px}.app-home-promo img{border-radius:16px}.app-home-promo .h2{font-size:2.45rem}.app-home-promo p{font-size:.88rem}.app-home-promo .btn{width:100%}
  .mobile-app-hero{padding:30px 0 48px}.mobile-app-hero-grid{gap:32px}.mobile-app-copy .display{margin:18px 0;font-size:3.35rem}.mobile-app-copy .lead{font-size:.94rem}.mobile-app-actions{display:grid;grid-template-columns:1fr;margin-top:27px}.mobile-app-actions .btn{width:100%;min-height:54px}.mobile-app-proof{align-items:flex-start;font-size:.72rem;line-height:1.5}.mobile-app-proof svg{flex:none;margin-top:1px}.mobile-app-visual{border-radius:20px}.mobile-app-visual>span{right:12px;bottom:12px;min-height:44px;font-size:.7rem}.mobile-app-benefits,.mobile-app-install,.mobile-app-final{padding-block:54px}.mobile-app-feature-grid{gap:11px}.mobile-app-feature-grid article{padding:23px;border-radius:19px}.mobile-app-feature-grid article>span{width:46px;height:46px;margin-bottom:28px}.mobile-app-install .section-head-row{align-items:stretch}.mobile-app-install .section-head-row .btn{width:100%}.mobile-app-install-grid{margin-top:25px}.mobile-app-install-grid article{min-height:0;grid-template-columns:42px minmax(0,1fr);gap:13px;padding:20px}.mobile-app-install-grid article>b{width:38px;height:38px}
}

/* v7.26 — route identity and illuminated flagship vehicle. */
.logo::before{
  content:""!important;
  display:block;
  flex:none;
  width:34px;
  height:34px;
  margin-right:9px;
  border-radius:11px;
  background:transparent url("/favicon.svg?v=3") center/contain no-repeat!important;
}
.hero-van-art{
  position:absolute;
  z-index:1;
  bottom:-4px;
  left:1.5%;
  width:min(68%,820px);
  aspect-ratio:1672/941;
  margin:0;
  opacity:.94;
  pointer-events:none;
  filter:saturate(.92) contrast(1.03);
}
.hero-van-art::after{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(17,18,15,.2),transparent 42%),linear-gradient(0deg,transparent 70%,rgba(17,18,15,.68));
  content:"";
}
.hero-van-art img{display:block;width:100%;height:100%;object-fit:contain;object-position:left bottom}
.page.active .hero-van-art{animation:sm-vehicle-arrive .9s .16s var(--ease) both}
@keyframes sm-vehicle-arrive{from{opacity:0;transform:translateX(34px) scale(.985)}to{opacity:.94;transform:none}}

@media(min-width:641px) and (max-width:900px){
  .hero-van-art{position:relative;bottom:auto;left:auto;order:2;width:100%;max-width:690px;margin:-18px 0 -10px;aspect-ratio:16/6;overflow:hidden;border-radius:20px}
  .hero-van-art img{object-fit:cover;object-position:64% 63%}
  .hero #searchFormMount{order:3}
}
@media(max-width:640px){
  .logo::before{width:32px;height:32px;border-radius:10px}
  .hero-van-art{position:relative;bottom:auto;left:auto;order:2;width:100%;margin:-8px 0 -4px;aspect-ratio:16/6.8;overflow:hidden;opacity:1}
  .hero-van-art::after{background:linear-gradient(0deg,transparent 68%,rgba(17,18,15,.55))}
  .hero-van-art img{object-fit:cover;object-position:58% 60%}
  .hero #searchFormMount{order:3}
}
@media(prefers-reduced-motion:reduce){.page.active .hero-van-art{animation:none}}

/* Homepage fleet photography must show the complete vehicle, never crop it. */
.fleet-preview .fleet-card .t-visual{background:#0d0e0c}
.fleet-preview .fleet-card .t-visual .veh-img{box-sizing:border-box;padding:10px 12px;background:#0d0e0c}
.fleet-preview .fleet-card .t-visual .veh-img img{object-fit:contain!important;object-position:center!important;background:#0d0e0c}

/* Small-phone legal navigation: every policy stays visible without a clipped carousel. */
@media(max-width:640px){
  .legal-layout aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:6px;padding:6px}
  .legal-layout aside a{justify-content:center;min-width:0;padding:9px 7px;text-align:center;white-space:normal;line-height:1.25}
}

/* Operator launch audit: consistent accessible action targets. */
.flight-detail-close{width:44px;height:44px}
.operator-booking-card .flight-inline-open,.operator-booking-actions .btn{min-height:44px}

/* v7.27 — confirmed-trip identity, duty, live GPS and safety controls. */
.operator-trip-launch{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;border-top:1px solid var(--grey-100);background:var(--paper)}
.operator-trip-launch>.btn{min-height:44px}.operator-trip-status,.operator-live-indicator{display:inline-flex;align-items:center;gap:7px;color:var(--grey-500);font:800 .62rem Manrope;letter-spacing:.04em;text-transform:uppercase}.operator-trip-status i,.operator-live-indicator i{width:8px;height:8px;border-radius:50%;background:var(--grey-300)}.operator-trip-status.is-en_route i,.operator-trip-status.is-passenger_on_board i,.operator-live-indicator.on i{background:var(--lime);box-shadow:0 0 0 5px rgba(191,239,34,.14)}
.operator-trip-control{padding:18px;border-top:1px solid #2b2d26;background:#10110e;color:#fff}.operator-trip-control>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.operator-trip-control .eyebrow{color:var(--lime)}.operator-trip-control h3{margin:4px 0 0;color:#fff;font:800 1.05rem/1.25 Manrope;letter-spacing:-.025em}.operator-trip-loading{padding:20px;color:#b7b9b0;text-align:center}.operator-live-indicator{color:#8f9189}.operator-trip-warning{display:flex;flex-direction:column;gap:4px;margin-bottom:13px;padding:12px 13px;border:1px solid #ffcc5b42;border-radius:12px;background:#ffcc5b10}.operator-trip-warning b{color:#ffda85;font-size:.75rem}.operator-trip-warning span{color:#c8c9c3;font-size:.7rem;line-height:1.45}
.operator-trip-identities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.operator-trip-identities article{display:grid;min-width:0;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:12px;padding:12px;border:1px solid #ffffff18;border-radius:14px;background:#ffffff08}.operator-trip-identities img,.operator-identity-placeholder{display:grid;width:58px;height:58px;place-items:center;border-radius:12px;background:#23251f;object-fit:cover}.operator-identity-placeholder svg{width:22px;height:22px;color:var(--lime)}.operator-trip-identities div{display:flex;min-width:0;flex-direction:column;gap:3px}.operator-trip-identities span{color:#999b94;font-size:.58rem;text-transform:uppercase}.operator-trip-identities b{overflow:hidden;color:#fff;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.operator-trip-identities small{overflow:hidden;color:#bdc0b7;font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}
.operator-duty-bar{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1fr) auto;align-items:center;gap:14px;margin-top:11px;padding:13px;border:1px solid #ffffff16;border-radius:14px;background:#080906}.operator-duty-bar>div{display:flex;min-width:0;flex-direction:column;gap:4px}.operator-duty-bar span{color:#90938a;font-size:.58rem;text-transform:uppercase}.operator-duty-bar b{color:#fff;font-size:.76rem}.operator-duty-bar i{display:block;overflow:hidden;width:100%;height:4px;border-radius:99px;background:#2b2e27}.operator-duty-bar i span{display:block;height:100%;border-radius:inherit;background:var(--lime)}.operator-duty-actions{flex-direction:row!important;flex-wrap:wrap;justify-content:flex-end}.operator-duty-actions .btn{min-height:40px}.operator-trip-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.operator-trip-actions>div{display:flex;flex-wrap:wrap;gap:8px}.operator-trip-actions .btn{min-height:44px}.operator-emergency-btn{border:1px solid #ff6b6b70!important;background:#4b1517!important;color:#fff!important}.operator-emergency-btn:hover{background:#641b1f!important}.operator-emergency-note{margin:10px 0 0!important;color:#8f918a;font-size:.64rem;line-height:1.5}
.operator-customer-rating{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(180px,1fr) auto;align-items:end;gap:9px;margin-top:14px;padding-top:14px;border-top:1px solid #ffffff15}.operator-customer-rating label{display:flex;flex-direction:column;gap:6px}.operator-customer-rating label span{color:#a5a7a0;font-size:.62rem}.operator-customer-rating select,.operator-customer-rating input{width:100%;min-height:44px;border:1px solid #ffffff24;border-radius:10px;background:#20221d;padding:0 12px;color:#fff}.operator-rating-saved{margin-top:14px;padding:11px;border-radius:10px;background:#bff02218;color:var(--lime);font-size:.72rem}.operator-driver-avatar.is-photo{object-fit:cover;color:transparent}.operator-vehicle-card .vehicle-service-editor .field-row3{grid-column:1/-1;width:100%}

@media(max-width:820px){.operator-duty-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-duty-actions{grid-column:1/-1;justify-content:flex-start}.operator-customer-rating{grid-template-columns:1fr 1fr}.operator-customer-rating .btn{grid-column:1/-1;width:100%}}
@media(max-width:640px){.operator-trip-launch{align-items:stretch;flex-direction:column}.operator-trip-launch>.btn{width:100%}.operator-trip-status{justify-content:center}.operator-trip-control{padding:14px}.operator-trip-control>header{flex-direction:column}.operator-trip-identities{grid-template-columns:1fr}.operator-duty-bar,.operator-customer-rating{grid-template-columns:1fr}.operator-duty-actions,.operator-customer-rating .btn{grid-column:auto}.operator-duty-actions .btn,.operator-trip-actions .btn{width:100%}.operator-trip-actions{align-items:stretch;flex-direction:column}.operator-trip-actions>div{display:grid;grid-template-columns:1fr;width:100%}.operator-emergency-btn{width:100%}}

/* Passenger account live-trip modal. */
.customer-live-trip{display:grid;gap:15px}.customer-live-head{padding-right:40px}.customer-live-head h2{margin:6px 0 9px;font-size:clamp(1.35rem,4vw,2rem);line-height:1.05}.customer-live-head>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.customer-live-head>div>b{color:var(--grey-500);font-size:.68rem}.customer-live-status{display:inline-flex;align-items:center;gap:7px;color:#5c761c;font:800 .67rem Manrope;text-transform:uppercase}.customer-live-status i{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(191,239,34,.16)}.customer-live-trip .map-panel{margin:0}.customer-live-trip .map-canvas{min-height:300px}.customer-live-identities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.customer-live-identities article{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;padding:12px;border:1px solid var(--grey-200);border-radius:15px;background:var(--paper)}.customer-live-identities img,.customer-live-placeholder{display:grid;width:72px;height:72px;place-items:center;border-radius:13px;background:var(--ink);object-fit:cover}.customer-live-placeholder svg{width:23px;height:23px;color:var(--lime)}.customer-live-identities article>div{display:flex;min-width:0;flex-direction:column;gap:4px}.customer-live-identities small{color:#6c851f;font:800 .55rem Manrope;text-transform:uppercase}.customer-live-identities b{overflow:hidden;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.customer-live-identities span{color:var(--grey-500);font-size:.65rem}.customer-live-safety{padding:16px;border:1px solid #ddb8b4;border-radius:17px;background:#fff4f2}.customer-live-safety>div:first-child b{font:800 .85rem Manrope}.customer-live-safety p{margin:5px 0 0;color:#705f5b;font-size:.7rem}.customer-live-safety>.customer-emergency-action{width:100%;min-height:50px;margin:13px 0 9px;border-radius:12px;background:#9f252d;color:#fff;font:800 .72rem Manrope}.customer-live-safety>div:nth-of-type(2){display:flex;gap:7px}.customer-live-safety>div:nth-of-type(2) .btn{flex:1}.customer-live-safety>small{display:block;margin-top:9px;color:#806e6a;font-size:.6rem;line-height:1.45}.customer-live-rating{display:grid;grid-template-columns:1fr 160px;gap:10px;padding:16px;border:1px solid var(--grey-200);border-radius:17px}.customer-live-rating>div b{font:800 .85rem Manrope}.customer-live-rating>div p{margin:5px 0 0;color:var(--grey-500);font-size:.67rem}.customer-live-rating select,.customer-live-rating textarea{min-height:44px;border:1px solid var(--grey-200);border-radius:10px;background:var(--paper);padding:10px;color:var(--ink)}.customer-live-rating textarea{grid-column:1/-1;min-height:78px;resize:vertical}.customer-live-rating .btn{grid-column:1/-1}.customer-live-rating-saved,.customer-trip-feedback{margin:0;padding:11px 13px;border-radius:11px;background:#edf4da;color:#506719;font-size:.68rem}.sm-live-vehicle-wrap{border:0!important;background:transparent!important}.sm-live-vehicle-marker{position:relative;display:grid;width:44px;height:44px;place-items:center;border:3px solid #fff;border-radius:50%;background:var(--ink);box-shadow:0 8px 24px #0006}.sm-live-vehicle-marker:before{position:absolute;inset:-7px;border:2px solid var(--lime);border-radius:50%;content:"";animation:sm-live-pulse 1.8s ease-out infinite}.sm-live-vehicle-marker i{width:13px;height:13px;border-radius:4px;background:var(--lime)}.sm-live-vehicle-marker b{position:absolute;top:47px;left:50%;padding:3px 7px;border-radius:7px;background:var(--ink);color:#fff;font-size:8px;transform:translateX(-50%);white-space:nowrap}@keyframes sm-live-pulse{from{opacity:.8;transform:scale(.75)}to{opacity:0;transform:scale(1.3)}}
@media(max-width:640px){.customer-live-trip .map-canvas{min-height:260px}.customer-live-identities{grid-template-columns:1fr}.customer-live-safety>div:nth-of-type(2){display:grid;grid-template-columns:1fr}.customer-live-safety>div:nth-of-type(2) .btn{width:100%}.customer-live-rating{grid-template-columns:1fr}.customer-live-rating textarea,.customer-live-rating .btn{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.sm-live-vehicle-marker:before{animation:none}}
