/* ==========================================================================
   css/theme11-v3.css   -   «آسمان» (v3): the third skin
   --------------------------------------------------------------------------
   Every selector that restyles the site is prefixed html[data-ui="v3"]:not(#nope), so
   this file is inert in classic AND in v2. The switch is one attribute flip.

   WHAT THIS IS
   A clone of flytoday.ir/hotel's design language, applied to the agency
   panel, in both a light and a dark scheme. The palette, the shape language,
   the type scale and the card anatomy below were measured off the live site
   (computed styles, not eyeballed):

     brand / CTA        #3662DB      included / amenities   #158554
     price              #116B46      scarcity               #B12724
     points             #A16207      border                 #CBD5E1
     ink ramp           #0F172A  #334155  #475569   (the Tailwind slate ramp)

   The two structural facts that make flytoday look like flytoday:

     1. THERE ARE NO SHADOWS. 581 elements measured on their hotel page, every
        one box-shadow:none. Depth is a 1px #CBD5E1 border and nothing else.
        Shadows appear here only on things that genuinely float over the page
        - a dropdown, a modal, the datepicker - because those have no border
        to sit against.
     2. IT IS IMAGE-FORWARD. A room is a card with a photograph on top, its
        amenities in green underneath, and a full-width pill CTA at the
        bottom. Not a table row with a price on the end.

   Their type is IRANYekanX - which is the font this panel already loads as
   `primary-font`. So v3 does NOT ship a face of its own; matching flytoday
   and matching the panel are the same thing here, and that is one less
   network request than the previous draft.

   STRUCTURE
     0 switch      1 tokens         2 token bridge   3 neutraliser (generated)
     4 base        5 chrome         6 primitives     7 search page
     8 funnel      9 guest + user  10 widgets       11 motion / responsive
    12 guards
   ========================================================================== */


/* ==========================================================================
   0. THE SWITCH   (unprefixed - lives in all three skins)
   --------------------------------------------------------------------------
   theme11.css already styles .th11 and indicated state with
   [aria-pressed="true"], which is a lie on a three-state control. The button
   now carries data-th11-skin; these rules restore the dot and colour it per
   skin, so the control says which of the three you are in without reading.
   ========================================================================== */

.th11__ui[data-th11-skin] .th11__dot { opacity: 1; }
.th11__ui[data-th11-skin="classic"] .th11__dot { opacity: .45; background: currentColor; }
.th11__ui[data-th11-skin="v2"]      .th11__dot { background: #06b183; box-shadow: 0 0 0 3px rgba(6,177,131,.22); }
.th11__ui[data-th11-skin="v3"]      .th11__dot { background: #3662db; box-shadow: 0 0 0 3px rgba(54,98,219,.26); }

/* classic has no dark palette, so its scheme button is a no-op. */
html[data-ui="classic"] .th11__scheme { display: none; }


/* ==========================================================================
   1. TOKENS
   --------------------------------------------------------------------------
   Light is flytoday's own palette, lifted value for value. Dark is not on
   their site - it is built here from the same language: the blue lifts to
   stay legible on a dark plane, the greens and ambers lift with it, and the
   1px border becomes the lighter of two adjacent planes rather than a line.

   Contrast is checked against the surface each token actually sits on:
   ink >= 12:1, ink-2 >= 7:1, muted >= 4.6:1, and every fill that carries
   white label text >= 4.5:1.
   ========================================================================== */

html[data-ui="v3"]:not(#nope) {
    /* -- brand ---------------------------------------------------------- */
    --v3-brand:       #3662db;
    --v3-brand-2:     #2c4fd8;          /* hover / pressed                  */
    --v3-brand-ink:   #2c4fd8;          /* brand TEXT on a light surface    */
    --v3-brand-soft:  #eef3fd;
    --v3-brand-line:  #c3d3f6;
    --v3-on-brand:    #ffffff;

    /* -- what is included: amenities, refundable, "free transfer" -------- */
    --v3-ok:          #158554;
    --v3-ok-soft:     #e7f5ef;
    --v3-ok-line:     #b6e0cd;

    /* -- money ---------------------------------------------------------- */
    --v3-price:       #116b46;          /* flytoday prices are green        */
    --v3-save:        #158554;

    /* -- scarcity ------------------------------------------------------- */
    --v3-urgent:      #b12724;

    /* -- loyalty points ------------------------------------------------- */
    --v3-gold:        #a16207;
    --v3-gold-ink:    #8a5206;
    --v3-gold-soft:   #fef6e7;
    --v3-gold-line:   #f0dca8;

    /* -- planes: white cards, 1px border, no shadow ---------------------- */
    --v3-bg:          #f4f6fa;
    --v3-bg-2:        #ffffff;
    --v3-surface:     #ffffff;
    --v3-surface-2:   #f8fafc;
    --v3-surface-3:   #eef2f7;
    --v3-line:        #cbd5e1;
    --v3-line-2:      #94a3b8;

    /* the navy the hero band is cut from */
    --v3-navy:        #0f2557;
    --v3-navy-2:      #16336f;

    --v3-ink:         #0f172a;
    --v3-ink-2:       #334155;
    --v3-muted:       #64748b;

    --v3-warn:        #a16207;
    --v3-bad:         #b12724;
    --v3-bad-soft:    #fdecea;
    --v3-chip:        #eef2f7;
    --v3-chip-ink:    #334155;

    /* -- shape ---------------------------------------------------------- */
    --v3-r-xs: 6px; --v3-r-sm: 8px; --v3-r: 12px;
    --v3-r-lg: 16px; --v3-r-xl: 20px; --v3-r-pill: 9999px;

    /* -- elevation: reserved for things that float, nothing else -------- */
    --v3-sh-1: none;
    --v3-sh-2: 0 4px 16px rgba(15,23,42,.08);
    --v3-sh-3: 0 12px 40px rgba(15,23,42,.16);

    /* -- type: their scale, 16px base ----------------------------------- */
    --v3-t-xs:  .75rem;                 /* 12 - chips, micro labels         */
    --v3-t-sm:  .875rem;                /* 14 - secondary, amenities        */
    --v3-t-md:  1rem;                   /* 16 - body, room name             */
    --v3-t-lg:  1.125rem;               /* 18                               */
    --v3-t-xl:  1.375rem;               /* 22 - section heads               */
    --v3-t-2xl: 1.75rem;                /* 28 - hotel name                  */

    --v3-ease: cubic-bezier(.2,.7,.2,1);
    --v3-fast: .13s; --v3-mid: .2s; --v3-slow: .32s;

    color-scheme: light;
}

/* -- dark: the same language after sundown ----------------------------- */
html[data-ui="v3"]:not(#nope)[data-scheme="dark"] {
    --v3-brand:       #4f7df2;
    --v3-brand-2:     #6b93f6;
    --v3-brand-ink:   #8fb0fa;          /* brand TEXT must lift on dark     */
    --v3-brand-soft:  #16233e;
    --v3-brand-line:  #2c4468;
    --v3-on-brand:    #ffffff;

    --v3-ok:          #34d399;
    --v3-ok-soft:     #0f2b21;
    --v3-ok-line:     #1e5943;

    --v3-price:       #34d399;
    --v3-save:        #34d399;

    --v3-urgent:      #f87171;

    --v3-gold:        #fbbf24;
    --v3-gold-ink:    #fbbf24;
    --v3-gold-soft:   #2a2110;
    --v3-gold-line:   #4a3a18;

    --v3-bg:          #0b1220;
    --v3-bg-2:        #0f1729;
    --v3-surface:     #141d31;
    --v3-surface-2:   #1a2438;
    --v3-surface-3:   #22304a;
    --v3-line:        #2a3752;
    --v3-line-2:      #3c4d6b;

    --v3-navy:        #0d1830;
    --v3-navy-2:      #16233e;

    --v3-ink:         #e8eef7;
    --v3-ink-2:       #afc0d6;
    --v3-muted:       #7c8fa8;

    --v3-warn:        #fbbf24;
    --v3-bad:         #f87171;
    --v3-bad-soft:    #331a1a;
    --v3-chip:        #1a2438;
    --v3-chip-ink:    #c3d0e2;

    --v3-sh-1: none;
    --v3-sh-2: 0 4px 16px rgba(0,0,0,.45);
    --v3-sh-3: 0 12px 40px rgba(0,0,0,.6);

    color-scheme: dark;
}


/* ==========================================================================
   2. THE TOKEN BRIDGE  (+ the inherited inventory)
   --------------------------------------------------------------------------
   booking-ui11.css declares --bk-* on .bk11; search11.css declares --s11-* on
   .asa-s11. Both sheets then consume them everywhere. Redefining them here -
   at higher specificity - repaints both wholesale, including every rule this
   file never mentions.

   What follows the bridge is v2's own neutraliser inventory, re-pointed at v3
   tokens. It is kept because it covers the 18 inline <style> blocks that v2
   catalogued by hand. Section 3 then adds everything that has been written
   since.
   ========================================================================== */

html[data-ui="v3"]:not(#nope) .bk11,
html[data-ui="v3"]:not(#nope) .asa-s11,
html[data-ui="v3"]:not(#nope) body {
    /* booking-ui11.css */
    --bk-green:       var(--v3-brand);
    --bk-green-dark:  var(--v3-brand-ink);
    --bk-green-pale:  var(--v3-brand-soft);
    --bk-peach:       var(--v3-chip);
    --bk-peach-ink:   var(--v3-chip-ink);
    --bk-blue:        var(--v3-brand);
    --bk-ink:         var(--v3-ink);
    --bk-muted:       var(--v3-muted);
    --bk-grey:        var(--v3-muted);
    --bk-rule:        var(--v3-line);
    --bk-line:        var(--v3-line);
    --bk-bg:          var(--v3-bg);
    --bk-card-shadow: var(--v3-sh-1);

    /* search11.css */
    --s11-green:        var(--v3-brand);
    --s11-green-dark:   var(--v3-brand-ink);
    --s11-green-soft:   var(--v3-brand-soft);
    --s11-ink:          var(--v3-ink);
    --s11-ink-soft:     var(--v3-ink-2);
    --s11-muted:        var(--v3-muted);
    --s11-line:         var(--v3-line);
    --s11-line-soft:    var(--v3-line);
    --s11-field-bg:     var(--v3-surface-2);
    --s11-field-line:   var(--v3-line-2);
    --s11-star:         var(--v3-gold);
    --s11-shadow:       var(--v3-sh-1);
    --s11-radius-card:  var(--v3-r-lg);
    --s11-radius-field: var(--v3-r-sm);
}

/* ==========================================================================
   3. THE NEUTRALISER
   --------------------------------------------------------------------------
   The colours the legacy sheets hard-code instead of taking from a variable.
   Extracted mechanically from booking-ui11.css / search11.css / user11.css /
   pay11.css - every rule whose background is #fff-ish or whose colour is one
   of the fixed inks - and mapped onto tokens here. This is what stops a white
   card or a dark label appearing on a dark page.
   ========================================================================== */

/* ---- generated from the .css files ----
   Luminance-classified. Two things are never emitted: a selector that does not
   name itself (a bare `div:first-child` repaints the page), and any selector
   naming a component this file designs by hand - a generated rule is one class
   deeper and would outrank the design wherever it sat. */

html[data-ui="v3"]:not(#nope) .bk11 section.rooms .card-package,
html[data-ui="v3"]:not(#nope) .bk11 section.rooms .card-package-page-list-hotel,
html[data-ui="v3"]:not(#nope) .bk11 .page-hotel-list-filter,
html[data-ui="v3"]:not(#nope) .bk11 .form-check-input,
html[data-ui="v3"]:not(#nope) .bk11 .price-range-knob,
html[data-ui="v3"]:not(#nope) .bk11 .card__form-input,
html[data-ui="v3"]:not(#nope) .bk11 .form-floating > .form-control,
html[data-ui="v3"]:not(#nope) .bk11 .form-floating > .form-select,
html[data-ui="v3"]:not(#nope) .bk11 .card__dateil-container,
html[data-ui="v3"]:not(#nope) .bk11 .reserve-final-container .card,
html[data-ui="v3"]:not(#nope) .bk11 .rooms-card .room-item-card,
html[data-ui="v3"]:not(#nope) .bk11 .gateway-item,
html[data-ui="v3"]:not(#nope) .bk11 .card__next-step-mobile,
html[data-ui="v3"]:not(#nope) .bk11 section.rooms .card-package > .room-item .capacity-box,
html[data-ui="v3"]:not(#nope) .bk11 .page-hotel-list-filter .title,
html[data-ui="v3"]:not(#nope) .bk11 .bk-topbar,
html[data-ui="v3"]:not(#nope) .bk11 .facility-items,
html[data-ui="v3"]:not(#nope) .bk11 .hotel-rules__card,
html[data-ui="v3"]:not(#nope) .bk11 .hotel-sidenav,
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar__field,
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar__row,
html[data-ui="v3"]:not(#nope) .bk11 .rating-wrapper,
html[data-ui="v3"]:not(#nope) .bk11 .gallery__more:hover,
html[data-ui="v3"]:not(#nope) .bk11 .bk-lightbox__panel,
html[data-ui="v3"]:not(#nope) .bk11 .bk-lightbox__close,
html[data-ui="v3"]:not(#nope) .bk11 .bk-lightbox__close:hover,
html[data-ui="v3"]:not(#nope) .bk11 .bk-lightbox__stage,
html[data-ui="v3"]:not(#nope) .bk11 .discount-row__btn:hover,
html[data-ui="v3"]:not(#nope) .bk11 .s11-lang a:hover,
html[data-ui="v3"]:not(#nope) .bk11 .s11-lang a.active,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-nav__btn,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-nav__btn:hover,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-nav__btn--home,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-rate-range,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-rate-range > span#min_rate,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-rate-range > span#max_rate,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-area ul > li,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-empty,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area .filter-box,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-options,
html[data-ui="v3"]:not(#nope) .asa-s11 .bk-topbar,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-img > img,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter_stars > label:before,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter_cap > label:before,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-room-kind > div > label:before,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-loadmore .btn:hover,
html[data-ui="v3"]:not(#nope) .asa-s11 .btn-more:hover,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-hero .quick-search-from-group-box,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-filter-head,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-filter-close,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-no,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-dur,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-lang a:hover,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-lang a.active,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--asa,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--gar,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area .filter-box:hover,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-chip,
html[data-ui="v3"]:not(#nope) .u11-top,
html[data-ui="v3"]:not(#nope) .u11-top .s11-lang a,
html[data-ui="v3"]:not(#nope) .u11-top .s11-lang a:hover,
html[data-ui="v3"]:not(#nope) .u11-avatar,
html[data-ui="v3"]:not(#nope) .u11-stat,
html[data-ui="v3"]:not(#nope) .u11-tabs a:hover,
html[data-ui="v3"]:not(#nope) .u11-tabs a.on,
html[data-ui="v3"]:not(#nope) .u11-tabs__out:hover,
html[data-ui="v3"]:not(#nope) .u11-panel,
html[data-ui="v3"]:not(#nope) .u11-filter,
html[data-ui="v3"]:not(#nope) .u11-f input,
html[data-ui="v3"]:not(#nope) .u11-btn--ghost,
html[data-ui="v3"]:not(#nope) .u11-item,
html[data-ui="v3"]:not(#nope) .u11-pill--flat,
html[data-ui="v3"]:not(#nope) .u11-voucher,
html[data-ui="v3"]:not(#nope) .u11-pager a,
html[data-ui="v3"]:not(#nope) .u11-pager a:hover,
html[data-ui="v3"]:not(#nope) .u11-cancel-link:hover,
html[data-ui="v3"]:not(#nope) .pay11-card,
html[data-ui="v3"]:not(#nope) .pay11-btn--ghost,
html[data-ui="v3"]:not(#nope) .pay11-alert--bad,
html[data-ui="v3"]:not(#nope) .pay11-field__input,
html[data-ui="v3"]:not(#nope) .pay11-bank,
html[data-ui="v3"]:not(#nope) .pay11-bank__dot,
html[data-ui="v3"]:not(#nope) .bk11 {
    background-color: var(--v3-surface) !important;
}

html[data-ui="v3"]:not(#nope) .bk11 .text-danger,
html[data-ui="v3"]:not(#nope) .bk11 .reserve__exit-icon,
html[data-ui="v3"]:not(#nope) .bk11 .reserve-exit-icon,
html[data-ui="v3"]:not(#nope) .bk11 .hotel-rule-item--time .hotel-rule-item__title,
html[data-ui="v3"]:not(#nope) .bk11 .room-left,
html[data-ui="v3"]:not(#nope) .bk11 .discount-row__msg.is-bad,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box.error label,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order a.btn-warning,
html[data-ui="v3"]:not(#nope) .asa-s11 .tag,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--snp,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--irq,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-seats.is-low,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-soon,
html[data-ui="v3"]:not(#nope) .s11-soon,
html[data-ui="v3"]:not(#nope) .u11-otp,
html[data-ui="v3"]:not(#nope) .u11-tabs__out,
html[data-ui="v3"]:not(#nope) .u11-pill--wait,
html[data-ui="v3"]:not(#nope) .u11-cancel-link,
html[data-ui="v3"]:not(#nope) .u11-cancel-link:hover,
html[data-ui="v3"]:not(#nope) .pay11-note {
    color: var(--v3-bad) !important;
}

html[data-ui="v3"]:not(#nope) .bk11 .capacity-box .item-person,
html[data-ui="v3"]:not(#nope) .bk11 .capacity-box .item-extra,
html[data-ui="v3"]:not(#nope) .bk11 .capacity-box .item-cross::after,
html[data-ui="v3"]:not(#nope) .bk11 .capacity-box .item-number,
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar__label,
html[data-ui="v3"]:not(#nope) .bk11 .rating-wrapper,
html[data-ui="v3"]:not(#nope) .bk11 .s11-lang a,
html[data-ui="v3"]:not(#nope) .bk11 .s11-lang a:hover,
html[data-ui="v3"]:not(#nope) .bk11 .s11-lang a.active,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-nav__btn,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box > input,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box .select2-container--default .select2-selection--single .select2-selection__rendered,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box > div[style],
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-count,
html[data-ui="v3"]:not(#nope) .asa-s11 .bk-topbar,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-divider-title,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-info h4,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-info .s11-star,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-info .s11-loc,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order > div:nth-child(1),
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order > div:nth-child(2),
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-filter-head,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area .filter-box h5,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area label,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-filter-close,
html[data-ui="v3"]:not(#nope) .asa-s11 .bk-topbar__credit,
html[data-ui="v3"]:not(#nope) .asa-s11 .bk-topbar__credit b,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-dur,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-meta,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-chd,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-lang a,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-lang a:hover,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-lang a.active,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--egh,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--gar,
html[data-ui="v3"]:not(#nope) .asa-s11 .flight_passenger > div > div > span:first-child,
html[data-ui="v3"]:not(#nope) .asa-s11 .flight_passenger > div > div > span:nth-child(2),
html[data-ui="v3"]:not(#nope) .asa-s11 .flight_passenger > div:nth-child(2) > div > div:nth-child(1) > span.disabled,
html[data-ui="v3"]:not(#nope) .asa-s11 .flight_passenger > div:nth-child(2) > div > div:nth-child(3) > span.disabled,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-chip,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-seats,
html[data-ui="v3"]:not(#nope) .u11-linkbtn[disabled],
html[data-ui="v3"]:not(#nope) .u11-pill--flat,
html[data-ui="v3"]:not(#nope) .u11-hint {
    color: var(--v3-ink) !important;
}

html[data-ui="v3"]:not(#nope) .bk11 .bk11-nav__btn:hover,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-nav__btn--home,
html[data-ui="v3"]:not(#nope) .bk11 .room-line-price,
html[data-ui="v3"]:not(#nope) .asa-s11 .bk-topbar__back,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-filter-head a,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-loadmore .btn,
html[data-ui="v3"]:not(#nope) .asa-s11 .btn-more,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-no,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--asa {
    color: var(--v3-brand-ink) !important;
}


/* ==========================================================================
   3b. THE INLINE SHEETS
   ========================================================================== */

/* ---- generated from the 18 inline <style> blocks ----
   authmodal11 carries the sign-in overlay, reserve_new11_rooms the cart,
   formerr11 the error state, search11 the page band. */

html[data-ui="v3"]:not(#nope) .msg--bad,
html[data-ui="v3"]:not(#nope) .msg--ok,
html[data-ui="v3"]:not(#nope) input[type=text],
html[data-ui="v3"]:not(#nope) input[type=password],
html[data-ui="v3"]:not(#nope) .btn--ghost,
html[data-ui="v3"]:not(#nope) .toggle i::after,
html[data-ui="v3"]:not(#nope) .meta code,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pass,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pass__logo,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pass__no,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__dot--end,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__dur,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pass__foot,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact--seats,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-panel,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum,
html[data-ui="v3"]:not(#nope) .bk11 .form-control.is-invalid11,
html[data-ui="v3"]:not(#nope) .form-control.is-invalid11,
html[data-ui="v3"]:not(#nope) .bk11 .detail__room-count,
html[data-ui="v3"]:not(#nope) .bk11 .room-count-chip,
html[data-ui="v3"]:not(#nope) .rz11__box,
html[data-ui="v3"]:not(#nope) .rz11__x,
html[data-ui="v3"]:not(#nope) .rc11,
html[data-ui="v3"]:not(#nope) .rc11__btn,
html[data-ui="v3"]:not(#nope) .rc11__btn:hover:not(:disabled),
html[data-ui="v3"]:not(#nope) .rc11-extra,
html[data-ui="v3"]:not(#nope) .price-units,
html[data-ui="v3"]:not(#nope) .bk11-cart__inner,
html[data-ui="v3"]:not(#nope) .bk11-cart__list li,
html[data-ui="v3"]:not(#nope) .ri11__box,
html[data-ui="v3"]:not(#nope) .ri11__x,
html[data-ui="v3"]:not(#nope) .ri11__x:hover,
html[data-ui="v3"]:not(#nope) .ri11__foot,
html[data-ui="v3"]:not(#nope) .ri11__off,
html[data-ui="v3"]:not(#nope) .flight_price,
html[data-ui="v3"]:not(#nope) .menuBtnStyle1,
html[data-ui="v3"]:not(#nope) .menuBtnStyle2,
html[data-ui="v3"]:not(#nope) .search_opt+label,
html[data-ui="v3"]:not(#nope) .flight_passenger,
html[data-ui="v3"]:not(#nope) span.disabled,
html[data-ui="v3"]:not(#nope) .prepayment-card,
html[data-ui="v3"]:not(#nope) .prepayment-table thead th,
html[data-ui="v3"]:not(#nope) .prepayment-table tbody tr:hover,
html[data-ui="v3"]:not(#nope) .payment-badge,
html[data-ui="v3"]:not(#nope) .waiting-payment-warning,
html[data-ui="v3"]:not(#nope) .demo-hint,
html[data-ui="v3"]:not(#nope) .custom-progress-wrapper,
html[data-ui="v3"]:not(#nope) .am11__panel,
html[data-ui="v3"]:not(#nope) .am11__x:hover,
html[data-ui="v3"]:not(#nope) .am11__msg,
html[data-ui="v3"]:not(#nope) .am11__msg[data-am11-ok],
html[data-ui="v3"]:not(#nope) .am11__field input,
html[data-ui="v3"]:not(#nope) .am11__field input:focus,
html[data-ui="v3"]:not(#nope) .am11-bar,
html[data-ui="v3"]:not(#nope) .cb,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-field .form-control,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-field .form-control:focus,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-bad,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sex__opt,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sex__opt.is-on,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-seat__lead,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-recap,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-plist__tag,
html[data-ui="v3"]:not(#nope) .fe11-bad,
html[data-ui="v3"]:not(#nope) .bk11 .fe11-bad,
html[data-ui="v3"]:not(#nope) .bk11 .form-control.fe11-bad,
html[data-ui="v3"]:not(#nope) .fe11-box,
html[data-ui="v3"]:not(#nope) .rules11__box,
html[data-ui="v3"]:not(#nope) .rules11__x,
html[data-ui="v3"]:not(#nope) .rules11__x:hover,
html[data-ui="v3"]:not(#nope) .rules11__foot {
    background-color: var(--v3-surface) !important;
}

html[data-ui="v3"]:not(#nope) .flight_info {
    background-color: var(--v3-brand-soft) !important;
}

html[data-ui="v3"]:not(#nope) .dev11 .b-apply,
html[data-ui="v3"]:not(#nope) .dev11 .dev11-note,
html[data-ui="v3"]:not(#nope) .dev11 s,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-leg__time,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-leg__city,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__dur,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-panel__head h3,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-panel__hint,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pax__name,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pax__age,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pax__rate,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum__title,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum__line,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum__line b,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum__total span,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum__note,
html[data-ui="v3"]:not(#nope) .rz11__cap,
html[data-ui="v3"]:not(#nope) .rz11__x,
html[data-ui="v3"]:not(#nope) .rc11__btn,
html[data-ui="v3"]:not(#nope) .rc11__n,
html[data-ui="v3"]:not(#nope) .rc11-extra__label,
html[data-ui="v3"]:not(#nope) .rc11-extra__rate small,
html[data-ui="v3"]:not(#nope) .bk11-cart__title,
html[data-ui="v3"]:not(#nope) .bk11-cart__sum-label,
html[data-ui="v3"]:not(#nope) .bk11-cart__sum-value,
html[data-ui="v3"]:not(#nope) .ri11__title,
html[data-ui="v3"]:not(#nope) .ri11__x,
html[data-ui="v3"]:not(#nope) .ri11__row b,
html[data-ui="v3"]:not(#nope) .ri11__row span,
html[data-ui="v3"]:not(#nope) .ri11__was,
html[data-ui="v3"]:not(#nope) .ri11__note,
html[data-ui="v3"]:not(#nope) .search_opt+label,
html[data-ui="v3"]:not(#nope) span.disabled,
html[data-ui="v3"]:not(#nope) .tour-price,
html[data-ui="v3"]:not(#nope) .prepayment-table thead th,
html[data-ui="v3"]:not(#nope) .prepayment-table tfoot td:first-child,
html[data-ui="v3"]:not(#nope) .prepayment-table tfoot td:last-child,
html[data-ui="v3"]:not(#nope) .payment-badge,
html[data-ui="v3"]:not(#nope) .demo-hint,
html[data-ui="v3"]:not(#nope) .am11__panel,
html[data-ui="v3"]:not(#nope) .am11__x,
html[data-ui="v3"]:not(#nope) .am11__x:hover,
html[data-ui="v3"]:not(#nope) .am11__lead,
html[data-ui="v3"]:not(#nope) .am11__field span,
html[data-ui="v3"]:not(#nope) .am11__field input,
html[data-ui="v3"]:not(#nope) .am11__hint,
html[data-ui="v3"]:not(#nope) .am11-bar__txt,
html[data-ui="v3"]:not(#nope) .cb dt,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-field__label,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sex__opt,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-recap__route,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-recap__meta,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-tick__route,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-tick__meta,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-plist__name,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-plist__tag,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-plist__id,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-phone,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum__line small,
html[data-ui="v3"]:not(#nope) .pay11-gwstate.is-conf,
html[data-ui="v3"]:not(#nope) .rules11__title,
html[data-ui="v3"]:not(#nope) .rules11__x,
html[data-ui="v3"]:not(#nope) .rules11__sec li {
    color: var(--v3-ink) !important;
}

html[data-ui="v3"]:not(#nope) .btn-cu,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact--seats.is-low,
html[data-ui="v3"]:not(#nope) .v11-err,
html[data-ui="v3"]:not(#nope) .v11-err::before,
html[data-ui="v3"]:not(#nope) .bk11 .form-control.is-invalid11,
html[data-ui="v3"]:not(#nope) .form-control.is-invalid11,
html[data-ui="v3"]:not(#nope) .form-control.is-invalid11 ~ label,
html[data-ui="v3"]:not(#nope) .ri11__tag,
html[data-ui="v3"]:not(#nope) .discount.discount1,
html[data-ui="v3"]:not(#nope) .am11__msg,
html[data-ui="v3"]:not(#nope) .cb .bad,
html[data-ui="v3"]:not(#nope) .fe11-note,
html[data-ui="v3"]:not(#nope) .fe11-note::before,
html[data-ui="v3"]:not(#nope) .pay11-gwstate.is-dead {
    color: var(--v3-bad) !important;
}

html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__plane,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact--seats,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum__total b,
html[data-ui="v3"]:not(#nope) .bk11 .detail__room-line,
html[data-ui="v3"]:not(#nope) .bk11 .detail__room-count,
html[data-ui="v3"]:not(#nope) .bk11 .room-count-chip,
html[data-ui="v3"]:not(#nope) .rc11-extra__rate,
html[data-ui="v3"]:not(#nope) .price-units,
html[data-ui="v3"]:not(#nope) .bk11-cart__list li,
html[data-ui="v3"]:not(#nope) .ri11__row--sum b,
html[data-ui="v3"]:not(#nope) .ri11__off,
html[data-ui="v3"]:not(#nope) .discount_style1,
html[data-ui="v3"]:not(#nope) .menuBtnStyle1,
html[data-ui="v3"]:not(#nope) .menuBtnStyle2,
html[data-ui="v3"]:not(#nope) .am11__msg[data-am11-ok],
html[data-ui="v3"]:not(#nope) .am11__links a,
html[data-ui="v3"]:not(#nope) .am11__link,
html[data-ui="v3"]:not(#nope) .cb .good,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sex__opt.is-on,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-seat__lead,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-edit,
html[data-ui="v3"]:not(#nope) .pay11-gwstate.is-live,
html[data-ui="v3"]:not(#nope) .rules11__sec h3,
html[data-ui="v3"]:not(#nope) .rules11-open {
    color: var(--v3-brand-ink) !important;
}


/* headings the legacy panel sheets (app4.css) paint, not ours */
html[data-ui="v3"]:not(#nope) .page-header h4,
html[data-ui="v3"]:not(#nope) .page-header h1,
html[data-ui="v3"]:not(#nope) h1, html[data-ui="v3"]:not(#nope) h2, html[data-ui="v3"]:not(#nope) h3,
html[data-ui="v3"]:not(#nope) h4, html[data-ui="v3"]:not(#nope) h5, html[data-ui="v3"]:not(#nope) h6 {
    color: var(--v3-ink) !important;
}
/* …and the greys they set on body copy.
   DELIBERATELY NOT div/span: a one-class rule like .tag{color:#0b7a56} would
   lose to this and every intentional colour on the page would flatten to ink.
   Block elements only - they are the ones carrying paragraphs. */
html[data-ui="v3"]:not(#nope) p, html[data-ui="v3"]:not(#nope) li, html[data-ui="v3"]:not(#nope) td,
html[data-ui="v3"]:not(#nope) th, html[data-ui="v3"]:not(#nope) label, html[data-ui="v3"]:not(#nope) dd, html[data-ui="v3"]:not(#nope) dt { color: inherit; }


/* ==========================================================================
   3. THE NEUTRALISER   -   GENERATED, do not hand-edit
   --------------------------------------------------------------------------
   Extracted by gen_neutraliser.py from the legacy sheets as they exist on
   the server RIGHT NOW. Re-run it whenever those sheets change: a rule added
   to booking-ui11.css after this ran will paint itself and no amount of
   hand-written design downstream will know about it.
   ========================================================================== */

/* light backgrounds -> surface  (142 selectors) */
html[data-ui="v3"]:not(#nope) .am11-bar,
html[data-ui="v3"]:not(#nope) .am11__msg,
html[data-ui="v3"]:not(#nope) .am11__msg[data-am11-ok],
html[data-ui="v3"]:not(#nope) .am11__panel,
html[data-ui="v3"]:not(#nope) .am11__tab.is-on,
html[data-ui="v3"]:not(#nope) .am11__tabs,
html[data-ui="v3"]:not(#nope) .asa-s11 .bk-topbar,
html[data-ui="v3"]:not(#nope) .asa-s11 .card.s11-canvas,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-rate-range,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-rate-range > span#max_rate,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-rate-range > span#min_rate,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-empty,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-chip,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-dur,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-no,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-hero .quick-search-from-group-box,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-lang a.active,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-soon,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--asa,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--egh,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--gar,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--irq,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--snp,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order a.btn-warning,
html[data-ui="v3"]:not(#nope) .asa-s11 .tag,
html[data-ui="v3"]:not(#nope) .asa-s11 .u11-nav__in,
html[data-ui="v3"]:not(#nope) .asa-s11 .u11-nav__me,
html[data-ui="v3"]:not(#nope) .asa-s11 .ui-datepicker,
html[data-ui="v3"]:not(#nope) .bad,
html[data-ui="v3"]:not(#nope) .bk11 .bk-lightbox__close,
html[data-ui="v3"]:not(#nope) .bk11 .bk-lightbox__panel,
html[data-ui="v3"]:not(#nope) .bk11 .bk-lightbox__stage,
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar__field,
html[data-ui="v3"]:not(#nope) .bk11 .bk-topbar,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-hotelhead,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-nav__btn,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-nav__btn--home,
html[data-ui="v3"]:not(#nope) .bk11 .card__dateil-container,
html[data-ui="v3"]:not(#nope) .bk11 .card__form-input,
html[data-ui="v3"]:not(#nope) .bk11 .card__next-step-mobile,
html[data-ui="v3"]:not(#nope) .bk11 .detail__room-count,
html[data-ui="v3"]:not(#nope) .bk11 .facility-items,
html[data-ui="v3"]:not(#nope) .bk11 .fe11-bad,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact--seats,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact--seats.is-low,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-panel,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pass,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pass__foot,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pass__logo,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pass__no,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__dot--end,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__dur,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum,
html[data-ui="v3"]:not(#nope) .bk11 .form-check-input,
html[data-ui="v3"]:not(#nope) .bk11 .form-control.fe11-bad,
html[data-ui="v3"]:not(#nope) .bk11 .form-control.is-invalid11,
html[data-ui="v3"]:not(#nope) .bk11 .form-floating > .form-control,
html[data-ui="v3"]:not(#nope) .bk11 .form-floating > .form-select,
html[data-ui="v3"]:not(#nope) .bk11 .gateway-item,
html[data-ui="v3"]:not(#nope) .bk11 .hotel-rules__card,
html[data-ui="v3"]:not(#nope) .bk11 .hotel-sidenav,
html[data-ui="v3"]:not(#nope) .bk11 .page-hotel-list-filter,
html[data-ui="v3"]:not(#nope) .bk11 .price-range-knob,
html[data-ui="v3"]:not(#nope) .bk11 .rating-wrapper,
html[data-ui="v3"]:not(#nope) .bk11 .reserve-final-container .card,
html[data-ui="v3"]:not(#nope) .bk11 .reserve__steps-box .step__item,
html[data-ui="v3"]:not(#nope) .bk11 .room-count-chip,
html[data-ui="v3"]:not(#nope) .bk11 .rooms-card .room-item-card,
html[data-ui="v3"]:not(#nope) .bk11 .s11-lang a.active,
html[data-ui="v3"]:not(#nope) .bk11 .u11-nav__in,
html[data-ui="v3"]:not(#nope) .bk11 .u11-nav__me,
html[data-ui="v3"]:not(#nope) .bk11 section.rooms .card-package,
html[data-ui="v3"]:not(#nope) .bk11 section.rooms .card-package-page-list-hotel,
html[data-ui="v3"]:not(#nope) .bk11-cart__inner,
html[data-ui="v3"]:not(#nope) .btn--ghost,
html[data-ui="v3"]:not(#nope) .btn-select--drop,
html[data-ui="v3"]:not(#nope) .card,
html[data-ui="v3"]:not(#nope) .cb,
html[data-ui="v3"]:not(#nope) .dev11 .b-apply,
html[data-ui="v3"]:not(#nope) .fe11-bad,
html[data-ui="v3"]:not(#nope) .fe11-box,
html[data-ui="v3"]:not(#nope) .flight_info,
html[data-ui="v3"]:not(#nope) .flight_info.return,
html[data-ui="v3"]:not(#nope) .flight_passenger,
html[data-ui="v3"]:not(#nope) .flight_passenger > div:nth-child(2) > div > div:nth-child(1) > span.disabled,
html[data-ui="v3"]:not(#nope) .flight_passenger > div:nth-child(2) > div > div:nth-child(3) > span.disabled,
html[data-ui="v3"]:not(#nope) .form-control.is-invalid11,
html[data-ui="v3"]:not(#nope) .hh,
html[data-ui="v3"]:not(#nope) .hotel,
html[data-ui="v3"]:not(#nope) .mine,
html[data-ui="v3"]:not(#nope) .msg--bad,
html[data-ui="v3"]:not(#nope) .msg--ok,
html[data-ui="v3"]:not(#nope) .new,
html[data-ui="v3"]:not(#nope) .ok,
html[data-ui="v3"]:not(#nope) .pay11-alert--bad,
html[data-ui="v3"]:not(#nope) .pay11-bank,
html[data-ui="v3"]:not(#nope) .pay11-bank__dot,
html[data-ui="v3"]:not(#nope) .pay11-btn--ghost,
html[data-ui="v3"]:not(#nope) .pay11-card,
html[data-ui="v3"]:not(#nope) .pay11-field__input,
html[data-ui="v3"]:not(#nope) .pay11-method__dot,
html[data-ui="v3"]:not(#nope) .pay11-note,
html[data-ui="v3"]:not(#nope) .pill,
html[data-ui="v3"]:not(#nope) .price-units,
html[data-ui="v3"]:not(#nope) .rc11,
html[data-ui="v3"]:not(#nope) .rc11-extra,
html[data-ui="v3"]:not(#nope) .rc11__btn,
html[data-ui="v3"]:not(#nope) .ri11__box,
html[data-ui="v3"]:not(#nope) .ri11__foot,
html[data-ui="v3"]:not(#nope) .ri11__off,
html[data-ui="v3"]:not(#nope) .ri11__tag,
html[data-ui="v3"]:not(#nope) .ri11__x,
html[data-ui="v3"]:not(#nope) .rules11__box,
html[data-ui="v3"]:not(#nope) .rules11__foot,
html[data-ui="v3"]:not(#nope) .rules11__x,
html[data-ui="v3"]:not(#nope) .rz11__box,
html[data-ui="v3"]:not(#nope) .rz11__x,
html[data-ui="v3"]:not(#nope) .s11-soon,
html[data-ui="v3"]:not(#nope) .s11-srcbtn,
html[data-ui="v3"]:not(#nope) .s11-srcbtn.is-off .s11-sw,
html[data-ui="v3"]:not(#nope) .tag,
html[data-ui="v3"]:not(#nope) .u11-avatar,
html[data-ui="v3"]:not(#nope) .u11-btn--ghost,
html[data-ui="v3"]:not(#nope) .u11-filter,
html[data-ui="v3"]:not(#nope) .u11-item,
html[data-ui="v3"]:not(#nope) .u11-otp,
html[data-ui="v3"]:not(#nope) .u11-panel,
html[data-ui="v3"]:not(#nope) .u11-pill--flat,
html[data-ui="v3"]:not(#nope) .u11-pill--wait,
html[data-ui="v3"]:not(#nope) .u11-stat,
html[data-ui="v3"]:not(#nope) .u11-tabs a.on,
html[data-ui="v3"]:not(#nope) .u11-top,
html[data-ui="v3"]:not(#nope) .u11-voucher,
html[data-ui="v3"]:not(#nope) .ui-datepicker,
html[data-ui="v3"]:not(#nope) .ui-datepicker .ui-datepicker-next,
html[data-ui="v3"]:not(#nope) .ui-datepicker .ui-datepicker-prev,
html[data-ui="v3"]:not(#nope) .ui-datepicker .ui-datepicker-today .ui-state-default,
html[data-ui="v3"]:not(#nope) .warn,
html[data-ui="v3"]:not(#nope) body.asa-s11.s11-canvas {
    background-color: var(--v3-surface) !important;
}

/* fixed dark inks -> ink  (80 selectors) */
html[data-ui="v3"]:not(#nope) .am11-bar__txt,
html[data-ui="v3"]:not(#nope) .am11__msg,
html[data-ui="v3"]:not(#nope) .am11__panel,
html[data-ui="v3"]:not(#nope) .asa-s11 .bk-topbar,
html[data-ui="v3"]:not(#nope) .asa-s11 .bk-topbar__brand,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box .select2-container--default .select2-selection--single .select2-selection__rendered,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-divider-title,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-filter-head,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-chip,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-dur,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-meta,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-seats,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-lang a.active,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-soon,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-sort-btn,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--asa,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--egh,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--gar,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--irq,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-src--snp,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-info .s11-loc,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-info .s11-star,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order a.btn-warning,
html[data-ui="v3"]:not(#nope) .asa-s11 .tag,
html[data-ui="v3"]:not(#nope) .bad,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-hotelhead__name,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-nav__btn,
html[data-ui="v3"]:not(#nope) .bk11 .capacity-box .item-extra,
html[data-ui="v3"]:not(#nope) .bk11 .capacity-box .item-number,
html[data-ui="v3"]:not(#nope) .bk11 .capacity-box .item-person,
html[data-ui="v3"]:not(#nope) .bk11 .discount-row__msg.is-bad,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-leg__time,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__dur,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pax__name,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pax__rate,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum__line,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum__title,
html[data-ui="v3"]:not(#nope) .bk11 .form-control.is-invalid11,
html[data-ui="v3"]:not(#nope) .bk11 .hotel-rule-item--time .hotel-rule-item__title,
html[data-ui="v3"]:not(#nope) .bk11 .rating-wrapper,
html[data-ui="v3"]:not(#nope) .bk11 .reserve-exit-icon,
html[data-ui="v3"]:not(#nope) .bk11 .reserve__exit-icon,
html[data-ui="v3"]:not(#nope) .bk11 .room-left,
html[data-ui="v3"]:not(#nope) .bk11 .s11-lang a.active,
html[data-ui="v3"]:not(#nope) .bk11 .text-danger,
html[data-ui="v3"]:not(#nope) .bk11-cart__sum-value,
html[data-ui="v3"]:not(#nope) .btn-select--drop,
html[data-ui="v3"]:not(#nope) .cb .bad,
html[data-ui="v3"]:not(#nope) .cb .fbn,
html[data-ui="v3"]:not(#nope) .cb .good,
html[data-ui="v3"]:not(#nope) .cb .p,
html[data-ui="v3"]:not(#nope) .dev11 .b-apply,
html[data-ui="v3"]:not(#nope) .form-control.is-invalid11,
html[data-ui="v3"]:not(#nope) .hh .id,
html[data-ui="v3"]:not(#nope) .mine,
html[data-ui="v3"]:not(#nope) .new,
html[data-ui="v3"]:not(#nope) .ok,
html[data-ui="v3"]:not(#nope) .pay11-gwstate.is-dead,
html[data-ui="v3"]:not(#nope) .pay11-note,
html[data-ui="v3"]:not(#nope) .pill,
html[data-ui="v3"]:not(#nope) .rc11-extra__label,
html[data-ui="v3"]:not(#nope) .rc11__btn,
html[data-ui="v3"]:not(#nope) .rc11__n,
html[data-ui="v3"]:not(#nope) .ri11__tag,
html[data-ui="v3"]:not(#nope) .ri11__title,
html[data-ui="v3"]:not(#nope) .ri11__x,
html[data-ui="v3"]:not(#nope) .rules11__title,
html[data-ui="v3"]:not(#nope) .rules11__x,
html[data-ui="v3"]:not(#nope) .rz11__cap,
html[data-ui="v3"]:not(#nope) .rz11__x,
html[data-ui="v3"]:not(#nope) .s11-soon,
html[data-ui="v3"]:not(#nope) .s11-srcbtn,
html[data-ui="v3"]:not(#nope) .sub,
html[data-ui="v3"]:not(#nope) .u11-otp,
html[data-ui="v3"]:not(#nope) .u11-pill--flat,
html[data-ui="v3"]:not(#nope) .u11-pill--wait,
html[data-ui="v3"]:not(#nope) .u11-tabs__out,
html[data-ui="v3"]:not(#nope) .warn,
html[data-ui="v3"]:not(#nope) a.f {
    color: var(--v3-ink) !important;
}

/* legacy brand text -> brand ink  (25 selectors) */
html[data-ui="v3"]:not(#nope) .am11__link,
html[data-ui="v3"]:not(#nope) .am11__msg[data-am11-ok],
html[data-ui="v3"]:not(#nope) .am11__tab.is-on,
html[data-ui="v3"]:not(#nope) .asa-s11 .bk-topbar__back,
html[data-ui="v3"]:not(#nope) .asa-s11 .btn-more,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-no,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-loadmore .btn,
html[data-ui="v3"]:not(#nope) .asa-s11 .u11-nav__in,
html[data-ui="v3"]:not(#nope) .asa-s11 .u11-nav__me,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-nav__btn--home,
html[data-ui="v3"]:not(#nope) .bk11 .detail__room-count,
html[data-ui="v3"]:not(#nope) .bk11 .detail__room-line,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact--seats,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__plane,
html[data-ui="v3"]:not(#nope) .bk11 .room-count-chip,
html[data-ui="v3"]:not(#nope) .bk11 .room-line-price,
html[data-ui="v3"]:not(#nope) .bk11 .u11-nav__in,
html[data-ui="v3"]:not(#nope) .bk11 .u11-nav__me,
html[data-ui="v3"]:not(#nope) .mate__ava,
html[data-ui="v3"]:not(#nope) .pay11-gwstate.is-live,
html[data-ui="v3"]:not(#nope) .price-units,
html[data-ui="v3"]:not(#nope) .rc11-extra__rate,
html[data-ui="v3"]:not(#nope) .ri11__off,
html[data-ui="v3"]:not(#nope) .rules11-open,
html[data-ui="v3"]:not(#nope) .s11-srcbtn__s {
    color: var(--v3-brand-ink) !important;
}

/* legacy brand FILLS and GRADIENTS -> flat brand (white label)  (17 selectors) */
html[data-ui="v3"]:not(#nope) #load-more,
html[data-ui="v3"]:not(#nope) .am11-bar__go,
html[data-ui="v3"]:not(#nope) .am11__go,
html[data-ui="v3"]:not(#nope) .am11__mark,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-hero,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-sort-btn.s11-selected,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order a.btn,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order a.btn-success,
html[data-ui="v3"]:not(#nope) .asa-s11 .u11-nav__dot,
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pass__top,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__dot,
html[data-ui="v3"]:not(#nope) .bk11 .u11-nav__dot,
html[data-ui="v3"]:not(#nope) .ri11__ok,
html[data-ui="v3"]:not(#nope) .rules11__ok,
html[data-ui="v3"]:not(#nope) .s11-sw,
html[data-ui="v3"]:not(#nope) .u11-hero {
    background-image: none !important;
    background-color: var(--v3-brand) !important;
    border-color: var(--v3-brand) !important;
    color: #fff !important;
}



/* ==========================================================================
   4. BASE
   --------------------------------------------------------------------------
   Why !important appears from here on: section 3 is generated and lands its
   background/colour with !important. A hand-designed component at the same
   depth would lose to it. Equal specificity + !important means the later rule
   wins, and the design is always later in the file than the neutraliser.
   ========================================================================== */

html[data-ui="v3"]:not(#nope) body,
html[data-ui="v3"]:not(#nope) .bk11,
html[data-ui="v3"]:not(#nope) .asa-s11 {
    /* flytoday runs IRANYekanX. That is this panel's own `primary-font`, so
       matching them and matching the panel are the same thing - no extra face. */
    font-family: "primary-font", "IRANYekanX", "IRANYekan", "segoe ui", tahoma, sans-serif;
    background-color: var(--v3-bg) !important;
    color: var(--v3-ink) !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

html[data-ui="v3"]:not(#nope) body { font-size: var(--v3-t-md) !important; line-height: 1.7 !important; }

html[data-ui="v3"]:not(#nope) #main,
html[data-ui="v3"]:not(#nope) .main-content,
html[data-ui="v3"]:not(#nope) .page-content,
html[data-ui="v3"]:not(#nope) .container-fluid {
    background-color: transparent !important;
}

/* The legacy sheets set line-height 1.85 on every heading. flytoday's heads
   sit at ~1.4 with normal tracking - they are not tight, they are just not
   loose, and the weight does the work. */
html[data-ui="v3"]:not(#nope) h1, html[data-ui="v3"]:not(#nope) h2, html[data-ui="v3"]:not(#nope) h3,
html[data-ui="v3"]:not(#nope) h4, html[data-ui="v3"]:not(#nope) h5, html[data-ui="v3"]:not(#nope) h6 {
    font-family: inherit;
    line-height: 1.45 !important;
    font-weight: 700 !important;
    color: var(--v3-ink) !important;
    margin: 0 0 .5em !important;
    background: none !important;
    letter-spacing: 0 !important;
}
html[data-ui="v3"]:not(#nope) h1 { font-size: var(--v3-t-2xl) !important; }
html[data-ui="v3"]:not(#nope) h2 { font-size: var(--v3-t-xl) !important; }
html[data-ui="v3"]:not(#nope) h3 { font-size: var(--v3-t-lg) !important; }
html[data-ui="v3"]:not(#nope) h4 { font-size: var(--v3-t-md) !important; font-weight: 600 !important; }
html[data-ui="v3"]:not(#nope) h5,
html[data-ui="v3"]:not(#nope) h6 { font-size: var(--v3-t-sm) !important; font-weight: 600 !important; }

/* Links inherit ink so app4.css cannot paint them black on a dark page. NOT
   forced: a link something deliberately coloured must keep that colour, and
   this already outranks the legacy sheets on specificity alone. */
html[data-ui="v3"]:not(#nope) a { color: inherit; }
html[data-ui="v3"]:not(#nope) a:hover { color: var(--v3-brand-ink) !important; }

html[data-ui="v3"]:not(#nope) hr {
    border: 0 !important; border-top: 1px solid var(--v3-line) !important;
    opacity: 1; margin: 1.25rem 0 !important;
}

html[data-ui="v3"]:not(#nope) ::selection { background: var(--v3-brand) !important; color: #fff !important; }
html[data-ui="v3"]:not(#nope) * { scrollbar-width: thin; scrollbar-color: var(--v3-line-2) transparent; }
html[data-ui="v3"]:not(#nope) ::-webkit-scrollbar { width: 10px; height: 10px; }
html[data-ui="v3"]:not(#nope) ::-webkit-scrollbar-track { background: transparent !important; }
html[data-ui="v3"]:not(#nope) ::-webkit-scrollbar-thumb {
    background: var(--v3-line-2) !important; border-radius: 999px !important;
    border: 3px solid transparent !important; background-clip: content-box;
}

html[data-ui="v3"]:not(#nope) :focus { outline: none !important; }
html[data-ui="v3"]:not(#nope) :focus-visible {
    outline: 2px solid var(--v3-brand) !important;
    outline-offset: 2px !important;
    border-radius: var(--v3-r-xs) !important;
}

/* Prices and dates are compared down a column; tabular figures stop them
   jittering. */
html[data-ui="v3"]:not(#nope) .price,
html[data-ui="v3"]:not(#nope) .price-units,
html[data-ui="v3"]:not(#nope) .room-line-price,
html[data-ui="v3"]:not(#nope) .tour-price,
html[data-ui="v3"]:not(#nope) .flight_price,
html[data-ui="v3"]:not(#nope) .s11-count,
html[data-ui="v3"]:not(#nope) .reserve__detail-price,
html[data-ui="v3"]:not(#nope) .prepayment-table td,
html[data-ui="v3"]:not(#nope) .u11-item b {
    font-variant-numeric: tabular-nums !important;
}


/* ==========================================================================
   5. CHROME   -   top bar, language switch, back/home
   --------------------------------------------------------------------------
   flytoday's header is a plain white bar with one hairline under it, the
   brand on one end and a blue pill CTA on the other. No glass, no shadow.
   ========================================================================== */

html[data-ui="v3"]:not(#nope) .bk-topbar,
html[data-ui="v3"]:not(#nope) .u11-top {
    background-color: var(--v3-bg-2) !important;
    color: var(--v3-ink) !important;
    border-bottom: 1px solid var(--v3-line) !important;
    box-shadow: none !important;
    padding-block: .6rem !important;
    position: sticky; top: 0; z-index: 60;
}

html[data-ui="v3"]:not(#nope) .bk-topbar__brand,
html[data-ui="v3"]:not(#nope) .asa-s11 .bk-topbar__brand {
    background-color: transparent !important;
    color: var(--v3-ink) !important;
    font-weight: 700 !important;
    font-size: var(--v3-t-md) !important;
}

html[data-ui="v3"]:not(#nope) .bk-topbar__credit,
html[data-ui="v3"]:not(#nope) .bk-topbar__credit b {
    color: var(--v3-ink-2) !important;
    font-size: var(--v3-t-sm) !important;
    font-variant-numeric: tabular-nums !important;
}
html[data-ui="v3"]:not(#nope) .bk-topbar__credit b { color: var(--v3-price) !important; font-weight: 700 !important; }

/* Back / home: outlined pills, flytoday's "ذخیره / اشتراک‌گذاری" pattern. */
html[data-ui="v3"]:not(#nope) .bk-topbar__back,
html[data-ui="v3"]:not(#nope) .bk11-nav__btn {
    background-color: var(--v3-surface) !important;
    color: var(--v3-ink-2) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 500 !important;
    padding: .4rem 1rem !important;
    transition: background var(--v3-fast) var(--v3-ease),
                color var(--v3-fast) var(--v3-ease),
                border-color var(--v3-fast) var(--v3-ease);
}
html[data-ui="v3"]:not(#nope) .bk-topbar__back:hover,
html[data-ui="v3"]:not(#nope) .bk11-nav__btn:hover {
    background-color: var(--v3-brand-soft) !important;
    color: var(--v3-brand-ink) !important;
    border-color: var(--v3-brand-line) !important;
}
html[data-ui="v3"]:not(#nope) .bk11-nav__btn--home {
    background-color: var(--v3-brand-soft) !important;
    color: var(--v3-brand-ink) !important;
    border-color: var(--v3-brand-line) !important;
}

/* The account / sign-in pair. search11.css ships them as a pale mint chip. */
html[data-ui="v3"]:not(#nope) .u11-nav__in,
html[data-ui="v3"]:not(#nope) .asa-s11 .u11-nav__in,
html[data-ui="v3"]:not(#nope) .bk11 .u11-nav__in,
html[data-ui="v3"]:not(#nope) .btn-cu,
html[data-ui="v3"]:not(#nope) .s11-signin {
    background-color: var(--v3-brand) !important;
    color: #fff !important;
    border: 1px solid var(--v3-brand) !important;
    border-radius: var(--v3-r-pill) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 600 !important;
    padding: .45rem 1.2rem !important;
}
html[data-ui="v3"]:not(#nope) .u11-nav__in:hover,
html[data-ui="v3"]:not(#nope) .btn-cu:hover { background-color: var(--v3-brand-2) !important; }

html[data-ui="v3"]:not(#nope) .u11-nav__me,
html[data-ui="v3"]:not(#nope) .asa-s11 .u11-nav__me,
html[data-ui="v3"]:not(#nope) .bk11 .u11-nav__me {
    background-color: var(--v3-surface) !important;
    color: var(--v3-ink) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 500 !important;
    padding: .45rem 1rem !important;
}
html[data-ui="v3"]:not(#nope) .u11-nav__me:hover {
    background-color: var(--v3-brand-soft) !important;
    border-color: var(--v3-brand-line) !important;
}

/* Language: a segmented pill. */
html[data-ui="v3"]:not(#nope) .s11-lang {
    display: inline-flex; gap: 2px; padding: 3px !important;
    background: var(--v3-surface-3) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
}
html[data-ui="v3"]:not(#nope) .s11-lang a {
    background-color: transparent !important;
    color: var(--v3-muted) !important;
    border: 0 !important;
    border-radius: var(--v3-r-pill) !important;
    padding: .28rem .7rem !important;
    font-size: var(--v3-t-xs) !important;
    font-weight: 600 !important;
}
html[data-ui="v3"]:not(#nope) .s11-lang a:hover {
    background-color: var(--v3-surface) !important;
    color: var(--v3-ink) !important;
}
html[data-ui="v3"]:not(#nope) .s11-lang a.active {
    background-color: var(--v3-surface) !important;
    color: var(--v3-brand-ink) !important;
    border: 1px solid var(--v3-line) !important;
}

html[data-ui="v3"]:not(#nope) .th11 {
    background: var(--v3-surface-3) !important;
    border-color: var(--v3-line) !important;
}
html[data-ui="v3"]:not(#nope) .th11 button { color: var(--v3-ink-2) !important; }
html[data-ui="v3"]:not(#nope) .th11 button:hover { background: var(--v3-surface) !important; color: var(--v3-ink) !important; }
html[data-ui="v3"]:not(#nope) .th11__sun  { display: block; }
html[data-ui="v3"]:not(#nope) .th11__moon { display: none; }
html[data-ui="v3"]:not(#nope)[data-scheme="dark"] .th11__sun  { display: none; }
html[data-ui="v3"]:not(#nope)[data-scheme="dark"] .th11__moon { display: block; }


/* ==========================================================================
   6. PRIMITIVES
   --------------------------------------------------------------------------
   flytoday's buttons are pills. Their fields are 1px-bordered boxes at 8px.
   Nothing casts a shadow.
   ========================================================================== */

html[data-ui="v3"]:not(#nope) .btn,
html[data-ui="v3"]:not(#nope) button.btn,
html[data-ui="v3"]:not(#nope) a.btn,
html[data-ui="v3"]:not(#nope) .s11-filter-apply,
html[data-ui="v3"]:not(#nope) .u11-btn,
html[data-ui="v3"]:not(#nope) .pay11-btn {
    font-family: inherit;
    font-size: var(--v3-t-sm) !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    border-radius: var(--v3-r-pill) !important;
    padding: .6rem 1.4rem !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
    transition: background var(--v3-fast) var(--v3-ease),
                border-color var(--v3-fast) var(--v3-ease),
                color var(--v3-fast) var(--v3-ease);
}

/* primary - one flat blue, no gradient */
html[data-ui="v3"]:not(#nope) .btn-primary,
html[data-ui="v3"]:not(#nope) .btn-success,
html[data-ui="v3"]:not(#nope) .s11-filter-apply,
html[data-ui="v3"]:not(#nope) .u11-btn--go,
html[data-ui="v3"]:not(#nope) .u11-submit,
html[data-ui="v3"]:not(#nope) .u11-btn--primary,
html[data-ui="v3"]:not(#nope) .pay11-btn--go,
html[data-ui="v3"]:not(#nope) .pay11-btn--primary,
html[data-ui="v3"]:not(#nope) .btn-select,
html[data-ui="v3"]:not(#nope) .bk-searchbar__btn,
html[data-ui="v3"]:not(#nope) .bk11-cart__go,
html[data-ui="v3"]:not(#nope) .ri11__ok,
html[data-ui="v3"]:not(#nope) .rules11__ok,
html[data-ui="v3"]:not(#nope) .am11__go,
html[data-ui="v3"]:not(#nope) .fe11-ok,
html[data-ui="v3"]:not(#nope) .quick-search button[type="submit"],
html[data-ui="v3"]:not(#nope) .quick-search .btn-search {
    background-color: var(--v3-brand) !important;
    color: #fff !important;
    border-color: var(--v3-brand) !important;
    font-weight: 600 !important;
}
html[data-ui="v3"]:not(#nope) .btn-primary:hover,
html[data-ui="v3"]:not(#nope) .btn-success:hover,
html[data-ui="v3"]:not(#nope) .s11-filter-apply:hover,
html[data-ui="v3"]:not(#nope) .u11-btn--go:hover,
html[data-ui="v3"]:not(#nope) .u11-submit:hover,
html[data-ui="v3"]:not(#nope) .pay11-btn--go:hover,
html[data-ui="v3"]:not(#nope) .pay11-btn--primary:hover,
html[data-ui="v3"]:not(#nope) .btn-select:hover,
html[data-ui="v3"]:not(#nope) .bk-searchbar__btn:hover,
html[data-ui="v3"]:not(#nope) .bk11-cart__go:hover,
html[data-ui="v3"]:not(#nope) .ri11__ok:hover,
html[data-ui="v3"]:not(#nope) .rules11__ok:hover,
html[data-ui="v3"]:not(#nope) .quick-search button[type="submit"]:hover {
    background-color: var(--v3-brand-2) !important;
    border-color: var(--v3-brand-2) !important;
}

/* quiet - outlined pill */
html[data-ui="v3"]:not(#nope) .btn-outline-primary,
html[data-ui="v3"]:not(#nope) .btn-outline-secondary,
html[data-ui="v3"]:not(#nope) .btn-light,
html[data-ui="v3"]:not(#nope) .btn--ghost,
html[data-ui="v3"]:not(#nope) .u11-btn--ghost,
html[data-ui="v3"]:not(#nope) .pay11-btn--ghost,
html[data-ui="v3"]:not(#nope) .s11-loadmore .btn,
html[data-ui="v3"]:not(#nope) .btn-more,
html[data-ui="v3"]:not(#nope) #load-more,
html[data-ui="v3"]:not(#nope) .asa-s11 #load-more {
    background-color: var(--v3-surface) !important;
    color: var(--v3-brand-ink) !important;
    border-color: var(--v3-brand-line) !important;
}
html[data-ui="v3"]:not(#nope) .btn-outline-primary:hover,
html[data-ui="v3"]:not(#nope) .btn-light:hover,
html[data-ui="v3"]:not(#nope) .btn--ghost:hover,
html[data-ui="v3"]:not(#nope) .u11-btn--ghost:hover,
html[data-ui="v3"]:not(#nope) .pay11-btn--ghost:hover,
html[data-ui="v3"]:not(#nope) .s11-loadmore .btn:hover,
html[data-ui="v3"]:not(#nope) .btn-more:hover,
html[data-ui="v3"]:not(#nope) #load-more:hover {
    background-color: var(--v3-brand-soft) !important;
    border-color: var(--v3-brand) !important;
}

html[data-ui="v3"]:not(#nope) .btn-danger {
    background-color: var(--v3-bad) !important;
    color: #fff !important; border-color: var(--v3-bad) !important;
}
html[data-ui="v3"]:not(#nope) .btn:disabled,
html[data-ui="v3"]:not(#nope) .btn.disabled,
html[data-ui="v3"]:not(#nope) button:disabled { opacity: .45; cursor: not-allowed; }

/* ---- fields ----------------------------------------------------------- */

html[data-ui="v3"]:not(#nope) .form-control,
html[data-ui="v3"]:not(#nope) .form-select,
html[data-ui="v3"]:not(#nope) input[type="text"],
html[data-ui="v3"]:not(#nope) input[type="tel"],
html[data-ui="v3"]:not(#nope) input[type="email"],
html[data-ui="v3"]:not(#nope) input[type="number"],
html[data-ui="v3"]:not(#nope) input[type="password"],
html[data-ui="v3"]:not(#nope) input[type="search"],
html[data-ui="v3"]:not(#nope) textarea,
html[data-ui="v3"]:not(#nope) select,
html[data-ui="v3"]:not(#nope) .card__form-input,
html[data-ui="v3"]:not(#nope) .u11-f input,
html[data-ui="v3"]:not(#nope) .pay11-field__input,
html[data-ui="v3"]:not(#nope) .am11__field input {
    background-color: var(--v3-surface) !important;
    color: var(--v3-ink) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-sm) !important;
    font-family: inherit;
    font-size: var(--v3-t-sm) !important;
    box-shadow: none !important;
    transition: border-color var(--v3-fast) var(--v3-ease), box-shadow var(--v3-fast) var(--v3-ease);
}
html[data-ui="v3"]:not(#nope) .form-control::placeholder,
html[data-ui="v3"]:not(#nope) input::placeholder,
html[data-ui="v3"]:not(#nope) textarea::placeholder { color: var(--v3-muted) !important; opacity: 1; }

html[data-ui="v3"]:not(#nope) .form-control:focus,
html[data-ui="v3"]:not(#nope) .form-select:focus,
html[data-ui="v3"]:not(#nope) input:focus,
html[data-ui="v3"]:not(#nope) textarea:focus,
html[data-ui="v3"]:not(#nope) select:focus,
html[data-ui="v3"]:not(#nope) .u11-f input:focus,
html[data-ui="v3"]:not(#nope) .pay11-field__input:focus,
html[data-ui="v3"]:not(#nope) .am11__field input:focus {
    border-color: var(--v3-brand) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--v3-brand) 16%, transparent) !important;
}

/* A failed field turns its ring red and keeps its surface. */
html[data-ui="v3"]:not(#nope) .form-control.is-invalid11,
html[data-ui="v3"]:not(#nope) .form-control.fe11-bad,
html[data-ui="v3"]:not(#nope) .fe11-bad,
html[data-ui="v3"]:not(#nope) .is-invalid {
    border-color: var(--v3-bad) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--v3-bad) 14%, transparent) !important;
    background-color: var(--v3-surface) !important;
    color: var(--v3-ink) !important;
}
html[data-ui="v3"]:not(#nope) .v11-err,
html[data-ui="v3"]:not(#nope) .fe11-note,
html[data-ui="v3"]:not(#nope) .invalid-feedback {
    color: var(--v3-bad) !important;
    font-size: var(--v3-t-xs) !important;
}

html[data-ui="v3"]:not(#nope) .form-floating > label,
html[data-ui="v3"]:not(#nope) .bk-searchbar__label,
html[data-ui="v3"]:not(#nope) .u11-f label,
html[data-ui="v3"]:not(#nope) .pay11-field__label {
    color: var(--v3-muted) !important;
    font-size: var(--v3-t-xs) !important;
    font-weight: 500 !important;
    background: none !important;
}

/* select2 + the Jalali datepicker - both float, so both get the one shadow. */
html[data-ui="v3"]:not(#nope) .select2-container--default .select2-selection--single,
html[data-ui="v3"]:not(#nope) .select2-dropdown,
html[data-ui="v3"]:not(#nope) .select2-search__field {
    background-color: var(--v3-surface) !important;
    border-color: var(--v3-line) !important;
    color: var(--v3-ink) !important;
    border-radius: var(--v3-r-sm) !important;
}
html[data-ui="v3"]:not(#nope) .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--v3-ink) !important; line-height: 2.2 !important;
}
html[data-ui="v3"]:not(#nope) .select2-dropdown { box-shadow: var(--v3-sh-2) !important; overflow: hidden; }
html[data-ui="v3"]:not(#nope) .select2-results__option { background-color: var(--v3-surface) !important; color: var(--v3-ink-2) !important; }
html[data-ui="v3"]:not(#nope) .select2-results__option--highlighted {
    background-color: var(--v3-brand-soft) !important; color: var(--v3-brand-ink) !important;
}

html[data-ui="v3"]:not(#nope) .datepicker,
html[data-ui="v3"]:not(#nope) .datepicker-dropdown,
html[data-ui="v3"]:not(#nope) .ui-datepicker,
html[data-ui="v3"]:not(#nope) .asa-s11 .ui-datepicker,
html[data-ui="v3"]:not(#nope) .datepicker table tr td,
html[data-ui="v3"]:not(#nope) .datepicker table tr th {
    background-color: var(--v3-surface) !important;
    color: var(--v3-ink) !important;
    border-color: var(--v3-line) !important;
}
html[data-ui="v3"]:not(#nope) .datepicker-dropdown,
html[data-ui="v3"]:not(#nope) .ui-datepicker {
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r) !important;
    box-shadow: var(--v3-sh-2) !important;
    padding: .4rem !important;
}
html[data-ui="v3"]:not(#nope) .ui-datepicker .ui-datepicker-prev,
html[data-ui="v3"]:not(#nope) .ui-datepicker .ui-datepicker-next,
html[data-ui="v3"]:not(#nope) .ui-datepicker .ui-state-default {
    background-color: transparent !important;
    color: var(--v3-ink) !important;
    border: 0 !important;
}
html[data-ui="v3"]:not(#nope) .datepicker table tr td.day:hover,
html[data-ui="v3"]:not(#nope) .ui-datepicker .ui-state-default:hover {
    background-color: var(--v3-brand-soft) !important;
    color: var(--v3-brand-ink) !important;
    border-radius: var(--v3-r-xs) !important;
}
html[data-ui="v3"]:not(#nope) .datepicker table tr td.active,
html[data-ui="v3"]:not(#nope) .ui-datepicker .ui-datepicker-today .ui-state-default,
html[data-ui="v3"]:not(#nope) .ui-datepicker .ui-state-active {
    background-color: var(--v3-brand) !important;
    color: #fff !important;
    border-radius: var(--v3-r-xs) !important;
}
html[data-ui="v3"]:not(#nope) .datepicker table tr td.old,
html[data-ui="v3"]:not(#nope) .datepicker table tr td.new,
html[data-ui="v3"]:not(#nope) .datepicker table tr td.disabled { color: var(--v3-muted) !important; }

/* ---- checkbox + radio ------------------------------------------------- */

html[data-ui="v3"]:not(#nope) .form-check-input {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line-2) !important;
    border-radius: var(--v3-r-xs) !important;
    width: 1.05em; height: 1.05em;
}
html[data-ui="v3"]:not(#nope) .form-check-input:checked {
    background-color: var(--v3-brand) !important;
    border-color: var(--v3-brand) !important;
}
html[data-ui="v3"]:not(#nope) .filter_stars > label:before,
html[data-ui="v3"]:not(#nope) .filter_cap > label:before,
html[data-ui="v3"]:not(#nope) .filter-room-kind > div > label:before {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line-2) !important;
    border-radius: var(--v3-r-xs) !important;
}
html[data-ui="v3"]:not(#nope) .filter_stars > input:checked + label:before,
html[data-ui="v3"]:not(#nope) .filter_cap > input:checked + label:before,
html[data-ui="v3"]:not(#nope) .filter-room-kind > div > input:checked + label:before {
    background-color: var(--v3-brand) !important;
    border-color: var(--v3-brand) !important;
}

/* ---- chips ------------------------------------------------------------
   flytoday has three chip roles and they do not share a colour:
     included  green      points  amber      plain  grey                   */

html[data-ui="v3"]:not(#nope) .tag,
html[data-ui="v3"]:not(#nope) .s11-flight-chip,
html[data-ui="v3"]:not(#nope) .u11-pill,
html[data-ui="v3"]:not(#nope) .room-count-chip,
html[data-ui="v3"]:not(#nope) .ri11__tag,
html[data-ui="v3"]:not(#nope) .pill {
    border-radius: var(--v3-r-xs) !important;
    font-size: var(--v3-t-xs) !important;
    font-weight: 500 !important;
    padding: .15rem .5rem !important;
    border: 1px solid var(--v3-line) !important;
    background-color: var(--v3-chip) !important;
    color: var(--v3-chip-ink) !important;
}

/* board / meals / anything "included" is green, like their amenity rows */
html[data-ui="v3"]:not(#nope) .s11-tags {
    background: none !important; border: 0 !important; padding: 0 !important; gap: .3rem;
}
/* .item is overloaded in this codebase: meal chips inside .diet-box on the
   rooms page, but the GUEST DETAIL fields on the payment review page. Scoped
   to the meal containers only - unscoped, it painted every name and phone
   number on step 3 in "included" green. */
html[data-ui="v3"]:not(#nope) .s11-tags .tag,
html[data-ui="v3"]:not(#nope) .bk11 .diet-box .item,
html[data-ui="v3"]:not(#nope) .diet-box .item,
html[data-ui="v3"]:not(#nope) .room__meal-box .item,
html[data-ui="v3"]:not(#nope) .badge.room__meal-item,
html[data-ui="v3"]:not(#nope) .room__meal-item,
html[data-ui="v3"]:not(#nope) .meal-box > .meal-item {
    background-color: var(--v3-ok-soft) !important;
    color: var(--v3-ok) !important;
    border: 1px solid var(--v3-ok-line) !important;
    border-radius: var(--v3-r-xs) !important;
    font-size: var(--v3-t-xs) !important;
    font-weight: 500 !important;
    padding: .15rem .5rem !important;
    width: auto; flex: 0 0 auto;
}

/* supplier badges */
html[data-ui="v3"]:not(#nope) .s11-src {
    border-radius: var(--v3-r-xs) !important;
    font-size: var(--v3-t-xs) !important;
    font-weight: 600 !important;
    padding: .12rem .45rem !important;
    background-color: var(--v3-surface-3) !important;
    border: 1px solid var(--v3-line) !important;
}
html[data-ui="v3"]:not(#nope) .s11-src--asa { color: var(--v3-brand-ink) !important; border-color: var(--v3-brand-line) !important; background-color: var(--v3-brand-soft) !important; }
html[data-ui="v3"]:not(#nope) .s11-src--snp { color: #be185d !important; }
html[data-ui="v3"]:not(#nope) .s11-src--egh { color: var(--v3-ink-2) !important; }
html[data-ui="v3"]:not(#nope) .s11-src--irq { color: var(--v3-gold-ink) !important; }
html[data-ui="v3"]:not(#nope) .s11-src--gar { color: var(--v3-brand-ink) !important; }

/* stars: flytoday's are amber glyphs on the baseline of the name */
html[data-ui="v3"]:not(#nope) .s11-star,
html[data-ui="v3"]:not(#nope) .rating-wrapper,
html[data-ui="v3"]:not(#nope) .bk11-hotelhead__star {
    color: #f0a819 !important;
    background: none !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 500 !important;
}

/* ---- tables ----------------------------------------------------------- */

html[data-ui="v3"]:not(#nope) table { border-collapse: separate; border-spacing: 0; width: 100%; }
html[data-ui="v3"]:not(#nope) .prepayment-table,
html[data-ui="v3"]:not(#nope) .table {
    background-color: transparent !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r) !important;
    overflow: hidden;
    font-size: var(--v3-t-sm) !important;
}
html[data-ui="v3"]:not(#nope) .prepayment-table thead th,
html[data-ui="v3"]:not(#nope) .table thead th {
    background-color: var(--v3-surface-3) !important;
    color: var(--v3-ink-2) !important;
    font-weight: 600 !important;
    font-size: var(--v3-t-xs) !important;
    border-bottom: 1px solid var(--v3-line) !important;
}
html[data-ui="v3"]:not(#nope) .prepayment-table td,
html[data-ui="v3"]:not(#nope) .table td {
    background-color: transparent !important;
    color: var(--v3-ink) !important;
    border-top: 1px solid var(--v3-line) !important;
}
html[data-ui="v3"]:not(#nope) .prepayment-table tbody tr:hover td { background-color: var(--v3-surface-2) !important; }

/* bootstrap utility colours, wherever they land */
html[data-ui="v3"]:not(#nope) .text-success { color: var(--v3-ok) !important; }
html[data-ui="v3"]:not(#nope) .text-danger  { color: var(--v3-bad) !important; }
html[data-ui="v3"]:not(#nope) .text-warning { color: var(--v3-warn) !important; }
html[data-ui="v3"]:not(#nope) .text-muted   { color: var(--v3-muted) !important; }
html[data-ui="v3"]:not(#nope) .bg-light,
html[data-ui="v3"]:not(#nope) .bg-white { background-color: var(--v3-surface) !important; color: var(--v3-ink) !important; }


/* ==========================================================================
   7. THE SEARCH PAGE
   --------------------------------------------------------------------------
   flytoday: a navy band, the search card sitting half over it, then results
   as image-forward cards on the page background.
   ========================================================================== */

html[data-ui="v3"]:not(#nope) .asa-s11 .s11-canvas,
html[data-ui="v3"]:not(#nope) body.asa-s11.s11-canvas,
html[data-ui="v3"]:not(#nope) .asa-s11 .card.s11-canvas {
    background-color: var(--v3-bg) !important;
    border: 0 !important;
}

/* ---- the navy hero ---------------------------------------------------- */

html[data-ui="v3"]:not(#nope) .asa-s11 .s11-hero {
    background-color: var(--v3-navy) !important;
    background-image:
        radial-gradient(120% 140% at 18% -20%, var(--v3-navy-2) 0%, transparent 55%),
        radial-gradient(90% 120% at 85% -10%, rgba(54,98,219,.35) 0%, transparent 60%) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 1.6rem 0 3.4rem !important;   /* room for the card to overlap   */
    min-height: 0;
    position: relative;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-banner-head {
    color: #fff !important;
    font-size: var(--v3-t-xl) !important;
    font-weight: 700 !important;
    text-align: center !important;
    margin-bottom: 1rem !important;
    background: none !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-banner-head small,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-banner-head span {
    color: rgba(255,255,255,.72) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 400 !important;
}

/* ---- the tab strip ----------------------------------------------------
   The real tabs are .quick-search-type > li > a and they carry NO class, so
   every rule aimed at .menuBtnStyle* missed them. The legacy sheet paints
   them #fff because they used to sit on the dark green hero; in v3 the card
   under them is white, so they were white-on-white and the strip looked
   empty. flytoday's treatment: grey inactive, blue active, blue underline. */

html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type {
    color: var(--v3-ink) !important;
    border-bottom: 1px solid var(--v3-line) !important;
    gap: .25rem;
    padding-inline: .5rem !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li > a,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li {
    color: var(--v3-muted) !important;
    background-color: transparent !important;
    border: 0 !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 600 !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li > a {
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    padding: .5rem .85rem !important;
    transition: color var(--v3-fast) var(--v3-ease), border-color var(--v3-fast) var(--v3-ease);
}
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li > a:hover { color: var(--v3-ink) !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li.active > a,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li.selected > a,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li.active,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li.selected {
    color: var(--v3-brand-ink) !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li.active > a,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li.selected > a {
    border-bottom-color: var(--v3-brand) !important;
}
/* "فنادق العراق" is flagged coming-soon and should read as unavailable */
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li.s11-tab--soon,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-type > li.s11-tab--soon > a {
    color: var(--v3-muted) !important;
    opacity: .7;
}

html[data-ui="v3"]:not(#nope) .asa-s11 .menuBtnStyle1,
html[data-ui="v3"]:not(#nope) .asa-s11 .menuBtnStyle2,
html[data-ui="v3"]:not(#nope) .asa-s11 .search_opt + label {
    background-color: transparent !important;
    color: var(--v3-muted) !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 600 !important;
    padding: .7rem 1.1rem !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .menuBtnStyle1:hover,
html[data-ui="v3"]:not(#nope) .asa-s11 .search_opt + label:hover { color: var(--v3-ink) !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .search_opt:checked + label,
html[data-ui="v3"]:not(#nope) .asa-s11 .menuBtnStyle1.active,
html[data-ui="v3"]:not(#nope) .asa-s11 .menuBtnStyle2.active {
    color: var(--v3-brand-ink) !important;
    border-bottom-color: var(--v3-brand) !important;
    background-color: transparent !important;
}

/* ---- the search card, lifted over the navy ---------------------------- */

html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-lg) !important;
    box-shadow: var(--v3-sh-2) !important;     /* it floats over the navy   */
    padding: .5rem !important;
    position: relative; z-index: 2;
    margin-top: -2.6rem !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-hero .quick-search-from-group-box {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-sm) !important;
    box-shadow: none !important;
    padding: .5rem .85rem !important;
    transition: border-color var(--v3-fast) var(--v3-ease);
}
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box:hover,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box:focus-within {
    border-color: var(--v3-brand) !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box > label {
    color: var(--v3-muted) !important;
    font-size: var(--v3-t-xs) !important;
    font-weight: 400 !important;
    margin-bottom: .05rem !important; display: block;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box > input,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box > div[style],
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box .select2-container--default .select2-selection--single .select2-selection__rendered {
    background-color: transparent !important;
    border: 0 !important;
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-md) !important;
    font-weight: 500 !important;
    padding: 0 !important;
    box-shadow: none !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box .select2-container--default .select2-selection--single {
    background-color: transparent !important; border: 0 !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box.error {
    border-color: var(--v3-bad) !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search-from-group-box.error label { color: var(--v3-bad) !important; }

html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search .btn,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search .btn-success,
html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search button[type="submit"] {
    height: 52px;
    min-height: 0;
    align-self: center;
    border-radius: var(--v3-r-pill) !important;
    font-size: var(--v3-t-md) !important;
    font-weight: 600 !important;
    padding-inline: 2.4rem !important;
}

/* ---- results heading + sort ------------------------------------------- */

html[data-ui="v3"]:not(#nope) .asa-s11 .s11-layout { gap: 1.5rem; padding-top: 1.5rem !important; }

html[data-ui="v3"]:not(#nope) .asa-s11 .s11-results-head,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-divider-title {
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-xl) !important;
    font-weight: 700 !important;
    background: none !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-count { color: var(--v3-muted) !important; font-size: var(--v3-t-sm) !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-divider-line { background: var(--v3-line) !important; height: 1px; }

html[data-ui="v3"]:not(#nope) .asa-s11 .s11-sort-bar {
    display: inline-flex; gap: 2px; padding: 3px !important;
    width: fit-content; align-self: flex-start;
    background-color: var(--v3-surface-3) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-sort-btn {
    background-color: transparent !important;
    color: var(--v3-muted) !important;
    border: 0 !important;
    border-radius: var(--v3-r-pill) !important;
    font-size: var(--v3-t-xs) !important;
    font-weight: 600 !important;
    padding: .34rem .9rem !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-sort-btn:hover { color: var(--v3-ink) !important; background-color: var(--v3-surface) !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-sort-btn.is-on,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-sort-btn.active {
    background-color: var(--v3-surface) !important;
    color: var(--v3-brand-ink) !important;
    border: 1px solid var(--v3-line) !important;
}

/* ---- a hotel result ---------------------------------------------------
   flytoday's card: photo with its own radius, then rating / name / stars
   underneath. Bordered, never shadowed, and it lifts its border on hover
   rather than moving. */

html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-area ul > li {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-lg) !important;
    box-shadow: none !important;
    margin-bottom: 1rem !important;
    overflow: hidden;
    padding: .75rem !important;
    gap: 1rem;
    transition: border-color var(--v3-mid) var(--v3-ease);
}
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-area ul > li:hover {
    border-color: var(--v3-brand) !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-img > img {
    border-radius: var(--v3-r) !important;
    background-color: var(--v3-surface-3) !important;
    object-fit: cover !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-info h4 {
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-lg) !important;
    font-weight: 700 !important;
    margin-bottom: .35rem !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-info .s11-loc {
    color: var(--v3-muted) !important;
    font-size: var(--v3-t-sm) !important;
}

/* the price column */
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order > div:nth-child(1) {
    color: var(--v3-muted) !important;
    font-size: var(--v3-t-xs) !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order > div:nth-child(2) {
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-lg) !important;
    font-weight: 700 !important;
    font-variant-numeric: tabular-nums !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order .price,
html[data-ui="v3"]:not(#nope) .asa-s11 .price-units {
    color: var(--v3-price) !important;
    font-size: var(--v3-t-lg) !important;
    font-weight: 700 !important;
    font-variant-numeric: tabular-nums !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .discount,
html[data-ui="v3"]:not(#nope) .asa-s11 .discount1,
html[data-ui="v3"]:not(#nope) .discount_style1,
html[data-ui="v3"]:not(#nope) .discount-text,
html[data-ui="v3"]:not(#nope) .discount-badge {
    background-color: var(--v3-bad-soft) !important;
    color: var(--v3-bad) !important;
    border: 1px solid color-mix(in srgb, var(--v3-bad) 30%, transparent) !important;
    border-radius: var(--v3-r-xs) !important;
    font-size: var(--v3-t-xs) !important;
    font-weight: 600 !important;
    padding: .1rem .4rem !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 s,
html[data-ui="v3"]:not(#nope) .asa-s11 del { color: var(--v3-muted) !important; }

/* the row's CTA - a blue pill, like every other action in this skin */
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order a.btn,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order a.btn-warning,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order a.btn-success {
    background-color: var(--v3-brand) !important;
    color: #fff !important;
    border: 1px solid var(--v3-brand) !important;
    border-radius: var(--v3-r-pill) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 600 !important;
    padding: .55rem 1.2rem !important;
    text-align: center !important; justify-content: center;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order a.btn:hover,
html[data-ui="v3"]:not(#nope) .asa-s11 .search-result-order a.btn-warning:hover {
    background-color: var(--v3-brand-2) !important;
}

/* ---- the filter rail --------------------------------------------------- */

html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-lg) !important;
    padding: .25rem 1rem !important;
    box-shadow: none !important;
    align-self: start;
    position: sticky; top: 5rem;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area .filter-box,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-options {
    background-color: transparent !important;
    border: 0 !important;
    border-top: 1px solid var(--v3-line) !important;
    border-radius: 0 !important;
    padding: .9rem 0 !important;
    box-shadow: none !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area .filter-box:first-child { border-top: 0 !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area .filter-box h5,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-filter-head {
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 700 !important;
    background: none !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area label {
    color: var(--v3-ink-2) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 400 !important;
    cursor: pointer;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area label:hover { color: var(--v3-brand-ink) !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-filter-head a { color: var(--v3-brand-ink) !important; font-size: var(--v3-t-xs) !important; font-weight: 600 !important; }

html[data-ui="v3"]:not(#nope) .asa-s11 .filter-rate-range,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-rate-range > span#min_rate,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-rate-range > span#max_rate {
    background-color: transparent !important;
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-xs) !important;
    font-variant-numeric: tabular-nums !important;
    font-weight: 600 !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .price-range-knob {
    background-color: var(--v3-brand) !important;
    border: 2px solid var(--v3-surface) !important;
    box-shadow: 0 0 0 1px var(--v3-brand) !important;
    border-radius: 50% !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .ui-slider,
html[data-ui="v3"]:not(#nope) .asa-s11 .price-range-line,
html[data-ui="v3"]:not(#nope) .asa-s11 .filter-rate-range-area,
html[data-ui="v3"]:not(#nope) .filter-rate-range-area {
    background-color: var(--v3-brand) !important;
    height: 4px; border-radius: 999px !important;
}

html[data-ui="v3"]:not(#nope) .asa-s11 .s11-filter-pill {
    background-color: var(--v3-surface) !important;
    color: var(--v3-ink) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
    box-shadow: var(--v3-sh-2) !important;
    font-weight: 600 !important;
    font-size: var(--v3-t-sm) !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-filter-backdrop { background: rgba(15,23,42,.5) !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-filter-close {
    background-color: var(--v3-surface-3) !important;
    color: var(--v3-ink) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-sm) !important;
}

/* ---- source toggle, empty, load more ---------------------------------- */

html[data-ui="v3"]:not(#nope) .asa-s11 .s11-srcbar {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
    padding: .25rem .5rem !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-srcbtn,
html[data-ui="v3"]:not(#nope) .s11-srcbtn {
    background-color: var(--v3-surface) !important;
    color: var(--v3-ink) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
    padding: .35rem .8rem !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-srcbtn:hover {
    background-color: var(--v3-brand-soft) !important;
    border-color: var(--v3-brand-line) !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-srcbtn__t { color: var(--v3-ink-2) !important; font-size: var(--v3-t-xs) !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-srcbtn__s,
html[data-ui="v3"]:not(#nope) .s11-srcbtn__s { color: var(--v3-brand-ink) !important; font-size: var(--v3-t-xs) !important; font-weight: 700 !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-sw,
html[data-ui="v3"]:not(#nope) .s11-sw { background-color: var(--v3-line-2) !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-sw.is-on,
html[data-ui="v3"]:not(#nope) .s11-sw.is-on,
html[data-ui="v3"]:not(#nope) .s11-srcbtn.is-on .s11-sw,
html[data-ui="v3"]:not(#nope) .s11-srcbtn[aria-pressed="true"] .s11-sw,
html[data-ui="v3"]:not(#nope) .asa-s11 input:checked + .s11-sw { background-color: var(--v3-brand) !important; }

html[data-ui="v3"]:not(#nope) .asa-s11 .s11-empty,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-nosrc {
    background-color: var(--v3-surface) !important;
    border: 1px dashed var(--v3-line) !important;
    border-radius: var(--v3-r-lg) !important;
    color: var(--v3-ink-2) !important;
    padding: 2.5rem 1.5rem !important;
    text-align: center !important;
    font-size: var(--v3-t-sm) !important;
}
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-loading { color: var(--v3-muted) !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-soon,
html[data-ui="v3"]:not(#nope) .s11-soon { color: var(--v3-warn) !important; font-weight: 600 !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-selected {
    background-color: var(--v3-brand-soft) !important;
    border-color: var(--v3-brand) !important;
}


/* ==========================================================================
   8. THE BOOKING FUNNEL   -   rooms -> guest -> payment
   ========================================================================== */

/* ---- the funnel's own search band -------------------------------------
   booking-ui11.css gives it a wash in the OLD brand green plus a skyline
   line drawing. Neither survives: it becomes the same navy band as the
   search hero so the two headers read as one product. */

html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar,
html[data-ui="v3"]:not(#nope) .bk-searchbar {
    background-color: var(--v3-navy) !important;
    background-image:
        radial-gradient(120% 140% at 18% -20%, var(--v3-navy-2) 0%, transparent 55%),
        radial-gradient(90% 120% at 85% -10%, rgba(54,98,219,.35) 0%, transparent 60%) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    position: relative;
}
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar::before,
html[data-ui="v3"]:not(#nope) .bk-searchbar::before {
    background-image: none !important;
    background-color: transparent !important;
    opacity: 0 !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar > * { position: relative; z-index: 1; }

html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar__row {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-lg) !important;
    box-shadow: var(--v3-sh-2) !important;
    padding: .45rem !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar__field {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-sm) !important;
    padding: .45rem .8rem !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar__field:hover,
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar__field:focus-within { border-color: var(--v3-brand) !important; }
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar__label { color: var(--v3-muted) !important; font-size: var(--v3-t-xs) !important; }

/* ---- hotel header + gallery mosaic -------------------------------------
   flytoday's gallery is a mosaic with one rounded outer corner set and a
   photo-count chip on the last tile. */

html[data-ui="v3"]:not(#nope) .bk11 .bk11-hotelhead {
    background-color: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--v3-line) !important;
    border-radius: 0 !important;
    padding-bottom: 1.1rem !important; margin-bottom: 1.1rem !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .bk11-hotelhead__name {
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-2xl) !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    background: none !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .bk11-hotelhead__addr,
html[data-ui="v3"]:not(#nope) .bk11 .bk11-hotelhead__meta { color: var(--v3-muted) !important; font-size: var(--v3-t-sm) !important; }
html[data-ui="v3"]:not(#nope) .bk11 .bk11-hotelhead__img,
html[data-ui="v3"]:not(#nope) .bk11 .gallery img,
html[data-ui="v3"]:not(#nope) .bk11 .cover {
    border-radius: var(--v3-r) !important;
    background-color: var(--v3-surface-3) !important;
    object-fit: cover !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .gallery__item,
html[data-ui="v3"]:not(#nope) .gallery__item {
    background-color: var(--v3-surface-3) !important;
    border-radius: var(--v3-r) !important;
    overflow: hidden;
}
/* the "+۴۹ عکس" chip */
html[data-ui="v3"]:not(#nope) .bk11 .gallery__more {
    background-color: rgba(15,23,42,.72) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: var(--v3-r-pill) !important;
    backdrop-filter: blur(4px) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 600 !important;
    padding: .35rem .9rem !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .gallery__more:hover { background-color: rgba(15,23,42,.88) !important; }

html[data-ui="v3"]:not(#nope) .bk11 .bk-lightbox__stage,
html[data-ui="v3"]:not(#nope) .bk11 .bk-lightbox__panel { background-color: var(--v3-bg) !important; }
html[data-ui="v3"]:not(#nope) .bk11 .bk-lightbox__close {
    background-color: var(--v3-surface) !important;
    color: var(--v3-ink) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
}

/* ---- the step rail -----------------------------------------------------
   A real sequence: done filled, current filled + ringed, ahead hollow. */

html[data-ui="v3"]:not(#nope) .reserve-steps,
html[data-ui="v3"]:not(#nope) .reserve__steps-box,
html[data-ui="v3"]:not(#nope) .bk11 .steps {
    background-color: transparent !important;
    border: 0 !important;
}
html[data-ui="v3"]:not(#nope) .step__item,
html[data-ui="v3"]:not(#nope) .bk11 .reserve__steps-box .step__item {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line-2) !important;
    color: var(--v3-muted) !important;
    box-shadow: none !important;
}
html[data-ui="v3"]:not(#nope) .step__item.active,
html[data-ui="v3"]:not(#nope) .step__item.is-done,
html[data-ui="v3"]:not(#nope) .bk11 .reserve__steps-box .step__item.active {
    background-color: var(--v3-brand) !important;
    border-color: var(--v3-brand) !important;
    color: #fff !important;
}
html[data-ui="v3"]:not(#nope) .step__item.active {
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--v3-brand) 20%, transparent) !important;
}
html[data-ui="v3"]:not(#nope) .step__item-divider {
    border: 0 !important;
    border-top: 1px solid var(--v3-line) !important;
    background-color: transparent !important;
    opacity: 1 !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .step,
html[data-ui="v3"]:not(#nope) .bk11 .reserve-step {
    color: var(--v3-muted) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 600 !important;
    background: none !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .step.is-on,
html[data-ui="v3"]:not(#nope) .bk11 .step.active,
html[data-ui="v3"]:not(#nope) .bk11 .reserve-step.active { color: var(--v3-brand-ink) !important; }

/* ---- ROOM CARDS   the signature component ------------------------------
   flytoday's anatomy, applied to the panel's markup:
     photo (its own radius)  ->  name  ->  green "what's included" rows
     ->  a ruled footer carrying scarcity, points, price and a pill CTA.
   Bordered, never shadowed; hover lifts the border, not the card. */

html[data-ui="v3"]:not(#nope) .bk11 section.rooms .card-package,
html[data-ui="v3"]:not(#nope) .bk11 section.rooms .card-package-page-list-hotel,
html[data-ui="v3"]:not(#nope) .bk11 .rooms-card .room-item-card {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-lg) !important;
    box-shadow: none !important;
    margin-bottom: 1rem !important;
    overflow: hidden;
    transition: border-color var(--v3-mid) var(--v3-ease);
}
html[data-ui="v3"]:not(#nope) .bk11 section.rooms .card-package:hover,
html[data-ui="v3"]:not(#nope) .bk11 .rooms-card .room-item-card:hover {
    border-color: var(--v3-brand) !important;
    background-color: var(--v3-surface) !important;
}

/* -- THE RESTRUCTURE ----------------------------------------------------
   The panel ships a room as a horizontal Bootstrap row: image | details |
   price. flytoday ships it as a vertical card in a grid: photo on top, the
   details under it, a ruled footer with the money. The markup supports the
   change without touching a line of PHP - .room-item is a flex row, so it
   only has to become a column, and all seven cards already live alone
   inside #packages-container, which can therefore become the grid.

   Verified before writing: #packages-container holds 7 .card-package and
   nothing else, so gridding it cannot disturb a sibling. */

html[data-ui="v3"]:not(#nope) #packages-container {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
    gap: 1rem;
    align-items: stretch;
}
html[data-ui="v3"]:not(#nope) #packages-container > .card-package {
    margin-bottom: 0 !important;
    padding: 0 !important;            /* booking-ui11 pads it; the photo has
                                         to reach the card edge */
    display: flex; flex-direction: column;
}
/* The markup carries a SECOND copy of the detail links for mobile
   (.col-12.d-lg-none.btn-box). Bootstrap hides it above 992px; an earlier
   blanket `.btn-box { display:flex }` here un-hid it and every card showed
   its three links twice. Keep Bootstrap's contract. */
@media (min-width: 992px) {
    html[data-ui="v3"]:not(#nope) #packages-container .d-lg-none { display: none !important; }
}
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .room-item.row {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;             /* .row keeps the photo off the edge */
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
}
/* the photograph, edge to edge across the card top */
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .room-item > .col-auto {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    padding: 0 !important;
}
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .cover {
    width: 100% !important;
    height: 190px !important;
    border-radius: 0 !important;
    object-fit: cover !important;
    display: block;
    background-color: var(--v3-surface-3) !important;
}
/* the body */
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .room-item > .col {
    width: 100% !important;
    flex: 1 1 auto !important;
    padding: .9rem 1rem !important;
}
/* the ruled footer that carries the money - flytoday's is a separate tone */
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .price-container {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    border-top: 1px solid var(--v3-line) !important;
    background-color: var(--v3-surface-2) !important;
    padding: .85rem 1rem !important;
    align-self: stretch !important;
}
/* The price block is a column in the markup and should stay one - forcing it
   to a row wrapped "السعر لـ ۱ ليلة" onto two lines and collided the
   strike-through with the discount badge. */
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .price-box {
    flex-direction: column !important;
    align-items: flex-start;
    gap: .1rem;
    width: 100%;
}
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .price-box > *:first-child {
    color: var(--v3-muted) !important;
    font-size: var(--v3-t-xs) !important;
}
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .rc11-box {
    width: 100%;
    gap: .45rem;
    margin-top: .7rem !important;
    min-width: 0;                      /* a flex child will not shrink below
                                          its content without this, which is
                                          what clipped "سریر اضافی" */
}
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .rc11-extra {
    width: 100%;
    min-width: 0;
    overflow: visible;
    flex-wrap: wrap;
    row-gap: .25rem;
    padding: .4rem .55rem !important;
    border-radius: var(--v3-r-sm) !important;
}
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .rc11-extra__label {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    min-width: 0;
    line-height: 1.4 !important;
}
/* the two counters are the densest thing in the card; keep them compact */
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .rc11__btn {
    width: 1.75rem; height: 1.75rem;
}
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .cover { height: 170px !important; }
/* only the DESKTOP copy of the link row is restyled; the mobile clone stays
   hidden (see the media query above) */
html[data-ui="v3"]:not(#nope) .bk11 #packages-container .room-item > .col > .btn-box {
    flex-wrap: wrap;
    gap: .1rem .4rem;
    margin-top: .5rem !important;
}
/* "متوسط سعر الليلة" is a caption, not a price */
html[data-ui="v3"]:not(#nope) .bk11 .night-price-box {
    color: var(--v3-muted) !important;
    font-size: var(--v3-t-xs) !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .diet-box { gap: .35rem; flex-wrap: wrap; }

html[data-ui="v3"]:not(#nope) .bk11 .room-item .room-name,
html[data-ui="v3"]:not(#nope) .bk11 .room-item-card h4,
html[data-ui="v3"]:not(#nope) .bk11 .room-item-card h5,
html[data-ui="v3"]:not(#nope) .bk11 .title {
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-md) !important;
    font-weight: 600 !important;
}

/* capacity meter */
html[data-ui="v3"]:not(#nope) .bk11 section.rooms .card-package > .room-item .capacity-box,
html[data-ui="v3"]:not(#nope) .bk11 .capacity-box {
    background-color: var(--v3-surface-2) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-sm) !important;
    padding: .3rem .6rem !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .capacity-box .item-person,
html[data-ui="v3"]:not(#nope) .bk11 .capacity-box .item-extra,
html[data-ui="v3"]:not(#nope) .bk11 .capacity-box .item-number,
html[data-ui="v3"]:not(#nope) .bk11 .capacity-box .item-cross::after {
    color: var(--v3-ink-2) !important;
    font-size: var(--v3-t-xs) !important;
    font-weight: 500 !important;
}

/* price: flytoday's prices are GREEN, and that is most of why their cards
   read as "a deal" rather than "an invoice". */
html[data-ui="v3"]:not(#nope) .bk11 .room-line-price,
html[data-ui="v3"]:not(#nope) .bk11 .night-price-box .price {
    color: var(--v3-price) !important;
    font-size: var(--v3-t-lg) !important;
    font-weight: 700 !important;
    font-variant-numeric: tabular-nums !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .room-line-price small,
html[data-ui="v3"]:not(#nope) .bk11 .price-note { color: var(--v3-muted) !important; font-size: var(--v3-t-xs) !important; font-weight: 400 !important; }

/* scarcity: an inline chip, not a block. Left as a block it paints a 680px
   red bar across the row and reads as an error banner. */
html[data-ui="v3"]:not(#nope) .bk11 .room-left,
html[data-ui="v3"]:not(#nope) .room-left,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-seats.is-low,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact--seats.is-low {
    display: inline-flex; align-items: center;
    width: auto; max-width: max-content;
    color: var(--v3-urgent) !important;
    background-color: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    font-size: var(--v3-t-xs) !important;
    font-weight: 600 !important;
}

/* the three room-detail links sit under the price as quiet blue text */
html[data-ui="v3"]:not(#nope) .btn-facilities,
html[data-ui="v3"]:not(#nope) .btn-terms,
html[data-ui="v3"]:not(#nope) .btn-calendar {
    background-color: transparent !important;
    color: var(--v3-brand-ink) !important;
    border: 0 !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 500 !important;
    padding: .2rem .35rem !important;
}
html[data-ui="v3"]:not(#nope) .btn-facilities:hover,
html[data-ui="v3"]:not(#nope) .btn-terms:hover,
html[data-ui="v3"]:not(#nope) .btn-calendar:hover { text-decoration: underline !important; }

/* "قابل استرداد" / refundable and anything else that is INCLUDED is green */
html[data-ui="v3"]:not(#nope) .bk11 .refundable,
html[data-ui="v3"]:not(#nope) .bk11 .is-included,
html[data-ui="v3"]:not(#nope) .bk11 .free-cancel { color: var(--v3-ok) !important; font-size: var(--v3-t-sm) !important; }

/* room-type filter pills above the list */
html[data-ui="v3"]:not(#nope) .btn__room-filter {
    background-color: var(--v3-surface) !important;
    color: var(--v3-ink-2) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 500 !important;
    padding: .38rem 1rem !important;
}
html[data-ui="v3"]:not(#nope) .btn__room-filter:hover {
    border-color: var(--v3-brand) !important; color: var(--v3-brand-ink) !important;
}
html[data-ui="v3"]:not(#nope) .btn__room-filter.btn__selected {
    background-color: var(--v3-brand) !important;
    border-color: var(--v3-brand) !important;
    color: #fff !important;
}

/* ---- the room counter -------------------------------------------------- */

html[data-ui="v3"]:not(#nope) .rc11,
html[data-ui="v3"]:not(#nope) .rc11-extra {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
    padding: 2px !important;
}
html[data-ui="v3"]:not(#nope) .rc11__btn {
    background-color: var(--v3-surface) !important;
    color: var(--v3-brand-ink) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: 50% !important;
    width: 2rem; height: 2rem;
    font-weight: 700 !important; line-height: 1 !important;
}
html[data-ui="v3"]:not(#nope) .rc11__btn:hover:not(:disabled) {
    background-color: var(--v3-brand) !important;
    border-color: var(--v3-brand) !important;
    color: #fff !important;
}
html[data-ui="v3"]:not(#nope) .rc11__n {
    color: var(--v3-ink) !important;
    font-weight: 700 !important; font-variant-numeric: tabular-nums !important;
    min-width: 2ch; text-align: center !important;
}
html[data-ui="v3"]:not(#nope) .rc11-extra__label { color: var(--v3-ink-2) !important; font-size: var(--v3-t-xs) !important; }
html[data-ui="v3"]:not(#nope) .rc11-extra__rate { color: var(--v3-price) !important; font-weight: 600 !important; }
html[data-ui="v3"]:not(#nope) .rc11-extra__rate small { color: var(--v3-muted) !important; }

/* ---- the cart ---------------------------------------------------------- */

html[data-ui="v3"]:not(#nope) .bk11-cart__inner {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-lg) !important;
    box-shadow: var(--v3-sh-3) !important;   /* it floats */
}
html[data-ui="v3"]:not(#nope) .bk11-cart__title {
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-md) !important;
    font-weight: 700 !important;
    border-bottom: 1px solid var(--v3-line) !important;
    padding-bottom: .5rem !important;
}
html[data-ui="v3"]:not(#nope) .bk11-cart__list li {
    background-color: transparent !important;
    color: var(--v3-ink-2) !important;
    border-bottom: 1px solid var(--v3-line) !important;
    font-size: var(--v3-t-sm) !important;
}
html[data-ui="v3"]:not(#nope) .bk11-cart__sum-label { color: var(--v3-muted) !important; font-size: var(--v3-t-sm) !important; }
html[data-ui="v3"]:not(#nope) .bk11-cart__sum-value {
    color: var(--v3-price) !important;
    font-size: var(--v3-t-xl) !important;
    font-weight: 700 !important;
    font-variant-numeric: tabular-nums !important;
}

/* ---- overlays: room detail, images, rules, errors, sign-in ------------- */

html[data-ui="v3"]:not(#nope) .rz11__box,
html[data-ui="v3"]:not(#nope) .ri11__box,
html[data-ui="v3"]:not(#nope) .rules11__box,
html[data-ui="v3"]:not(#nope) .fe11-box,
html[data-ui="v3"]:not(#nope) .am11__panel {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-lg) !important;
    box-shadow: var(--v3-sh-3) !important;
    color: var(--v3-ink) !important;
}
html[data-ui="v3"]:not(#nope) .rz11__x,
html[data-ui="v3"]:not(#nope) .ri11__x,
html[data-ui="v3"]:not(#nope) .rules11__x,
html[data-ui="v3"]:not(#nope) .am11__x {
    background-color: var(--v3-surface-3) !important;
    color: var(--v3-ink-2) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: 50% !important;
}
html[data-ui="v3"]:not(#nope) .rz11__x:hover,
html[data-ui="v3"]:not(#nope) .ri11__x:hover,
html[data-ui="v3"]:not(#nope) .rules11__x:hover,
html[data-ui="v3"]:not(#nope) .am11__x:hover {
    background-color: var(--v3-bad-soft) !important;
    color: var(--v3-bad) !important;
    border-color: color-mix(in srgb, var(--v3-bad) 35%, transparent) !important;
}
html[data-ui="v3"]:not(#nope) .ri11__title,
html[data-ui="v3"]:not(#nope) .rules11__title,
html[data-ui="v3"]:not(#nope) .rz11__cap {
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-lg) !important;
    font-weight: 700 !important;
}
html[data-ui="v3"]:not(#nope) .rules11__sec h3 { color: var(--v3-brand-ink) !important; font-size: var(--v3-t-sm) !important; font-weight: 700 !important; }
html[data-ui="v3"]:not(#nope) .rules11__sec li { color: var(--v3-ink-2) !important; font-size: var(--v3-t-sm) !important; }
html[data-ui="v3"]:not(#nope) .rules11__foot,
html[data-ui="v3"]:not(#nope) .ri11__foot {
    background-color: var(--v3-surface-2) !important;
    border-top: 1px solid var(--v3-line) !important;
}
html[data-ui="v3"]:not(#nope) .ri11__was { color: var(--v3-muted) !important; }
html[data-ui="v3"]:not(#nope) .ri11__off { color: var(--v3-save) !important; font-weight: 700 !important; }

html[data-ui="v3"]:not(#nope) .am11__tabs {
    background-color: var(--v3-surface-3) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
}
html[data-ui="v3"]:not(#nope) .am11__tab {
    background-color: transparent !important;
    color: var(--v3-muted) !important;
    border: 0 !important;
    border-radius: var(--v3-r-pill) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 600 !important;
}
html[data-ui="v3"]:not(#nope) .am11__tab.is-on {
    background-color: var(--v3-surface) !important;
    color: var(--v3-brand-ink) !important;
    border: 1px solid var(--v3-line) !important;
}
html[data-ui="v3"]:not(#nope) .am11__lead { color: var(--v3-ink-2) !important; font-size: var(--v3-t-sm) !important; }
html[data-ui="v3"]:not(#nope) .am11__field span,
html[data-ui="v3"]:not(#nope) .am11__hint { color: var(--v3-muted) !important; font-size: var(--v3-t-xs) !important; }
html[data-ui="v3"]:not(#nope) .am11__msg { color: var(--v3-bad) !important; font-size: var(--v3-t-sm) !important; }
html[data-ui="v3"]:not(#nope) .am11__msg[data-am11-ok] { color: var(--v3-ok) !important; }
html[data-ui="v3"]:not(#nope) .am11__links a,
html[data-ui="v3"]:not(#nope) .am11__link { color: var(--v3-brand-ink) !important; font-weight: 600 !important; }
html[data-ui="v3"]:not(#nope) .am11-bar {
    background-color: var(--v3-surface-2) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-sm) !important;
}
html[data-ui="v3"]:not(#nope) .am11-bar__txt { color: var(--v3-ink) !important; font-size: var(--v3-t-sm) !important; }

/* ---- facilities / rules / sidenav / summary cards ---------------------- */

html[data-ui="v3"]:not(#nope) .bk11 .facility-items,
html[data-ui="v3"]:not(#nope) .bk11 .hotel-rules__card,
html[data-ui="v3"]:not(#nope) .bk11 .hotel-sidenav,
html[data-ui="v3"]:not(#nope) .bk11 .card__dateil-container,
html[data-ui="v3"]:not(#nope) .card__dateil-container,
html[data-ui="v3"]:not(#nope) .bk11 .reserve-final-container .card,
html[data-ui="v3"]:not(#nope) .reserve-final-container .card,
html[data-ui="v3"]:not(#nope) .bk11 .reserve-rules-box,
html[data-ui="v3"]:not(#nope) .reserve-rules-box,
html[data-ui="v3"]:not(#nope) .card {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-lg) !important;
    box-shadow: none !important;
    color: var(--v3-ink) !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .card__dateil-container .detail__title,
html[data-ui="v3"]:not(#nope) .card__dateil-container .detail__title {
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-lg) !important;
    font-weight: 700 !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .detail__room-item,
html[data-ui="v3"]:not(#nope) .detail__room-item,
html[data-ui="v3"]:not(#nope) .bk11 .card__dateil-container .detail__room-box .detail__room-item {
    background-color: var(--v3-surface-2) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-sm) !important;
    color: var(--v3-ink) !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .detail__room-item .detail__room-title,
html[data-ui="v3"]:not(#nope) .detail__room-title { color: var(--v3-ink) !important; font-weight: 600 !important; }
html[data-ui="v3"]:not(#nope) .bk11 .facility-items li,
html[data-ui="v3"]:not(#nope) .bk11 .hotel-rule-item { color: var(--v3-ink-2) !important; font-size: var(--v3-t-sm) !important; }
html[data-ui="v3"]:not(#nope) .bk11 .hotel-rule-item--time .hotel-rule-item__title { color: var(--v3-gold-ink) !important; font-weight: 700 !important; }
html[data-ui="v3"]:not(#nope) .bk11 .hotel-sidenav a { color: var(--v3-muted) !important; font-size: var(--v3-t-sm) !important; }
html[data-ui="v3"]:not(#nope) .bk11 .hotel-sidenav a.is-on,
html[data-ui="v3"]:not(#nope) .bk11 .hotel-sidenav a:hover { color: var(--v3-brand-ink) !important; }

/* check-in / check-out markers and the running total on step 2 */
html[data-ui="v3"]:not(#nope) .reserve__enter-icon,
html[data-ui="v3"]:not(#nope) .reserve__exit-icon {
    background-color: var(--v3-brand-soft) !important;
    color: var(--v3-brand-ink) !important;
    border-radius: var(--v3-r-xs) !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .reserve__enter-title,
html[data-ui="v3"]:not(#nope) .bk11 .reserve__exit-title,
html[data-ui="v3"]:not(#nope) .reserve__enter-title,
html[data-ui="v3"]:not(#nope) .reserve__exit-title { color: var(--v3-muted) !important; font-size: var(--v3-t-xs) !important; }
html[data-ui="v3"]:not(#nope) .reserve__detail-price,
html[data-ui="v3"]:not(#nope) .reserve__detail-price.text-success,
html[data-ui="v3"]:not(#nope) .bk11 .reserve__detail-price {
    color: var(--v3-price) !important;
    font-weight: 700 !important;
    font-variant-numeric: tabular-nums !important;
}
html[data-ui="v3"]:not(#nope) .price-currency { color: var(--v3-muted) !important; font-weight: 500 !important; font-size: var(--v3-t-xs) !important; }

/* ---- guest form --------------------------------------------------------
   .form-floating is a two-layer control: the <label> sits ON the input and
   the input's placeholder is held transparent until focus. The blanket
   placeholder colour and field padding in section 6 break both, which is
   why every field showed its label twice, overlapping. */

html[data-ui="v3"]:not(#nope) .bk11 .form-floating > .form-control,
html[data-ui="v3"]:not(#nope) .bk11 .form-floating > .form-select,
html[data-ui="v3"]:not(#nope) .form-floating > .form-control,
html[data-ui="v3"]:not(#nope) .form-floating > .form-select,
html[data-ui="v3"]:not(#nope) .bk11 .card__form-input {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-sm) !important;
    color: var(--v3-ink) !important;
    padding: 1rem .75rem !important;
}
html[data-ui="v3"]:not(#nope) .form-floating > .form-control::placeholder,
html[data-ui="v3"]:not(#nope) .form-floating > .form-select::placeholder,
html[data-ui="v3"]:not(#nope) .bk11 .form-floating > .form-control::placeholder {
    color: transparent !important;
}
html[data-ui="v3"]:not(#nope) .form-floating > textarea.form-control { padding-top: 1.6rem !important; }
html[data-ui="v3"]:not(#nope) .form-floating > .form-control:focus ~ label,
html[data-ui="v3"]:not(#nope) .form-floating > .form-control:not(:placeholder-shown) ~ label,
html[data-ui="v3"]:not(#nope) .form-floating > .form-select ~ label {
    color: var(--v3-muted) !important;
    background: none !important;
}

/* ---- discount row ------------------------------------------------------ */

html[data-ui="v3"]:not(#nope) .bk11 .discount-row__btn {
    background-color: var(--v3-brand) !important;
    border: 1px solid var(--v3-brand) !important;
    color: #fff !important;
    border-radius: var(--v3-r-sm) !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .discount-row__btn:hover { background-color: var(--v3-brand-2) !important; }
html[data-ui="v3"]:not(#nope) .bk11 .discount-row__msg.is-bad { color: var(--v3-bad) !important; }
html[data-ui="v3"]:not(#nope) .bk11 .discount-row__msg.is-ok  { color: var(--v3-ok) !important; }

/* ---- payment: gateways, prepayment, badges ----------------------------- */

html[data-ui="v3"]:not(#nope) .bk11 .gateway-item,
html[data-ui="v3"]:not(#nope) .pay11-bank,
html[data-ui="v3"]:not(#nope) .prepayment-card,
html[data-ui="v3"]:not(#nope) .pay11-card {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r) !important;
    box-shadow: none !important;
    transition: border-color var(--v3-mid) var(--v3-ease);
}
html[data-ui="v3"]:not(#nope) .bk11 .gateway-item:hover,
html[data-ui="v3"]:not(#nope) .pay11-bank:hover { border-color: var(--v3-brand) !important; }
/* the bank the agent picked - money is about to move, so it is unmistakable */
html[data-ui="v3"]:not(#nope) .bk11 .gateway-item.is-on,
html[data-ui="v3"]:not(#nope) .bk11 .gateway-item.active,
html[data-ui="v3"]:not(#nope) .pay11-bank.is-on {
    border-color: var(--v3-brand) !important;
    background-color: var(--v3-brand-soft) !important;
    box-shadow: 0 0 0 1px var(--v3-brand) !important;
}
/* the payment-method radio card; its selected border is the legacy green */
html[data-ui="v3"]:not(#nope) .pay11-method {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r) !important;
}
html[data-ui="v3"]:not(#nope) .pay11-method.is-selected {
    border-color: var(--v3-brand) !important;
    background-color: var(--v3-brand-soft) !important;
    box-shadow: 0 0 0 1px var(--v3-brand) !important;
}
/* the guest-detail fields on the review step - plain, readable, not "included" */
html[data-ui="v3"]:not(#nope) .bk11 .reserve-final-container .item,
html[data-ui="v3"]:not(#nope) .reserve-final-container .item {
    background-color: var(--v3-surface-2) !important;
    color: var(--v3-ink) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-sm) !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 500 !important;
}

html[data-ui="v3"]:not(#nope) .pay11-bank__dot,
html[data-ui="v3"]:not(#nope) .pay11-method__dot {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line-2) !important;
}
html[data-ui="v3"]:not(#nope) .pay11-bank.is-on .pay11-bank__dot {
    background-color: var(--v3-brand) !important; border-color: var(--v3-brand) !important;
}
html[data-ui="v3"]:not(#nope) .payment-badge {
    background-color: var(--v3-ok-soft) !important;
    color: var(--v3-ok) !important;
    border: 1px solid var(--v3-ok-line) !important;
    border-radius: var(--v3-r-xs) !important;
}
html[data-ui="v3"]:not(#nope) .waiting-payment-warning,
html[data-ui="v3"]:not(#nope) .pay11-alert--bad {
    background-color: var(--v3-bad-soft) !important;
    color: var(--v3-bad) !important;
    border: 1px solid color-mix(in srgb, var(--v3-bad) 30%, transparent) !important;
    border-radius: var(--v3-r-sm) !important;
    font-size: var(--v3-t-sm) !important;
}
html[data-ui="v3"]:not(#nope) .pay11-gwstate.is-live { color: var(--v3-ok) !important; }
html[data-ui="v3"]:not(#nope) .pay11-gwstate.is-dead { color: var(--v3-bad) !important; }
html[data-ui="v3"]:not(#nope) .pay11-gwstate.is-conf { color: var(--v3-warn) !important; }
html[data-ui="v3"]:not(#nope) .pay11-note { color: var(--v3-bad) !important; font-size: var(--v3-t-xs) !important; }
html[data-ui="v3"]:not(#nope) .custom-progress-wrapper {
    background-color: var(--v3-surface-3) !important; border-radius: 999px !important; overflow: hidden;
}
html[data-ui="v3"]:not(#nope) .custom-progress-bar,
html[data-ui="v3"]:not(#nope) .progress-bar { background-color: var(--v3-brand) !important; }

/* ---- flight funnel ----------------------------------------------------- */

html[data-ui="v3"]:not(#nope) .bk11 .fl11-pass,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-panel,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-recap {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-lg) !important;
    box-shadow: none !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .fl11-pass__no,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__dur,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-fact { color: var(--v3-ink-2) !important; font-size: var(--v3-t-xs) !important; }
html[data-ui="v3"]:not(#nope) .bk11 .fl11-leg__time {
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-lg) !important; font-weight: 700 !important; font-variant-numeric: tabular-nums !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .fl11-leg__city { color: var(--v3-muted) !important; font-size: var(--v3-t-xs) !important; }
html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__plane,
html[data-ui="v3"]:not(#nope) .bk11 .fl11-edit { color: var(--v3-brand-ink) !important; }
html[data-ui="v3"]:not(#nope) .bk11 .fl11-path__dot--end { background-color: var(--v3-brand) !important; }
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sum__total b {
    color: var(--v3-price) !important;
    font-size: var(--v3-t-lg) !important; font-weight: 700 !important; font-variant-numeric: tabular-nums !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sex__opt {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-pill) !important;
    color: var(--v3-ink-2) !important;
}
html[data-ui="v3"]:not(#nope) .bk11 .fl11-sex__opt.is-on {
    background-color: var(--v3-brand) !important;
    border-color: var(--v3-brand) !important;
    color: #fff !important;
}
html[data-ui="v3"]:not(#nope) .flight_info,
html[data-ui="v3"]:not(#nope) .flight_info.return { background-color: var(--v3-brand-soft) !important; }
html[data-ui="v3"]:not(#nope) .flight_price { color: var(--v3-price) !important; font-weight: 700 !important; font-variant-numeric: tabular-nums !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-no { color: var(--v3-brand-ink) !important; font-weight: 700 !important; }
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-dur,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-meta,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-flight-chd { color: var(--v3-ink-2) !important; font-size: var(--v3-t-xs) !important; }


/* ==========================================================================
   9. THE ACCOUNT
   ========================================================================== */

html[data-ui="v3"]:not(#nope) .u11-panel,
html[data-ui="v3"]:not(#nope) .u11-item,
html[data-ui="v3"]:not(#nope) .u11-voucher,
html[data-ui="v3"]:not(#nope) .u11-filter,
html[data-ui="v3"]:not(#nope) .cb {
    background-color: var(--v3-surface) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-lg) !important;
    box-shadow: none !important;
}
html[data-ui="v3"]:not(#nope) .u11-item { transition: border-color var(--v3-mid) var(--v3-ease); }
html[data-ui="v3"]:not(#nope) .u11-item:hover { border-color: var(--v3-brand) !important; }
html[data-ui="v3"]:not(#nope) .u11-avatar,
html[data-ui="v3"]:not(#nope) .mate__ava {
    background-color: var(--v3-brand-soft) !important;
    color: var(--v3-brand-ink) !important;
    border: 1px solid var(--v3-brand-line) !important;
    border-radius: 50% !important;
    font-weight: 700 !important;
}
html[data-ui="v3"]:not(#nope) .u11-stat {
    background-color: var(--v3-surface-2) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r) !important;
}
html[data-ui="v3"]:not(#nope) .u11-stat b {
    color: var(--v3-ink) !important;
    font-size: var(--v3-t-xl) !important; font-weight: 700 !important; font-variant-numeric: tabular-nums !important;
}
html[data-ui="v3"]:not(#nope) .u11-stat span { color: var(--v3-muted) !important; font-size: var(--v3-t-xs) !important; }

html[data-ui="v3"]:not(#nope) .u11-tabs { border-bottom: 1px solid var(--v3-line) !important; gap: .25rem; }
html[data-ui="v3"]:not(#nope) .u11-tabs a {
    background-color: transparent !important;
    color: var(--v3-muted) !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    font-size: var(--v3-t-sm) !important;
    font-weight: 600 !important;
    padding: .65rem 1rem !important;
}
html[data-ui="v3"]:not(#nope) .u11-tabs a:hover { color: var(--v3-ink) !important; background-color: transparent !important; }
html[data-ui="v3"]:not(#nope) .u11-tabs a.on {
    color: var(--v3-brand-ink) !important;
    border-bottom-color: var(--v3-brand) !important;
    background-color: transparent !important;
}
html[data-ui="v3"]:not(#nope) .u11-tabs__out,
html[data-ui="v3"]:not(#nope) .u11-cancel-link { color: var(--v3-bad) !important; }
html[data-ui="v3"]:not(#nope) .u11-tabs__out:hover,
html[data-ui="v3"]:not(#nope) .u11-cancel-link:hover { background-color: var(--v3-bad-soft) !important; color: var(--v3-bad) !important; }

html[data-ui="v3"]:not(#nope) .u11-pill--ok,
html[data-ui="v3"]:not(#nope) .u11-pill--paid,
html[data-ui="v3"]:not(#nope) .ok {
    background-color: var(--v3-ok-soft) !important;
    color: var(--v3-ok) !important;
    border-color: var(--v3-ok-line) !important;
}
html[data-ui="v3"]:not(#nope) .u11-pill--wait {
    background-color: var(--v3-gold-soft) !important;
    color: var(--v3-gold-ink) !important;
    border-color: var(--v3-gold-line) !important;
}
html[data-ui="v3"]:not(#nope) .u11-pill--bad,
html[data-ui="v3"]:not(#nope) .u11-pill--cancel,
html[data-ui="v3"]:not(#nope) .bad {
    background-color: var(--v3-bad-soft) !important;
    color: var(--v3-bad) !important;
    border-color: color-mix(in srgb, var(--v3-bad) 30%, transparent) !important;
}
html[data-ui="v3"]:not(#nope) .u11-pill--flat {
    background-color: var(--v3-chip) !important; color: var(--v3-chip-ink) !important;
}
html[data-ui="v3"]:not(#nope) .u11-hint { color: var(--v3-muted) !important; font-size: var(--v3-t-xs) !important; }
html[data-ui="v3"]:not(#nope) .u11-otp {
    color: var(--v3-ink) !important;
    font-variant-numeric: tabular-nums !important; letter-spacing: .3em !important; font-weight: 700 !important;
}
html[data-ui="v3"]:not(#nope) .u11-pager a {
    background-color: var(--v3-surface) !important;
    color: var(--v3-ink-2) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-sm) !important;
}
html[data-ui="v3"]:not(#nope) .u11-pager a:hover {
    background-color: var(--v3-brand-soft) !important;
    color: var(--v3-brand-ink) !important;
    border-color: var(--v3-brand-line) !important;
}
html[data-ui="v3"]:not(#nope) .cb dt { color: var(--v3-muted) !important; font-size: var(--v3-t-xs) !important; }
html[data-ui="v3"]:not(#nope) .cb dd { color: var(--v3-ink) !important; font-weight: 600 !important; }
html[data-ui="v3"]:not(#nope) .cb .good { color: var(--v3-ok) !important; }
html[data-ui="v3"]:not(#nope) .cb .bad  { color: var(--v3-bad) !important; }


/* ==========================================================================
   10. WIDGETS + DEV CHROME
   ========================================================================== */

html[data-ui="v3"]:not(#nope) .dev11,
html[data-ui="v3"]:not(#nope) .demo-hint,
html[data-ui="v3"]:not(#nope) .meta code {
    background-color: var(--v3-surface-2) !important;
    color: var(--v3-ink-2) !important;
    border: 1px solid var(--v3-line) !important;
    border-radius: var(--v3-r-sm) !important;
    font-size: var(--v3-t-xs) !important;
}
html[data-ui="v3"]:not(#nope) .dev11 .b-apply { color: var(--v3-brand-ink) !important; }
html[data-ui="v3"]:not(#nope) .dev11 .dev11-note { color: var(--v3-muted) !important; }
html[data-ui="v3"]:not(#nope) .toggle i::after { background-color: var(--v3-surface) !important; }
html[data-ui="v3"]:not(#nope) .msg--ok {
    background-color: var(--v3-ok-soft) !important;
    color: var(--v3-ok) !important;
    border: 1px solid var(--v3-ok-line) !important; border-radius: var(--v3-r-sm) !important;
}
html[data-ui="v3"]:not(#nope) .msg--bad {
    background-color: var(--v3-bad-soft) !important;
    color: var(--v3-bad) !important;
    border: 1px solid color-mix(in srgb, var(--v3-bad) 30%, transparent) !important;
    border-radius: var(--v3-r-sm) !important;
}


/* ==========================================================================
   11. MOTION / RESPONSIVE / PRINT
   --------------------------------------------------------------------------
   flytoday animates on interaction and nowhere else - no scroll reveals, no
   entrance sequences. An agent reads this list two hundred times a day and a
   list that fades in row by row is slower to read every single time.
   ========================================================================== */

html[data-ui="v3"]:not(#nope) .th11-swapping * { transition: none !important; }

@media (prefers-reduced-motion: reduce) {
    html[data-ui="v3"]:not(#nope) *,
    html[data-ui="v3"]:not(#nope) *::before,
    html[data-ui="v3"]:not(#nope) *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }
}

@media (max-width: 991px) {
    html[data-ui="v3"]:not(#nope) .asa-s11 .search-filter-area { position: static; }
    html[data-ui="v3"]:not(#nope) .asa-s11 .quick-search { margin-top: -1.6rem !important; padding: .35rem !important; }
}

/* The legacy markup runs 8px past the viewport at every width - .s11-hero is
   a Bootstrap .col-12 inside a .row, so it carries the row's negative gutter.
   Measured identical in classic, v2 and v3, so it is pre-existing.
   Clamping the width was the wrong fix: the negative gutter is also what makes
   the navy band full-bleed, and removing it boxed the hero in AND slid the
   search card up over its own tab strip. Hiding the overflow kills the
   scrollbar and leaves the layout alone. */
html[data-ui="v3"]:not(#nope) body { overflow-x: hidden; }

@media (max-width: 767px) {
    html[data-ui="v3"]:not(#nope) .asa-s11 .s11-hero { padding: 1.2rem 0 2.6rem !important; }
    html[data-ui="v3"]:not(#nope) .asa-s11 .s11-banner-head { font-size: var(--v3-t-lg) !important; }
    html[data-ui="v3"]:not(#nope) .bk11 .bk11-hotelhead__name { font-size: var(--v3-t-xl) !important; }

    /* touch targets */
    html[data-ui="v3"]:not(#nope) .btn,
    html[data-ui="v3"]:not(#nope) .rc11__btn,
    html[data-ui="v3"]:not(#nope) .s11-sort-btn { min-height: 44px; }
    html[data-ui="v3"]:not(#nope) .th11 button { min-height: 34px; }
    html[data-ui="v3"]:not(#nope) .bk11-cart__inner { border-radius: var(--v3-r-lg) var(--v3-r-lg) 0 0 !important; }
}

@media print {
    html[data-ui="v3"]:not(#nope) { --v3-bg:#fff; --v3-surface:#fff; --v3-ink:#000; --v3-line:#bbb; }
    html[data-ui="v3"]:not(#nope) .bk-topbar,
    html[data-ui="v3"]:not(#nope) .th11,
    html[data-ui="v3"]:not(#nope) .s11-filter-pill,
    html[data-ui="v3"]:not(#nope) .bk11-cart__inner { display: none !important; }
    html[data-ui="v3"]:not(#nope) * { box-shadow: none !important; }
}


/* ==========================================================================
   12. GUARDS   -   what a blanket rule must never get wrong
   ========================================================================== */

/* 1. anything on a brand fill takes white, whatever the neutraliser decided
      about that class in the abstract. */
html[data-ui="v3"]:not(#nope) .btn-primary,
html[data-ui="v3"]:not(#nope) .btn-primary *,
html[data-ui="v3"]:not(#nope) .btn-success,
html[data-ui="v3"]:not(#nope) .btn-success *,
html[data-ui="v3"]:not(#nope) .btn-select,
html[data-ui="v3"]:not(#nope) .btn-select *,
html[data-ui="v3"]:not(#nope) .s11-filter-apply,
html[data-ui="v3"]:not(#nope) .s11-filter-apply *,
html[data-ui="v3"]:not(#nope) .btn-cu,
html[data-ui="v3"]:not(#nope) .btn-cu *,
html[data-ui="v3"]:not(#nope) .u11-nav__in,
html[data-ui="v3"]:not(#nope) .u11-nav__in *,
html[data-ui="v3"]:not(#nope) .u11-submit,
html[data-ui="v3"]:not(#nope) .u11-submit *,
html[data-ui="v3"]:not(#nope) .pay11-btn--primary,
html[data-ui="v3"]:not(#nope) .pay11-btn--primary *,
html[data-ui="v3"]:not(#nope) .bk11-cart__go,
html[data-ui="v3"]:not(#nope) .bk11-cart__go *,
html[data-ui="v3"]:not(#nope) .btn__room-filter.btn__selected,
html[data-ui="v3"]:not(#nope) .btn__room-filter.btn__selected *,
html[data-ui="v3"]:not(#nope) .step__item.active,
html[data-ui="v3"]:not(#nope) .step__item.is-done {
    color: #fff !important;
}

/* 2. scrims stay scrims - a generated `background: surface` on one of these
      would turn the overlay into an opaque sheet of card. */
html[data-ui="v3"]:not(#nope) .am11,
html[data-ui="v3"]:not(#nope) .am11__scrim,
html[data-ui="v3"]:not(#nope) .rz11,
html[data-ui="v3"]:not(#nope) .ri11,
html[data-ui="v3"]:not(#nope) .rules11,
html[data-ui="v3"]:not(#nope) .s11-filter-backdrop,
html[data-ui="v3"]:not(#nope) .bk-lightbox {
    background-color: rgba(15,23,42,.55) !important;
}
html[data-ui="v3"]:not(#nope)[data-scheme="dark"] .am11,
html[data-ui="v3"]:not(#nope)[data-scheme="dark"] .am11__scrim,
html[data-ui="v3"]:not(#nope)[data-scheme="dark"] .rz11,
html[data-ui="v3"]:not(#nope)[data-scheme="dark"] .ri11,
html[data-ui="v3"]:not(#nope)[data-scheme="dark"] .rules11,
html[data-ui="v3"]:not(#nope)[data-scheme="dark"] .s11-filter-backdrop,
html[data-ui="v3"]:not(#nope)[data-scheme="dark"] .bk-lightbox {
    background-color: rgba(3,7,18,.72) !important;
}

/* 3. media never takes a surface fill */
html[data-ui="v3"]:not(#nope) img,
html[data-ui="v3"]:not(#nope) svg,
html[data-ui="v3"]:not(#nope) video,
html[data-ui="v3"]:not(#nope) iframe { background-color: transparent !important; }
html[data-ui="v3"]:not(#nope) .search-result-img > img,
html[data-ui="v3"]:not(#nope) .bk11-hotelhead__img { background-color: var(--v3-surface-3) !important; }

/* 4. the switch is the way back out of this skin, so it is the one control
      that can never be broken. */
html[data-ui="v3"]:not(#nope) .th11 button { color: var(--v3-ink-2) !important; }
html[data-ui="v3"]:not(#nope) .th11 button:hover { color: var(--v3-ink) !important; }

/* 5. the navy band carries white text whatever the neutraliser thinks of the
      classes inside it. */
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-hero .s11-banner-head,
html[data-ui="v3"]:not(#nope) .asa-s11 .s11-hero .s11-banner-head *,
html[data-ui="v3"]:not(#nope) .bk11 .bk-searchbar > .bk-searchbar__title {
    color: #fff !important;
}
