@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: optional; src: url("/fonts/inter/InterVariable.woff2") format("woff2"); } html:has(body.sp-page) { --primary: #2f6fed; --primary-hover: #3d7af5; --primary-light: rgba(47, 111, 237, 0.1); --primary-dark: #2560d6; --color-control-active: rgba(47, 111, 237, 0.1); --color-focus-ring: rgba(47, 111, 237, 0.22); --color-browser-chrome: #2f6fed; --color-scrollbar: rgba(47, 111, 237, 0.42); --color-scrollbar-hover: rgba(47, 111, 237, 0.7); scrollbar-color: var(--color-scrollbar) var(--color-scrollbar-track); } html[data-theme="dark"]:has(body.sp-page) { --primary: #5b8cff; --primary-hover: #6e9aff; --primary-light: rgba(91, 140, 255, 0.16); --primary-dark: #4a7af0; --color-control-active: rgba(91, 140, 255, 0.18); --color-focus-ring: rgba(91, 140, 255, 0.3); --color-browser-chrome: #0a0b0e; --color-scrollbar: rgba(91, 140, 255, 0.42); --color-scrollbar-hover: rgba(91, 140, 255, 0.7); scrollbar-color: var(--color-scrollbar) var(--color-scrollbar-track); } html:has(body.sp-page) ::-webkit-scrollbar-thumb { border-radius: 0; background: var(--color-scrollbar); } html:has(body.sp-page) ::-webkit-scrollbar-thumb:hover { background: var(--color-scrollbar-hover); } .sp-page, .bp-page { --sp-font-display: "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif; --sp-font-data: "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif; --sp-font-body: "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif; --sp-weight-display: 300; --sp-weight-body: 400; --sp-weight-label: 500; --sp-ink: #0e1a2c; --sp-ink-soft: #3e4b5e; --sp-ink-faint: #6b7686; --sp-canvas: #f5f7fa; --sp-surface: #ffffff; --sp-surface-sunk: #eceff3; --sp-line: rgba(14, 26, 44, 0.12); --sp-line-strong: rgba(14, 26, 44, 0.18); --sp-card-stroke: rgba(14, 26, 44, 0.18); --sp-accent: #2f6fed; --sp-accent-deep: #2560d6; --sp-accent-ink: #ffffff; --sp-accent-wash: rgba(47, 111, 237, 0.1); --sp-cta: #2b4666; --sp-cta-ink: #ffffff; --primary: #2f6fed; --primary-hover: #3d7af5; --primary-light: rgba(47, 111, 237, 0.1); --primary-dark: #2560d6; --color-control-active: rgba(47, 111, 237, 0.1); --color-focus-ring: rgba(47, 111, 237, 0.22); --sp-shell: 1400px; --sp-gutter: clamp(16px, 2vw, 24px); --sp-radius: 0; --sp-radius-sm: 0; --sp-ease: cubic-bezier(0.22, 1, 0.36, 1); --sp-card-shadow: none; --sp-card-shadow-lift: none; --sp-hero-top: #e8eef5; --sp-hero-glow: rgba(47, 111, 237, 0.05); } :root[data-theme="dark"] .sp-page, :root[data-theme="dark"] .bp-page { --sp-ink: #f2f4f7; --sp-ink-soft: #b8c0cc; --sp-ink-faint: #7c8797; --sp-canvas: #0a0b0e; --sp-surface: #12141a; --sp-surface-sunk: #181b22; --sp-line: rgba(255, 255, 255, 0.12); --sp-line-strong: rgba(255, 255, 255, 0.18); --sp-card-stroke: rgba(255, 255, 255, 0.18); --sp-accent: #5b8cff; --sp-accent-deep: #5b8cff; --sp-accent-ink: #ffffff; --sp-accent-wash: rgba(91, 140, 255, 0.14); --sp-cta: #4a6a8f; --sp-cta-ink: #ffffff; --primary: #5b8cff; --primary-hover: #6e9aff; --primary-light: rgba(91, 140, 255, 0.16); --primary-dark: #4a7af0; --color-control-active: rgba(91, 140, 255, 0.18); --color-focus-ring: rgba(91, 140, 255, 0.3); --sp-card-shadow: none; --sp-card-shadow-lift: none; --sp-hero-top: #050505; --sp-hero-glow: rgba(91, 140, 255, 0.12); } @keyframes sp-shimmer { to { background-position: -200% 0; } } @media (prefers-reduced-motion: reduce) { .sp-page *, .sp-page *::before, .sp-page *::after, .bp-page *, .bp-page *::before, .bp-page *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; } } .sp-page { margin: 0; background: var(--sp-canvas); color: var(--sp-ink); font-family: var(--sp-font-body); font-weight: var(--sp-weight-body); font-optical-sizing: auto; font-variant-numeric: tabular-nums; -webkit-font-smoothing: antialiased; overflow-x: hidden; } .sp-shell { width: 100%; max-width: var(--sp-shell); margin-inline: auto; padding-inline: var(--sp-gutter); } .sp-skip { position: absolute; left: -9999px; top: 0; z-index: 1000; padding: 12px 18px; background: var(--sp-accent); color: var(--sp-accent-ink); font-weight: 600; border-radius: 0 0 var(--sp-radius-sm) 0; } .sp-skip:focus { left: 0; } .sp-eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-family: var(--sp-font-body); font-size: 0.75rem; font-weight: var(--sp-weight-label); letter-spacing: 0.18em; text-transform: uppercase; color: var(--sp-accent-deep); } .sp-eyebrow::before { content: ""; width: 26px; height: 1px; background: currentcolor; opacity: 0.55; flex: none; } .sp-hero { position: relative; isolation: isolate; padding-block: clamp(44px, 7vh, 88px) clamp(36px, 5vh, 64px); background: linear-gradient(180deg, var(--sp-hero-top) 0%, var(--sp-canvas) 86%); } .sp-hero:has(+ .sp-results:not([hidden])) { padding-bottom: clamp(8px, 1vw, 14px); } .sp-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(56% 52% at 74% 12%, var(--sp-hero-glow), transparent 70%); pointer-events: none; } .sp-hero__title { max-width: 18ch; margin: 0; font-family: var(--sp-font-display); font-size: clamp(2.1rem, 5.4vw, 3.9rem); font-weight: var(--sp-weight-display); line-height: 1.05; letter-spacing: -0.03em; text-wrap: balance; color: var(--sp-ink); } .sp-hero__lede { max-width: 58ch; margin: clamp(16px, 2vw, 24px) 0 0; font-size: clamp(1rem, 1.25vw, 1.125rem); line-height: 1.6; color: var(--sp-ink-soft); } .sp-primer { padding-block: clamp(40px, 6vw, 80px); } .sp-primer__title { margin: 0 0 clamp(24px, 3vw, 40px); font-family: var(--sp-font-display); font-size: clamp(1.5rem, 2.6vw, 2.2rem); font-weight: var(--sp-weight-display); letter-spacing: -0.02em; color: var(--sp-ink); } .sp-primer__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.8vw, 24px); } .sp-primer__card { display: flex; flex-direction: column; gap: 10px; padding: clamp(20px, 2.4vw, 30px); background: var(--sp-surface); border: 1px solid var(--sp-line); border-radius: var(--sp-radius); box-shadow: var(--sp-card-shadow); } .sp-primer__tag { margin: 0; font-family: var(--sp-font-data); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sp-accent-deep); } .sp-primer__heading { margin: 0; font-family: var(--sp-font-display); font-size: 1.25rem; font-weight: var(--sp-weight-display); letter-spacing: -0.01em; color: var(--sp-ink); } .sp-primer__text { margin: 0; font-size: 0.9375rem; line-height: 1.6; color: var(--sp-ink-soft); } .sp-primer__fit { margin: auto 0 0; padding-top: 10px; font-size: 0.8125rem; font-weight: 500; color: var(--sp-ink-faint); } .sp-primer__note { max-width: 68ch; margin: clamp(20px, 2.6vw, 32px) 0 0; font-size: 0.9375rem; line-height: 1.6; color: var(--sp-ink-soft); } .flag-icon { display: inline-block; width: 1.28rem; height: 0.88rem; background-size: cover; background-position: center; background-repeat: no-repeat; flex-shrink: 0; vertical-align: middle; overflow: hidden; } .flag-icon[data-country] { background-image: var(--flag-image); } .flag-icon-ad, .flag-icon[data-country="AD"] { background-image: url('/images/flags/ad.png'); } .flag-icon-ae, .flag-icon[data-country="AE"] { background-image: url('/images/flags/ae.png'); } .flag-icon-af, .flag-icon[data-country="AF"] { background-image: url('/images/flags/af.png'); } .flag-icon-ag, .flag-icon[data-country="AG"] { background-image: url('/images/flags/ag.png'); } .flag-icon-ai, .flag-icon[data-country="AI"] { background-image: url('/images/flags/ai.png'); } .flag-icon-al, .flag-icon[data-country="AL"] { background-image: url('/images/flags/al.png'); } .flag-icon-am, .flag-icon[data-country="AM"] { background-image: url('/images/flags/am.png'); } .flag-icon-ao, .flag-icon[data-country="AO"] { background-image: url('/images/flags/ao.png'); } .flag-icon-aq, .flag-icon[data-country="AQ"] { background-image: url('/images/flags/aq.png'); } .flag-icon-ar, .flag-icon[data-country="AR"] { background-image: url('/images/flags/ar.png'); } .flag-icon-as, .flag-icon[data-country="AS"] { background-image: url('/images/flags/as.png'); } .flag-icon-at, .flag-icon[data-country="AT"] { background-image: url('/images/flags/at.png'); } .flag-icon-au, .flag-icon[data-country="AU"] { background-image: url('/images/flags/au.png'); } .flag-icon-aw, .flag-icon[data-country="AW"] { background-image: url('/images/flags/aw.png'); } .flag-icon-az, .flag-icon[data-country="AZ"] { background-image: url('/images/flags/az.png'); } .flag-icon-ba, .flag-icon[data-country="BA"] { background-image: url('/images/flags/ba.png'); } .flag-icon-bb, .flag-icon[data-country="BB"] { background-image: url('/images/flags/bb.png'); } .flag-icon-bd, .flag-icon[data-country="BD"] { background-image: url('/images/flags/bd.png'); } .flag-icon-be, .flag-icon[data-country="BE"] { background-image: url('/images/flags/be.png'); } .flag-icon-bf, .flag-icon[data-country="BF"] { background-image: url('/images/flags/bf.png'); } .flag-icon-bg, .flag-icon[data-country="BG"] { background-image: url('/images/flags/bg.png'); } .flag-icon-bh, .flag-icon[data-country="BH"] { background-image: url('/images/flags/bh.png'); } .flag-icon-bi, .flag-icon[data-country="BI"] { background-image: url('/images/flags/bi.png'); } .flag-icon-bj, .flag-icon[data-country="BJ"] { background-image: url('/images/flags/bj.png'); } .flag-icon-bl, .flag-icon[data-country="BL"] { background-image: url('/images/flags/bl.png'); } .flag-icon-bm, .flag-icon[data-country="BM"] { background-image: url('/images/flags/bm.png'); } .flag-icon-bn, .flag-icon[data-country="BN"] { background-image: url('/images/flags/bn.png'); } .flag-icon-bo, .flag-icon[data-country="BO"] { background-image: url('/images/flags/bo.png'); } .flag-icon-bq, .flag-icon[data-country="BQ"] { background-image: url('/images/flags/bq.png'); } .flag-icon-br, .flag-icon[data-country="BR"] { background-image: url('/images/flags/br.png'); } .flag-icon-bs, .flag-icon[data-country="BS"] { background-image: url('/images/flags/bs.png'); } .flag-icon-bt, .flag-icon[data-country="BT"] { background-image: url('/images/flags/bt.png'); } .flag-icon-bw, .flag-icon[data-country="BW"] { background-image: url('/images/flags/bw.png'); } .flag-icon-by, .flag-icon[data-country="BY"] { background-image: url('/images/flags/by.png'); } .flag-icon-bz, .flag-icon[data-country="BZ"] { background-image: url('/images/flags/bz.png'); } .flag-icon-ca, .flag-icon[data-country="CA"] { background-image: url('/images/flags/ca.png'); } .flag-icon-cc, .flag-icon[data-country="CC"] { background-image: url('/images/flags/cc.png'); } .flag-icon-cd, .flag-icon[data-country="CD"] { background-image: url('/images/flags/cd.png'); } .flag-icon-cf, .flag-icon[data-country="CF"] { background-image: url('/images/flags/cf.png'); } .flag-icon-cg, .flag-icon[data-country="CG"] { background-image: url('/images/flags/cg.png'); } .flag-icon-ch, .flag-icon[data-country="CH"] { background-image: url('/images/flags/ch.png'); } .flag-icon-ci, .flag-icon[data-country="CI"] { background-image: url('/images/flags/ci.png'); } .flag-icon-ck, .flag-icon[data-country="CK"] { background-image: url('/images/flags/ck.png'); } .flag-icon-cl, .flag-icon[data-country="CL"] { background-image: url('/images/flags/cl.png'); } .flag-icon-cm, .flag-icon[data-country="CM"] { background-image: url('/images/flags/cm.png'); } .flag-icon-cn, .flag-icon[data-country="CN"] { background-image: url('/images/flags/cn.png'); } .flag-icon-co, .flag-icon[data-country="CO"] { background-image: url('/images/flags/co.png'); } .flag-icon-cr, .flag-icon[data-country="CR"] { background-image: url('/images/flags/cr.png'); } .flag-icon-cu, .flag-icon[data-country="CU"] { background-image: url('/images/flags/cu.png'); } .flag-icon-cv, .flag-icon[data-country="CV"] { background-image: url('/images/flags/cv.png'); } .flag-icon-cw, .flag-icon[data-country="CW"] { background-image: url('/images/flags/cw.png'); } .flag-icon-cx, .flag-icon[data-country="CX"] { background-image: url('/images/flags/cx.png'); } .flag-icon-cy, .flag-icon[data-country="CY"] { background-image: url('/images/flags/cy.png'); } .flag-icon-cz, .flag-icon[data-country="CZ"] { background-image: url('/images/flags/cz.png'); } .flag-icon-de, .flag-icon[data-country="DE"] { background-image: url('/images/flags/de.png'); } .flag-icon-dj, .flag-icon[data-country="DJ"] { background-image: url('/images/flags/dj.png'); } .flag-icon-dk, .flag-icon[data-country="DK"] { background-image: url('/images/flags/dk.png'); } .flag-icon-dm, .flag-icon[data-country="DM"] { background-image: url('/images/flags/dm.png'); } .flag-icon-do, .flag-icon[data-country="DO"] { background-image: url('/images/flags/do.png'); } .flag-icon-dz, .flag-icon[data-country="DZ"] { background-image: url('/images/flags/dz.png'); } .flag-icon-ec, .flag-icon[data-country="EC"] { background-image: url('/images/flags/ec.png'); } .flag-icon-ee, .flag-icon[data-country="EE"] { background-image: url('/images/flags/ee.png'); } .flag-icon-eg, .flag-icon[data-country="EG"] { background-image: url('/images/flags/eg.png'); } .flag-icon-eh, .flag-icon[data-country="EH"] { background-image: url('/images/flags/eh.png'); } .flag-icon-er, .flag-icon[data-country="ER"] { background-image: url('/images/flags/er.png'); } .flag-icon-es, .flag-icon[data-country="ES"] { background-image: url('/images/flags/es.png'); } .flag-icon-et, .flag-icon[data-country="ET"] { background-image: url('/images/flags/et.png'); } .flag-icon-fi, .flag-icon[data-country="FI"] { background-image: url('/images/flags/fi.png'); } .flag-icon-fj, .flag-icon[data-country="FJ"] { background-image: url('/images/flags/fj.png'); } .flag-icon-fk, .flag-icon[data-country="FK"] { background-image: url('/images/flags/fk.png'); } .flag-icon-fm, .flag-icon[data-country="FM"] { background-image: url('/images/flags/fm.png'); } .flag-icon-fo, .flag-icon[data-country="FO"] { background-image: url('/images/flags/fo.png'); } .flag-icon-fr, .flag-icon[data-country="FR"] { background-image: url('/images/flags/fr.png'); } .flag-icon-ga, .flag-icon[data-country="GA"] { background-image: url('/images/flags/ga.png'); } .flag-icon-gb, .flag-icon[data-country="GB"] { background-image: url('/images/flags/gb.png'); } .flag-icon-gd, .flag-icon[data-country="GD"] { background-image: url('/images/flags/gd.png'); } .flag-icon-ge, .flag-icon[data-country="GE"] { background-image: url('/images/flags/ge.png'); } .flag-icon-gf, .flag-icon[data-country="GF"] { background-image: url('/images/flags/gf.png'); } .flag-icon-gg, .flag-icon[data-country="GG"] { background-image: url('/images/flags/gg.png'); } .flag-icon-gh, .flag-icon[data-country="GH"] { background-image: url('/images/flags/gh.png'); } .flag-icon-gi, .flag-icon[data-country="GI"] { background-image: url('/images/flags/gi.png'); } .flag-icon-gl, .flag-icon[data-country="GL"] { background-image: url('/images/flags/gl.png'); } .flag-icon-gm, .flag-icon[data-country="GM"] { background-image: url('/images/flags/gm.png'); } .flag-icon-gn, .flag-icon[data-country="GN"] { background-image: url('/images/flags/gn.png'); } .flag-icon-gp, .flag-icon[data-country="GP"] { background-image: url('/images/flags/gp.png'); } .flag-icon-gq, .flag-icon[data-country="GQ"] { background-image: url('/images/flags/gq.png'); } .flag-icon-gr, .flag-icon[data-country="GR"] { background-image: url('/images/flags/gr.png'); } .flag-icon-gs, .flag-icon[data-country="GS"] { background-image: url('/images/flags/gs.png'); } .flag-icon-gt, .flag-icon[data-country="GT"] { background-image: url('/images/flags/gt.png'); } .flag-icon-gu, .flag-icon[data-country="GU"] { background-image: url('/images/flags/gu.png'); } .flag-icon-gw, .flag-icon[data-country="GW"] { background-image: url('/images/flags/gw.png'); } .flag-icon-gy, .flag-icon[data-country="GY"] { background-image: url('/images/flags/gy.png'); } .flag-icon-hk, .flag-icon[data-country="HK"] { background-image: url('/images/flags/hk.png'); } .flag-icon-hn, .flag-icon[data-country="HN"] { background-image: url('/images/flags/hn.png'); } .flag-icon-hr, .flag-icon[data-country="HR"] { background-image: url('/images/flags/hr.png'); } .flag-icon-ht, .flag-icon[data-country="HT"] { background-image: url('/images/flags/ht.png'); } .flag-icon-hu, .flag-icon[data-country="HU"] { background-image: url('/images/flags/hu.png'); } .flag-icon-id, .flag-icon[data-country="ID"] { background-image: url('/images/flags/id.png'); } .flag-icon-ie, .flag-icon[data-country="IE"] { background-image: url('/images/flags/ie.png'); } .flag-icon-il, .flag-icon[data-country="IL"] { background-image: url('/images/flags/il.png'); } .flag-icon-im, .flag-icon[data-country="IM"] { background-image: url('/images/flags/im.png'); } .flag-icon-in, .flag-icon[data-country="IN"] { background-image: url('/images/flags/in.png'); } .flag-icon-io, .flag-icon[data-country="IO"] { background-image: url('/images/flags/io.png'); } .flag-icon-iq, .flag-icon[data-country="IQ"] { background-image: url('/images/flags/iq.png'); } .flag-icon-ir, .flag-icon[data-country="IR"] { background-image: url('/images/flags/ir.png'); } .flag-icon-is, .flag-icon[data-country="IS"] { background-image: url('/images/flags/is.png'); } .flag-icon-it, .flag-icon[data-country="IT"] { background-image: url('/images/flags/it.png'); } .flag-icon-je, .flag-icon[data-country="JE"] { background-image: url('/images/flags/je.png'); } .flag-icon-jm, .flag-icon[data-country="JM"] { background-image: url('/images/flags/jm.png'); } .flag-icon-jo, .flag-icon[data-country="JO"] { background-image: url('/images/flags/jo.png'); } .flag-icon-jp, .flag-icon[data-country="JP"] { background-image: url('/images/flags/jp.png'); } .flag-icon-ke, .flag-icon[data-country="KE"] { background-image: url('/images/flags/ke.png'); } .flag-icon-kg, .flag-icon[data-country="KG"] { background-image: url('/images/flags/kg.png'); } .flag-icon-kh, .flag-icon[data-country="KH"] { background-image: url('/images/flags/kh.png'); } .flag-icon-ki, .flag-icon[data-country="KI"] { background-image: url('/images/flags/ki.png'); } .flag-icon-km, .flag-icon[data-country="KM"] { background-image: url('/images/flags/km.png'); } .flag-icon-kn, .flag-icon[data-country="KN"] { background-image: url('/images/flags/kn.png'); } .flag-icon-kp, .flag-icon[data-country="KP"] { background-image: url('/images/flags/kp.png'); } .flag-icon-kr, .flag-icon[data-country="KR"] { background-image: url('/images/flags/kr.png'); } .flag-icon-kw, .flag-icon[data-country="KW"] { background-image: url('/images/flags/kw.png'); } .flag-icon-ky, .flag-icon[data-country="KY"] { background-image: url('/images/flags/ky.png'); } .flag-icon-kz, .flag-icon[data-country="KZ"] { background-image: url('/images/flags/kz.png'); } .flag-icon-la, .flag-icon[data-country="LA"] { background-image: url('/images/flags/la.png'); } .flag-icon-lb, .flag-icon[data-country="LB"] { background-image: url('/images/flags/lb.png'); } .flag-icon-lc, .flag-icon[data-country="LC"] { background-image: url('/images/flags/lc.png'); } .flag-icon-li, .flag-icon[data-country="LI"] { background-image: url('/images/flags/li.png'); } .flag-icon-lk, .flag-icon[data-country="LK"] { background-image: url('/images/flags/lk.png'); } .flag-icon-lr, .flag-icon[data-country="LR"] { background-image: url('/images/flags/lr.png'); } .flag-icon-ls, .flag-icon[data-country="LS"] { background-image: url('/images/flags/ls.png'); } .flag-icon-lt, .flag-icon[data-country="LT"] { background-image: url('/images/flags/lt.png'); } .flag-icon-lu, .flag-icon[data-country="LU"] { background-image: url('/images/flags/lu.png'); } .flag-icon-lv, .flag-icon[data-country="LV"] { background-image: url('/images/flags/lv.png'); } .flag-icon-ly, .flag-icon[data-country="LY"] { background-image: url('/images/flags/ly.png'); } .flag-icon-ma, .flag-icon[data-country="MA"] { background-image: url('/images/flags/ma.png'); } .flag-icon-mc, .flag-icon[data-country="MC"] { background-image: url('/images/flags/mc.png'); } .flag-icon-md, .flag-icon[data-country="MD"] { background-image: url('/images/flags/md.png'); } .flag-icon-me, .flag-icon[data-country="ME"] { background-image: url('/images/flags/me.png'); } .flag-icon-mf, .flag-icon[data-country="MF"] { background-image: url('/images/flags/mf.png'); } .flag-icon-mg, .flag-icon[data-country="MG"] { background-image: url('/images/flags/mg.png'); } .flag-icon-mh, .flag-icon[data-country="MH"] { background-image: url('/images/flags/mh.png'); } .flag-icon-mk, .flag-icon[data-country="MK"] { background-image: url('/images/flags/mk.png'); } .flag-icon-ml, .flag-icon[data-country="ML"] { background-image: url('/images/flags/ml.png'); } .flag-icon-mm, .flag-icon[data-country="MM"] { background-image: url('/images/flags/mm.png'); } .flag-icon-mn, .flag-icon[data-country="MN"] { background-image: url('/images/flags/mn.png'); } .flag-icon-mo, .flag-icon[data-country="MO"] { background-image: url('/images/flags/mo.png'); } .flag-icon-mp, .flag-icon[data-country="MP"] { background-image: url('/images/flags/mp.png'); } .flag-icon-mq, .flag-icon[data-country="MQ"] { background-image: url('/images/flags/mq.png'); } .flag-icon-mr, .flag-icon[data-country="MR"] { background-image: url('/images/flags/mr.png'); } .flag-icon-ms, .flag-icon[data-country="MS"] { background-image: url('/images/flags/ms.png'); } .flag-icon-mt, .flag-icon[data-country="MT"] { background-image: url('/images/flags/mt.png'); } .flag-icon-mu, .flag-icon[data-country="MU"] { background-image: url('/images/flags/mu.png'); } .flag-icon-mv, .flag-icon[data-country="MV"] { background-image: url('/images/flags/mv.png'); } .flag-icon-mw, .flag-icon[data-country="MW"] { background-image: url('/images/flags/mw.png'); } .flag-icon-mx, .flag-icon[data-country="MX"] { background-image: url('/images/flags/mx.png'); } .flag-icon-my, .flag-icon[data-country="MY"] { background-image: url('/images/flags/my.png'); } .flag-icon-mz, .flag-icon[data-country="MZ"] { background-image: url('/images/flags/mz.png'); } .flag-icon-na, .flag-icon[data-country="NA"] { background-image: url('/images/flags/na.png'); } .flag-icon-nc, .flag-icon[data-country="NC"] { background-image: url('/images/flags/nc.png'); } .flag-icon-ne, .flag-icon[data-country="NE"] { background-image: url('/images/flags/ne.png'); } .flag-icon-nf, .flag-icon[data-country="NF"] { background-image: url('/images/flags/nf.png'); } .flag-icon-ng, .flag-icon[data-country="NG"] { background-image: url('/images/flags/ng.png'); } .flag-icon-ni, .flag-icon[data-country="NI"] { background-image: url('/images/flags/ni.png'); } .flag-icon-nl, .flag-icon[data-country="NL"] { background-image: url('/images/flags/nl.png'); } .flag-icon-no, .flag-icon[data-country="NO"] { background-image: url('/images/flags/no.png'); } .flag-icon-np, .flag-icon[data-country="NP"] { background-image: url('/images/flags/np.png'); } .flag-icon-nr, .flag-icon[data-country="NR"] { background-image: url('/images/flags/nr.png'); } .flag-icon-nu, .flag-icon[data-country="NU"] { background-image: url('/images/flags/nu.png'); } .flag-icon-nz, .flag-icon[data-country="NZ"] { background-image: url('/images/flags/nz.png'); } .flag-icon-om, .flag-icon[data-country="OM"] { background-image: url('/images/flags/om.png'); } .flag-icon-pa, .flag-icon[data-country="PA"] { background-image: url('/images/flags/pa.png'); } .flag-icon-pe, .flag-icon[data-country="PE"] { background-image: url('/images/flags/pe.png'); } .flag-icon-pf, .flag-icon[data-country="PF"] { background-image: url('/images/flags/pf.png'); } .flag-icon-pg, .flag-icon[data-country="PG"] { background-image: url('/images/flags/pg.png'); } .flag-icon-ph, .flag-icon[data-country="PH"] { background-image: url('/images/flags/ph.png'); } .flag-icon-pk, .flag-icon[data-country="PK"] { background-image: url('/images/flags/pk.png'); } .flag-icon-pl, .flag-icon[data-country="PL"] { background-image: url('/images/flags/pl.png'); } .flag-icon-pm, .flag-icon[data-country="PM"] { background-image: url('/images/flags/pm.png'); } .flag-icon-pn, .flag-icon[data-country="PN"] { background-image: url('/images/flags/pn.png'); } .flag-icon-pr, .flag-icon[data-country="PR"] { background-image: url('/images/flags/pr.png'); } .flag-icon-ps, .flag-icon[data-country="PS"] { background-image: url('/images/flags/ps.png'); } .flag-icon-pt, .flag-icon[data-country="PT"] { background-image: url('/images/flags/pt.png'); } .flag-icon-pw, .flag-icon[data-country="PW"] { background-image: url('/images/flags/pw.png'); } .flag-icon-py, .flag-icon[data-country="PY"] { background-image: url('/images/flags/py.png'); } .flag-icon-qa, .flag-icon[data-country="QA"] { background-image: url('/images/flags/qa.png'); } .flag-icon-re, .flag-icon[data-country="RE"] { background-image: url('/images/flags/re.png'); } .flag-icon-ro, .flag-icon[data-country="RO"] { background-image: url('/images/flags/ro.png'); } .flag-icon-rs, .flag-icon[data-country="RS"] { background-image: url('/images/flags/rs.png'); } .flag-icon-ru, .flag-icon[data-country="RU"] { background-image: url('/images/flags/ru.png'); } .flag-icon-rw, .flag-icon[data-country="RW"] { background-image: url('/images/flags/rw.png'); } .flag-icon-sa, .flag-icon[data-country="SA"] { background-image: url('/images/flags/sa.png'); } .flag-icon-sb, .flag-icon[data-country="SB"] { background-image: url('/images/flags/sb.png'); } .flag-icon-sc, .flag-icon[data-country="SC"] { background-image: url('/images/flags/sc.png'); } .flag-icon-sd, .flag-icon[data-country="SD"] { background-image: url('/images/flags/sd.png'); } .flag-icon-se, .flag-icon[data-country="SE"] { background-image: url('/images/flags/se.png'); } .flag-icon-sg, .flag-icon[data-country="SG"] { background-image: url('/images/flags/sg.png'); } .flag-icon-sh, .flag-icon[data-country="SH"] { background-image: url('/images/flags/sh.png'); } .flag-icon-si, .flag-icon[data-country="SI"] { background-image: url('/images/flags/si.png'); } .flag-icon-sj, .flag-icon[data-country="SJ"] { background-image: url('/images/flags/sj.png'); } .flag-icon-sk, .flag-icon[data-country="SK"] { background-image: url('/images/flags/sk.png'); } .flag-icon-sl, .flag-icon[data-country="SL"] { background-image: url('/images/flags/sl.png'); } .flag-icon-sm, .flag-icon[data-country="SM"] { background-image: url('/images/flags/sm.png'); } .flag-icon-sn, .flag-icon[data-country="SN"] { background-image: url('/images/flags/sn.png'); } .flag-icon-so, .flag-icon[data-country="SO"] { background-image: url('/images/flags/so.png'); } .flag-icon-sr, .flag-icon[data-country="SR"] { background-image: url('/images/flags/sr.png'); } .flag-icon-ss, .flag-icon[data-country="SS"] { background-image: url('/images/flags/ss.png'); } .flag-icon-st, .flag-icon[data-country="ST"] { background-image: url('/images/flags/st.png'); } .flag-icon-sv, .flag-icon[data-country="SV"] { background-image: url('/images/flags/sv.png'); } .flag-icon-sx, .flag-icon[data-country="SX"] { background-image: url('/images/flags/sx.png'); } .flag-icon-sy, .flag-icon[data-country="SY"] { background-image: url('/images/flags/sy.png'); } .flag-icon-sz, .flag-icon[data-country="SZ"] { background-image: url('/images/flags/sz.png'); } .flag-icon-tc, .flag-icon[data-country="TC"] { background-image: url('/images/flags/tc.png'); } .flag-icon-td, .flag-icon[data-country="TD"] { background-image: url('/images/flags/td.png'); } .flag-icon-tf, .flag-icon[data-country="TF"] { background-image: url('/images/flags/tf.png'); } .flag-icon-tg, .flag-icon[data-country="TG"] { background-image: url('/images/flags/tg.png'); } .flag-icon-th, .flag-icon[data-country="TH"] { background-image: url('/images/flags/th.png'); } .flag-icon-tj, .flag-icon[data-country="TJ"] { background-image: url('/images/flags/tj.png'); } .flag-icon-tk, .flag-icon[data-country="TK"] { background-image: url('/images/flags/tk.png'); } .flag-icon-tl, .flag-icon[data-country="TL"] { background-image: url('/images/flags/tl.png'); } .flag-icon-tm, .flag-icon[data-country="TM"] { background-image: url('/images/flags/tm.png'); } .flag-icon-tn, .flag-icon[data-country="TN"] { background-image: url('/images/flags/tn.png'); } .flag-icon-to, .flag-icon[data-country="TO"] { background-image: url('/images/flags/to.png'); } .flag-icon-tr, .flag-icon[data-country="TR"] { background-image: url('/images/flags/tr.png'); } .flag-icon-tt, .flag-icon[data-country="TT"] { background-image: url('/images/flags/tt.png'); } .flag-icon-tv, .flag-icon[data-country="TV"] { background-image: url('/images/flags/tv.png'); } .flag-icon-tw, .flag-icon[data-country="TW"] { background-image: url('/images/flags/tw.png'); } .flag-icon-tz, .flag-icon[data-country="TZ"] { background-image: url('/images/flags/tz.png'); } .flag-icon-ua, .flag-icon[data-country="UA"] { background-image: url('/images/flags/ua.png'); } .flag-icon-ug, .flag-icon[data-country="UG"] { background-image: url('/images/flags/ug.png'); } .flag-icon-um, .flag-icon[data-country="UM"] { background-image: url('/images/flags/um.png'); } .flag-icon-us, .flag-icon[data-country="US"] { background-image: url('/images/flags/us.png'); } .flag-icon-uy, .flag-icon[data-country="UY"] { background-image: url('/images/flags/uy.png'); } .flag-icon-uz, .flag-icon[data-country="UZ"] { background-image: url('/images/flags/uz.png'); } .flag-icon-va, .flag-icon[data-country="VA"] { background-image: url('/images/flags/va.png'); } .flag-icon-vc, .flag-icon[data-country="VC"] { background-image: url('/images/flags/vc.png'); } .flag-icon-ve, .flag-icon[data-country="VE"] { background-image: url('/images/flags/ve.png'); } .flag-icon-vg, .flag-icon[data-country="VG"] { background-image: url('/images/flags/vg.png'); } .flag-icon-vi, .flag-icon[data-country="VI"] { background-image: url('/images/flags/vi.png'); } .flag-icon-vn, .flag-icon[data-country="VN"] { background-image: url('/images/flags/vn.png'); } .flag-icon-vu, .flag-icon[data-country="VU"] { background-image: url('/images/flags/vu.png'); } .flag-icon-wf, .flag-icon[data-country="WF"] { background-image: url('/images/flags/wf.png'); } .flag-icon-ws, .flag-icon[data-country="WS"] { background-image: url('/images/flags/ws.png'); } .flag-icon-xk, .flag-icon[data-country="XK"] { background-image: url('/images/flags/xk.png'); } .flag-icon-ye, .flag-icon[data-country="YE"] { background-image: url('/images/flags/ye.png'); } .flag-icon-yt, .flag-icon[data-country="YT"] { background-image: url('/images/flags/yt.png'); } .flag-icon-za, .flag-icon[data-country="ZA"] { background-image: url('/images/flags/za.png'); } .flag-icon-zm, .flag-icon[data-country="ZM"] { background-image: url('/images/flags/zm.png'); } .flag-icon-zw, .flag-icon[data-country="ZW"] { background-image: url('/images/flags/zw.png'); } .airport-codes-container { display: flex; align-items: flex-start; gap: 2px; } .airport-codes-inline { flex-direction: row; align-items: center; } .airport-codes-stacked { flex-direction: column; align-items: flex-start; gap: 4px; } .airport-code-separator { color: var(--color-text-faint); font-weight: 300; margin: 0 1px; opacity: 0.6; font-size: 0.875em; } .airport-code-item { display: flex; flex-direction: column; align-items: center; gap: 1px; } .airport-code-type { font-size: 8px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.5px; color: var(--color-text-faint); line-height: 1; font-family: var(--font-body); } .airport-code-value { font-weight: 600; letter-spacing: 0.5px; color: var(--color-text); line-height: 1.1; } .airport-code-small .airport-code-type { font-size: 7px; } .airport-code-small .airport-code-value { font-size: 0.875rem; } .airport-code-medium .airport-code-type { font-size: 8px; } .airport-code-medium .airport-code-value { font-size: 1.25rem; } .airport-code-large .airport-code-type { font-size: 9px; } .airport-code-large .airport-code-value { font-size: 1.1rem; } .airport-code-xlarge .airport-code-type { font-size: 10px; } .airport-code-xlarge .airport-code-value { font-size: 2rem; } .airport-code-empty { color: var(--color-text-faint); font-style: italic; } .route-display .airport-codes-container, .airport-detail .airport-codes-container { justify-content: center; } .route-display .airport-code-item { min-width: 48px; } .route-display .airport-code-value { color: var(--color-text); } .airport-codes-stacked .airport-code-item { align-items: flex-start; } .airport-codes-stacked .airport-code-separator { display: none; } @media (max-width: 768px) { .airport-code-large .airport-code-value { font-size: 1.25rem; } .airport-code-xlarge .airport-code-value { font-size: 1.5rem; } .airport-code-type { font-size: 7px; } } .sp-cards { display: flex; flex-direction: column; gap: clamp(12px, 1.6vw, 18px); margin: 0; padding: 0; list-style: none; } .sp-card { --sp-card-rail: 13.75rem; position: relative; display: grid; grid-template-columns: clamp(300px, 34%, 390px) minmax(0, 1fr) var(--sp-card-rail); padding: 0; border: 1px solid var(--sp-card-stroke); border-radius: 0; background: var(--sp-surface); box-shadow: none; overflow: hidden; transition: border-color 0.25s ease, background-color 0.25s ease; } .sp-card:hover { border-color: var(--sp-accent); background: color-mix(in srgb, var(--sp-surface) 92%, var(--sp-accent-wash)); } .sp-card__kinds { z-index: 3; position: absolute; top: 10px; left: 10px; display: flex; flex-wrap: wrap; gap: 4px; max-width: calc(100% - 20px); } .sp-card__kind { z-index: 3; position: absolute; top: 10px; left: 10px; display: inline-flex; align-items: center; max-width: calc(100% - 20px); padding: 4px 11px; border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 3px; background: rgba(255, 255, 255, 0.48); box-shadow: 0 4px 14px rgba(13, 21, 32, 0.06); backdrop-filter: blur(12px) saturate(125%); -webkit-backdrop-filter: blur(12px) saturate(125%); color: rgba(22, 30, 39, 0.86); font-family: var(--sp-font-data); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .sp-card__kinds .sp-card__kind { position: static; max-width: none; } .sp-card__kind--certified { border-color: color-mix(in srgb, var(--sp-accent) 50%, transparent); } :root[data-theme="dark"] .sp-card__kind { border-color: rgba(255, 255, 255, 0.14); background: rgba(15, 19, 24, 0.42); color: rgba(255, 255, 255, 0.9); } .sp-card__media { position: relative; margin: 0; align-self: stretch; min-height: 208px; background: var(--sp-surface-sunk); } .sp-card__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; } .sp-card__airline-panel { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: radial-gradient(120% 90% at 20% 0%, var(--sp-accent-wash), transparent 60%), var(--sp-surface-sunk); } .sp-card__airline-logo { max-width: 62%; max-height: 56px; object-fit: contain; } .sp-card__airline-mono { font-family: var(--sp-font-display); font-size: 2rem; font-weight: 700; letter-spacing: 0.08em; color: var(--sp-ink-faint); } .sp-card__body { display: flex; flex-direction: column; min-width: 0; padding: clamp(18px, 2vw, 24px); } .sp-card__route { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: start; column-gap: 14px; width: 100%; } .sp-card__endpoint { display: flex; flex-direction: column; gap: 6px; min-width: 0; max-width: 100%; } .sp-card__endpoint--from { text-align: left; align-items: flex-start; } .sp-card__endpoint--to { text-align: right; align-items: flex-end; } .sp-card__iata { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 1.5rem; padding: 0.2rem 0.55rem; border: 1px solid var(--sp-line-strong); border-radius: 999px; background: transparent; font-family: var(--sp-font-data); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.04em; line-height: 1; color: var(--sp-ink); text-transform: uppercase; } .sp-card__place { font-size: 0.8438rem; font-weight: 600; line-height: 1.25; color: var(--sp-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; } .sp-card__country { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; font-size: 0.75rem; color: var(--sp-ink-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .sp-card__country .flag-icon { width: 1.1rem; height: 0.76rem; border-radius: 2px; box-shadow: 0 0 0 1px var(--sp-line); } .sp-card__country-name { overflow: hidden; text-overflow: ellipsis; } .sp-card__path { align-self: center; width: clamp(88px, 16vw, 140px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; } .sp-card__path--via { width: clamp(108px, 20vw, 168px); } .sp-card__path-duration { font-family: var(--sp-font-data); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.02em; color: var(--sp-ink); white-space: nowrap; } .sp-card__path-via { display: inline-flex; align-items: baseline; justify-content: center; gap: 0.28em; max-width: 100%; font-size: 0.6875rem; line-height: 1.2; letter-spacing: 0.03em; white-space: nowrap; } .sp-card__path-via-prep { color: var(--sp-ink-faint); font-weight: 500; } .sp-card__path-via-city { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-weight: 600; color: var(--sp-ink); } .sp-card__path-line { position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 7px; } .sp-card__path-line::before { position: absolute; right: 0; left: 0; height: 1px; content: ""; background: var(--sp-line-strong); } .sp-card__path-node { position: relative; width: 7px; height: 7px; border: 1px solid var(--sp-accent); border-radius: 0; background: var(--sp-surface); } .sp-card__path-distance, .sp-card__path-stops { max-width: 100%; overflow: hidden; font-family: var(--sp-font-data); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.01em; color: var(--sp-ink-faint); text-align: center; text-overflow: ellipsis; white-space: nowrap; } .sp-card__path-stops--via { font-weight: 600; color: var(--sp-ink); } .sp-card__facts { display: flex; flex-direction: column; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--sp-line); } .sp-card__facts-schedule { display: flex; align-items: baseline; justify-content: space-between; gap: 16px 24px; } .sp-card__facts-meta { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px 24px; } .sp-card__facts-specs { display: flex; align-items: flex-start; flex-wrap: wrap; row-gap: 12px; min-width: 0; } .sp-card__fact { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding-right: 18px; font-size: 0.8438rem; color: var(--sp-ink); } .sp-card__facts-specs .sp-card__fact + .sp-card__fact { padding-left: 18px; border-left: 1px solid var(--sp-line); } .sp-card__fact--primary { color: var(--sp-ink); } .sp-card__fact--departure, .sp-card__fact--arrival { flex-direction: row; align-items: baseline; gap: 8px; padding: 0; color: var(--sp-ink); } .sp-card__fact--arrival { justify-content: flex-end; text-align: right; } .sp-card__fact--good .sp-card__fact-value { color: var(--sp-accent-deep); } .sp-card__fact--warn .sp-card__fact-value { color: #a66c0a; } .sp-card__trip-note { margin: 0; font-size: 0.75rem; font-weight: 500; line-height: 1.35; color: var(--sp-accent-deep); } .sp-card__fact--party { flex: none; align-items: flex-end; gap: 3px; padding: 0; text-align: right; color: var(--sp-ink); } .sp-card__fact--party .sp-card__fact-head { display: inline-flex; align-items: baseline; gap: 6px; } .sp-card__fact--party .sp-card__fact-value { font-variant-numeric: tabular-nums; font-weight: 500; } .sp-card__fact-sub { font-size: 0.78rem; font-weight: 400; font-variant-numeric: tabular-nums; line-height: 1.3; color: var(--sp-ink-faint); white-space: nowrap; } .sp-card__fact-label { font-family: var(--sp-font-data); font-size: 0.625rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sp-ink-faint); } .sp-card__fact-value { line-height: 1.25; } .sp-card__fact--departure .sp-card__fact-value, .sp-card__fact--arrival .sp-card__fact-value { font-weight: 650; } .sp-card__rail { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: 14px; box-sizing: border-box; width: 100%; min-width: 0; padding: clamp(16px, 2vw, 22px); border-left: 1px dashed var(--sp-line-strong); text-align: right; } .sp-card__price { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; } .sp-card__price--estimated { gap: 3px; } .sp-card__best-label { display: inline-flex; align-items: center; align-self: flex-end; gap: 6px; margin-bottom: 5px; color: var(--sp-accent-deep); font-family: var(--sp-font-data); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase; white-space: nowrap; } .sp-card__best-label::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentcolor; box-shadow: 0 0 0 3px var(--sp-accent-wash); } .sp-card__seats-left { margin-bottom: 4px; font-family: var(--sp-font-data); font-size: 0.6875rem; font-weight: 650; letter-spacing: 0.02em; line-height: 1.3; color: #b33a4a; white-space: nowrap; } .sp-card__price-note { margin-top: 4px; font-family: var(--sp-font-data); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.01em; line-height: 1.3; color: var(--sp-ink-faint); white-space: nowrap; } .sp-card__amount { font-family: var(--sp-font-display); font-size: clamp(1.4rem, 2.2vw, 1.8rem); font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; line-height: 1.05; color: var(--sp-ink); } .sp-card__price--estimated .sp-card__amount { font-variant-numeric: normal; letter-spacing: -0.025em; } .sp-card__approx { display: block; margin-top: 1px; font-family: var(--sp-font-data); font-size: 0.75rem; font-weight: 500; font-variant-numeric: tabular-nums; letter-spacing: 0.01em; line-height: 1.25; color: var(--sp-ink-faint); white-space: nowrap; } .sp-card__score { display: inline-flex; align-items: baseline; justify-content: flex-end; gap: 7px; margin-top: 4px; } .sp-card__score-label { font-family: var(--sp-font-data); font-size: 0.625rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sp-ink-faint); } .sp-card__score-value { font-family: var(--sp-font-display); font-size: 0.875rem; font-weight: 600; letter-spacing: -0.01em; color: var(--sp-ink-soft); } .sp-card__score--green .sp-card__score-value { color: var(--sp-accent-deep); } .sp-card__score--yellow .sp-card__score-value { color: #a66c0a; } .sp-card__score--red .sp-card__score-value { color: #b33a4a; } .sp-card__score--black .sp-card__score-value { color: var(--sp-ink-soft); } .sp-card__details { align-self: flex-end; display: inline-flex; align-items: center; gap: 8px; margin: 4px 0 0; padding: 0 0 2px; border: none; border-bottom: 1px solid transparent; background: none; box-shadow: none; color: var(--sp-accent-deep); font-family: var(--sp-font-data); font-size: 0.75rem; font-weight: 500; letter-spacing: 0.06em; line-height: 1.3; text-decoration: none; white-space: nowrap; cursor: pointer; transition: border-color 0.22s ease, gap 0.3s var(--sp-ease), color 0.18s ease; } .sp-card__details::after { content: "→"; } .sp-card__details:hover { border-bottom-color: currentcolor; gap: 12px; color: var(--sp-accent-deep); } .sp-card__details:focus-visible { outline: 2px solid var(--sp-accent); outline-offset: 3px; border-radius: 2px; } .sp-card__actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; } .sp-card__fav { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--sp-card-stroke); border-radius: 50%; background: transparent; color: var(--sp-ink-soft); cursor: pointer; transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s var(--sp-ease); } .sp-card__fav:hover { border-color: #e2455a; color: #e2455a; transform: translateY(-1px); } .sp-card__fav:disabled { opacity: 0.55; cursor: default; } .sp-card__fav-icon { width: 18px; height: 18px; fill: none; stroke: currentcolor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; } .sp-card__fav.favorited { border-color: rgba(226, 69, 90, 0.45); color: #e2455a; } .sp-card__fav.favorited .sp-card__fav-icon { fill: currentcolor; } .sp-card__book { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 26px; border: none; border-radius: 0; background: var(--sp-cta); color: var(--sp-cta-ink); -webkit-text-fill-color: var(--sp-cta-ink); font-family: var(--sp-font-body); font-size: 0.75rem; font-weight: var(--sp-weight-label); letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; white-space: nowrap; cursor: pointer; box-shadow: none; transition: background-color 0.25s ease, transform 0.3s var(--sp-ease); } .sp-card__book:hover { color: var(--sp-cta-ink); -webkit-text-fill-color: var(--sp-cta-ink); background: color-mix(in srgb, var(--sp-cta) 88%, #000); transform: translateY(-1px); box-shadow: none; } .sp-card__actions--empty-leg { display: flex; flex-direction: column; align-items: stretch; align-self: stretch; width: 100%; max-width: none; margin-right: 0; gap: 0; } .sp-card__actions--empty-leg > .sp-card__details { align-self: flex-end; flex-shrink: 0; margin: 0 0 10px; transform-origin: right center; } @media (hover: hover) and (pointer: fine) { .sp-card__actions--empty-leg > .sp-card__details { max-height: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; opacity: 0; overflow: hidden; border-bottom-color: transparent; transform: translateY(6px); pointer-events: none; transition: max-height 0.28s var(--sp-ease), margin-bottom 0.28s var(--sp-ease), padding-bottom 0.22s ease, opacity 0.22s ease, transform 0.28s var(--sp-ease), border-color 0.22s ease, gap 0.3s var(--sp-ease), color 0.18s ease; } .sp-card:is(:hover, :focus-within) .sp-card__actions--empty-leg > .sp-card__details { max-height: 1.75rem; margin-bottom: 10px; padding-bottom: 2px; opacity: 1; transform: translateY(0); pointer-events: auto; } } @media (prefers-reduced-motion: reduce) { .sp-card__actions--empty-leg > .sp-card__details { transition: none; } } .sp-card__primary-actions { display: flex; align-items: stretch; gap: 8px; overflow: visible; border: none; border-radius: 0; background: transparent; box-shadow: none; } .sp-card__actions--empty-leg .sp-card__fav { flex: 0 0 40px; width: 40px; height: 40px; border: 1px solid var(--sp-card-stroke); border-radius: 50%; background: transparent; color: var(--sp-ink-soft); transition: border-color 0.2s ease, color 0.2s ease; } .sp-card__actions--empty-leg .sp-card__fav:hover { border-color: #e2455a; background: transparent; color: #e2455a; transform: none; } .sp-card__actions--empty-leg .sp-card__fav.favorited { border-color: rgba(226, 69, 90, 0.45); background: transparent; color: #e2455a; } .sp-card__actions--empty-leg .sp-card__book { flex: 1 1 auto; width: auto; min-height: 40px; padding-inline: 16px; border: 0; border-radius: 0; background: var(--sp-cta); color: var(--sp-cta-ink); -webkit-text-fill-color: var(--sp-cta-ink); box-shadow: none; } .sp-card__actions--empty-leg .sp-card__book:hover { color: var(--sp-cta-ink); -webkit-text-fill-color: var(--sp-cta-ink); background: color-mix(in srgb, var(--sp-cta) 88%, #000); box-shadow: none; transform: none; } .sp-card__fav:focus-visible, .sp-card__book:focus-visible { outline: 2px solid var(--sp-accent); outline-offset: 3px; } .sp-card__book:disabled, .sp-card__book.booked { background: var(--sp-surface-sunk); color: var(--sp-ink-faint); box-shadow: none; cursor: default; transform: none; filter: none; } .sp-card__purchase { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; } .sp-card__buy-error { margin: 0; max-width: 220px; font-size: 0.75rem; color: var(--color-error, #c0392b); text-align: right; } @media (max-width: 860px) { .sp-card { grid-template-columns: 1fr; } .sp-card__media { min-height: 0; aspect-ratio: auto; height: clamp(150px, 38vw, 210px); } .sp-card__body { padding-bottom: 4px; } .sp-card__rail { flex-direction: row; align-items: center; justify-content: space-between; border-left: none; border-top: 1px dashed var(--sp-line-strong); margin-top: 14px; text-align: left; } .sp-card__price { align-items: flex-start; } .sp-card__seats-left, .sp-card__price-note { text-align: left; } .sp-card__best-label { align-self: flex-start; } .sp-card__score { justify-content: flex-start; } .sp-card__place, .sp-card__country { max-width: 100%; } } @media (max-width: 480px) { .sp-card__facts-schedule, .sp-card__facts-meta { flex-direction: column; gap: 12px; } .sp-card__fact--arrival { justify-content: flex-start; text-align: left; } .sp-card__fact--party { align-items: flex-start; text-align: left; } .sp-card__facts-specs .sp-card__fact { padding-right: 0; } .sp-card__facts-specs .sp-card__fact + .sp-card__fact { padding-left: 0; border-left: none; } .sp-card__book { min-height: 44px; padding: 0 20px; } .sp-card__rail { flex-wrap: wrap; gap: 10px; } .sp-card__actions { flex: 1 1 auto; } .sp-card__actions--empty-leg { width: 100%; max-width: none; } .sp-card__actions--empty-leg .sp-card__book { min-height: 40px; padding-inline: 16px; } } .sp-band { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 4px 2px 2px; } .sp-band:has(.sp-ticket-filters) { flex-direction: row; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 24px; } .sp-band__copy { display: flex; flex-direction: column; gap: 6px; min-width: 0; } .sp-band:has(.sp-ticket-filters) .sp-band__copy { flex: 1 1 auto; } .sp-list-head .sp-band { padding: 0; } .sp-cards > .sp-card + .sp-band, .sp-cards--classic > .sp-classic-item + .sp-band { margin-top: 10px; padding-top: 18px; border-top: 1px solid var(--sp-line); } .sp-band--certified { border-top-color: color-mix(in srgb, var(--sp-accent) 28%, transparent); } :root[data-theme="dark"] .sp-cards > .sp-card + .sp-band--certified { border-top-color: color-mix(in srgb, var(--sp-accent) 40%, transparent); } .sp-band__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.4em; margin: 0; font-family: var(--sp-font-display); font-size: clamp(1.05rem, 1.55vw, 1.28rem); font-weight: 650; font-stretch: 108%; letter-spacing: -0.022em; line-height: 1.25; color: var(--sp-ink); text-wrap: balance; } .sp-band__mark { color: var(--sp-accent-deep); font-weight: 700; } .sp-band__sep { color: var(--sp-ink-faint); font-weight: 500; } .sp-band__product { color: var(--sp-ink); font-weight: 600; } .sp-band__note { margin: 0; max-width: 42rem; font-family: var(--sp-font-body); font-size: 0.8125rem; line-height: 1.45; color: var(--sp-ink-soft); } @media (max-width: 768px) { .sp-band:has(.sp-ticket-filters) { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 12px; } } @media (max-width: 480px) { .sp-cards > .sp-card + .sp-band, .sp-cards--classic > .sp-classic-item + .sp-band { padding-top: 14px; } .sp-band__title { font-size: 1.05rem; } } .sp-cards--classic { container-type: inline-size; container-name: tbo-tickets; gap: 12px; } .sp-cards--classic .sp-classic-item { display: block; margin: 0; padding: 0; } .sp-cards--classic .flight-card-compact, .sp-cards--classic .tbo-ticket-card { width: 100%; } .sp-cards--classic .flight-card-compact { cursor: pointer; } .sp-cards--classic .flight-card-compact.fp-sample-card .fc-bottom { padding-top: 16px !important; gap: 14px; } .sp-cards--classic .fp-sample-card .fc-bottom .flight-ratings { display: block !important; width: 100%; } .sp-cards--classic .fp-sample-card .fc-charter-price-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; width: 100%; min-width: 0; } .sp-cards--classic .fp-sample-card .fc-charter-class { display: flex; flex: 1 1 auto; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; } .sp-cards--classic .fp-sample-card .fc-charter-class__label { font-family: var(--fc-font, inherit); font-size: 12px; font-weight: 500; letter-spacing: 0.01em; line-height: 1.25; color: var(--fc-text-secondary, var(--fc-label, #6e6e73)); } .sp-cards--classic .fp-sample-card .fc-charter-class__value { font-family: var(--fc-font, inherit); font-size: 22px; font-weight: 700; letter-spacing: -0.04em; line-height: 1.05; min-width: 0; overflow-wrap: break-word; } .sp-cards--classic .fp-sample-card .fc-charter-quote { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; width: 100%; min-width: 0; } .sp-cards--classic .fp-sample-card .fc-charter-price-row .fc-charter-quote { flex: 0 0 auto; width: auto; } .sp-cards--classic .fp-sample-card .fc-charter-quote__approx { font-family: var(--fc-font, inherit); font-size: 12px; font-weight: 500; letter-spacing: 0.01em; line-height: 1.25; color: var(--fc-text-secondary, var(--fc-label, #6e6e73)); } .sp-cards--classic .fp-sample-card .fc-charter-quote__amount { font-family: var(--fc-font, inherit); font-size: 22px; font-weight: 700; letter-spacing: -0.04em; line-height: 1.05; } .sp-cards--classic .fp-sample-card .fc-bottom .flight-actions { display: block !important; width: 100%; margin-top: 0; } .sp-cards--classic .fp-sample-card .action-buttons { display: flex; width: 100%; } .sp-cards--classic .fp-sample-card .action-buttons .sp-card__book { flex: 1 1 auto; width: 100%; } .sp-cards--classic .fp-sample-card .fc-hero .fc-hero-bottom { display: flex; justify-content: flex-end; align-items: flex-end; } .sp-cards--classic .sp-band { margin-bottom: 4px; } @media (max-width: 768px) { .sp-cards--classic .flight-card-compact:not(.fp-sample-card) .fc-bottom .flight-ratings { display: none !important; } .sp-cards--classic .flight-card-compact .fc-bottom { display: flex; flex-direction: column; gap: 10px; align-items: stretch; width: calc(100% + 28px) !important; margin: 0 -14px; padding: 16px 14px 0; } .sp-cards--classic .flight-card-compact .fc-bottom .flight-actions { display: flex; flex-direction: column; align-items: stretch; gap: 10px; width: 100%; border: none; padding: 0; margin: 0; } .sp-cards--classic .flight-card-compact .fc-bottom .fc-value-price-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; width: 100%; min-width: 0; } .sp-cards--classic .flight-card-compact .fc-bottom .fc-value-price-row .sp-card__score { display: flex; flex: 1 1 auto; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: 2px; margin-top: 0; min-width: 0; } .sp-cards--classic .flight-card-compact .fc-bottom .fc-value-price-row .sp-card__score-label { font-family: var(--fc-font, inherit); font-size: 12px; font-weight: 500; letter-spacing: 0.1em; line-height: 1.25; text-transform: uppercase; color: var(--fc-text-secondary, var(--fc-label, #6e6e73)); } .sp-cards--classic .flight-card-compact .fc-bottom .fc-value-price-row .sp-card__score-value { font-family: var(--fc-font, inherit); font-size: 22px; font-weight: 700; letter-spacing: -0.04em; line-height: 1.05; min-width: 0; overflow-wrap: break-word; } .sp-cards--classic .flight-card-compact .fc-bottom .fc-value-price-row .actions-price-display, .sp-cards--classic .flight-card-compact .fc-bottom .fc-value-price-row .actions-price-display--estimated { flex: 0 0 auto; width: auto; align-self: flex-end; } .sp-cards--classic .flight-card-compact .fc-bottom .actions-price-display, .sp-cards--classic .flight-card-compact .fc-bottom .actions-price-display--estimated { display: flex; flex-direction: column-reverse; align-items: flex-end; align-self: flex-end; width: 100%; max-width: 100%; gap: 2px; } .sp-cards--classic .flight-card-compact .fc-bottom .price-line { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; text-align: right; white-space: nowrap; } .sp-cards--classic .flight-card-compact .fc-bottom .price-meta { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: baseline; justify-content: flex-end; width: 100%; white-space: nowrap; } .sp-cards--classic .flight-card-compact .fc-bottom .current-price { font-size: 22px; font-weight: 700; line-height: 1.1; text-align: right; } .sp-cards--classic .flight-card-compact .fc-bottom .estimated-price-label, .sp-cards--classic .flight-card-compact .fc-bottom .estimated-price-label__from, .sp-cards--classic .flight-card-compact .fc-bottom .price-per-passenger { font-size: 12px; font-weight: 500; letter-spacing: 0.01em; line-height: 1.25; color: var(--fc-text-secondary, var(--fc-label, #6e6e73)); text-align: right; font-variant-numeric: tabular-nums; } .sp-cards--classic .flight-card-compact .fc-bottom .action-buttons { width: 100%; margin-top: 0; } } .sp-page .flight-card-compact, .sp-page .fp-multi-leg-card { --fc-bg: var(--sp-surface); --fc-text: var(--sp-ink); --fc-text-secondary: var(--sp-ink-soft); --fc-label: var(--sp-ink-faint); --fc-radius: 0; --fc-radius-inner: 0; --fc-separator: var(--sp-line); --fc-divider: var(--sp-line); --fc-font: var(--sp-font-body); background: var(--sp-surface); border: 1px solid var(--sp-line-strong); border-radius: 0; box-shadow: none; } .sp-page .tbo-ticket-card { --tt-accent: var(--sp-accent); --tt-accent-soft: var(--sp-accent-wash); --tt-accent-line: color-mix(in srgb, var(--sp-accent) 40%, transparent); --tt-bg: var(--sp-surface); --tt-border: var(--sp-line-strong); --tt-hairline: var(--sp-line); --tt-radius: 0; --tt-cabin-photo-radius: 0; background: var(--sp-surface); border: 1px solid var(--sp-line-strong); border-radius: 0; box-shadow: none; } .sp-page .flight-card-compact .action-buttons .book-btn, .sp-page .fp-multi-leg-card .action-buttons .book-btn, .sp-page .sp-cards--classic .action-buttons .sp-card__book { --cta-apple-fill: var(--sp-cta); --cta-apple-border: var(--sp-cta); --cta-apple-hover-fill: color-mix(in srgb, var(--sp-cta) 88%, #000); --cta-apple-hover-border: color-mix(in srgb, var(--sp-cta) 88%, #000); border-radius: 0; background: var(--sp-cta); color: var(--sp-cta-ink); } .sp-page .load-more-button { border-radius: 0; font-family: var(--sp-font-body); } .flight-card { background: var(--white); border-radius: var(--radius-lg); margin-bottom: var(--space-md); overflow: hidden; transition: all var(--transition-base) ease; } .flight-card-compact { background: #ffffff; border: 0.5px solid rgba(60, 60, 67, 0.14); border-radius: var(--radius-lg); padding: 10px 14px; margin-bottom: 0; transition: all var(--transition-base) ease; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04); position: relative; } .flight-card-compact:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08), 0 0 0 1px color-mix(in srgb, var(--primary) 35%, transparent); border-color: color-mix(in srgb, var(--primary) 65%, transparent); background: #ffffff; cursor: pointer; } :root[data-theme="dark"] .flight-card { background: rgba(28, 30, 36, 0.52); } :root[data-theme="dark"] .flight-card-compact { background: rgba(28, 30, 36, 0.52); border: 0.5px solid rgba(255, 255, 255, 0.14); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035); backdrop-filter: blur(22px) saturate(120%); -webkit-backdrop-filter: blur(22px) saturate(120%); } :root[data-theme="dark"] .flight-card-compact:hover { background: rgba(38, 40, 48, 0.72); border-color: color-mix(in srgb, var(--primary) 65%, transparent); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28), 0 0 0 1px color-mix(in srgb, var(--primary) 35%, transparent), inset 0 1px 0 rgba(255, 255, 255, 0.06); } .flight-id-badge { position: absolute; top: -1px; left: -1px; background: #e0fdf9; color: #064e3b; padding: 4px 10px; border-radius: var(--radius-lg) 0 12px 0; font-size: 11px; font-weight: 600; display: flex; align-items: center; gap: 4px; cursor: pointer; transition: all 0.2s ease; z-index: 10; border: 1px solid #a7f3ea; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); } .flight-id-badge:hover { background: #a7f3ea; transform: scale(1.05); box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1); } .flight-id-badge:active { transform: scale(0.98); } .flight-id-badge i { font-size: 10px; opacity: 0.8; } .flight-id-text { font-family: "Roboto Mono", monospace; letter-spacing: 0.5px; } .flight-id-badge.copied { background: #86efac; color: #14532d; animation: copy-success 0.3s ease; } @keyframes copy-success { 0% { transform: scale(1); } 50% { transform: scale(1.15); } 100% { transform: scale(1.05); } } .flight-id-badge-xl { position: absolute; top: 0; left: 0; background: #e0fdf9; color: #064e3b; padding: 4px 10px; border-radius: var(--radius-lg) 0 12px 0; font-size: 11px; font-weight: 600; display: flex; align-items: center; gap: 4px; cursor: pointer; transition: all 0.2s ease; z-index: 100; border: 1px solid #a7f3ea; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); } .flight-id-badge-xl:hover { background: #a7f3ea; transform: scale(1.05); box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1); } .flight-id-badge-xl:active { transform: scale(0.98); } .flight-id-badge-xl i { font-size: 10px; opacity: 0.8; } .flight-id-badge-xl .flight-id-text { font-family: "Roboto Mono", monospace; letter-spacing: 0.5px; } .flight-id-badge-xl.copied { background: #86efac; color: #14532d; animation: copy-success 0.3s ease; } .flight-card-content { display: flex; align-items: center; gap: 1rem; padding: 0 1rem; } .flight-table-container { background: transparent; margin-bottom: var(--space-lg); } .flight-table-headers { display: flex; align-items: center; padding: 12px 20px; background: var(--gray-50); border-radius: var(--radius-lg) var(--radius-lg) 0 0; border-bottom: 2px solid var(--gray-200); font-weight: var(--font-semibold); font-size: var(--text-sm); color: var(--gray-600); margin-bottom: 0; } .flight-table-row { display: flex; align-items: center; padding: 0; background: transparent; margin-bottom: 12px; } .table-header, .table-cell { display: flex; align-items: center; padding: 0 var(--space-sm); } .table-header { font-weight: var(--font-semibold); color: var(--gray-700); user-select: none; } .cell-departure, .cell-arrival { flex: 1.5; min-width: 0; } .cell-datetime { flex: 1.2; min-width: 0; } .cell-duration { flex: 0.8; min-width: 0; } .cell-aircraft { flex: 1.5; min-width: 0; } .cell-seats { flex: 0.8; min-width: 0; text-align: center; } .cell-actions { width: 120px; flex-shrink: 0; display: flex; justify-content: flex-end; } .airport-info { display: flex; align-items: center; gap: var(--space-sm); } .airport-location { display: flex; flex-direction: column; gap: 2px; } .city-name { font-size: var(--text-sm); font-weight: var(--font-medium); color: var(--gray-800); } .airport-code { font-size: var(--text-xs); color: var(--gray-500); font-family: var(--font-mono); } .airport-district { font-size: var(--text-xs); color: var(--gray-500); font-weight: normal; margin-top: 2px; } .country-flag { display: inline-flex; align-items: center; justify-content: center; line-height: 1; vertical-align: middle; } .datetime-info { display: flex; flex-direction: column; gap: 2px; } .date { font-size: var(--text-sm); font-weight: var(--font-medium); color: var(--gray-800); } .time { font-size: var(--text-xs); color: var(--gray-500); } .duration-info { display: flex; flex-direction: column; gap: 2px; text-align: center; } .flight-time { font-size: var(--text-sm); font-weight: var(--font-medium); color: var(--gray-800); } .distance { font-size: var(--text-xs); color: var(--gray-500); } .aircraft-info { display: flex; align-items: center; gap: var(--space-sm); } .aircraft-image-container, .flight-list-aircraft-image { width: 136px !important; height: 102px !important; min-width: 136px; min-height: 102px; max-width: 136px; max-height: 102px; object-fit: cover; object-position: center; border-radius: 4px; background: var(--gray-50); display: block; flex-shrink: 0; transform: scale(1); transform-origin: center; } @supports (object-fit: cover) { .flight-list-aircraft-image { object-fit: cover !important; } } .aircraft-placeholder { width: 120px; height: 90px; display: flex; align-items: center; justify-content: center; background: var(--gray-100); border-radius: var(--radius-sm); color: var(--gray-400); font-size: 1.5rem; } .aircraft-details { display: flex; flex-direction: column; gap: 2px; } .model { font-size: var(--text-sm); font-weight: var(--font-medium); color: var(--gray-800); } .registration { font-size: var(--text-xs); color: var(--gray-500); font-family: var(--font-mono); } .seats-count { font-size: var(--text-base); font-weight: var(--font-medium); color: var(--gray-700); } .action-buttons { display: flex; gap: var(--space-xs); align-items: center; } .action-btn { padding: 6px 10px; border: none; background: transparent; color: var(--gray-600); cursor: pointer; border-radius: var(--radius-sm); transition: all var(--transition-fast) ease; font-size: var(--text-sm); } .action-btn:hover { background: var(--gray-100); color: var(--gray-800); } .favorite-btn { color: var(--gray-400); } .favorite-btn:hover { color: var(--danger); background: rgba(239, 68, 68, 0.1); } .favorite-btn.active { color: var(--danger); } .view-btn:hover { color: var(--info); background: rgba(59, 130, 246, 0.1); } .book-btn { background: var(--primary); color: var(--white); border: 0.5px solid var(--primary-dark); padding: 8px 16px; font-weight: var(--font-medium); border-radius: var(--radius-full); } .book-btn:hover { background: var(--primary-hover); border-color: var(--primary); transform: translateY(-1px); } .book-btn.booked { cursor: default; opacity: 1; } .book-btn:disabled:not(.booked) { opacity: 0.5; cursor: not-allowed; } .price { font-weight: var(--font-semibold); } @media (max-width: 768px) { .flight-card-content { gap: 0.75rem; flex-wrap: wrap; } .flight-table-headers { display: none; } .flight-table-row { flex-direction: column; background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--radius-lg); padding: var(--space-md); box-shadow: var(--shadow-sm); } .table-cell { width: 100%; padding: var(--space-xs) 0; } .cell-actions { width: 100%; justify-content: center; margin-top: var(--space-sm); padding-top: var(--space-sm); border-top: 1px solid var(--gray-200); } .aircraft-image-container, .flight-list-aircraft-image { width: 96px !important; height: 75px !important; min-width: 96px; min-height: 75px; max-width: 96px; max-height: 75px; object-fit: cover; } .action-buttons { width: 100%; justify-content: space-between; } .book-btn { flex: 1; } } @media (max-width: 480px) { .flight-card-compact { padding: 8px; margin-bottom: 8px; } .flight-card-content { padding: 0 var(--space-xs); } .airport-info { flex-direction: column; align-items: flex-start; gap: 2px; } .country-flag { display: none; } } .flight-card-compact.fp-sample-card .fp-sample-stub, .fp-multi-leg-card.fp-sample-card .fp-sample-stub { display: flex; flex-direction: row; align-items: center; gap: 14px; width: 100%; min-width: 0; } .flight-card-compact.fp-sample-card .fp-sample-stub__body, .fp-multi-leg-card.fp-sample-card .fp-sample-stub__body { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 6px; flex: 1; min-width: 0; } .flight-card-compact.fp-sample-card .fp-sample-badge, .fp-multi-leg-card.fp-sample-card .fp-sample-badge { flex: 0 0 auto; min-width: 48px; height: 48px; padding: 0 12px; border-radius: 14px; font-size: 17px; letter-spacing: 0.04em; box-shadow: none; border: none; } .flight-card-compact.fp-sample-card .fp-sample-badge .score-value, .fp-multi-leg-card.fp-sample-card .fp-sample-badge .score-value { font-weight: 700; } .flight-card-compact.fp-sample-card .fp-sample-status, .fp-multi-leg-card.fp-sample-card .fp-sample-status { margin: 0; font-family: var(--fc-font); font-size: 14px; font-weight: 500; line-height: 1.35; letter-spacing: -0.015em; color: var(--fc-text-secondary, var(--fc-label)); text-align: right; max-width: none; } .flight-card-compact.fp-sample-card .fp-sample-stub .actions-price-display, .fp-multi-leg-card.fp-sample-card .fp-sample-stub .actions-price-display { align-items: flex-end; width: auto; max-width: 100%; gap: 0; } .flight-card-compact.fp-sample-card .fp-sample-stub .price-line, .fp-multi-leg-card.fp-sample-card .fp-sample-stub .price-line { justify-content: flex-end; } .flight-card-compact.fp-sample-card .fp-sample-stub .current-price, .fp-multi-leg-card.fp-sample-card .fp-sample-stub .current-price { font-size: 22px; font-weight: 700; letter-spacing: -0.045em; line-height: 1.05; } .flight-card-compact.fp-sample-card .fp-sample-stub .savings-line:empty, .fp-multi-leg-card.fp-sample-card .fp-sample-stub .savings-line:empty { display: none; } @media (min-width: 1025px) { .flight-card-compact.fp-sample-card:not(.booking-card) .flight-ratings:not(:empty):has(*), .fp-multi-leg-card.fp-sample-card:not(.booking-card) .flight-ratings:not(:empty):has(*) { flex: 0 0 var(--fc-ticket-stub-w); width: var(--fc-ticket-stub-w); min-width: var(--fc-ticket-stub-w); max-width: var(--fc-ticket-stub-w); padding: 12px 12px 12px 10px; align-items: center; justify-content: center; box-sizing: border-box; } .flight-card-compact.fp-sample-card .fp-sample-stub, .fp-multi-leg-card.fp-sample-card .fp-sample-stub { gap: 10px; width: 100%; } .flight-card-compact.fp-sample-card .fp-sample-badge, .fp-multi-leg-card.fp-sample-card .fp-sample-badge { min-width: 44px; height: 44px; border-radius: 12px; font-size: 16px; } .flight-card-compact.fp-sample-card .fp-sample-stub__body, .fp-multi-leg-card.fp-sample-card .fp-sample-stub__body { align-items: flex-start; gap: 5px; min-width: 0; } .flight-card-compact.fp-sample-card .fp-sample-stub .actions-price-display, .fp-multi-leg-card.fp-sample-card .fp-sample-stub .actions-price-display { align-items: flex-start; width: 100%; } .flight-card-compact.fp-sample-card .fp-sample-stub .price-line, .fp-multi-leg-card.fp-sample-card .fp-sample-stub .price-line { justify-content: flex-start; } .flight-card-compact.fp-sample-card .fp-sample-stub .current-price, .fp-multi-leg-card.fp-sample-card .fp-sample-stub .current-price { font-size: 20px; font-weight: 700; letter-spacing: -0.035em; line-height: 1.1; } .flight-card-compact.fp-sample-card .fp-sample-status, .fp-multi-leg-card.fp-sample-card .fp-sample-status { font-size: 12.5px; font-weight: 510; line-height: 1.3; letter-spacing: -0.015em; color: var(--fc-text-secondary); max-width: none; width: 100%; text-align: left; white-space: normal; } :root[data-theme="dark"] .flight-card-compact.fp-sample-card .fp-sample-status, :root[data-theme="dark"] .fp-multi-leg-card.fp-sample-card .fp-sample-status { color: rgba(235, 235, 245, 0.72); } } @media (max-width: 1024px) { .flight-card-compact.fp-sample-card .fc-bottom, .fp-multi-leg-card.fp-sample-card .fc-bottom { display: flex !important; flex-direction: column; grid-template-columns: none !important; gap: 0; align-items: stretch; padding-top: 18px; } .flight-card-compact.fp-sample-card .fc-bottom .flight-ratings, .fp-multi-leg-card.fp-sample-card .fc-bottom .flight-ratings { display: block !important; width: 100%; max-width: none; } .flight-card-compact.fp-sample-card .fc-bottom .flight-ratings .score-badge-container, .flight-card-compact.fp-sample-card .fc-bottom .flight-ratings .score-badges-row, .fp-multi-leg-card.fp-sample-card .fc-bottom .flight-ratings .score-badge-container, .fp-multi-leg-card.fp-sample-card .fc-bottom .flight-ratings .score-badges-row { display: contents; } .flight-card-compact.fp-sample-card .fp-sample-stub, .fp-multi-leg-card.fp-sample-card .fp-sample-stub { display: flex; flex-direction: row; align-items: center; gap: 16px; width: 100%; min-width: 0; } .flight-card-compact.fp-sample-card .fc-bottom .fp-sample-badge, .fp-multi-leg-card.fp-sample-card .fc-bottom .fp-sample-badge { grid-column: auto; grid-row: auto; place-self: auto; flex: 0 0 auto; min-width: 58px; height: 58px; border-radius: 16px; font-size: 20px; } .flight-card-compact.fp-sample-card .fp-sample-stub__body, .fp-multi-leg-card.fp-sample-card .fp-sample-stub__body { display: flex; flex: 1 1 auto; flex-direction: column; align-items: flex-end; justify-content: center; gap: 6px; width: auto; min-width: 0; } .flight-card-compact.fp-sample-card .fc-bottom .fp-sample-stub .actions-price-display, .fp-multi-leg-card.fp-sample-card .fc-bottom .fp-sample-stub .actions-price-display { grid-column: auto; grid-row: auto; place-self: auto; width: auto; max-width: 100%; align-items: flex-end; margin-left: auto; } .flight-card-compact.fp-sample-card .fp-sample-stub .price-line, .fp-multi-leg-card.fp-sample-card .fp-sample-stub .price-line { width: auto; max-width: 100%; justify-content: flex-end; text-align: right; } .flight-card-compact.fp-sample-card .fp-sample-stub .current-price, .fp-multi-leg-card.fp-sample-card .fp-sample-stub .current-price { font-size: 22px; letter-spacing: -0.04em; text-align: right; margin-left: auto; } .flight-card-compact.fp-sample-card .fp-sample-status, .fp-multi-leg-card.fp-sample-card .fp-sample-status { width: auto; max-width: 100%; margin-left: auto; font-size: 12px; font-weight: 500; line-height: 1.25; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } } .btn.btn--solid.show-flights-btn, .btn.btn--solid.book-btn, .show-flights-btn, .book-btn.btn--solid, .flight-card-compact .action-buttons .book-btn, .fp-multi-leg-card .action-buttons .book-btn, .flight-page .fp-book-btn, #flight-details-popup .popup-footer .book-btn, #booking-details-modal .popup-footer .book-btn { --cta-apple-fill: #2b4666; --cta-apple-border: #2b4666; --cta-apple-hover-fill: color-mix(in srgb, #2b4666 88%, #000); --cta-apple-hover-border: color-mix(in srgb, #2b4666 88%, #000); background: var(--cta-apple-fill); border: none; color: #fff; -webkit-text-fill-color: #fff; font-family: "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; -webkit-font-smoothing: antialiased; box-shadow: none; transition: background-color 0.25s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1); } :root[data-theme="dark"] .btn.btn--solid.show-flights-btn, :root[data-theme="dark"] .btn.btn--solid.book-btn, :root[data-theme="dark"] .show-flights-btn, :root[data-theme="dark"] .book-btn.btn--solid, :root[data-theme="dark"] .flight-card-compact .action-buttons .book-btn, :root[data-theme="dark"] .fp-multi-leg-card .action-buttons .book-btn, :root[data-theme="dark"] .flight-page .fp-book-btn, :root[data-theme="dark"] #flight-details-popup .popup-footer .book-btn, :root[data-theme="dark"] #booking-details-modal .popup-footer .book-btn { --cta-apple-fill: #4a6a8f; --cta-apple-border: #4a6a8f; --cta-apple-hover-fill: color-mix(in srgb, #4a6a8f 88%, #000); --cta-apple-hover-border: color-mix(in srgb, #4a6a8f 88%, #000); } .btn.btn--solid.show-flights-btn:hover, .btn.btn--solid.book-btn:hover, .show-flights-btn:hover, .book-btn.btn--solid:hover, .flight-card-compact .action-buttons .book-btn:hover, .fp-multi-leg-card .action-buttons .book-btn:hover, .flight-page .fp-book-btn:hover, #flight-details-popup .popup-footer .book-btn:hover, #booking-details-modal .popup-footer .book-btn:hover { background: var(--cta-apple-hover-fill); border-color: var(--cta-apple-hover-border); color: #fff; -webkit-text-fill-color: #fff; transform: translateY(-1px); box-shadow: none; } .btn.btn--solid.show-flights-btn:active, .btn.btn--solid.book-btn:active, .show-flights-btn:active, .book-btn.btn--solid:active, .flight-card-compact .action-buttons .book-btn:active, .fp-multi-leg-card .action-buttons .book-btn:active, .flight-page .fp-book-btn:active, #flight-details-popup .popup-footer .book-btn:active, #booking-details-modal .popup-footer .book-btn:active { transform: none; opacity: 0.94; box-shadow: none; } .show-flights-btn { border-radius: 0; min-height: 48px; padding: 0.75rem 1.75rem; font-size: 0.75rem; } .flight-card-compact .action-buttons .book-btn, .fp-multi-leg-card .action-buttons .book-btn, #booking-flight-panel .fd-rail-actions > .action-buttons .book-btn, #flight-details-popup .fd-rail-actions > .action-buttons .book-btn, #booking-details-modal .fd-rail-actions > .action-buttons .book-btn { border-radius: 0; min-height: 42px; padding: 0 26px; font-size: 0.75rem; letter-spacing: 0.16em; border-right: none; flex: 1 1 auto; gap: 0; } .flight-page .fp-book-btn { border-radius: 0; min-height: 44px; padding: 0.625rem 1.5rem; font-size: 0.75rem; border-right: none; } .flight-card-compact .action-buttons .book-btn.booked, .fp-multi-leg-card .action-buttons .book-btn.booked, .btn.btn--solid.book-btn.booked, .btn.btn--solid.book-btn.is-success.booked, #booking-flight-panel .fd-rail-actions > .action-buttons .book-btn.booked, #flight-details-popup .popup-footer .book-btn.booked, #flight-details-popup .fd-rail-actions > .action-buttons .book-btn.booked, #booking-details-modal .popup-footer .book-btn.booked, #booking-details-modal .fd-rail-actions > .action-buttons .book-btn.booked, .flight-page .fp-book-btn.booked { --booked-fill: rgba(47, 111, 237, 0.1); --booked-border: rgba(47, 111, 237, 0.42); --booked-text: #2560d6; --booked-inset: transparent; display: inline-flex; align-items: center; justify-content: center; letter-spacing: 0.16em; text-transform: uppercase; background: var(--booked-fill); border: 1px solid var(--booked-border); color: var(--booked-text); cursor: default; pointer-events: none; opacity: 1; box-shadow: none; transform: none; } :root[data-theme="dark"] .flight-card-compact .action-buttons .book-btn.booked, :root[data-theme="dark"] .fp-multi-leg-card .action-buttons .book-btn.booked, :root[data-theme="dark"] .btn.btn--solid.book-btn.booked, :root[data-theme="dark"] .btn.btn--solid.book-btn.is-success.booked, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions > .action-buttons .book-btn.booked, :root[data-theme="dark"] #flight-details-popup .popup-footer .book-btn.booked, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions > .action-buttons .book-btn.booked, :root[data-theme="dark"] #booking-details-modal .popup-footer .book-btn.booked, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions > .action-buttons .book-btn.booked, :root[data-theme="dark"] .flight-page .fp-book-btn.booked { --booked-fill: rgba(91, 140, 255, 0.14); --booked-border: rgba(91, 140, 255, 0.42); --booked-text: #5b8cff; --booked-inset: transparent; } .flight-card-compact .action-buttons .book-btn.booked:hover, .fp-multi-leg-card .action-buttons .book-btn.booked:hover, .btn.btn--solid.book-btn.booked:hover, .btn.btn--solid.book-btn.is-success.booked:hover, #flight-details-popup .popup-footer .book-btn.booked:hover, #booking-details-modal .popup-footer .book-btn.booked:hover, .flight-page .fp-book-btn.booked:hover, .btn.btn--solid.book-btn.is-success.booked:disabled, .btn.btn--solid.book-btn.is-success.booked:disabled:hover, .flight-card-compact .action-buttons .book-btn.booked:disabled, .flight-card-compact .action-buttons .book-btn.booked:disabled:hover { background: var(--booked-fill); border-color: var(--booked-border); color: var(--booked-text); transform: none; box-shadow: inset 0 1px 0 var(--booked-inset); opacity: 1; } .flight-card-compact .action-buttons .book-btn.booked, .fp-multi-leg-card .action-buttons .book-btn.booked, #booking-flight-panel .fd-rail-actions > .action-buttons .book-btn.booked, #flight-details-popup .fd-rail-actions > .action-buttons .book-btn.booked, #booking-details-modal .fd-rail-actions > .action-buttons .book-btn.booked { border-radius: 0; min-height: 42px; padding: 0 14px; } .flight-page .fp-book-btn.booked { border-radius: 0; min-height: 44px; padding: 0 20px; font-size: 0.75rem; } .show-flights-btn:disabled { background: var(--color-surface-strong); color: var(--color-text-faint); box-shadow: none; opacity: 1; } .show-flights-btn:disabled:hover { background: var(--color-surface-strong); transform: none; box-shadow: none; } .show-flights-btn.is-loading, .show-flights-btn.is-loading:disabled, .show-flights-btn.is-loading:disabled:hover { display: inline-flex; align-items: center; justify-content: center; cursor: progress; pointer-events: none; color: #fff; opacity: 1; background: var(--cta-apple-fill, var(--primary)); border-color: var(--cta-apple-border, var(--primary-dark)); box-shadow: none; transform: none; } .show-flights-btn__loading-content { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 0; } .show-flights-btn__label { letter-spacing: -0.024em; line-height: 1.15; white-space: nowrap; } .show-flights-btn__spinner { flex: 0 0 16px; width: 16px; height: 16px; border: 1.5px solid rgba(255, 255, 255, 0.28); border-top-color: #fff; border-radius: 50%; animation: show-flights-spin 0.72s linear infinite; } @keyframes show-flights-spin { to { transform: rotate(360deg); } } @media (prefers-reduced-motion: reduce) { .show-flights-btn__spinner { animation: none; border-top-color: rgba(255, 255, 255, 0.72); opacity: 0.9; } } .flight-card-compact, .fp-multi-leg-card { --fc-bg: #ffffff; --fc-fill: transparent; --fc-fill-elevated: #eceff3; --fc-segment-bg: transparent; --fc-separator: rgba(14, 26, 44, 0.12); --fc-label: #6b7686; --fc-text: #0e1a2c; --fc-text-secondary: #3e4b5e; --fc-radius: 0; --fc-radius-inner: 0; --fc-radius-pill: 0; --fc-shadow: none; --fc-perf-line: rgba(14, 26, 44, 0.18); --fc-divider: rgba(14, 26, 44, 0.12); --fc-aircraft-photo-radius: 0; --fc-aircraft-photo-w: 136px; --fc-aircraft-photo-h: 102px; --fc-col-gap: 12px; --fc-col-date-w: 70px; --fc-col-dur-w: 92px; --fc-col-ac-photo-w: 148px; --fc-ticket-ratings-w: 100px; --fc-ticket-actions-w: 140px; --fc-ticket-stub-w: calc( var(--fc-ticket-ratings-w) + var(--fc-col-gap) + var(--fc-ticket-actions-w) ); --fc-accent: #2f6fed; --fc-accent-border: #2f6fed; --fc-accent-line: rgba(47, 111, 237, 0.28); --fc-font: "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif; font-family: var(--fc-font); background: var(--fc-bg); border: 1px solid rgba(14, 26, 44, 0.18); border-radius: var(--fc-radius); padding: 14px 16px; margin-bottom: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; transition: background-color 0.25s ease, border-color 0.25s ease; } :root[data-theme="dark"] .flight-card-compact, :root[data-theme="dark"] .fp-multi-leg-card { --fc-bg: #12141a; --fc-fill: transparent; --fc-fill-elevated: #181b22; --fc-segment-bg: transparent; --fc-separator: rgba(255, 255, 255, 0.12); --fc-label: #7c8797; --fc-text: #f2f4f7; --fc-text-secondary: #b8c0cc; --fc-shadow: none; --fc-perf-line: rgba(255, 255, 255, 0.18); --fc-divider: rgba(255, 255, 255, 0.12); --fc-accent: #5b8cff; --fc-accent-border: #5b8cff; --fc-accent-line: rgba(91, 140, 255, 0.28); background: var(--fc-bg); border: 1px solid rgba(255, 255, 255, 0.18); box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; } .flight-card-compact:hover, .fp-multi-leg-card:hover, .flight-card-compact.booking-card:hover { background: color-mix(in srgb, var(--fc-bg) 92%, rgba(47, 111, 237, 0.1)); border-color: var(--fc-accent-border); box-shadow: none; cursor: pointer; } :root[data-theme="dark"] .flight-card-compact:hover, :root[data-theme="dark"] .fp-multi-leg-card:hover, :root[data-theme="dark"] .flight-card-compact.booking-card:hover { background: color-mix(in srgb, var(--fc-bg) 92%, rgba(91, 140, 255, 0.14)); border-color: var(--fc-accent-border); box-shadow: none; } .flight-card-compact:active, .fp-multi-leg-card:active { transform: none; } .flight-card-compact .flight-id-badge, .flight-card-compact .flight-id-badge-xl { top: 0; left: 0; background: var(--fc-fill); color: var(--fc-text-secondary); border: none; border-radius: var(--fc-radius) 0 10px 0; box-shadow: none; font-family: ui-monospace, "SF Mono", "Roboto Mono", monospace; font-size: 10px; font-weight: 600; letter-spacing: 0.02em; padding: 4px 10px; } .flight-card-compact .flight-id-badge:hover, .flight-card-compact .flight-id-badge-xl:hover { background: var(--fc-fill-elevated); transform: none; box-shadow: none; } .flight-card-compact .flight-id-badge.copied, .flight-card-compact .flight-id-badge-xl.copied { background: rgba(52, 199, 89, 0.14); color: #248a3d; } .flight-card-compact .flight-card-content, .fp-multi-leg-card .flight-card-content { gap: 12px 14px; padding: 0 2px; align-items: center; } .flight-card-compact .flight-datetime, .fp-multi-leg-card .flight-datetime { min-width: 52px; } .flight-card-compact .flight-date-month, .fp-multi-leg-card .fp-multi-leg-date-line { font-family: var(--fc-font); font-size: 14px; font-weight: 600; letter-spacing: -0.02em; color: var(--fc-text); line-height: 1.25; } .flight-card-compact .flight-date-year { font-family: var(--fc-font); font-size: 12px; font-weight: 400; color: var(--fc-label); line-height: 1.25; } .flight-card-compact .flight-departure, .flight-card-compact .flight-destination { min-width: 0; gap: 3px; } .flight-card-compact .flight-departure .airport-city, .flight-card-compact .flight-destination .airport-city { font-family: var(--fc-font); font-size: 15px; font-weight: 600; letter-spacing: -0.02em; color: var(--fc-text); line-height: 1.35; white-space: normal; word-wrap: break-word; overflow-wrap: anywhere; hyphens: auto; max-width: 100%; } .flight-card-compact .flight-departure .airport-district, .flight-card-compact .flight-destination .airport-district, .flight-card-compact .flight-departure .airport-name, .flight-card-compact .flight-destination .airport-name { font-family: var(--fc-font); font-size: 12px; font-weight: 400; color: var(--fc-label); line-height: 1.35; white-space: normal; overflow: visible; text-overflow: unset; word-wrap: break-word; overflow-wrap: anywhere; hyphens: auto; max-width: 100%; } .flight-card-compact .flight-departure .airport-code, .flight-card-compact .flight-destination .airport-code { font-family: ui-monospace, "SF Mono", "Roboto Mono", monospace; font-size: 11px; font-weight: 600; letter-spacing: 0.04em; color: var(--fc-text-secondary); margin-top: 1px; } .flight-card-compact .flight-duration { gap: 5px; } .flight-card-compact .duration-time, .flight-card-compact .duration-distance { font-family: var(--fc-font); font-size: 12px; font-weight: 500; letter-spacing: -0.01em; color: var(--fc-text-secondary); gap: 5px; } .flight-card-compact .duration-time { color: var(--fc-text); } .flight-card-compact .flight-duration i { font-size: 10px; color: var(--fc-label); opacity: 0.85; } .flight-card-compact .duration-separator { color: var(--fc-label); opacity: 0.5; } .flight-card-compact .duration-separator i { font-size: 9px; } .flight-card-compact .flight-aircraft .aircraft-details { gap: 3px; min-width: 0; } .flight-card-compact .aircraft-model { font-family: var(--fc-font); font-size: 13px; font-weight: 600; letter-spacing: -0.01em; color: var(--fc-text); line-height: 1.35; white-space: normal; overflow: visible; text-overflow: unset; word-wrap: break-word; overflow-wrap: anywhere; hyphens: auto; } .flight-card-compact .aircraft-category { font-family: var(--fc-font); font-size: 10px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fc-label); margin: 0; } .flight-card-compact .flight-aircraft .aircraft-seats { font-family: var(--fc-font); font-size: 12px; font-weight: 400; color: var(--fc-label); margin-top: 1px; } .flight-card-compact .flight-aircraft .aircraft-seats i { font-size: 10px; color: var(--fc-label); margin-right: 3px; } .flight-card-compact .flight-aircraft-image .aircraft-image-container { background: var(--fc-fill); border-radius: var(--fc-aircraft-photo-radius); border: none; min-height: 52px; overflow: hidden; } .flight-card-compact .flight-list-aircraft-image, .flight-card-compact .aircraft-image-container .aircraft-image { border-radius: var(--fc-aircraft-photo-radius); } .flight-card-compact .flight-ratings { flex: 0 0 auto; min-width: 0; max-width: 120px; gap: 4px; } .flight-card-compact .score-badge-container { gap: 3px; } .flight-card-compact .score-badge { min-width: 28px; height: 28px; padding: 2px 7px; border-radius: 8px; font-size: 13px; font-weight: 700; box-shadow: none; border: none; } .flight-card-compact .score-badge:hover { transform: none; box-shadow: none; filter: brightness(1.05); } .flight-card-compact .score-value { font-family: var(--fc-font); } .flight-card-compact .score-comment { font-family: var(--fc-font); font-size: 10px; font-weight: 400; line-height: 1.3; color: var(--fc-label); text-align: center; max-width: 110px; white-space: normal; word-wrap: break-word; overflow-wrap: anywhere; } .flight-card-compact .price-label { font-family: var(--fc-font); font-size: 11px; color: var(--fc-label); } .flight-card-compact .flight-actions { width: 132px; gap: 6px; } .flight-card-compact .actions-price-display, .fp-multi-leg-card .actions-price-display { gap: 1px; width: 100%; max-width: 100%; min-width: 0; overflow: visible; } .flight-card-compact .price-line, .fp-multi-leg-card .price-line, .flight-card-compact .price-meta, .fp-multi-leg-card .price-meta { position: relative; width: 100%; max-width: 100%; min-width: 0; white-space: nowrap; flex-wrap: nowrap; } .flight-card-compact .price-line .current-price, .flight-card-compact .price-meta .original-price, .flight-card-compact .price-meta .savings-line, .flight-card-compact .price-meta .estimated-price-label, .fp-multi-leg-card .price-line .current-price, .fp-multi-leg-card .price-meta .original-price, .fp-multi-leg-card .price-meta .savings-line, .fp-multi-leg-card .price-meta .estimated-price-label { flex-shrink: 0; line-height: 1.1; } .flight-card-compact .actions-price-display--estimated, .fp-multi-leg-card .actions-price-display--estimated { align-items: flex-end; gap: 3px; } .flight-card-compact .estimated-price-label, .fp-multi-leg-card .estimated-price-label { display: inline-flex; align-items: center; gap: 0.35em; font-family: var(--fc-font); font-size: 11px; font-weight: 500; letter-spacing: 0.01em; color: var(--fc-label); } .flight-card-compact .estimated-price-label__sep, .fp-multi-leg-card .estimated-price-label__sep { width: 2px; height: 2px; border-radius: 50%; background: currentColor; opacity: 0.45; flex: 0 0 auto; } .flight-card-compact:not(.booking-card) .flight-actions, .fp-multi-leg-card:not(.booking-card) .flight-actions { overflow: visible; } .flight-card-compact .price-line.price-line--expand, .fp-multi-leg-card .price-line.price-line--expand { z-index: 5; width: max-content; max-width: none; } .flight-card-compact .price-line.price-line--expand::before, .fp-multi-leg-card .price-line.price-line--expand::before { content: ""; position: absolute; inset: -3px -6px -3px -12px; background: var(--fc-segment-bg, #fff); border-radius: 8px; z-index: -1; box-shadow: -12px 0 16px -8px var(--fc-segment-bg, #fff); } .flight-card-compact .current-price { font-family: var(--fc-font); font-size: 15px; font-weight: 700; letter-spacing: -0.02em; color: var(--fc-text); font-variant-numeric: tabular-nums; } .flight-card-compact .original-price { font-family: var(--fc-font); font-size: 13px; font-weight: 400; color: var(--fc-label); } .flight-card-compact .savings-line { font-family: var(--fc-font); font-size: 11px; font-weight: 500; letter-spacing: -0.01em; } .flight-card-compact .savings-line.has-savings { color: #248a3d; } .flight-card-compact .savings-line.has-overprice { color: var(--fc-text-secondary); } .flight-card-compact .overprice-badge { font-family: var(--fc-font); font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: var(--fc-radius-pill); background: rgba(255, 59, 48, 0.1); color: #d70015; } .flight-card-compact .current-price.price-contact { font-size: 13px; font-weight: 600; color: var(--fc-text-secondary); } .flight-card-compact .action-buttons, #booking-flight-panel .fd-rail-actions > .action-buttons, #flight-details-popup .fd-rail-actions > .action-buttons, #booking-details-modal .fd-rail-actions > .action-buttons { flex-direction: row; gap: 8px; border: none; box-shadow: none; overflow: visible; background: transparent; border-radius: 0; width: 100%; align-items: stretch; } .flight-card-compact .fc-tear, .fp-multi-leg-card .fc-tear { display: none; } .flight-card-compact .action-buttons .favorite-btn, .flight-card-compact .flight-actions .action-btn { font-family: var(--fc-font); font-size: 13px; font-weight: 600; letter-spacing: -0.01em; border-radius: var(--fc-radius-pill); min-height: 36px; padding: 0 14px; transition: background 0.2s ease, transform 0.15s ease, opacity 0.2s ease; } .flight-card-compact .action-buttons .book-btn { display: inline-flex; align-items: center; justify-content: center; } .flight-card-compact .action-buttons .fc-share-btn, .flight-card-compact .action-buttons .favorite-btn, #booking-flight-panel .fd-rail-actions > .action-buttons .fc-share-btn, #booking-flight-panel .fd-rail-actions > .action-buttons .favorite-btn, #flight-details-popup .fd-rail-actions > .action-buttons .fc-share-btn, #flight-details-popup .fd-rail-actions > .action-buttons .favorite-btn, #booking-details-modal .fd-rail-actions > .action-buttons .fc-share-btn, #booking-details-modal .fd-rail-actions > .action-buttons .favorite-btn { flex: 0 0 44px; width: 44px; min-width: 44px; padding: 0; background: #f2f2f7; color: #1d1d1f; border: 0.5px solid rgba(60, 60, 67, 0.22); box-shadow: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; } :root[data-theme="dark"] .flight-card-compact .action-buttons .fc-share-btn, :root[data-theme="dark"] .flight-card-compact .action-buttons .favorite-btn, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions > .action-buttons .fc-share-btn, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions > .action-buttons .favorite-btn, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions > .action-buttons .fc-share-btn, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions > .action-buttons .favorite-btn, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions > .action-buttons .fc-share-btn, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions > .action-buttons .favorite-btn { background: rgba(255, 255, 255, 0.06); color: var(--fc-text-secondary); border-color: rgba(255, 255, 255, 0.12); } .flight-card-compact .action-buttons .fc-share-btn:hover, #booking-flight-panel .fd-rail-actions > .action-buttons .fc-share-btn:hover, #flight-details-popup .fd-rail-actions > .action-buttons .fc-share-btn:hover, #booking-details-modal .fd-rail-actions > .action-buttons .fc-share-btn:hover { background: #eaeaed; color: var(--fc-text); border-color: rgba(60, 60, 67, 0.3); box-shadow: none; } :root[data-theme="dark"] .flight-card-compact .action-buttons .fc-share-btn:hover, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions > .action-buttons .fc-share-btn:hover, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions > .action-buttons .fc-share-btn:hover, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions > .action-buttons .fc-share-btn:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.18); } .flight-card-compact .action-buttons .favorite-btn:hover { background: rgba(255, 59, 48, 0.12); color: var(--danger); border-color: rgba(255, 59, 48, 0.28); box-shadow: none; } #booking-flight-panel .fd-rail-actions > .action-buttons .favorite-btn:hover, #flight-details-popup .fd-rail-actions > .action-buttons .favorite-btn:hover, #booking-details-modal .fd-rail-actions > .action-buttons .favorite-btn:hover { background: rgba(60, 60, 67, 0.1); color: #ff3b30; border-color: transparent; box-shadow: none; } .flight-card-compact .action-buttons .favorite-btn.active, .flight-card-compact .action-buttons .favorite-btn.favorited { color: var(--danger); background: rgba(255, 59, 48, 0.12); border-color: rgba(255, 59, 48, 0.28); } #booking-flight-panel .fd-rail-actions > .action-buttons .favorite-btn.active, #booking-flight-panel .fd-rail-actions > .action-buttons .favorite-btn.favorited, #flight-details-popup .fd-rail-actions > .action-buttons .favorite-btn.active, #flight-details-popup .fd-rail-actions > .action-buttons .favorite-btn.favorited, #booking-details-modal .fd-rail-actions > .action-buttons .favorite-btn.active, #booking-details-modal .fd-rail-actions > .action-buttons .favorite-btn.favorited, #booking-flight-panel .fd-rail-actions .favorite-btn.favorited, #flight-details-popup .fd-rail-actions .favorite-btn.favorited, #booking-details-modal .fd-rail-actions .favorite-btn.favorited, #booking-flight-panel .fd-rail-actions .favorite-btn.is-favorite, #flight-details-popup .fd-rail-actions .favorite-btn.is-favorite, #booking-details-modal .fd-rail-actions .favorite-btn.is-favorite { color: #ff3b30; background: transparent; border-color: transparent; } .flight-card-compact .action-buttons .favorite-btn.favorited i, .flight-card-compact .action-buttons .favorite-btn.is-favorite i, #booking-flight-panel .fd-rail-actions .favorite-btn.favorited i, #flight-details-popup .fd-rail-actions .favorite-btn.favorited i, #booking-details-modal .fd-rail-actions .favorite-btn.favorited i { color: #ff3b30; } .flight-card-compact.booking-card { border-left: none; } :root:not([data-theme="dark"]) .flight-card-compact.booking-card:hover { background: #ffffff; border-color: var(--fc-accent-border); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08), 0 0 0 1px var(--fc-accent-line); } .flight-card-compact.booking-card .booking-status .status-badge { font-family: var(--fc-font); font-size: 11px; font-weight: 600; letter-spacing: 0.02em; border-radius: var(--fc-radius-pill); padding: 4px 10px; } .flight-card-compact.booking-card .booking-date-time, .flight-card-compact.booking-card .booking-value { font-family: var(--fc-font); font-size: 12px; color: var(--fc-label); } .flight-card-compact.booking-card .booking-price-value { font-family: var(--fc-font); font-weight: 700; color: var(--fc-text); } .flight-card-compact .flight-actions .cancel-btn, .flight-card-compact .flight-actions .chat-btn { background: var(--fc-fill); color: var(--fc-text); border: none; box-shadow: none; } .flight-card-compact .flight-actions .cancel-btn:hover { background: rgba(255, 59, 48, 0.1); color: #d70015; transform: none; box-shadow: none; } .flight-card-compact .flight-actions .chat-btn:hover { background: var(--fc-fill-elevated); transform: none; box-shadow: none; } .fp-multi-leg-card { border-color: rgba(60, 60, 67, 0.14); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04); } :root:not([data-theme="dark"]) .fp-multi-leg-card:hover { background: #ffffff; border-color: var(--fc-accent-border); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08), 0 0 0 1px var(--fc-accent-line); } :root[data-theme="dark"] .fp-multi-leg-card { border-color: rgba(255, 255, 255, 0.08); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035); } .fp-multi-leg-card .fp-multi-leg-badge { background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); border: none; border-radius: var(--fc-radius) 0 10px 0; font-family: var(--fc-font); font-size: 10px; font-weight: 600; } .flight-card-compact.fp-multi-leg-card .flight-id-badge.fp-multi-leg-badge { background: color-mix(in srgb, var(--primary) 12%, transparent); color: var(--primary); } .flight-card-compact.fp-multi-leg-card .flight-id-badge.fp-multi-leg-badge .flight-id-text, .flight-card-compact.fp-multi-leg-card .flight-id-badge.fp-multi-leg-badge i { color: inherit; } .fp-multi-leg-card .fp-multi-leg-legs-panel { border-top: 0.5px solid var(--fc-separator); background: var(--fc-fill); border-radius: 0 0 var(--fc-radius) var(--fc-radius); margin-top: 8px; padding: 14px 16px 12px; } .fp-multi-leg-card .fp-leg-row { border-bottom-color: var(--fc-separator); } .fp-multi-leg-card .fp-leg-index { font-family: var(--fc-font); background: var(--fc-fill); color: var(--fc-label); } .fp-multi-leg-card .fp-leg-code { font-family: var(--fc-font); color: var(--fc-text); } .fp-multi-leg-card .fp-leg-city { font-family: var(--fc-font); color: var(--fc-label); } .fp-multi-leg-card .fp-leg-point { flex-direction: row; align-items: baseline; } .fp-multi-leg-card .fp-leg-arrow { background: var(--fc-separator); margin: 0; align-self: center; } .fp-multi-leg-card .fp-leg-arrow::after { border-left-color: var(--fc-label); } .fp-multi-leg-card .fp-leg-meta { font-family: var(--fc-font); color: var(--fc-label); } .fp-multi-leg-card .fp-leg-metrics { font-family: var(--fc-font); color: var(--fc-label); } .fp-multi-leg-card .fp-leg-aircraft { font-family: var(--fc-font); color: var(--fc-text); } .fp-multi-leg-card .fp-leg-price { font-family: var(--fc-font); color: var(--fc-text); } .flights-list, .bookmarks-list { gap: 12px; } :root[data-theme="dark"] .flights-list, :root[data-theme="dark"] .bookmarks-list { gap: 10px; } @media (max-width: 1024px) { .flight-card-compact, .fp-multi-leg-card { padding: 0; overflow: hidden; border-radius: 18px; } .flight-card-compact .flight-card-content, .fp-multi-leg-card .flight-card-content { display: flex !important; flex-direction: column !important; gap: 0; padding: 0; overflow: visible; align-items: stretch; grid-template-columns: none !important; } .flight-card-compact .flight-card-content > div, .fp-multi-leg-card .flight-card-content > div { width: 100%; min-width: 0; flex-shrink: 0; grid-column: auto !important; grid-row: auto !important; order: unset !important; margin: 0 !important; } .flight-card-compact .fc-hero.flight-aircraft-container, .fp-multi-leg-card .fc-hero.flight-aircraft-container { order: -1 !important; flex: 0 0 auto; } .flight-card-compact .fc-body, .fp-multi-leg-card .fc-body { order: 0 !important; flex: 1 1 auto; } .flight-card-compact .fc-desktop-only, .fp-multi-leg-card .fc-desktop-only { display: none !important; } .flight-card-compact .flight-duration.mobile-position, .flight-card-compact .flight-duration.desktop-position { display: none !important; } .flight-card-compact .fc-hero.flight-aircraft-container, .fp-multi-leg-card .fc-hero.flight-aircraft-container { position: relative; display: block !important; width: 100%; height: 190px; min-height: 190px; max-height: 220px; margin: 0 !important; padding: 0 !important; background: var(--fc-fill); border-radius: 0 !important; overflow: hidden; } .flight-card-compact .fc-hero .flight-aircraft-image, .fp-multi-leg-card .fc-hero .flight-aircraft-image { position: absolute; inset: 0; width: 100%; height: 100%; display: block !important; margin: 0 !important; padding: 0 !important; background: transparent !important; } .flight-card-compact .fc-hero .aircraft-image-container, .fp-multi-leg-card .fc-hero .aircraft-image-container { width: 100% !important; height: 100% !important; min-width: 0 !important; min-height: 0 !important; max-width: none !important; max-height: none !important; padding: 0 !important; margin: 0 !important; border: none !important; border-radius: 0 !important; background: var(--fc-fill) !important; display: block !important; overflow: hidden; } .flight-card-compact .fc-hero .flight-list-aircraft-image, .flight-card-compact .fc-hero .aircraft-image, .fp-multi-leg-card .fc-hero .flight-list-aircraft-image, .fp-multi-leg-card .fc-hero .aircraft-image { width: 100% !important; height: 100% !important; min-height: 0 !important; max-width: none !important; max-height: none !important; object-fit: cover !important; object-position: center center; border-radius: 0 !important; transform: none !important; } .flight-card-compact .fc-hero .fc-hero-meta, .fp-multi-leg-card .fc-hero .fc-hero-meta { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; justify-content: space-between; padding: 12px 14px; pointer-events: none; background: linear-gradient( 180deg, rgba(0, 0, 0, 0.28) 0%, rgba(0, 0, 0, 0.02) 42%, rgba(0, 0, 0, 0.55) 100% ); } .flight-card-compact .fc-hero .aircraft-details, .fp-multi-leg-card .fc-hero .aircraft-details { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto 1fr auto; align-items: start; height: 100%; width: 100%; gap: 0; } .flight-card-compact .fc-hero .aircraft-category, .fp-multi-leg-card .fc-hero .aircraft-category { grid-column: 2; grid-row: 1; place-self: start end; margin: 0; padding: 5px 10px; border-radius: var(--fc-radius-pill); background: rgba(255, 255, 255, 0.92); color: var(--fc-text); font-size: 11px; font-weight: 600; letter-spacing: 0.02em; text-transform: none; backdrop-filter: blur(8px); } :root[data-theme="dark"] .flight-card-compact .fc-hero .aircraft-category, :root[data-theme="dark"] .fp-multi-leg-card .fc-hero .aircraft-category { background: rgba(255, 255, 255, 0.08); color: var(--color-text); box-shadow: inset 0 0 0 0.5px rgba(58, 69, 84, 0.55); } .flight-card-compact .fc-hero .fc-hero-bottom, .fp-multi-leg-card .fc-hero .fc-hero-bottom { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: end; width: 100%; } .flight-card-compact .fc-hero .aircraft-model, .fp-multi-leg-card .fc-hero .aircraft-model { grid-column: 1; place-self: end start; text-align: left; color: #fff; font-size: 15px; font-weight: 600; line-height: 1.3; text-shadow: 0 1px 8px rgba(0, 0, 0, 0.35); min-width: 0; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .flight-card-compact .fc-hero .aircraft-seats, .fp-multi-leg-card .fc-hero .aircraft-seats { grid-column: 2; place-self: end end; text-align: right; color: rgba(255, 255, 255, 0.92); font-size: 12px; font-weight: 500; white-space: nowrap; text-shadow: 0 1px 6px rgba(0, 0, 0, 0.35); } .flight-card-compact .fc-body, .fp-multi-leg-card .fc-body { display: flex; flex-direction: column; gap: 0; padding: 12px 14px 14px; background: var(--fc-segment-bg); } .flight-card-compact .fc-stats, .fp-multi-leg-card .fc-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding: 10px 0 12px; border-bottom: 0.5px solid var(--fc-separator); } .flight-card-compact .fc-stat, .fp-multi-leg-card .fc-stat { display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 5px; min-width: 0; padding: 0 8px; font-family: var(--fc-font); font-size: 12px; font-weight: 500; color: var(--fc-text); text-align: left; } .flight-card-compact .fc-stat:not(:last-child), .fp-multi-leg-card .fc-stat:not(:last-child) { border-right: 0.5px solid var(--fc-separator); } .flight-card-compact .fc-stat i, .fp-multi-leg-card .fc-stat i { flex-shrink: 0; font-size: 12px; color: var(--fc-label); } .flight-card-compact .fc-stat span, .fp-multi-leg-card .fc-stat span { line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .flight-card-compact .fc-route, .fp-multi-leg-card .fc-route { display: grid !important; grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr); gap: 8px; align-items: start; padding: 14px; margin: 0 -14px; border-bottom: none; width: calc(100% + 28px) !important; } .flight-card-compact .fc-tear, .fp-multi-leg-card .fc-tear { display: block; position: relative; flex-shrink: 0; box-sizing: border-box; height: 0; margin: 0 -14px; padding: 0; width: calc(100% + 28px); background: transparent; border: none; border-top: 1px dashed var(--fc-perf-line); pointer-events: none; } .flight-card-compact .fc-route .flight-departure, .flight-card-compact .fc-route .flight-destination, .fp-multi-leg-card .fc-route .flight-departure, .fp-multi-leg-card .fc-route .flight-destination { order: unset !important; grid-row: 1 !important; grid-column: auto !important; width: auto !important; min-width: 0; display: flex !important; flex-direction: column !important; gap: 3px; margin: 0 !important; padding: 0 !important; background: transparent !important; border-radius: 0 !important; } .flight-card-compact .fc-route .flight-departure { grid-column: 1 !important; text-align: left; align-items: flex-start !important; } .flight-card-compact .fc-route .flight-destination { grid-column: 3 !important; text-align: right; align-items: flex-end !important; } .flight-card-compact .fc-route-connector, .fp-multi-leg-card .fc-route-connector { grid-column: 2 !important; grid-row: 1 !important; align-self: center; width: 28px; height: 1px; margin: 0; background: repeating-linear-gradient( 90deg, var(--fc-label) 0, var(--fc-label) 4px, transparent 4px, transparent 8px ); opacity: 0.45; } .flight-card-compact .flight-departure, .flight-card-compact .flight-destination { min-width: 0; gap: 4px; } .flight-card-compact .flight-departure { text-align: left; align-items: flex-start; } .flight-card-compact .flight-destination { text-align: right; align-items: flex-end; } .flight-card-compact .fc-endpoint-head { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; } .flight-card-compact .flight-destination .fc-endpoint-head { flex-direction: row-reverse; } .flight-card-compact .fc-desktop-flag { display: none; } .flight-card-compact .fc-endpoint-head .airport-code, .flight-card-compact .fc-compact-code { font-size: 22px; font-weight: 700; letter-spacing: 0.02em; color: var(--fc-text); margin: 0; line-height: 1.1; } .flight-card-compact .fc-desktop-code { display: none; } .flight-card-compact .flight-departure .airport-city, .flight-card-compact .flight-destination .airport-city { display: block !important; font-size: 14px; font-weight: 600; color: var(--fc-text); line-height: 1.3; width: 100%; } .flight-card-compact .fc-route .fc-city-text { display: inline; } .flight-card-compact .flight-departure .airport-name, .flight-card-compact .flight-destination .airport-name, .flight-card-compact .flight-departure .airport-district, .flight-card-compact .flight-destination .airport-district { font-size: 11px; line-height: 1.35; color: var(--fc-label); } .flight-card-compact .flight-destination .airport-city, .flight-card-compact .flight-destination .airport-name, .flight-card-compact .flight-destination .airport-district { text-align: right; } .flight-card-compact .fc-bottom, .fp-multi-leg-card .fc-bottom { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: auto auto auto; gap: 4px 10px; margin: 0 -14px; padding: 16px 14px 0; border-top: none; order: unset !important; width: calc(100% + 28px) !important; align-items: start; } .flight-card-compact .fc-bottom .flight-ratings:empty, .fp-multi-leg-card .fc-bottom .flight-ratings:empty { display: none; } .flight-card-compact .fc-bottom .flight-ratings:not(:empty) + .flight-actions .actions-price-display, .fp-multi-leg-card .fc-bottom .flight-ratings:not(:empty) + .flight-actions .actions-price-display { grid-column: 3; grid-row: 1; } .flight-card-compact .fc-bottom .flight-ratings:empty + .flight-actions .actions-price-display, .fp-multi-leg-card .fc-bottom .flight-ratings:empty + .flight-actions .actions-price-display { grid-column: 1 / -1; justify-self: end; } .flight-card-compact .fc-bottom .flight-actions, .flight-card-compact .fc-bottom .booking-info-section, .flight-card-compact .fc-bottom .price-info-section, .fp-multi-leg-card .fc-bottom .flight-actions, .fp-multi-leg-card .fc-bottom .booking-info-section, .fp-multi-leg-card .fc-bottom .price-info-section { order: unset !important; grid-row: auto !important; grid-column: auto !important; border-top: none !important; padding-top: 0 !important; margin: 0 !important; width: 100% !important; min-width: 0 !important; } .flight-card-compact .fc-bottom .flight-ratings, .flight-card-compact .fc-bottom .score-badge-container, .flight-card-compact .fc-bottom .score-badges-row, .fp-multi-leg-card .fc-bottom .flight-ratings, .fp-multi-leg-card .fc-bottom .score-badge-container, .fp-multi-leg-card .fc-bottom .score-badges-row { display: contents; } .flight-card-compact .fc-bottom .score-badge, .fp-multi-leg-card .fc-bottom .score-badge { grid-column: 1; grid-row: 1 / span 2; place-self: start start; flex-shrink: 0; } .flight-card-compact .fc-bottom .score-comment, .fp-multi-leg-card .fc-bottom .score-comment { grid-column: 2; grid-row: 1 / span 2; place-self: start start; text-align: left; min-width: 0; max-width: none; font-size: 11px; color: var(--fc-label); line-height: 1.4; white-space: normal; word-wrap: break-word; overflow-wrap: anywhere; } .flight-card-compact .fc-bottom .score-comment:empty, .fp-multi-leg-card .fc-bottom .score-comment:empty { display: none; } .flight-card-compact .fc-bottom .price-label { grid-column: 1; grid-row: 1; place-self: center start; max-width: none; text-align: left; } .flight-card-compact .fc-bottom .flight-actions, .fp-multi-leg-card .fc-bottom .flight-actions { display: contents; width: 100%; border: none; padding: 0; } .flight-card-compact .fc-bottom .actions-price-display, .fp-multi-leg-card .fc-bottom .actions-price-display { grid-column: 3; grid-row: 1; place-self: start end; align-items: flex-end; width: auto; flex-shrink: 0; min-width: 0; } .flight-card-compact .fc-bottom .current-price { font-size: 22px; font-weight: 700; line-height: 1.1; } .flight-card-compact .fc-bottom .savings-line, .flight-card-compact .fc-bottom .estimated-price-label { text-align: right; font-size: 11px; } .flight-card-compact .fc-bottom .price-line, .flight-card-compact .fc-bottom .price-meta { justify-content: flex-end; } .flight-card-compact .fc-bottom .actions-price-display--estimated { width: 100%; align-items: flex-end; } .flight-card-compact .fc-bottom .action-buttons, .fp-multi-leg-card .fc-bottom .action-buttons { grid-column: 1 / -1; grid-row: 3; width: 100%; margin-top: 4px; gap: 8px; } .flight-card-compact .fc-bottom .action-buttons .book-btn { min-height: 46px; font-size: 15px; border-radius: 12px; } .flight-card-compact .fc-bottom .action-buttons .fc-share-btn, .flight-card-compact .fc-bottom .action-buttons .favorite-btn { min-height: 46px; border-radius: 12px; } .flight-card-compact.booking-card .fc-body { padding-top: 14px; } .flight-card-compact.booking-card .flight-ratings, .fp-multi-leg-card.booking-card .flight-ratings { display: none !important; } .flight-card-compact.booking-card .fc-bottom, .fp-multi-leg-card.booking-card .fc-bottom { display: flex; flex-direction: column; gap: 0; width: calc(100% + 28px) !important; } .flight-card-compact.booking-card .booking-info-section, .fp-multi-leg-card.booking-card .booking-info-section { width: 100% !important; min-width: 0; padding: 0 0 12px; border: none; flex-direction: column !important; align-items: center !important; gap: 8px; } .flight-card-compact.booking-card .booking-info-section .actions-price-display, .fp-multi-leg-card.booking-card .booking-info-section .actions-price-display { align-items: center; width: 100%; } .flight-card-compact.booking-card .booking-info-section .price-line, .fp-multi-leg-card.booking-card .booking-info-section .price-line, .flight-card-compact.booking-card .booking-info-section .price-meta, .fp-multi-leg-card.booking-card .booking-info-section .price-meta { justify-content: center; } .flight-card-compact.booking-card .booking-info-section .current-price, .fp-multi-leg-card.booking-card .booking-info-section .current-price { font-size: 22px; font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; } .flight-card-compact.booking-card .booking-info-section .savings-line, .fp-multi-leg-card.booking-card .booking-info-section .savings-line { text-align: center; font-size: 11px; } .flight-card-compact.booking-card .booking-info-section .booking-status, .fp-multi-leg-card.booking-card .booking-info-section .booking-status { justify-content: center; margin-top: 0; } .flight-card-compact.booking-card .booking-info-section .booking-date-time, .fp-multi-leg-card.booking-card .booking-info-section .booking-date-time { justify-content: center; width: 100%; } .flight-card-compact.booking-card .booking-info-section .booking-value, .fp-multi-leg-card.booking-card .booking-info-section .booking-value { font-size: 12px; color: var(--fc-label); } .flight-card-compact.booking-card .price-info-section, .fp-multi-leg-card.booking-card .price-info-section { display: flex !important; flex-flow: row nowrap !important; align-items: stretch !important; justify-content: stretch !important; width: 100% !important; max-width: none !important; min-width: 0; padding: 12px 0 0; margin: 0; border: none; gap: 8px; } .flight-card-compact.booking-card .price-info-section .action-btn, .fp-multi-leg-card.booking-card .price-info-section .action-btn { flex: 1 1 0 !important; min-width: 0 !important; max-width: none !important; width: auto !important; min-height: 46px; margin: 0 !important; padding: 0 12px; border-radius: 12px; font-family: var(--fc-font); font-size: 14px; font-weight: 600; letter-spacing: -0.01em; display: inline-flex !important; align-items: center; justify-content: center; gap: 6px; } .flight-card-compact.booking-card .price-info-section .cancel-btn, .fp-multi-leg-card.booking-card .price-info-section .cancel-btn { background: #fff; color: #d70015; border: 0.5px solid rgba(255, 59, 48, 0.35); box-shadow: none; } .flight-card-compact.booking-card .price-info-section .cancel-btn:hover, .fp-multi-leg-card.booking-card .price-info-section .cancel-btn:hover { background: rgba(255, 59, 48, 0.08); transform: none; box-shadow: none; } .flight-card-compact.booking-card .price-info-section .chat-btn, .fp-multi-leg-card.booking-card .price-info-section .chat-btn { background: var(--fc-fill); color: var(--fc-text); border: 0.5px solid rgba(60, 60, 67, 0.14); box-shadow: none; } .flight-card-compact.booking-card .price-info-section .chat-btn:hover, .fp-multi-leg-card.booking-card .price-info-section .chat-btn:hover { background: var(--fc-fill-elevated); transform: none; box-shadow: none; } .fp-multi-leg-card .fp-multi-leg-badge { z-index: 5; color: var(--fc-text); background: var(--fc-fill); } .flight-card-compact.fp-multi-leg-card .flight-id-badge.fp-multi-leg-badge { color: var(--fc-text); background: var(--fc-fill); } .fp-multi-leg-card .fp-multi-leg-legs-panel { margin: 0; padding: 12px 14px 14px; border-top: 0.5px solid var(--fc-separator); } } @media (max-width: 768px) { .flight-card-compact .flight-card-content, .fp-multi-leg-card .flight-card-content { display: flex !important; flex-direction: column !important; grid-template-columns: none !important; gap: 0 !important; padding: 0 !important; } .flight-card-compact .flight-card-content > div, .fp-multi-leg-card .flight-card-content > div { grid-column: auto !important; grid-row: auto !important; order: unset !important; } .flight-card-compact .fc-hero.flight-aircraft-container, .fp-multi-leg-card .fc-hero.flight-aircraft-container { order: -1 !important; grid-row: auto !important; display: block !important; flex-direction: unset !important; align-items: stretch !important; gap: 0 !important; padding: 0 !important; margin: 0 !important; background: var(--fc-fill) !important; border-radius: 0 !important; } .flight-card-compact .fc-hero .flight-aircraft-image, .fp-multi-leg-card .fc-hero .flight-aircraft-image { order: unset !important; position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; flex: none !important; display: block !important; align-items: stretch !important; justify-content: stretch !important; } .flight-card-compact .fc-hero .flight-aircraft-image .aircraft-image-container, .flight-card-compact .fc-hero .flight-aircraft-image .aircraft-image, .flight-card-compact .fc-hero .flight-aircraft-image .flight-list-aircraft-image, .fp-multi-leg-card .fc-hero .flight-aircraft-image .aircraft-image-container, .fp-multi-leg-card .fc-hero .flight-aircraft-image .aircraft-image, .fp-multi-leg-card .fc-hero .flight-aircraft-image .flight-list-aircraft-image { width: 100% !important; height: 100% !important; min-width: 0 !important; min-height: 0 !important; max-width: none !important; max-height: none !important; object-fit: cover !important; object-position: center center !important; padding: 0 !important; margin: 0 !important; border: none !important; border-radius: 0 !important; background: transparent !important; transform: none !important; } .flight-card-compact .fc-hero .aircraft-model, .flight-card-compact .fc-hero .aircraft-seats, .fp-multi-leg-card .fc-hero .aircraft-model, .fp-multi-leg-card .fc-hero .aircraft-seats { color: #fff !important; } .flight-card-compact .fc-stat, .fp-multi-leg-card .fc-stat { flex-flow: row nowrap !important; align-items: center !important; justify-content: center !important; } .flight-card-compact .fc-stat i, .fp-multi-leg-card .fc-stat i { display: inline-block !important; width: auto !important; margin: 0 !important; } .flight-card-compact .fc-route .flight-departure, .flight-card-compact .fc-route .flight-destination, .fp-multi-leg-card .fc-route .flight-departure, .fp-multi-leg-card .fc-route .flight-destination { order: unset !important; grid-row: 1 !important; align-items: flex-start !important; justify-content: flex-start !important; text-align: left !important; width: auto !important; min-width: 0 !important; } .flight-card-compact .fc-route .flight-destination, .fp-multi-leg-card .fc-route .flight-destination { align-items: flex-end !important; text-align: right !important; } .flight-card-compact .fc-route .flight-departure .airport-code, .flight-card-compact .fc-route .flight-departure .airport-city, .flight-card-compact .fc-route .flight-departure .airport-name, .flight-card-compact .fc-route .flight-departure .airport-district, .fp-multi-leg-card .fc-route .flight-departure .airport-code, .fp-multi-leg-card .fc-route .flight-departure .airport-city, .fp-multi-leg-card .fc-route .flight-departure .airport-name, .fp-multi-leg-card .fc-route .flight-departure .airport-district { text-align: left !important; width: auto !important; justify-content: flex-start !important; } .flight-card-compact .fc-route .flight-destination .airport-code, .flight-card-compact .fc-route .flight-destination .airport-city, .flight-card-compact .fc-route .flight-destination .airport-name, .flight-card-compact .fc-route .flight-destination .airport-district, .fp-multi-leg-card .fc-route .flight-destination .airport-code, .fp-multi-leg-card .fc-route .flight-destination .airport-city, .fp-multi-leg-card .fc-route .flight-destination .airport-name, .fp-multi-leg-card .fc-route .flight-destination .airport-district { text-align: right !important; width: auto !important; justify-content: flex-end !important; } .flight-card-compact:not(.booking-card) .fc-bottom .flight-actions, .fp-multi-leg-card:not(.booking-card) .fc-bottom .flight-actions, .flight-card-compact:not(.booking-card) .fc-bottom .booking-info-section, .fp-multi-leg-card:not(.booking-card) .fc-bottom .booking-info-section, .flight-card-compact:not(.booking-card) .fc-bottom .price-info-section, .fp-multi-leg-card:not(.booking-card) .fc-bottom .price-info-section { order: unset !important; grid-row: auto !important; border-top: none !important; padding-top: 0 !important; } } @media (max-width: 1024px) { .flight-card-compact.booking-card .fc-bottom .booking-info-section, .fp-multi-leg-card.booking-card .fc-bottom .booking-info-section { display: flex !important; flex-flow: column nowrap !important; flex: 0 0 auto !important; width: 100% !important; max-width: none !important; } .flight-card-compact.booking-card .fc-bottom .price-info-section, .fp-multi-leg-card.booking-card .fc-bottom .price-info-section { display: flex !important; flex-flow: row nowrap !important; flex: 0 0 auto !important; width: 100% !important; max-width: none !important; padding-top: 12px !important; margin-top: 0 !important; border-top: none !important; gap: 8px !important; } .flight-card-compact.booking-card .fc-bottom .price-info-section .action-btn, .fp-multi-leg-card.booking-card .fc-bottom .price-info-section .action-btn { flex: 1 1 0 !important; min-width: 0 !important; width: auto !important; max-width: none !important; margin: 0 !important; } } @media (min-width: 769px) and (max-width: 1024px) { .flights-list, .bookmarks-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; } } @media (max-width: 480px) { .flight-card-compact .fc-hero.flight-aircraft-container, .fp-multi-leg-card .fc-hero.flight-aircraft-container { height: 172px; min-height: 172px; } .flight-card-compact .fc-stat { font-size: 11px; padding: 0 4px; gap: 4px; } .flight-card-compact .fc-endpoint-head .airport-code, .flight-card-compact .fc-compact-code { font-size: 20px; } .flight-card-compact .fc-bottom .current-price { font-size: 20px; } } @media (min-width: 1025px) { .flight-card-compact .flight-card-content, .fp-multi-leg-card .flight-card-content { display: flex !important; flex-direction: row !important; flex-wrap: nowrap; align-items: center; gap: 12px 14px; padding: 0 2px; } .flight-card-compact .fc-stats, .flight-card-compact .fc-route-connector, .fp-multi-leg-card .fc-stats, .fp-multi-leg-card .fc-route-connector { display: none !important; } .flight-card-compact .fc-desktop-only, .fp-multi-leg-card .fc-desktop-only { display: block; } .flight-card-compact .fc-journey.fc-desktop-only { display: flex; } .flight-card-compact .flight-duration.mobile-position, .fp-multi-leg-card .flight-duration.mobile-position { display: none !important; } .flight-card-compact .flight-duration.desktop-position, .fp-multi-leg-card .flight-duration.desktop-position { display: flex !important; order: 4; flex: 0.8; min-width: 0; } .flight-card-compact .fc-body, .fp-multi-leg-card .fc-body { display: contents; } .flight-card-compact .fc-route:not(.fc-mobile-route), .fp-multi-leg-card .fc-route { display: contents; } .flight-card-compact .fc-route.fc-mobile-route { display: none !important; } .flight-card-compact .fc-bottom, .fp-multi-leg-card .fc-bottom { display: contents; } .flight-card-compact .flight-datetime, .fp-multi-leg-card .flight-datetime { order: 1; flex: 1.2; min-width: 0; } .flight-card-compact .flight-departure, .fp-multi-leg-card .flight-departure { order: 2; flex: 1.5; min-width: 0; } .flight-card-compact .flight-destination, .fp-multi-leg-card .flight-destination { order: 3; flex: 1.5; min-width: 0; } .flight-card-compact .fc-hero.flight-aircraft-container, .fp-multi-leg-card .fc-hero.flight-aircraft-container { display: contents; } .flight-card-compact .fc-hero .flight-aircraft.fc-hero-meta, .fp-multi-leg-card .fc-hero .flight-aircraft.fc-hero-meta { position: static; order: 5; flex: 1.5; min-width: 0; display: flex; align-items: center; padding: 0; background: none; pointer-events: auto; } .flight-card-compact .fc-hero .flight-aircraft-image, .fp-multi-leg-card .fc-hero .flight-aircraft-image { position: static; order: 6; flex: 0 0 auto; min-width: 0; display: flex; align-items: center; justify-content: center; height: auto; width: auto; padding: 4px 6px 4px 2px; } .flight-card-compact .fc-hero .aircraft-image-container, .fp-multi-leg-card .fc-hero .aircraft-image-container { width: var(--fc-aircraft-photo-w) !important; height: var(--fc-aircraft-photo-h) !important; min-width: var(--fc-aircraft-photo-w) !important; min-height: var(--fc-aircraft-photo-h) !important; max-width: var(--fc-aircraft-photo-w) !important; max-height: var(--fc-aircraft-photo-h) !important; flex-shrink: 0; border-radius: var(--fc-aircraft-photo-radius); background: var(--fc-fill) !important; } .flight-card-compact .fc-hero .flight-list-aircraft-image, .fp-multi-leg-card .fc-hero .flight-list-aircraft-image, .flight-card-compact .fc-hero .aircraft-image-container .aircraft-image, .fp-multi-leg-card .fc-hero .aircraft-image-container .aircraft-image { width: var(--fc-aircraft-photo-w) !important; height: var(--fc-aircraft-photo-h) !important; min-width: var(--fc-aircraft-photo-w) !important; min-height: var(--fc-aircraft-photo-h) !important; max-width: var(--fc-aircraft-photo-w) !important; max-height: var(--fc-aircraft-photo-h) !important; object-fit: cover; border-radius: var(--fc-aircraft-photo-radius); transform: none !important; } .flight-card-compact .fc-hero .aircraft-details, .fp-multi-leg-card .fc-hero .aircraft-details { display: flex; flex-direction: column; gap: 2px; height: auto; width: 100%; min-width: 0; padding-right: 8px; grid-template-columns: none; grid-template-rows: none; } .flight-card-compact .fc-hero .fc-hero-bottom, .fp-multi-leg-card .fc-hero .fc-hero-bottom { display: contents; } .flight-card-compact .fc-hero .aircraft-model, .fp-multi-leg-card .fc-hero .aircraft-model { order: 1; color: var(--fc-text); font-size: 13px; font-weight: 600; text-shadow: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left; } .flight-card-compact .fc-hero .aircraft-category, .fp-multi-leg-card .fc-hero .aircraft-category { order: 2; align-self: flex-start; padding: 0; background: none; backdrop-filter: none; color: var(--fc-label); text-transform: uppercase; font-size: 10px; letter-spacing: 0.06em; } .flight-card-compact .fc-hero .aircraft-seats, .fp-multi-leg-card .fc-hero .aircraft-seats { order: 3; color: var(--fc-label); text-shadow: none; font-size: 12px; text-align: left; } .flight-card-compact .flight-ratings, .fp-multi-leg-card .flight-ratings { order: 7; flex: 0 0 var(--fc-ticket-ratings-w); width: var(--fc-ticket-ratings-w); min-width: var(--fc-ticket-ratings-w); max-width: var(--fc-ticket-ratings-w); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; } .flight-card-compact .flight-actions, .fp-multi-leg-card .flight-actions { order: 8; display: flex; flex-direction: column; flex: 0 0 var(--fc-ticket-actions-w); width: var(--fc-ticket-actions-w); min-width: var(--fc-ticket-actions-w); max-width: var(--fc-ticket-actions-w); flex-shrink: 0; gap: 8px; border-top: none; padding-top: 0; } .flight-card-compact .fc-endpoint-head, .fp-multi-leg-card .fc-endpoint-head { display: none; } .flight-card-compact .fc-desktop-flag, .fp-multi-leg-card .fc-desktop-flag { display: inline; } .flight-card-compact .fc-compact-code, .fp-multi-leg-card .fc-compact-code { display: none; } .flight-card-compact .fc-desktop-code, .fp-multi-leg-card .fc-desktop-code { display: block; } .flight-card-compact .flight-departure .airport-city, .flight-card-compact .flight-destination .airport-city, .fp-multi-leg-card .flight-departure .airport-city, .fp-multi-leg-card .flight-destination .airport-city { font-size: 15px; display: inline-flex !important; align-items: center; gap: 4px; } .flight-card-compact .flight-departure .fc-desktop-code, .flight-card-compact .flight-destination .fc-desktop-code, .fp-multi-leg-card .flight-departure .fc-desktop-code, .fp-multi-leg-card .flight-destination .fc-desktop-code { font-size: 11px; font-weight: 600; } .flight-card-compact .flight-departure, .flight-card-compact .flight-destination, .fp-multi-leg-card .flight-departure, .fp-multi-leg-card .flight-destination { text-align: left; align-items: flex-start; display: flex; flex-direction: column; } .flight-card-compact .flight-destination .airport-city, .flight-card-compact .flight-destination .airport-name, .flight-card-compact .flight-destination .airport-district, .fp-multi-leg-card .flight-destination .airport-city, .fp-multi-leg-card .flight-destination .airport-name, .fp-multi-leg-card .flight-destination .airport-district { text-align: left; } .flight-card-compact .fc-bottom .score-badge, .flight-card-compact .fc-bottom .score-comment, .flight-card-compact .fc-bottom .actions-price-display, .flight-card-compact .fc-bottom .action-buttons, .fp-multi-leg-card .fc-bottom .score-badge, .fp-multi-leg-card .fc-bottom .score-comment, .fp-multi-leg-card .fc-bottom .actions-price-display, .fp-multi-leg-card .fc-bottom .action-buttons { grid-column: auto; grid-row: auto; } .flight-card-compact .score-comment, .fp-multi-leg-card .score-comment { max-width: 110px; text-align: center; font-size: 10px; line-height: 1.3; display: block; overflow: visible; -webkit-line-clamp: unset; } .flight-card-compact .fc-bottom .flight-ratings, .flight-card-compact .fc-bottom .score-badge-container, .flight-card-compact .fc-bottom .score-badges-row, .fp-multi-leg-card .fc-bottom .flight-ratings, .fp-multi-leg-card .fc-bottom .score-badge-container, .fp-multi-leg-card .fc-bottom .score-badges-row { display: flex; } .flight-card-compact .fc-bottom .flight-actions, .fp-multi-leg-card .fc-bottom .flight-actions { display: flex; } .flight-card-compact .actions-price-display, .fp-multi-leg-card .actions-price-display { align-items: flex-end; } .flight-card-compact .fc-share-btn, .fp-multi-leg-card .fc-share-btn { display: none !important; } .flight-card-compact .action-buttons .favorite-btn, .fp-multi-leg-card .action-buttons .favorite-btn { flex: 0 0 36px; width: 36px; min-width: 36px; height: 36px; min-height: 36px; padding: 0; border-radius: 50%; } } .bd-page .sp-hero__title { max-width: 16ch; } .bd-hero__meta { display: flex; flex-wrap: wrap; gap: 8px 10px; margin-top: clamp(22px, 3vw, 32px); } .bd-pill { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 12px; border: 1px solid var(--sp-line); border-radius: 0; background: transparent; font-family: var(--sp-font-body); font-size: 0.6875rem; font-weight: var(--sp-weight-label); letter-spacing: 0.16em; text-transform: uppercase; color: var(--sp-ink-soft); } .bd-pill__dot { width: 6px; height: 6px; border-radius: 0; background: var(--sp-accent); } .bd-section { padding-block: 0 clamp(56px, 8vw, 112px); } .bd-toolbar { position: sticky; top: calc(72px + var(--safe-area-inset-top, 0px)); z-index: 40; margin: 0 calc(var(--sp-gutter) * -1); padding: 0 var(--sp-gutter); background: color-mix(in srgb, var(--sp-canvas) 88%, transparent); border-bottom: 1px solid var(--sp-line); } @supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .bd-toolbar { backdrop-filter: saturate(140%) blur(16px); -webkit-backdrop-filter: saturate(140%) blur(16px); } } .bd-tabs { display: flex; gap: 0; overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; touch-action: pan-x; cursor: grab; scrollbar-width: none; } .bd-tabs.is-dragging { cursor: grabbing; user-select: none; scroll-behavior: auto; } .bd-tabs.is-dragging .bd-tab { pointer-events: none; } .bd-tabs::-webkit-scrollbar { display: none; } .bd-tab { flex: 0 0 auto; min-height: 44px; padding: 10px 14px; border: none; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; color: var(--sp-ink-soft); font-family: var(--sp-font-body); font-size: 0.75rem; font-weight: var(--sp-weight-label); letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap; cursor: pointer; transition: color 0.2s ease, border-color 0.2s ease; } .bd-tab:hover { color: var(--sp-ink); } .bd-tab.is-active { color: var(--sp-ink); border-bottom-color: var(--sp-accent); } .bd-tab__count { margin-left: 8px; font-variant-numeric: tabular-nums; letter-spacing: 0.04em; color: var(--sp-ink-faint); } .bd-tab.is-active .bd-tab__count { color: var(--sp-accent-deep); } .bd-panel-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: clamp(28px, 4vw, 44px) 0 clamp(18px, 2.5vw, 28px); } .bd-panel-head__title { margin: 0; font-family: var(--sp-font-display); font-size: clamp(1.5rem, 2.6vw, 2.2rem); font-weight: var(--sp-weight-display); letter-spacing: -0.02em; color: var(--sp-ink); } .bd-panel-head__sub { margin: 8px 0 0; font-size: 0.95rem; line-height: 1.5; color: var(--sp-ink-soft); } .bd-link { display: inline-flex; align-items: center; gap: 10px; flex: none; font-family: var(--sp-font-body); font-size: 0.8125rem; font-weight: var(--sp-weight-label); letter-spacing: 0.06em; color: var(--sp-accent-deep); text-decoration: none; border-bottom: 1px solid transparent; padding-bottom: 3px; transition: border-color 0.25s ease, gap 0.35s var(--sp-ease); } .bd-page a.bd-link, .bd-page a.bd-link:hover { color: var(--sp-accent-deep); } .bd-link::after { content: "→"; } .bd-link:hover { border-bottom-color: currentcolor; gap: 16px; } .bd-empty, .bd-status { margin: 0; padding: clamp(28px, 4vw, 40px); border: 1px solid var(--sp-line); border-radius: 0; background: var(--sp-surface); color: var(--sp-ink-soft); font-size: 1rem; line-height: 1.55; } .bd-status[hidden], .bd-empty[hidden] { display: none; } .bd-status--error { border-color: color-mix(in srgb, var(--danger) 35%, var(--sp-line)); color: var(--sp-ink); } .bd-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; margin-top: clamp(36px, 5vw, 56px); padding: clamp(22px, 3vw, 32px); border: 1px solid var(--sp-line); border-radius: 0; background: var(--sp-surface); } .bd-cta__copy { max-width: 48ch; } .bd-cta__title { margin: 0; font-family: var(--sp-font-display); font-size: 1.25rem; font-weight: var(--sp-weight-display); letter-spacing: -0.015em; color: var(--sp-ink); } .bd-cta__lede { margin: 8px 0 0; color: var(--sp-ink-soft); font-size: 0.95rem; line-height: 1.55; } .bd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; padding: 0 26px; border: 1px solid transparent; border-radius: 0; background: var(--sp-cta); color: var(--sp-cta-ink); font-family: var(--sp-font-body); font-size: 0.75rem; font-weight: var(--sp-weight-label); letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; transition: transform 0.35s var(--sp-ease), background-color 0.25s ease; } .bd-page a.bd-btn, .bd-page a.bd-btn:hover, .bd-page a.bd-btn:active, .bd-page a.bd-btn:visited { color: var(--sp-cta-ink); } .bd-btn:hover { background: color-mix(in srgb, var(--sp-cta) 88%, #000); transform: translateY(-1px); } .bd-btn:active { transform: translateY(0); } .bd-btn__glyph { position: relative; width: 18px; height: 1px; background: currentcolor; transition: width 0.35s var(--sp-ease); } .bd-btn__glyph::after { content: ""; position: absolute; right: 0; top: 50%; width: 7px; height: 7px; border-top: 1px solid currentcolor; border-right: 1px solid currentcolor; transform: translateY(-50%) rotate(45deg); } .bd-btn:hover .bd-btn__glyph { width: 26px; } .bd-page #footer-container { margin-top: 0; } @media (max-width: 768px) { .bd-toolbar { top: calc(64px + var(--safe-area-inset-top, 0px)); } .bd-panel-head { flex-direction: column; align-items: flex-start; } .bd-cta { flex-direction: column; align-items: stretch; } .bd-cta .bd-btn { width: 100%; } } @media (prefers-reduced-transparency: reduce) { .bd-toolbar { background: var(--sp-canvas); backdrop-filter: none; -webkit-backdrop-filter: none; } } @keyframes bd-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } } .bd-page .sp-eyebrow, .bd-page .sp-hero__title, .bd-page .sp-hero__lede, .bd-page .bd-hero__meta { animation: bd-rise 0.95s var(--sp-ease) both; } .bd-page .sp-eyebrow { animation-delay: 0.1s; } .bd-page .sp-hero__title { animation-delay: 0.18s; } .bd-page .sp-hero__lede { animation-delay: 0.28s; } .bd-page .bd-hero__meta { animation-delay: 0.38s; } .bd-page .sp-cards.is-entering > * { animation: bd-rise 0.7s var(--sp-ease) both; } .bd-page .sp-cards.is-entering > *:nth-child(1) { animation-delay: 0.06s; } .bd-page .sp-cards.is-entering > *:nth-child(2) { animation-delay: 0.13s; } .bd-page .sp-cards.is-entering > *:nth-child(3) { animation-delay: 0.2s; } .bd-page .sp-cards.is-entering > *:nth-child(4) { animation-delay: 0.27s; } .bd-page .sp-cards.is-entering > *:nth-child(5) { animation-delay: 0.34s; } .bd-page .sp-cards.is-entering > *:nth-child(6) { animation-delay: 0.41s; } .bd-page .sp-cards.is-entering > *:nth-child(7) { animation-delay: 0.48s; } .bd-page .sp-cards.is-entering > *:nth-child(n + 8) { animation-delay: 0.55s; } @media (prefers-reduced-motion: reduce) { .bd-tab, .bd-link, .bd-btn, .bd-btn__glyph { transition: none; } .bd-page .sp-eyebrow, .bd-page .sp-hero__title, .bd-page .sp-hero__lede, .bd-page .bd-hero__meta, .bd-page .sp-cards.is-entering > * { animation: none; opacity: 1; transform: none; } } .ej-activity-indicator { --ej-ai-size: 20px; --ej-ai-color: var(--color-text-muted); --ej-ai-track: var(--color-border-subtle); display: block; flex: 0 0 var(--ej-ai-size); width: var(--ej-ai-size); height: var(--ej-ai-size); border-radius: 50%; background: conic-gradient( from 90deg, var(--ej-ai-color) 0deg, var(--ej-ai-track) 260deg, var(--ej-ai-color) 360deg ); -webkit-mask: radial-gradient( farthest-side, transparent calc(100% - 2.25px), #000 calc(100% - 1.75px) ); mask: radial-gradient( farthest-side, transparent calc(100% - 2.25px), #000 calc(100% - 1.75px) ); animation: ej-activity-spin 0.88s linear infinite; } .ej-activity-indicator--large { --ej-ai-size: 28px; } .ej-activity-indicator--light { --ej-ai-color: rgba(255, 255, 255, 0.92); --ej-ai-track: rgba(255, 255, 255, 0.22); } @keyframes ej-activity-spin { to { transform: rotate(360deg); } } #loading-overlay.loading-overlay { --lh-font: -apple-system, blinkmacsystemfont, "SF Pro Text", "SF Pro Display", system-ui, sans-serif; --lh-label: var(--color-text-muted); --lh-shell-bg: var(--color-surface-glass); --lh-shell-border: var(--color-border-subtle); --lh-shell-shadow: var(--shadow-surface); position: fixed; inset: 0; z-index: 10100; display: none; align-items: center; justify-content: center; padding: 1.5rem; background: var(--color-overlay); -webkit-backdrop-filter: saturate(160%) blur(10px); backdrop-filter: saturate(160%) blur(10px); -webkit-font-smoothing: antialiased; } #loading-overlay.loading-overlay[style*="display: flex"], #loading-overlay.loading-overlay[style*="display:flex"] { display: flex; } #loading-overlay .loading-hud { display: flex; flex-direction: column; align-items: center; gap: 0.875rem; min-width: 7.5rem; padding: 1.375rem 1.625rem; border-radius: 14px; background: var(--lh-shell-bg); border: 0.5px solid var(--lh-shell-border); box-shadow: var(--lh-shell-shadow); -webkit-backdrop-filter: blur(24px) saturate(180%); backdrop-filter: blur(24px) saturate(180%); opacity: 0; transform: scale(0.94); animation: loading-hud-enter 0.32s cubic-bezier(0.25, 0.1, 0.25, 1) forwards; } #loading-overlay .loading-hud__label { margin: 0; font-family: var(--lh-font); font-size: 0.8125rem; font-weight: 500; letter-spacing: -0.012em; line-height: 1.2; color: var(--lh-label); text-align: center; } @keyframes loading-hud-enter { to { opacity: 1; transform: scale(1); } } .pull-to-refresh-indicator { --ptr-font: -apple-system, blinkmacsystemfont, "SF Pro Text", "SF Pro Display", system-ui, sans-serif; position: fixed; top: max(0.75rem, env(safe-area-inset-top, 0.75rem)); left: 50%; z-index: 1001; display: flex; flex-direction: column; align-items: center; gap: 0.375rem; padding: 0; background: transparent; border: none; box-shadow: none; pointer-events: none; opacity: 0; transform: translateX(-50%) translateY(-12px) scale(0.88); transition: opacity 0.28s cubic-bezier(0.25, 0.1, 0.25, 1), transform 0.28s cubic-bezier(0.25, 0.1, 0.25, 1); } .pull-to-refresh-indicator.active, .pull-to-refresh-indicator.is-refreshing { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); } .pull-to-refresh-indicator__spinner { display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--color-surface-glass-strong); border: 0.5px solid var(--color-border-subtle); box-shadow: var(--shadow-surface); -webkit-backdrop-filter: blur(16px) saturate(160%); backdrop-filter: blur(16px) saturate(160%); } .pull-to-refresh-indicator__label { font-family: var(--ptr-font); font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.02em; line-height: 1.2; color: var(--color-text-muted); text-transform: uppercase; -webkit-font-smoothing: antialiased; } .pull-to-refresh-indicator.is-refreshing .pull-to-refresh-indicator__label { color: var(--color-text-muted); text-transform: none; letter-spacing: -0.006em; font-size: 0.75rem; font-weight: 400; } @media (prefers-reduced-motion: reduce) { .ej-activity-indicator { animation: none; background: var(--ej-ai-track); -webkit-mask: none; mask: none; border: 2px solid var(--ej-ai-track); border-top-color: var(--ej-ai-color); } #loading-overlay .loading-hud { animation: none; opacity: 1; transform: none; } .pull-to-refresh-indicator { transition: opacity 0.15s ease; transform: translateX(-50%); } .pull-to-refresh-indicator.active, .pull-to-refresh-indicator.is-refreshing { transform: translateX(-50%); } } .prebook-modal { --pb-bg: #ffffff; --pb-surface: #ffffff; --pb-text: #0e1a2c; --pb-secondary: #3e4b5e; --pb-label: #6b7686; --pb-separator: rgba(14, 26, 44, 0.12); --pb-accent: #2f6fed; --pb-cta: #2b4666; --pb-cta-ink: #ffffff; --pb-footer-bg: #ffffff; --pb-menu-bg: #ffffff; --pb-preview-bg: #f5f7fa; --pb-disclaimer-bg: #eceff3; --pb-disclaimer-bg-end: #eceff3; --pb-disclaimer-highlight: transparent; --pb-disclaimer-item: #3e4b5e; --pb-search-focus-bg: #ffffff; --pb-placeholder-flag-start: #e6eaf0; --pb-placeholder-flag-end: #eceff3; --pb-remove-bg: rgba(14, 26, 44, 0.08); --pb-remove-color: #6b7686; --pb-remove-hover-bg: rgba(14, 26, 44, 0.12); --pb-link: #2560d6; --pb-route-via-bg: rgba(47, 111, 237, 0.1); --pb-route-via-color: #2560d6; --pb-radius: 0; --pb-radius-inner: 0; --pb-font: "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif; } :root[data-theme="dark"] .prebook-modal { --pb-bg: #12141a; --pb-surface: #12141a; --pb-text: #f2f4f7; --pb-secondary: #b8c0cc; --pb-label: #7c8797; --pb-separator: rgba(255, 255, 255, 0.12); --pb-accent: #5b8cff; --pb-cta: #4a6a8f; --pb-footer-bg: #12141a; --pb-menu-bg: #12141a; --pb-preview-bg: #181b22; --pb-disclaimer-bg: #181b22; --pb-disclaimer-bg-end: #181b22; --pb-disclaimer-item: #b8c0cc; --pb-search-focus-bg: #12141a; --pb-placeholder-flag-start: #1c2028; --pb-placeholder-flag-end: #181b22; --pb-remove-bg: rgba(255, 255, 255, 0.08); --pb-remove-color: #7c8797; --pb-remove-hover-bg: rgba(255, 255, 255, 0.14); --pb-link: #5b8cff; --pb-route-via-bg: rgba(91, 140, 255, 0.14); --pb-route-via-color: #5b8cff; } .prebook-modal { position: fixed; inset: 0; z-index: 10050; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(14, 26, 44, 0.28); backdrop-filter: blur(10px) saturate(120%); -webkit-backdrop-filter: blur(10px) saturate(120%); font-family: var(--pb-font); } .prebook-modal.active { display: flex; } .prebook-modal--viewport-framed { transform: none; transition: none; } .prebook-modal__panel { display: flex; flex-direction: column; width: min(100%, 420px); max-height: min(90dvh, 680px); overflow: hidden; overscroll-behavior: contain; border: 1px solid var(--pb-separator); border-radius: var(--pb-radius); background: var(--pb-bg); box-shadow: none; } .prebook-modal__body { flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 14px 18px 16px; scrollbar-width: thin; scrollbar-color: var(--color-scrollbar) transparent; } .prebook-modal__body::-webkit-scrollbar { width: 4px; } .prebook-modal__body::-webkit-scrollbar-thumb { background: var(--color-scrollbar); border-radius: 0; } .prebook-modal__toolbar { position: relative; z-index: 2; flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px 12px; background: var(--pb-surface); backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom: 1px solid var(--pb-separator); } .prebook-modal__title { margin: 0; font-size: 1.25rem; line-height: 1.2; font-weight: 300; letter-spacing: -0.02em; color: var(--pb-text); } .prebook-modal__close { width: 30px; height: 30px; border: 1px solid var(--pb-separator); border-radius: 0; background: transparent; color: var(--pb-secondary); font-size: 18px; line-height: 1; cursor: pointer; flex-shrink: 0; box-shadow: none; } .prebook-modal__close:hover { color: var(--pb-text); background: var(--pb-surface); } .prebook-modal__trip { padding: 16px; border: 1px solid var(--pb-separator); border-radius: var(--pb-radius-inner); background: var(--pb-surface); box-shadow: none; } .prebook-modal__route { margin: 0; font-size: 16px; line-height: 1.35; font-weight: 500; letter-spacing: -0.02em; color: var(--pb-text); } .prebook-modal__route-endpoints { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.45rem; } .prebook-modal__route-arrow { color: var(--pb-label); font-weight: 500; } .prebook-modal__route-via { display: inline-flex; margin-top: 8px; padding: 4px 10px; border-radius: 0; background: var(--pb-route-via-bg); color: var(--pb-route-via-color); font-size: 12px; font-weight: 600; } .prebook-modal__trip-meta { display: flex; flex-wrap: wrap; gap: 6px 10px; margin-top: 10px; font-size: 13px; line-height: 1.35; color: var(--pb-secondary); } .prebook-modal__trip-meta-dot { color: var(--pb-label); } .prebook-modal__price { margin-top: 14px; padding-top: 14px; border-top: 0.5px solid var(--pb-separator); font-size: 28px; line-height: 1.1; font-weight: 700; letter-spacing: -0.03em; color: var(--pb-text); font-variant-numeric: tabular-nums; } .prebook-modal__price--empty { font-size: 15px; font-weight: 500; color: var(--pb-label); } .prebook-modal__group { margin-top: 14px; border: 1px solid var(--pb-separator); border-radius: var(--pb-radius-inner); background: var(--pb-surface); overflow: visible; box-shadow: none; } .prebook-modal__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 0 16px; } .prebook-modal__row--passengers { align-items: center; min-height: 72px; padding: 14px 16px; } .prebook-modal__row-copy { display: flex; flex: 1 1 auto; flex-direction: column; gap: 3px; min-width: 0; } .prebook-modal__row--passengers .prebook-modal__row-label { font-size: 16px; font-weight: 650; letter-spacing: -0.01em; } .prebook-modal__row--passengers .prebook-modal__row-hint { margin: 0; font-size: 13px; line-height: 1.35; } .prebook-modal__row + .prebook-modal__row, .prebook-modal__row + .prebook-modal__row-block { border-top: 0.5px solid var(--pb-separator); } .prebook-modal__row-label { font-size: 15px; font-weight: 500; color: var(--pb-text); } .prebook-modal__row-hint { margin: -6px 16px 12px; font-size: 12px; line-height: 1.4; color: var(--pb-secondary); } .prebook-modal__stepper { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; padding: 4px; border-radius: 0; background: var(--pb-preview-bg); } .prebook-modal__stepper-btn { width: 34px; height: 34px; border: none; border-radius: 0; background: var(--pb-surface); color: var(--pb-text); font-size: 18px; line-height: 1; cursor: pointer; box-shadow: none; } .prebook-modal__stepper-btn:disabled { opacity: 0.35; cursor: not-allowed; } .prebook-modal__stepper-value { min-width: 28px; text-align: center; font-size: 17px; font-weight: 650; color: var(--pb-text); font-variant-numeric: tabular-nums; } .prebook-modal__row-block { padding: 12px 16px 14px; } .prebook-modal__row-block .prebook-modal__row-label { display: block; margin-bottom: 10px; } .prebook-country-picker { position: relative; } .prebook-country-picker--headless { position: absolute; width: 0; height: 0; overflow: visible; pointer-events: none; } .prebook-country-picker--headless .prebook-country-picker__trigger { display: none; } .prebook-country-picker--headless .prebook-country-picker__menu, .prebook-country-picker--headless .prebook-country-sheet { pointer-events: auto; } .prebook-country-picker__trigger { width: 100%; height: 44px; display: flex; align-items: center; gap: 10px; padding: 0 12px; border: 1px solid var(--pb-separator); border-radius: 0; background: var(--pb-bg); color: var(--pb-text); font-size: 15px; cursor: pointer; transition: border-color 0.15s ease, box-shadow 0.15s ease; } .prebook-country-picker__trigger:hover { border-color: var(--color-border-strong); } .prebook-country-picker.is-open .prebook-country-picker__trigger, .prebook-country-picker__trigger:focus-visible { outline: none; border-color: var(--pb-accent); box-shadow: 0 0 0 3px rgba(47, 111, 237, 0.16); } .prebook-country-picker__trigger-flag { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; flex-shrink: 0; } .prebook-country-picker__placeholder-flag { display: inline-block; width: 1.2rem; height: 0.82rem; border-radius: 3px; background: linear-gradient( 180deg, var(--pb-placeholder-flag-start) 0%, var(--pb-placeholder-flag-end) 100% ); } .prebook-country-picker__trigger-label { flex: 1; text-align: left; color: var(--pb-secondary); } .prebook-country-picker__chevron { color: var(--pb-label); font-size: 13px; } .prebook-country-picker__menu { position: absolute; top: calc(100% + 6px); bottom: auto; left: 0; right: 0; z-index: 5; border-radius: 0; border: 1px solid var(--pb-separator, var(--color-border-subtle)); background: var(--pb-menu-bg, var(--color-surface-raised)); box-shadow: none; overflow: hidden; } .prebook-country-picker.is-open-up .prebook-country-picker__menu { top: auto; bottom: calc(100% + 6px); } .prebook-country-picker__menu[style*='position: fixed'] { right: auto; } .prebook-country-picker__search-wrap { padding: 10px 10px 0; } .prebook-country-picker__search { width: 100%; height: 38px; padding: 0 12px; border: 0.5px solid var(--pb-separator, var(--color-border-subtle)); border-radius: 0; background: var(--pb-bg, var(--color-control)); font-size: 14px; color: var(--pb-text, var(--color-text)); } .prebook-country-picker__search:focus { outline: none; border-color: var(--pb-accent, #2f6fed); background: var(--pb-search-focus-bg, var(--color-surface)); } .prebook-country-picker__options { max-height: 200px; overflow: auto; padding: 8px; overscroll-behavior: contain; background: var(--pb-menu-bg, var(--color-surface-raised)); } .prebook-country-picker__option { width: 100%; display: flex; align-items: center; gap: 10px; padding: 9px 10px; border: none; border-radius: 0; background: transparent; color: var(--pb-text, var(--color-text)); font-size: 14px; text-align: left; cursor: pointer; } .prebook-country-picker__option:hover, .prebook-country-picker__option:focus-visible { outline: none; background: rgba(47, 111, 237, 0.1); } .prebook-country-picker__option-flag { width: 1.28rem; height: 0.86rem; } .prebook-country-picker__empty { padding: 14px 10px; color: var(--pb-secondary, var(--color-text-secondary)); font-size: 13px; text-align: center; } .prebook-modal__citizenship-section { margin-top: 18px; } .prebook-modal__citizenship-header { margin-bottom: 10px; } .prebook-modal__citizenship-title { margin: 0; font-size: 17px; line-height: 1.25; font-weight: 650; letter-spacing: -0.02em; color: var(--pb-text); } .prebook-modal__citizenship-subtitle { margin: 4px 0 0; font-size: 14px; line-height: 1.35; color: var(--pb-secondary); } .prebook-modal__citizenship-card { border: 1px solid var(--pb-separator); border-radius: var(--pb-radius-inner); background: var(--pb-surface); box-shadow: none; overflow: hidden; } .prebook-modal__citizenship-empty { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px 10px; } .prebook-modal__citizenship-empty-icon { flex: 0 0 auto; margin-top: 1px; color: var(--pb-label); } .prebook-modal__citizenship-empty-text { margin: 0; font-size: 14px; line-height: 1.4; color: var(--pb-secondary); } .prebook-modal__citizenship-list { display: flex; flex-direction: column; } .prebook-modal__citizenship-item { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 0.5px solid var(--pb-separator); } .prebook-modal__citizenship-item:last-of-type { border-bottom: none; } .prebook-modal__citizenship-item-flag { flex: 0 0 auto; display: inline-flex; align-items: center; } .prebook-modal__citizenship-item-flag img, .prebook-modal__citizenship-item-flag .booking-country-flag { width: 1.5rem; height: 1rem; border-radius: 2px; object-fit: cover; } .prebook-modal__citizenship-item-copy { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; } .prebook-modal__citizenship-item-label { font-size: 12px; line-height: 1.2; color: var(--pb-label); } .prebook-modal__citizenship-item-value { font-size: 16px; line-height: 1.25; font-weight: 650; letter-spacing: -0.01em; color: var(--pb-text); } .prebook-modal__citizenship-item-remove { flex: 0 0 auto; width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; border: none; border-radius: 0; background: var(--pb-remove-bg); color: var(--pb-remove-color); font-size: 15px; line-height: 1; cursor: pointer; padding: 0; } .prebook-modal__citizenship-item-remove:hover, .prebook-modal__citizenship-item-remove:focus-visible { outline: none; background: var(--pb-remove-hover-bg); } .prebook-modal__citizenship-add { width: 100%; display: flex; align-items: center; gap: 10px; padding: 12px 16px 14px; border: none; border-top: none; background: transparent; color: var(--pb-link); font-size: 16px; font-weight: 500; text-align: left; cursor: pointer; } .prebook-modal__citizenship-card--has-entries .prebook-modal__citizenship-add { border-top: 0.5px solid var(--pb-separator); } .prebook-modal__citizenship-add:disabled { opacity: 0.45; cursor: not-allowed; } .prebook-modal__citizenship-add-icon { width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border-radius: 0; background: var(--pb-link); color: #fff; font-size: 18px; line-height: 1; font-weight: 500; } .prebook-modal__citizenship-add-label { line-height: 1.2; } .prebook-modal__citizenship-footnote { margin: 10px 4px 0; font-size: 13px; line-height: 1.45; color: var(--pb-secondary); } .prebook-modal__error { margin-top: 12px; margin-bottom: 14px; padding: 11px 14px; border-radius: 0; background: rgb(255 59 48 / 10%); color: #c41e12; font-size: 13px; line-height: 1.4; } .prebook-modal__footer { display: grid; flex-shrink: 0; grid-template-columns: 1fr 1.2fr; gap: 10px; padding: 12px 18px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--pb-separator); background: var(--pb-footer-bg); backdrop-filter: none; -webkit-backdrop-filter: none; } .prebook-modal__footer--single { grid-template-columns: 1fr; } .prebook-modal__footer--single .prebook-modal__btn { width: 100%; height: 48px; border-radius: 0; font-size: 0.75rem; font-weight: 500; } .prebook-modal__btn { height: 44px; border-radius: 0; font-size: 0.75rem; font-weight: 500; cursor: pointer; letter-spacing: 0.16em; text-transform: uppercase; } .prebook-modal__btn--ghost { border: 1px solid var(--pb-separator); background: var(--pb-surface); color: var(--pb-text); } .prebook-modal__btn--primary { border: none; background: var(--pb-cta); color: var(--pb-cta-ink); box-shadow: none; } .prebook-modal__btn--primary:disabled { opacity: 0.55; cursor: not-allowed; } .prebook-modal--country-open .prebook-modal__body { overflow: hidden; } .prebook-country-sheet__panel { will-change: transform; } .prebook-country-sheet { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; justify-content: flex-end; } .prebook-country-sheet[hidden] { display: none !important; } .prebook-country-sheet__backdrop { position: absolute; inset: 0; border: none; background: rgb(0 0 0 / 18%); cursor: pointer; } .prebook-country-sheet__panel { position: relative; z-index: 1; display: flex; flex-direction: column; min-height: 260px; max-height: calc(100dvh - 10px); overflow: hidden; border-radius: 0; background: var(--pb-surface); box-shadow: none; border-top: 1px solid var(--pb-separator); } .prebook-country-sheet__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px 10px; border-bottom: 0.5px solid var(--pb-separator); } .prebook-country-sheet__title { font-size: 15px; font-weight: 400; color: var(--pb-text); } .prebook-country-sheet__done { border: none; background: transparent; color: var(--pb-accent); font-size: 15px; font-weight: 500; cursor: pointer; padding: 4px 0; } .prebook-country-sheet .prebook-country-picker__search-wrap { padding: 10px 12px 0; } .prebook-country-sheet .prebook-country-picker__options { flex: 1 1 auto; min-height: 0; max-height: none; padding: 8px 12px calc(12px + env(safe-area-inset-bottom, 0px)); } @media (max-width: 767px) { .prebook-modal--profile-mobile { align-items: flex-end; padding: 0; } .prebook-modal--profile-mobile.prebook-modal--viewport-framed { align-items: stretch; justify-content: flex-end; padding: 0; } .prebook-modal--profile-mobile.prebook-modal--viewport-framed .prebook-modal__panel:not( .prebook-modal__panel--success ) { width: 100%; max-height: 100%; height: 100%; border-radius: 0; } .prebook-modal--profile-mobile .prebook-modal__panel:not(.prebook-modal__panel--success) { width: 100%; height: 100%; max-height: 100%; border-radius: 0; } } @media (max-width: 520px) { .prebook-modal { align-items: flex-end; padding: 0; } .prebook-modal--viewport-framed { align-items: stretch; justify-content: flex-end; padding: 0; } .prebook-modal--viewport-framed .prebook-modal__panel:not(.prebook-modal__panel--success) { width: 100%; max-height: 100%; height: 100%; border-radius: 0; } .prebook-modal--viewport-framed.prebook-modal--profile .prebook-modal__panel:not( .prebook-modal__panel--success ) { width: 100%; max-height: 100%; height: 100%; border-radius: 0; } .prebook-modal--profile-mobile .prebook-modal__panel:not(.prebook-modal__panel--success) { width: 100%; height: 100%; max-height: 100%; border-radius: 0; } .prebook-modal__panel:not(.prebook-modal__panel--success) { position: relative; width: 100%; height: fit-content; max-height: 100dvh; border-radius: 0; overflow: hidden; } .prebook-modal--profile.prebook-modal--scrollable .prebook-modal__panel:not( .prebook-modal__panel--success ) { height: auto; } .prebook-modal--profile.prebook-modal--scrollable.prebook-modal--profile-mobile .prebook-modal__panel:not(.prebook-modal__panel--success) { height: 100%; max-height: 100%; } .prebook-modal__body { flex: 0 1 auto; padding: 14px 16px calc(20px + env(safe-area-inset-bottom, 0px)); } .prebook-modal--scrollable .prebook-modal__body { flex: 1 1 auto; min-height: 0; } .prebook-modal__toolbar { padding-top: calc(14px + env(safe-area-inset-top, 0px)); } .prebook-modal__footer { grid-template-columns: 1fr 1fr; padding: 12px 16px calc(14px + env(safe-area-inset-bottom, 0px)); } .prebook-modal__footer--single { display: flex; flex-direction: column; grid-template-columns: none; } .prebook-modal__footer--single .prebook-modal__btn { width: 100%; } .prebook-country-sheet .prebook-country-picker__search { height: 40px; font-size: 16px; } } body.prebook-modal-open { overflow: hidden; } @media (max-width: 767px) { html.prebook-modal-open, body.prebook-modal-open { overscroll-behavior: none; touch-action: none; height: 100%; } body.prebook-modal-open { position: fixed; left: 0; right: 0; width: 100%; } } .prebook-modal--success { align-items: center; justify-content: center; padding: max(20px, env(safe-area-inset-top, 0px)) 20px max(20px, env(safe-area-inset-bottom, 0px)); } .prebook-modal__panel--success { display: flex; flex-direction: column; width: min(100%, 520px); height: fit-content; max-height: min(90dvh, 760px); overflow: hidden; padding: 0; background: var(--pb-surface); border: 1px solid var(--pb-separator); border-radius: 0; box-shadow: none; } .prebook-success__icon { display: none !important; } .prebook-success__scroll { flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: var(--color-scrollbar, rgba(14, 26, 44, 0.22)) transparent; } .prebook-success__scroll::-webkit-scrollbar { width: 4px; } .prebook-success__scroll::-webkit-scrollbar-thumb { background: var(--color-scrollbar, rgba(14, 26, 44, 0.22)); } .prebook-success__content { padding: 28px 28px 8px; } .prebook-success__hero { display: flex; flex-direction: column; align-items: flex-start; text-align: left; } .prebook-success__title { margin: 0; font-family: var(--pb-font); font-size: 1.75rem; line-height: 1.15; font-weight: 300; letter-spacing: -0.03em; color: var(--pb-text); } .prebook-success__lead { margin: 12px 0 0; align-self: stretch; width: 100%; font-size: 0.9375rem; line-height: 1.55; font-weight: 400; text-align: left; text-wrap: pretty; white-space: pre-line; color: var(--pb-secondary); } .prebook-success__note-text { margin: 16px 0 0; font-size: 0.875rem; line-height: 1.5; font-weight: 400; text-wrap: pretty; color: var(--pb-secondary); } .prebook-success__disclaimer { margin-top: 24px; padding: 18px 20px; border: 1px solid var(--pb-separator); border-radius: 0; background: var(--pb-disclaimer-bg); box-shadow: none; } .prebook-success__disclaimer-lead { margin: 0; font-size: 0.9375rem; line-height: 1.5; font-weight: 500; letter-spacing: -0.01em; color: var(--pb-text); } .prebook-success__disclaimer-list { margin: 14px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; } .prebook-success__disclaimer-item { position: relative; margin: 0; padding-left: 16px; font-size: 0.875rem; line-height: 1.5; color: var(--pb-disclaimer-item); } .prebook-success__disclaimer-item::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 5px; height: 5px; border-radius: 0; background: var(--pb-cta, #2b4666); box-shadow: none; transform: translateY(-50%); } .prebook-success__disclaimer-foot { margin: 16px 0 0; padding-top: 16px; border-top: 1px solid var(--pb-separator); font-size: 0.875rem; line-height: 1.55; color: var(--pb-secondary); } .prebook-success__footer { flex-shrink: 0; display: flex; flex-direction: column; gap: 12px; padding: 16px 28px calc(20px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--pb-separator); background: var(--pb-surface); backdrop-filter: none; -webkit-backdrop-filter: none; } .prebook-success__footer--charter { padding-top: 8px; border-top: none; } .prebook-success__footer--charter .prebook-success__cta { margin-top: 0; padding-top: 0; border-top: none; } .prebook-success__option { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border: 1px solid var(--pb-separator); border-radius: 0; background: var(--pb-disclaimer-bg); box-shadow: none; cursor: pointer; user-select: none; } .prebook-success__option-input { position: relative; flex: 0 0 auto; display: block; width: 18px; height: 18px; min-width: 18px; min-height: 18px; margin: 2px 0 0; padding: 0; border: none; border-radius: 0; background: var(--pb-surface); box-shadow: inset 0 0 0 1px var(--pb-separator); box-sizing: border-box; cursor: pointer; -webkit-appearance: none; appearance: none; } .prebook-success__option-input:checked { background: var(--pb-accent); box-shadow: inset 0 0 0 1px var(--pb-accent); } .prebook-success__option-input:checked::after { content: ""; position: absolute; top: 50%; left: 50%; width: 4px; height: 8px; border: solid #fff; border-width: 0 1.5px 1.5px 0; transform: translate(-50%, -58%) rotate(45deg); } .prebook-success__option-input:focus-visible, .prebook-success__option-input:checked:focus-visible { outline: 2px solid var(--pb-accent); outline-offset: 2px; box-shadow: inset 0 0 0 1px var(--pb-accent); } .prebook-success__option-copy { display: flex; flex: 1 1 auto; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 0.55rem; min-width: 0; } .prebook-success__option-label { font-size: 0.875rem; line-height: 1.45; font-weight: 400; color: var(--pb-text); } .prebook-success__option-hint { font-size: 0.6875rem; line-height: 1.2; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pb-label); } .prebook-success__cta { display: flex; flex-direction: column; gap: 12px; margin-top: 2px; padding-top: 14px; border-top: 1px solid var(--pb-separator); } .prebook-success__cta-notice { margin: 0; font-size: 0.8125rem; line-height: 1.5; font-weight: 400; text-align: left; color: var(--pb-label); } .prebook-success__error { margin: 0; padding: 10px 12px; border-radius: 0; background: rgb(196 30 18 / 8%); color: #c41e12; font-size: 0.8125rem; line-height: 1.4; text-align: left; } .prebook-success__btn { width: 100%; height: 48px; border: none; border-radius: 0; background: var(--pb-cta, #2b4666); color: var(--pb-cta-ink, #fff); font-family: var(--pb-font); font-size: 0.75rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; cursor: pointer; box-shadow: none; } .prebook-success__btn:hover:not(:disabled) { background: color-mix(in srgb, var(--pb-cta, #2b4666) 88%, #000); box-shadow: none; } .prebook-success__btn:active:not(:disabled) { transform: none; opacity: 0.94; } .prebook-success__btn:disabled { opacity: 0.72; cursor: wait; } @media (max-width: 520px) { .prebook-modal--success { align-items: center; justify-content: center; padding: max(12px, env(safe-area-inset-top, 0px)) 12px max(12px, env(safe-area-inset-bottom, 0px)); } .prebook-modal__panel--success { width: min(100%, 520px); max-height: min(92dvh, 760px); border-radius: 0; } .prebook-success__content { padding: 22px 18px 8px; } .prebook-success__title { font-size: 1.5rem; } .prebook-success__lead, .prebook-success__disclaimer-lead { font-size: 0.875rem; } .prebook-success__disclaimer { margin-top: 18px; padding: 16px; } .prebook-success__disclaimer-item, .prebook-success__disclaimer-foot, .prebook-success__note-text { font-size: 0.8125rem; } .prebook-success__footer { gap: 12px; padding: 14px 18px calc(16px + env(safe-area-inset-bottom, 0px)); } .prebook-success__option { padding: 12px 14px; } .prebook-success__cta-notice { font-size: 0.75rem; } } .prebook-modal--profile { --sf-bg: var(--color-surface); --sf-fill: var(--color-control); --sf-fill-elevated: var(--color-control-hover); --sf-separator: var(--color-border-subtle); --sf-label: var(--color-text-muted); --sf-text: var(--color-text); --sf-radius-field: 0; --sf-font: "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif; --prebook-profile-preview-width: 360px; } .prebook-modal--profile .prebook-modal__panel:not(.prebook-modal__panel--success) { width: min(100%, 100%); max-height: min(92dvh, 820px); } .prebook-modal--profile.prebook-modal--profile-desktop .prebook-modal__panel:not( .prebook-modal__panel--success ) { width: min(calc(100vw - 48px), 1040px); max-height: min(88dvh, 820px); } .prebook-modal__profile-shell { display: flex; flex-direction: column; gap: 0; min-height: 0; flex: 1 1 auto; } .prebook-modal__profile-column { display: flex; flex-direction: column; min-width: 0; min-height: 0; } .prebook-modal__preview-column { min-width: 0; } .prebook-profile-pane { display: flex; flex: 1 1 auto; flex-direction: column; gap: 12px; min-height: 0; } .prebook-profile-pane__intro { flex-shrink: 0; display: flex; flex-direction: column; gap: 4px; } .prebook-profile-pane__lead { margin: 0; font-size: 17px; line-height: 1.25; font-weight: 650; letter-spacing: -0.02em; color: var(--pb-text); } .prebook-profile-pane__copy { margin: 0; font-size: 14px; line-height: 1.45; letter-spacing: -0.01em; color: var(--pb-text); } .prebook-profile-pane__form { flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scroll-padding-bottom: 20px; } .prebook-profile-pane__form.profile-container--embedded, .profile-container.profile-container--embedded { max-width: none; margin: 0; padding: 0; background: transparent; box-shadow: none; border-radius: 0; } .prebook-profile-pane__form .profile-form-card { gap: 1rem; } .prebook-profile-pane__form .profile-form-group__title { font-family: var(--sf-font); font-size: 13px; } .prebook-profile-pane__form .profile-form-group__body { border-radius: var(--sf-radius-field); background: var(--sf-fill); } .prebook-profile-pane__form .profile-form-field label, .prebook-profile-pane__form .profile-form-toggle-row__label, .prebook-profile-pane__form .profile-form-field input[type="text"], .prebook-profile-pane__form .profile-form-field input[type="email"] { font-family: var(--sf-font); } .prebook-profile-pane__form .profile-country-field__trigger, .prebook-profile-pane__form .intl-phone-input { border: none; border-radius: 10px; background: var(--sf-bg); box-shadow: inset 0 0 0 1px var(--sf-separator); } .prebook-profile-pane__error { flex-shrink: 0; padding: 10px 12px; border-radius: 12px; background: rgb(255 59 48 / 10%); color: #c41e12; font-size: 13px; line-height: 1.4; } .prebook-modal--profile .prebook-country-picker__menu { z-index: 10160; } .prebook-modal--profile .profile-country-sheet { z-index: 10170; } .prebook-modal--profile-desktop .prebook-modal__profile-shell { flex-direction: row; align-items: stretch; min-height: 0; } .prebook-modal--profile-desktop .prebook-modal__profile-column { flex: 1 1 auto; min-width: 0; padding: 4px 28px 10px; border-right: 0.5px solid var(--pb-separator); } .prebook-modal--profile-desktop .prebook-modal__preview-column { flex: 0 0 var(--prebook-profile-preview-width); width: var(--prebook-profile-preview-width); display: flex; align-items: stretch; padding: 20px 24px 24px; background: var(--pb-preview-bg); } .prebook-modal--profile-desktop .prebook-modal__preview-column .prebook-modal__trip { align-self: flex-start; width: 100%; margin: 0; padding: 20px; border-radius: 16px; background: var(--pb-surface); box-shadow: 0 1px 0 rgb(0 0 0 / 4%); } .prebook-modal--profile-desktop .prebook-profile-pane__footer { margin-top: auto; padding: 6px 0 4px; border-top: 0.5px solid var(--pb-separator); background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; } .prebook-modal--profile-mobile .prebook-modal__panel:not(.prebook-modal__panel--success) { display: flex; flex-direction: column; width: 100%; min-height: 0; height: 100%; max-height: 100%; overflow: hidden; border-radius: 20px 20px 0 0; box-shadow: 0 -8px 32px rgb(0 0 0 / 12%); } .prebook-modal--profile-mobile .prebook-modal__toolbar--profile { flex-shrink: 0; justify-content: space-between; gap: 12px; padding: calc(14px + env(safe-area-inset-top, 0px)) 16px 12px; border-bottom: 0.5px solid var(--pb-separator); background: var(--pb-bg); } .prebook-modal--profile-mobile .prebook-modal__toolbar--profile .prebook-modal__title { flex: 1 1 auto; min-width: 0; font-size: 17px; line-height: 1.25; } .prebook-modal--profile-mobile .prebook-modal__profile-scroll { flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scroll-padding-top: 12px; scroll-padding-bottom: 24px; padding: 10px 16px 20px; } .prebook-profile-mobile__instruction { margin: 4px 0 18px; padding: 0; font-family: var(--sf-font); font-size: 14px; font-weight: 400; line-height: 1.5; letter-spacing: -0.01em; color: var(--pb-text); } .prebook-modal--profile-mobile .prebook-modal__trip--profile-inline { margin: 0 0 6px; padding: 14px 16px; } .prebook-modal--profile-mobile .prebook-modal__trip--profile-inline .prebook-modal__price { margin-top: 12px; padding-top: 12px; font-size: 24px; } .prebook-modal--profile-mobile .prebook-modal__profile-form-host { min-width: 0; } .prebook-modal--profile-mobile .prebook-profile-pane { gap: 0; min-height: auto; } .prebook-modal--profile-mobile .prebook-profile-pane--static-form .prebook-profile-pane__form { flex: none; min-height: auto; overflow: visible; } .prebook-modal--profile-mobile .prebook-modal__footer { flex-shrink: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); border-top: 0.5px solid var(--pb-separator); background: var(--pb-footer-bg); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } .prebook-modal--profile-mobile .prebook-profile-pane__form .profile-form-field, .prebook-modal--profile-mobile .prebook-profile-pane__form .profile-form-toggle-row, .prebook-modal--profile-mobile .prebook-profile-pane__form .intl-phone-input, .prebook-modal--profile-mobile .prebook-profile-pane__form .profile-country-field { scroll-margin-top: 12px; scroll-margin-bottom: 16px; } .prebook-modal--profile-mobile .prebook-modal__footer--single .prebook-modal__btn { width: 100%; min-width: 0; height: 50px; border-radius: 14px; font-size: 17px; font-weight: 650; } @media (max-width: 767px) { .prebook-modal--profile-mobile .prebook-profile-pane__form input[type="text"], .prebook-modal--profile-mobile .prebook-profile-pane__form input[type="email"], .prebook-modal--profile-mobile .prebook-profile-pane__form .intl-phone-input__number, .prebook-modal--profile-mobile .profile-country-field__trigger .prebook-country-picker__trigger-label { font-size: 16px; } } .prebook-modal--profile-desktop .prebook-profile-pane { gap: 8px; } .prebook-modal--profile-desktop .prebook-profile-pane__intro { padding-top: 2px; } .prebook-modal--profile-desktop .prebook-modal__toolbar--profile { justify-content: space-between; padding-left: 28px; padding-right: 28px; } .prebook-modal--profile-desktop .prebook-modal__toolbar--profile .prebook-modal__title { font-size: 20px; } .prebook-modal--profile-desktop .prebook-profile-pane__copy { margin: 0 0 2px; padding: 0; font-size: 14px; font-weight: 400; line-height: 1.5; letter-spacing: -0.01em; color: var(--pb-text); } .prebook-modal__footer.prebook-profile-pane__footer { display: flex; flex-direction: column; align-items: center; gap: 8px; } .prebook-modal__footer.prebook-profile-pane__footer .prebook-modal__btn { width: 100%; } .prebook-profile-legal { width: 100%; margin: 0; font-size: 12px; line-height: 1.45; color: var(--pb-secondary); text-align: center; letter-spacing: -0.005em; } .prebook-profile-legal a { color: var(--pb-secondary); text-decoration: underline; text-underline-offset: 2px; text-decoration-color: var(--pb-separator); transition: color 0.15s ease, text-decoration-color 0.15s ease; } .prebook-profile-legal a:hover { color: var(--pb-text); text-decoration-color: currentcolor; } .prebook-modal.prebook-modal--studio { --pb-accent: var(--sp-accent); --pb-radius: 0; --pb-radius-inner: 0; --pb-font: var(--sp-font-body); padding: clamp(16px, 3vw, 36px); font-family: var(--sp-font-body); } .prebook-modal--studio .prebook-modal__panel { --pb-radius: 0; --pb-radius-inner: 0; width: min(100%, 920px); max-height: min(92dvh, 780px); border-radius: 0; background: rgba(255, 255, 255, 0.97); border: 1px solid var(--sp-line); box-shadow: var(--sp-card-shadow-lift); backdrop-filter: blur(18px) saturate(120%); -webkit-backdrop-filter: blur(18px) saturate(120%); } :root[data-theme="dark"] .prebook-modal--studio .prebook-modal__panel:not(.prebook-modal__panel--success) { background: rgba(28, 30, 36, 0.52); } .prebook-modal--studio .prebook-modal__toolbar { align-items: flex-start; padding: 28px 32px 8px; background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom: none; } .prebook-modal--studio .prebook-modal__title { font-family: var(--sp-font-display); font-size: clamp(1.5rem, 2.2vw, 1.85rem); font-weight: 700; font-stretch: 108%; letter-spacing: -0.025em; color: var(--sp-ink); } .prebook-modal--studio .prebook-modal__studio-lead { margin: 0; padding: 0 32px 18px; max-width: 36rem; border-bottom: 1px solid var(--sp-line); font-size: 0.9375rem; line-height: 1.45; color: var(--sp-ink-soft); background: transparent; } .prebook-modal--studio .prebook-modal__close { width: 36px; height: 36px; margin-top: 2px; border-radius: 0; background: transparent; color: var(--sp-ink-soft); font-size: 1.35rem; } .prebook-modal--studio .prebook-modal__close:hover { background: var(--sp-accent-wash); color: var(--sp-ink); } .prebook-modal--studio .prebook-modal__body { padding: 24px 32px 12px; background: transparent; } .prebook-modal--studio .prebook-modal__studio-layout { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: 8px 48px; align-items: start; } .prebook-modal--studio .prebook-modal__studio-col--trip { min-width: 0; padding-right: 8px; border-right: 1px solid var(--sp-line); } .prebook-modal--studio .prebook-modal__studio-col--pax { min-width: 0; padding-left: 4px; } .prebook-modal--studio .prebook-modal__trip { margin: 0 0 8px; padding: 0 0 20px; border-radius: 0; background: none; box-shadow: none; border-bottom: 1px solid var(--sp-line); } .prebook-modal--studio .prebook-modal__route { font-family: var(--sp-font-display); font-size: 1.05rem; font-weight: 650; font-stretch: 105%; letter-spacing: -0.02em; color: var(--sp-ink); } .prebook-modal--studio .prebook-modal__trip-meta { margin-top: 8px; font-size: 0.875rem; color: var(--sp-ink-soft); } .prebook-modal--studio .prebook-modal__price { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--sp-line); font-family: var(--sp-font-display); font-size: 1.75rem; font-weight: 700; letter-spacing: -0.03em; color: var(--sp-ink); } .prebook-modal--studio .prebook-modal__group { margin-top: 0; border-radius: 0; background: none; box-shadow: none; } .prebook-modal--studio .prebook-modal__row--passengers { min-height: 0; padding: 16px 0; border-bottom: none; } .prebook-modal--studio .prebook-modal__row-label { font-family: var(--sp-font-display); font-size: 0.9375rem; font-weight: 650; letter-spacing: -0.015em; color: var(--sp-ink); } .prebook-modal--studio .prebook-modal__row-hint { color: var(--sp-ink-soft); } .prebook-modal--studio .prebook-modal__stepper { border: none; background: transparent; gap: 4px; } .prebook-modal--studio .prebook-modal__stepper-btn { width: 32px; height: 32px; border: none; border-radius: 50%; background: transparent; color: var(--sp-ink-soft); } .prebook-modal--studio .prebook-modal__stepper-btn:hover:not(:disabled) { background: var(--sp-accent-wash); color: var(--sp-accent-deep); } .prebook-modal--studio .prebook-modal__stepper-value { font-family: var(--sp-font-display); font-size: 1.125rem; font-weight: 700; color: var(--sp-ink); } .prebook-modal--studio .prebook-modal__citizenship-section { margin: 0; } .prebook-modal--studio .prebook-modal__citizenship-title { font-family: var(--sp-font-display); font-size: 1.15rem; font-weight: 700; font-stretch: 105%; letter-spacing: -0.02em; color: var(--sp-ink); } .prebook-modal--studio .prebook-modal__citizenship-subtitle { margin: 6px 0 18px; font-size: 0.875rem; color: var(--sp-ink-soft); } .prebook-modal--studio .prebook-modal__citizenship-card { padding: 0; border: none; border-radius: 0; background: transparent; box-shadow: none; } .prebook-modal--studio .prebook-modal__citizenship-empty { padding: 14px 0; border-top: 1px solid var(--sp-line); border-bottom: 1px solid var(--sp-line); } .prebook-modal--studio .prebook-modal__citizenship-empty-text { color: var(--sp-ink-soft); } .prebook-modal--studio .prebook-modal__citizenship-list { border-top: 1px solid var(--sp-line); } .prebook-modal--studio .prebook-modal__citizenship-item { padding: 14px 0; border-bottom: 1px solid var(--sp-line); } .prebook-modal--studio .prebook-modal__citizenship-item-value { font-weight: 650; color: var(--sp-ink); } .prebook-modal--studio .prebook-modal__citizenship-add { margin-top: 16px; border: 1px solid var(--sp-line); border-radius: 0; background: transparent; color: var(--sp-accent-deep); } .prebook-modal--studio .prebook-modal__citizenship-add:hover:not(:disabled) { border-color: var(--sp-accent); background: var(--sp-accent-wash); } .prebook-modal--studio .prebook-modal__citizenship-add-icon { background: var(--sp-accent); color: #fff; } .prebook-modal--studio .prebook-modal__citizenship-footnote { margin-top: 14px; font-size: 0.78rem; color: var(--sp-ink-faint); } .prebook-modal--studio .prebook-modal__footer { display: flex; justify-content: flex-end; grid-template-columns: none; gap: 8px; padding: 16px 32px 24px; border-top: 1px solid var(--sp-line); background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; } .prebook-modal--studio .prebook-modal__btn { min-height: 44px; width: auto; min-width: 0; padding: 0 18px; border-radius: 0; border: none; box-shadow: none; font-family: var(--sp-font-body); font-size: 0.75rem; font-weight: var(--sp-weight-label, 500); letter-spacing: 0.16em; text-transform: uppercase; } .prebook-modal--studio .prebook-modal__btn--ghost { background: transparent; color: var(--sp-ink-soft); } .prebook-modal--studio .prebook-modal__btn--ghost:hover:not(:disabled) { background: transparent; color: var(--sp-ink); } .prebook-modal--studio .prebook-modal__btn--primary { background: var(--sp-cta); color: var(--sp-cta-ink); } .prebook-modal--studio .prebook-modal__btn--primary:hover:not(:disabled) { background: color-mix(in srgb, var(--sp-cta) 88%, #000); } @media (max-width: 800px) { .prebook-modal--studio .prebook-modal__studio-layout { grid-template-columns: 1fr; gap: 20px; } .prebook-modal--studio .prebook-modal__studio-col--trip { padding-right: 0; border-right: none; padding-bottom: 8px; border-bottom: 1px solid var(--sp-line); } .prebook-modal--studio .prebook-modal__studio-col--pax { padding-left: 0; } .prebook-modal--studio .prebook-modal__toolbar, .prebook-modal--studio .prebook-modal__studio-lead, .prebook-modal--studio .prebook-modal__body, .prebook-modal--studio .prebook-modal__footer { padding-left: 20px; padding-right: 20px; } } .profile-container { --sf-bg: var(--color-surface); --sf-fill: var(--color-control); --sf-fill-elevated: var(--color-control-hover); --sf-separator: var(--color-border-subtle); --sf-label: var(--color-text-muted); --sf-text: var(--color-text); --sf-radius-shell: 16px; --sf-radius-field: 10px; --sf-radius-control: 10px; --pf-row-h: 44px; --pf-pad-x: 0.875rem; --pf-pad-y: 0.5rem; --sf-shadow: var(--shadow-surface); --sf-font: -apple-system, blinkmacsystemfont, "SF Pro Text", "SF Pro Display", system-ui, sans-serif; max-width: none; margin: 0 0 2rem; padding: 1.125rem; background: var(--sf-bg); border: none; border-radius: var(--sf-radius-shell); box-shadow: var(--sf-shadow); font-family: var(--sf-font); } .profile-page .profile-booking-banner-host { margin-bottom: 0.75rem; } .profile-segment .tab-check-icon, .profile-segment .tab-incomplete-icon { display: inline-flex; align-items: center; font-size: 12px; line-height: 1; } .profile-segment .tab-check-icon { color: #34c759; } .profile-segment .tab-incomplete-icon { color: #ff9500; } .profile-segment .tab-check-icon[hidden], .profile-segment .tab-incomplete-icon[hidden] { display: none; } .profile-tab-content { display: none; } .profile-tab-content.active { display: block; } .form-section { margin-bottom: 0; } .profile-form-card { display: flex; flex-direction: column; gap: 1.125rem; } .profile-form-group__title { margin: 0 0 0.25rem; padding: 0 0.125rem; font-family: var(--sf-font); font-size: 12px; font-weight: 600; letter-spacing: 0.02em; color: var(--sf-label); } .profile-form-group__hint { margin: 0 0 0.375rem; padding: 0 0.125rem; font-family: var(--sf-font); font-size: 11px; line-height: 1.35; color: var(--sf-label); } .profile-form-group__footnote { margin: 0.5rem 0 0; padding: 0 0.125rem; font-family: var(--sf-font); font-size: 12px; line-height: 1.4; color: var(--sf-label); } .profile-form-group { margin: 0; } .profile-form-group__body { overflow: hidden; border-radius: var(--sf-radius-field); background: var(--sf-fill); } .profile-form-field { display: flex; flex-direction: column; align-items: stretch; gap: 0.3125rem; padding: 0.5625rem 0.75rem; } .profile-form-field label { display: block; margin: 0; font-family: var(--sf-font); font-size: 11px; font-weight: 600; letter-spacing: 0.01em; line-height: 1.2; color: var(--sf-label); } .profile-form-field input[type="text"], .profile-form-field input[type="email"] { width: 100%; margin: 0; padding: 0.5rem 0.625rem; border: none; border-radius: 8px; background: var(--sf-bg); color: var(--sf-text); font-family: var(--sf-font); font-size: 15px; font-weight: 400; letter-spacing: -0.018em; line-height: 1.3; text-align: left; box-shadow: inset 0 0 0 1px var(--sf-separator); transition: background 0.2s ease, box-shadow 0.2s ease; } .profile-form-field input[type="text"]::placeholder, .profile-form-field input[type="email"]::placeholder { color: var(--color-text-faint); } .profile-form-field input[type="text"]:focus, .profile-form-field input[type="email"]:focus { outline: none; background: var(--sf-bg); box-shadow: inset 0 0 0 1px var(--primary), 0 0 0 3px var(--primary-light); } .profile-form-field input[type="text"].is-invalid, .profile-form-field input[type="email"].is-invalid { background: rgb(255 59 48 / 4%); box-shadow: inset 0 0 0 1px rgb(255 59 48 / 55%), 0 0 0 3px rgb(255 59 48 / 10%); } .profile-form-field input[type="text"].is-invalid:focus, .profile-form-field input[type="email"].is-invalid:focus { box-shadow: inset 0 0 0 1px rgb(255 59 48 / 65%), 0 0 0 3px rgb(255 59 48 / 14%); } .profile-form-field__error { margin: 0.125rem 0 0; font-size: 12px; line-height: 1.35; color: #b42318; } .profile-form-toggle-row.is-disabled { opacity: 0.45; cursor: default; } .profile-form-toggle-row.is-disabled .profile-form-toggle-row__input[type="checkbox"] { cursor: default; } .profile-country-field.is-disabled .profile-country-field__trigger { opacity: 0.55; cursor: not-allowed; } .profile-form-field + .profile-form-field, .profile-form-field + .profile-form-toggle-row, .profile-form-toggle-row + .profile-form-field { border-top: 1px solid var(--sf-separator); } .profile-form-field.is-collapsed { display: none; } .profile-form-field--phone .intl-phone-input-host, .profile-form-field--phone .intl-phone-input { width: min(100%, var(--pf-phone-width, 21rem)); max-width: var(--pf-phone-width, 21rem); } .profile-form-group--phones .profile-form-group__body { --pf-phone-width: 21rem; } .profile-form-toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin: 0; min-height: 42px; padding: 0.5rem 0.75rem; border-top: 1px solid var(--sf-separator); cursor: pointer; user-select: none; } .profile-form-toggle-row__label { flex: 1; min-width: 0; font-family: var(--sf-font); font-size: 14px; font-weight: 400; letter-spacing: -0.01em; line-height: 1.3; color: var(--sf-text); } .profile-form-toggle-row__check { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; margin-right: -0.375rem; } .profile-container .profile-form-toggle-row__input[type="checkbox"] { appearance: none; -webkit-appearance: none; position: relative; display: block; flex: 0 0 auto; width: 51px; height: 31px; min-width: 51px; min-height: 31px; max-width: 51px; max-height: 31px; margin: 0; padding: 0; border: none; border-radius: 31px; background: rgba(120, 120, 128, 0.16); box-shadow: none; box-sizing: border-box; line-height: 0; font-size: 0; cursor: pointer; transition: background 0.22s cubic-bezier(0.4, 0, 0.2, 1); } .profile-container .profile-form-toggle-row__input[type="checkbox"]::before { content: ""; position: absolute; top: 2px; left: 2px; width: 27px; height: 27px; border-radius: 50%; background: #fff; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15), 0 1px 1px rgba(0, 0, 0, 0.06); transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1); } .profile-container .profile-form-toggle-row__input[type="checkbox"]:checked { background: var(--primary); box-shadow: none; } .profile-container .profile-form-toggle-row__input[type="checkbox"]:checked::before { transform: translateX(20px); } .profile-container .profile-form-toggle-row__input[type="checkbox"]:checked::after { content: none; } .profile-form-group--consent .profile-form-group__body--consent { padding: 0.25rem; background: var(--sf-fill); } .profile-form-group--consent .consent-checkboxes { display: flex; flex-direction: column; gap: 0.25rem; margin: 0; } .profile-form-group--consent .consent-checkbox-option { margin: 0; padding: 0.625rem 0.75rem; gap: 0.625rem; } .profile-form-group--consent .consent-checkbox-option label { font-size: 13px; line-height: 1.35; } .profile-form-group--consent .consent-disclaimer { margin-top: 0.5rem; padding: 0.625rem 0.75rem; font-size: 12px; } .profile-form-actions { display: flex; justify-content: flex-end; align-items: center; margin-top: 0.25rem; padding-top: 0.75rem; } .profile-form-actions .btn-primary { margin-top: 0; width: auto; min-height: 36px; padding: 0.4375rem 1.125rem; font-size: 14px; font-weight: 600; letter-spacing: -0.01em; white-space: nowrap; } .profile-form-card--page { display: flex; flex-direction: column; gap: 1rem; } .profile-form-card--page .profile-form-card--embedded { box-shadow: none; padding: 0; margin: 0; max-width: none; } .profile-form-error, .prebook-profile-pane__error { flex-shrink: 0; padding: 10px 12px; border-radius: 12px; background: rgb(255 59 48 / 10%); color: #c41e12; font-size: 13px; line-height: 1.4; } .section-title { margin: 0 0 1.25rem; font-family: var(--sf-font); font-size: 15px; font-weight: 600; letter-spacing: -0.02em; color: var(--sf-text); gap: 0.5rem; } .section-title i { color: var(--sf-label); font-size: 14px; } .profile-container .form-group { margin-bottom: 1rem; } .profile-container .form-group label, .profile-container .consent-section .section-label { display: block; margin-bottom: 0.375rem; font-family: var(--sf-font); font-size: 11px; font-weight: 600; letter-spacing: 0.01em; color: var(--sf-label); } .profile-container #questionnaire-section .section-title { display: none; } .profile-container .questionnaire-form { display: flex; flex-direction: column; gap: 1.125rem; margin: 0; } .profile-container .questionnaire-form .questionnaire-block { margin: 0; display: flex; flex-direction: column; gap: 0.3125rem; } .profile-container .questionnaire-form .questionnaire-block > label { margin: 0; padding: 0 0.125rem; font-family: var(--sf-font); font-size: 13px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.4; color: var(--sf-text); } .profile-container .questionnaire-form .radio-group, .profile-container .questionnaire-form .checkbox-group-vertical { display: flex; flex-direction: column; gap: 0; margin: 0; overflow: hidden; border-radius: var(--sf-radius-field); background: var(--sf-fill); } .profile-container .questionnaire-form .radio-option, .profile-container .questionnaire-form .checkbox-option { margin: 0; padding: 0.6875rem 0.875rem; border: none; border-radius: 0; background: transparent; box-shadow: none; } .profile-container .questionnaire-form .radio-option:not(:last-child), .profile-container .questionnaire-form .checkbox-option:not(:last-child) { border-bottom: 1px solid var(--sf-separator); } .profile-container .questionnaire-form .radio-option:hover, .profile-container .questionnaire-form .checkbox-option:hover { background: var(--color-highlight); } .profile-container .questionnaire-form .radio-option.selected, .profile-container .questionnaire-form .checkbox-option.selected, .profile-container .questionnaire-form .checkbox-option:has(input[type="checkbox"]:checked) { background: var(--sf-bg); box-shadow: none; } .profile-container .questionnaire-form .radio-option label, .profile-container .questionnaire-form .checkbox-option label { font-size: 14px; line-height: 1.35; } .profile-container .questionnaire-form > .btn-primary, .profile-container .questionnaire-form > button[type="submit"] { margin-top: 0.25rem; width: auto; min-height: 36px; padding: 0.4375rem 1.125rem; font-size: 14px; font-weight: 600; letter-spacing: -0.01em; } .profile-container .section-completed .questionnaire-form .radio-option, .profile-container .section-completed .questionnaire-form .checkbox-option { background: transparent; box-shadow: none; } .profile-container .section-completed .questionnaire-form .radio-option.selected, .profile-container .section-completed .questionnaire-form .checkbox-option.selected, .profile-container .section-completed .questionnaire-form .checkbox-option:has(input[type="checkbox"]:checked) { background: var(--color-highlight); } .profile-container .form-group input, .profile-container .form-group select { width: 100%; padding: 0.75rem 0.875rem; border: none; border-radius: var(--sf-radius-field); background: var(--sf-fill); color: var(--sf-text); font-family: var(--sf-font); font-size: 17px; font-weight: 400; letter-spacing: -0.022em; line-height: 1.235; transition: background 0.2s ease, box-shadow 0.2s ease; } .profile-container .form-group input::placeholder { color: var(--color-text-faint); } .profile-container .form-group input:focus, .profile-container .form-group select:focus { outline: none; background: var(--sf-bg); box-shadow: 0 0 0 3px var(--primary-light), inset 0 0 0 1px rgba(0, 194, 168, 0.45); } .profile-container .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.875rem; } .profile-container .checkbox-group { margin-top: 0.625rem; gap: 0.5rem; } .profile-container .checkbox-group label { margin-bottom: 0; font-size: 13px; font-weight: 400; color: var(--sf-text); letter-spacing: -0.01em; } .profile-container .checkbox-group input[type="checkbox"], .profile-container .checkbox-option input[type="checkbox"], .profile-container .consent-checkbox-option input[type="checkbox"] { appearance: none; position: relative; width: 20px; height: 20px; min-width: 20px; min-height: 20px; max-width: 20px; max-height: 20px; margin: 0; padding: 0; cursor: pointer; border: none; border-radius: 6px; background: var(--sf-fill-elevated); box-shadow: inset 0 0 0 1px rgba(60, 60, 67, 0.18); transition: background 0.2s ease, box-shadow 0.2s ease; } .profile-container .profile-form-group__body .consent-checkbox-option input[type="checkbox"]:checked, .profile-container .checkbox-group input[type="checkbox"]:checked, .profile-container .checkbox-option input[type="checkbox"]:checked, .profile-container .consent-checkbox-option input[type="checkbox"]:checked { background: var(--primary); box-shadow: none; } .profile-container .checkbox-group input[type="checkbox"]:checked::after, .profile-container .checkbox-option input[type="checkbox"]:checked::after, .profile-container .consent-checkbox-option input[type="checkbox"]:checked::after { content: ""; position: absolute; top: 50%; left: 50%; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: translate(-50%, -60%) rotate(45deg); } .profile-container .radio-group { gap: 0.5rem; margin-top: 0.5rem; } .profile-container .radio-option, .profile-container .checkbox-option, .profile-container .consent-checkbox-option { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.875rem 1rem; border: none; border-radius: var(--sf-radius-field); background: var(--sf-fill); cursor: pointer; transition: background 0.2s ease, box-shadow 0.2s ease; } .profile-container .radio-option:hover, .profile-container .checkbox-option:hover, .profile-container .consent-checkbox-option:hover { background: var(--sf-fill-elevated); } .profile-container .radio-option.selected, .profile-container .checkbox-option.selected, .profile-container .consent-checkbox-option:has(input[type="checkbox"]:checked) { background: transparent; box-shadow: none; } .profile-container .radio-option input[type="radio"] { appearance: none; width: 20px; height: 20px; min-width: 20px; min-height: 20px; margin: 0.125rem 0 0; padding: 0; cursor: pointer; border: none; border-radius: 50%; background: var(--sf-fill-elevated); box-shadow: inset 0 0 0 1px rgba(60, 60, 67, 0.18); transition: background 0.2s ease, box-shadow 0.2s ease; } .profile-container .radio-option input[type="radio"]:checked { background: var(--primary); box-shadow: inset 0 0 0 4px var(--sf-bg); } .profile-container .radio-option label, .profile-container .checkbox-option label, .profile-container .consent-checkbox-option label { margin: 0; flex: 1; font-family: var(--sf-font); font-size: 15px; font-weight: 400; letter-spacing: -0.01em; line-height: 1.4; color: var(--sf-text); cursor: pointer; } .profile-container .consent-section { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--sf-separator); } .profile-container .profile-form-group--consent { margin-top: 0; padding-top: 0; border-top: none; } .profile-container .consent-checkboxes { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 0.875rem; } .profile-container .consent-disclaimer { padding: 0.875rem 1rem; border: none; border-radius: var(--sf-radius-field); background: rgba(255, 149, 0, 0.08); font-family: var(--sf-font); font-size: 13px; line-height: 1.5; color: rgba(60, 60, 67, 0.85); } .profile-container .consent-disclaimer a { color: var(--primary); font-weight: 500; text-decoration: none; } .profile-container .consent-disclaimer a:hover { text-decoration: underline; } .profile-container .btn-primary { margin-top: 1.25rem; min-height: 48px; padding: 0.75rem 1.75rem; border: none; border-radius: 980px; background: var(--primary); box-shadow: none; color: var(--white); font-family: var(--sf-font); font-size: 17px; font-weight: 600; letter-spacing: -0.022em; transition: background 0.2s ease, transform 0.15s ease, opacity 0.2s ease; } .profile-container .btn-primary:hover { background: var(--primary-hover); transform: none; box-shadow: none; } .profile-container .btn-primary:active { transform: scale(0.98); opacity: 0.92; } .profile-container .btn-primary:disabled { background: rgba(60, 60, 67, 0.18); color: rgba(60, 60, 67, 0.55); border: none; opacity: 1; box-shadow: none; transform: none; } .profile-container .btn-primary:disabled:hover { background: rgba(60, 60, 67, 0.18); transform: none; box-shadow: none; } .profile-container .alert { padding: 0.875rem 1rem; margin-bottom: 1rem; border: none; border-radius: var(--sf-radius-field); font-family: var(--sf-font); font-size: 14px; line-height: 1.4; } .profile-container .alert-warning { background: rgba(255, 149, 0, 0.1); color: rgba(60, 60, 67, 0.9); } .profile-container .alert-success { background: rgba(52, 199, 89, 0.12); color: rgba(28, 80, 45, 0.95); } .profile-container .alert-error { background: rgba(255, 59, 48, 0.1); color: rgba(120, 30, 25, 0.95); } .profile-container .section-locked { opacity: 0.45; pointer-events: none; } .profile-container .section-completed { opacity: 0.65; pointer-events: none; } .profile-container .section-completed .radio-option, .profile-container .section-completed .checkbox-option { cursor: not-allowed; background: var(--sf-fill); } .profile-container .section-completed .radio-option:hover, .profile-container .section-completed .checkbox-option:hover { background: var(--sf-fill); box-shadow: none; } .profile-container .checkbox-group-vertical { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem; } .profile-container .loading-spinner { display: inline-block; width: 18px; height: 18px; border: 2px solid var(--sf-fill-elevated); border-top-color: var(--primary); border-radius: 50%; animation: pf-spin 1s linear infinite; } @keyframes pf-spin { to { transform: rotate(360deg); } } @media (min-width: 768px) { .profile-page .profile-container { padding: 0 1rem 2rem; } body:not(.profile-page) .profile-form-card--page { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1.5rem; align-items: start; } body:not(.profile-page) .profile-form-card--page #profile-form-host { display: contents; } body:not(.profile-page) .profile-form-card--page .profile-form-group--phones, body:not(.profile-page) .profile-form-card--page .profile-form-group--consent, body:not(.profile-page) .profile-form-card--page #profile-form-error, body:not(.profile-page) .profile-form-card--page .profile-form-actions { grid-column: 1 / -1; } .profile-form-group--phones .profile-form-group__body { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 2rem; } .profile-form-group--phones .profile-form-field--phone { flex: 0 1 auto; width: min(100%, var(--pf-phone-width, 21rem)); max-width: var(--pf-phone-width, 21rem); padding-right: 0; } .profile-form-group--phones .profile-form-toggle-row { flex: 1 1 100%; } .profile-form-group--phones .profile-form-group__body:has(.profile-form-field.is-collapsed) { gap: 0; } body:not(.profile-page) .profile-container .questionnaire-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1.5rem; align-items: start; } body:not(.profile-page) .profile-container .questionnaire-form > .btn-primary, body:not(.profile-page) .profile-container .questionnaire-form > button[type="submit"] { grid-column: 1 / -1; justify-self: end; margin-top: 0; } } @media (min-width: 1024px) { body:not(.profile-page) .profile-form-card--page { grid-template-columns: repeat(3, minmax(0, 1fr)); } body:not(.profile-page) .profile-form-card--page .profile-form-group--phones { grid-column: auto; } body:not(.profile-page) .profile-form-card--page .profile-form-group--consent, body:not(.profile-page) .profile-form-card--page #profile-form-error, body:not(.profile-page) .profile-form-card--page .profile-form-actions { grid-column: 1 / -1; } .profile-form-group--phones .profile-form-group__body { display: block; } .profile-form-group--phones .profile-form-field--phone { width: 100%; max-width: none; } .profile-form-group--phones .profile-form-field--phone .intl-phone-input-host, .profile-form-group--phones .profile-form-field--phone .intl-phone-input { width: 100%; max-width: none; } } @media (max-width: 767px) { .profile-container { max-width: none; margin: 0.75rem 0 1.5rem; padding: 1rem; border-radius: 14px; } .profile-form-field--phone .intl-phone-input-host, .profile-form-field--phone .intl-phone-input { width: 100%; max-width: none; } .profile-form-card { gap: 1rem; } .profile-form-field input[type="text"], .profile-form-field input[type="email"], .profile-container .profile-form-group__body .intl-phone-input__number, .profile-form-field .profile-country-field__trigger, .profile-form-field .profile-country-field__trigger .prebook-country-picker__trigger-label { font-size: 16px; } .profile-form-field, .profile-form-field .intl-phone-input, .profile-form-field .profile-country-field, .profile-container .form-group { scroll-margin-top: 12px; scroll-margin-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); } body.profile-page.profile-keyboard-open { overscroll-behavior: none; } .profile-form-field:has(.intl-phone-input-host) .intl-phone-input, .profile-form-field:has(.intl-phone-input-host) .intl-phone-input:focus-within { box-shadow: inset 0 0 0 1px rgba(0, 194, 168, 0.45); transform: none; } .profile-form-field:has(.intl-phone-input-host) .intl-phone-input__flag .flag-icon { transform: none; } .profile-container .profile-form-toggle-row__input[type="checkbox"] { width: 51px; height: 31px; min-width: 51px; min-height: 31px; max-width: 51px; max-height: 31px; padding: 0; } .profile-container .form-row { grid-template-columns: 1fr; gap: 0; } .profile-container .form-group input, .profile-container .form-group select { font-size: 16px; } .profile-container .radio-option label, .profile-container .checkbox-option label, .profile-container .consent-checkbox-option label { font-size: 14px; } .profile-container .btn-primary { width: 100%; justify-content: center; } .profile-container .profile-form-actions .btn-primary, .profile-container .questionnaire-form > button[type="submit"] { width: auto; min-height: 40px; padding: 0.5rem 1.125rem; } body.profile-page .profile-container .btn-primary { width: auto; justify-content: center; } } .profile-form-field--error > label { color: #b42318; } .profile-form-field--error .profile-country-field.is-invalid .profile-country-field__trigger, .profile-form-field--error .profile-country-field__trigger.is-invalid { background: rgb(255 59 48 / 4%); box-shadow: inset 0 0 0 1px rgb(255 59 48 / 55%), 0 0 0 3px rgb(255 59 48 / 10%); } .profile-form-field--error .profile-country-field__error { margin: 0.125rem 0 0; font-size: 12px; line-height: 1.35; color: #b42318; } .profile-form-field--error-animate { animation: profile-form-field-error-enter 0.35s ease; } @keyframes profile-form-field-error-enter { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-3px); } 40% { transform: translateX(3px); } 60% { transform: translateX(-2px); } 80% { transform: translateX(2px); } } .profile-form-group--error > .profile-form-group__title { color: #b42318; } .profile-form-group--consent.profile-form-group--error .consent-checkbox-option.is-invalid { background: rgb(255 59 48 / 5%); box-shadow: inset 0 0 0 1px rgb(255 59 48 / 42%); } .profile-form-field--error .profile-phone-verify__status--note, .profile-form-field--error .profile-phone-verify__status--error { color: #b42318; font-weight: 500; } .profile-phone-verify-host { margin-top: 0.375rem; } .profile-phone-verify { display: flex; flex-direction: column; gap: 0.375rem; } .profile-phone-verify__btn { align-self: flex-start; min-height: 34px; padding: 0.375rem 0.875rem; border: 0.5px solid var(--color-border-strong); border-radius: 980px; background: var(--color-surface-glass); color: var(--sf-text); font-family: var(--sf-font, -apple-system, blinkmacsystemfont, system-ui, sans-serif); font-size: 13px; font-weight: 500; letter-spacing: -0.01em; cursor: pointer; transition: background 0.2s ease, border-color 0.2s ease, opacity 0.2s ease; box-shadow: var(--shadow-surface-sm); } .profile-phone-verify__btn:hover:not(:disabled) { background: var(--color-control-hover); border-color: var(--color-border-strong); } .profile-phone-verify__btn:active:not(:disabled) { background: var(--color-control-active); } .profile-phone-verify__btn:disabled { opacity: 0.45; cursor: not-allowed; } .profile-phone-verify__status { margin: 0; font-family: var(--sf-font, -apple-system, blinkmacsystemfont, system-ui, sans-serif); font-size: 13px; line-height: 1.4; } .profile-phone-verify__status--verified { display: inline-flex; align-items: center; gap: 0.4375rem; color: var(--color-text-secondary); font-weight: 500; } .profile-phone-verify__check { position: relative; flex: 0 0 16px; width: 16px; height: 16px; border-radius: 50%; background: var(--color-control-hover); } .profile-phone-verify__check::after { content: ""; position: absolute; top: 3px; left: 5px; width: 4px; height: 7px; border-right: 1.5px solid var(--sf-text); border-bottom: 1.5px solid var(--sf-text); transform: rotate(45deg); } .profile-phone-verify__status--note { color: var(--color-text-muted); } .profile-phone-verify__status--error { color: #b42318; } @media (max-width: 640px) { .profile-phone-verify__btn { width: 100%; justify-content: center; } } .profile-container .profile-form-group__body .intl-phone-input { background: var(--sf-bg); border-radius: 8px; box-shadow: inset 0 0 0 1px var(--sf-separator); min-height: 38px; align-items: stretch; } .profile-container .profile-form-group__body .intl-phone-input:focus-within { background: var(--sf-bg); box-shadow: inset 0 0 0 1px rgba(0, 122, 255, 0.4), 0 0 0 3px rgba(0, 122, 255, 0.1); } body.profile-page .profile-form-group__body .intl-phone-input { border-radius: 10px; background: var(--color-control); box-shadow: inset 0 0 0 1px var(--color-border-subtle); min-height: 46px; } body.profile-page .profile-form-group__body .intl-phone-input:focus-within { background: var(--color-surface); box-shadow: inset 0 0 0 1.5px var(--primary), 0 0 0 4px var(--primary-light); } body.profile-page .profile-form-group__body .intl-phone-input__number { font-size: 17px; letter-spacing: -0.022em; color: var(--color-text); } body.profile-page .profile-form-group__body .intl-phone-input__number::placeholder { color: var(--color-text-faint); } body.profile-page .profile-form-group__body .intl-phone-input__dial { font-size: 16px; font-weight: 500; color: var(--color-text); } body.profile-page .profile-form-field--error .intl-phone-input.is-invalid { background: rgb(255 59 48 / 6%); box-shadow: inset 0 0 0 1.5px rgb(255 59 48 / 62%), 0 0 0 4px rgb(255 59 48 / 10%); } body.profile-page .profile-form-field--error .intl-phone-input.is-invalid:focus-within { background: var(--color-surface); box-shadow: inset 0 0 0 1.5px rgb(255 59 48 / 72%), 0 0 0 4px rgb(255 59 48 / 14%); } body.profile-page .profile-form-field--error .intl-phone-input__error { color: #d70015; font-weight: 500; } .profile-container .profile-form-group__body .intl-phone-input__code { padding: 0.4375rem 0.5rem 0.4375rem 0.625rem; border-radius: 8px 0 0 8px; font-size: 14px; gap: 0.3125rem; } .profile-container .profile-form-group__body .intl-phone-input__flag { width: 20px; height: 14px; } .profile-container .profile-form-group__body .intl-phone-input__flag .flag-icon { transform: scale(1.08); } .profile-container .profile-form-group__body .intl-phone-input__dial { min-width: 1.875rem; } .profile-container .profile-form-group__body .intl-phone-input__chevron { font-size: 10px; } .profile-container .profile-form-group__body .intl-phone-input__number { padding: 0.4375rem 0.625rem 0.4375rem 0.5rem; border-radius: 0 8px 8px 0; font-size: 15px; text-align: left; } .profile-container .intl-phone-input-host { margin: 0; } .profile-container .intl-phone-input-host .intl-phone-input__error { padding: 0 0 0.25rem; } .profile-container .intl-phone-input { position: relative; display: flex; align-items: stretch; gap: 0; border-radius: var(--sf-radius-field); background: var(--sf-fill); box-shadow: inset 0 0 0 1px transparent; transition: background 0.2s ease, box-shadow 0.2s ease; } .profile-container .intl-phone-input:focus-within { background: var(--sf-bg); box-shadow: 0 0 0 3px rgba(0, 194, 168, 0.14), inset 0 0 0 1px rgba(0, 194, 168, 0.22); } .profile-container .intl-phone-input.is-invalid { box-shadow: 0 0 0 3px rgba(255, 59, 48, 0.12), inset 0 0 0 1px rgba(255, 59, 48, 0.35); } .profile-container .intl-phone-input.is-disabled { opacity: 0.55; pointer-events: none; } .profile-container .intl-phone-input__code { display: inline-flex; align-items: center; gap: 0.375rem; flex-shrink: 0; margin: 0; padding: 0.75rem 0.625rem 0.75rem 0.875rem; border: none; border-right: 1px solid var(--sf-separator); border-radius: var(--sf-radius-field) 0 0 var(--sf-radius-field); background: transparent; color: var(--sf-text); font-family: var(--sf-font); font-size: 16px; font-weight: 500; letter-spacing: -0.02em; cursor: pointer; transition: background 0.2s ease; } .profile-container .intl-phone-input__code:hover { background: var(--color-control-hover); } .profile-container .intl-phone-input__code:focus-visible { outline: none; background: rgba(0, 194, 168, 0.08); } .profile-container .intl-phone-input__flag { display: inline-flex; width: 22px; height: 16px; align-items: center; justify-content: center; overflow: hidden; border-radius: 3px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08); } .profile-container .intl-phone-input__flag .flag-icon { transform: scale(1.15); } .profile-container .intl-phone-input__placeholder-flag { display: inline-block; width: 22px; height: 16px; border-radius: 3px; background: linear-gradient(180deg, var(--color-control), var(--color-surface-strong)); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08); } .profile-container .intl-phone-input.is-unknown-region .intl-phone-input__dial { color: var(--sf-label); } .profile-container .intl-phone-input__dial { min-width: 2.25rem; text-align: left; white-space: nowrap; } .profile-container .intl-phone-input__chevron { color: var(--sf-label); font-size: 11px; line-height: 1; } .profile-container .intl-phone-input__number { flex: 1; min-width: 0; margin: 0; padding: 0.75rem 0.875rem 0.75rem 0.75rem; border: none; border-radius: 0 var(--sf-radius-field) var(--sf-radius-field) 0; background: transparent; color: var(--sf-text); font-family: var(--sf-font); font-size: 17px; font-weight: 400; letter-spacing: -0.022em; } .profile-container .intl-phone-input__number::placeholder { color: var(--color-text-faint); } .profile-container .intl-phone-input__number:focus { outline: none; } .profile-container .intl-phone-input__hidden { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; } .profile-container .intl-phone-input__error { margin-top: 0.375rem; font-family: var(--sf-font); font-size: 12px; line-height: 1.35; color: #ff3b30; } .intl-phone-menu { position: fixed; z-index: 10200; display: flex; flex-direction: column; overflow: hidden; border-radius: 14px; background: var(--color-surface-glass-strong); box-shadow: var(--shadow-surface-lg); backdrop-filter: blur(20px); } .intl-phone-menu__search-wrap { padding: 0.625rem 0.75rem 0.5rem; border-bottom: 1px solid var(--sf-separator, rgba(60, 60, 67, 0.14)); } .intl-phone-menu__search { width: 100%; margin: 0; padding: 0.625rem 0.75rem; border: none; border-radius: 10px; background: var(--color-control); color: var(--color-text); font-family: -apple-system, blinkmacsystemfont, "SF Pro Text", system-ui, sans-serif; font-size: 16px; } .intl-phone-menu__search:focus { outline: none; box-shadow: 0 0 0 3px rgba(0, 194, 168, 0.14); } .intl-phone-menu__options { overflow-y: auto; overscroll-behavior: contain; padding: 0.25rem; } .intl-phone-menu__option { display: flex; align-items: center; gap: 0.75rem; width: 100%; padding: 0.625rem 0.75rem; border: none; border-radius: 10px; background: transparent; color: var(--color-text); font-family: -apple-system, blinkmacsystemfont, "SF Pro Text", system-ui, sans-serif; font-size: 15px; text-align: left; cursor: pointer; transition: background 0.15s ease; } .intl-phone-menu__option:hover, .intl-phone-menu__option:focus-visible { background: rgba(0, 194, 168, 0.08); outline: none; } .intl-phone-menu__option-flag { flex-shrink: 0; } .intl-phone-menu__option-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .intl-phone-menu__option-dial { flex-shrink: 0; color: var(--color-text-muted); font-size: 14px; font-variant-numeric: tabular-nums; } .intl-phone-menu__empty { padding: 1rem 0.75rem; color: var(--color-text-muted); font-family: -apple-system, blinkmacsystemfont, "SF Pro Text", system-ui, sans-serif; font-size: 14px; text-align: center; } .intl-phone-sheet { position: fixed; inset: 0; z-index: 10200; display: flex; flex-direction: column; justify-content: flex-end; } .intl-phone-sheet__backdrop { position: absolute; inset: 0; border: none; background: var(--color-overlay); cursor: pointer; } .intl-phone-sheet__panel { position: relative; display: flex; max-height: min(78vh, 560px); flex-direction: column; border-radius: 18px 18px 0 0; background: var(--color-surface-raised); box-shadow: var(--shadow-surface-lg); } .intl-phone-sheet__header { display: flex; align-items: center; justify-content: space-between; padding: 0.875rem 1rem 0.5rem; border-bottom: 1px solid var(--color-border-subtle); } .intl-phone-sheet__title { font-family: -apple-system, blinkmacsystemfont, "SF Pro Display", system-ui, sans-serif; font-size: 17px; font-weight: 600; color: var(--color-text); } .intl-phone-sheet__done { border: none; border-radius: 8px; background: transparent; color: var(--primary, #00c2a8); font-family: -apple-system, blinkmacsystemfont, "SF Pro Text", system-ui, sans-serif; font-size: 16px; font-weight: 600; cursor: pointer; } @media (max-width: 767px) { .profile-container .intl-phone-input:focus-within, .profile-container .profile-form-group__body .intl-phone-input:focus-within { box-shadow: inset 0 0 0 1px rgba(0, 194, 168, 0.45); } .profile-container .intl-phone-input__number, .profile-container .profile-form-group__body .intl-phone-input__number { font-size: 16px; touch-action: manipulation; } .profile-container .intl-phone-input__code { padding-left: 0.75rem; font-size: 16px; touch-action: manipulation; } } .profile-country-field { width: 100%; } .profile-country-field__picker { width: 100%; } .profile-form-field .profile-country-field__trigger { width: 100%; height: auto; min-height: 38px; margin: 0; padding: 0.5rem 0.625rem; gap: 0.5rem; border: none; border-radius: 8px; background: var(--sf-bg); color: var(--sf-text); font-family: var(--sf-font); font-size: 15px; font-weight: 400; letter-spacing: -0.018em; line-height: 1.3; box-shadow: inset 0 0 0 1px var(--sf-separator); transition: background 0.2s ease, box-shadow 0.2s ease; } .profile-form-field .profile-country-field__trigger:hover { box-shadow: inset 0 0 0 1px var(--color-border-strong); } .profile-form-field .profile-country-field__trigger:focus-visible, .profile-country-field__picker.is-open .profile-country-field__trigger { outline: none; box-shadow: inset 0 0 0 1px #00c2a8, 0 0 0 3px rgba(0, 194, 168, 0.14); } .profile-form-field .profile-country-field.is-invalid .profile-country-field__trigger, .profile-form-field .profile-country-field__trigger.is-invalid { background: rgb(255 59 48 / 4%); box-shadow: inset 0 0 0 1px rgb(255 59 48 / 55%), 0 0 0 3px rgb(255 59 48 / 10%); } .profile-country-field__error { margin: 0.125rem 0 0; font-size: 12px; line-height: 1.35; color: #b42318; } .profile-form-field .profile-country-field__trigger .prebook-country-picker__trigger-label { color: var(--color-text-faint); font-size: 15px; font-weight: 400; } .profile-form-field .profile-country-field__trigger.has-selection .prebook-country-picker__trigger-label, .profile-form-field .profile-country-field__trigger .prebook-country-picker__trigger-label:not(.is-placeholder) { color: var(--sf-text); } .profile-form-field .profile-country-field__trigger .prebook-country-picker__chevron { color: var(--color-text-faint); font-size: 11px; } body.profile-page .profile-form-field--picker .profile-country-field__trigger { min-height: 46px; padding: 0.6875rem 0.875rem; border-radius: 10px; background: var(--color-control); box-shadow: inset 0 0 0 1px var(--color-border-subtle); justify-content: space-between; } body.profile-page .profile-form-field--picker .profile-country-field__trigger:hover { box-shadow: inset 0 0 0 1px var(--color-border-strong); } body.profile-page .profile-form-field--picker .profile-country-field__trigger:focus-visible, body.profile-page .profile-form-field--picker .profile-country-field__picker.is-open .profile-country-field__trigger { outline: none; background: var(--color-surface); box-shadow: inset 0 0 0 1.5px var(--primary), 0 0 0 4px var(--primary-light); } body.profile-page .profile-form-field--picker .profile-country-field__trigger .prebook-country-picker__trigger-label { text-align: left; font-size: 17px; letter-spacing: -0.022em; color: var(--color-text-faint); } body.profile-page .profile-form-field--picker .profile-country-field__trigger.has-selection .prebook-country-picker__trigger-label, body.profile-page .profile-form-field--picker .profile-country-field__trigger .prebook-country-picker__trigger-label:not(.is-placeholder) { color: var(--color-text); } body.profile-page .profile-form-field--picker .profile-country-field__trigger .prebook-country-picker__chevron { margin-left: 0.5rem; color: var(--color-text-muted); font-size: 12px; } body.profile-page .profile-form-field--error .profile-country-field.is-invalid .profile-country-field__trigger, body.profile-page .profile-form-field--error .profile-country-field__trigger.is-invalid { background: rgb(255 59 48 / 6%); box-shadow: inset 0 0 0 1.5px rgb(255 59 48 / 62%), 0 0 0 4px rgb(255 59 48 / 10%); } body.profile-page .profile-form-field--error .profile-country-field__error { margin: 0; font-size: 12px; font-weight: 500; color: #d70015; } .profile-form-field .profile-country-field__trigger .prebook-country-picker__trigger-flag { width: 20px; height: 20px; } .profile-form-field .profile-country-field__trigger .prebook-country-picker__placeholder-flag { width: 1.1rem; height: 0.75rem; } .profile-form-field .profile-country-field__trigger.has-legacy-selection .prebook-country-picker__trigger-label { color: var(--sf-text); font-style: normal; } .profile-page .prebook-country-picker__menu { z-index: 10100; border: 0.5px solid var(--color-border-subtle); background: var(--color-surface-raised); box-shadow: var(--shadow-surface-lg); } .profile-page .prebook-country-picker__search { background: var(--color-control); border-color: var(--color-border-subtle); color: var(--color-text); } .profile-page .prebook-country-picker__option { color: var(--color-text); } body.profile-picker-swap-guard .profile-country-field__picker, body.profile-picker-swap-guard .profile-country-sheet, body.profile-picker-swap-guard .intl-phone-input__code { pointer-events: none; } body.profile-country-sheet-open { overflow: hidden; touch-action: none; } .profile-country-sheet { --pb-bg: var(--color-control); --pb-surface: var(--color-surface); --pb-text: var(--color-text); --pb-secondary: var(--color-text-secondary); --pb-label: var(--color-text-muted); --pb-separator: var(--color-border-subtle); --pb-accent: #00c2a8; --pb-font: -apple-system, blinkmacsystemfont, "SF Pro Text", "SF Pro Display", system-ui, sans-serif; position: fixed; inset: 0; z-index: 10150; display: flex; flex-direction: column; justify-content: flex-end; width: 100%; max-width: 100%; margin: 0; font-family: var(--pb-font); overscroll-behavior: none; } .profile-country-sheet[hidden] { display: none !important; } .profile-country-sheet__backdrop { position: absolute; inset: 0; border: none; margin: 0; padding: 0; background: var(--color-overlay); cursor: pointer; -webkit-tap-highlight-color: transparent; } .profile-country-sheet__panel { position: relative; z-index: 1; display: flex; flex-direction: column; width: 100%; max-width: 100%; min-height: 260px; max-height: calc(100dvh - 10px); margin: 0; overflow: hidden; border-radius: 16px 16px 0 0; background: var(--pb-surface); box-shadow: var(--shadow-surface-lg); transform: translate3d(0, 0, 0); will-change: height; } .profile-country-sheet__header { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px 10px; border-bottom: 0.5px solid var(--pb-separator); background: var(--pb-surface); } .profile-country-sheet__title { font-size: 15px; font-weight: 650; color: var(--pb-text); } .profile-country-sheet__done { border: none; background: transparent; color: var(--pb-accent); font-size: 15px; font-weight: 650; cursor: pointer; padding: 4px 0; } .profile-country-sheet .prebook-country-picker__search-wrap { flex-shrink: 0; padding: 10px 12px 0; background: var(--pb-surface); } .profile-country-sheet .prebook-country-picker__search { width: 100%; height: 40px; padding: 0 12px; border: 0.5px solid var(--pb-separator); border-radius: 10px; background: var(--pb-bg); font-size: 16px; color: var(--pb-text); } .profile-country-sheet .prebook-country-picker__search:focus { outline: none; border-color: var(--pb-accent); box-shadow: 0 0 0 3px rgba(0, 194, 168, 0.14); } .profile-country-sheet .prebook-country-picker__options { flex: 1 1 auto; min-height: 0; max-height: none; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 8px 12px calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--pb-surface); } .profile-country-sheet .prebook-country-picker__option { width: 100%; color: var(--pb-text); background: transparent; } .profile-country-sheet .prebook-country-picker__option:hover, .profile-country-sheet .prebook-country-picker__option:focus-visible { background: var(--color-control-hover); } .profile-country-sheet .prebook-country-picker__empty { color: var(--pb-secondary); } @media (max-width: 767px) { .profile-form-field .profile-country-field__trigger, .profile-form-field .profile-country-field__trigger .prebook-country-picker__trigger-label { font-size: 16px; } } @media (max-width: 520px) { .profile-page .prebook-country-picker__menu { border-radius: 14px; background: var(--color-surface-raised); } } .profile-phone-verify-modal { position: fixed; inset: 0; z-index: 10300; display: flex; align-items: center; justify-content: center; padding: 1rem; background: var(--color-overlay); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); animation: pf-modal-fade-in 0.25s ease; } .profile-phone-verify-modal__content { position: relative; width: min(100%, 420px); max-height: min(92vh, 640px); overflow: auto; border-radius: 20px; background: var(--color-surface-raised); box-shadow: var(--shadow-surface-lg); animation: pf-modal-slide-up 0.3s ease; } .profile-phone-verify-modal__close { position: absolute; top: 0.875rem; right: 0.875rem; z-index: 1; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border: none; border-radius: 50%; background: var(--color-control); color: var(--color-text-muted); font-size: 1.25rem; line-height: 1; cursor: pointer; } .profile-phone-verify-modal__close:hover { background: var(--color-control-hover); color: var(--color-text); } .profile-phone-verify-modal__header { padding: 2rem 1.5rem 1rem; text-align: center; background: var(--color-surface-muted); border-radius: 20px 20px 0 0; } .profile-phone-verify-modal__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 0.875rem; border-radius: 16px; background: var(--color-control); color: var(--color-text); font-size: 24px; } .profile-phone-verify-modal__title { margin: 0 0 0.375rem; font-family: -apple-system, blinkmacsystemfont, "SF Pro Display", system-ui, sans-serif; font-size: 20px; font-weight: 600; letter-spacing: -0.02em; color: var(--color-text); } .profile-phone-verify-modal__subtitle { margin: 0; font-family: -apple-system, blinkmacsystemfont, "SF Pro Text", system-ui, sans-serif; font-size: 14px; line-height: 1.45; color: var(--color-text-muted); } .profile-phone-verify-modal__body { display: flex; flex-direction: column; gap: 0.75rem; padding: 1.25rem 1.5rem 1.5rem; } .profile-phone-verify-modal__code { width: 100%; margin: 0; padding: 0.875rem 1rem; border: none; border-radius: 12px; background: var(--color-control); color: var(--color-text); font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 28px; font-weight: 600; letter-spacing: 0.24em; text-align: center; box-shadow: inset 0 0 0 1px var(--color-border-subtle); } .profile-phone-verify-modal__code:focus { outline: none; background: var(--color-surface-raised); box-shadow: inset 0 0 0 1px rgba(60, 60, 67, 0.28), 0 0 0 3px rgba(60, 60, 67, 0.08); } .profile-phone-verify-modal__error { padding: 0.75rem 0.875rem; border-radius: 10px; background: rgba(255, 59, 48, 0.1); color: #b42318; font-size: 13px; line-height: 1.4; } .profile-phone-verify-modal__primary, .profile-phone-verify-modal__secondary { width: 100%; min-height: 48px; border: none; border-radius: 980px; font-family: -apple-system, blinkmacsystemfont, "SF Pro Text", system-ui, sans-serif; font-size: 16px; font-weight: 600; cursor: pointer; transition: background 0.2s ease, opacity 0.2s ease, transform 0.15s ease; } .profile-phone-verify-modal__primary { background: var(--color-text); color: var(--color-text-inverse); } .profile-phone-verify-modal__primary:hover:not(:disabled) { background: #2c2c2e; } .profile-phone-verify-modal__secondary { background: var(--color-control); color: var(--color-text); } .profile-phone-verify-modal__secondary:hover:not(:disabled) { background: var(--color-control-hover); } .profile-phone-verify-modal__primary:disabled, .profile-phone-verify-modal__secondary:disabled { opacity: 0.55; cursor: not-allowed; } .profile-phone-verify-modal__status { margin: 0; text-align: center; font-size: 13px; line-height: 1.4; color: var(--color-text-muted); } body.profile-phone-verify-open { overflow: hidden; } @media (max-width: 640px) { .profile-phone-verify-modal { align-items: flex-end; padding: 0; } .profile-phone-verify-modal__content { width: 100%; max-height: min(88vh, 720px); border-radius: 18px 18px 0 0; } .profile-phone-verify-modal__header { border-radius: 18px 18px 0 0; } .profile-phone-verify-modal__code { font-size: 24px; } } dialog.prebook-country-sheet.prebook-country-sheet--standalone { position: fixed; inset: 0; z-index: 10150; width: 100%; max-width: 100vw; height: 100%; max-height: 100dvh; margin: 0; padding: 0; border: none; background: transparent; color: inherit; overflow: hidden; overscroll-behavior: none; box-sizing: border-box; } dialog.prebook-country-sheet.prebook-country-sheet--standalone:not([open]) { display: none; } dialog.prebook-country-sheet.prebook-country-sheet--standalone[open] { display: flex; flex-direction: column; justify-content: flex-end; } dialog.prebook-country-sheet.prebook-country-sheet--standalone.is-keyboard-open[open] { justify-content: flex-start; } dialog.prebook-country-sheet.prebook-country-sheet--standalone::backdrop { background: transparent; } .prebook-country-sheet--standalone .prebook-country-sheet__backdrop { position: absolute; inset: 0; border: none; margin: 0; padding: 0; background: var(--color-overlay, rgb(0 0 0 / 45%)); cursor: pointer; -webkit-tap-highlight-color: transparent; } .prebook-country-sheet--standalone .prebook-country-sheet__panel { position: relative; z-index: 1; display: flex; flex-direction: column; width: 100%; max-width: 100%; min-height: 160px; max-height: calc(100dvh - 10px); margin: 0; overflow: hidden; border-radius: 16px 16px 0 0; background: var(--pb-surface, var(--color-surface-raised)); box-shadow: var(--shadow-surface-lg); box-sizing: border-box; } .prebook-country-sheet--standalone.is-keyboard-open .prebook-country-sheet__panel { border-radius: 0; max-height: none; } .prebook-country-sheet--standalone .prebook-country-sheet__header { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px 10px; border-bottom: 0.5px solid var(--pb-separator, var(--color-border)); background: var(--pb-surface, var(--color-surface-raised)); } .prebook-country-sheet--standalone .prebook-country-sheet__title { font-size: 15px; font-weight: 650; color: var(--pb-text, var(--color-text)); } .prebook-country-sheet--standalone .prebook-country-sheet__done { border: none; background: transparent; color: var(--pb-accent, var(--color-accent, #00c2a8)); font-size: 15px; font-weight: 650; cursor: pointer; padding: 4px 0; } .prebook-country-sheet--standalone .prebook-country-picker__search-wrap { flex-shrink: 0; padding: 10px 12px 0; background: var(--pb-surface, var(--color-surface-raised)); } .prebook-country-sheet--standalone .prebook-country-picker__search { width: 100%; height: 40px; padding: 0 12px; border: 0.5px solid var(--pb-separator, var(--color-border)); border-radius: 10px; background: var(--pb-bg, var(--color-control)); font-size: 16px; color: var(--pb-text, var(--color-text)); } .prebook-country-sheet--standalone .prebook-country-picker__search:focus { outline: none; border-color: var(--pb-accent, var(--color-accent, #00c2a8)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pb-accent, #00c2a8) 18%, transparent); } .prebook-country-sheet--standalone .prebook-country-picker__options { flex: 1 1 auto; min-height: 0; max-height: none; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 8px 12px calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--pb-surface, var(--color-surface-raised)); } .prebook-country-sheet--standalone .prebook-country-picker__option { width: 100%; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: none; border-radius: 10px; background: transparent; color: var(--pb-text, var(--color-text)); font: inherit; font-size: 15px; text-align: left; cursor: pointer; } .prebook-country-sheet--standalone .prebook-country-picker__option:hover, .prebook-country-sheet--standalone .prebook-country-picker__option:focus-visible { outline: none; background: var(--color-control-hover); } .prebook-country-sheet--standalone .prebook-country-picker__empty { padding: 14px 10px; color: var(--pb-secondary, var(--color-text-secondary)); font-size: 13px; text-align: center; } #booking-flight-panel, #flight-details-popup, #booking-details-modal { --fd-shell: rgba(255, 255, 255, 0.34); --fd-surface: #ffffff; --fd-bg: var(--fd-surface); --fd-fill: #eceff3; --fd-fill-elevated: #e6eaf0; --fd-control: transparent; --fd-control-rim: rgba(14, 26, 44, 0.18); --fd-control-shadow: none; --fd-control-blur: none; --fd-separator: rgba(14, 26, 44, 0.12); --fd-separator-light: rgba(14, 26, 44, 0.12); --fd-rail-secondary-divider: rgba(14, 26, 44, 0.18); --fd-rail-mobile-icon-surface: #ffffff; --fd-rail-mobile-icon-border: rgba(14, 26, 44, 0.18); --fd-label: #6b7686; --fd-text: #0e1a2c; --fd-text-secondary: #3e4b5e; --fd-accent: #2f6fed; --fd-cta: #2b4666; --fd-cta-ink: #ffffff; --fd-radius: 0; --fd-radius-inner: 0; --fd-radius-pill: 0; --fd-rail-width: 248px; --fd-shell-inset-x: 14px; --fd-shell-inset-bottom: 14px; --fd-dock-height: 132px; --fd-shadow: none; --fd-font: "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif; } :root[data-theme="dark"] #booking-flight-panel, :root[data-theme="dark"] #flight-details-popup, :root[data-theme="dark"] #booking-details-modal { --fd-shell: rgba(18, 20, 26, 0.38); --fd-surface: #12141a; --fd-fill: #181b22; --fd-fill-elevated: #1c2028; --fd-control: transparent; --fd-control-rim: rgba(255, 255, 255, 0.18); --fd-control-shadow: none; --fd-separator: rgba(255, 255, 255, 0.12); --fd-separator-light: rgba(255, 255, 255, 0.12); --fd-rail-secondary-divider: rgba(255, 255, 255, 0.18); --fd-rail-mobile-icon-surface: #12141a; --fd-rail-mobile-icon-border: rgba(255, 255, 255, 0.18); --fd-label: #7c8797; --fd-text: #f2f4f7; --fd-text-secondary: #b8c0cc; --fd-accent: #5b8cff; --fd-cta: #4a6a8f; --fd-shadow: none; } #flight-details-popup.flight-popup-overlay, #booking-details-modal.flight-popup-overlay { display: none; position: fixed; inset: 0; z-index: 10000; background: rgba(14, 26, 44, 0.28); backdrop-filter: blur(10px) saturate(120%); -webkit-backdrop-filter: blur(10px) saturate(120%); } :root[data-theme="dark"] #flight-details-popup.flight-popup-overlay, :root[data-theme="dark"] #booking-details-modal.flight-popup-overlay { background: var(--color-overlay); } #flight-details-popup.flight-popup-overlay.active, #booking-details-modal.flight-popup-overlay.active { display: flex; align-items: center; justify-content: center; padding: 24px; } #flight-details-popup .flight-popup, #booking-details-modal .flight-popup { position: relative; font-family: var(--fd-font); background: var(--fd-shell); border-radius: var(--fd-radius); box-shadow: none; border: 1px solid var(--fd-separator); backdrop-filter: saturate(180%) blur(40px); -webkit-backdrop-filter: saturate(180%) blur(40px); overflow: hidden; max-width: 1240px; width: min(96vw, 1240px); max-height: min(calc(100vh - 48px), 880px); display: flex; flex-direction: column; } :root[data-theme="dark"] #flight-details-popup .flight-popup, :root[data-theme="dark"] #booking-details-modal .flight-popup { border-color: var(--fd-separator-light); } #flight-details-popup .popup-close-corner, #booking-details-modal .popup-close-corner { position: absolute; top: 14px; right: 14px; z-index: 10; display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 32px; height: 32px; padding: 0; margin: 0; border-radius: 0; cursor: pointer; background: var(--fd-surface); color: var(--fd-text-secondary); border: 1px solid var(--fd-separator); box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; font-size: 13px; transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease; } :root[data-theme="dark"] #flight-details-popup .popup-close-corner, :root[data-theme="dark"] #booking-details-modal .popup-close-corner { background: var(--fd-surface); border-color: var(--fd-separator); box-shadow: none; } #flight-details-popup .popup-close-corner:hover, #booking-details-modal .popup-close-corner:hover { background: var(--fd-fill); color: var(--fd-text); border-color: var(--fd-accent); transform: none; box-shadow: none; } :root[data-theme="dark"] #flight-details-popup .popup-close-corner:hover, :root[data-theme="dark"] #booking-details-modal .popup-close-corner:hover { box-shadow: var(--shadow-surface); } #booking-flight-panel .popup-content, #flight-details-popup .popup-content, #booking-details-modal .popup-content { display: flex; flex-direction: column; padding: 12px 14px 14px; gap: 0; background: transparent; flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; } #booking-flight-panel .fd-layout, #flight-details-popup .fd-layout, #booking-details-modal .fd-layout { display: grid; grid-template-columns: minmax(0, 1fr) var(--fd-rail-width); gap: 10px; align-items: stretch; min-height: 0; } @media (min-width: 901px) { #booking-flight-panel .fd-layout, #flight-details-popup .fd-layout, #booking-details-modal .fd-layout { height: 100%; } } #booking-flight-panel .fd-main, #flight-details-popup .fd-main, #booking-details-modal .fd-main { display: flex; flex-direction: column; gap: 10px; min-width: 0; min-height: 0; } #booking-flight-panel .fd-head, #flight-details-popup .fd-head, #booking-details-modal .fd-head { display: grid; grid-template-columns: 48% minmax(0, 1fr); gap: 10px; align-items: stretch; min-height: 180px; } #booking-flight-panel .fd-head .route-section, #flight-details-popup .fd-head .route-section, #booking-details-modal .fd-head .route-section, #booking-flight-panel .fd-head .fd-route, #flight-details-popup .fd-head .fd-route, #booking-details-modal .fd-head .fd-route { grid-column: auto; grid-row: auto; min-width: 0; } #booking-flight-panel .fd-map.route-map-container, #flight-details-popup .fd-map.route-map-container, #booking-details-modal .fd-map.route-map-container, #booking-flight-panel .route-map-container, #flight-details-popup .route-map-container, #booking-details-modal .route-map-container { grid-column: auto; grid-row: auto; height: 100%; min-height: 180px; border-radius: var(--fd-radius-inner); overflow: hidden; box-shadow: none; border: 1px solid var(--fd-separator); background: var(--fd-fill); } #booking-flight-panel #flight-route-map, #flight-details-popup #flight-route-map, #booking-details-modal #flight-route-map { height: 100%; min-height: 180px; } #booking-flight-panel .fd-rail, #flight-details-popup .fd-rail, #booking-details-modal .fd-rail { display: flex; flex-direction: column; padding: 0; overflow: hidden; min-height: 0; align-self: stretch; } #booking-flight-panel .fd-rail-price, #flight-details-popup .fd-rail-price, #booking-details-modal .fd-rail-price { flex-shrink: 0; padding: 14px 16px 4px; border-bottom: 0.5px solid var(--fd-separator-light); background: transparent; border-radius: 0; box-shadow: none; } #booking-flight-panel .fd-rail-meta, #flight-details-popup .fd-rail-meta, #booking-details-modal .fd-rail-meta { flex: 1 1 auto; padding: 0 16px 12px; min-height: 0; overflow: visible; background: transparent; border: none; border-radius: 0; box-shadow: none; } #booking-flight-panel .fd-rail-meta .popup-section-title, #flight-details-popup .fd-rail-meta .popup-section-title, #booking-details-modal .fd-rail-meta .popup-section-title { margin-bottom: 8px; } #booking-flight-panel .fd-rail-actions, #flight-details-popup .fd-rail-actions, #booking-details-modal .fd-rail-actions { margin-top: auto; flex-shrink: 0; display: flex !important; flex-direction: column; gap: 8px; justify-content: stretch; align-items: stretch; width: 100%; padding: 12px 14px 14px; background: transparent; border: none; border-top: 0.5px solid var(--fd-separator-light); border-radius: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; } #booking-flight-panel .fd-rail-actions.popup-footer, #flight-details-popup .fd-rail-actions.popup-footer, #booking-details-modal .fd-rail-actions.popup-footer { justify-content: stretch; align-items: stretch; } #booking-flight-panel .fd-rail-actions > .action-buttons, #flight-details-popup .fd-rail-actions > .action-buttons, #booking-details-modal .fd-rail-actions > .action-buttons { display: flex; width: 100%; min-width: 0; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) > .action-buttons, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) > .action-buttons, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) > .action-buttons { flex-direction: column; } #booking-flight-panel .fd-rail-actions > .action-buttons .book-btn, #flight-details-popup .fd-rail-actions > .action-buttons .book-btn, #booking-details-modal .fd-rail-actions > .action-buttons .book-btn { flex: 1 1 auto; width: 100%; min-width: 0; } #booking-flight-panel .fd-rail-actions-secondary, #flight-details-popup .fd-rail-actions-secondary, #booking-details-modal .fd-rail-actions-secondary { display: grid; grid-template-columns: minmax(0, 1fr) 1px 44px; align-items: stretch; min-height: 42px; padding: 3px; border-radius: 0; background: var(--fd-control); border: 1px solid var(--fd-control-rim); box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; overflow: hidden; } :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary { background: var(--fd-control); border-color: var(--fd-control-rim); box-shadow: var(--fd-control-shadow); } #booking-flight-panel .fd-rail-actions-secondary::before, #flight-details-popup .fd-rail-actions-secondary::before, #booking-details-modal .fd-rail-actions-secondary::before { content: ""; grid-column: 2; grid-row: 1; width: 1px; margin: 9px 0; background: rgba(60, 60, 67, 0.28); justify-self: center; align-self: stretch; transform: scaleX(0.5); pointer-events: none; } :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary::before, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary::before, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary::before { background: rgba(255, 255, 255, 0.28); } #booking-flight-panel .fd-rail-actions-secondary .copy-link-btn, #flight-details-popup .fd-rail-actions-secondary .copy-link-btn, #booking-details-modal .fd-rail-actions-secondary .copy-link-btn, #booking-flight-panel .fd-rail-actions-secondary .fc-share-btn, #flight-details-popup .fd-rail-actions-secondary .fc-share-btn, #booking-details-modal .fd-rail-actions-secondary .fc-share-btn { grid-column: 1; flex: unset; min-width: 0; min-height: 36px; padding: 0 14px 0 12px; border: none; border-radius: 0; background: transparent; color: var(--fd-text); font-size: 0.75rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; box-shadow: none; transition: background 0.2s ease, color 0.2s ease; } #booking-flight-panel .fd-rail-actions-secondary .copy-link-btn i, #flight-details-popup .fd-rail-actions-secondary .copy-link-btn i, #booking-details-modal .fd-rail-actions-secondary .copy-link-btn i, #booking-flight-panel .fd-rail-actions-secondary .fc-share-btn i, #flight-details-popup .fd-rail-actions-secondary .fc-share-btn i, #booking-details-modal .fd-rail-actions-secondary .fc-share-btn i { font-size: 13px; color: inherit; opacity: 0.75; } #booking-flight-panel .fd-rail-actions-secondary .favorite-btn, #flight-details-popup .fd-rail-actions-secondary .favorite-btn, #booking-details-modal .fd-rail-actions-secondary .favorite-btn { grid-column: 3; flex: unset; width: 44px; min-width: 44px; min-height: 36px; padding: 0; margin: 0; border: none; border-radius: 0; background: transparent; color: var(--fd-text); display: inline-flex; align-items: center; justify-content: center; box-shadow: none; transition: background 0.2s ease, color 0.2s ease; } #booking-flight-panel .fd-rail-actions-secondary .favorite-btn i, #flight-details-popup .fd-rail-actions-secondary .favorite-btn i, #booking-details-modal .fd-rail-actions-secondary .favorite-btn i { font-size: 15px; color: inherit; } :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary .copy-link-btn, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary .copy-link-btn, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary .copy-link-btn, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary .fc-share-btn, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary .fc-share-btn, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary .fc-share-btn, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary .favorite-btn, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary .favorite-btn, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary .favorite-btn { color: #e8e9eb; } :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary .copy-link-btn i, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary .copy-link-btn i, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary .copy-link-btn i, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary .fc-share-btn i, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary .fc-share-btn i, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary .fc-share-btn i, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary .favorite-btn i, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary .favorite-btn i, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary .favorite-btn i { color: inherit; } #booking-flight-panel .fd-rail-actions > .action-buttons .book-btn, #flight-details-popup .fd-rail-actions > .action-buttons .book-btn, #booking-details-modal .fd-rail-actions > .action-buttons .book-btn { min-width: 0; min-height: 50px; } #booking-flight-panel .fd-rail-actions .copy-link-btn, #flight-details-popup .fd-rail-actions .copy-link-btn, #booking-details-modal .fd-rail-actions .copy-link-btn { width: auto; } #booking-flight-panel .fd-rail-actions .favorite-btn, #flight-details-popup .fd-rail-actions .favorite-btn, #booking-details-modal .fd-rail-actions .favorite-btn { width: auto; } #booking-flight-panel .fd-rail-actions .popup-footer-close, #flight-details-popup .fd-rail-actions .popup-footer-close, #booking-details-modal .fd-rail-actions .popup-footer-close { display: none !important; } #booking-flight-panel .fd-rail-actions .chat-btn, #flight-details-popup .fd-rail-actions .chat-btn, #booking-details-modal .fd-rail-actions .chat-btn, #booking-flight-panel .fd-rail-actions .cancel-btn, #flight-details-popup .fd-rail-actions .cancel-btn, #booking-details-modal .fd-rail-actions .cancel-btn { width: 100%; min-width: 0; min-height: 44px; } #booking-flight-panel .fd-rail-actions > .cancel-btn, #flight-details-popup .fd-rail-actions > .cancel-btn, #booking-details-modal .fd-rail-actions > .cancel-btn { background: rgba(255, 59, 48, 0.1); color: #d70015; border: none; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking { gap: 8px; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking > .action-buttons:not(.fd-booking-action-buttons), #flight-details-popup .fd-rail-actions.fd-rail-actions--booking > .action-buttons:not(.fd-booking-action-buttons), #booking-details-modal .fd-rail-actions.fd-rail-actions--booking > .action-buttons:not(.fd-booking-action-buttons) { display: none !important; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking > .fd-booking-action-buttons, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking > .fd-booking-action-buttons, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking > .fd-booking-action-buttons { display: flex !important; width: 100%; min-width: 0; flex-direction: column; align-items: stretch; gap: 8px; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn, #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn { flex: none; width: 100%; min-width: 0; min-height: 46px; border-radius: 0; display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-size: 0.75rem; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn { background: var(--fd-fill); color: var(--fd-text); border: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn { background: rgba(255, 59, 48, 0.1); color: #d70015; border: 0.5px solid rgba(255, 59, 48, 0.22); } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .fd-rail-actions-secondary, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .fd-rail-actions-secondary, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .fd-rail-actions-secondary { display: none !important; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .book-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .book-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .book-btn, #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .copy-link-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .copy-link-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .copy-link-btn, #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .fc-share-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .fc-share-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .fc-share-btn, #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .favorite-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .favorite-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .favorite-btn { display: none !important; } #booking-flight-panel .fd-rail-actions > .chat-btn[hidden], #flight-details-popup .fd-rail-actions > .chat-btn[hidden], #booking-details-modal .fd-rail-actions > .chat-btn[hidden], #booking-flight-panel .fd-rail-actions > .cancel-btn[hidden], #flight-details-popup .fd-rail-actions > .cancel-btn[hidden], #booking-details-modal .fd-rail-actions > .cancel-btn[hidden], #booking-flight-panel .fd-rail-actions .chat-btn[hidden], #flight-details-popup .fd-rail-actions .chat-btn[hidden], #booking-details-modal .fd-rail-actions .chat-btn[hidden], #booking-flight-panel .fd-rail-actions .cancel-btn[hidden], #flight-details-popup .fd-rail-actions .cancel-btn[hidden], #booking-details-modal .fd-rail-actions .cancel-btn[hidden], #booking-flight-panel .fd-rail-actions .fd-booking-action-buttons[hidden], #flight-details-popup .fd-rail-actions .fd-booking-action-buttons[hidden], #booking-details-modal .fd-rail-actions .fd-booking-action-buttons[hidden] { display: none !important; } #booking-flight-panel .flight-info-grid, #flight-details-popup .flight-info-grid, #booking-details-modal .flight-info-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(200px, 240px); grid-template-rows: auto auto; gap: 10px; align-items: stretch; background: transparent; border: none; border-radius: 0; overflow: visible; box-shadow: none; flex: 0 0 auto !important; min-height: auto !important; } #booking-flight-panel .flight-info-grid .route-section, #flight-details-popup .flight-info-grid .route-section, #booking-details-modal .flight-info-grid .route-section { grid-column: 1; grid-row: 1; } #booking-flight-panel .flight-info-grid .pricing-section, #flight-details-popup .flight-info-grid .pricing-section, #booking-details-modal .flight-info-grid .pricing-section { grid-column: 2; grid-row: 1; } #booking-flight-panel .flight-info-grid .aircraft-section, #flight-details-popup .flight-info-grid .aircraft-section, #booking-details-modal .flight-info-grid .aircraft-section { grid-column: 1; grid-row: 2; } #booking-flight-panel .flight-info-grid .details-section, #flight-details-popup .flight-info-grid .details-section, #booking-details-modal .flight-info-grid .details-section { grid-column: 2; grid-row: 2; } #booking-flight-panel .fd-main .aircraft-section, #flight-details-popup .fd-main .aircraft-section, #booking-details-modal .fd-main .aircraft-section { grid-column: unset; grid-row: unset; flex: 1 1 auto; min-height: 0; } #booking-flight-panel .fd-main .fd-aircraft-body, #flight-details-popup .fd-main .fd-aircraft-body, #booking-details-modal .fd-main .fd-aircraft-body { flex: 1 1 auto; min-height: 200px; } #booking-flight-panel .info-section, #flight-details-popup .info-section, #booking-details-modal .info-section { display: flex; flex-direction: column; background: var(--fd-surface); border: 1px solid var(--fd-separator); border-radius: var(--fd-radius); padding: 12px 14px; box-shadow: none; min-width: 0; overflow: visible; height: auto; } #booking-flight-panel .fd-rail.info-section, #flight-details-popup .fd-rail.info-section, #booking-details-modal .fd-rail.info-section { height: auto; align-self: stretch; } :root[data-theme="dark"] #booking-flight-panel .info-section, :root[data-theme="dark"] #flight-details-popup .info-section, :root[data-theme="dark"] #booking-details-modal .info-section { box-shadow: none; } #booking-flight-panel .popup-section-title, #flight-details-popup .popup-section-title, #booking-details-modal .popup-section-title { margin: 0 0 10px; padding: 0; font-family: var(--fd-font); font-size: 0.625rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fd-label); gap: 0; border: none; } #booking-flight-panel .popup-section-title > i, #flight-details-popup .popup-section-title > i, #booking-details-modal .popup-section-title > i { display: none; } #booking-flight-panel .popup-footer, #flight-details-popup .popup-footer, #booking-details-modal .popup-footer { padding: 12px 22px max(12px, env(safe-area-inset-bottom, 0px)); background: var(--fd-surface); border-top: 1px solid var(--fd-separator); gap: 8px; backdrop-filter: none; -webkit-backdrop-filter: none; } #booking-flight-panel .fd-rail-actions.popup-footer, #flight-details-popup .fd-rail-actions.popup-footer, #booking-details-modal .fd-rail-actions.popup-footer { padding: 12px 14px 14px; background: transparent; border: none; border-top: 0.5px solid var(--fd-separator-light); backdrop-filter: none; -webkit-backdrop-filter: none; } #flight-details-popup .flight-popup > .fd-rail-actions, #booking-details-modal .flight-popup > .fd-rail-actions { flex-shrink: 0; } #booking-flight-panel .fd-rail-actions-secondary .copy-link-btn:hover, #flight-details-popup .fd-rail-actions-secondary .copy-link-btn:hover, #booking-details-modal .fd-rail-actions-secondary .copy-link-btn:hover, #booking-flight-panel .fd-rail-actions-secondary .fc-share-btn:hover, #flight-details-popup .fd-rail-actions-secondary .fc-share-btn:hover, #booking-details-modal .fd-rail-actions-secondary .fc-share-btn:hover, #booking-flight-panel .fd-rail-actions-secondary .favorite-btn:hover, #flight-details-popup .fd-rail-actions-secondary .favorite-btn:hover, #booking-details-modal .fd-rail-actions-secondary .favorite-btn:hover { background: rgba(60, 60, 67, 0.1); } #booking-flight-panel .fd-rail-actions-secondary .favorite-btn:hover, #flight-details-popup .fd-rail-actions-secondary .favorite-btn:hover, #booking-details-modal .fd-rail-actions-secondary .favorite-btn:hover { color: #ff3b30; } #booking-flight-panel .fd-rail-actions-secondary .favorite-btn.favorited, #flight-details-popup .fd-rail-actions-secondary .favorite-btn.favorited, #booking-details-modal .fd-rail-actions-secondary .favorite-btn.favorited, #booking-flight-panel .fd-rail-actions-secondary .favorite-btn.is-favorite, #flight-details-popup .fd-rail-actions-secondary .favorite-btn.is-favorite, #booking-details-modal .fd-rail-actions-secondary .favorite-btn.is-favorite { color: #ff3b30; background: transparent; } #booking-flight-panel .fd-rail-actions-secondary .favorite-btn.favorited i, #flight-details-popup .fd-rail-actions-secondary .favorite-btn.favorited i, #booking-details-modal .fd-rail-actions-secondary .favorite-btn.favorited i, #booking-flight-panel .fd-rail-actions-secondary .favorite-btn.is-favorite i, #flight-details-popup .fd-rail-actions-secondary .favorite-btn.is-favorite i, #booking-details-modal .fd-rail-actions-secondary .favorite-btn.is-favorite i { color: #ff3b30; } :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary .copy-link-btn:hover, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary .copy-link-btn:hover, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary .copy-link-btn:hover, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary .fc-share-btn:hover, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary .fc-share-btn:hover, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary .fc-share-btn:hover, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary .favorite-btn:hover, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary .favorite-btn:hover, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary .favorite-btn:hover { background: rgba(255, 255, 255, 0.08); } :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions-secondary .favorite-btn:hover, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions-secondary .favorite-btn:hover, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions-secondary .favorite-btn:hover { color: #ff3b30; } :root[data-theme="dark"] #booking-flight-panel .popup-footer, :root[data-theme="dark"] #flight-details-popup .popup-footer, :root[data-theme="dark"] #booking-details-modal .popup-footer { background: var(--color-surface-glass-strong); } :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions.popup-footer, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions.popup-footer, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions.popup-footer { background: var(--fd-dock, var(--fd-surface)); border: 0.5px solid var(--fd-dock-rim, rgba(255, 255, 255, 0.14)); backdrop-filter: var(--fd-dock-blur, none); -webkit-backdrop-filter: var(--fd-dock-blur, none); } #booking-flight-panel .popup-footer .action-btn, #flight-details-popup .popup-footer .action-btn, #booking-details-modal .popup-footer .action-btn, #booking-flight-panel .popup-footer .popup-btn, #flight-details-popup .popup-footer .popup-btn, #booking-details-modal .popup-footer .popup-btn { font-family: var(--fd-font); font-size: 0.75rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; border-radius: 0; min-height: 44px; box-shadow: none; flex: none !important; transition: background 0.2s ease, transform 0.12s ease, opacity 0.2s ease; } #booking-flight-panel .popup-footer .popup-footer-close, #flight-details-popup .popup-footer .popup-footer-close, #booking-flight-panel .popup-footer .copy-link-btn, #flight-details-popup .popup-footer .copy-link-btn, #booking-details-modal .popup-footer .popup-footer-close { background: var(--fd-fill); color: var(--fd-text); border: none; min-width: auto; padding: 0 16px; } #booking-flight-panel .fd-rail-actions.popup-footer .fd-rail-actions-secondary .copy-link-btn, #flight-details-popup .fd-rail-actions.popup-footer .fd-rail-actions-secondary .copy-link-btn, #booking-details-modal .fd-rail-actions.popup-footer .fd-rail-actions-secondary .copy-link-btn, #booking-flight-panel .fd-rail-actions.popup-footer .fd-rail-actions-secondary .fc-share-btn, #flight-details-popup .fd-rail-actions.popup-footer .fd-rail-actions-secondary .fc-share-btn, #booking-details-modal .fd-rail-actions.popup-footer .fd-rail-actions-secondary .fc-share-btn, #booking-flight-panel .fd-rail-actions.popup-footer .fd-rail-actions-secondary .favorite-btn, #flight-details-popup .fd-rail-actions.popup-footer .fd-rail-actions-secondary .favorite-btn, #booking-details-modal .fd-rail-actions.popup-footer .fd-rail-actions-secondary .favorite-btn { box-shadow: none; transform: none; } #booking-flight-panel .popup-footer .popup-footer-close:hover, #flight-details-popup .popup-footer .popup-footer-close:hover, #booking-flight-panel .popup-footer .copy-link-btn:hover, #flight-details-popup .popup-footer .copy-link-btn:hover, #booking-details-modal .popup-footer .popup-footer-close:hover { background: var(--fd-fill-elevated); transform: none; box-shadow: none; } #booking-flight-panel .popup-footer .book-btn, #flight-details-popup .popup-footer .book-btn, #booking-details-modal .popup-footer .book-btn { min-width: 0; width: 100%; } #booking-flight-panel .popup-footer .favorite-btn, #flight-details-popup .popup-footer .favorite-btn, #booking-details-modal .popup-footer .favorite-btn { flex: 0 0 42px; width: 42px; min-width: 42px; height: 42px; padding: 0; background: transparent; color: var(--fd-text); border: 1px solid var(--fd-separator); border-radius: 50%; } #booking-flight-panel .popup-footer .fd-rail-actions-secondary .favorite-btn, #flight-details-popup .popup-footer .fd-rail-actions-secondary .favorite-btn, #booking-details-modal .popup-footer .fd-rail-actions-secondary .favorite-btn { flex: unset; width: 44px; min-width: 44px; height: auto; min-height: 36px; background: transparent; border: none; box-shadow: none; } :root[data-theme="dark"] #booking-flight-panel .popup-footer .favorite-btn, :root[data-theme="dark"] #flight-details-popup .popup-footer .favorite-btn, :root[data-theme="dark"] #booking-details-modal .popup-footer .favorite-btn { color: #e8e9eb; } :root[data-theme="dark"] #booking-flight-panel .popup-footer .fd-rail-actions-secondary .favorite-btn, :root[data-theme="dark"] #flight-details-popup .popup-footer .fd-rail-actions-secondary .favorite-btn, :root[data-theme="dark"] #booking-details-modal .popup-footer .fd-rail-actions-secondary .favorite-btn { background: transparent; color: #e8e9eb; } #booking-flight-panel .popup-footer .favorite-btn:hover, #flight-details-popup .popup-footer .favorite-btn:hover, #booking-details-modal .popup-footer .favorite-btn:hover { background: var(--fd-fill-elevated); color: #ff3b30; box-shadow: none; transform: none; } #booking-flight-panel .popup-footer .fd-rail-actions-secondary .favorite-btn:hover, #flight-details-popup .popup-footer .fd-rail-actions-secondary .favorite-btn:hover, #booking-details-modal .popup-footer .fd-rail-actions-secondary .favorite-btn:hover { background: rgba(60, 60, 67, 0.1); color: #ff3b30; } :root[data-theme="dark"] #booking-flight-panel .popup-footer .fd-rail-actions-secondary .favorite-btn:hover, :root[data-theme="dark"] #flight-details-popup .popup-footer .fd-rail-actions-secondary .favorite-btn:hover, :root[data-theme="dark"] #booking-details-modal .popup-footer .fd-rail-actions-secondary .favorite-btn:hover { background: rgba(255, 255, 255, 0.08); color: #ff3b30; } #booking-flight-panel .popup-footer .favorite-btn.favorited, #flight-details-popup .popup-footer .favorite-btn.favorited, #booking-flight-panel .popup-footer .favorite-btn.is-favorite, #flight-details-popup .popup-footer .favorite-btn.is-favorite, #booking-details-modal .popup-footer .favorite-btn.favorited, #booking-details-modal .popup-footer .favorite-btn.is-favorite { color: #ff3b30; background: transparent; border: none; } #booking-flight-panel .popup-footer .chat-btn, #flight-details-popup .popup-footer .chat-btn, #booking-details-modal .popup-footer .popup-btn { background: var(--fd-fill); color: var(--fd-text); border: none; } #booking-flight-panel .popup-footer .cancel-btn, #flight-details-popup .popup-footer .cancel-btn { background: rgba(255, 59, 48, 0.12); color: #d70015; border: none; padding: 0 18px; min-width: 120px; } #booking-flight-panel .popup-footer .cancel-btn:hover, #flight-details-popup .popup-footer .cancel-btn:hover { background: rgba(255, 59, 48, 0.18); color: #c10012; transform: none; box-shadow: none; } #booking-flight-panel .booking-modal-header, #flight-details-popup .booking-modal-header, #booking-details-modal .booking-modal-header { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 14px 16px; background: var(--fd-surface); border: 0.5px solid var(--fd-separator-light); border-radius: var(--fd-radius-inner); font-family: var(--fd-font); font-size: 14px; color: var(--fd-text-secondary); } #booking-flight-panel .booking-modal-header .booking-status-badge, #flight-details-popup .booking-modal-header .booking-status-badge, #booking-details-modal .booking-modal-header .booking-status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: var(--fd-radius-pill); font-size: 13px; font-weight: 600; } @media (max-width: 1024px) { #flight-details-popup.flight-popup-overlay.active, #booking-details-modal.flight-popup-overlay.active { padding: 16px; } #flight-details-popup .flight-popup, #booking-details-modal .flight-popup { width: min(100%, 900px); max-height: 94vh; } #booking-flight-panel .fd-layout, #flight-details-popup .fd-layout, #booking-details-modal .fd-layout { grid-template-columns: minmax(0, 1fr) 220px; gap: 10px; } #booking-flight-panel .fd-head, #flight-details-popup .fd-head, #booking-details-modal .fd-head { grid-template-columns: 46% minmax(0, 1fr); gap: 10px; min-height: 170px; } } @media (max-width: 900px) and (min-width: 769px) { #booking-flight-panel .fd-layout, #flight-details-popup .fd-layout, #booking-details-modal .fd-layout { grid-template-columns: 1fr; } } @media (max-width: 1024px) { #booking-flight-panel .flight-info-grid, #flight-details-popup .flight-info-grid, #booking-details-modal .flight-info-grid { grid-template-columns: minmax(0, 1fr) minmax(180px, 220px); gap: 8px; align-items: stretch; } } @media (prefers-reduced-transparency: reduce) { #flight-details-popup.flight-popup-overlay, #booking-details-modal.flight-popup-overlay, #flight-details-popup .flight-popup, #booking-details-modal .flight-popup { backdrop-filter: none; -webkit-backdrop-filter: none; } #flight-details-popup .flight-popup, #booking-details-modal .flight-popup { background: #ffffff; } :root[data-theme="dark"] #flight-details-popup .flight-popup, :root[data-theme="dark"] #booking-details-modal .flight-popup { background: #12141a; } } .frm-beacon { --frm-fill: #00c2a8; --frm-ink: #163a45; position: relative; width: 10px; height: 10px; padding: 0; border: 0; background: transparent; cursor: pointer; } .frm-beacon--dep { --frm-fill: #00c2a8; } .frm-beacon--arr { --frm-fill: #163a45; } .frm-beacon--stop { --frm-fill: #00806f; } .frm-beacon__pip { display: block; width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid #fff; background: var(--frm-fill); box-shadow: 0 1px 2px rgba(15, 23, 32, 0.28); } .frm-beacon__code { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); padding: 2px 6px; border-radius: 4px; background: rgba(255, 255, 255, 0.94); color: var(--frm-ink); font-family: "IBM Plex Mono", ui-monospace, sfmono-regular, menlo, monospace; font-size: 10px; font-weight: 600; letter-spacing: 0.08em; line-height: 1.2; white-space: nowrap; box-shadow: 0 1px 2px rgba(15, 23, 32, 0.12); } .frm-beacon--arr .frm-beacon__code { left: auto; right: 14px; } .frm-beacon:focus-visible { outline: 2px solid #00c2a8; outline-offset: 3px; } .frm-waypoint { width: 7px; height: 7px; border: 1.5px solid #fff; border-radius: 50%; background: #c4922a; } :root[data-theme="dark"] .frm-beacon { --frm-ink: #e8eef4; } :root[data-theme="dark"] .frm-beacon--arr { --frm-fill: #4fe0cd; } :root[data-theme="dark"] .frm-beacon__code { background: rgba(11, 16, 22, 0.9); } :root[data-theme="dark"] .frm-beacon__pip { border-color: #0b1016; } .frm-plane-anchor { width: 0; height: 0; overflow: visible; pointer-events: none; } .frm-plane { position: absolute; left: 0; top: 0; display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; transform: translate(-50%, -50%); background: transparent; } .frm-plane__jet { width: 44px; height: 44px; color: #ffffff; transform: rotate(var(--frm-heading, 0deg)); transform-origin: 50% 50%; filter: drop-shadow(0 1px 2px rgba(15, 23, 32, 0.45)); } .frm-plane__jet svg { display: block; width: 100%; height: 100%; } #booking-flight-panel .route-section .popup-section-title, #flight-details-popup .route-section .popup-section-title, #booking-details-modal .route-section .popup-section-title { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } #booking-flight-panel .fd-route-legs-badge, #flight-details-popup .fd-route-legs-badge, #booking-details-modal .fd-route-legs-badge { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 0; background: rgba(47, 111, 237, 0.1); color: #2560d6; font-size: 10px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.5; } #booking-flight-panel .fd-route-legs-badge[hidden], #flight-details-popup .fd-route-legs-badge[hidden], #booking-details-modal .fd-route-legs-badge[hidden] { display: none; } #booking-flight-panel .route-details.fd-route-flow, #flight-details-popup .route-details.fd-route-flow, #booking-details-modal .route-details.fd-route-flow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(72px, auto) minmax(0, 1fr); gap: 0 16px; align-items: start; min-height: 0; position: relative; } #booking-flight-panel .fd-route-endpoint, #flight-details-popup .fd-route-endpoint, #booking-details-modal .fd-route-endpoint { position: relative; display: block; padding: 0; background: transparent; border: none; border-radius: 0; text-align: left !important; min-width: 0; } #booking-flight-panel .fd-route-endpoint-body, #flight-details-popup .fd-route-endpoint-body, #booking-details-modal .fd-route-endpoint-body { display: flex; flex-direction: column; gap: 3px; align-items: flex-start; min-width: 0; } #booking-flight-panel .departure-detail::before, #flight-details-popup .departure-detail::before, #booking-details-modal .departure-detail::before, #booking-flight-panel .arrival-detail::before, #flight-details-popup .arrival-detail::before, #booking-details-modal .arrival-detail::before, #booking-flight-panel .departure-detail::after, #flight-details-popup .departure-detail::after, #booking-details-modal .departure-detail::after { content: none; } #booking-flight-panel .airport-label, #flight-details-popup .airport-label, #booking-details-modal .airport-label { font-family: var(--fd-font); font-size: 10px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; color: var(--fd-label); margin: 0; } #booking-flight-panel .airport-code-large, #flight-details-popup .airport-code-large, #booking-details-modal .airport-code-large { font-family: var(--fd-font); font-size: 20px; font-weight: 700; letter-spacing: -0.02em; color: var(--fd-text); margin: 1px 0 0; line-height: 1.15; } #booking-flight-panel .airport-detail .airport-name, #flight-details-popup .airport-detail .airport-name, #booking-details-modal .airport-detail .airport-name { font-family: var(--fd-font); font-size: 13px; font-weight: 600; color: var(--fd-text); line-height: 1.35; margin: 2px 0 0; text-align: left !important; } #booking-flight-panel .airport-detail .airport-location, #flight-details-popup .airport-detail .airport-location, #booking-details-modal .airport-detail .airport-location { font-family: var(--fd-font); font-size: 12px; font-weight: 400; color: var(--fd-text-secondary); line-height: 1.4; gap: 5px; justify-content: flex-start !important; text-align: left !important; margin-top: 1px; } #booking-flight-panel .fd-route-connector, #flight-details-popup .fd-route-connector, #booking-details-modal .fd-route-connector { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 4px; margin: 0; padding: 26px 0 0; min-height: 0; } #booking-flight-panel .fd-route-arrow, #flight-details-popup .fd-route-arrow, #booking-details-modal .fd-route-arrow { position: relative; display: block; width: 44px; height: 1.5px; border-radius: 1px; background: var(--fd-accent); opacity: 0.75; } #booking-flight-panel .fd-route-arrow::after, #flight-details-popup .fd-route-arrow::after, #booking-details-modal .fd-route-arrow::after { content: ""; position: absolute; right: -1px; top: -2.75px; border-top: 3.5px solid transparent; border-bottom: 3.5px solid transparent; border-left: 5.5px solid var(--fd-accent); } #booking-flight-panel .fd-route-legs-note, #flight-details-popup .fd-route-legs-note, #booking-details-modal .fd-route-legs-note { margin: 2px 0 0; padding: 0; font-family: var(--fd-font); font-size: 11px; font-weight: 500; letter-spacing: 0.01em; color: var(--fd-text-secondary); line-height: 1.35; text-align: center; white-space: nowrap; } #booking-flight-panel .fd-route-legs-note[hidden], #flight-details-popup .fd-route-legs-note[hidden], #booking-details-modal .fd-route-legs-note[hidden] { display: none; } #booking-flight-panel .fd-route-legs, #flight-details-popup .fd-route-legs, #booking-details-modal .fd-route-legs { margin-top: 14px; border-top: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .fd-route-legs[hidden], #flight-details-popup .fd-route-legs[hidden], #booking-details-modal .fd-route-legs[hidden] { display: none; } #booking-flight-panel .fd-route-statsbar, #flight-details-popup .fd-route-statsbar, #booking-details-modal .fd-route-statsbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; padding: 10px 0; background: var(--fd-fill); border: 1px solid var(--fd-separator); border-radius: 0; } #booking-flight-panel .fd-layout--multileg .fd-media > .fd-route-statsbar, #flight-details-popup .fd-layout--multileg .fd-media > .fd-route-statsbar, #booking-details-modal .fd-layout--multileg .fd-media > .fd-route-statsbar { margin-top: 0; } #booking-flight-panel .fd-route-statsbar-item, #flight-details-popup .fd-route-statsbar-item, #booking-details-modal .fd-route-statsbar-item { display: flex; flex-direction: column; gap: 2px; padding: 0 16px; min-width: 0; } #booking-flight-panel .fd-route-statsbar-item + .fd-route-statsbar-item, #flight-details-popup .fd-route-statsbar-item + .fd-route-statsbar-item, #booking-details-modal .fd-route-statsbar-item + .fd-route-statsbar-item { border-left: 0.5px solid var(--fd-separator); } #booking-flight-panel .fd-route-statsbar-label, #flight-details-popup .fd-route-statsbar-label, #booking-details-modal .fd-route-statsbar-label { font-family: var(--fd-font); font-size: 10px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; color: var(--fd-text-secondary); line-height: 1.3; } #booking-flight-panel .fd-route-statsbar-value, #flight-details-popup .fd-route-statsbar-value, #booking-details-modal .fd-route-statsbar-value { font-family: var(--fd-font); font-size: 15px; font-weight: 700; letter-spacing: -0.01em; color: var(--fd-text); line-height: 1.3; font-variant-numeric: tabular-nums; white-space: nowrap; } :root[data-theme="dark"] #booking-flight-panel .fd-route-statsbar, :root[data-theme="dark"] #flight-details-popup .fd-route-statsbar, :root[data-theme="dark"] #booking-details-modal .fd-route-statsbar { background: var(--fd-fill); border-color: var(--fd-separator-light); } :root[data-theme="dark"] #booking-flight-panel .fd-route-statsbar-label, :root[data-theme="dark"] #flight-details-popup .fd-route-statsbar-label, :root[data-theme="dark"] #booking-details-modal .fd-route-statsbar-label { color: var(--fd-label); } #booking-flight-panel .fd-aircraft-body, #flight-details-popup .fd-aircraft-body, #booking-flight-panel .fd-aircraft-stack, #flight-details-popup .fd-aircraft-stack, #booking-flight-panel .aircraft-details, #flight-details-popup .aircraft-details, #booking-details-modal .fd-aircraft-body, #booking-details-modal .fd-aircraft-stack, #booking-details-modal .aircraft-details { display: grid !important; grid-template-columns: minmax(240px, 46%) minmax(0, 1fr); gap: 12px; align-items: stretch; } #booking-flight-panel .aircraft-info, #flight-details-popup .aircraft-info, #booking-details-modal .aircraft-info { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 6px; flex: 1 1 auto; min-width: 0; width: 100%; text-align: left !important; } #booking-flight-panel .aircraft-header-row, #flight-details-popup .aircraft-header-row, #booking-details-modal .aircraft-header-row { display: flex; flex-direction: column; align-items: flex-start; gap: 0; margin-bottom: 8px; } #booking-flight-panel .aircraft-title-stack, #flight-details-popup .aircraft-title-stack, #booking-details-modal .aircraft-title-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; width: 100%; } #booking-flight-panel .fd-aircraft-class, #flight-details-popup .fd-aircraft-class, #booking-details-modal .fd-aircraft-class, #booking-flight-panel .aircraft-category.fd-aircraft-class, #flight-details-popup .aircraft-category.fd-aircraft-class, #booking-details-modal .aircraft-category.fd-aircraft-class { display: block; padding: 0; margin: 0; border: none; border-radius: 0; background: none; box-shadow: none; font-family: var(--fd-font); font-size: 11px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; color: var(--fd-text-secondary); line-height: 1.3; text-align: left !important; width: auto; } :root[data-theme="dark"] #booking-flight-panel .fd-aircraft-class, :root[data-theme="dark"] #flight-details-popup .fd-aircraft-class, :root[data-theme="dark"] #booking-details-modal .fd-aircraft-class { color: var(--fd-label); } #booking-flight-panel .fd-aircraft-image-wrap, #flight-details-popup .fd-aircraft-image-wrap, #booking-details-modal .fd-aircraft-image-wrap { width: 100%; min-width: 0; max-width: none; height: 100%; min-height: 190px; max-height: none; aspect-ratio: auto; align-self: stretch; margin: 0; padding: 0; background: var(--fd-fill); border: none; border-radius: 0; overflow: hidden; display: flex; align-items: stretch; justify-content: center; } #booking-flight-panel .fd-aircraft-image-wrap:hover, #flight-details-popup .fd-aircraft-image-wrap:hover, #booking-details-modal .fd-aircraft-image-wrap:hover { background: var(--fd-fill); border: none; box-shadow: none; transform: none; } #booking-flight-panel .fd-aircraft-photo, #flight-details-popup .fd-aircraft-photo, #booking-details-modal .fd-aircraft-photo { width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: center; border-radius: 0; box-shadow: none; } #booking-flight-panel .aircraft-model-large, #flight-details-popup .aircraft-model-large, #booking-details-modal .aircraft-model-large { font-family: var(--fd-font); font-size: 15px; font-weight: 700; letter-spacing: -0.02em; color: var(--fd-text); margin: 0; text-align: left !important; width: auto; line-height: 1.25; } #booking-flight-panel .aircraft-category, #flight-details-popup .aircraft-category, #booking-details-modal .aircraft-category { font-family: var(--fd-font); font-size: 11px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--fd-label); margin: 0; text-align: left !important; width: auto; } #booking-flight-panel .aircraft-clarification, #flight-details-popup .aircraft-clarification, #booking-details-modal .aircraft-clarification { font-family: var(--fd-font); font-size: 12px; color: var(--fd-text-secondary); text-align: left !important; width: 100%; margin-bottom: 4px; } #booking-flight-panel .aircraft-specs, #flight-details-popup .aircraft-specs, #booking-details-modal .aircraft-specs { display: flex; flex-direction: column; gap: 0; margin-top: 0; align-items: stretch !important; width: 100%; border-top: none; } #booking-flight-panel .fd-rail .pricing-section, #flight-details-popup .fd-rail .pricing-section, #booking-details-modal .fd-rail .pricing-section, #booking-flight-panel .fd-rail-price.pricing-section, #flight-details-popup .fd-rail-price.pricing-section, #booking-details-modal .fd-rail-price.pricing-section { background: transparent !important; border: none !important; border-radius: 0 !important; padding: 0 !important; box-shadow: none !important; } #booking-flight-panel .fd-rail .pricing-details, #flight-details-popup .fd-rail .pricing-details, #booking-details-modal .fd-rail .pricing-details, #booking-flight-panel .fd-rail .price-main, #flight-details-popup .fd-rail .price-main, #booking-details-modal .fd-rail .price-main, #booking-flight-panel .fd-rail .price-value, #flight-details-popup .fd-rail .price-value, #booking-details-modal .fd-rail .price-value { background: transparent !important; border: none !important; border-radius: 0 !important; padding: 0 !important; box-shadow: none !important; text-shadow: none !important; } #booking-flight-panel .fd-specs-grid, #flight-details-popup .fd-specs-grid, #booking-details-modal .fd-specs-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 0.5px solid var(--fd-separator-light); margin-top: 8px; gap: 0; } #booking-flight-panel .fd-specs-grid .spec-item, #flight-details-popup .fd-specs-grid .spec-item, #booking-details-modal .fd-specs-grid .spec-item { display: grid; grid-template-columns: 14px 1fr; grid-template-rows: auto auto; gap: 1px 8px; align-items: start; align-content: start; padding: 8px 10px; min-width: 0; overflow: hidden; white-space: normal; border-bottom: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .fd-specs-grid .spec-item i, #flight-details-popup .fd-specs-grid .spec-item i, #booking-details-modal .fd-specs-grid .spec-item i { grid-column: 1; grid-row: 1; align-self: center; } #booking-flight-panel .fd-specs-grid .spec-item > span:first-of-type, #flight-details-popup .fd-specs-grid .spec-item > span:first-of-type, #booking-details-modal .fd-specs-grid .spec-item > span:first-of-type { grid-column: 2; grid-row: 1; flex: unset; font-size: 0.625rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fd-label); line-height: 1.3; } #booking-flight-panel .fd-specs-grid .spec-item .spec-value, #flight-details-popup .fd-specs-grid .spec-item .spec-value, #booking-details-modal .fd-specs-grid .spec-item .spec-value, #booking-flight-panel .fd-specs-grid .spec-item > span:last-of-type, #flight-details-popup .fd-specs-grid .spec-item > span:last-of-type, #booking-details-modal .fd-specs-grid .spec-item > span:last-of-type { grid-column: 2; grid-row: 2; flex: unset; font-size: 12px; font-weight: 600; color: var(--fd-text); line-height: 1.35; word-break: break-word; overflow-wrap: anywhere; } #booking-flight-panel .fd-specs-grid .spec-item:nth-child(odd), #flight-details-popup .fd-specs-grid .spec-item:nth-child(odd), #booking-details-modal .fd-specs-grid .spec-item:nth-child(odd) { border-right: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .fd-specs-grid .spec-item:nth-last-child(-n + 2), #flight-details-popup .fd-specs-grid .spec-item:nth-last-child(-n + 2), #booking-details-modal .fd-specs-grid .spec-item:nth-last-child(-n + 2) { border-bottom: none; } #booking-flight-panel .spec-item:last-child, #flight-details-popup .spec-item:last-child, #booking-details-modal .spec-item:last-child { border-bottom: none; padding-bottom: 0; } #booking-flight-panel .spec-item i, #flight-details-popup .spec-item i, #booking-details-modal .spec-item i { width: 14px; font-size: 10px; color: var(--fd-label); text-align: center; } #booking-flight-panel .spec-item span:first-of-type, #flight-details-popup .spec-item span:first-of-type, #booking-details-modal .spec-item span:first-of-type { flex: 1; color: var(--fd-text-secondary); font-weight: 400; } #booking-flight-panel .spec-item span:last-of-type, #flight-details-popup .spec-item span:last-of-type, #booking-details-modal .spec-item span:last-of-type { flex: 0 0 auto; color: var(--fd-text); font-weight: 600; } #booking-flight-panel .detail-items, #flight-details-popup .detail-items, #booking-details-modal .detail-items { display: flex; flex-direction: column; gap: 0; align-items: stretch !important; text-align: left !important; } #booking-flight-panel .detail-item, #flight-details-popup .detail-item, #booking-details-modal .detail-item { display: grid; grid-template-columns: 1fr; gap: 2px; align-items: flex-start !important; text-align: left !important; width: 100%; padding: 7px 0; border-bottom: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .detail-item:last-child, #flight-details-popup .detail-item:last-child, #booking-details-modal .detail-item:last-child { border-bottom: none; padding-bottom: 0; } #booking-flight-panel .detail-label, #flight-details-popup .detail-label, #booking-details-modal .detail-label { font-family: var(--fd-font); font-size: 11px; font-weight: 500; color: var(--fd-label); text-transform: uppercase; letter-spacing: 0.04em; } #booking-flight-panel .detail-value, #flight-details-popup .detail-value, #booking-details-modal .detail-value { font-family: var(--fd-font); font-size: 13px; font-weight: 600; color: var(--fd-text); line-height: 1.35; text-align: left !important; letter-spacing: -0.01em; } #booking-flight-panel .pricing-section, #flight-details-popup .pricing-section, #booking-details-modal .pricing-section { display: flex; flex-direction: column; } #booking-flight-panel .fd-rail .pricing-section .popup-section-title, #flight-details-popup .fd-rail .pricing-section .popup-section-title, #booking-details-modal .fd-rail .pricing-section .popup-section-title, #booking-flight-panel .fd-sidebar .pricing-section .popup-section-title, #flight-details-popup .fd-sidebar .pricing-section .popup-section-title, #booking-details-modal .fd-sidebar .pricing-section .popup-section-title { margin-bottom: 6px; } #booking-flight-panel .details-section .detail-items, #flight-details-popup .details-section .detail-items, #booking-details-modal .details-section .detail-items { flex: 1; } #booking-flight-panel .pricing-section .pricing-details, #flight-details-popup .pricing-section .pricing-details, #booking-details-modal .pricing-section .pricing-details { flex: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; background: transparent; border: none; border-radius: 0; padding: 0; min-height: 0; } #booking-flight-panel .pricing-section .price-main, #flight-details-popup .pricing-section .price-main, #booking-details-modal .pricing-section .price-main { gap: 6px; width: 100%; align-items: flex-start !important; text-align: left; } #booking-flight-panel .pricing-section .price-value, #flight-details-popup .pricing-section .price-value, #booking-flight-panel .pricing-section .actions-price-display .current-price, #flight-details-popup .pricing-section .actions-price-display .current-price, #booking-details-modal .pricing-section .price-value { font-family: var(--fd-font); font-size: 28px; font-weight: 700; letter-spacing: -0.03em; color: var(--fd-text); text-shadow: none; background: none; -webkit-text-fill-color: currentcolor; text-align: left !important; line-height: 1.1; } #booking-flight-panel .pricing-section .actions-price-display, #flight-details-popup .pricing-section .actions-price-display, #booking-details-modal .pricing-section .actions-price-display { width: 100%; text-align: left !important; } @media (min-width: 769px) { #booking-flight-panel .route-details.fd-route-flow, #flight-details-popup .route-details.fd-route-flow, #booking-details-modal .route-details.fd-route-flow { grid-template-columns: minmax(0, 1fr) minmax(56px, auto) minmax(0, 1fr); gap: 0 12px; } #booking-flight-panel .airport-code-large, #flight-details-popup .airport-code-large, #booking-details-modal .airport-code-large { font-size: 18px; } #booking-flight-panel .fd-aircraft-image-wrap, #flight-details-popup .fd-aircraft-image-wrap, #booking-details-modal .fd-aircraft-image-wrap { min-height: 200px; max-height: none; } } #booking-flight-panel .pricing-section .actions-price-display .price-meta, #flight-details-popup .pricing-section .actions-price-display .price-meta, #booking-details-modal .pricing-section .actions-price-display .price-meta, #booking-flight-panel .pricing-section .actions-price-display .original-price, #flight-details-popup .pricing-section .actions-price-display .original-price, #booking-details-modal .pricing-section .actions-price-display .original-price, #booking-flight-panel .pricing-section .actions-price-display .savings-line, #flight-details-popup .pricing-section .actions-price-display .savings-line, #booking-details-modal .pricing-section .actions-price-display .savings-line { display: none; } #booking-flight-panel .pricing-section .actions-price-display--estimated, #flight-details-popup .pricing-section .actions-price-display--estimated, #booking-details-modal .pricing-section .actions-price-display--estimated { gap: 4px; align-items: flex-start; } #booking-flight-panel .pricing-section .actions-price-display--estimated-detail, #flight-details-popup .pricing-section .actions-price-display--estimated-detail, #booking-details-modal .pricing-section .actions-price-display--estimated-detail { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; width: 100%; } #booking-flight-panel .pricing-section .actions-price-display--estimated-detail .estimated-from, #flight-details-popup .pricing-section .actions-price-display--estimated-detail .estimated-from, #booking-details-modal .pricing-section .actions-price-display--estimated-detail .estimated-from, #booking-flight-panel .pricing-section .actions-price-display--estimated-detail .estimated-request, #flight-details-popup .pricing-section .actions-price-display--estimated-detail .estimated-request, #booking-details-modal .pricing-section .actions-price-display--estimated-detail .estimated-request { font-family: var(--fd-font); font-size: 12px; font-weight: 500; letter-spacing: 0.01em; line-height: 1.25; color: var(--fd-label); } #booking-flight-panel .pricing-section .actions-price-display--estimated-detail .price-line, #flight-details-popup .pricing-section .actions-price-display--estimated-detail .price-line, #booking-details-modal .pricing-section .actions-price-display--estimated-detail .price-line { width: 100%; } #booking-flight-panel .pricing-section .actions-price-display .estimated-price-label, #flight-details-popup .pricing-section .actions-price-display .estimated-price-label, #booking-details-modal .pricing-section .actions-price-display .estimated-price-label { display: inline-flex; align-items: center; gap: 0.35em; font-size: 12px; font-weight: 500; letter-spacing: 0.01em; color: var(--fd-label); } #booking-flight-panel .pricing-section .actions-price-display .estimated-price-label__sep, #flight-details-popup .pricing-section .actions-price-display .estimated-price-label__sep, #booking-details-modal .pricing-section .actions-price-display .estimated-price-label__sep { width: 2px; height: 2px; border-radius: 50%; background: currentColor; opacity: 0.45; flex: 0 0 auto; } #booking-flight-panel .pricing-section.has-booking-info .pricing-details, #flight-details-popup .pricing-section.has-booking-info .pricing-details, #booking-details-modal .pricing-section.has-booking-info .pricing-details { flex-direction: column; align-items: stretch !important; justify-content: flex-start; gap: 0; min-height: 0; } #booking-flight-panel .fd-booking-details, #flight-details-popup .fd-booking-details, #booking-details-modal .fd-booking-details { display: flex; flex-direction: column; width: 100%; padding: 0; background: transparent; border: none; box-shadow: none; } #booking-flight-panel .fd-rail .fd-rail-booking:not([hidden]), #flight-details-popup .fd-rail .fd-rail-booking:not([hidden]), #booking-details-modal .fd-rail .fd-rail-booking:not([hidden]) { flex-shrink: 0; padding: 10px 16px 12px; border-top: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .fd-booking-panel, #flight-details-popup .fd-booking-panel, #booking-details-modal .fd-booking-panel { display: flex; flex-direction: column; gap: 0; width: 100%; } #booking-flight-panel .fd-booking-panel__status, #flight-details-popup .fd-booking-panel__status, #booking-details-modal .fd-booking-panel__status { margin: 0 0 10px; font-family: var(--fd-font); font-size: 13px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.35; } #booking-flight-panel .fd-booking-panel .popup-section-title, #flight-details-popup .fd-booking-panel .popup-section-title, #booking-details-modal .fd-booking-panel .popup-section-title { margin: 0 0 6px; } #booking-flight-panel .fd-booking-facts, #flight-details-popup .fd-booking-facts, #booking-details-modal .fd-booking-facts { margin: 0; } #booking-flight-panel .fd-booking-panel__ref, #flight-details-popup .fd-booking-panel__ref, #booking-details-modal .fd-booking-panel__ref { font-variant-numeric: tabular-nums; letter-spacing: 0.02em; } #booking-flight-panel .fd-status-text, #flight-details-popup .fd-status-text, #booking-details-modal .fd-status-text, #booking-flight-panel .fd-booking-status-text, #flight-details-popup .fd-booking-status-text, #booking-details-modal .fd-booking-status-text { display: inline; padding: 0; border: none; border-radius: 0; background: transparent; box-shadow: none; font-weight: 600; } #booking-flight-panel .fd-status-text--available, #flight-details-popup .fd-status-text--available, #booking-details-modal .fd-status-text--available, #booking-flight-panel .fd-booking-status-text--confirmed, #flight-details-popup .fd-booking-status-text--confirmed, #booking-details-modal .fd-booking-status-text--confirmed, #booking-flight-panel .fd-booking-status-text--completed, #flight-details-popup .fd-booking-status-text--completed, #booking-details-modal .fd-booking-status-text--completed { color: #248a3d; } #booking-flight-panel .fd-status-text--unavailable, #flight-details-popup .fd-status-text--unavailable, #booking-details-modal .fd-status-text--unavailable, #booking-flight-panel .fd-booking-status-text--cancelled, #flight-details-popup .fd-booking-status-text--cancelled, #booking-details-modal .fd-booking-status-text--cancelled, #booking-flight-panel .fd-booking-status-text--declined, #flight-details-popup .fd-booking-status-text--declined, #booking-details-modal .fd-booking-status-text--declined { color: #d70015; } #booking-flight-panel .fd-status-text--pending, #flight-details-popup .fd-status-text--pending, #booking-details-modal .fd-status-text--pending, #booking-flight-panel .fd-booking-status-text--awaiting, #flight-details-popup .fd-booking-status-text--awaiting, #booking-details-modal .fd-booking-status-text--awaiting { color: #c2410c; } #booking-flight-panel .fd-status-text--neutral, #flight-details-popup .fd-status-text--neutral, #booking-details-modal .fd-status-text--neutral { color: var(--fd-text); } :root[data-theme="dark"] #booking-flight-panel .fd-status-text--available, :root[data-theme="dark"] #flight-details-popup .fd-status-text--available, :root[data-theme="dark"] #booking-details-modal .fd-status-text--available, :root[data-theme="dark"] #booking-flight-panel .fd-booking-status-text--confirmed, :root[data-theme="dark"] #flight-details-popup .fd-booking-status-text--confirmed, :root[data-theme="dark"] #booking-details-modal .fd-booking-status-text--confirmed, :root[data-theme="dark"] #booking-flight-panel .fd-booking-status-text--completed, :root[data-theme="dark"] #flight-details-popup .fd-booking-status-text--completed, :root[data-theme="dark"] #booking-details-modal .fd-booking-status-text--completed { color: #34c759; } :root[data-theme="dark"] #booking-flight-panel .fd-status-text--unavailable, :root[data-theme="dark"] #flight-details-popup .fd-status-text--unavailable, :root[data-theme="dark"] #booking-details-modal .fd-status-text--unavailable, :root[data-theme="dark"] #booking-flight-panel .fd-booking-status-text--cancelled, :root[data-theme="dark"] #flight-details-popup .fd-booking-status-text--cancelled, :root[data-theme="dark"] #booking-details-modal .fd-booking-status-text--cancelled, :root[data-theme="dark"] #booking-flight-panel .fd-booking-status-text--declined, :root[data-theme="dark"] #flight-details-popup .fd-booking-status-text--declined, :root[data-theme="dark"] #booking-details-modal .fd-booking-status-text--declined { color: #ff6961; } :root[data-theme="dark"] #booking-flight-panel .fd-status-text--pending, :root[data-theme="dark"] #flight-details-popup .fd-status-text--pending, :root[data-theme="dark"] #booking-details-modal .fd-status-text--pending, :root[data-theme="dark"] #booking-flight-panel .fd-booking-status-text--awaiting, :root[data-theme="dark"] #flight-details-popup .fd-booking-status-text--awaiting, :root[data-theme="dark"] #booking-details-modal .fd-booking-status-text--awaiting { color: #ff9f0a; } #booking-flight-panel .fd-booking-details-card, #flight-details-popup .fd-booking-details-card, #booking-details-modal .fd-booking-details-card { display: flex; flex-direction: column; gap: 12px; width: 100%; padding: 0; background: transparent; border: none; border-radius: 0; box-shadow: none; } #booking-flight-panel .fd-booking-details-card__status, #flight-details-popup .fd-booking-details-card__status, #booking-details-modal .fd-booking-details-card__status { display: flex; justify-content: flex-start; width: 100%; } #booking-flight-panel .fd-booking-details-card__status .status-badge, #flight-details-popup .fd-booking-details-card__status .status-badge, #booking-details-modal .fd-booking-details-card__status .status-badge { display: inline; padding: 0; border-radius: 0; background: transparent; font-family: var(--fd-font); font-size: 13px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.35; white-space: normal; text-align: left; } #booking-flight-panel .fd-booking-details-card .popup-section-title, #flight-details-popup .fd-booking-details-card .popup-section-title, #booking-details-modal .fd-booking-details-card .popup-section-title { margin: 0; } #booking-flight-panel .fd-booking-details-card__list, #flight-details-popup .fd-booking-details-card__list, #booking-details-modal .fd-booking-details-card__list { display: flex; flex-direction: column; gap: 0; margin: 0; } #booking-flight-panel .fd-booking-details-card__row, #flight-details-popup .fd-booking-details-card__row, #booking-details-modal .fd-booking-details-card__row { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 10px 0; border-bottom: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .fd-booking-details-card__row:last-child, #flight-details-popup .fd-booking-details-card__row:last-child, #booking-details-modal .fd-booking-details-card__row:last-child { border-bottom: none; padding-bottom: 0; } #booking-flight-panel .fd-booking-details-card__row .detail-label, #flight-details-popup .fd-booking-details-card__row .detail-label, #booking-details-modal .fd-booking-details-card__row .detail-label, #booking-flight-panel .fd-booking-details-card__row .detail-value, #flight-details-popup .fd-booking-details-card__row .detail-value, #booking-details-modal .fd-booking-details-card__row .detail-value { margin: 0; } #booking-flight-panel .fd-booking-details-card__row .detail-label, #flight-details-popup .fd-booking-details-card__row .detail-label, #booking-details-modal .fd-booking-details-card__row .detail-label { font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fd-label); } #booking-flight-panel .fd-booking-details-card__row .detail-value, #flight-details-popup .fd-booking-details-card__row .detail-value, #booking-details-modal .fd-booking-details-card__row .detail-value { font-size: 14px; font-weight: 500; color: var(--fd-text); line-height: 1.35; } #booking-flight-panel .fd-booking-details-card__ref, #flight-details-popup .fd-booking-details-card__ref, #booking-details-modal .fd-booking-details-card__ref { font-variant-numeric: tabular-nums; letter-spacing: 0.02em; } #booking-flight-panel .fd-booking-details-card__status .status-badge.status-awaiting, #flight-details-popup .fd-booking-details-card__status .status-badge.status-awaiting, #booking-details-modal .fd-booking-details-card__status .status-badge.status-awaiting { color: #c2410c; } #booking-flight-panel .fd-booking-details-card__status .status-badge.status-confirmed, #flight-details-popup .fd-booking-details-card__status .status-badge.status-confirmed, #booking-details-modal .fd-booking-details-card__status .status-badge.status-confirmed { color: #248a3d; } #booking-flight-panel .fd-booking-details-card__status .status-badge.status-completed, #flight-details-popup .fd-booking-details-card__status .status-badge.status-completed, #booking-details-modal .fd-booking-details-card__status .status-badge.status-completed { color: #1d4ed8; } #booking-flight-panel .fd-booking-details-card__status .status-badge.status-cancelled, #flight-details-popup .fd-booking-details-card__status .status-badge.status-cancelled, #booking-details-modal .fd-booking-details-card__status .status-badge.status-cancelled, #booking-flight-panel .fd-booking-details-card__status .status-badge.status-declined, #flight-details-popup .fd-booking-details-card__status .status-badge.status-declined, #booking-details-modal .fd-booking-details-card__status .status-badge.status-declined { color: #d70015; } #booking-flight-panel .pricing-section .booking-info-details, #flight-details-popup .pricing-section .booking-info-details, #booking-details-modal .pricing-section .booking-info-details { width: 100%; margin-top: 12px; padding-top: 12px; margin-bottom: 2px; border-top: 0.5px solid var(--fd-separator); text-align: left; } #booking-flight-panel .fd-rail-price + .fd-rail-meta, #flight-details-popup .fd-rail-price + .fd-rail-meta, #booking-details-modal .fd-rail-price + .fd-rail-meta { margin-top: 28px; padding-top: 0; } #booking-flight-panel .pricing-section .booking-info-details .detail-item, #flight-details-popup .pricing-section .booking-info-details .detail-item, #booking-details-modal .pricing-section .booking-info-details .detail-item { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin-bottom: 0; padding: 10px 0; border-bottom: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .pricing-section .booking-info-details .booking-status-item, #flight-details-popup .pricing-section .booking-info-details .booking-status-item, #booking-details-modal .pricing-section .booking-info-details .booking-status-item { gap: 8px; } #booking-flight-panel .pricing-section .booking-info-details .detail-item:last-child, #flight-details-popup .pricing-section .booking-info-details .detail-item:last-child, #booking-details-modal .pricing-section .booking-info-details .detail-item:last-child { border-bottom: none; padding-bottom: 0; } #booking-flight-panel .pricing-section .booking-info-details .booking-status, #flight-details-popup .pricing-section .booking-info-details .booking-status, #booking-details-modal .pricing-section .booking-info-details .booking-status { display: flex; align-items: center; margin: 0; width: 100%; } #booking-flight-panel .pricing-section .booking-info-details .detail-label, #flight-details-popup .pricing-section .booking-info-details .detail-label, #booking-details-modal .pricing-section .booking-info-details .detail-label { font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fd-label); line-height: 1.2; } #booking-flight-panel .pricing-section .booking-info-details .detail-value, #flight-details-popup .pricing-section .booking-info-details .detail-value, #booking-details-modal .pricing-section .booking-info-details .detail-value { font-size: 14px; font-weight: 500; color: var(--fd-text); line-height: 1.35; word-break: break-word; } #booking-flight-panel .pricing-section .booking-info-details .status-badge, #flight-details-popup .pricing-section .booking-info-details .status-badge, #booking-details-modal .pricing-section .booking-info-details .status-badge { display: inline-flex; align-items: center; justify-content: center; padding: 4px 10px; border-radius: var(--fd-radius-pill); font-family: var(--fd-font); font-size: 11px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.2; white-space: normal; max-width: 100%; overflow: hidden; text-overflow: ellipsis; } #booking-flight-panel .pricing-section .booking-info-details .status-badge.status-awaiting, #flight-details-popup .pricing-section .booking-info-details .status-badge.status-awaiting, #booking-details-modal .pricing-section .booking-info-details .status-badge.status-awaiting { background: rgba(245, 158, 11, 0.12); color: #c2410c; } #booking-flight-panel .pricing-section .booking-info-details .status-badge.status-confirmed, #flight-details-popup .pricing-section .booking-info-details .status-badge.status-confirmed, #booking-details-modal .pricing-section .booking-info-details .status-badge.status-confirmed { background: rgba(34, 197, 94, 0.12); color: #15803d; } #booking-flight-panel .pricing-section .booking-info-details .status-badge.status-completed, #flight-details-popup .pricing-section .booking-info-details .status-badge.status-completed, #booking-details-modal .pricing-section .booking-info-details .status-badge.status-completed { background: rgba(59, 130, 246, 0.12); color: #1d4ed8; } #booking-flight-panel .pricing-section .booking-info-details .status-badge.status-declined, #flight-details-popup .pricing-section .booking-info-details .status-badge.status-declined, #booking-details-modal .pricing-section .booking-info-details .status-badge.status-declined, #booking-flight-panel .pricing-section .booking-info-details .status-badge.status-cancelled, #flight-details-popup .pricing-section .booking-info-details .status-badge.status-cancelled, #booking-details-modal .pricing-section .booking-info-details .status-badge.status-cancelled { background: rgba(255, 59, 48, 0.1); color: #d70015; } @media (min-width: 901px) { #booking-flight-panel .fd-rail.info-section:has(.has-booking-info), #flight-details-popup .fd-rail.info-section:has(.has-booking-info), #booking-details-modal .fd-rail.info-section:has(.has-booking-info) { padding-bottom: calc(var(--fd-dock-height) + 56px); } } @media (max-width: 768px) { #booking-flight-panel .flight-info-grid, #booking-details-modal .flight-info-grid { align-items: stretch; } #booking-flight-panel .info-section, #flight-details-popup .info-section, #booking-details-modal .info-section { height: auto; } #booking-flight-panel .airport-code-large, #flight-details-popup .airport-code-large, #booking-details-modal .airport-code-large { font-size: 18px; } #booking-flight-panel .route-details.fd-route-flow, #flight-details-popup .route-details.fd-route-flow, #booking-details-modal .route-details.fd-route-flow { grid-template-columns: minmax(0, 1fr) minmax(48px, auto) minmax(0, 1fr); gap: 0 10px; } #booking-flight-panel .fd-route-connector, #flight-details-popup .fd-route-connector, #booking-details-modal .fd-route-connector { padding-top: 22px; } #booking-flight-panel .fd-route-arrow, #flight-details-popup .fd-route-arrow, #booking-details-modal .fd-route-arrow { width: 28px; } #booking-flight-panel .fd-route-legs-note, #flight-details-popup .fd-route-legs-note, #booking-details-modal .fd-route-legs-note { white-space: normal; } #booking-flight-panel .fd-route-statsbar-item, #flight-details-popup .fd-route-statsbar-item, #booking-details-modal .fd-route-statsbar-item { padding: 0 12px; } #booking-flight-panel .fd-aircraft-body, #flight-details-popup .fd-aircraft-body, #booking-flight-panel .fd-aircraft-stack, #flight-details-popup .fd-aircraft-stack, #booking-flight-panel .aircraft-details, #flight-details-popup .aircraft-details, #booking-details-modal .fd-aircraft-body, #booking-details-modal .fd-aircraft-stack, #booking-details-modal .aircraft-details { grid-template-columns: 1fr; gap: 12px; } #booking-flight-panel .fd-aircraft-image-wrap, #flight-details-popup .fd-aircraft-image-wrap, #booking-details-modal .fd-aircraft-image-wrap { aspect-ratio: 16 / 9; max-height: 200px; min-height: 0; } #booking-flight-panel .fd-aircraft-photo, #flight-details-popup .fd-aircraft-photo, #booking-details-modal .fd-aircraft-photo { object-fit: cover; max-height: none; } #booking-flight-panel .fd-specs-grid, #flight-details-popup .fd-specs-grid, #booking-details-modal .fd-specs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } #booking-flight-panel .pricing-section .price-value, #flight-details-popup .pricing-section .price-value, #booking-flight-panel .pricing-section .actions-price-display .current-price, #flight-details-popup .pricing-section .actions-price-display .current-price, #booking-details-modal .pricing-section .price-value { font-size: 24px; } } #booking-flight-panel .fd-ml-leg-row, #flight-details-popup .fd-ml-leg-row, #booking-details-modal .fd-ml-leg-row { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: 0 12px; padding: 10px 0; border-bottom: 0.5px solid var(--fd-separator-light, rgba(60, 60, 67, 0.14)); font-family: var(--fd-font, -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif); } #booking-flight-panel .fd-ml-leg-row:last-child, #flight-details-popup .fd-ml-leg-row:last-child, #booking-details-modal .fd-ml-leg-row:last-child { border-bottom: none; padding-bottom: 2px; } #booking-flight-panel .fd-ml-leg-index, #flight-details-popup .fd-ml-leg-index, #booking-details-modal .fd-ml-leg-index { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: var(--fd-fill, rgba(120, 120, 128, 0.16)); font-size: 11px; font-weight: 700; line-height: 1; color: var(--fd-text-secondary, #636366); } #booking-flight-panel .fd-ml-leg-body, #flight-details-popup .fd-ml-leg-body, #booking-details-modal .fd-ml-leg-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; } #booking-flight-panel .fd-ml-leg-topline, #flight-details-popup .fd-ml-leg-topline, #booking-details-modal .fd-ml-leg-topline { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; min-width: 0; } #booking-flight-panel .fd-ml-leg-route, #flight-details-popup .fd-ml-leg-route, #booking-details-modal .fd-ml-leg-route { display: flex; flex-wrap: nowrap; align-items: baseline; gap: 6px; min-width: 0; } #booking-flight-panel .fd-ml-leg-endpoint, #flight-details-popup .fd-ml-leg-endpoint, #booking-details-modal .fd-ml-leg-endpoint { display: inline-flex; align-items: baseline; gap: 5px; min-width: 0; } #booking-flight-panel .fd-ml-leg-code, #flight-details-popup .fd-ml-leg-code, #booking-details-modal .fd-ml-leg-code { flex-shrink: 0; font-size: 14px; font-weight: 700; letter-spacing: 0.01em; color: var(--fd-text, #1d1d1f); } #booking-flight-panel .fd-ml-leg-city, #flight-details-popup .fd-ml-leg-city, #booking-details-modal .fd-ml-leg-city { min-width: 0; font-size: 12px; font-weight: 400; color: var(--fd-text-secondary, #636366); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } #booking-flight-panel .fd-ml-leg-arrow, #flight-details-popup .fd-ml-leg-arrow, #booking-details-modal .fd-ml-leg-arrow { position: relative; display: inline-block; flex-shrink: 0; width: 14px; height: 1px; margin: 0; background: var(--fd-separator, rgba(60, 60, 67, 0.22)); align-self: center; } #booking-flight-panel .fd-ml-leg-arrow::after, #flight-details-popup .fd-ml-leg-arrow::after, #booking-details-modal .fd-ml-leg-arrow::after { content: ""; position: absolute; right: -1px; top: -2px; border-top: 2.5px solid transparent; border-bottom: 2.5px solid transparent; border-left: 4px solid var(--fd-label, #8e8e93); } #booking-flight-panel .fd-ml-leg-meta, #flight-details-popup .fd-ml-leg-meta, #booking-details-modal .fd-ml-leg-meta { font-size: 12px; font-weight: 500; color: var(--fd-text-secondary, #636366); font-variant-numeric: tabular-nums; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } #booking-flight-panel .fd-ml-leg-metrics, #flight-details-popup .fd-ml-leg-metrics, #booking-details-modal .fd-ml-leg-metrics, #booking-flight-panel .fd-ml-leg-footer, #flight-details-popup .fd-ml-leg-footer, #booking-details-modal .fd-ml-leg-footer { display: none; } #booking-flight-panel .fd-ml-leg-price, #flight-details-popup .fd-ml-leg-price, #booking-details-modal .fd-ml-leg-price { flex-shrink: 0; font-size: 14px; font-weight: 700; letter-spacing: -0.01em; color: var(--fd-text, #1d1d1f); font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; min-width: 76px; } @media (max-width: 900px) { #booking-flight-panel .fd-ml-leg-row, #flight-details-popup .fd-ml-leg-row, #booking-details-modal .fd-ml-leg-row { gap: 0 10px; } #booking-flight-panel .fd-ml-leg-body, #flight-details-popup .fd-ml-leg-body, #booking-details-modal .fd-ml-leg-body { gap: 4px; } #booking-flight-panel .fd-ml-leg-topline, #flight-details-popup .fd-ml-leg-topline, #booking-details-modal .fd-ml-leg-topline { display: block; } #booking-flight-panel .fd-ml-leg-topline > .fd-ml-leg-price, #flight-details-popup .fd-ml-leg-topline > .fd-ml-leg-price, #booking-details-modal .fd-ml-leg-topline > .fd-ml-leg-price { display: none; } #booking-flight-panel .fd-ml-leg-meta, #flight-details-popup .fd-ml-leg-meta, #booking-details-modal .fd-ml-leg-meta { display: none; } #booking-flight-panel .fd-ml-leg-metrics, #flight-details-popup .fd-ml-leg-metrics, #booking-details-modal .fd-ml-leg-metrics { display: block; margin: 0; font-size: 13px; font-weight: 500; line-height: 1.3; color: var(--fd-text-secondary, #636366); font-variant-numeric: tabular-nums; } #booking-flight-panel .fd-ml-leg-footer, #flight-details-popup .fd-ml-leg-footer, #booking-details-modal .fd-ml-leg-footer { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; min-width: 0; } #booking-flight-panel .fd-ml-leg-aircraft, #flight-details-popup .fd-ml-leg-aircraft, #booking-details-modal .fd-ml-leg-aircraft { min-width: 0; font-size: 14px; font-weight: 500; line-height: 1.3; color: var(--fd-text, #1d1d1f); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } #booking-flight-panel .fd-ml-leg-price--mobile, #flight-details-popup .fd-ml-leg-price--mobile, #booking-details-modal .fd-ml-leg-price--mobile { display: inline; min-width: 0; } } @media (min-width: 1025px) { #booking-flight-panel, #flight-details-popup, #booking-details-modal { --fd-rail-width: 240px; --fd-shell-inset-x: 16px; --fd-shell-inset-bottom: 16px; --fd-media-col: 50%; --fd-media-gap: 10px; --fd-shell: rgba(255, 255, 255, 0.34); --fd-shell-border: rgba(14, 26, 44, 0.12); --fd-shell-shadow: none; --fd-card: #ffffff; --fd-card-rim: rgba(14, 26, 44, 0.12); --fd-card-blur: none; --fd-card-shadow: none; --fd-dock: var(--fd-card); --fd-dock-rim: var(--fd-card-rim); --fd-dock-shadow: none; --fd-dock-blur: none; --fd-control: transparent; --fd-control-rim: rgba(14, 26, 44, 0.18); --fd-control-shadow: none; --fd-control-blur: none; --fd-fill: #eceff3; --fd-fill-elevated: #e6eaf0; } #flight-details-popup .flight-popup, #booking-details-modal .flight-popup { width: min(96vw, 1240px); max-height: min(calc(100vh - 48px), 880px); } :root[data-theme="dark"] #booking-flight-panel, :root[data-theme="dark"] #flight-details-popup, :root[data-theme="dark"] #booking-details-modal { --fd-shell: rgba(18, 20, 26, 0.38); --fd-shell-border: rgba(255, 255, 255, 0.14); --fd-shell-shadow: none; --fd-card: #12141a; --fd-card-rim: rgba(255, 255, 255, 0.12); --fd-card-shadow: none; --fd-dock: var(--fd-card); --fd-dock-rim: var(--fd-card-rim); --fd-dock-shadow: none; --fd-dock-blur: none; --fd-control: transparent; --fd-control-rim: rgba(255, 255, 255, 0.18); --fd-control-shadow: none; --fd-fill: #181b22; --fd-fill-elevated: #1c2028; } #flight-details-popup.flight-popup-overlay, #booking-details-modal.flight-popup-overlay { background: rgba(14, 26, 44, 0.22); } :root[data-theme="dark"] #flight-details-popup.flight-popup-overlay, :root[data-theme="dark"] #booking-details-modal.flight-popup-overlay { background: rgba(10, 11, 14, 0.42); } #flight-details-popup .flight-popup, #booking-details-modal .flight-popup { background: var(--fd-shell); border: 1px solid var(--fd-shell-border); box-shadow: none; backdrop-filter: saturate(180%) blur(40px); -webkit-backdrop-filter: saturate(180%) blur(40px); } #booking-flight-panel .popup-content, #flight-details-popup .popup-content, #booking-details-modal .popup-content { padding: 14px 16px 16px; overflow: hidden; background: transparent; } #booking-flight-panel .fd-layout, #flight-details-popup .fd-layout, #booking-details-modal .fd-layout { grid-template-columns: minmax(0, 1fr) var(--fd-rail-width); gap: 10px; } #booking-flight-panel .fd-head, #flight-details-popup .fd-head, #booking-details-modal .fd-head { grid-template-columns: var(--fd-media-col) minmax(0, 1fr); gap: var(--fd-media-gap); min-height: 176px; } #booking-flight-panel .fd-map.route-map-container, #flight-details-popup .fd-map.route-map-container, #booking-details-modal .fd-map.route-map-container { min-height: 176px; } #booking-flight-panel #flight-route-map, #flight-details-popup #flight-route-map, #booking-details-modal #flight-route-map { min-height: 176px; } #booking-flight-panel .fd-main > .info-section.fd-aircraft, #flight-details-popup .fd-main > .info-section.fd-aircraft, #booking-details-modal .fd-main > .info-section.fd-aircraft { display: grid; grid-template-columns: var(--fd-media-col) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); column-gap: var(--fd-media-gap); row-gap: 0; align-items: stretch; padding: 0; background: transparent; border: none; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; } #booking-flight-panel .fd-main > .fd-aircraft > .popup-section-title, #flight-details-popup .fd-main > .fd-aircraft > .popup-section-title, #booking-details-modal .fd-main > .fd-aircraft > .popup-section-title { grid-column: 2; grid-row: 1; z-index: 2; align-self: start; margin: 0; padding: 12px 14px 0; background: transparent; border: none; border-radius: 0; box-shadow: none; line-height: 1.3; } #booking-flight-panel .fd-aircraft-body, #flight-details-popup .fd-aircraft-body, #booking-details-modal .fd-aircraft-body { display: contents !important; } #booking-flight-panel .fd-aircraft-image-wrap, #flight-details-popup .fd-aircraft-image-wrap, #booking-details-modal .fd-aircraft-image-wrap { grid-column: 1; grid-row: 1; min-height: 200px; max-height: none; width: 100%; max-width: 100%; height: auto; align-self: stretch; background: transparent; border: 1px solid var(--fd-separator); border-radius: 0; overflow: hidden; box-sizing: border-box; transition: none; } :root[data-theme="dark"] #booking-flight-panel .fd-aircraft-image-wrap, :root[data-theme="dark"] #flight-details-popup .fd-aircraft-image-wrap, :root[data-theme="dark"] #booking-details-modal .fd-aircraft-image-wrap { border-color: rgba(255, 255, 255, 0.14); } #booking-flight-panel .fd-aircraft-image-wrap:hover, #flight-details-popup .fd-aircraft-image-wrap:hover, #booking-details-modal .fd-aircraft-image-wrap:hover, #booking-flight-panel .aircraft-image-wrapper.fd-aircraft-image-wrap:hover, #flight-details-popup .aircraft-image-wrapper.fd-aircraft-image-wrap:hover, #booking-details-modal .aircraft-image-wrapper.fd-aircraft-image-wrap:hover { background: transparent; border: 1px solid var(--fd-separator); border-color: var(--fd-separator); box-shadow: none; transform: none; } :root[data-theme="dark"] #booking-flight-panel .fd-aircraft-image-wrap:hover, :root[data-theme="dark"] #flight-details-popup .fd-aircraft-image-wrap:hover, :root[data-theme="dark"] #booking-details-modal .fd-aircraft-image-wrap:hover, :root[data-theme="dark"] #booking-flight-panel .aircraft-image-wrapper.fd-aircraft-image-wrap:hover, :root[data-theme="dark"] #flight-details-popup .aircraft-image-wrapper.fd-aircraft-image-wrap:hover, :root[data-theme="dark"] #booking-details-modal .aircraft-image-wrapper.fd-aircraft-image-wrap:hover { border-color: rgba(255, 255, 255, 0.14); } #booking-flight-panel .fd-aircraft-photo, #flight-details-popup .fd-aircraft-photo, #booking-details-modal .fd-aircraft-photo { border-radius: 0; cursor: default; display: block; width: 100%; height: 100%; object-fit: cover; transform: none; transition: none; } #booking-flight-panel .fd-aircraft-photo:hover, #flight-details-popup .fd-aircraft-photo:hover, #booking-details-modal .fd-aircraft-photo:hover, #booking-flight-panel .aircraft-image-large.fd-aircraft-photo:hover, #flight-details-popup .aircraft-image-large.fd-aircraft-photo:hover, #booking-details-modal .aircraft-image-large.fd-aircraft-photo:hover { transform: none; cursor: default; } #booking-flight-panel .fd-aircraft-photo:hover + .aircraft-image-popup, #flight-details-popup .fd-aircraft-photo:hover + .aircraft-image-popup, #booking-details-modal .fd-aircraft-photo:hover + .aircraft-image-popup, #booking-flight-panel .fd-aircraft .aircraft-image-popup:hover, #flight-details-popup .fd-aircraft .aircraft-image-popup:hover, #booking-details-modal .fd-aircraft .aircraft-image-popup:hover, #booking-flight-panel .fd-aircraft .aircraft-image-popup, #flight-details-popup .fd-aircraft .aircraft-image-popup, #booking-details-modal .fd-aircraft .aircraft-image-popup { display: none !important; transform: none; opacity: 0; pointer-events: none; } #booking-flight-panel .fd-aircraft .aircraft-info, #flight-details-popup .fd-aircraft .aircraft-info, #booking-details-modal .fd-aircraft .aircraft-info { grid-column: 2; grid-row: 1; z-index: 1; align-self: stretch; padding: 34px 14px 12px; box-sizing: border-box; background: var(--fd-card); border: 1px solid var(--fd-card-rim); border-radius: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; } #booking-flight-panel .pricing-section .price-value, #flight-details-popup .pricing-section .price-value, #booking-flight-panel .pricing-section .actions-price-display .current-price, #flight-details-popup .pricing-section .actions-price-display .current-price, #booking-details-modal .pricing-section .price-value { font-size: 30px; } } @media (min-width: 901px) { #booking-flight-panel .fd-rail.info-section > .fd-rail-price.info-section, #flight-details-popup .fd-rail.info-section > .fd-rail-price.info-section, #booking-details-modal .fd-rail.info-section > .fd-rail-price.info-section, #booking-flight-panel .fd-rail.info-section > .fd-rail-meta.info-section, #flight-details-popup .fd-rail.info-section > .fd-rail-meta.info-section, #booking-details-modal .fd-rail.info-section > .fd-rail-meta.info-section { border: none; border-radius: 0; padding: 0; background: transparent; box-shadow: none; } #booking-flight-panel .fd-rail.info-section > .fd-rail-price.info-section, #flight-details-popup .fd-rail.info-section > .fd-rail-price.info-section, #booking-details-modal .fd-rail.info-section > .fd-rail-price.info-section { padding-bottom: 0; border-bottom: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .fd-rail.info-section > .fd-rail-price.info-section + .fd-rail-meta, #flight-details-popup .fd-rail.info-section > .fd-rail-price.info-section + .fd-rail-meta, #booking-details-modal .fd-rail.info-section > .fd-rail-price.info-section + .fd-rail-meta { margin-top: 28px; padding-top: 0; } #booking-flight-panel .fd-rail.info-section > .fd-rail-price.info-section:has(.actions-price-display--estimated) + .fd-rail-meta, #flight-details-popup .fd-rail.info-section > .fd-rail-price.info-section:has(.actions-price-display--estimated) + .fd-rail-meta, #booking-details-modal .fd-rail.info-section > .fd-rail-price.info-section:has(.actions-price-display--estimated) + .fd-rail-meta { margin-top: 36px; } } @media (min-width: 901px) { #flight-details-popup .flight-popup, #booking-details-modal .flight-popup { position: relative; display: flex; flex-direction: column; overflow: hidden; } #flight-details-popup .popup-content, #booking-details-modal .popup-content { flex: 1 1 auto; min-height: 0; overflow: hidden; } #booking-flight-panel .fd-rail.info-section, #flight-details-popup .fd-rail.info-section, #booking-details-modal .fd-rail.info-section { padding-bottom: var(--fd-dock-height); border-radius: 0; border-bottom: none; overflow: hidden; } #booking-flight-panel .fd-rail-actions, #flight-details-popup .fd-rail-actions, #booking-details-modal .fd-rail-actions, #booking-flight-panel .fd-rail-actions.popup-footer, #flight-details-popup .fd-rail-actions.popup-footer, #booking-details-modal .fd-rail-actions.popup-footer { position: absolute; right: var(--fd-shell-inset-x); bottom: var(--fd-shell-inset-bottom); width: var(--fd-rail-width); z-index: 3; margin: 0; box-sizing: border-box; background: var(--fd-dock, var(--fd-surface)); border: 0.5px solid var(--fd-dock-rim, var(--fd-separator-light)); border-radius: 0; box-shadow: none; overflow: hidden; backdrop-filter: var(--fd-dock-blur, none); -webkit-backdrop-filter: var(--fd-dock-blur, none); } :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions.popup-footer, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions.popup-footer, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions.popup-footer { background: var(--fd-dock, var(--fd-surface)); border-color: var(--fd-dock-rim, rgba(255, 255, 255, 0.14)); box-shadow: var(--fd-dock-shadow, var(--shadow-surface-sm)); backdrop-filter: var(--fd-dock-blur, none); -webkit-backdrop-filter: var(--fd-dock-blur, none); } :root[data-theme="dark"] #booking-flight-panel .fd-rail.info-section, :root[data-theme="dark"] #flight-details-popup .fd-rail.info-section, :root[data-theme="dark"] #booking-details-modal .fd-rail.info-section { border-color: rgba(255, 255, 255, 0.14); } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking), #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking), #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) { display: flex !important; flex-direction: column; align-items: stretch; gap: 8px; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) > .action-buttons, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) > .action-buttons, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) > .action-buttons { display: flex; flex-direction: column; width: 100%; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) > .fd-rail-actions-secondary, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) > .fd-rail-actions-secondary, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) > .fd-rail-actions-secondary { display: grid; width: 100%; } } @media (max-width: 900px) { #flight-details-popup.flight-popup-overlay.active, #booking-details-modal.flight-popup-overlay.active { padding: 16px; align-items: stretch; } #flight-details-popup .flight-popup, #booking-details-modal .flight-popup { display: flex; flex-direction: column; width: 100%; max-width: 100%; max-height: min(94vh, 920px); min-height: 0; overflow: hidden; } #booking-flight-panel .popup-content, #flight-details-popup .popup-content, #booking-details-modal .popup-content { display: block !important; flex: 1 1 auto; min-height: 0; overflow-x: hidden !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch; overscroll-behavior-y: contain; touch-action: pan-y; scroll-padding-bottom: max(16px, env(safe-area-inset-bottom, 0px)); padding: 12px 14px max(20px, env(safe-area-inset-bottom, 0px)) !important; } #booking-flight-panel .fd-layout, #flight-details-popup .fd-layout, #booking-details-modal .fd-layout { display: flex; flex-direction: column; gap: 12px; height: auto !important; min-height: 0; } #booking-flight-panel .fd-main, #flight-details-popup .fd-main, #booking-details-modal .fd-main { display: contents; } #booking-flight-panel .fd-head, #flight-details-popup .fd-head, #booking-details-modal .fd-head { display: contents; } #booking-flight-panel .fd-rail.info-section, #flight-details-popup .fd-rail.info-section, #booking-details-modal .fd-rail.info-section { display: contents; border: none; padding: 0; padding-bottom: 0; background: transparent; box-shadow: none; border-radius: 0; } #booking-flight-panel .fd-rail.info-section > .fd-rail-price.info-section, #flight-details-popup .fd-rail.info-section > .fd-rail-price.info-section, #booking-details-modal .fd-rail.info-section > .fd-rail-price.info-section { padding-bottom: 0; border-bottom: none; } #booking-flight-panel .fd-rail-booking:not([hidden]), #flight-details-popup .fd-rail-booking:not([hidden]), #booking-details-modal .fd-rail-booking:not([hidden]) { order: 0; display: flex; flex-direction: column; background: transparent; border: none; padding: 0; box-shadow: none; } #booking-flight-panel .fd-map.route-map-container, #flight-details-popup .fd-map.route-map-container, #booking-details-modal .fd-map.route-map-container, #booking-flight-panel .route-map-container, #flight-details-popup .route-map-container, #booking-details-modal .route-map-container { order: 1; height: 220px; min-height: 220px; max-height: 220px; border-radius: 0; } #booking-flight-panel #flight-route-map, #flight-details-popup #flight-route-map, #booking-details-modal #flight-route-map { height: 220px; min-height: 220px; max-height: 220px; } #booking-flight-panel .fd-route, #flight-details-popup .fd-route, #booking-details-modal .fd-route { order: 2; } #booking-flight-panel .fd-rail-meta .fd-flight-info-items, #flight-details-popup .fd-rail-meta .fd-flight-info-items, #booking-details-modal .fd-rail-meta .fd-flight-info-items { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 14px; row-gap: 10px; align-items: start; } #booking-flight-panel .fd-rail-meta .fd-flight-info-items .detail-item, #flight-details-popup .fd-rail-meta .fd-flight-info-items .detail-item, #booking-details-modal .fd-rail-meta .fd-flight-info-items .detail-item { border-bottom: none; padding: 0; min-width: 0; overflow: hidden; } #booking-flight-panel .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(1), #flight-details-popup .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(1), #booking-details-modal .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(1) { grid-column: 1; grid-row: 1; padding-right: 2px; } #booking-flight-panel .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(2), #flight-details-popup .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(2), #booking-details-modal .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(2) { grid-column: 2; grid-row: 1; padding-left: 2px; border-left: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(3), #flight-details-popup .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(3), #booking-details-modal .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(3) { grid-column: 1; grid-row: 2; margin-top: 0; padding-top: 0; padding-right: 2px; border-top: none; } #booking-flight-panel .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(4), #flight-details-popup .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(4), #booking-details-modal .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(4) { grid-column: 2; grid-row: 2; margin-top: 0; padding-top: 0; padding-left: 2px; border-top: none; border-left: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .fd-rail-meta .fd-flight-info-items .detail-label, #flight-details-popup .fd-rail-meta .fd-flight-info-items .detail-label, #booking-details-modal .fd-rail-meta .fd-flight-info-items .detail-label { margin-bottom: 4px; } #booking-flight-panel .fd-rail-meta .fd-flight-info-items .detail-value, #flight-details-popup .fd-rail-meta .fd-flight-info-items .detail-value, #booking-details-modal .fd-rail-meta .fd-flight-info-items .detail-value { font-size: 13px; line-height: 1.35; word-break: break-word; overflow-wrap: anywhere; } #booking-flight-panel .aircraft-section, #flight-details-popup .aircraft-section, #booking-details-modal .aircraft-section { position: relative; overflow: hidden; min-height: 0; } #booking-flight-panel .aircraft-section .aircraft-details, #flight-details-popup .aircraft-section .aircraft-details, #booking-details-modal .aircraft-section .aircraft-details { position: relative; z-index: auto; } #booking-flight-panel .fd-rail .fd-rail-meta, #flight-details-popup .fd-rail .fd-rail-meta, #booking-details-modal .fd-rail .fd-rail-meta, #booking-flight-panel .fd-aircraft, #flight-details-popup .fd-aircraft, #booking-details-modal .fd-aircraft, #booking-flight-panel .fd-route, #flight-details-popup .fd-route, #booking-details-modal .fd-route, #booking-flight-panel .fd-rail-price, #flight-details-popup .fd-rail-price, #booking-details-modal .fd-rail-price { overflow: hidden; isolation: isolate; min-width: 0; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .btn-text, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .btn-text, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .btn-text { display: inline !important; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn, #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn { flex: 1 1 0 !important; min-width: 0 !important; width: auto !important; min-height: 46px; padding: 0 14px !important; font-size: 0.75rem; border-radius: 0; } #booking-flight-panel .fd-rail-meta, #flight-details-popup .fd-rail-meta, #booking-details-modal .fd-rail-meta { order: 3; } #booking-flight-panel .fd-aircraft, #flight-details-popup .fd-aircraft, #booking-details-modal .fd-aircraft { order: 4; } #booking-flight-panel .fd-rail-price, #flight-details-popup .fd-rail-price, #booking-details-modal .fd-rail-price { order: 5; } #booking-flight-panel .fd-rail .fd-rail-price, #flight-details-popup .fd-rail .fd-rail-price, #booking-details-modal .fd-rail .fd-rail-price, #booking-flight-panel .fd-rail .fd-rail-meta, #flight-details-popup .fd-rail .fd-rail-meta, #booking-details-modal .fd-rail .fd-rail-meta, #booking-flight-panel .fd-rail .fd-rail-booking:not([hidden]), #flight-details-popup .fd-rail .fd-rail-booking:not([hidden]), #booking-details-modal .fd-rail .fd-rail-booking:not([hidden]), #booking-flight-panel .fd-route, #flight-details-popup .fd-route, #booking-details-modal .fd-route, #booking-flight-panel .fd-aircraft, #flight-details-popup .fd-aircraft, #booking-details-modal .fd-aircraft { display: flex; flex-direction: column; background: var(--fd-surface); border: 0.5px solid var(--fd-separator-light); border-radius: 0; padding: 12px 14px; box-shadow: none; } #booking-flight-panel .fd-rail .fd-rail-booking:not([hidden]), #flight-details-popup .fd-rail .fd-rail-booking:not([hidden]), #booking-details-modal .fd-rail .fd-rail-booking:not([hidden]) { border-top: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .fd-rail-actions, #flight-details-popup .fd-rail-actions, #booking-details-modal .fd-rail-actions { position: static; flex-shrink: 0; width: 100%; margin-top: 0; align-items: stretch; justify-content: stretch; gap: 8px; padding: 8px 14px max(8px, env(safe-area-inset-bottom, 0px)) !important; background: transparent; border: none; border-top: 1px solid var(--fd-separator); border-radius: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking { display: flex !important; flex-direction: column; } #booking-flight-panel .fd-rail-actions > .action-buttons, #flight-details-popup .fd-rail-actions > .action-buttons, #booking-details-modal .fd-rail-actions > .action-buttons { width: 100%; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking), #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking), #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) { display: grid !important; grid-template-columns: 44px 44px minmax(0, 1fr); gap: 8px; align-items: stretch; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) > .action-buttons, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) > .action-buttons, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) > .action-buttons, #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) > .fd-rail-actions-secondary, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) > .fd-rail-actions-secondary, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) > .fd-rail-actions-secondary { display: contents !important; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn, #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn, #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn { box-sizing: border-box; flex: none !important; width: 44px !important; min-width: 44px !important; min-height: 46px; padding: 0 !important; border-radius: 50%; background: transparent; border: 1px solid var(--fd-separator); color: var(--fd-text); box-shadow: none; } :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn, :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn { color: #e8e9eb; background: rgba(255, 255, 255, 0.12); border-color: rgba(255, 255, 255, 0.22); } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn i, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn i, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn i, #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn i, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn i, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn i { font-size: 13px; opacity: 0.75; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .fc-share-btn, #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .copy-link-btn { grid-column: 1; grid-row: 1; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn { grid-column: 2; grid-row: 1; } #booking-flight-panel .fd-rail-actions-secondary::before, #flight-details-popup .fd-rail-actions-secondary::before, #booking-details-modal .fd-rail-actions-secondary::before { display: none; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.favorited, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.favorited, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.favorited, #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.is-favorite, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.is-favorite, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.is-favorite { color: #ff3b30; background: transparent; border-color: transparent; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.favorited i, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.favorited i, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.favorited i, #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.is-favorite i, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.is-favorite i, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .favorite-btn.is-favorite i { color: #ff3b30; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking) .book-btn, #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking) .book-btn, #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) .book-btn { grid-column: 3; grid-row: 1; flex: 1 1 auto !important; width: auto !important; min-width: 0; min-height: 46px; font-size: 15px; border-radius: 0; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking { flex-direction: column !important; align-items: stretch; justify-content: stretch; gap: 8px; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking > .fd-booking-action-buttons, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking > .fd-booking-action-buttons, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking > .fd-booking-action-buttons { display: flex !important; width: 100%; min-width: 0; flex-direction: row !important; align-items: stretch; gap: 8px; } :root[data-theme="dark"] #booking-flight-panel .fd-rail-actions, :root[data-theme="dark"] #flight-details-popup .fd-rail-actions, :root[data-theme="dark"] #booking-details-modal .fd-rail-actions { background: var(--color-surface-glass-strong); box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.28); } #booking-flight-panel .fd-rail-price, #flight-details-popup .fd-rail-price, #booking-details-modal .fd-rail-price { align-items: center; text-align: center; padding: 18px 16px 20px; background: linear-gradient( 180deg, var(--fd-surface) 0%, rgba(0, 194, 168, 0.06) 100% ); } :root[data-theme="dark"] #booking-flight-panel .fd-rail-price, :root[data-theme="dark"] #flight-details-popup .fd-rail-price, :root[data-theme="dark"] #booking-details-modal .fd-rail-price { background: linear-gradient( 180deg, var(--fd-surface) 0%, rgba(0, 194, 168, 0.1) 100% ); } #booking-flight-panel .fd-rail-price .popup-section-title, #flight-details-popup .fd-rail-price .popup-section-title, #booking-details-modal .fd-rail-price .popup-section-title { margin-bottom: 6px; font-size: 11px; font-weight: 600; letter-spacing: 0.08em; } #booking-flight-panel .fd-rail-price .pricing-details, #flight-details-popup .fd-rail-price .pricing-details, #booking-details-modal .fd-rail-price .pricing-details, #booking-flight-panel .fd-rail-price .price-main, #flight-details-popup .fd-rail-price .price-main, #booking-details-modal .fd-rail-price .price-main { width: 100%; align-items: center !important; text-align: center; } #booking-flight-panel .fd-rail-price .price-value, #flight-details-popup .fd-rail-price .price-value, #booking-details-modal .fd-rail-price .price-value { font-size: clamp(2rem, 8vw, 2.75rem); font-weight: 700; letter-spacing: -0.04em; line-height: 1.05; text-align: center !important; } #booking-flight-panel .fd-aircraft-body, #flight-details-popup .fd-aircraft-body, #booking-details-modal .fd-aircraft-body { grid-template-columns: 1fr; gap: 12px; } #booking-flight-panel .fd-aircraft-image-wrap, #flight-details-popup .fd-aircraft-image-wrap, #booking-details-modal .fd-aircraft-image-wrap { aspect-ratio: 16 / 9; min-height: 0; max-height: 220px; height: auto; } #booking-flight-panel .fd-specs-grid, #flight-details-popup .fd-specs-grid, #booking-details-modal .fd-specs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } #booking-flight-panel .fd-layout--mobile-flat > .fd-main, #flight-details-popup .fd-layout--mobile-flat > .fd-main, #booking-details-modal .fd-layout--mobile-flat > .fd-main, #booking-flight-panel .fd-layout--mobile-flat > .fd-rail, #flight-details-popup .fd-layout--mobile-flat > .fd-rail, #booking-details-modal .fd-layout--mobile-flat > .fd-rail { display: none !important; } #booking-flight-panel .fd-layout--mobile-flat, #flight-details-popup .fd-layout--mobile-flat, #booking-details-modal .fd-layout--mobile-flat { display: flex !important; flex-direction: column !important; gap: 12px !important; height: auto !important; } #booking-flight-panel .fd-layout--mobile-flat > .fd-map.route-map-container, #flight-details-popup .fd-layout--mobile-flat > .fd-map.route-map-container, #booking-details-modal .fd-layout--mobile-flat > .fd-map.route-map-container, #booking-flight-panel .fd-layout--mobile-flat > .route-map-container, #flight-details-popup .fd-layout--mobile-flat > .route-map-container, #booking-details-modal .fd-layout--mobile-flat > .route-map-container { order: 1; } #booking-flight-panel .fd-layout--mobile-flat > .fd-route, #flight-details-popup .fd-layout--mobile-flat > .fd-route, #booking-details-modal .fd-layout--mobile-flat > .fd-route { order: 2; } #booking-flight-panel .fd-layout--mobile-flat > .fd-rail-meta, #flight-details-popup .fd-layout--mobile-flat > .fd-rail-meta, #booking-details-modal .fd-layout--mobile-flat > .fd-rail-meta { order: 3; } #booking-flight-panel .fd-layout--mobile-flat > .fd-aircraft, #flight-details-popup .fd-layout--mobile-flat > .fd-aircraft, #booking-details-modal .fd-layout--mobile-flat > .fd-aircraft { order: 4; } #booking-flight-panel .fd-layout--mobile-flat > .fd-rail-price, #flight-details-popup .fd-layout--mobile-flat > .fd-rail-price, #booking-details-modal .fd-layout--mobile-flat > .fd-rail-price { order: 5; } #booking-flight-panel .fd-layout--mobile-flat > .fd-rail-booking:not([hidden]), #flight-details-popup .fd-layout--mobile-flat > .fd-rail-booking:not([hidden]), #booking-details-modal .fd-layout--mobile-flat > .fd-rail-booking:not([hidden]) { order: 0; } #booking-flight-panel .fd-layout--mobile-flat > .fd-rail-meta, #flight-details-popup .fd-layout--mobile-flat > .fd-rail-meta, #booking-details-modal .fd-layout--mobile-flat > .fd-rail-meta, #booking-flight-panel .fd-layout--mobile-flat > .fd-rail-price, #flight-details-popup .fd-layout--mobile-flat > .fd-rail-price, #booking-details-modal .fd-layout--mobile-flat > .fd-rail-price, #booking-flight-panel .fd-layout--mobile-flat > .fd-route, #flight-details-popup .fd-layout--mobile-flat > .fd-route, #booking-details-modal .fd-layout--mobile-flat > .fd-route, #booking-flight-panel .fd-layout--mobile-flat > .fd-aircraft, #flight-details-popup .fd-layout--mobile-flat > .fd-aircraft, #booking-details-modal .fd-layout--mobile-flat > .fd-aircraft, #booking-flight-panel .fd-layout--mobile-flat > .fd-rail-booking:not([hidden]), #flight-details-popup .fd-layout--mobile-flat > .fd-rail-booking:not([hidden]), #booking-details-modal .fd-layout--mobile-flat > .fd-rail-booking:not([hidden]) { display: flex; flex-direction: column; background: var(--fd-surface); border: 0.5px solid var(--fd-separator-light); border-radius: 0; padding: 12px 14px; box-shadow: none; overflow: hidden; isolation: isolate; min-width: 0; } @supports (-webkit-touch-callout: none) { #booking-flight-panel .popup-content, #flight-details-popup .popup-content, #booking-details-modal .popup-content { flex: 1 1 0 !important; height: 0 !important; overflow-y: scroll !important; -webkit-overflow-scrolling: touch; } } } @media (max-width: 768px) { #flight-details-popup.flight-popup-overlay.active, #booking-details-modal.flight-popup-overlay.active { padding: 0; overflow: hidden; } #flight-details-popup .flight-popup, #booking-details-modal .flight-popup { max-height: 100dvh; min-height: 100dvh; height: 100dvh; border-radius: 0; border: none; box-shadow: none !important; } #booking-flight-panel .popup-content, #flight-details-popup .popup-content, #booking-details-modal .popup-content { padding: 12px 16px max(24px, env(safe-area-inset-bottom, 0px)) !important; padding-top: calc(52px + env(safe-area-inset-top, 0px)) !important; scroll-padding-bottom: max(24px, env(safe-area-inset-bottom, 0px)); } #booking-flight-panel .fd-rail-meta .fd-flight-info-items, #flight-details-popup .fd-rail-meta .fd-flight-info-items, #booking-details-modal .fd-rail-meta .fd-flight-info-items { grid-template-columns: minmax(0, 1fr); row-gap: 0; } #booking-flight-panel .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(n), #flight-details-popup .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(n), #booking-details-modal .fd-rail-meta .fd-flight-info-items .detail-item:nth-child(n) { grid-column: 1; grid-row: auto; margin-top: 0; padding: 8px 0; border-left: none; border-top: none; } #booking-flight-panel .fd-rail-meta .fd-flight-info-items .detail-item:not(:last-child), #flight-details-popup .fd-rail-meta .fd-flight-info-items .detail-item:not(:last-child), #booking-details-modal .fd-rail-meta .fd-flight-info-items .detail-item:not(:last-child) { border-bottom: 0.5px solid var(--fd-separator-light); } #booking-flight-panel .fd-rail-actions, #flight-details-popup .fd-rail-actions, #booking-details-modal .fd-rail-actions { border-radius: 0; padding: 10px 16px max(10px, env(safe-area-inset-bottom, 0px)) !important; } #booking-flight-panel .route-map-container, #flight-details-popup .route-map-container, #booking-details-modal .route-map-container, #booking-flight-panel .fd-map.route-map-container, #flight-details-popup .fd-map.route-map-container, #booking-details-modal .fd-map.route-map-container { height: 200px; min-height: 200px; max-height: 200px; } #booking-flight-panel #flight-route-map, #flight-details-popup #flight-route-map, #booking-details-modal #flight-route-map { height: 200px; min-height: 200px; max-height: 200px; } #flight-details-popup .popup-close-corner, #booking-details-modal .popup-close-corner { position: fixed; top: max(10px, env(safe-area-inset-top, 0px)); right: 12px; width: 36px; height: 36px; z-index: 10002; background: rgba(255, 255, 255, 0.92) !important; color: var(--fd-text-secondary) !important; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12) !important; } :root[data-theme="dark"] #flight-details-popup .popup-close-corner, :root[data-theme="dark"] #booking-details-modal .popup-close-corner { background: var(--color-surface-glass-strong) !important; box-shadow: var(--shadow-surface) !important; } #booking-flight-panel .fd-rail-actions .copy-link-btn .btn-text, #flight-details-popup .fd-rail-actions .copy-link-btn .btn-text, #booking-details-modal .fd-rail-actions .copy-link-btn .btn-text { display: none; } #booking-flight-panel .fd-rail-actions:not(.fd-rail-actions--booking), #flight-details-popup .fd-rail-actions:not(.fd-rail-actions--booking), #booking-details-modal .fd-rail-actions:not(.fd-rail-actions--booking) { padding: 8px 16px max(8px, env(safe-area-inset-bottom, 0px)) !important; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking { flex-direction: column !important; align-items: stretch; justify-content: stretch; gap: 8px; padding: 8px 16px max(8px, env(safe-area-inset-bottom, 0px)) !important; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking > .fd-booking-action-buttons, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking > .fd-booking-action-buttons, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking > .fd-booking-action-buttons { display: flex !important; width: 100%; min-width: 0; flex-direction: row !important; align-items: stretch; gap: 8px; } #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .chat-btn, #booking-flight-panel .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn, #flight-details-popup .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn, #booking-details-modal .fd-rail-actions.fd-rail-actions--booking .fd-booking-action-buttons .cancel-btn { flex: 1 1 0 !important; width: auto !important; min-width: 0; min-height: 46px; font-size: 15px; border-radius: 0; } } @media (min-width: 1025px) { #booking-flight-panel .info-section, #flight-details-popup .info-section, #booking-details-modal .info-section { background: var(--fd-card); border: 1px solid var(--fd-card-rim); box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; } #booking-flight-panel .fd-main > .info-section.fd-aircraft, #flight-details-popup .fd-main > .info-section.fd-aircraft, #booking-details-modal .fd-main > .info-section.fd-aircraft { background: transparent; border: none; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; } #booking-flight-panel .fd-rail.info-section > .fd-rail-price.info-section, #flight-details-popup .fd-rail.info-section > .fd-rail-price.info-section, #booking-details-modal .fd-rail.info-section > .fd-rail-price.info-section, #booking-flight-panel .fd-rail.info-section > .fd-rail-meta.info-section, #flight-details-popup .fd-rail.info-section > .fd-rail-meta.info-section, #booking-details-modal .fd-rail.info-section > .fd-rail-meta.info-section { background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; } } #booking-flight-panel .fd-layout--multileg, #flight-details-popup .fd-layout--multileg, #booking-details-modal .fd-layout--multileg { --fd-media-col: 50%; } #booking-flight-panel .fd-media, #flight-details-popup .fd-media, #booking-details-modal .fd-media { display: flex; flex-direction: column; gap: var(--fd-media-gap, 10px); min-width: 0; min-height: 0; align-self: stretch; } #booking-flight-panel .fd-media > .fd-map.route-map-container, #flight-details-popup .fd-media > .fd-map.route-map-container, #booking-details-modal .fd-media > .fd-map.route-map-container { flex: 1 1 auto; width: 100%; min-height: 176px; height: auto; align-self: stretch; } #booking-flight-panel .fd-layout--multileg .fd-media > .fd-route-statsbar, #flight-details-popup .fd-layout--multileg .fd-media > .fd-route-statsbar, #booking-details-modal .fd-layout--multileg .fd-media > .fd-route-statsbar { flex: 0 0 auto; margin-top: 0; width: 100%; } @media (min-width: 901px) { #booking-flight-panel .fd-head > .fd-media, #flight-details-popup .fd-head > .fd-media, #booking-details-modal .fd-head > .fd-media { grid-column: 1; grid-row: 1; } #booking-flight-panel .fd-head > .fd-route, #flight-details-popup .fd-head > .fd-route, #booking-details-modal .fd-head > .fd-route { grid-column: 2; grid-row: 1; align-self: stretch; } #booking-flight-panel .fd-head, #flight-details-popup .fd-head, #booking-details-modal .fd-head { align-items: stretch; } #booking-flight-panel .fd-media, #flight-details-popup .fd-media, #booking-details-modal .fd-media { width: 100%; min-width: 0; height: 100%; } #booking-flight-panel .fd-media > .fd-map.route-map-container, #flight-details-popup .fd-media > .fd-map.route-map-container, #booking-details-modal .fd-media > .fd-map.route-map-container { flex: 1 1 auto; width: 100%; min-height: 176px; height: 100%; } #booking-flight-panel #flight-route-map, #flight-details-popup #flight-route-map, #booking-details-modal #flight-route-map { width: 100%; height: 100%; min-height: 176px; } } @media (max-width: 900px) { #booking-flight-panel .fd-layout--mobile-flat > .fd-media, #flight-details-popup .fd-layout--mobile-flat > .fd-media, #booking-details-modal .fd-layout--mobile-flat > .fd-media { order: 1; } #booking-flight-panel .fd-layout--mobile-flat > .fd-media > .fd-map.route-map-container, #flight-details-popup .fd-layout--mobile-flat > .fd-media > .fd-map.route-map-container, #booking-details-modal .fd-layout--mobile-flat > .fd-media > .fd-map.route-map-container { min-height: 220px; height: 220px; max-height: 220px; } } #flight-details-popup.fp-sample-details .fd-rail-actions, #flight-details-popup.fp-sample-details .fd-rail-actions.popup-footer, #flight-details-popup.fp-sample-details .popup-footer, #booking-details-modal.fp-sample-details .fd-rail-actions, #booking-details-modal.fp-sample-details .fd-rail-actions.popup-footer, #booking-details-modal.fp-sample-details .popup-footer, #booking-flight-panel.fp-sample-details .fd-rail-actions, #booking-flight-panel.fp-sample-details .fd-rail-actions.popup-footer, #booking-flight-panel.fp-sample-details .popup-footer { display: none !important; visibility: hidden !important; pointer-events: none !important; height: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; border: none !important; overflow: hidden !important; } #flight-details-popup.fp-sample-details .fd-rail-meta, #booking-details-modal.fp-sample-details .fd-rail-meta, #booking-flight-panel.fp-sample-details .fd-rail-meta { display: none !important; } #flight-details-popup.fp-sample-details .fd-rail.info-section, #booking-details-modal.fp-sample-details .fd-rail.info-section, #booking-flight-panel.fp-sample-details .fd-rail.info-section { padding-bottom: 20px; } .fd-fp-sample-status { display: none; margin: 10px 0 0; padding: 0; max-width: 15em; font-family: var(--fd-font, "SF Pro Text", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif); font-size: 15px; font-weight: 500; line-height: 1.35; letter-spacing: -0.02em; color: var(--fd-text-secondary, rgba(60, 60, 67, 0.72)); } :root[data-theme="dark"] .fd-fp-sample-status { color: rgba(235, 235, 245, 0.72); } #flight-details-popup.fp-sample-details .fd-fp-sample-status, #booking-details-modal.fp-sample-details .fd-fp-sample-status, #booking-flight-panel.fp-sample-details .fd-fp-sample-status { display: block; } #flight-details-popup.fp-sample-details .fd-rail-price .price-main, #booking-details-modal.fp-sample-details .fd-rail-price .price-main, #booking-flight-panel.fp-sample-details .fd-rail-price .price-main { display: flex; flex-direction: column; align-items: flex-start; gap: 0; } #flight-details-popup.fp-sample-details .fd-rail-price .price-value, #flight-details-popup.fp-sample-details .fd-rail-price .current-price, #booking-details-modal.fp-sample-details .fd-rail-price .price-value, #booking-details-modal.fp-sample-details .fd-rail-price .current-price, #booking-flight-panel.fp-sample-details .fd-rail-price .price-value, #booking-flight-panel.fp-sample-details .fd-rail-price .current-price { font-size: 36px; font-weight: 700; letter-spacing: -0.045em; line-height: 1.05; } @media (max-width: 900px) { #flight-details-popup.fp-sample-details .popup-content, #booking-details-modal.fp-sample-details .popup-content { scroll-padding-bottom: max(16px, env(safe-area-inset-bottom, 0px)); padding-bottom: max(20px, env(safe-area-inset-bottom, 0px)) !important; } #flight-details-popup.fp-sample-details .fd-fp-sample-status, #booking-details-modal.fp-sample-details .fd-fp-sample-status, #booking-flight-panel.fp-sample-details .fd-fp-sample-status { margin-top: 12px; font-size: 17px; font-weight: 510; max-width: 18em; color: var(--fd-text-secondary, rgba(60, 60, 67, 0.78)); } :root[data-theme="dark"] #flight-details-popup.fp-sample-details .fd-fp-sample-status, :root[data-theme="dark"] #booking-details-modal.fp-sample-details .fd-fp-sample-status, :root[data-theme="dark"] #booking-flight-panel.fp-sample-details .fd-fp-sample-status { color: rgba(245, 245, 247, 0.78); } #flight-details-popup.fp-sample-details .fd-rail-price .price-value, #flight-details-popup.fp-sample-details .fd-rail-price .current-price, #booking-details-modal.fp-sample-details .fd-rail-price .price-value, #booking-details-modal.fp-sample-details .fd-rail-price .current-price, #booking-flight-panel.fp-sample-details .fd-rail-price .price-value, #booking-flight-panel.fp-sample-details .fd-rail-price .current-price { font-size: 40px; } #flight-details-popup.fp-sample-details .fd-rail-price, #booking-details-modal.fp-sample-details .fd-rail-price, #booking-flight-panel.fp-sample-details .fd-rail-price { display: block; width: 100%; padding: 16px 14px 18px; } } @media (min-width: 901px) { #flight-details-popup.fp-sample-details .fd-fp-sample-status, #booking-details-modal.fp-sample-details .fd-fp-sample-status, #booking-flight-panel.fp-sample-details .fd-fp-sample-status { margin-top: 12px; font-size: 15px; max-width: 12.5em; } #flight-details-popup.fp-sample-details .fd-rail-price .price-value, #flight-details-popup.fp-sample-details .fd-rail-price .current-price, #booking-details-modal.fp-sample-details .fd-rail-price .price-value, #booking-details-modal.fp-sample-details .fd-rail-price .current-price, #booking-flight-panel.fp-sample-details .fd-rail-price .price-value, #booking-flight-panel.fp-sample-details .fd-rail-price .current-price { font-size: 34px; } } #flight-details-popup.fp-booked-details .fd-aircraft, #booking-details-modal.fp-booked-details .fd-aircraft, #booking-flight-panel.fp-booked-details .fd-aircraft { display: none !important; } #flight-details-popup.fp-booked-details .fd-rail-price, #booking-details-modal.fp-booked-details .fd-rail-price, #booking-flight-panel.fp-booked-details .fd-rail-price, #flight-details-popup.fp-booked-details .pricing-section.fd-rail-price, #booking-details-modal.fp-booked-details .pricing-section.fd-rail-price, #booking-flight-panel.fp-booked-details .pricing-section.fd-rail-price { display: none !important; } #flight-details-popup.fp-booked-details .fd-fp-sample-status, #booking-details-modal.fp-booked-details .fd-fp-sample-status, #booking-flight-panel.fp-booked-details .fd-fp-sample-status { display: none !important; } #flight-details-popup.fp-booked-details .fd-rail-meta .detail-item:has(#popup-time), #booking-details-modal.fp-booked-details .fd-rail-meta .detail-item:has(#popup-time), #booking-flight-panel.fp-booked-details .fd-rail-meta .detail-item:has(#popup-time), #flight-details-popup.fp-booked-details .fd-rail-meta .detail-item:has(#popup-status), #booking-details-modal.fp-booked-details .fd-rail-meta .detail-item:has(#popup-status), #booking-flight-panel.fp-booked-details .fd-rail-meta .detail-item:has(#popup-status), #flight-details-popup.fp-booked-details .fd-rail-meta .detail-item:has(#popup-verification), #booking-details-modal.fp-booked-details .fd-rail-meta .detail-item:has(#popup-verification), #booking-flight-panel.fp-booked-details .fd-rail-meta .detail-item:has(#popup-verification) { display: none !important; } #flight-details-popup.fp-booked-details .fd-main > .fd-rail-booking:not([hidden]), #booking-details-modal.fp-booked-details .fd-main > .fd-rail-booking:not([hidden]), #booking-flight-panel.fp-booked-details .fd-main > .fd-rail-booking:not([hidden]) { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; width: 100%; margin: 0; padding: 18px 20px; box-sizing: border-box; background: var(--fd-card, var(--color-surface, #fff)); border: 0.5px solid var(--fd-card-rim, var(--color-border-subtle, rgba(60, 60, 67, 0.12))); border-radius: 14px; box-shadow: var(--fd-card-shadow, none); backdrop-filter: var(--fd-card-blur, none); -webkit-backdrop-filter: var(--fd-card-blur, none); justify-content: center; } #flight-details-popup.fp-booked-details .fd-booking-panel--fp, #booking-details-modal.fp-booked-details .fd-booking-panel--fp, #booking-flight-panel.fp-booked-details .fd-booking-panel--fp { display: flex; flex-direction: column; gap: 0; width: 100%; min-height: 0; } #flight-details-popup.fp-booked-details .fd-fp-booked-class, #booking-details-modal.fp-booked-details .fd-fp-booked-class, #booking-flight-panel.fp-booked-details .fd-fp-booked-class { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin: 0; } #flight-details-popup.fp-booked-details .fd-fp-booked-class__label, #booking-details-modal.fp-booked-details .fd-fp-booked-class__label, #booking-flight-panel.fp-booked-details .fd-fp-booked-class__label { margin: 0; font-family: var(--fd-font, "SF Pro Text", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fd-label, var(--color-text-muted, #8e8e93)); line-height: 1.3; } #flight-details-popup.fp-booked-details .fd-fp-booked-class__value, #booking-details-modal.fp-booked-details .fd-fp-booked-class__value, #booking-flight-panel.fp-booked-details .fd-fp-booked-class__value { margin: 0; font-family: var(--fd-font, "SF Pro Text", "SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif); font-size: 26px; font-weight: 700; letter-spacing: -0.035em; line-height: 1.15; color: var(--fd-text, var(--color-text, #1d1d1f)); } #flight-details-popup.fp-booked-details .fd-rail .fd-rail-booking, #booking-details-modal.fp-booked-details .fd-rail .fd-rail-booking, #booking-flight-panel.fp-booked-details .fd-rail .fd-rail-booking { display: none !important; } #flight-details-popup.fp-booked-details.fp-sample-details .fd-rail-meta, #booking-details-modal.fp-booked-details.fp-sample-details .fd-rail-meta, #booking-flight-panel.fp-booked-details.fp-sample-details .fd-rail-meta { display: block !important; } #flight-details-popup.fp-booked-details .fd-rail-meta, #booking-details-modal.fp-booked-details .fd-rail-meta, #booking-flight-panel.fp-booked-details .fd-rail-meta { margin-top: 0; padding-top: 0 !important; border-top: none; } #flight-details-popup.fp-booked-details .fd-rail-meta .popup-section-title, #booking-details-modal.fp-booked-details .fd-rail-meta .popup-section-title, #booking-flight-panel.fp-booked-details .fd-rail-meta .popup-section-title { display: none !important; } #flight-details-popup.fp-booked-details .fd-fp-booking-fact .detail-value, #booking-details-modal.fp-booked-details .fd-fp-booking-fact .detail-value, #booking-flight-panel.fp-booked-details .fd-fp-booking-fact .detail-value { font-variant-numeric: tabular-nums; letter-spacing: -0.015em; } #flight-details-popup.fp-booked-details .fd-fp-booking-fact .fd-booking-status-text, #booking-details-modal.fp-booked-details .fd-fp-booking-fact .fd-booking-status-text, #booking-flight-panel.fp-booked-details .fd-fp-booking-fact .fd-booking-status-text { font-size: inherit; font-weight: 600; line-height: inherit; } #flight-details-popup.fp-booked-details .fd-fp-booking-fact .fd-booking-panel__ref, #booking-details-modal.fp-booked-details .fd-fp-booking-fact .fd-booking-panel__ref, #booking-flight-panel.fp-booked-details .fd-fp-booking-fact .fd-booking-panel__ref { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 13px; font-weight: 600; letter-spacing: 0.02em; } #flight-details-popup.fp-booked-details.fp-sample-details .fd-rail-actions, #flight-details-popup.fp-booked-details.fp-sample-details .fd-rail-actions.popup-footer, #flight-details-popup.fp-booked-details.fp-sample-details .popup-footer, #booking-details-modal.fp-booked-details.fp-sample-details .fd-rail-actions, #booking-details-modal.fp-booked-details.fp-sample-details .popup-footer, #booking-flight-panel.fp-booked-details.fp-sample-details .fd-rail-actions, #booking-flight-panel.fp-booked-details.fp-sample-details .popup-footer { display: flex !important; visibility: visible !important; pointer-events: auto !important; height: auto !important; min-height: 0 !important; overflow: visible !important; } @media (min-width: 901px) { #flight-details-popup.fp-booked-details .fd-main, #booking-details-modal.fp-booked-details .fd-main, #booking-flight-panel.fp-booked-details .fd-main { height: 100%; } #flight-details-popup.fp-booked-details .fd-head, #booking-details-modal.fp-booked-details .fd-head, #booking-flight-panel.fp-booked-details .fd-head { flex: 1 1 auto; min-height: 220px; } #flight-details-popup.fp-booked-details .fd-main > .fd-rail-booking:not([hidden]), #booking-details-modal.fp-booked-details .fd-main > .fd-rail-booking:not([hidden]), #booking-flight-panel.fp-booked-details .fd-main > .fd-rail-booking:not([hidden]) { flex: 0 0 auto; padding: 20px 22px; } #flight-details-popup.fp-booked-details .fd-fp-booked-class__value, #booking-details-modal.fp-booked-details .fd-fp-booked-class__value, #booking-flight-panel.fp-booked-details .fd-fp-booked-class__value { font-size: 28px; } } @media (max-width: 900px) { #flight-details-popup.fp-booked-details .fd-layout--mobile-flat > .fd-rail-booking:not([hidden]), #booking-details-modal.fp-booked-details .fd-layout--mobile-flat > .fd-rail-booking:not([hidden]), #booking-flight-panel.fp-booked-details .fd-layout--mobile-flat > .fd-rail-booking:not([hidden]) { order: 3; margin-top: 0; padding: 16px 14px 18px; border-radius: 14px; } #flight-details-popup.fp-booked-details .fd-fp-booked-class__value, #booking-details-modal.fp-booked-details .fd-fp-booked-class__value, #booking-flight-panel.fp-booked-details .fd-fp-booked-class__value { font-size: 24px; } } :root[data-theme="dark"] #flight-details-popup.fp-booked-details .fd-main > .fd-rail-booking:not([hidden]), :root[data-theme="dark"] #booking-details-modal.fp-booked-details .fd-main > .fd-rail-booking:not([hidden]), :root[data-theme="dark"] #booking-flight-panel.fp-booked-details .fd-main > .fd-rail-booking:not([hidden]) { background: var(--fd-card, var(--color-surface-raised, #1a1c22)); border-color: var(--fd-card-rim, var(--color-border-subtle, rgba(255, 255, 255, 0.1))); } :root[data-theme="dark"] #flight-details-popup.fp-booked-details .fd-fp-booked-class__value, :root[data-theme="dark"] #booking-details-modal.fp-booked-details .fd-fp-booked-class__value, :root[data-theme="dark"] #booking-flight-panel.fp-booked-details .fd-fp-booked-class__value { color: var(--fd-text, var(--color-text, #e8e9eb)); } .chat-modal-container { --chat-font: "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif; --chat-font-display: "Inter", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif; --chat-weight-display: 300; --chat-weight-body: 400; --chat-weight-label: 500; --chat-accent: #2f6fed; --chat-accent-hover: #3d7af5; --chat-accent-ink: #2560d6; --chat-accent-soft: rgba(47, 111, 237, 0.1); --chat-accent-softer: rgba(47, 111, 237, 0.06); --chat-accent-line: rgba(47, 111, 237, 0.22); --chat-cta: #2b4666; --chat-cta-ink: #ffffff; --chat-ink: #0e1a2c; --chat-ink-2: #3e4b5e; --chat-ink-3: #6b7686; --chat-line: rgba(14, 26, 44, 0.12); --chat-line-strong: rgba(14, 26, 44, 0.18); --chat-bg: #f5f7fa; --chat-card: #ffffff; --chat-amber: #b45309; --chat-amber-soft: #fef3e2; --chat-radius: 18px; --chat-radius-sm: 12px; --chat-radius-bubble: 16px; --chat-shadow: 0 18px 40px rgba(14, 26, 44, 0.1); --chat-ease: cubic-bezier(0.22, 1, 0.36, 1); --chat-code-bg: #eceff3; --chat-code-text: #b45309; --chat-teal: var(--chat-accent); --chat-teal-dark: var(--chat-accent-hover); --chat-teal-ink: var(--chat-accent-ink); --chat-teal-soft: var(--chat-accent-soft); --chat-teal-softer: var(--chat-accent-softer); --chat-teal-line: var(--chat-accent-line); font-family: var(--chat-font); font-weight: var(--chat-weight-body); -webkit-font-smoothing: antialiased; } :root[data-theme="dark"] .chat-modal-container { --chat-accent: #5b8cff; --chat-accent-hover: #6e9aff; --chat-accent-ink: #5b8cff; --chat-accent-soft: rgba(91, 140, 255, 0.16); --chat-accent-softer: rgba(91, 140, 255, 0.1); --chat-accent-line: rgba(91, 140, 255, 0.28); --chat-cta: #4a6a8f; --chat-ink: #f2f4f7; --chat-ink-2: #b8c0cc; --chat-ink-3: #7c8797; --chat-line: rgba(255, 255, 255, 0.12); --chat-line-strong: rgba(255, 255, 255, 0.18); --chat-bg: #0a0b0e; --chat-card: #12141a; --chat-amber: #f0b558; --chat-amber-soft: rgb(240 181 88 / 14%); --chat-shadow: 0 22px 50px rgba(0, 0, 0, 0.55); --chat-code-bg: #181b22; --chat-code-text: #f0b558; } .chat-modal-overlay { position: fixed; inset: 0; z-index: 10002; display: flex; align-items: flex-end; justify-content: flex-end; padding: 20px; background: rgba(14, 26, 44, 0.28); backdrop-filter: blur(8px); animation: chat-fade-in 0.28s var(--chat-ease, cubic-bezier(0.22, 1, 0.36, 1)); } :root[data-theme="dark"] .chat-modal-overlay { background: rgba(10, 11, 14, 0.62); } @keyframes chat-fade-in { from { opacity: 0; } to { opacity: 1; } } .chat-modal-container { position: relative; display: flex; flex-direction: column; overflow: hidden; width: 460px; max-width: 100%; height: 680px; max-height: 86vh; background: var(--chat-card); border: 1px solid var(--chat-line); border-radius: var(--chat-radius); box-shadow: var(--chat-shadow); animation: chat-slide-up 0.42s var(--chat-ease); user-select: none; } .chat-modal-container::before { content: ""; position: absolute; inset: 0 0 auto; z-index: 2; height: 2px; background: var(--chat-accent); pointer-events: none; } @keyframes chat-slide-up { from { opacity: 0; transform: translateY(18px) scale(0.98); } to { opacity: 1; transform: none; } } .chat-modal-container.minimized { height: 64px; } .chat-modal-container.minimized .chat-modal-messages, .chat-modal-container.minimized .chat-modal-input { display: none; } @media print { .chat-modal-overlay { display: none; } } .chat-modal-header { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; gap: 12px; padding: 16px 16px 14px 18px; background: var(--chat-card); border-bottom: 1px solid var(--chat-line); } .chat-header-brand { display: flex; align-items: center; gap: 12px; min-width: 0; } .chat-header-copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; } .chat-header-title { display: flex; align-items: center; gap: 8px; min-width: 0; font-family: var(--chat-font-display); font-size: 15px; font-weight: var(--chat-weight-label, 500); letter-spacing: -0.015em; color: var(--chat-ink); } .chat-header-title #chat-header-title { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .chat-header-live { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: var(--chat-weight-label, 500); letter-spacing: 0.16em; text-transform: uppercase; color: var(--chat-accent-ink); } .chat-header-pulse { width: 7px; height: 7px; border-radius: 50%; background: var(--chat-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--chat-accent) 18%, transparent); animation: chat-pulse 2.4s var(--chat-ease) infinite; } @keyframes chat-pulse { 0%, 100% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--chat-accent) 16%, transparent); } 50% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--chat-accent) 0%, transparent); } } .chat-context-badge { display: inline-flex; align-items: center; flex-shrink: 0; padding: 3px 8px; margin-left: 2px; border-radius: 999px; background: var(--chat-accent-softer); color: var(--chat-accent-ink); font-size: 11px; font-weight: var(--chat-weight-label, 500); } .chat-context-badge.booking-context, .chat-context-badge.flight-context { background: var(--chat-accent-soft); color: var(--chat-accent-ink); } .chat-header-actions { display: flex; flex-shrink: 0; gap: 4px; } .chat-header-btn { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: none; border-radius: 50%; background: transparent; color: var(--chat-ink-3); cursor: pointer; transition: background 0.18s ease, color 0.18s ease; -webkit-tap-highlight-color: transparent; user-select: none; } .chat-header-btn svg { width: 16px; height: 16px; fill: none; stroke: currentcolor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; } .chat-header-btn:hover { background: var(--chat-bg); color: var(--chat-ink); } .chat-header-btn:active { transform: scale(0.94); } .chat-modal-messages { display: flex; flex: 1; flex-direction: column; gap: 14px; overflow-y: auto; padding: 18px 16px 12px; background: var(--chat-bg); } .chat-modal-messages::-webkit-scrollbar { width: 4px; } .chat-modal-messages::-webkit-scrollbar-thumb { background: var(--chat-line-strong); border-radius: 0; } .user-message, .assistant-message, .chat-welcome-message .assistant-message { display: flex; gap: 10px; max-width: 100%; animation: chat-msg-in 0.45s var(--chat-ease) both; } @keyframes chat-msg-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } } .user-message { flex-direction: row-reverse; } .chat-msg-col { display: flex; flex: 1; flex-direction: column; gap: 6px; min-width: 0; } .user-message .chat-msg-col { align-items: flex-end; flex: 0 1 auto; max-width: 86%; } .chat-msg-name { font-size: 11px; font-weight: var(--chat-weight-label, 500); letter-spacing: 0.01em; color: var(--chat-ink-3); } .chat-msg-name b { font-weight: var(--chat-weight-label, 500); color: var(--chat-accent-ink); } .message-content { max-width: 100%; padding: 12px 15px; border-radius: 4px var(--chat-radius-bubble) var(--chat-radius-bubble); background: var(--chat-accent-soft); border: 1px solid var(--chat-accent-line); color: var(--chat-ink); font-size: 14.5px; line-height: 1.55; letter-spacing: -0.01em; overflow-wrap: break-word; word-break: break-word; } :root[data-theme="dark"] .assistant-message .message-content, :root[data-theme="dark"] .chat-welcome-message .message-content { color: var(--chat-ink); } .user-message .message-content { max-width: 100%; background: var(--chat-card); border: 1px solid var(--chat-line); border-radius: var(--chat-radius-bubble) 4px var(--chat-radius-bubble) var(--chat-radius-bubble); color: var(--chat-ink); } .assistant-message .message-content.is-prose-empty { display: none; } .chat-assistant-prose, .chat-structured-results { width: 100%; text-align: left; } .message-content b, .message-content strong { font-weight: var(--chat-weight-label, 500); color: var(--chat-ink); } :root[data-theme="dark"] .message-content b, :root[data-theme="dark"] .message-content strong { color: var(--chat-ink); } .message-content .price-em, .chat-assistant-prose strong { color: var(--chat-accent-ink); } .system-message { margin: 4px 0; text-align: center; animation: chat-msg-in 0.45s var(--chat-ease) both; } .system-message-content { display: inline-flex; align-items: center; gap: 6px; padding: 5px 14px; border-radius: 999px; background: var(--chat-card); border: 1px solid var(--chat-line); color: var(--chat-ink-3); font-size: 11px; font-weight: var(--chat-weight-label, 500); letter-spacing: 0.08em; text-transform: uppercase; } :root[data-theme="dark"] .system-message-content { background: var(--chat-card); } .system-message-content i { display: none; } .message-context-badge { display: block; margin-bottom: 6px; padding: 0; background: none; border-radius: 0; color: var(--chat-ink-3); font-size: 11px; font-weight: var(--chat-weight-label, 500); } .message-context-badge.header-context { display: none; } .typing-bubble .message-content { display: inline-flex; align-items: center; width: 64px; min-height: 0; padding: 14px 18px; } .typing-indicator { display: inline-flex; align-items: center; gap: 5px; } .typing-indicator .typing-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--chat-accent); animation: chat-typing-blink 1.1s infinite; } .typing-indicator .typing-dot:nth-child(2) { animation-delay: 0.18s; } .typing-indicator .typing-dot:nth-child(3) { animation-delay: 0.36s; } @keyframes chat-typing-blink { 0%, 60%, 100% { opacity: 0.3; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-3px); } } .chat-welcome-message .message-content { color: var(--chat-ink); } .user-message .message-content, .assistant-message .message-content { user-select: text; } .message-content h2, .message-content h3 { margin: 8px 0 4px; color: var(--chat-ink); font-family: var(--chat-font-display); font-weight: var(--chat-weight-label, 500); letter-spacing: -0.015em; } .message-content h2 { font-size: 17px; } .message-content h3 { font-size: 15px; } .message-content p { margin: 6px 0; } .message-content ul, .message-content ol { margin: 6px 0; padding-left: 18px; } .message-content li { margin: 3px 0; } .message-content code { padding: 2px 6px; border-radius: 6px; background: var(--chat-code-bg); color: var(--chat-code-text); font-family: ui-monospace, "IBM Plex Mono", "SF Mono", monospace; font-size: 13px; } .message-content code.chat-copyable-code { cursor: pointer; } .message-content code.chat-copyable-code.chat-code-copied { background: rgb(52 199 89 / 18%); color: #248a3d; } .message-content pre { margin: 10px 0; padding: 12px; overflow-x: auto; border: 1px solid var(--chat-line); border-radius: 12px; background: var(--chat-bg); } .message-content pre code { padding: 0; background: transparent; color: inherit; } .message-content a { color: var(--chat-accent-ink); text-decoration: none; } .message-content a:hover { text-decoration: underline; } .chat-markdown-table { width: 100%; margin: 10px 0; border-collapse: collapse; font-size: 13px; } .chat-markdown-table th, .chat-markdown-table td { padding: 8px 10px; border: 1px solid var(--chat-line); text-align: left; } .chat-markdown-table th { background: var(--chat-bg); font-weight: var(--chat-weight-label, 500); } .chat-structured-results { display: flex; flex-direction: column; gap: 10px; width: 100%; } .chat-structured-results:empty, .chat-search-header { display: none; } .chat-search-note { margin: 0; padding: 8px 12px; border-radius: 999px; background: var(--chat-amber-soft); color: var(--chat-amber); font-size: 12.5px; font-weight: 600; } .chat-search-open-link { display: inline-flex; align-self: flex-start; padding: 8px 14px; border: 1px solid var(--chat-line-strong); border-radius: 999px; background: var(--chat-card); color: var(--chat-accent-ink); font-size: 13px; font-weight: var(--chat-weight-label, 500); } .chat-search-open-link:hover { background: var(--chat-accent-softer); border-color: var(--chat-accent); text-decoration: none; } .chat-flight-card, .chat-charter-card { overflow: hidden; background: var(--chat-card); border: 1px solid var(--chat-line); border-radius: var(--chat-radius); box-shadow: var(--chat-shadow); animation: chat-card-in 0.5s var(--chat-ease) both; } @keyframes chat-card-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } } .chat-structured-results > *:nth-child(2) { animation-delay: 0.07s; } .chat-structured-results > *:nth-child(3) { animation-delay: 0.14s; } .chat-structured-results > *:nth-child(n + 4) { animation-delay: 0.2s; } .chat-flight-card--hero, .chat-charter-card--hero { border-color: var(--chat-accent); } .chat-fc-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; padding: 12px 14px 0; } .chat-fc-title { margin: 0; flex: 1 1 auto; min-width: 0; font-family: var(--chat-font-display); font-size: 14.5px; font-weight: var(--chat-weight-label, 500); line-height: 1.25; letter-spacing: -0.015em; color: var(--chat-ink); } .chat-fc-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; } .chat-fc-class { padding: 2px 8px; border-radius: 999px; background: var(--chat-bg); color: var(--chat-ink-2); font-size: 10.5px; font-weight: var(--chat-weight-label, 500); } .chat-fc-kind { padding: 2px 8px; border-radius: 999px; background: var(--chat-accent-soft); color: var(--chat-accent-ink); font-size: 10.5px; font-weight: var(--chat-weight-label, 500); letter-spacing: 0.08em; text-transform: uppercase; } .chat-fc-sub { color: var(--chat-ink-3); font-size: 12px; } .chat-fc-flag { display: inline-block; width: 100%; margin-top: 2px; padding: 3px 8px; border-radius: 999px; background: var(--chat-accent-soft); color: var(--chat-accent-ink); font-size: 10.5px; font-weight: var(--chat-weight-label, 500); } .chat-fc-flag--warn { background: var(--chat-amber-soft); color: var(--chat-amber); } .chat-fc-route { display: grid; grid-template-columns: minmax(0, 1fr) 36px minmax(0, 1fr); align-items: center; gap: 8px; padding: 12px 14px 0; } .chat-fc-end { min-width: 0; } .chat-fc-end--arr { text-align: right; } .chat-fc-iata { display: block; font-family: var(--chat-font-display); font-size: 20px; font-weight: var(--chat-weight-display, 300); letter-spacing: -0.02em; line-height: 1.1; color: var(--chat-ink); } .chat-fc-iata--text { font-size: 14px; font-weight: var(--chat-weight-label, 500); letter-spacing: -0.01em; } .chat-fc-city { display: block; overflow: hidden; margin-top: 3px; color: var(--chat-ink-3); font-size: 12px; font-weight: 500; line-height: 1.25; white-space: nowrap; text-overflow: ellipsis; } .chat-fc-leg-line { position: relative; height: 1px; background: repeating-linear-gradient(90deg, var(--chat-line-strong) 0 5px, transparent 5px 9px); } .chat-fc-leg-line::after { content: ""; position: absolute; top: -3.5px; right: -1px; border-top: 4.5px solid transparent; border-bottom: 4.5px solid transparent; border-left: 7px solid var(--chat-ink-3); } .chat-fc-when { display: flex; align-items: baseline; gap: 6px; padding: 8px 14px 0; color: var(--chat-ink-2); font-size: 13px; font-weight: 600; } .chat-fc-date { color: var(--chat-ink); } .chat-fc-time { font-variant-numeric: tabular-nums; } .chat-fc-when-dot { color: var(--chat-ink-3); } .chat-flight-legs { display: flex; flex-direction: column; gap: 6px; margin: 8px 14px 0; padding: 8px 10px; border-radius: var(--chat-radius-sm, 12px); background: var(--chat-accent-softer); } .chat-flight-leg { display: grid; grid-template-columns: auto 1fr auto; gap: 6px 10px; font-size: 12px; line-height: 1.35; } .chat-flight-leg + .chat-flight-leg { padding-top: 6px; border-top: 1px solid var(--chat-line); } .chat-flight-leg-index { font-weight: 700; color: var(--chat-ink); white-space: nowrap; } .chat-flight-leg-dep { color: var(--chat-ink-3); text-align: right; white-space: nowrap; } .chat-fc-bottom { display: flex; flex-direction: column; align-items: stretch; gap: 12px; padding: 14px 14px 12px; } .chat-fc-meta-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; } .chat-fc-price { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; margin-left: auto; min-width: 0; text-align: right; } .chat-fc-now { display: flex; align-items: baseline; gap: 6px; font-family: var(--chat-font-display); font-size: 22px; font-weight: var(--chat-weight-display, 300); letter-spacing: -0.03em; line-height: 1; color: var(--chat-ink); } .chat-fc-now small { font-size: 11px; font-weight: var(--chat-weight-label, 500); letter-spacing: 0.08em; color: var(--chat-ink-3); } .chat-fc-off, .chat-fc-was { color: var(--chat-ink-3); font-size: 12px; line-height: 1.3; overflow-wrap: anywhere; } .chat-fc-off { font-weight: var(--chat-weight-label, 500); color: var(--chat-accent-ink); } .chat-fc-id { flex: 0 1 auto; min-width: 0; color: var(--chat-ink-3); font-size: 11px; line-height: 1.3; } .chat-alert-card { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--chat-accent-softer) 0 72px, var(--chat-card) 72px); border: 1px solid var(--chat-accent); border-radius: var(--chat-radius); box-shadow: var(--chat-shadow); animation: chat-card-in 0.5s var(--chat-ease) both; } .chat-alert-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--chat-accent); } .chat-alert-card--exists { background: linear-gradient(180deg, var(--chat-amber-soft) 0 72px, var(--chat-card) 72px); border-color: var(--chat-line); } .chat-alert-card--exists::before { background: linear-gradient(90deg, #d97706, var(--chat-amber)); } .chat-alert-status { display: flex; align-items: center; gap: 10px; padding: 16px 14px 0; } .chat-alert-pulse { position: relative; flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; background: var(--chat-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--chat-accent) 16%, transparent); animation: chat-pulse 2.4s var(--chat-ease) infinite; } .chat-alert-pulse::after { content: ""; position: absolute; inset: -6px; border: 1px solid color-mix(in srgb, var(--chat-accent) 35%, transparent); border-radius: 50%; animation: chat-alert-ring 2.4s var(--chat-ease) infinite; } .chat-alert-card--exists .chat-alert-pulse { background: var(--chat-amber); box-shadow: 0 0 0 4px rgb(180 83 9 / 14%); } .chat-alert-card--exists .chat-alert-pulse::after { border-color: rgb(180 83 9 / 28%); } @keyframes chat-alert-ring { 0% { transform: scale(0.7); opacity: 0.7; } 70%, 100% { transform: scale(1.35); opacity: 0; } } .chat-alert-status-copy { display: flex; flex-direction: column; gap: 1px; min-width: 0; } .chat-alert-status-label { font-family: var(--chat-font-display); font-size: 15px; font-weight: var(--chat-weight-label, 500); letter-spacing: -0.015em; color: var(--chat-ink); } .chat-alert-watch { color: var(--chat-ink-3); font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; } .chat-alert-card .chat-fc-route { padding-top: 16px; } .chat-alert-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 12px 14px 0; } .chat-alert-chip { padding: 5px 10px; border-radius: 999px; background: var(--chat-bg); color: var(--chat-ink-2); font-size: 12px; font-weight: 600; } .chat-alert-chip--live { background: var(--chat-accent-soft); color: var(--chat-accent-ink); } .chat-alert-manage { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 14px; padding: 10px 12px; border: 1px solid var(--chat-line-strong); border-radius: var(--chat-radius-sm, 12px); background: var(--chat-card); color: var(--chat-accent-ink); font-size: 13px; font-weight: var(--chat-weight-label, 500); } .chat-alert-manage::after { content: "→"; font-size: 15px; line-height: 1; } .chat-alert-manage:hover { background: var(--chat-accent-softer); border-color: var(--chat-accent); text-decoration: none; } .chat-search-link-card .chat-alert-watch { letter-spacing: 0.02em; text-transform: none; } .chat-cm-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; padding: 12px 14px 14px; } .chat-cm-note { margin: 0; flex: 1 1 auto; min-width: 0; color: var(--chat-ink-3); font-size: 11.5px; line-height: 1.35; } .chat-cm-approx { font-size: 11px; font-weight: var(--chat-weight-label, 500); letter-spacing: 0.08em; text-transform: uppercase; color: var(--chat-ink-3); } .chat-charter-card .chat-fc-now { font-size: 20px; } .chat-flight-card .chat-action-row, .chat-charter-card .chat-action-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; margin: 0; } .message-content .chat-action-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 4px; } .message-content .chat-action-btn, .chat-flight-card .chat-action-btn, .chat-charter-card .chat-action-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 10px 18px; margin: 0; border: 1px solid var(--chat-line-strong); border-radius: var(--chat-radius-sm, 12px); background: var(--chat-card); color: var(--chat-ink); font-size: 13px; font-weight: var(--chat-weight-label, 500); letter-spacing: 0.04em; line-height: 1; cursor: pointer; transition: transform 0.12s ease, background 0.12s ease, border-color 0.12s ease; } .chat-flight-card .chat-action-btn, .chat-charter-card .chat-action-btn { width: 100%; min-height: 40px; padding: 8px 10px; font-size: 12px; } .message-content .chat-action-btn:hover, .chat-flight-card .chat-action-btn:hover, .chat-charter-card .chat-action-btn:hover { background: var(--chat-accent-softer); border-color: var(--chat-accent); color: var(--chat-accent-ink); transform: translateY(-1px); } .message-content .chat-action-book, .message-content .chat-action-login, .chat-flight-card .chat-action-book, .chat-flight-card .chat-action-login, .chat-charter-card .chat-action-book, .chat-charter-card .chat-action-login { border-color: transparent; background: var(--chat-cta); color: var(--chat-cta-ink); box-shadow: none; } .message-content .chat-action-book:hover, .message-content .chat-action-login:hover, .chat-flight-card .chat-action-book:hover, .chat-flight-card .chat-action-login:hover { background: color-mix(in srgb, var(--chat-cta) 88%, #000); border-color: transparent; color: var(--chat-cta-ink); } .message-content .chat-action-favorite.favorited { border-color: rgb(255 59 48 / 30%); background: rgb(255 59 48 / 8%); } .message-content .chat-action-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; } .chat-modal-input { display: flex; align-items: flex-end; flex-shrink: 0; gap: 10px; position: relative; z-index: 100; padding: 14px 14px calc(14px + env(safe-area-inset-bottom, 0px)); background: linear-gradient(to top, var(--chat-bg) 62%, rgb(245 247 250 / 0%)); border-top: 0; } :root[data-theme="dark"] .chat-modal-input { background: linear-gradient(to top, var(--chat-bg) 62%, transparent); } .chat-input-textarea { flex: 1; max-height: 120px; padding: 11px 16px; overflow-y: auto; border: 1px solid var(--chat-line-strong); border-radius: var(--chat-radius-sm, 12px); background: var(--chat-card); color: var(--chat-ink); font-family: inherit; font-size: 15px; resize: none; transition: border-color 0.18s ease, box-shadow 0.18s ease; scrollbar-width: none; } .chat-input-textarea::-webkit-scrollbar { display: none; } .chat-input-textarea:focus { outline: none; border-color: var(--chat-accent); box-shadow: 0 0 0 3px var(--chat-accent-soft); } .chat-input-textarea::placeholder { color: var(--chat-ink-3); } .chat-input-textarea:disabled { opacity: 0.55; cursor: not-allowed; } .chat-send-button { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 40px; height: 40px; border: none; border-radius: 999px; background: var(--chat-cta); color: var(--chat-cta-ink); box-shadow: none; cursor: pointer; transition: background 0.18s ease, transform 0.15s ease, opacity 0.18s ease; -webkit-tap-highlight-color: transparent; user-select: none; } .chat-send-button svg { width: 17px; height: 17px; fill: none; stroke: currentcolor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; } .chat-send-button:hover:not(:disabled) { background: color-mix(in srgb, var(--chat-cta) 88%, #000); transform: translateY(-1px); } .chat-send-button:active:not(:disabled) { transform: scale(0.94); } .chat-send-button:disabled { opacity: 0.35; cursor: not-allowed; box-shadow: none; } .chat-char-counter { position: absolute; right: 18px; bottom: 68px; padding: 4px 8px; border: 1px solid var(--chat-line); border-radius: 8px; background: var(--chat-card); box-shadow: var(--chat-shadow); color: var(--chat-ink-3); font-size: 11px; } .queued-message .chat-message { opacity: 0.65; } .queue-indicator { display: block; margin-top: 4px; color: var(--chat-ink-3); font-size: 11px; font-style: normal; } .chat-send-button.queued { background: var(--chat-ink-3); animation: chat-queued-pulse 2s ease-in-out infinite; } @keyframes chat-queued-pulse { 0%, 100% { opacity: 0.7; } 50% { opacity: 1; } } @media (max-width: 768px) { .chat-modal-overlay { align-items: stretch; justify-content: stretch; padding: 0; background: var(--chat-bg); backdrop-filter: none; } .chat-modal-container { --chat-mobile-input-gap: 12px; position: fixed; inset: 0; display: flex; flex-direction: column; width: 100%; height: 100dvh; max-height: 100dvh; border: none; border-radius: 0; box-shadow: none; transform: translateZ(0); touch-action: pan-y; overscroll-behavior: contain; transition: transform 0.3s ease, opacity 0.3s ease; } .chat-modal-container.mobile { animation: chat-slide-up-mobile 0.34s var(--chat-ease); } .chat-modal-container.keyboard-visible { height: 100dvh; max-height: 100dvh; transition: height 0.2s ease; } .chat-modal-container.keyboard-visible .chat-modal-input { position: fixed; right: 0; bottom: calc(var(--chat-mobile-input-gap) + env(safe-area-inset-bottom, 0px)); left: 0; z-index: 10001; background: var(--chat-bg); } .chat-modal-container:not(.keyboard-visible) .chat-modal-input { margin-bottom: env(safe-area-inset-bottom, 0); } @keyframes chat-slide-up-mobile { from { transform: translateY(100%); } to { transform: translateY(0); } } .chat-modal-header { flex-shrink: 0; padding: 12px 14px; } .chat-modal-messages { flex: 1 1 auto; min-height: 0; overflow: hidden auto; padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px) + var(--chat-mobile-input-gap)); -webkit-overflow-scrolling: touch; overscroll-behavior: none; touch-action: pan-y; } .chat-modal-input { position: absolute; right: 0; bottom: env(safe-area-inset-bottom, 0); left: 0; z-index: 10; flex-shrink: 0; padding: var(--chat-mobile-input-gap) 14px; padding-bottom: calc(var(--chat-mobile-input-gap) + env(safe-area-inset-bottom, 0px)); background: var(--chat-bg); } #chat-minimize-btn { display: none; } .user-message .chat-msg-col { max-width: 90%; } .chat-fc-bottom { grid-template-columns: 1fr; align-items: start; } .chat-flight-card .chat-action-row, .chat-charter-card .chat-action-row { justify-content: flex-start; } .message-content { font-size: 16px; } .chat-header-btn { width: 36px; height: 36px; min-width: 44px; min-height: 44px; } .chat-send-button { width: 44px; height: 44px; min-width: 44px; min-height: 44px; } .chat-input-textarea { font-size: 16px; touch-action: manipulation; } body.chat-modal-open { position: fixed; overflow: hidden; width: 100%; height: 100%; overscroll-behavior: none; touch-action: none; } } @media (prefers-reduced-motion: reduce) { .chat-modal-overlay, .chat-modal-container, .user-message, .assistant-message, .chat-welcome-message .assistant-message, .chat-flight-card, .chat-charter-card, .typing-indicator .typing-dot, .chat-header-pulse, .chat-alert-pulse, .chat-alert-pulse::after { animation: none; } .chat-send-button:active:not(:disabled), .chat-header-btn:active, .chat-action-btn:hover { transform: none; } }