/* Rovego UI kit — the only stylesheet that styles controls. Spec: docs/ui-system.md.
   One layer, declared first in every page head, so its !important rules outrank page CSS. */
@layer rovego-kit {

  :root {
    /* Original warm palette, shared by every page. No glass color shifts. */
    --bg:#fbfbfa !important; --card:#ffffff !important; --card-2:#f2f2ef !important;
    --label:#30483d !important; --label-2:#6b716d !important; --label-3:#87928d !important;
    --tint:#38594b !important; --on-tint:#fff !important; --tint-soft:rgba(56,89,75,.09) !important;
    --sep:rgba(110,112,108,.15) !important; --fill:rgba(110,112,108,.07) !important;
    --fill-2:rgba(110,112,108,.04) !important; --fill-3:rgba(110,112,108,.15) !important;
    --glass:var(--card) !important; --glass-strong:var(--card) !important;
    --glass-edge:var(--sep) !important; --glass-spec:transparent !important; --glass-rim:transparent !important;
    --glass-shadow:0 6px 20px rgba(0,0,0,.08) !important;
    --ui-field-bg:color-mix(in srgb,var(--card) 93%,rgb(110,112,108));
    --liquid-tile:var(--card); --liquid-hover:var(--fill); --liquid-field:var(--ui-field-bg);
    --liquid-sheen:none; --liquid-blur:none; --liquid-inset:0 0 0 transparent;
    --liquid-backdrop:var(--bg);
    --lg-panel:var(--bg) !important; --lg-card:var(--card) !important;
    --lg-card-hover:var(--card-2) !important; --lg-float:var(--card) !important;
    --lg-fill:var(--fill) !important; --lg-fill-hover:var(--fill-3) !important;
    --lg-active:var(--card-2) !important; --lg-edge:var(--sep) !important;
    --lg-hair:var(--sep) !important; --lg-band:var(--bg) !important;
    --lg-spec:0 0 0 transparent !important; --lg-blur:none !important; --lg-blur-soft:none !important;
    --forecast-glass:var(--card) !important; --forecast-tile:var(--card-2) !important;
  }
  :root[data-theme="dark"] {
    --bg:#101112 !important; --card:#191b1c !important; --card-2:#202224 !important;
    --label:#d7d9da !important; --label-2:#a2a5a8 !important; --label-3:#7d8286 !important;
    --tint:#86b1a2 !important; --on-tint:#e4ebe7 !important; --tint-soft:rgba(134,177,162,.10) !important;
    --sep:rgba(255,255,255,.08) !important; --fill:rgba(148,151,157,.10) !important;
    --fill-2:rgba(148,151,157,.06) !important; --fill-3:rgba(148,151,157,.17) !important;
    --glass-shadow:0 6px 20px rgba(0,0,0,.24) !important;
    --ui-field-bg:var(--card-2);
  }
  html,body,.app,.auth-page,.trips-page {
    background:var(--liquid-backdrop) !important;
    color:var(--label) !important;
  }
  /* Surfaces share the original off-white card, without new rings or glass effects. */
  :is(.trip-library,.opt-card,.route-choice-card,.poster-card,.inspiration-sheet,
      .collab-dialog,.flight-timing-review,.late-dialog,.detail-panel,.dc-panel,
      .tree-panel,.trip-insights,.auth-card,.tool-menu,.it-day-menu,.lang-menu,
      .gsel-menu,.route-ac,.sp-ac,.map-search-results,#destinationSearchResults,
      .route-compare,.rc-preview,.toast) {
    background:var(--card) !important;
    color:var(--label) !important;
    border-color:var(--sep) !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
  }
  :is(.saved-route,.stay-pick,.price-panel,.compare-card,.dc-card,.dc-cmp,
      .airport-plan-card,.flight-ask,.route-choice-action,.hp-row) {
    background:var(--card) !important;
    color:var(--label) !important;
    border-color:var(--sep) !important;
    box-shadow:none !important;
  }
  :is(.sidebar.glass,.rv-band,.trip-head,.rv-dock,.rv-settings,.mobile-switch,
      .account-entry,.map-pill,.map-search-field,.tool-btn.icon,.sp-sheet,.sp-card) {
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
  }
  .sidebar.glass,.rv-band { background:var(--bg) !important; }
  :is(.map-pill,.tool-btn.icon) { box-shadow:none !important; }
  .admin-page :is(header,section:not(.stats),dialog) {
    background:var(--card) !important;
    color:var(--label) !important;
    border-color:var(--sep) !important;
    box-shadow:none !important;
  }
  .admin-page :is(p,th,.muted) { color:var(--label-2) !important; }
  .admin-page a { color:var(--tint) !important; }
  .admin-page .stat { background:var(--fill) !important; }
  .admin-page :is(td,th) { border-color:var(--sep) !important; }

  .admin-page :is(header,section:not(.stats),dialog) { background:var(--card) !important; color:var(--label) !important; border-color:var(--sep) !important; box-shadow:none !important; }
  .admin-page :is(p,th,.muted) { color:var(--label-2) !important; }
  .admin-page a { color:var(--tint) !important; }
  .admin-page .stat { background:var(--fill) !important; }
  .admin-page :is(td,th) { border-color:var(--sep) !important; }

  /* ───────────── Components ───────────── */
  :root {
    --ui-h:30px; --ui-h-compact:24px;
    --ui-r-field:12px; --ui-r-tile:16px; --ui-r-menu:16px;
    --ui-gap:8px; --ui-inset:12px; --ui-icon:18px;
    --ui-duration:160ms; --ui-curve:cubic-bezier(.2,.75,.25,1);
    --ui-font:-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif;
    --ui-fill-action:var(--tint);
    --ui-dash:#4340d0;
    --ui-ring:0 0 0 3px color-mix(in srgb,var(--tint) 28%,transparent);
  }
  :root[data-theme="dark"] { --ui-fill-action:#294d42; }

  /* Focus: no outline of any kind on mouse/touch focus; one soft ring for the keyboard. */
  :root :focus,:root :focus-visible { outline:0 !important; }
  :root :is(button,summary,a,[role="button"],[tabindex]):focus-visible,
  :root :is(input,select,textarea):focus-visible,
  :root .gsel[aria-expanded="true"] { box-shadow:var(--ui-ring) !important; }
  :root :is(input[type="checkbox"],input[type="radio"]):focus-visible { box-shadow:var(--ui-ring) !important; }

  .ui-control {
    --h:var(--ui-h);
    box-sizing:border-box !important;
    font-family:var(--ui-font) !important;
    font-size:var(--ui-font-size,13px) !important;
    line-height:1.4 !important;
    letter-spacing:normal !important;
    -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
    transition:background-color 220ms ease,color 220ms ease,box-shadow var(--ui-duration),transform var(--ui-duration) var(--ui-curve) !important;
  }
  .ui-control[data-ui-size="compact"] { --h:var(--ui-h-compact); }

  /* 1 · button · icon · chip share one frame */
  .ui-control:is([data-ui="button"],[data-ui="icon"],[data-ui="chip"],[data-ui="select"]) {
    display:inline-flex; align-items:center !important; justify-content:center !important;
    gap:var(--ui-gap) !important; min-width:0;
    height:var(--h) !important; min-height:var(--h) !important;
    padding:0 var(--ui-inset) !important;
    border-radius:999px !important;
    vertical-align:middle; font-weight:600 !important; text-decoration:none; cursor:pointer;
  }
  .ui-control:is([data-ui="button"],[data-ui="icon"],[data-ui="chip"]):not(.auth-apple) {
    background:var(--card) !important; color:var(--label) !important;
    border:1px solid var(--sep) !important; box-shadow:none !important;
  }
  .ui-control[data-ui="chip"] { --h:var(--ui-h-compact); padding:0 10px !important; }
  .mp.ui-control,.mode-pick .ui-control { width:var(--ui-h-compact) !important; min-width:var(--ui-h-compact) !important; height:var(--ui-h-compact) !important; padding:0 !important; border-radius:50% !important; }
  .ui-control[data-ui="icon"] {
    width:var(--h) !important; min-width:var(--h) !important; padding:0 !important;
    flex-shrink:0; border-radius:50% !important;
  }
  .ui-symbol,.ui-control[data-ui="icon"] svg { display:block; width:var(--ui-icon) !important; height:var(--ui-icon) !important; flex:none; pointer-events:none; }

  /* primary / selected / danger */
  .ui-control:is(.primary,.primary-lite,.ui-primary,.auth-continue,#authSubmit,[type="submit"]):not(.auth-apple),
  .ui-control:is(.on,.active,[aria-pressed="true"],[aria-selected="true"],[aria-checked="true"]):not([data-ui="row"]):not([data-ui="tile"]):not([data-ui="field"]):not([data-ui="select"]) {
    background:var(--ui-fill-action) !important; border-color:var(--ui-fill-action) !important;
    color:var(--on-tint) !important; box-shadow:none !important;
  }
  .ui-control:is(.danger,.hc-del) { color:var(--red) !important; }
  .hover-card .hc-act .ui-control.secondary { background:rgba(255,255,255,.14) !important; color:#fff !important; border-color:rgba(255,255,255,.22) !important; }

  /* 2 · text · link: no frame, place names and inline actions */
  .ui-control:is([data-ui="text"],[data-ui="link"]) {
    display:inline; height:auto !important; min-height:0 !important; min-width:0;
    padding:0 !important; margin:0; border:0 !important; border-radius:6px !important;
    background:transparent !important; box-shadow:none !important; text-align:left;
    cursor:pointer; text-decoration:none;
  }
  .ui-control[data-ui="text"] { color:var(--label) !important; font-weight:600 !important; }
  .ui-control[data-ui="link"] { color:var(--tint) !important; font-weight:600 !important; }
  .ui-control[data-ui="link"]:hover { text-decoration:underline; }
  .ui-control[data-ui="text"].pc-name { display:block; white-space:normal !important; overflow-wrap:anywhere; }
  .pc-name-input.pc-name-input.pc-name-input[data-ui] { display:block; width:100%; min-width:0; height:var(--ui-h-compact) !important; padding:0 6px !important; border:1px dashed var(--ui-dash) !important; border-radius:4px !important; background:transparent !important; text-overflow:ellipsis; cursor:pointer; }
  .it-badge[data-toggle] { cursor:pointer; }
  .ui-control[data-ui="text"].it-handle { display:inline-flex; align-items:center; justify-content:center; width:var(--ui-h-compact) !important; height:var(--ui-h-compact) !important; color:var(--label-3) !important; }

  /* 3 · disclosure */
  .ui-control[data-ui="disclosure"] {
    display:flex; align-items:center; gap:var(--ui-gap); min-height:var(--h); list-style:none !important; cursor:pointer;
  }
  .ui-control[data-ui="disclosure"]::-webkit-details-marker { display:none; }
  .ui-control[data-ui="disclosure"]::after {
    content:''; flex:none; width:6px; height:6px; margin-left:auto; margin-right:4px;
    border:solid currentColor; border-width:0 1.5px 1.5px 0; transform:rotate(-45deg);
    transition:transform var(--ui-duration) var(--ui-curve); opacity:.6;
  }
  details[open] > .ui-control[data-ui="disclosure"]::after { transform:rotate(45deg); }

  /* 4 · field (input) and select (trigger) are one component */
  .ui-control:is([data-ui="field"],[data-ui="select"],[data-ui="inline-field"]) {
    height:var(--h) !important; min-height:var(--h) !important; min-width:0;
    padding:0 var(--ui-inset) !important;
    background-color:var(--ui-field-bg) !important; color:var(--label) !important;
    border:0 !important; border-radius:var(--ui-r-field) !important; box-shadow:none !important;
    font-weight:500 !important;
  }
  .ui-control[data-ui="field"]:is(.it-time-input,[data-time24]) { min-width:58px; }
  .timeline-axis-pill .ui-control.ui-control.ui-control[data-ui][data-ui-size] { border:0 !important; padding:0 !important; min-width:0 !important; width:100%; text-align:center; background:transparent !important; }
  .ui-control[data-ui="field"].cx-time-in { border:0 !important; padding:0 !important; min-width:0; width:100%; text-align:center; }
  .ui-control[data-ui="field"][type="number"] { min-width:44px; }
  .egress-frame.ui-control { height:auto !important; min-height:var(--ui-h-compact) !important; padding:4px 10px !important; white-space:normal !important; text-align:left; border-radius:14px !important; justify-content:flex-start !important; }
  .ai-plan-btn.ui-control { height:auto !important; min-height:var(--ui-h) !important; padding:4px 12px !important; text-align:left; }
  .sidebar:has(.path-section.show) { padding-bottom:6px !important; }
  .airport-pick-row.airport-pick-row.airport-pick-row,.airport-plan-content > * { border-top-color:var(--ui-dash) !important; }
  .airport-pick-row.airport-pick-row.airport-pick-row { min-height:26px !important; padding-top:2px !important; padding-bottom:2px !important; }
  .ap-code-input.ap-code-input.ap-code-input[data-ui][data-ui-size] { width:54px; padding:0 2px !important; font-weight:700 !important; text-transform:uppercase; text-align:center; transition:width var(--ui-duration) var(--ui-curve) !important; }
  .ap-code-input.ap-code-input.ap-code-input[data-ui][data-ui-size]:focus { width:128px; text-transform:none; text-align:left; padding:0 6px !important; }
  /* Template: the dashed transparent field — every amount, address, time, airport/station detail inside a card */
  .ui-control:is([data-ui="field"],[data-ui="select"])[data-ui-size="compact"] {
    background:transparent !important; border:1px dashed var(--ui-dash) !important;
    border-radius:8px !important; padding:0 6px !important; font-weight:500 !important;
  }
  .ui-control[data-ui="select"][data-ui-size="compact"] { padding:0 4px 0 6px !important; gap:4px !important; }
  .ui-control[data-ui="field"]:is([type="number"],[type="time"],.it-time-input,.cx-time-in,[data-time24],.flight-no-edit) { padding:0 6px !important; text-align:center; }
  .ui-control[data-ui="select"] { justify-content:space-between !important; overflow:hidden; }
  .ui-control[data-ui="inline-field"] { background-color:transparent !important; border-radius:8px !important; padding:0 4px !important; }
  textarea.ui-control[data-ui="field"] { min-height:104px !important; height:auto !important; padding:12px !important; line-height:1.5 !important; resize:vertical; }
  .ui-control::placeholder { color:var(--label-3) !important; opacity:1; font-weight:400 !important; }
  :is(.date-box,.daily-budget-input,.pc-swap-field,.map-search-field,.hm-in) { background:var(--ui-field-bg) !important; border:0 !important; box-shadow:none !important; }
  .pc-cost { border:1px dashed var(--ui-dash) !important; background:transparent !important; box-shadow:none !important; border-radius:8px !important; color:var(--label-2) !important; }
  .pc-cost .ui-control.ui-control.ui-control[data-ui][data-ui-size] { border:0 !important; background:transparent !important; height:20px !important; min-height:0 !important; padding:0 4px !important; }
  .ui-control:is([aria-invalid="true"],.bad) { box-shadow:0 0 0 2px var(--red) !important; }
  .ui-control:is(:disabled,[aria-disabled="true"]) { opacity:.4 !important; cursor:default !important; transform:none !important; filter:none !important; }

  /* 5 · tile (season, add-here types): flat, no frame, soft fill */
  .ui-control[data-ui="tile"] {
    border:0 !important; border-radius:var(--ui-r-tile) !important;
    background:var(--fill-2) !important; box-shadow:none !important; color:var(--label) !important;
    cursor:pointer; white-space:normal !important; text-align:center;
  }
  .ui-control[data-ui="tile"]:is(.on,.active,[aria-pressed="true"]) { background:color-mix(in srgb,var(--tint) 16%,var(--card)) !important; color:var(--tint) !important; }
  .ui-control[data-ui="tile"].on .ss-name { color:var(--tint) !important; }
  .ui-control[data-ui="tile"].is-dim { opacity:.4 !important; }
  .ui-control[data-ui="tile"] .ui-symbol { width:24px !important; height:24px !important; }
  .ins-types.ins-six button { min-height:76px !important; height:auto !important; padding:10px 4px !important; }
  .ins-choice-label { max-width:100%; overflow-wrap:anywhere; }
  .ins-results:empty { display:none !important; height:0 !important; }
  .it-insert-panel { background:var(--card) !important; border:0 !important; box-shadow:none !important; }
  #spSeasons,#spSeasons .ss-grid,#spSeasons #intelPanel { background:transparent !important; border:0 !important; box-shadow:none !important; }

  /* 6 · row (list item / card button) */
  .ui-control[data-ui="row"] { cursor:pointer; text-align:left; }
  .ui-control[data-ui="row"]:hover { background:var(--fill) !important; }

  /* 7 · segmented group */
  .ui-segmented { gap:3px !important; padding:3px !important; border:1px solid var(--sep) !important; border-radius:999px !important; background:var(--fill) !important; box-shadow:none !important; }
  .ui-segmented > .ui-control { flex:1 1 0; min-width:0; border:1px solid transparent !important; border-radius:999px !important; background:transparent !important; box-shadow:none !important; color:var(--label-2) !important; }
  .ui-segmented > .ui-control:is(.on,.active,[aria-selected="true"],[aria-pressed="true"],[aria-checked="true"]) { background:var(--card) !important; color:var(--label) !important; border-color:var(--sep) !important; }

  /* 8 · select menu + custom select glyphs */
  .gsel-v { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .gsel-chev { width:14px !important; height:14px !important; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex:none; }
  .gsel[aria-expanded="true"] .gsel-chev { transform:rotate(180deg); }
  .arrow-pick:has(> .gsel) { display:inline-flex !important; width:auto !important; height:auto !important; max-width:100%; vertical-align:middle; }
  :is(.daily-budget-input,.bg-in) > .gsel { flex:0 0 auto; max-width:90px; --ui-inset:7px; --ui-gap:3px; }
  :is(.sp-car,.ed-field) > .gsel { width:100%; }
  .gsel-menu,.lang-menu,.tool-menu,.it-day-menu,.map-search-results,#destinationSearchResults,.route-ac,.sp-ac { border-radius:var(--ui-r-menu) !important; padding:6px !important; }
  .gsel-menu,#destinationSearchResults {
    box-sizing:border-box; background:var(--card) !important; border:1px solid var(--sep) !important;
    box-shadow:var(--glass-shadow) !important; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain;
  }
  .gsel-menu { position:fixed; z-index:10000; }
  .gsel-opt,.ui-menu-option {
    display:flex !important; align-items:center; position:relative !important; box-sizing:border-box !important;
    min-height:var(--ui-h) !important; padding:6px 12px 6px 32px !important; border-radius:10px !important;
    color:var(--label); font-family:var(--ui-font) !important; font-size:var(--ui-font-size,13px) !important;
    font-weight:500 !important; line-height:1.4 !important; white-space:nowrap !important; cursor:pointer;
  }
  .ui-menu-option { width:100%; flex-direction:column; align-items:flex-start; justify-content:center; border:0; background:transparent; text-align:left; }
  .ui-menu-option strong { font-weight:500 !important; white-space:nowrap !important; }
  .ui-menu-option small { display:block; color:var(--label-2); margin-top:2px; }
  .ui-menu-option[data-current="true"]::before,.gsel-opt[aria-selected="true"]::before { content:'✓'; position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--tint); font-weight:600; }
  .ui-menu-option:hover,.ui-menu-option[aria-selected="true"],.gsel-opt.is-active { background:var(--tint-soft) !important; color:var(--tint) !important; }
  .gsel-opt[aria-selected="true"] { font-weight:600 !important; }
  .gsel-opt[aria-disabled="true"] { opacity:.4; cursor:default; }
  :is(.lang-menu,.tool-menu,.it-day-menu) .ui-control[data-ui="button"] { width:100%; justify-content:flex-start !important; border-radius:10px !important; border-color:transparent !important; background:transparent !important; }
  :root select.gsel-native {
    position:absolute !important; width:1px !important; min-width:0 !important; max-width:1px !important;
    height:1px !important; min-height:0 !important; padding:0 !important; margin:0 !important; border:0 !important;
    opacity:0 !important; pointer-events:none !important; clip-path:inset(50%);
  }
  #destinationSearchForm #destinationCaret {
    position:absolute !important; inset:50% 12px auto auto !important; transform:translateY(-50%) !important;
    display:block !important; width:14px !important; height:14px !important; min-width:0 !important; min-height:0 !important;
    padding:0 !important; margin:0 !important; border:0 !important; border-radius:0 !important; background:none !important;
    box-shadow:none !important; color:var(--label-2) !important; pointer-events:none;
  }
  #destinationCaret svg { display:block; width:100%; height:100%; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
  #destinationSearchForm:has([aria-expanded="true"]) #destinationCaret svg { transform:rotate(180deg); }
  #destinationSearchForm #destinationSearchInput { padding-right:36px !important; }

  /* 9 · checkbox · radio · switch · range */
  .ui-control:is([data-ui="checkbox"],[data-ui="radio"]) {
    -webkit-appearance:none !important; appearance:none !important;
    display:inline-grid !important; place-content:center; position:relative !important; opacity:1 !important; flex:none;
    width:18px !important; min-width:18px !important; height:18px !important; min-height:18px !important;
    margin:0 6px 0 0 !important; padding:0 !important; border:1px solid var(--sep) !important; border-radius:5px !important;
    background:var(--ui-field-bg) !important; vertical-align:middle; cursor:pointer;
  }
  .ui-control[data-ui="checkbox"]:checked { background:var(--tint) !important; border-color:var(--tint) !important; }
  .ui-control[data-ui="checkbox"]::after { content:''; position:static !important; display:block; width:8px; height:4px; border:solid var(--on-tint); border-width:0 0 2px 2px; border-radius:0 !important; background:transparent !important; transform:rotate(-45deg) scale(0); box-shadow:none !important; }
  .ui-control[data-ui="checkbox"]:checked::after { transform:translateY(-1px) rotate(-45deg) scale(1); }
  .ui-control[data-ui="radio"] { border-radius:50% !important; }
  .ui-control[data-ui="radio"]:checked { border:5px solid var(--tint) !important; background:var(--on-tint) !important; }
  .switch { display:inline-flex !important; align-items:center; width:auto !important; height:auto !important; }
  .switch .slider { display:none !important; }
  .ui-control[data-ui="checkbox"]:is([role="switch"],.switch input) { display:inline-block !important; width:44px !important; min-width:44px !important; height:26px !important; min-height:26px !important; border-radius:999px !important; background:var(--fill-3) !important; overflow:hidden; }
  .ui-control[data-ui="checkbox"]:is([role="switch"],.switch input)::after { position:absolute !important; inset:2px auto auto 2px !important; width:20px !important; height:20px !important; border:0 !important; border-radius:50% !important; background:#fff !important; box-shadow:0 1px 4px rgba(0,0,0,.2) !important; transform:translateX(0) !important; transition:transform var(--ui-duration) var(--ui-curve); }
  .ui-control[data-ui="checkbox"]:is([role="switch"],.switch input):checked { background:var(--tint) !important; border-color:var(--tint) !important; }
  .ui-control[data-ui="checkbox"]:is([role="switch"],.switch input):checked::after { transform:translateX(18px) !important; }
  .ui-control[data-ui="range"] { accent-color:var(--tint); cursor:pointer; }
  .auth-password #showPassword { position:absolute; right:5px; top:4px; --h:28px; }

  /* 10 · states: hover and press are the only motion */
  /* Hover: the control's own colour deepens (animated by the transition on .ui-control). */
  @media (hover:hover) {
    .ui-control:is([data-ui="button"],[data-ui="icon"],[data-ui="chip"],[data-ui="select"],[data-ui="tile"],[data-ui="row"],[data-ui="field"],[data-ui="inline-field"],[data-ui="disclosure"],.ui-segmented > *):not(:disabled):not([aria-disabled="true"]):not(.is-dim):not(.primary):not(.ui-primary):not(.on):not(.active):not([aria-pressed="true"]):hover {
      background-color:color-mix(in srgb,var(--label) 11%,var(--card)) !important;
    }
    .ui-control:is(.primary,.ui-primary,.on,.active,[aria-pressed="true"]):not(:disabled):hover { background-color:color-mix(in srgb,#000 22%,var(--ui-fill-action)) !important; }
    .ui-control[data-ui="text"]:hover,.ui-control[data-ui="link"]:hover { color:color-mix(in srgb,var(--tint) 60%,#000) !important; }
  }
  .ui-control:is([data-ui="button"],[data-ui="icon"],[data-ui="chip"],[data-ui="tile"]):not(:disabled):active { transform:scale(.98) !important; }

  /* Overflow choice (more sights than time) */
  .overflow-sheet { position:fixed; z-index:9000; left:12px; bottom:12px; width:min(380px,calc(100vw - 24px)); max-height:calc(100vh - 24px); overflow:auto; padding:16px; border:1px solid var(--sep); border-radius:var(--ui-r-menu); background:var(--card); color:var(--label); box-shadow:var(--glass-shadow); }
  .overflow-sheet h3 { margin:0 0 4px; font-size:15px; }
  .overflow-sheet p { margin:0 0 8px; color:var(--label-2); }
  .overflow-list { margin:0 0 12px; padding-left:20px; }
  .overflow-list small { display:block; color:var(--label-2); }
  .overflow-choices { display:grid; gap:8px; }
  .overflow-choices .ui-control { height:auto !important; min-height:var(--ui-h) !important; flex-direction:column; align-items:flex-start !important; justify-content:center !important; gap:2px !important; padding:8px 14px !important; border-radius:14px !important; text-align:left; }
  .overflow-choices small { display:block; font-weight:400; color:var(--label-2); }
  .overflow-pin { display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--tint); color:var(--on-tint); font-weight:700; }
  /* DeepSeek questions (inline on the home sheet) */
  .ask-inline { margin:8px 0; padding:12px; border-radius:var(--ui-r-menu); background:var(--card); border:1px solid var(--sep); }
  .ask-inline header { display:grid; gap:2px; margin-bottom:8px; }
  .ask-inline header span { color:var(--label-2); }
  .ask-inline fieldset { margin:0 0 10px; padding:0; border:0; min-width:0; }
  .ask-inline legend { padding:0; margin-bottom:6px; font-weight:600; }
  .ask-options { display:flex; flex-wrap:wrap; gap:6px; }
  .ask-custom { display:grid; gap:4px; margin-bottom:10px; }
  .ask-custom span { color:var(--label-2); }
  .ask-actions { display:flex; justify-content:flex-end; gap:8px; }

  /* Current day / selected cards: tint hairline only, never a dark frame */
  .it-day.is-current { box-shadow:var(--card-shadow),inset 0 0 0 1px color-mix(in srgb,var(--tint) 45%,transparent) !important; }

  /* Home spacing rhythm: 8px between sections */
  #startPage .sp-sheet > .sp-card { padding-top:8px !important; padding-bottom:8px !important; }
  #startPage .sp-sheet > .sp-when { padding-bottom:0 !important; }
  #startPage .sp-when > .sp-label { margin-bottom:8px !important; }
  #startPage .sp-when .sp-bags { margin-top:8px !important; padding-top:0 !important; padding-bottom:0 !important; }
  #startPage .sp-sheet > #spSeasons { padding-top:8px !important; padding-bottom:8px !important; }
  #startPage .sp-sheet > .sp-route { padding-top:0 !important; }
  #startPage .sp-route .rt-head { padding-left:0 !important; padding-right:0 !important; }

  @media (max-width:600px) {
    :root { --ui-h:40px; --ui-h-compact:28px; --ui-font-size:16px; }
    .ui-control:is([data-ui="field"],[data-ui="select"],[data-ui="inline-field"]) { font-size:16px !important; }
  }
  @media (prefers-reduced-motion:reduce) { .ui-control,.ui-control::after { transition:none !important; transform:none !important; } }
  :root [hidden] { display:none !important; }
}

/* Day-tab row: "Add a day" is exactly as tall as Overview / Day N. */
@layer rovego-kit {
  .plan-day-tabs.plan-day-tabs button.plan-day-import.ui-control { height:32px !important; min-height:32px !important; padding:0 14px !important; font-size:13px !important; border-radius:999px !important; }
}

@layer rovego-kit {
  /* Footer "Itinerary" pill: nothing behind it. */
  .planner-bottom details.price-panel.price-panel { background:none !important; border:0 !important; box-shadow:none !important; outline:0 !important; border-radius:999px !important; }
  /* Day-tab row, right side: undo and settings are equal round buttons, as tall as the tabs. */
  .plan-day-tabs.plan-day-tabs .tool-btn.icon.ui-control { width:32px !important; height:32px !important; min-width:32px !important; min-height:32px !important; padding:0 !important; border-radius:50% !important; }
  /* Bottom "+ Add a day": light, dashed. */
  .it-footer .it-add-day.it-add-day.ui-control { background:transparent !important; color:var(--ui-dash) !important; border:1px dashed var(--ui-dash) !important; border-radius:999px !important; box-shadow:none !important; opacity:.85; }
  .it-footer .it-add-day.it-add-day.ui-control:hover { opacity:1; background:color-mix(in srgb, var(--ui-dash) 8%, transparent) !important; }
}

@layer rovego-kit {
  /* Trip settings: the end-point field and its button are the same size as the date boxes above. */
  .trip-settings .start-picker .ui-control { height:36px !important; min-height:36px !important; border-radius:13px !important; }
  .trip-settings #endPlaceLive.ui-control { padding:0 14px !important; }
}

@layer rovego-kit {
  /* Budget row: same field height, labels on one line, no overlap. */
  html body #startPage .budget-form { grid-template-columns:68px minmax(0,1fr) 44px !important; align-items:start !important; }
  html body #startPage .budget-form > label { justify-content:flex-start !important; }
  html body #startPage .budget-form #travelersSel.ui-control, html body #startPage .budget-form .daily-budget-input, html body #startPage .budget-form #budgetDays { height:32px !important; min-height:32px !important; box-sizing:border-box; }
  html body #startPage .budget-form #budgetDays { display:flex; align-items:center; justify-content:center; padding:0 !important; }
  /* Main places: one line to start with, grows as the traveller types. */
  #tripPrompt.rt-wish-input { min-height:24px !important; height:24px; max-height:200px; }
}

@layer rovego-kit {
  /* Add link is hidden for now. */
  #inspirationOpen.ui-control { display:none !important; }
}

@layer rovego-kit {
  /* Cost field: the whole dashed box animates (wash + soft shadow); the number inside is plain text. */
  .pc-cost { transition:background-color .18s ease, box-shadow .18s ease; }
  .pc-cost:hover, .pc-cost:focus-within { background:color-mix(in srgb, var(--ui-dash) 9%, transparent) !important; box-shadow:0 2px 8px color-mix(in srgb, var(--ui-dash) 24%, transparent) !important; }
  .pc-cost.pc-cost.pc-cost.pc-cost .ui-control.ui-control.ui-control.ui-control.ui-control.ui-control.ui-control.ui-control.ui-control.ui-control.ui-control.ui-control[data-ui][data-ui-size]:is(:hover,:focus,:focus-visible,:active,:not(:hover)) { background:transparent !important; box-shadow:none !important; outline:0 !important; border:0 !important; }
  /* Round tool buttons (undo, settings…) are the same 32px circles everywhere in the planner. */
  .sidebar .tool-btn.icon.ui-control.ui-control { width:32px !important; height:32px !important; min-width:32px !important; min-height:32px !important; padding:0 !important; border-radius:50% !important; }
}

@layer rovego-kit {
  /* Remove-stop button: always visible, a small soft-red circle beside the card's content. */
  .it-item.is-place .pc-remove.ui-control.ui-control { opacity:1 !important; width:26px !important; height:26px !important; min-width:26px !important; min-height:26px !important; padding:0 !important; border-radius:50% !important; background:color-mix(in srgb, #e5484d 12%, transparent) !important; color:#e5484d !important; box-shadow:none !important; }
  .it-item.is-place .pc-remove.ui-control.ui-control:hover { background:#e5484d !important; color:#fff !important; }
  .it-item.is-place .pc-remove svg { width:16px; height:16px; }
}

@layer rovego-kit {
  /* The "closed tonight" note: centred, short, with a + to add a place right inside it. */
  .area-note.is-warn { text-align:center; }
  .area-note.is-warn p { margin-left:auto; margin-right:auto; }
  .area-note.is-warn .area-actions { display:flex; justify-content:center; align-items:center; gap:10px; flex-wrap:wrap; }
  .area-note .area-add.ui-control.ui-control { width:30px !important; height:30px !important; min-width:30px !important; min-height:30px !important; padding:0 !important; border-radius:50% !important; font-size:18px; line-height:1; }
  .area-note.is-loading { display:flex; justify-content:center; padding:10px 0; }
}
