/* Four-point spacing grid. Use these tokens for all layout spacing. */
:root{--grid-unit:4px;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--space-28:28px;--space-32:32px;--space-36:36px;--space-40:40px;--space-44:44px;--space-48:48px;--space-56:56px;--space-64:64px;--space-80:80px;--space-96:96px;--space-100:100px;--space-104:104px;}
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--page:#eeefe9;--ink:#25332f;--green:#20d6a1;--app:#151617;--soft:#919498;--border:#303235}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button{border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--green);outline-offset:4px}.site-header{height:97px;padding:0 var(--space-56);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d8dcd3}.brand{font:800 20px Manrope,Arial,sans-serif;letter-spacing:-.8px}.brand span{font-weight:500}.brand i{font:normal 22px Arial;margin-left:var(--space-16)}.top-label,.version,.eyebrow,.device-caption,footer{font-size:9px;font-weight:600;letter-spacing:2px}.top-label{color:#8b938c}.version{font-size:8px;letter-spacing:1px;border:1px solid #cfd5ca;border-radius:20px;padding:var(--space-8) var(--space-12)}.stage{max-width:1240px;min-height:940px;margin:auto;padding:var(--space-44) var(--space-56);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-100);align-items:center}.intro{max-width:470px}.eyebrow{display:flex;align-items:center;gap:var(--space-12);font-size:8px;letter-spacing:1.7px}.eyebrow i,.device-caption i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#668273}.intro h1{font:500 64px/1.04 Manrope,Arial,sans-serif;letter-spacing:-3.5px;margin:var(--space-32) 0 var(--space-24)}.intro h1 span{color:#7c897f}.intro p{font-size:14px;line-height:1.8;color:#859086}.phase-controls{margin-top:var(--space-48);max-width:340px}.phase-controls>span{font-size:8px;letter-spacing:1.6px;color:#929b91}.phase-controls button{display:flex;align-items:center;width:100%;padding:var(--space-20) 0;background:transparent;text-align:left;color:#657265;border-bottom:1px solid #d6ddd1;gap:var(--space-16)}.phase-controls button i{font-size:10px;font-style:normal;color:#97a093}.phase-controls button span{font-size:13px}.phase-controls button small{display:block;margin-top:var(--space-8);font-size:10px;color:#919b8d}.phase-controls b{margin-left:auto;font-size:20px;font-weight:400}.phase-controls button.selected{color:#172e22}.phase-controls .selected b{display:grid;place-items:center;background:#dce6cd;width:30px;height:30px;border-radius:50%}.desktop-add{border:1px solid #bdc9b7;border-radius:25px;padding:var(--space-12) var(--space-20);background:transparent;font-size:11px;color:#38543f;margin-top:var(--space-24)}.intro-note{font-size:11px;line-height:1.8;margin-top:var(--space-32);color:#6b7e6e}.intro-note span{font-size:9px;color:#9ca497}.device-area{display:flex;flex-direction:column;align-items:center}.device{position:relative;display:flex;flex-direction:column;width:390px;height:824px;border:7px solid #35383a;border-radius:48px;outline:1px solid #a4aaa5;box-shadow:0 30px 60px -25px #25342f70,2px 2px 0 2px #9aa29c,-2px -2px 0 2px #c0c6be;background:var(--app);color:#eee;overflow:hidden}.status-bar{height:43px;display:flex;justify-content:space-between;align-items:center;padding:0 var(--space-24);font-size:11px;font-weight:700;flex-shrink:0}.island{position:absolute;left:50%;top:9px;transform:translateX(-50%);height:23px;width:103px;background:#090a0b;border-radius:30px}.app{flex:1;overflow:auto;scrollbar-width:none;padding:var(--space-16) var(--space-24) var(--space-24)}.app::-webkit-scrollbar,.sheet::-webkit-scrollbar{display:none}.app-head{display:flex;align-items:center;justify-content:space-between}.app-wordmark{font-size:9px;font-weight:700;letter-spacing:1.8px;color:#a3a6a8}.icon-button{background:transparent;color:#929698;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;padding:var(--space-8)}.icon-button svg{width:20px;height:20px}svg.icon{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.trip-title{display:flex;align-items:center;gap:var(--space-8);background:transparent;color:#f6f6f6;padding:0;text-align:left;margin-top:var(--space-20);font:600 27px Manrope,Arial,sans-serif;letter-spacing:-.8px}.trip-title>span{font-size:18px;color:#777c80;font-weight:400}.flight-meta{font-size:11px;color:#979c9e;margin-top:var(--space-8)}.flight-status{display:flex;align-items:center;gap:var(--space-8);font-size:12px;color:var(--green);margin-top:var(--space-12)}.flight-status i{width:6px;height:6px;border-radius:50%;background:var(--green)}.flight-status small{font-size:8px;color:#8b9592;border-left:1px solid #444d48;padding-left:var(--space-8);margin-left:var(--space-4)}.aircraft{height:171px;position:relative;margin:var(--space-8) calc(-1 * var(--space-16)) calc(-1 * var(--space-4));display:flex;align-items:center;justify-content:center}.aircraft img{width:100%;height:100%;object-fit:contain}.route{display:flex;align-items:center;justify-content:space-between;margin:var(--space-8) 0 var(--space-24)}.route>div{width:84px}.route>div:last-child{text-align:right}.route strong{display:block;font:500 29px Manrope,Arial,sans-serif;letter-spacing:-1px}.route small{display:block;font-size:10px;color:#898e91;margin-top:var(--space-4)}.route-line{flex:1;position:relative;border-top:1px dashed #4c5352;margin:0 var(--space-12);color:#b3beba;text-align:center}.route-line span{position:absolute;left:46%;top:-9px;background:var(--app);font-size:15px;padding:0 var(--space-4)}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin:0 calc(-1 * var(--space-4)) var(--space-20)}.quick-actions button{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);background:transparent;color:#a9adb0;padding:var(--space-8) 0;font-size:9px}.quick-actions svg{height:22px;width:22px}.arrival-card{background:#222426;border:1px solid #2c2f31;border-radius:10px;padding:var(--space-16)}.card-label{font-size:9px;letter-spacing:1.4px;color:#9aa49e}.arrival-card h2{font-size:17px;letter-spacing:-.4px;font-weight:500;margin:var(--space-12) 0 var(--space-8)}.arrival-card p{font-size:10px;color:#939b96;line-height:1.65;margin:0}.arrival-card .arrival-meta{display:flex;gap:var(--space-24);margin-top:var(--space-16)}.arrival-meta small{display:block;font-size:8px;color:#838d86;margin-bottom:var(--space-4)}.arrival-meta strong{font-size:12px;font-weight:500;color:#dde3df}.land-button{width:100%;border-radius:6px;padding:var(--space-12);background:#cce6d8;color:#173c2c;font-size:11px;font-weight:600;margin-top:var(--space-16)}.section-label{font-size:9px;letter-spacing:1.3px;color:#77807b;margin:var(--space-28) 0 var(--space-8)}.essential-row{width:100%;padding:var(--space-20) 0;display:flex;gap:var(--space-16);align-items:center;text-align:left;background:transparent;color:#aaaeb0;border-bottom:1px solid #202326}.essential-row .icon{width:24px;flex-shrink:0}.essential-row .row-text{flex:1}.essential-row strong{display:block;font-size:16px;color:#eee;font-weight:500;letter-spacing:-.2px}.essential-row small{display:block;margin-top:var(--space-4);font-size:11px;color:#818789;line-height:1.4}.essential-row .chevron{color:#51585a;font-size:23px}.footnote{color:#767e79;font-size:9px;line-height:1.7;margin-top:var(--space-24)}.footnote button{color:#aab8ae;background:transparent;font-size:9px;text-decoration:underline;padding:0}.home-bar{height:4px;background:#c0c5c2;width:110px;margin:var(--space-8) auto var(--space-8);flex-shrink:0;border-radius:5px}.device-caption{font-size:8px;letter-spacing:1.2px;color:#8c978c;display:flex;gap:var(--space-12);align-items:center;margin-top:var(--space-24)}footer{display:flex;justify-content:space-between;border-top:1px solid #d9dfd3;padding:var(--space-20) var(--space-56);color:#8b9788;font-size:8px;letter-spacing:1.3px}footer b{margin:0 var(--space-12);color:#b5bdb0}.overlay{position:absolute;inset:0;background:#0009;z-index:10;display:flex;align-items:flex-end;backdrop-filter:blur(4px)}.overlay[hidden]{display:none}.sheet{position:relative;width:100%;max-height:94%;background:#202224;border:1px solid #35383a;border-bottom:0;border-radius:25px 25px 0 0;padding:var(--space-24) var(--space-24) var(--space-32);overflow:auto;scrollbar-width:none}.sheet-handle{position:absolute;top:8px;left:calc(50% - 18px);width:36px;height:3px;border-radius:5px;background:#4c5353}.close{position:absolute;right:13px;top:15px;background:#303437;width:29px;height:29px;border-radius:50%;color:#c2c7c7;font-size:21px;line-height:20px}.sheet h2{font:600 24px Manrope,sans-serif;letter-spacing:-.6px;margin:var(--space-12) var(--space-36) var(--space-12) 0}.sheet p{font-size:12px;line-height:1.7;color:#a0aaa5}.sheet .eyebrow{font-size:8px;color:#8b9e91;letter-spacing:1px;padding-right:var(--space-20)}.form-tabs{display:flex;gap:var(--space-4);background:#151718;padding:var(--space-4);border-radius:8px;margin:var(--space-20) 0}.form-tabs button{flex:1;background:transparent;color:#929d96;padding:var(--space-8);border-radius:5px;font-size:11px}.form-tabs .active{background:#353b37;color:#e7f1ea}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12)}.field{display:block;margin:var(--space-12) 0;font-size:10px;color:#a7b3aa}.field-grid .field{margin:0}.field input,.field textarea,.field select{width:100%;display:block;border:1px solid #444c47;background:#191c1b;border-radius:7px;color:#edf2ee;padding:var(--space-12) var(--space-12);font-size:12px;margin-top:var(--space-8);min-width:0}.field textarea{resize:vertical;min-height:150px;line-height:1.6}.field input::placeholder,.field textarea::placeholder{color:#626f66}.primary{display:block;width:100%;border-radius:7px;padding:var(--space-12);background:#cee5d6;color:#1b3d29;font-size:12px;font-weight:600;text-align:center;margin-top:var(--space-20)}.secondary{display:block;width:100%;border:1px solid #465448;background:transparent;color:#b9c9bd;border-radius:7px;padding:var(--space-12);font-size:11px;margin-top:var(--space-12);text-align:center}.help{font-size:10px!important;color:#849287!important}.error{font-size:11px!important;color:#ffc4a4!important}.detail-block{background:#191c1b;border:1px solid #343c37;border-radius:9px;padding:var(--space-16);margin:var(--space-16) 0}.detail-line{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-16);padding:var(--space-12) 0;border-bottom:1px solid #343b36;font-size:12px}.detail-line:last-child{border:0}.detail-line span{color:#8b9c8f}.detail-line strong{font-weight:500;text-align:right;overflow-wrap:anywhere;max-width:60%}.trip-option{width:100%;text-align:left;padding:var(--space-16);background:#292e2a;border:1px solid #3d4940;color:#e2ece5;border-radius:9px;margin-top:var(--space-12)}.trip-option strong{display:block;font-size:14px}.trip-option small{display:block;color:#93a597;font-size:10px;margin-top:var(--space-4)}.trip-option.active{border-color:#83b79b}.inline-note{background:#2c332b;color:#b5c8b6;font-size:10px;line-height:1.6;border-radius:6px;padding:var(--space-12);margin:var(--space-16) 0}.saved-note{white-space:pre-wrap;overflow-wrap:anywhere}.overlay .note-input{min-height:100px}.check-label{display:flex;align-items:center;gap:var(--space-8);font-size:11px;color:#b4c2b7;margin:var(--space-16) 0}.check-label input{accent-color:var(--green);width:16px;height:16px}#toast{position:absolute;bottom:27px;left:17px;right:17px;padding:var(--space-12) var(--space-16);border:1px solid #55745c;background:#233d2f;border-radius:9px;color:#e0f3e7;font-size:11px;z-index:20;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}@media(max-width:1080px){.stage{gap:var(--space-36);padding:var(--space-40)}.intro h1{font-size:52px}}@media(max-width:780px){.site-header{height:75px;padding:0 var(--space-24)}.top-label{display:none}.brand{font-size:16px}.stage{display:flex;flex-direction:column;gap:var(--space-28);padding:var(--space-28) var(--space-20)}.intro{text-align:center}.eyebrow{justify-content:center;font-size:7px}.intro h1{font-size:37px;letter-spacing:-1.7px;line-height:1.15;margin:var(--space-16) 0 var(--space-12)}.intro h1 br:last-child{display:none}.intro h1 span{display:block}.intro h1>br{display:none}.intro p{font-size:12px;margin:0}.phase-controls{display:none}.desktop-add{margin-top:var(--space-16);padding:var(--space-12) var(--space-16)}.intro-note{display:none}.device{width:min(390px,calc(100vw - 36px));height:824px}.device-caption{margin-bottom:var(--space-4)}.desktop{display:none}footer{font-size:6px;letter-spacing:.8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Aircraft-to-cabin transition */
.seat-mode .sheet{height:100%;max-height:100%;border-radius:0;padding:var(--space-24) var(--space-16) var(--space-20);overflow:hidden;background:#12191b}.seat-mode .sheet-handle{display:none}.seat-mode h2{margin-top:var(--space-12);font-size:25px}.seat-mode .close{z-index:15}.seat-intro{margin:0 0 var(--space-12);font-size:11px!important}.seat-animation{position:absolute;inset:115px 0 50px;pointer-events:none;overflow:hidden;perspective:850px;z-index:5;display:none}.animating .seat-animation{display:block}.plane-angle,.plane-top{position:absolute;left:0;top:15%;width:100%;height:65%;object-fit:contain;transform-origin:50% 50%}.plane-angle{animation:turn-aircraft 1.5s ease-in-out both}.plane-top{opacity:0;animation:zoom-aircraft 2.9s ease-in-out both}.scan-beam{position:absolute;left:10%;width:80%;height:2px;background:#65f6d6;box-shadow:0 0 24px 8px #3ce7cc66;animation:scan-cabin 2.9s ease-in-out both}.animation-label{position:absolute;bottom:10px;width:100%;text-align:center;font-size:9px;letter-spacing:2px;color:#90b8ad;animation:label-out 2.9s both}.seat-interface{display:flex;flex-direction:column;height:calc(100% - 102px)}.animating .seat-interface{visibility:hidden}.seat-map-label{font-size:7px;letter-spacing:1px;color:#718f86;margin:var(--space-4) 0 var(--space-12)}.seat-legend{display:flex;gap:var(--space-12);font-size:8px;color:#a2bab0;margin-bottom:var(--space-12)}.seat-legend span{display:flex;align-items:center;gap:var(--space-4)}.seat-legend i{width:10px;height:10px;background:#28483e;border:1px solid #659584;border-radius:3px}.seat-legend .taken{background:#283134;border-color:#3b474a}.seat-legend .yours{background:#32d6a7;border-color:#32d6a7}.cabin-scroll{position:relative;overflow:auto;flex:1;min-height:100px;scrollbar-width:thin;scrollbar-color:#345549 transparent;border-top:1px solid #294035;border-bottom:1px solid #294035;background:radial-gradient(ellipse at center,#17463644,transparent);border-radius:15px}.cabin{position:relative;width:290px;margin:0 auto;border:1px solid #426858;border-radius:130px 130px 55px 55px;padding:var(--space-32) var(--space-8) var(--space-20);background:linear-gradient(90deg,#1b382a44,transparent 15%,transparent 85%,#1b382a44);box-shadow:inset 0 0 20px #2db78512}.cockpit{height:72px;width:140px;display:flex;align-items:center;justify-content:center;border:1px solid #3c6252;border-radius:80px 80px 20px 20px;margin:0 auto var(--space-24);font-size:8px;letter-spacing:1px;color:#628c79;background:linear-gradient(#29574144,transparent)}.cabin-entry{text-align:center;font-size:7px;letter-spacing:1px;color:#739b88;padding:var(--space-16) 0}.column-letters{color:#6f9988;text-align:center;word-spacing:8px;font-size:9px;padding:0 0 var(--space-12) var(--space-12)}.seat-row{position:relative;display:grid;grid-template-columns:repeat(3,34px) 20px repeat(3,34px);gap:var(--space-8);justify-content:center;margin:var(--space-8) 0}.seat{position:relative;height:35px;background:#28483e;border:1px solid #639d83;border-radius:6px 6px 3px 3px;color:#bcdfcb;font-size:9px;box-shadow:inset 0 -5px 0 #132d23}.seat::after{content:'';position:absolute;bottom:3px;left:4px;right:4px;height:1px;background:#659a7f66}.seat.occupied{background:#263034;border-color:#38464a;color:#526063;box-shadow:inset 0 -5px 0 #1e272a;cursor:not-allowed}.seat.current{background:#32d6a7;border-color:#61ffd1;color:#103a2b;box-shadow:inset 0 -5px 0 #139c76}.seat.chosen{outline:2px solid #d1ffe2;outline-offset:2px;background:#67e5b5;color:#0e3c29}.row-number{position:absolute;left:50%;top:12px;transform:translateX(-50%);font-size:8px;color:#688e7c}.seat-selection{display:flex;gap:var(--space-16);align-items:center;padding:var(--space-16) var(--space-4) 0}.seat-selection small{display:block;font-size:7px;color:#6d9180;letter-spacing:1px}.seat-selection strong{font:500 24px Manrope,sans-serif;display:block;margin-top:var(--space-4)}.seat-selection>span{color:#507b66}.seat-selection p{font-size:9px;color:#8bad98;margin-left:auto;max-width:115px}.seat-mode .primary{margin-top:var(--space-12);flex-shrink:0;background:#9ee6bd}.primary:disabled{background:#2b3930;color:#6f8a78;cursor:default}.seat-disclaimer{font-size:8px!important;line-height:1.5!important;color:#65846e!important;margin:var(--space-12) 0 0}.seat-interface{animation:reveal-cabin .45s ease-out}.animating .seat-interface{animation:none}@keyframes turn-aircraft{0%{transform:rotate(0) rotateY(0) scale(1);opacity:1}65%{opacity:1}100%{transform:rotate(-55deg) rotateY(35deg) scale(.8);opacity:0}}@keyframes zoom-aircraft{0%,25%{opacity:0;transform:scale(.65) rotate(15deg)}48%{opacity:1;transform:scale(1) rotate(0)}65%{opacity:1;transform:scale(1.05)}85%{opacity:.7;filter:sepia(.6) hue-rotate(90deg);transform:scale(2.5)}100%{opacity:0;filter:sepia(1) hue-rotate(90deg);transform:scale(3.8)}}@keyframes scan-cabin{0%,55%{top:20%;opacity:0}65%{top:20%;opacity:1}95%{top:90%;opacity:1}100%{top:95%;opacity:0}}@keyframes label-out{0%,80%{opacity:1}100%{opacity:0}}@keyframes reveal-cabin{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.seat-animation{display:none!important}.seat-interface{animation:none!important}}
.partner-mode .sheet{padding-top:var(--space-32);min-height:440px;text-align:center}.partner-mode .eyebrow{justify-content:center}.partner-mode h2{margin:var(--space-20) var(--space-12);font-size:26px;line-height:1.25}.partner-loader{height:130px;display:grid;place-items:center}.partner-orbit{width:83px;height:83px;border:1px solid #3e6754;border-radius:50%;display:grid;place-items:center;position:relative;background:#25413244}.partner-orbit svg{color:#b5e3c6;width:32px;height:32px;transform:rotate(10deg)}.partner-orbit::after{content:'';position:absolute;inset:-10px;border:2px solid transparent;border-top-color:#65d3a1;border-right-color:#65d3a144;border-radius:50%;animation:orbit-spin 1.1s linear infinite}.partner-subtitle{max-width:240px;margin:var(--space-16) auto!important}.partner-progress{height:3px;background:#344137;border-radius:4px;overflow:hidden;margin:var(--space-24) var(--space-12)}.partner-progress span{display:block;height:100%;width:100%;background:#86dbac;transform-origin:left;animation:load-progress 1.8s ease-out both}.partner-success{font-size:32px;width:70px;height:70px;border:1px solid #547b61;background:#294536;border-radius:50%;display:grid;place-items:center;color:#a4e5bd;margin:var(--space-24) auto}.animation-label{text-transform:none;font-size:11px;letter-spacing:0}@keyframes orbit-spin{to{transform:rotate(360deg)}}@keyframes load-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.partner-orbit::after,.partner-progress span{animation:none}}
.seat-mode #sheet-body{height:100%;display:flex;flex-direction:column;min-height:0}.seat-mode .seat-interface{height:auto;flex:1;min-height:0}.seat-mode h2,.seat-mode .eyebrow,.seat-mode .seat-intro,.seat-map-label,.seat-legend,.seat-selection{flex-shrink:0}.seat-mode .cabin-scroll{min-height:120px}.seat-mode .seat-intro{margin-bottom:var(--space-16)}

/* Each first-class pair occupies the same 114px bank as three main-cabin seats. */
.seat-columns{display:grid;grid-template-columns:repeat(3,34px) 20px repeat(3,34px);gap:var(--space-8);justify-content:center;font-size:9px;color:#7fae97;text-align:center;margin:0 0 var(--space-12)}
.seat-row.first-class,.seat-columns.first-class{grid-template-columns:repeat(2,54px) 20px repeat(2,54px)}
.seat-row.first-class{margin:var(--space-12) 0}
.seat-row.first-class .seat{height:45px;border-radius:9px 9px 5px 5px;box-shadow:inset 4px 0 0 #17382b,inset -4px 0 0 #17382b,inset 0 -7px 0 #132d23}
.seat-row.first-class .seat.occupied{box-shadow:inset 4px 0 0 #1e272a,inset -4px 0 0 #1e272a,inset 0 -7px 0 #1e272a}
.seat-row.first-class .seat.current,.seat-row.first-class .seat.chosen{box-shadow:inset 4px 0 0 #218a64,inset -4px 0 0 #218a64,inset 0 -7px 0 #218a64}
.seat-row.first-class .row-number{top:17px}
.cabin-class-label{text-align:center;font-size:8px;letter-spacing:1.5px;color:#97bba4;margin:var(--space-24) 0 var(--space-16);padding-top:var(--space-16);border-top:1px solid #335341}
#seat-rows>.cabin-class-label:first-child{border-top:0;margin-top:0;padding-top:0}

/* One synchronized scan boundary replaces the exterior with the cabin. */
.seat-mode.animating{background:transparent;backdrop-filter:none}
.seat-mode.animating .sheet{background:#12191b;border-color:transparent;animation:none;clip-path:inset(0 0 100% 0)}
.seat-mode.animating #sheet-body>.eyebrow,.seat-mode.animating #sheet-body>h2,.seat-mode.animating .seat-intro{opacity:1;animation:none}
.seat-mode.animating .seat-interface{visibility:visible;opacity:1;pointer-events:none;animation:none}
.seat-mode .seat-interface{animation:none}
.flight-morph{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:12}
.morph-exterior{position:absolute;inset:0;will-change:clip-path}
.morph-backdrop{position:absolute;inset:0;background:#12191b}
.morph-aircraft{position:absolute;object-fit:contain;transform-origin:top left;will-change:transform,filter}
.morph-scan{position:absolute;left:0;right:0;height:2px;background:#a0ffda;box-shadow:0 0 24px 6px #4fcbaa77;transform:translateY(-1px)}
.morph-status{position:absolute;bottom:26px;left:20px;right:20px;text-align:center;font-size:11px;color:#b4d7c5}
@media(prefers-reduced-motion:reduce){.seat-mode.animating .sheet{clip-path:none}.flight-morph{display:none}}

/* Keep the key with the seat summary so the cabin has a clean upper edge. */
.seat-interface>.seat-legend{justify-content:center;gap:var(--space-16);margin:var(--space-12) 0 0;padding:0 var(--space-4);flex-shrink:0}
.seat-selection{padding-top:var(--space-12)}

/* iOS presentation: system typography, readable hierarchy and 44px controls. */
.device{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1.0625rem;line-height:1.4;-webkit-text-size-adjust:100%}
.device button,.device input,.device select,.device textarea{font-family:inherit}
.device button,.device a.primary,.device a.secondary{min-height:44px}
.device button:focus-visible,.device a:focus-visible,.device input:focus-visible,.device textarea:focus-visible,.device select:focus-visible,.cabin-scroll:focus-visible{outline:3px solid #a0ffda;outline-offset:2px}
.status-bar{height:50px;font-size:.9375rem;padding-inline:var(--space-24)}
.app{padding:var(--space-12) var(--space-20) var(--space-24)}
.app-wordmark{font-size:.6875rem;color:#b8bdc0;letter-spacing:1.4px}
.icon-button{width:44px;height:44px;padding:var(--space-12);color:#c4c9cb}
.trip-title{font-family:inherit;font-size:1.75rem;line-height:1.18;margin-top:var(--space-12)}
.flight-meta{font-size:.8125rem;color:#b0b5b8;line-height:1.5}
.flight-status{font-size:.9375rem;flex-wrap:wrap}
.route strong{font-family:inherit;font-size:2rem}
.route small{font-size:.8125rem;color:#aeb5b7}
.quick-actions{gap:var(--space-4);margin-bottom:var(--space-20)}
.quick-actions button{font-size:.6875rem;line-height:1.3;min-width:44px;min-height:64px;color:#c6cbce}
.arrival-card{padding:var(--space-16);border-radius:14px}
.card-label,.section-label{font-size:.6875rem;color:#acb6b0;letter-spacing:1px}
.arrival-card h2{font-size:1.25rem;line-height:1.3}
.arrival-card p{font-size:.9375rem;line-height:1.45;color:#b7c0ba}
.arrival-card .arrival-meta{gap:var(--space-12);justify-content:space-between;flex-wrap:wrap}
.arrival-meta small{font-size:.6875rem;color:#adb8b0}
.arrival-meta strong{font-size:1.0625rem}
.land-button{font-size:1rem;border-radius:10px}
.essential-row{min-height:64px;padding-block:var(--space-16)}
.essential-row strong{font-size:1.0625rem;font-weight:600}
.essential-row small{font-size:.8125rem;color:#aeb6b9}
.essential-row .chevron{color:#a6afaf}
.footnote{display:flex;gap:var(--space-8);align-items:center;flex-wrap:wrap;color:#b2bcb5;font-size:.8125rem}
.footnote button{font-size:.8125rem;color:#c0d1c5;padding:var(--space-8) 0}
.sheet{padding:var(--space-64) var(--space-20) max(var(--space-28),env(safe-area-inset-bottom));border-radius:28px 28px 0 0}
.sheet-handle{display:none}
.close{left:12px;right:auto;top:12px;width:auto;min-width:64px;height:44px;padding:var(--space-8) var(--space-12);border-radius:12px;background:transparent;color:#8ee7bd;font-size:1.0625rem;font-weight:500;line-height:1.4;z-index:15}
.sheet h2{font-family:inherit;font-size:1.75rem;line-height:1.18;margin:var(--space-8) 0 var(--space-12)}
.sheet p{font-size:1rem;line-height:1.5;color:#bac6bf}
.sheet .eyebrow{font-size:.6875rem;color:#aebfb3;letter-spacing:.8px}
.form-tabs button{font-size:.875rem}
.field{font-size:.8125rem;color:#c0cbc3}
.field input,.field textarea,.field select{min-height:44px;font-size:1.0625rem;padding:var(--space-12) var(--space-12);border-radius:10px}
.field input::placeholder,.field textarea::placeholder{color:#a0aea4;opacity:1}
.field-grid{gap:var(--space-12);align-items:start}
.primary,.secondary{font-size:1.0625rem;line-height:1.35;border-radius:12px}
.help{font-size:.8125rem!important;color:#b2c0b5!important}
.error{font-size:.9375rem!important}
.detail-line{font-size:1rem;flex-wrap:wrap}
.detail-line span{color:#b3c3b7}
.trip-option strong{font-size:1.0625rem}
.trip-option small,.inline-note{font-size:.8125rem;color:#bfd0c2}
.check-label{font-size:.9375rem;min-height:44px}
#toast{font-size:.9375rem;line-height:1.4;bottom:max(27px,env(safe-area-inset-bottom))}
.partner-mode .sheet{padding-top:var(--space-64)}
.partner-mode h2{font-size:1.75rem}
.partner-subtitle{max-width:100%}
.seat-mode .sheet{padding:var(--space-104) var(--space-12) var(--space-24)}
.seat-mode .close{top:52px}
.seat-mode h2{font-size:1.75rem;margin:var(--space-8) 0}
.seat-mode .seat-intro{font-size:.9375rem!important;margin-bottom:var(--space-12)}
.seat-map-label{font-size:.6875rem;color:#b6cfc1;letter-spacing:.6px}
.seat-interface>.seat-legend{gap:var(--space-12);flex-wrap:wrap;font-size:.6875rem;line-height:1.5;color:#c2d4cb;margin-top:var(--space-12)}
.seat-legend i{display:inline-grid;place-items:center;width:14px;height:14px;font-style:normal;font-size:11px;color:#c2d4cb}
.seat-legend .taken::after{content:'×'}
.seat-legend .yours::after{content:'●';font-size:8px;color:#103a2b}
.cabin-scroll{overscroll-behavior:contain;scroll-padding-block:var(--space-16)}
.cabin{width:322px;padding:var(--space-32) var(--space-8) var(--space-20)}
/* A 140px bank fits either 3 x 44px or 2 x 68px seats, with 4px gaps. */
.seat-row,.seat-columns{grid-template-columns:repeat(3,44px) 16px repeat(3,44px);gap:var(--space-4)}
.seat-row.first-class,.seat-columns.first-class{grid-template-columns:repeat(2,68px) 16px repeat(2,68px)}
.seat{height:44px;min-width:44px;font-size:.8125rem;padding:0;color:#ddf8e7}
.seat-row.first-class .seat{height:54px}
.seat.occupied{color:#a3b4b8;border-color:#52666b}
.row-number{top:14px;font-size:.6875rem;color:#b2cfbf}
.seat-row.first-class .row-number{top:19px}
.seat-columns,.cabin-entry,.cockpit,.cabin-class-label{font-size:.6875rem;color:#b2d0bf}
.seat-selection{gap:var(--space-12);flex-wrap:wrap;padding-top:var(--space-12)}
.seat-selection small{font-size:.6875rem;color:#b2cebe;letter-spacing:.6px}
.seat-selection strong{font-family:inherit;font-size:1.5rem}
.seat-selection p{font-size:.8125rem;color:#bdd6c8;max-width:125px;margin-block:0}
.seat-mode .primary{margin-top:var(--space-12)}
.primary:disabled{color:#b1c5b8}
.morph-status{font-size:.875rem}
@media(max-width:780px){.device{width:min(390px,calc(100vw - 24px))}.stage{padding-inline:var(--space-12)}.seat-mode .sheet{padding-inline:var(--space-8)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* A live phone clock alongside a fixed flight schedule. */
#phone-clock{font-variant-numeric:tabular-nums}
.boarding-time{font-size:.8125rem;color:#b0bcb6;margin-top:var(--space-4);font-variant-numeric:tabular-nums}

/* Keep pointer interactions app-like while preserving editable form fields. */
.device,.device *{-webkit-user-select:none;user-select:none}
.device input,.device textarea{-webkit-user-select:text;user-select:text}
.device img{-webkit-user-drag:none;user-drag:none}

/* Airport searches stay inside the phone, in a full-height map view. */
.map-mode .sheet{height:100%;max-height:100%;border-radius:0;padding:var(--space-104) var(--space-16) var(--space-24);overflow:hidden}
.map-mode #sheet-body{display:flex;flex-direction:column;height:100%;min-height:0}
.map-mode .close{top:52px;left:auto;right:12px}
.map-back{position:absolute;top:52px;left:12px;min-height:44px;padding:var(--space-8) var(--space-12);background:transparent;color:#8ee7bd;font-size:1.0625rem}
.map-mode h2{font-size:1.5rem;flex-shrink:0}
.map-mode .map-query{font-size:.8125rem;margin:0 0 var(--space-16);color:#bac6bf;flex-shrink:0}
.inline-map{position:relative;flex:1;min-height:180px;border-radius:16px;overflow:hidden;background:#e5e8e4;border:1px solid #434b46}
.inline-map iframe{position:relative;display:block;border:0;width:100%;height:100%;min-height:180px;z-index:1}
.map-loading{position:absolute;inset:0;display:grid;place-items:center;color:#36463d;font-size:1rem}
.map-retry{flex-shrink:0;align-self:center;background:transparent;color:#b5d7c1;font-size:.8125rem;margin-top:var(--space-8);padding:var(--space-8) var(--space-16)}

/* The passenger's confirmed seat is distinct from a new green selection. */
.seat.current,.seat-row.first-class .seat.current{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);background:#ffe39a;color:#282012;border:2px solid #fff5d6;outline:2px solid #e5b957;outline-offset:1px;box-shadow:0 0 16px #ffd27070,inset 0 -4px 0 #d5ae54;z-index:1}
.seat.current::after{display:none}
.seat-you{font-size:.6875rem;line-height:1;font-weight:800;letter-spacing:.6px}
.seat-id{font-size:.8125rem;line-height:1.2;font-weight:700}
.seat-legend .yours{background:#ffe39a;border-color:#fff5d6;box-shadow:0 0 7px #ffd27055}
.seat-legend .yours::after{color:#282012}
.current-seat-shortcut{background:#ffe39a12;border:1px solid #e5b95788;border-radius:10px;padding:var(--space-8) var(--space-12);color:#ffe39a;text-align:left;flex-shrink:0}
.current-seat-shortcut small{color:#ffe39a}
.current-seat-shortcut strong{margin-top:var(--space-4)}
.current-seat-shortcut .seat-locate-hint{font-size:.6875rem;letter-spacing:0;margin-top:var(--space-4);color:#e9d2a0}

@media(max-width:780px){.phase-controls{display:block;width:min(340px,100%);margin:var(--space-24) auto 0;text-align:left}.phase-controls button{min-height:64px;padding:var(--space-16) 0}}

/* An atmospheric in-flight sky with continuous, layered cloud movement. */
.flight-sky{position:relative;isolation:isolate;height:256px;margin:var(--space-12) calc(-1 * var(--space-20)) var(--space-4);overflow:hidden;contain:paint}
.sky-sunlight{position:absolute;inset:0 -80px 0 0;background:radial-gradient(ellipse at 85% 35%,#bfc9ce12,transparent 62%);pointer-events:none}
.cloud-track{position:absolute;left:0;width:200%;display:flex;pointer-events:none;will-change:transform;animation:cloud-drift 56s linear infinite}
.cloud-track>span{width:50%;flex-shrink:0;height:100%;background:url('assets/flight-clouds.png') center/100% auto no-repeat}
.cloud-distant{top:-14px;height:180px;opacity:.43;filter:blur(2px);animation-duration:80s;animation-delay:-27s;z-index:1}
.cloud-middle{top:88px;height:170px;opacity:.58;animation-duration:48s;animation-delay:-11s;z-index:2}
.sky-aircraft{position:absolute;top:80px;left:3%;width:94%;z-index:3;animation:aircraft-glide 9s ease-in-out infinite;filter:drop-shadow(0 12px 12px #0005);will-change:transform}
.sky-aircraft img{width:100%;height:auto;display:block}
.cloud-foreground{top:124px;height:180px;opacity:.42;filter:blur(3px);animation-duration:26s;animation-delay:-17s;z-index:4}
.sky-motion{position:absolute;top:5px;right:12px;z-index:5;width:44px;height:44px;border-radius:50%;background:#ffffff0e;border:1px solid #ffffff20;color:#e9f5fa;font-size:1rem;backdrop-filter:blur(8px)}
.sky-caption{position:absolute;bottom:10px;left:0;right:0;text-align:center;z-index:5;color:#b8c2be;font-size:.6875rem;letter-spacing:2px;text-shadow:0 1px 8px #151617}
.sky-paused .cloud-track,.sky-paused .sky-aircraft{animation-play-state:paused}
@keyframes cloud-drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes aircraft-glide{0%,100%{transform:translateY(0) rotate(-.7deg)}50%{transform:translateY(-5px) rotate(.5deg)}}
@media(prefers-reduced-motion:reduce){.cloud-track,.sky-aircraft{animation:none!important;will-change:auto}.sky-motion{display:none}}

.sky-sunlight{-webkit-mask-image:linear-gradient(transparent,#000 25%,#000 65%,transparent);mask-image:linear-gradient(transparent,#000 25%,#000 65%,transparent)}


/* Preserve the shared charcoal app theme; atmosphere stays in the aircraft scene. */
.cloud-track>span{filter:grayscale(.8) brightness(.65)}
.sky-atmosphere{position:absolute;inset:0;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 22%,#000 78%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,#000 22%,#000 78%,transparent 100%)}

/* The appearance control is shared by every journey phase. */
.device{color-scheme:dark}
.theme-toggle svg.icon{width:25px;height:25px;stroke-width:1.6}
/* Soft blue daylight appearance, matching the original in-flight sky. */
.device[data-theme="light"]{--app:#28536e;--green:#b9f0da;color-scheme:dark;color:#f3f8fc;background:radial-gradient(ellipse at 88% 16%,#9acee64d,transparent 45%),linear-gradient(170deg,#235472 0%,#316383 34%,#19394f 70%,#112a3d 100%)}
.device[data-theme="light"] .app-wordmark,.device[data-theme="light"] .icon-button{color:#d6e9f4}
.device[data-theme="light"] .trip-title,.device[data-theme="light"] .essential-row strong{color:#f3f8fc}
.device[data-theme="light"] .flight-meta,.device[data-theme="light"] .boarding-time,.device[data-theme="light"] .route small,.device[data-theme="light"] .section-label,.device[data-theme="light"] .essential-row small,.device[data-theme="light"] .footnote,.device[data-theme="light"] .footnote button{color:#d0e2ed}
.device[data-theme="light"] .quick-actions button,.device[data-theme="light"] .essential-row{color:#d7e8f2}
.device[data-theme="light"] .essential-row{border-color:#ffffff20}
.device[data-theme="light"] .arrival-card{background:#ffffff0b;border-color:#ffffff26;backdrop-filter:blur(16px);box-shadow:0 8px 30px #051e311a}
.device[data-theme="light"] .card-label,.device[data-theme="light"] .arrival-card p,.device[data-theme="light"] .arrival-meta small{color:#cfe2ed}
.device[data-theme="light"] .arrival-meta strong{color:#f1f8fc}
.device[data-theme="light"] .route-line{border-color:#c5e5f066}
.device[data-theme="light"] .route-line span{background:transparent;color:#e3f3fb}
.device[data-theme="light"] .home-bar{background:#d6e7f0}
.device[data-theme="light"] .sky-caption{color:#d6e9f3;text-shadow:0 1px 8px #19394f}
.device[data-theme="light"] .sky-motion{background:#ffffff0e;border-color:#ffffff30;color:#e9f5fa}
.device[data-theme="light"] .cloud-track>span{filter:none}
.device[data-theme="light"] .sky-sunlight{background:radial-gradient(ellipse at 85% 35%,#f7e9bb22,transparent 62%)}
.device[data-theme="light"] .sheet{background:linear-gradient(165deg,#315e79,#1b3b51);border-color:#668398;color:#f3f8fc}
.device[data-theme="light"] .sheet p,.device[data-theme="light"] .sheet .eyebrow,.device[data-theme="light"] .field{color:#d1e3ee}
.device[data-theme="light"] .close,.device[data-theme="light"] .map-back,.device[data-theme="light"] .map-retry{color:#d7edf7}
.device[data-theme="light"] .field input,.device[data-theme="light"] .field textarea,.device[data-theme="light"] .field select{color-scheme:light;background:#dceaf2;color:#193b50;border-color:#acc5d5}
.device[data-theme="light"] .field input::placeholder,.device[data-theme="light"] .field textarea::placeholder{color:#536e7e}
.device[data-theme="light"] .form-tabs{background:#173c53}
.device[data-theme="light"] .form-tabs button{color:#c5dce9}
.device[data-theme="light"] .form-tabs .active{background:#466f88;color:#f3f8fc}
.device[data-theme="light"] .detail-block,.device[data-theme="light"] .trip-option{background:#ffffff0b;border-color:#ffffff30;color:#edf7fc}
.device[data-theme="light"] .detail-line{border-color:#ffffff20}
.device[data-theme="light"] .detail-line span,.device[data-theme="light"] .trip-option small{color:#c8deeb}
.device[data-theme="light"] .primary,.device[data-theme="light"] .land-button{background:#dceef6;color:#20465d}
.device[data-theme="light"] .secondary{border-color:#89a9be;color:#d8eaf4}
.device[data-theme="light"] .help{color:#c4dce9!important}
.device[data-theme="light"] .error{color:#ffd2bb!important}
.device[data-theme="light"] .inline-note{background:#ffffff12;color:#d2e7f3}
.device[data-theme="light"] .seat-map-label,.device[data-theme="light"] .seat-legend,.device[data-theme="light"] .seat-selection small,.device[data-theme="light"] .seat-selection p{color:#d3e7f2}
.device[data-theme="light"] .seat-columns,.device[data-theme="light"] .cabin-entry,.device[data-theme="light"] .cockpit,.device[data-theme="light"] .cabin-class-label,.device[data-theme="light"] .row-number{color:#345468}
.device[data-theme="light"] .cabin-scroll{border-color:#8aa9bd;background:#bfd4e1}
.device[data-theme="light"] .cabin{border-color:#6b93ac;background:linear-gradient(90deg,#7ca0b333,transparent 15%,transparent 85%,#7ca0b333)}
.device[data-theme="light"] .seat:not(.current):not(.chosen):not(.occupied){background:#dcebf3;color:#23475c;border-color:#6e9bb5;box-shadow:inset 0 -4px 0 #a5c4d6}
.device[data-theme="light"] .seat.occupied{background:#b1c2cd;color:#526d7e;border-color:#92aab8;box-shadow:inset 0 -4px 0 #a0b6c4}
.device[data-theme="light"] .seat.chosen:not(.current){outline-color:#176b47;background:#8be0af;color:#164c2d}
.device[data-theme="light"] .seat-legend i:not(.yours):not(.taken){background:#dcebf3;border-color:#6e9bb5}
.device[data-theme="light"] .seat-legend .taken{background:#b1c2cd;border-color:#92aab8;color:#3b596b}
.device[data-theme="light"] .current-seat-shortcut{background:#fff1c7;border-color:#b79642;color:#684b13}
.device[data-theme="light"] .current-seat-shortcut small{color:#785d26}
.device[data-theme="light"] .primary:disabled{background:#52758b;color:#d1e2ec}
.device[data-theme="light"] .partner-orbit{background:#47748e66;border-color:#8baec4}
.device[data-theme="light"] .partner-orbit svg{color:#d4edf8}
.device[data-theme="light"] .partner-progress{background:#456b84}
.device[data-theme="light"] .partner-success{background:#385e71;color:#c1efdb;border-color:#8ab8b0}
.device[data-theme="light"] #toast{background:#254b65;color:#e6f4fc;border-color:#89adc2}

/* Parked arrival aircraft: gear and stairs visible, no in-flight motion. */
.aircraft.ground-aircraft{height:208px;margin:var(--space-16) calc(-1 * var(--space-16)) 0}
.ground-aircraft img{width:calc(100% - 12px);height:auto;max-height:100%;object-fit:contain;filter:drop-shadow(0 9px 8px #0003)}

/* Give the longer companion promise a comfortable editorial measure. */
.intro h1{font-size:44px;line-height:1.12;letter-spacing:-2px}
@media(max-width:1080px){.intro h1{font-size:40px}}
@media(max-width:780px){.intro h1{font-size:32px;line-height:1.15;letter-spacing:-1.2px;max-width:460px}}

.intro .intro-promise{font-size:22px;line-height:1.45;color:#7c897f;max-width:420px}
@media(max-width:780px){.intro .intro-promise{font-size:19px;margin-inline:auto}}

/* Before takeoff: keep the countdown and boarding time together. */
.preflight-status{flex-wrap:nowrap;gap:var(--space-8);font-size:.75rem;white-space:nowrap}
.preflight-status>i{width:5px;height:5px;flex-shrink:0}
.preflight-status .boarding-time{font-size:inherit;line-height:inherit;margin:0;padding-left:var(--space-8);border-left:1px solid #71807966;white-space:nowrap}
@media(max-width:380px){.preflight-status{font-size:.6875rem;gap:var(--space-4)}.preflight-status .boarding-time{padding-left:var(--space-4)}}

.route-line.route-at-start span{left:0;transform:translateX(-50%)}

.route-line.route-at-end span{left:auto;right:0;transform:translateX(50%)}

.preflight-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-12);width:100%;min-height:44px;margin:var(--space-12) 0;padding:0;background:transparent;text-align:left}.preflight-summary>span{min-width:0}.preflight-summary strong{display:block;overflow-wrap:anywhere}

/* Flight hub: a compact, weather-inspired list of saved trips. */
.hub-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);margin-top:var(--space-24)}
.hub-heading h2{margin:0;font-size:2.125rem;line-height:1.15;font-weight:700;letter-spacing:-1px}
.hub-add{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:#263332;border:1px solid #486460;color:#b5efd9}
.hub-intro{margin:var(--space-8) 0 var(--space-24);font-size:.9375rem;line-height:1.5;color:#aeb8bc}
.flight-list{display:grid;gap:var(--space-16)}
.flight-card{position:relative;isolation:isolate;overflow:hidden;display:block;width:100%;min-height:183px;padding:var(--space-20);border-radius:22px;text-align:left;color:#f5f8fa;background:linear-gradient(135deg,#325267,#1b3547 75%);border:1px solid #91aabb30;box-shadow:0 8px 20px #0002}
.flight-card::before{content:"";position:absolute;z-index:-1;inset:0;background:url('assets/flight-clouds.png') center/auto 100% no-repeat;opacity:.3;pointer-events:none}
.flight-card:nth-child(3n+2){background:linear-gradient(135deg,#4c5f73,#27374e 75%)}
.flight-card:nth-child(3n){background:linear-gradient(135deg,#365c66,#1e3d43 75%)}
.flight-card-route{display:flex;align-items:center;gap:var(--space-12);position:relative;z-index:1}
.flight-card-route strong{font-size:1.75rem;letter-spacing:-.6px;line-height:1.2;font-weight:650}
.flight-card-route>span{color:#b9d4df;font-size:1.25rem}
.flight-card-airline{display:block;position:relative;z-index:1;max-width:100%;font-size:.8125rem;color:#d5e5ed;margin-top:var(--space-4);overflow-wrap:anywhere}
.flight-card-plane{position:absolute;right:10px;top:58px;width:180px;height:auto;opacity:.6;pointer-events:none;filter:drop-shadow(0 8px 8px #081c3180)}
.flight-card-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-8);position:relative;z-index:1;margin-top:var(--space-40)}
.flight-card-phase,.flight-card-date{display:block;font-size:.8125rem;line-height:1.45;text-shadow:0 1px 5px #071522}
.flight-card-phase{font-weight:600;color:#e3f5f0}
.flight-card-date{margin-top:var(--space-4);color:#d5e5ed}
.flight-card-open{font-size:1.25rem;color:#d5e5ed}
.hub-add-card{display:flex;align-items:center;gap:var(--space-16);width:100%;min-height:104px;margin-top:var(--space-16);padding:var(--space-20) var(--space-16);border:1px dashed #526768;border-radius:22px;background:#20292980;color:#cbe8dd;text-align:left}
.hub-add-card>.icon{flex-shrink:0;width:28px;height:28px}
.hub-add-card strong{display:block;font-size:1.0625rem;font-weight:600}
.hub-add-card small{display:block;font-size:.8125rem;line-height:1.45;color:#b2bdbb;margin-top:var(--space-4)}
.hub-hint{font-size:.8125rem;line-height:1.5;text-align:center;color:#a2aeaa;margin:var(--space-20) var(--space-8)}
.hub-back{display:block;min-height:44px;padding:var(--space-12) 0 0;background:transparent;color:#ade1cd;font-size:.875rem;text-align:left}
.device[data-theme="light"] .hub-add{background:#ffffff15;border-color:#b4d8eb66;color:#e1f2fc}
.device[data-theme="light"] .hub-intro,.device[data-theme="light"] .hub-hint{color:#d0e1ec}
.device[data-theme="light"] .flight-card{background:linear-gradient(130deg,#769db9,#476d8a 80%);border-color:#c3e0ef44}
.device[data-theme="light"] .flight-card::before{opacity:.55}
.device[data-theme="light"] .hub-add-card{background:#ffffff0b;border-color:#acd3e377;color:#f1f8fc}
.device[data-theme="light"] .hub-add-card small,.device[data-theme="light"] .hub-back{color:#d5e8f2}

.arrival-card .arrival-meta,.preflight-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-12)}

/* Replace browser-default paragraph spacing with an explicit grid value. */
:where(.sheet p){margin-block:var(--space-16)}
