:root{--color-bg:#F3F4F7;--color-surface:#F9F9FB;--color-surface-muted:#ECEEF3;--color-surface-emphasis:#B7C5D7;--color-text:#1B2537;--color-text-secondary:#2A3747;--color-text-muted:#455667;--color-primary:#2C648E;--color-primary-hover:#185271;--color-mid:#6989AA;--color-soft:#88A8C7;--color-border:#96A5B8;--color-border-strong:#576777;--color-panel-dark:#394A5A;--color-panel-deep:#1B2537;--color-on-dark:#EAEBF2;--color-success:#2F5D56;--color-danger:#493E37;--color-focus:#185271;--color-shadow:rgba(27,37,55,.10);--color-shadow-soft:rgba(27,37,55,.06);--color-shadow-strong:rgba(27,37,55,.25);--color-overlay:rgba(27,37,55,.88);--navy:var(--color-text);--blue-dark:var(--color-text-secondary);--blue-mid:var(--color-text-muted);--blue-pale:var(--color-surface-emphasis);--bg:var(--color-bg);--white:var(--color-surface);--accent:var(--color-primary);--border:var(--color-border);--title:'Avenir','Frutiger','Helvetica','Arial',sans-serif;--body:'Frutiger','Avenir','Helvetica','Arial',sans-serif;--brand:'Didot','Garamond','Georgia','Times New Roman',serif;--data:'DIN','Univers','Helvetica','Arial',sans-serif}*{box-sizing:border-box}html{min-width:0;background:var(--bg)}body{margin:0;background:var(--color-bg);color:var(--navy);font-family:var(--body);font-size:19px;font-weight:500;line-height:1.5}.app-shell{min-height:100vh;display:flex;flex-direction:column}.site-header{height:88px;width:min(100% - 48px,1120px);margin:auto;display:flex;align-items:center;justify-content:space-between}.brand,.language-toggle,.back-button{border:0;background:none;color:inherit;cursor:pointer}.brand{display:flex;gap:12px;align-items:center;text-align:left}.brand-mark{display:flex;align-items:flex-end;gap:3px;width:25px;height:27px;transform:skew(-18deg)}.brand-mark span{display:block;background:var(--accent);width:6px}.brand-mark span:nth-child(1){height:12px}.brand-mark span:nth-child(2){height:20px}.brand-mark span:nth-child(3){height:27px}.brand-copy{display:flex;flex-direction:column}.brand-copy strong{font:700 19px var(--brand);letter-spacing:.02em}.brand-copy small{color:var(--blue-mid);font-size:13px;font-weight:700;letter-spacing:.12em}.header-tools{display:flex;align-items:center;gap:18px}.language-toggle{font-size:15px;font-weight:700;color:var(--blue-dark);padding:9px 0;border-bottom:2px solid var(--accent)}.back-button{font-size:16px;font-weight:700;color:var(--blue-mid);padding:8px}.back-button:before{content:none}.screen{width:min(100% - 48px,760px);margin:0 auto;padding:74px 0 68px;animation:fade-in .45s ease both}.screen-welcome{position:relative;min-height:calc(100vh - 88px);display:grid;grid-template-columns:1fr 240px;align-content:center;gap:22px 55px;padding-top:22px}.welcome-intro{grid-column:1}.eyebrow{display:flex;align-items:center;gap:10px;color:var(--blue-mid);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin:0 0 22px}.eyebrow-line{width:31px;height:2px;background:var(--accent);display:inline-block}.screen h1{font:700 clamp(2.7rem,6vw,3.65rem)/1.08 var(--title);letter-spacing:0;margin:0 0 22px}.lead{max-width:620px;color:var(--blue-dark);font-size:20px;font-weight:600;line-height:1.65;margin:0}.welcome-actions{grid-column:1;display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:12px}.button{border:2px solid transparent;border-radius:4px;min-height:60px;padding:14px 22px;font:700 18px var(--body);cursor:pointer;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)}.button:focus-visible,.language-toggle:focus-visible,.back-button:focus-visible,.brand:focus-visible,.text-button:focus-visible,.support-button:focus-visible,.overlay-close:focus-visible,input:focus-visible{outline:4px solid var(--color-focus);outline-offset:3px}.button-primary{background:var(--accent);color:var(--white);box-shadow:0 5px 0 var(--color-primary-hover)}.button-primary:hover{background:var(--color-primary-hover);box-shadow:0 7px 0 var(--color-primary-hover)}.button-primary:active{box-shadow:0 2px 0 var(--color-primary-hover)}.button-secondary{background:var(--white);border-color:var(--border);color:var(--navy)}.button-secondary:hover{background:var(--color-surface-muted);border-color:var(--accent)}.button-large{width:min(100%,390px);min-height:64px;text-align:left}.button-icon{display:inline-flex;justify-content:center;width:27px;margin-right:8px;font-size:26px;line-height:18px}.button-icon.outline{font-size:24px;font-weight:500}.text-button{border:0;background:none;padding:8px 0;color:var(--accent);font:700 17px var(--body);cursor:pointer;text-decoration:underline;text-underline-offset:4px}.privacy-note{grid-column:1;display:flex;align-items:center;gap:8px;color:var(--blue-mid);font-size:15px;margin-top:14px}.lock-icon{font-size:22px;font-weight:700}.welcome-route{grid-column:2;grid-row:1 / span 3;align-self:center;color:var(--blue-mid);font:700 12px var(--data);letter-spacing:.14em}.welcome-route svg{display:block;width:100%;height:auto;overflow:visible}.route-path{fill:none;stroke:var(--border);stroke-width:2;stroke-dasharray:5 8}.route-dot{fill:var(--accent)}.route-plane{fill:var(--accent)}.route-label-bottom{text-align:right}.section-heading{margin-bottom:40px}.section-heading .lead{max-width:650px}.flight-card{background:var(--white);border:1px solid var(--border);border-top:5px solid var(--accent);box-shadow:0 14px 35px var(--color-shadow);padding:26px 30px 28px}.flight-card-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--blue-pale);padding-bottom:17px}.demo-tag{color:var(--accent);font-size:14px;font-weight:700}.flight-number{font:700 31px var(--data);letter-spacing:.08em}.route-summary{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;padding:28px 0}.airport-city{display:block;color:var(--blue-mid);font-size:16px;font-weight:600}.airport-code{display:block;font:700 43px var(--data);letter-spacing:.1em}.align-right{text-align:right}.route-arrow{color:var(--accent);font-size:30px}.flight-details{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border-top:1px solid var(--blue-pale);padding-top:20px}.flight-details span{display:block;color:var(--blue-mid);font-size:15px}.flight-details strong{font:700 17px var(--data);letter-spacing:.03em}.demo-disclaimer{color:var(--blue-mid);font-size:15px;margin:15px 0 28px}.choice-actions{display:flex;flex-direction:column;gap:14px}.choice-actions .button{width:100%;text-align:center}.screen-manual{max-width:680px}.manual-form label{display:block;font-weight:700;margin-bottom:8px}.input-row{display:flex;gap:12px}.input-row input{min-width:0;flex:1;border:2px solid var(--border);border-radius:4px;background:var(--white);padding:14px 17px;font:700 19px var(--data);text-transform:uppercase}.input-row .button{white-space:nowrap}.form-hint{color:var(--blue-mid);font-size:15px}.step-progress{display:flex;justify-content:space-between;color:var(--blue-mid);font:700 14px var(--data);letter-spacing:.08em;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:58px}.screen-step h1{max-width:650px;font-size:clamp(2.2rem,5vw,3rem)}.step-actions{display:flex;flex-direction:column;gap:14px;margin:34px 0}.step-actions .button{width:100%;text-align:left;padding-left:28px}.support-actions{display:flex;flex-wrap:wrap;gap:22px;border-top:1px solid var(--border);padding-top:22px}.support-button{display:flex;align-items:center;gap:8px;border:0;background:none;color:var(--blue-dark);font:700 16px var(--body);padding:3px 0;cursor:pointer}.support-button span:first-child{color:var(--accent);font-size:23px}.help-card{background:var(--color-surface-emphasis);border-left:5px solid var(--accent);padding:20px 22px;margin-top:28px}.help-card-heading{display:flex;align-items:center;gap:10px}.help-card p{font-size:18px;font-weight:600;margin:13px 0}.help-card p[lang=en]{color:var(--blue-dark)}.help-icon{display:grid;place-items:center;border:2px solid var(--accent);border-radius:50%;height:27px;width:27px;color:var(--accent);font-weight:700}.staff-overlay{position:fixed;inset:0;z-index:5;display:grid;place-items:center;background:var(--color-overlay);padding:24px}.staff-card{width:min(100%,780px);background:var(--white);padding:clamp(30px,7vw,72px);box-shadow:0 20px 55px var(--color-shadow-strong)}.staff-card h1{font-size:clamp(2.3rem,6vw,4rem);margin-bottom:30px}.staff-card p{font-size:clamp(1.25rem,3vw,1.8rem);font-weight:600;line-height:1.65}.staff-card hr{border:0;border-top:2px solid var(--blue-pale);margin:30px 0}.overlay-close{position:absolute;top:18px;right:25px;border:0;background:none;color:var(--white);font-size:42px;line-height:1;cursor:pointer}.toast{position:fixed;left:50%;bottom:25px;z-index:10;transform:translate(-50%,20px);background:var(--navy);color:var(--white);padding:12px 18px;border-radius:3px;font-size:16px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.is-visible{opacity:1;transform:translate(-50%,0)}.loading-scene{height:260px;position:relative;overflow:hidden;margin:-10px 0 35px}.flight-path{position:absolute;left:5%;right:5%;top:52%;height:100px;border-top:2px solid rgba(136,168,199,.65);border-radius:50%;transform:rotate(-4deg)}.flight-path:after,.flight-path:before{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:var(--blue-pale);top:-5px}.flight-path:before{left:0}.flight-path:after{right:0}.loading-plane{position:absolute;width:150px;left:-180px;top:27%;animation:fly-across 2.1s cubic-bezier(.35,.04,.65,1) forwards;z-index:2}.window-portal{position:absolute;left:50%;top:50%;width:88px;height:88px;border:10px solid var(--white);border-radius:50%;transform:translate(-50%,-50%) scale(.1);background:var(--blue-dark);box-shadow:0 0 0 2px var(--blue-pale),0 0 0 500px var(--color-shadow-soft);animation:window-expand .75s 1.8s ease-out forwards;z-index:3;overflow:hidden}.window-view{position:absolute;inset:0;background:linear-gradient(145deg,var(--color-surface-emphasis) 0 45%,var(--color-text-muted) 46% 52%,var(--color-primary) 53%);opacity:.8}.window-portal span{position:absolute;width:30px;height:8px;border-radius:50%;background:var(--color-on-dark);opacity:.5;left:22px;top:19px;transform:rotate(-25deg)}.loading-copy{text-align:center}.loading-copy .eyebrow{justify-content:center}.loading-copy h1{font-size:clamp(2rem,4vw,2.7rem)}.loading-status{color:var(--blue-dark);font-weight:700;min-height:31px}.progress-track{height:6px;width:min(100%,340px);margin:22px auto 0;background:var(--blue-pale);overflow:hidden}.progress-track span{display:block;width:15%;height:100%;background:var(--accent);transition:width .3s ease}@keyframes fly-across{0%{left:-180px;transform:translateY(10px) rotate(-2deg)}100%{left:calc(100% + 180px);transform:translateY(-30px) rotate(-2deg)}}@keyframes window-expand{to{transform:translate(-50%,-50%) scale(1)}}@keyframes fade-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:650px){.site-header{height:76px;width:min(100% - 32px,760px)}.screen{width:min(100% - 32px,760px);padding:48px 0}.screen-welcome{display:flex;flex-direction:column;min-height:calc(100vh - 76px);padding-top:30px}.welcome-route{order:4;width:80%;align-self:flex-end;margin-top:10px}.welcome-actions{margin-top:14px}.lead{font-size:19px}.privacy-note{margin-top:5px}.flight-card{padding:21px 18px}.route-summary{gap:9px}.airport-city{font-size:14px}.airport-code{font-size:34px}.flight-details{gap:8px}.flight-details span{font-size:13px}.flight-details strong{font-size:14px}.input-row{flex-direction:column}.input-row .button{width:100%;text-align:center}.loading-scene{margin:-10px 0 35px;height:220px}.support-actions{gap:14px 20px}.support-button{font-size:15px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.loading-plane{display:none}.window-portal{animation:none;transform:translate(-50%,-50%) scale(1)}.flight-path{opacity:.6}}[hidden]{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{margin:0 auto}
.button:disabled{cursor:wait;opacity:.68;transform:none}
.button:disabled:hover{transform:none}
.action-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--white);border-left:5px solid var(--accent);box-shadow:0 10px 28px var(--color-shadow);padding:20px 24px;margin:34px 0}
.action-summary span:first-child{display:block;color:var(--blue-mid);font-size:14px;font-weight:700}
.action-summary strong{display:block;font:700 22px var(--data);margin-top:3px}
.urgency-badge{border:2px solid var(--accent);border-radius:999px;color:var(--accent)!important;font-size:13px!important;letter-spacing:.08em;padding:7px 12px;white-space:nowrap}
.urgency-badge[data-urgency="URGENT"]{background:var(--navy);border-color:var(--navy);color:var(--white)!important}
.screen-error .section-heading{max-width:680px}
@media(max-width:650px){.action-summary{align-items:flex-start;flex-direction:column}}
.site-header{margin:0 auto}
html{min-width:0;overflow-x:hidden}
body{font-size:20px;overflow-x:hidden}
.brand,.language-toggle,.back-button,.text-button,.support-button{min-height:48px}
.brand{min-width:44px}
.language-toggle,.back-button{min-width:48px}
.button{min-height:64px;font-size:18px}
.home-back-button{display:inline-flex;align-items:center;gap:8px;min-height:48px;margin:0 0 28px;padding:10px 12px;border:0;border-radius:4px;background:transparent;color:var(--accent);font:800 17px var(--body);cursor:pointer}
.home-back-button:hover{background:var(--color-surface-emphasis)}.home-back-button:focus-visible{outline:4px solid var(--color-focus);outline-offset:3px}
.manual-form,.manual-fields,.manual-fields>div{width:100%;max-width:100%;min-width:0}
.manual-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px}
.manual-fields label{display:block;margin-bottom:8px}
.manual-fields input{display:block;width:100%;inline-size:100%;max-width:100%;min-width:0;min-height:60px;box-sizing:border-box;margin:0;border:2px solid var(--border);border-radius:4px;background:var(--white);padding:12px 16px;color:var(--navy);font:var(--manual-control-font)}
.manual-fields input[name="flight"]{text-transform:uppercase}
.manual-confirmation{display:flex;align-items:center;gap:10px;min-height:44px;margin:12px 0 0;padding:9px 0;color:var(--navy);font-size:17px;font-weight:800;line-height:1.35;cursor:pointer;word-break:normal;overflow-wrap:normal;hyphens:none}
.manual-confirmation input{width:24px;min-width:24px;height:24px;min-height:24px;margin:0;accent-color:var(--accent)}
.manual-confirmation:has(input:focus-visible){outline:4px solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-small)}
.manual-document-segments{margin-bottom:24px}
.document-unusable-hint{margin:18px 0 0;color:var(--blue-mid);font-size:16px;font-weight:650;line-height:1.55}
.document-unusable-actions{max-width:520px}
.document-unusable-actions .button{width:100%;max-width:100%}
.document-unusable-actions .home-back-button{justify-self:start;margin-top:4px}
.document-unusable-reason{max-width:620px;margin-top:34px;border-top:1px solid var(--border);padding-top:18px;color:var(--blue-dark)}
.document-unusable-reason summary{min-height:48px;display:flex;align-items:center;cursor:pointer;font-size:16px;font-weight:800}
.document-unusable-reason p{margin:10px 0 0;font-size:16px;line-height:1.6}
.manual-actions{margin-top:12px}
.manual-actions .button{max-width:none}
.flight-details{grid-template-columns:repeat(4,1fr)}
.journey-primary{margin:4px 0 30px;text-align:center}
.refresh-flight-button{margin-top:14px;max-width:none;text-align:center}
.end-journey-link{margin-left:auto;color:var(--color-text-muted)}
.complete-mark{display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:var(--accent);color:var(--white);font-size:52px;font-weight:700;margin-bottom:34px}
.confirm-overlay{position:fixed;inset:0;z-index:6;display:grid;place-items:center;background:var(--color-overlay);padding:24px}
.confirm-card{width:min(100%,620px);background:var(--white);padding:clamp(26px,6vw,52px);box-shadow:0 20px 55px var(--color-shadow-strong)}
.confirm-card h1{font:700 clamp(2rem,5vw,3rem)/1.15 var(--title);margin:0 0 18px}
.confirm-card p{font-size:20px;color:var(--blue-dark);margin:0 0 28px}
@media(max-width:650px){.manual-fields{grid-template-columns:1fr}.flight-details{grid-template-columns:repeat(2,1fr)}.support-actions{gap:8px}.support-button{width:100%;padding:7px 0}.end-journey-link{margin-left:0}.screen h1{font-size:clamp(2.15rem,11vw,3rem)}}
@media(max-width:340px){.site-header{width:calc(100% - 20px)}.screen{width:calc(100% - 24px);padding:32px 0}.brand-copy{display:none}.header-tools{gap:2px}.screen h1{font-size:2rem}.flight-card{padding:16px 12px}.airport-code{font-size:28px}.route-summary{gap:5px}.button{padding-left:14px;padding-right:14px}.staff-overlay,.confirm-overlay{padding:10px}}
.back-button{color:var(--navy);font-size:17px;padding:8px 10px}
.complete-flight{font:700 24px var(--data);letter-spacing:.04em;margin:26px 0 0}.complete-actions{max-width:520px}.complete-actions .button{max-width:none}

/* Unified live-flight context: compact, high-contrast status and evidence. */
.scenario-panel{grid-column:1;background:var(--color-surface-emphasis);border:2px dashed var(--accent);padding:18px 20px;margin-top:8px}.scenario-panel strong{display:block;font-size:18px}.scenario-panel p{color:var(--blue-dark);font-size:15px;margin:5px 0 14px}.scenario-actions{display:flex;flex-wrap:wrap;gap:8px}.scenario-actions button{border:2px solid var(--accent);background:var(--white);color:var(--navy);border-radius:3px;padding:8px 11px;font:700 14px var(--body);cursor:pointer}.scenario-actions button:focus-visible,summary:focus-visible{outline:4px solid var(--color-focus);outline-offset:3px}
.time-status{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--navy);color:var(--white);padding:18px 20px;margin:0 0 20px}.time-status div span{display:block;color:var(--blue-pale);font-size:14px}.time-status div strong{display:block;font:700 clamp(1.25rem,4vw,1.7rem) var(--data)}.time-status p{grid-column:1/-1;margin:2px 0 0;color:var(--blue-pale);font-size:14px;font-weight:700}.time-status.is-stale{background:var(--color-danger);border-left:7px solid var(--color-danger)}
.flight-details{grid-template-columns:repeat(4,1fr)}.flight-details div{min-width:0}.flight-details strong{word-break:normal;overflow-wrap:normal;hyphens:none}
.flight-change-alert,.conflict-card{background:var(--color-surface);border-left:7px solid var(--color-danger);color:var(--color-danger);padding:18px 20px;margin:18px 0;font-weight:700}.flight-change-alert p{margin:5px 0}.flight-change-alert.is-critical{background:var(--color-surface);border-color:var(--color-danger);color:var(--color-danger)}.conflict-card{background:var(--color-surface);border-color:var(--color-danger);color:var(--navy);padding:24px}.conflict-card h2{font:700 clamp(1.65rem,5vw,2.15rem)/1.2 var(--title);margin:0 0 14px}.conflict-card p{font-size:17px}.conflict-item{border-top:1px solid var(--color-surface-emphasis);padding:10px 0}.conflict-item strong{display:block}.conflict-card .button{max-width:none;margin-top:8px}
.timeline-panel{background:var(--white);border:1px solid var(--border);margin:28px 0;padding:0}.timeline-panel summary{cursor:pointer;color:var(--navy);font-weight:800;padding:16px 18px}.timeline-panel>ol{border-top:1px solid var(--border);padding:16px 20px;margin:0}.timeline-panel ol{padding-left:42px}.timeline-panel li{padding:5px 0 12px;font-size:16px}.timeline-panel time{display:block;color:var(--blue-mid);font:700 13px var(--data)}
.refresh-status{min-height:24px;color:var(--blue-dark);font-size:15px;font-weight:700}.button:disabled{cursor:not-allowed;opacity:.58;transform:none;box-shadow:none}.screen-step .time-status{margin-top:20px;margin-bottom:38px}
@media(max-width:650px){.flight-details{grid-template-columns:repeat(2,1fr)}.time-status{grid-template-columns:1fr}.time-status p{grid-column:1}.scenario-panel{order:3}.privacy-note{order:4}.welcome-route{order:5}.screen-step .time-status{margin-top:16px}}

/* Accessible operational controls and multi-provider status. */
:root{--title:'Avenir','Noto Sans SC','Microsoft YaHei UI','Segoe UI',Arial,sans-serif;--body:'Frutiger','Noto Sans SC','Microsoft YaHei UI','Segoe UI',Arial,sans-serif;--data:'DIN','Noto Sans SC','Microsoft YaHei UI','Segoe UI',Arial,sans-serif}
.action-summary p{max-width:330px;margin:0;color:var(--blue-dark);font-size:18px;font-weight:800;text-align:right}.action-summary p.is-overdue{color:var(--color-danger)}
.journey-bottom-actions{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(260px,1.3fr);align-items:stretch;gap:16px;margin:28px 0}
.journey-bottom-actions .button{width:100%;margin:0;text-align:center;min-height:64px}.journey-back{display:flex;align-items:center;justify-content:center;gap:10px}.journey-back svg,.support-button svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.staff-help-button{gap:10px;overflow:visible}.staff-help-button .staff-help-icon{width:clamp(34px,8vw,44px);height:clamp(34px,8vw,44px);max-width:none;overflow:visible;fill:none;flex:none}
.support-button{min-height:48px;padding:8px 4px}.support-button svg{color:var(--accent)}
.staff-overlay,.confirm-overlay{overflow-y:auto}.staff-card,.confirm-card{position:relative;max-height:calc(100vh - 40px);overflow-y:auto}
.staff-card{border-top:9px solid var(--accent)}.staff-card h1{font-size:clamp(2rem,6vw,3.5rem)}.staff-card>p{font-size:clamp(1.18rem,3vw,1.6rem)}
.card-close{float:right;border:2px solid var(--navy);background:var(--white);color:var(--navy);min-width:74px;min-height:48px;padding:8px 12px;font:800 clamp(22px,3vw,24px)/1.15 var(--body);cursor:pointer}
.card-close:focus-visible,.family-actions button:focus-visible{outline:4px solid var(--color-focus);outline-offset:3px}
.assistance-facts{display:grid;grid-template-columns:minmax(110px,.35fr) 1fr;gap:8px 16px;border-top:2px solid var(--blue-pale);padding:22px 0;margin:24px 0}.assistance-facts dt{color:var(--blue-mid);font-size:16px;font-weight:800}.assistance-facts dd{margin:0;color:var(--navy);font:800 18px var(--data);word-break:normal;overflow-wrap:normal;hyphens:none}
.family-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.family-actions .button{width:100%;min-height:76px}.share-expiry{min-height:24px;margin:8px 0 0;color:var(--blue-mid);font-size:15px;font-weight:750}
@media(max-width:650px){.journey-bottom-actions{display:flex;flex-direction:column-reverse}.journey-bottom-actions .button{min-height:72px}.action-summary p{text-align:left}.assistance-facts{grid-template-columns:1fr;gap:2px}.assistance-facts dd{margin-bottom:12px}.staff-card,.confirm-card{max-height:calc(100vh - 20px)}}
@media(max-width:390px){.screen{width:calc(100% - 24px)}.site-header{width:calc(100% - 24px)}.flight-details{grid-template-columns:1fr 1fr}.airport-code{font-size:30px}.staff-overlay,.confirm-overlay{padding:8px}}

/* Calm operational hierarchy: destination first, action second, time third. */
:root{--navy:var(--color-text);--blue-dark:var(--color-text-secondary);--blue-mid:var(--color-text-muted);--blue-pale:var(--color-surface-emphasis);--bg:var(--color-bg);--accent:var(--color-primary);--border:var(--color-border);--white:var(--color-surface)}
html,body{background:var(--bg)}
body{background:var(--color-bg);color:var(--navy)}
.flight-card,.timeline-panel,.button-secondary,.staff-card,.confirm-card{background:var(--color-surface)}
.flight-card,.timeline-panel{border-color:var(--color-border)}
.screen-step [data-step-result] .section-heading{margin-bottom:24px}
.screen-step [data-step-result] .section-heading h1{font-size:clamp(28px,4vw,34px);line-height:1.18;margin-bottom:14px}
.screen-step [data-step-result] .section-heading .lead{font-size:18px;line-height:1.55;font-weight:600;color:var(--color-text-secondary)}
.action-summary{display:block;background:var(--color-surface);border:2px solid var(--color-border-strong);border-left:10px solid var(--color-text-muted);box-shadow:0 8px 22px var(--color-shadow-soft);padding:30px 32px;margin:28px 0 20px}
.action-destination{min-width:0}
.action-summary .destination-primary{display:block;color:var(--color-text);font:800 clamp(44px,7vw,56px)/1.08 var(--data);letter-spacing:.015em;margin:0;word-break:normal;overflow-wrap:normal;hyphens:none}
.action-summary .destination-primary-en{margin-top:5px;font-size:clamp(38px,6vw,48px)}
.action-summary .destination-secondary{display:block;color:var(--color-text-secondary);font-size:clamp(21px,3vw,27px);font-weight:800;line-height:1.3;margin-top:18px;word-break:normal;overflow-wrap:normal;hyphens:none}
.action-summary .destination-en{color:var(--color-text-muted);font-size:clamp(17px,2.5vw,22px);letter-spacing:.035em;margin-top:8px}
.action-summary .action-guidance{max-width:none;margin:22px 0 0;color:var(--color-text-secondary);font-size:clamp(17px,2.5vw,19px);font-weight:600;line-height:1.55;text-align:left}
.action-time{display:grid;gap:5px;border-top:2px solid var(--color-border);margin-top:25px;padding-top:20px;color:var(--color-text-secondary);font-weight:750}
.action-time span{display:block!important;font-size:18px!important;line-height:1.45}
.action-time-primary{font-family:var(--data);font-weight:850!important}
.action-time.is-overdue{color:var(--color-danger)}
.timeline-panel li{font-size:15px;line-height:1.55;color:var(--color-text-muted)}
.timeline-panel summary{font-size:15px;color:var(--color-text-secondary)}
.time-status{background:var(--color-panel-dark);color:var(--color-on-dark)}
.time-status div span,.time-status p{color:var(--color-surface-emphasis)}
.time-status.is-stale{background:var(--color-danger);border-left-color:var(--color-danger)}
.urgency-badge[data-urgency="URGENT"],.flight-change-alert.is-critical{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-on-dark)}
.technical-details{background:var(--color-surface-muted);border:1px solid var(--color-border);margin:0 0 24px}
.technical-details summary{cursor:pointer;padding:14px 16px;color:var(--color-text-secondary);font-size:15px;font-weight:800}
.technical-details pre{white-space:pre-wrap;word-break:normal;overflow-wrap:break-word;hyphens:none;border-top:1px solid var(--color-border);margin:0;padding:14px 16px;color:var(--color-text-secondary);font:600 14px/1.5 var(--data)}
.staff-card{border-top-color:var(--color-text-muted);padding:clamp(28px,6vw,58px)}
.staff-card h1{font:800 clamp(25px,4vw,34px)/1.2 var(--title);margin:12px 0 28px}
.staff-card h1 span{display:block}
.staff-card h1 span[lang="en"]{color:var(--color-text-muted);font-size:.76em;margin-top:6px}
.staff-card>p[data-staff-zh]{font-size:clamp(29px,5vw,42px);font-weight:850;line-height:1.45;color:var(--color-text);margin:0}
.staff-card>p[data-staff-en]{font-size:clamp(24px,4vw,34px);font-weight:800;line-height:1.45;color:var(--color-text-secondary);margin:0}
.assistance-facts dt{font-size:14px;color:var(--color-text-muted)}.assistance-facts dd{font-size:16px;color:var(--color-text-secondary)}
.loading-plane{width:205px;left:-230px;top:27%;animation:fly-across 2.8s cubic-bezier(.42,0,.3,1) forwards}
.loading-plane-body{fill:var(--color-soft);stroke:var(--color-text-secondary);stroke-width:4;stroke-linejoin:round}
.loading-plane-wing,.loading-plane-tail{fill:var(--color-soft);stroke:var(--color-text-secondary);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.loading-plane-tail-accent{fill:var(--color-primary);stroke:var(--color-text-secondary);stroke-width:3;stroke-linejoin:round}
.loading-plane-windows{fill:var(--color-text-secondary)}
.route-plane{fill:var(--color-soft);stroke:var(--color-text-secondary);stroke-width:1.5;stroke-linejoin:round}
.route-plane .plane-wing,.route-plane .plane-tail{fill:none;stroke:var(--color-text-secondary);stroke-width:2.3;stroke-linecap:round}
.route-plane circle{fill:var(--color-primary);stroke:none}
@keyframes fly-across{0%{left:-230px;transform:translateY(12px) rotate(-1deg)}55%{transform:translateY(-5px) rotate(-1deg)}100%{left:calc(100% + 230px);transform:translateY(-24px) rotate(-1deg)}}
@media(max-width:650px){
  .screen-step [data-step-result] .section-heading h1{font-size:clamp(28px,8vw,32px)}
  .screen-step [data-step-result] .section-heading .lead{font-size:17px}
  .action-summary{padding:24px 20px;border-left-width:8px}
  .action-summary .destination-primary{font-size:clamp(34px,11vw,44px)}
  .action-summary .destination-primary-en{font-size:clamp(31px,9vw,39px)}
  .action-summary .destination-secondary{font-size:clamp(19px,6vw,23px)}
  .action-summary .destination-en{font-size:clamp(17px,5vw,20px)}
  .action-time{width:100%;margin-top:22px}
  .action-time span{font-size:17px!important}
  .staff-card>p[data-staff-zh]{font-size:clamp(26px,8vw,36px)}
  .staff-card>p[data-staff-en]{font-size:clamp(22px,7vw,30px)}
  .loading-plane{width:175px}
}
@media(prefers-reduced-motion:reduce){
  .loading-plane{display:block;left:50%;top:27%;animation:none!important;transform:translateX(-50%)}
  .window-portal{animation:none;transform:translate(-50%,-50%) scale(1)}
}

/* Field-level source details stay secondary to the selected travel information. */
.field-source-note{display:none!important;color:var(--color-text-muted);font:650 11px/1.35 var(--body);letter-spacing:0;margin-top:4px}
.route-summary .field-source-note{max-width:180px}.route-summary .align-right .field-source-note{margin-left:auto}
.source-field-list{list-style:none;margin:0;padding:0!important}
.source-field-item{border-top:1px solid var(--color-border);padding:12px 0!important;margin:0!important}
.source-field-item:first-child{border-top:0;padding-top:0!important}
.source-field-item strong,.source-field-item span{display:block}
.source-field-item strong{color:var(--color-text-secondary);font-size:15px;margin-bottom:4px}
.source-field-item span{color:var(--color-text-muted);font-size:14px;line-height:1.5;margin-top:2px}

/* Accessible action hierarchy, source disclosure, and paper-plane artwork. */
.button-icon,.icon-button svg,.route-arrow,.complete-mark svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.button-icon{display:inline-block;width:27px;height:27px;margin:0 8px 0 0;vertical-align:middle}
.button-icon.outline{width:25px;height:25px}
.lock-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.route-arrow{width:32px;height:20px;color:var(--accent)}
.icon-button{display:flex;align-items:center;justify-content:center;gap:11px;text-align:center}
.icon-button svg{width:27px;height:27px}
.complete-mark svg{width:56px;height:56px;stroke-width:2.5}

.paper-plane-shape{fill:var(--color-soft);stroke:var(--color-text-secondary);stroke-width:3;stroke-linejoin:round}
.paper-plane-fold{fill:none;stroke:var(--color-primary);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.route-plane .paper-plane-shape{fill:var(--color-border);stroke:var(--color-text-secondary);stroke-width:2.3}
.route-plane .paper-plane-fold{fill:none;stroke:var(--color-primary);stroke-width:2}

.screen-confirm>.time-status{margin-top:20px}
.flight-card-top{gap:12px;flex-wrap:wrap}
.flight-card-top>*{min-width:0;word-break:normal;overflow-wrap:normal;hyphens:none}
.confirm-choice-actions{margin-top:28px}
.screen-confirm .field-source-note{display:none!important}

.screen-step [data-step-result] .section-heading .eyebrow{font-size:14px;margin-bottom:14px}
.screen-step [data-step-result] .section-heading h1{font-size:clamp(26px,4vw,32px)}
.screen-step [data-step-result] .section-heading .lead{font-size:clamp(17px,2.5vw,19px)}
.action-summary .destination-primary-en{font-size:clamp(28px,4vw,36px)}
.action-summary .destination-secondary{font-size:clamp(18px,2.6vw,22px)}
.action-summary .destination-en{font-size:clamp(16px,2.2vw,19px)}
.action-time span{font-size:clamp(17px,2.5vw,20px)!important}
.journey-primary-action{margin:28px 0 18px}
.journey-primary-action .journey-primary{width:100%;max-width:none;min-height:72px;margin:0;font-size:var(--full-row-control-font-size);line-height:1.12}
.step-assistance-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}
.step-assistance-actions .assistance-button{width:100%;min-width:0;min-height:104px;justify-content:center;border:2px solid var(--color-border-strong);border-radius:4px;background:var(--color-surface-muted);color:var(--navy);padding:12px 6px;font-size:inherit;text-align:center;word-break:normal;overflow-wrap:normal;hyphens:none}
.step-assistance-actions .assistance-button:hover{background:var(--color-surface-emphasis);border-color:var(--color-border-strong)}
.step-assistance-actions .staff-help-button{background:var(--navy);border-color:var(--navy);color:var(--white)}
.step-assistance-actions .staff-help-button:hover{background:var(--color-text-secondary);border-color:var(--color-text-secondary)}
.step-assistance-actions .assistance-button svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.journey-secondary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 12px}
.journey-secondary-actions .button{width:100%;min-width:0;word-break:normal;overflow-wrap:normal;hyphens:none}
.journey-end-action{display:flex;justify-content:flex-end;margin:4px 0 22px}
.journey-end-action .end-journey-link{min-height:48px;margin:0;color:var(--color-text-muted);font-size:clamp(22px,3vw,24px)}
.journey-end-action .end-journey-link svg{width:var(--action-control-icon-size);height:var(--action-control-icon-size)}
.offline-status{border-left:4px solid var(--color-text-muted);background:var(--color-surface-emphasis);color:var(--color-text-secondary);padding:10px 13px;margin:12px 0;font-size:14px;font-weight:750}
.arrival-refresh-button{width:100%;min-height:56px;margin:10px 0 4px;text-align:center}
.in-flight-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:1px solid var(--color-border);background:var(--color-surface);padding:16px 18px;margin:18px 0 0}
.in-flight-details div{min-width:0}
.in-flight-details span,.in-flight-details strong{display:block;word-break:normal;overflow-wrap:normal;hyphens:none}
.in-flight-details span{color:var(--color-text-muted);font-size:14px;font-weight:750}
.in-flight-details strong{color:var(--color-text-secondary);font:800 clamp(18px,2.8vw,22px) var(--data);margin-top:3px}

.time-status{padding:14px 18px;gap:8px 14px}
.time-status div strong{font-size:clamp(18px,3vw,22px)}
.time-status div,.time-status strong,.time-status p{min-width:0;word-break:normal;overflow-wrap:normal;hyphens:none}
.time-status div span,.time-status p{font-size:14px}
.time-status.is-stale{background:var(--color-text-secondary);border-left:5px solid var(--color-text-muted);color:var(--color-surface)}
.time-status.is-stale div span,.time-status.is-stale p{color:var(--color-border)}

.staff-card{width:min(100%,780px);min-width:0;padding:clamp(24px,5vw,52px)}
.staff-card .card-close{position:sticky;top:0;z-index:1;float:none;display:block;margin:0 0 18px auto;background:var(--color-surface)}
.staff-completed{border-left:5px solid var(--color-text-muted);background:var(--color-surface-muted);padding:12px 16px;margin:0 0 18px}
.staff-completed p{font-size:clamp(16px,2.2vw,19px);font-weight:800;line-height:1.4;margin:0}
.staff-completed p+ p{color:var(--color-text-muted);font-size:clamp(15px,2vw,17px);margin-top:4px}
.staff-flight-strip{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;border-block:2px solid var(--color-border);padding:14px 0;margin:0 0 24px}
.staff-flight-strip strong{color:var(--color-text);font:850 clamp(26px,4vw,34px) var(--data);letter-spacing:.05em}
.staff-flight-strip time{color:var(--color-text-secondary);font-size:clamp(18px,2.7vw,22px);font-weight:800}
.staff-flight-dates{display:grid;gap:4px}
.staff-flight-dates time{display:block}
.staff-card h1{font:850 clamp(40px,5.5vw,52px)/1.14 var(--title);margin:0 0 22px;word-break:normal;overflow-wrap:normal;hyphens:none}
.staff-card h1 span{display:block}
.staff-card h1 span[lang="en"]{color:var(--color-text-muted);font-size:clamp(28px,.7em,36px);margin-top:8px}
.staff-explanation{border-top:2px solid var(--blue-pale);padding-top:20px}
.staff-explanation p{font-size:clamp(19px,3vw,25px);font-weight:650;line-height:1.5;margin:0}
.staff-explanation p+ p{color:var(--color-text-secondary);font-size:clamp(18px,2.7vw,23px);margin-top:16px}
.staff-card .assistance-facts{margin:24px 0 20px}
.staff-card .assistance-facts dt{font-size:14px}
.staff-card .assistance-facts dd{font-size:clamp(15px,2vw,17px)}

.screen-complete [data-complete-title]>span,.screen-complete [data-complete-description]>span{display:block}
.screen-complete [data-complete-title-en]{color:var(--color-text-muted);font-size:.7em;margin-top:8px}
.screen-complete [data-complete-description-en]{color:var(--color-text-muted);font-size:.9em;margin-top:5px}
.toast{width:max-content;max-width:calc(100% - 24px);word-break:normal;overflow-wrap:normal;hyphens:none;text-align:center}
.bilingual-primary,.bilingual-heading-primary,.bilingual-secondary,.bilingual-heading-secondary{display:block;color:inherit}
.bilingual-secondary,.bilingual-heading-secondary{margin-top:8px}
.bilingual-heading-secondary{font-size:.82em;line-height:1.25}
.lead .bilingual-secondary,[data-error-message] .bilingual-secondary,[data-complete-description] .bilingual-secondary{font-size:.88em;line-height:1.5;margin-top:8px}
[data-complete-title] .bilingual-heading-secondary{font-size:.8em}

@media(max-width:650px){
  .in-flight-details{grid-template-columns:1fr}
  .step-assistance-actions .assistance-button{min-height:104px}
  .journey-end-action{justify-content:flex-start}
  .action-summary .destination-primary-en{font-size:clamp(27px,8vw,34px)}
  .staff-card h1{font-size:clamp(34px,10vw,44px)}
  .staff-card h1 span[lang="en"]{font-size:clamp(26px,.72em,32px)}
  .staff-explanation p{font-size:clamp(19px,5.5vw,23px)}
}

@media(max-width:420px){
  .screen,.site-header{width:calc(100% - 24px)}
  .flight-details{grid-template-columns:1fr}
  .route-summary{grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);gap:6px;overflow:visible}
  .route-summary>div{min-width:0}
  .airport-city{word-break:normal;overflow-wrap:normal;hyphens:none}
  .airport-code{font-size:30px;white-space:nowrap;letter-spacing:.06em}
  .route-arrow{width:26px}
  .action-summary{padding:22px 16px}
  .action-summary .destination-primary{font-size:clamp(34px,10.5vw,42px);letter-spacing:0}
  .button,.support-button,.card-close{max-width:100%;word-break:normal;overflow-wrap:normal;hyphens:none}
  .staff-overlay,.confirm-overlay{padding:8px}
  .staff-card,.confirm-card{width:100%;max-height:calc(100dvh - 16px);padding:20px 16px;overflow-x:hidden}
  .assistance-facts{grid-template-columns:1fr}
}

/* Three-language controls, live family sharing, and calm motion refinements. */
.language-select{min-width:118px;min-height:48px;border:2px solid var(--border);border-radius:4px;background:var(--white);color:var(--navy);padding:8px 34px 8px 12px;font:800 clamp(22px,3vw,24px)/1.15 var(--body);cursor:pointer}
.language-select:focus-visible{outline:4px solid var(--color-focus);outline-offset:3px}
.upload-hint{max-width:510px;margin:0;color:var(--blue-mid);font-size:15px;line-height:1.5}
.journey-secondary-actions-single{grid-template-columns:1fr}
.share-local-warning{border-left:5px solid var(--color-danger);background:var(--color-surface);color:var(--color-danger);padding:12px 14px;font-weight:750}
.share-status{min-height:28px;color:var(--blue-dark);font-weight:750}
.qa-banner{width:min(100% - 48px,760px);margin:8px auto 0;border:2px solid var(--color-text-muted);background:var(--color-surface-muted);color:var(--navy);padding:9px 14px;text-align:center;font-size:15px;font-weight:850;letter-spacing:.04em}
.staff-card h1 span[lang="en"],.staff-explanation p[lang="en"],.staff-completed p[lang="en"],.staff-flight-strip time[lang="en"],.action-summary .destination-primary-en,.action-summary .destination-en{color:inherit}
.action-summary .destination-en{opacity:.82}
.family-actions button,.language-select,.arrival-refresh-button{min-height:48px}

.route-path{stroke-dasharray:560;stroke-dashoffset:560;animation:route-trail 2.8s cubic-bezier(.18,.72,.25,1) forwards}
.route-plane{animation:welcome-plane 2.8s cubic-bezier(.18,.72,.25,1) forwards;transform-origin:center}
.flight-path{transform-origin:left center;animation:loading-trail 2.9s cubic-bezier(.18,.72,.25,1) forwards}
.loading-scene{margin:-10px 0 35px}
.loading-plane{--loading-plane-half-width:102.5px;animation:fly-curved 2.9s cubic-bezier(.18,.72,.25,1) forwards}
@keyframes route-trail{to{stroke-dashoffset:0}}
@keyframes welcome-plane{0%{transform:translate(-200px,155px) rotate(-18deg) scale(.88)}38%{transform:translate(-92px,30px) rotate(-10deg) scale(.94)}72%{transform:translate(64px,-15px) rotate(2deg) scale(1)}100%{transform:translate(235px,38px) rotate(13deg) scale(1)}}
@keyframes loading-trail{0%{opacity:.2;transform:rotate(-4deg) scaleX(.03)}100%{opacity:.8;transform:rotate(-4deg) scaleX(1)}}
@keyframes fly-curved{0%{left:-230px;top:70%;transform:rotate(-15deg) scale(.9)}35%{left:calc(32% - var(--loading-plane-half-width));top:48%;transform:rotate(-9deg) scale(.95)}50%{left:calc(50% - var(--loading-plane-half-width));top:38%;transform:rotate(-4deg) scale(.97)}70%{left:calc(76% - var(--loading-plane-half-width));top:24%;transform:rotate(2deg) scale(1)}100%{left:calc(100% + 230px);top:32%;transform:rotate(12deg) scale(.98)}}

@media(max-width:650px){.language-select{min-width:108px}.qa-banner{width:calc(100% - 32px)}.family-card{width:100%}.upload-hint{font-size:14px}.loading-plane{--loading-plane-half-width:87.5px}}
@media(prefers-reduced-motion:reduce){.route-path{stroke-dashoffset:0;animation:none!important}.route-plane{animation:none!important;transform:translate(235px,38px)}.flight-path{opacity:.8;transform:rotate(-4deg) scaleX(1);animation:none!important}.loading-plane{display:block;left:50%;top:27%;animation:none!important;transform:translateX(-50%) rotate(-2deg)}}

/* Final mobile and semantic-action refinements. */
:root{--radius-small:10px;--radius-medium:16px;--radius-large:22px}
.app-shell>main{flex:1}
.button,.text-button,.support-button,.card-close,.language-select,input,select,.toast,.segment-option{border-radius:var(--radius-small)}
.flight-card,.action-summary,.time-status,.timeline-panel,.technical-details,.in-flight-details,.conflict-card,.segment-selector,.offline-status{border-radius:var(--radius-medium)}
.staff-card,.confirm-card{border-radius:var(--radius-large)}
.back-button:before{content:none}
.site-footer{width:min(100% - 48px,1120px);margin:0 auto;padding:20px 0 26px;border-top:1px solid var(--border);color:var(--blue-mid);font-size:13px;text-align:center}

.segment-selector{border:2px solid var(--border);background:var(--white);padding:22px;margin:0 0 24px}
.segment-selector .eyebrow{margin-bottom:10px}
.segment-selector h2{margin:0 0 8px;font-size:clamp(24px,4vw,32px);line-height:1.2}
.segment-selector>p:not(.eyebrow){margin:0;color:var(--blue-dark)}
.segment-options{display:grid;gap:12px;margin-top:18px}
.segment-option{display:grid;gap:5px;width:100%;min-height:88px;border:2px solid var(--border);background:var(--color-surface);color:var(--navy);padding:15px 17px;text-align:left;cursor:pointer}
.segment-option:hover:not(:disabled){border-color:var(--accent);background:var(--color-surface-muted)}.segment-option:focus-visible{outline:4px solid var(--color-focus);outline-offset:3px}.segment-option:disabled{cursor:not-allowed;opacity:.72}
.segment-option strong{font:850 20px/1.3 var(--data)}
.segment-option>span{color:var(--blue-dark);font-size:15px;font-weight:650}
.segment-option .segment-choice-label{color:var(--accent);font-weight:850}

.route-summary>div{min-width:0}
.airport-time-label{display:block;min-height:2.8em;margin-top:8px;color:var(--blue-mid);font-size:12px;font-weight:750;line-height:1.35;word-break:normal;overflow-wrap:normal;hyphens:none}
.airport-local-time{display:block;color:var(--color-text);font:800 15px/1.35 var(--data);word-break:normal;overflow-wrap:normal;hyphens:none}

.screen-step [data-action="checkin-status"][aria-pressed="true"]{outline:3px solid var(--color-focus);outline-offset:2px}

.action-summary .destination-primary{color:var(--color-text);font-weight:900}
.action-summary .destination-primary-en{margin:8px 0 0;color:var(--color-text);opacity:1}
.action-summary .destination-secondary.destination-en{margin:5px 0 0;color:var(--color-text);opacity:1}
.action-summary .destination-secondary:not(.destination-en){margin-top:5px;color:var(--color-text)}
.journey-end-time-stack{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;margin:4px 0 18px;background:transparent}
.journey-end-time-stack .journey-end-action,.screen-step .journey-end-time-stack .step-time-status{margin:0}
.journey-end-action .end-journey-link{appearance:none;min-height:48px;margin:0;border:0;border-radius:var(--radius-small);background:transparent;box-shadow:none;padding:8px 10px;color:var(--color-text-muted);font:700 clamp(22px,3vw,24px)/1.15 var(--body);cursor:pointer;text-decoration:none;text-underline-offset:0}
.journey-end-action .end-journey-link span{text-decoration:none}
.journey-end-action .end-journey-link::before,.journey-end-action .end-journey-link::after{content:none}
.journey-end-action .end-journey-link:hover{background:var(--color-surface-emphasis);color:var(--color-text-secondary)}
.journey-end-action .end-journey-link:focus-visible{outline:4px solid var(--color-focus);outline-offset:3px}
.journey-end-time-stack .step-time-status{align-self:start;box-shadow:none}

/* Keep the flight-confirmation decision ahead of supporting detail. */
.screen-confirm>.section-heading{margin-bottom:24px}
.screen-confirm .flight-card{padding:24px 28px}
.screen-confirm .confirm-flight-number-row{justify-content:flex-start;border-bottom:0;padding-bottom:0}
.screen-confirm .flight-number{font-size:clamp(38px,6vw,48px);line-height:1;letter-spacing:.075em}
.screen-confirm .route-summary{grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);grid-template-rows:auto auto auto auto;align-items:start;column-gap:18px;row-gap:6px;padding:24px 0 22px}
.screen-confirm .route-summary>div{display:contents}
.screen-confirm .route-summary [data-departure-name]{grid-column:1;grid-row:1}
.screen-confirm .route-summary [data-departure-airport]{grid-column:1;grid-row:2}
.screen-confirm .route-summary [data-route-departure-label]{grid-column:1;grid-row:3}
.screen-confirm .route-summary [data-route-departure-time]{grid-column:1;grid-row:4}
.screen-confirm .route-summary [data-arrival-name]{grid-column:3;grid-row:1;justify-self:stretch;text-align:right}
.screen-confirm .route-summary [data-arrival-airport]{grid-column:3;grid-row:2;justify-self:stretch;text-align:right}
.screen-confirm .route-summary [data-route-arrival-label]{grid-column:3;grid-row:3;justify-self:stretch;text-align:right}
.screen-confirm .route-summary [data-route-arrival-time]{grid-column:3;grid-row:4;justify-self:stretch;text-align:right}
.screen-confirm .route-summary .route-arrow{grid-column:2;grid-row:2;align-self:center;justify-self:center;margin:0}
.screen-confirm .airport-time-label{min-height:0;margin-top:0}
.screen-confirm .airport-city,.screen-confirm .airport-time-label,.screen-confirm .airport-local-time{word-break:normal;overflow-wrap:normal;hyphens:none}
.screen-confirm .flight-details-core{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;padding-top:18px}
.screen-confirm .flight-details-core>div,.screen-confirm .flight-details-expanded>div{min-width:0}
.screen-confirm .flight-details-core span{font-size:16px;line-height:1.35}
.screen-confirm .flight-details-core strong{display:block;margin-top:4px;font-size:clamp(20px,3vw,24px);line-height:1.25;word-break:normal;overflow-wrap:normal;hyphens:none}
.screen-confirm .confirm-choice-actions{gap:12px;margin:18px 0 0}
.screen-confirm .confirm-choice-actions .button{min-height:76px}
.confirm-flight-details{margin:18px 0 0;border:1px solid var(--border);border-radius:var(--radius-medium);background:var(--white);overflow:hidden}
.confirm-flight-details summary{cursor:pointer;padding:15px 18px;color:var(--navy);font-size:16px;font-weight:800}
.confirm-flight-details summary:focus-visible{outline:4px solid var(--color-focus);outline-offset:-4px}
.confirm-flight-details .flight-details-expanded{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;border-top:1px solid var(--border);padding:18px}
.confirm-flight-details .flight-details-expanded span{font-size:15px}
.confirm-flight-details .flight-details-expanded strong{display:block;margin-top:3px;font-size:18px;line-height:1.35;word-break:normal;overflow-wrap:normal;hyphens:none}
.confirm-source-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:18px 0 10px;padding:0 2px;color:var(--blue-mid);font-size:15px;font-weight:750}
.confirm-source-row strong{min-width:0;color:var(--blue-dark);font-size:16px;text-align:right;word-break:normal;overflow-wrap:normal;hyphens:none}
.screen-confirm>.confirm-time-status{margin:0 0 20px}

.screen-confirm.is-departure-passed>:not([data-departure-passed-confirmation]):not([data-flight-change-alert]):not([data-scenario-test-card]){display:none!important}
.departure-passed-confirmation{border:2px solid var(--color-border-strong);border-left:8px solid var(--color-text-muted);border-radius:var(--radius-large);background:var(--color-surface);padding:clamp(24px,5vw,42px);box-shadow:0 12px 30px var(--color-shadow)}
.departure-passed-confirmation .eyebrow{margin-bottom:14px}
.departure-passed-confirmation h1{font-size:clamp(36px,6vw,52px);margin-bottom:16px}
.departure-passed-confirmation .lead{font-size:clamp(18px,2.8vw,22px);line-height:1.55}
.departure-passed-flight{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:26px 0 0}
.departure-passed-flight>div{min-width:0;border-radius:var(--radius-small);background:var(--color-surface-muted);padding:13px 14px}
.departure-passed-flight dt{color:var(--blue-mid);font-size:15px;font-weight:800}
.departure-passed-flight dd{margin:4px 0 0;color:var(--color-text);font:850 clamp(18px,2.8vw,22px)/1.3 var(--data);word-break:normal;overflow-wrap:normal;hyphens:none}
.departure-passed-reference{margin:16px 0 0;color:var(--color-text-muted);font-size:16px;font-weight:700;line-height:1.5}
.departure-passed-actions{margin-top:26px}
.departure-passed-actions .button{max-width:none}
.departure-exception-actions{display:grid;gap:12px;margin:28px 0 18px}
.departure-exception-actions .button{width:100%;max-width:none;text-align:center}
.screen-step.is-departure-exception .action-summary{display:none}
.screen-step.is-departure-exception .step-assistance-actions{grid-template-columns:repeat(2,minmax(0,1fr))}

.staff-card-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px}
.staff-card-instruction{min-width:0}
.staff-card-header p{margin:0;color:var(--blue-dark);font-size:16px;font-weight:800;line-height:1.35}
.staff-card-header p+ p{margin-top:4px}
.staff-card .card-close{position:static;flex:none;min-width:48px;min-height:48px;margin:0;padding:8px 12px;border-radius:var(--radius-small)}
.staff-card .card-close:focus-visible{outline:4px solid var(--color-focus);outline-offset:3px}
.staff-card h1 span[lang="en"]{margin:8px 0 0;color:inherit}
.staff-card h1 [data-staff-title-primary]{margin:0;color:inherit;font-size:inherit}
.staff-completed [data-staff-completed-en],.staff-completed [data-staff-completed-primary]{color:inherit;font-size:clamp(16px,2.2vw,19px);margin:0}
.staff-completed [data-staff-completed-primary]+[data-staff-completed-en]{margin-top:4px}
.staff-explanation [data-staff-en],.staff-explanation [data-staff-primary]{color:var(--color-text);font-size:clamp(19px,3vw,25px);margin:0}
.staff-explanation [data-staff-primary]+[data-staff-en]{margin-top:16px}

@media(max-width:650px){
  .site-header{height:60px;width:calc(100% - 24px)}
  .brand{gap:8px}.brand-mark{transform:skew(-18deg) scale(.82)}
  .brand-copy strong{font-size:16px}.brand-copy small{font-size:10px;letter-spacing:.08em}
  .language-select{min-width:102px;min-height:48px;padding-block:6px}
  .screen{width:calc(100% - 24px);padding:24px 0 42px}
  .screen-welcome{min-height:calc(100vh - 60px);padding-top:14px}
  .screen-step{padding-top:12px}
  .step-progress{min-height:44px;max-height:64px;margin-bottom:18px;padding:7px 0;line-height:1.3}
  .screen-step .section-heading{margin-bottom:18px}
  .screen-step .section-heading .eyebrow{margin-bottom:10px}
  .screen-step .section-heading h1{margin-bottom:12px}
  .screen-step .section-heading .lead{font-size:17px;line-height:1.45}
  .screen-step .action-summary{padding:18px;margin-top:12px}
  .screen-confirm{padding-top:14px}
  .screen-confirm>.section-heading{margin-bottom:16px}
  .screen-confirm>.section-heading .eyebrow{margin-bottom:8px}
  .screen-confirm>.section-heading h1{margin-bottom:0;font-size:clamp(28px,8.5vw,34px)}
  .screen-confirm .flight-card{padding:16px}
  .screen-confirm .flight-number{font-size:clamp(36px,11vw,42px)}
  .screen-confirm .route-summary{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:6px;padding:18px 0 16px}
  .screen-confirm .route-arrow{width:24px}
  .screen-confirm .airport-city{font-size:13px;line-height:1.3}
  .screen-confirm .airport-code{font-size:30px;letter-spacing:.05em}
  .screen-confirm .airport-time-label{min-height:0;margin-top:7px;font-size:12px}
  .screen-confirm .airport-local-time{font-size:15px}
  .screen-confirm .flight-details-core{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:14px}
  .screen-confirm .flight-details-core>div{padding:10px;border-radius:var(--radius-small);background:var(--color-surface)}
  .screen-confirm .flight-details-core span{font-size:16px}
  .screen-confirm .flight-details-core strong{font-size:20px}
  .screen-confirm .confirm-choice-actions{gap:10px;margin-top:14px}
  .screen-confirm .confirm-choice-actions .button{min-height:76px;padding:12px}
  .departure-passed-confirmation{padding:22px 18px}
  .departure-passed-confirmation h1{font-size:clamp(34px,10vw,42px)}
  .departure-passed-flight{gap:8px;margin-top:20px}
  .departure-passed-flight>div{padding:10px}
  .departure-passed-flight dt{font-size:13px}
  .departure-passed-flight dd{font-size:17px}
  .departure-exception-actions{margin-top:20px}
  .confirm-flight-details{margin-top:16px}
  .confirm-flight-details .flight-details-expanded{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:15px}
  .confirm-source-row{align-items:flex-start;margin-top:16px}
  .confirm-source-row strong{max-width:62%}
  .journey-end-time-stack{gap:24px}
  .site-footer{width:calc(100% - 24px);padding:15px 0 20px}
  .staff-card-header{align-items:flex-start}
  .staff-card-header p{font-size:14px}
  .airport-time-label{font-size:11px}
  .airport-local-time{font-size:13px}
}

@media(max-width:390px){
  .brand-copy small{display:none}
  .segment-selector{padding:18px 15px}
  .segment-option{padding:14px}
  .staff-card-header{gap:10px}
  .staff-card .card-close{min-width:68px}
}

/* Mobile containment: keep native controls and long localized actions inside every card. */
.app-shell,.site-header,.screen,.screen>*,.flight-card,.action-summary,.staff-card,.confirm-card,.family-card,.manual-form,.manual-fields,.manual-fields>div,.choice-actions,.family-actions{min-width:0;max-width:100%}
button,.button,.support-button,.text-button,input,select{box-sizing:border-box;min-width:0;max-width:100%;word-break:normal;overflow-wrap:normal;hyphens:none;white-space:normal}
.button,.icon-button,.support-button{display:flex;align-items:center;justify-content:center;gap:10px;text-align:center;padding-inline:16px}
.button>span,.support-button>span,.icon-button>span{min-width:0;word-break:normal;overflow-wrap:normal;hyphens:none}
.manual-form{--manual-control-height:60px;--manual-control-border:2px solid var(--color-border-strong);--manual-control-radius:4px;--manual-control-padding:12px 16px;--manual-control-shadow:0 2px 5px var(--color-shadow-soft);--manual-control-font:800 clamp(18px,4vw,22px)/1.2 var(--data);--manual-control-color:var(--navy)}
.manual-control{display:flex;align-items:center;justify-content:center;width:100%;inline-size:100%;height:var(--manual-control-height);min-height:var(--manual-control-height);max-width:100%;min-width:0;margin:0;border:var(--manual-control-border);border-radius:var(--manual-control-radius);background:var(--white);padding:var(--manual-control-padding);box-shadow:var(--manual-control-shadow);color:var(--manual-control-color);font:var(--manual-control-font);text-align:center}
input.manual-control::placeholder{color:var(--blue-mid);font:inherit;opacity:1;text-align:center}
input.manual-control[name="flight"]::placeholder{text-transform:none}
input.manual-control:focus-visible,.date-control:focus-within{border-color:var(--accent);outline:4px solid var(--color-focus);outline-offset:2px;box-shadow:var(--manual-control-shadow)}
input.manual-control:user-invalid,.date-control:has(input:user-invalid){border-color:var(--color-danger);box-shadow:0 0 0 1px var(--color-danger)}
input.manual-control:disabled,.date-control:has(input:disabled){background:var(--color-surface-muted);color:var(--color-text-muted);box-shadow:none;cursor:not-allowed;opacity:.72}
.date-control{position:relative;overflow:hidden}
.date-control-value{display:block;width:100%;min-width:0;padding:0 24px;box-sizing:border-box;color:inherit;font:inherit;line-height:inherit;text-align:center;white-space:nowrap;overflow:visible;text-overflow:clip;pointer-events:none}
.date-control[data-empty="true"] .date-control-value{color:var(--blue-mid);font:inherit}
.date-control::after{content:'▾';position:absolute;right:14px;top:50%;transform:translateY(-52%);color:var(--color-text-muted);font-size:18px;pointer-events:none}
.date-control input[type="date"]{position:absolute;inset:0;display:block;width:100%;inline-size:100%;height:100%;max-width:100%;min-width:0;margin:0;padding:0;border:0;box-sizing:border-box;color:transparent;-webkit-text-fill-color:transparent;background:transparent;opacity:0;cursor:pointer}
.date-control input[type="date"]::-webkit-date-and-time-value,.date-control input[type="date"]::-webkit-datetime-edit{min-width:0;margin:0;padding:0}
.staff-card-header [data-staff-instruction-primary]{font-size:clamp(24px,7vw,38px);font-weight:900;line-height:1.2;color:var(--navy)}
.staff-card-header [data-staff-instruction-en]{display:none!important}
@media(max-width:420px){.screen,.site-header{width:calc(100% - 20px)}.staff-overlay,.confirm-overlay{padding:6px}.button,.support-button{padding-inline:12px}.route-summary{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)}}
@media(max-width:340px){.screen,.site-header{width:calc(100% - 16px)}.flight-card,.action-summary{padding-inline:12px}.confirm-card,.staff-card{padding-inline:12px}}

body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}

/* The airport contact sheet reuses the existing large-card dialog. */
.staff-card-topbar{display:grid;grid-template-columns:minmax(0,1fr) 56px;align-items:stretch;gap:12px;width:100%;margin:0 0 20px}
.staff-card .staff-overlay-close{display:block;grid-column:2;position:static;float:none;width:56px;min-width:56px;min-height:56px;margin:0;background:var(--color-surface)}
.staff-contact-button{width:100%;justify-content:center;text-align:center;word-break:normal;overflow-wrap:normal;hyphens:none}
.staff-card-view,.airport-resource-view{clear:both;min-width:0}
.staff-card-view .staff-card-header{display:block;margin-bottom:18px}
@media(prefers-reduced-motion:reduce){
  .airport-resource-view *{animation:none!important;transition:none!important}
}
.family-actions [data-action="share-family"]{background:var(--accent);border-color:var(--accent);color:var(--white);font-size:inherit;font-weight:800}
.family-actions [data-action="share-family-card"]{background:var(--navy);border-color:var(--navy);color:var(--white);font-size:inherit;font-weight:800}

/* Interactive boundaries use the strong semantic border; ordinary dividers retain --color-border. */
.button-secondary,.input-row input,.language-select,.segment-option{border-color:var(--color-border-strong)}

/* Structural control typography keeps official actions prominent and multi-column groups consistent. */
:root{--icon-yes:#188A50;--icon-no:#C83F4D;--icon-unsure:#9A6B00;--icon-yes-on-dark:#72E3A5;--icon-no-on-dark:#FF8F99;--icon-unsure-on-dark:#D0A13A;--staff-person-on-dark:#A7C7E3;--full-row-control-font-size:clamp(28px,7vw,32px);--multi-control-font-size:26px;--action-control-icon-size:clamp(40px,10vw,48px);--action-control-text-icon-size:clamp(32px,8vw,40px)}
html[lang="en"]{--multi-control-font-size:25px}
html[lang="es"]{--multi-control-font-size:25px}
.answer-choice-grid,.two-choice-grid,.confirm-assistance-actions,.short-action-grid{display:grid;align-items:stretch;gap:12px;width:100%;max-width:100%}
.answer-choice-grid{grid-template-columns:repeat(3,minmax(44px,1fr))}
.two-choice-grid,.confirm-assistance-actions,.short-action-grid,.screen-confirm .confirm-choice-actions{display:grid;grid-template-columns:repeat(2,minmax(44px,1fr))}
.step-assistance-actions{grid-template-columns:repeat(3,minmax(44px,1fr))}
.journey-secondary-actions{grid-template-columns:repeat(2,minmax(44px,1fr))}
.journey-secondary-actions-single{grid-template-columns:minmax(0,1fr)}
.action-full-row,.primary-action-row,.danger-action-row{grid-column:1/-1}
.answer-choice-grid>*,.two-choice-grid>*,.confirm-assistance-actions>*,.short-action-grid>*,.step-assistance-actions>*,.journey-secondary-actions>*{min-width:0;max-width:100%}
.action-summary>*,.action-summary *,.route-summary>*{min-width:0;max-width:100%;word-break:normal;overflow-wrap:normal;hyphens:none}
.answer-choice-grid .button,.two-choice-grid .button,.confirm-assistance-actions .button,.short-action-grid .button{width:100%;max-width:none;justify-content:center;text-align:center;white-space:normal}

/* Formal passenger controls use fixed semantic tiers; narrow viewports never reduce their text. */
.button,.home-back-button,.back-button,.card-close,.text-button,.support-button,.journey-end-action .end-journey-link,.language-select{min-width:44px;font-weight:800;white-space:normal;word-break:normal;overflow-wrap:normal;hyphens:none}
.input-row .button{white-space:normal}
.button,.journey-primary-action .journey-primary,.journey-secondary-actions-single .button{min-height:72px;padding-block:14px;padding-inline:18px;font-size:var(--full-row-control-font-size);line-height:1.12}
.home-back-button,.back-button{min-height:48px;padding-block:8px;font-size:clamp(24px,4vw,26px);line-height:1.15}
.card-close,.text-button,.support-button,.journey-end-action .end-journey-link{min-height:48px;padding-block:8px;font-size:clamp(22px,3vw,24px);line-height:1.15}
.language-select{min-height:48px;font-size:clamp(22px,3vw,24px);line-height:1.15}
.button-icon,.button-icon.outline,.icon-button svg,.support-button svg,.staff-help-button .staff-help-icon,.journey-end-action .end-journey-link svg{width:var(--action-control-icon-size);height:var(--action-control-icon-size);max-width:100%;margin:0;fill:none;stroke:currentColor;stroke-width:2.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.home-back-button>span[aria-hidden="true"]{font-size:var(--action-control-text-icon-size);font-weight:800;line-height:.8;flex:none}
.segment-option strong{font-size:clamp(21px,3vw,24px);font-weight:850;line-height:1.1}
.segment-selector>*,.segment-option strong,.segment-option>span{min-width:0;max-width:100%;word-break:normal;overflow-wrap:normal;hyphens:none}
.segment-option>span{font-size:clamp(18px,2.5vw,21px);font-weight:800;line-height:1.15}

/* Multi-column groups inherit one localized size and keep symbols above their labels. */
.answer-choice-grid,.two-choice-grid,.confirm-assistance-actions,.short-action-grid,.step-assistance-actions,.family-actions,.manual-actions.is-partial-document,.journey-secondary-actions:not(.journey-secondary-actions-single),.journey-problem-connection-actions{font-size:var(--multi-control-font-size)}
.answer-choice-grid .button,.step-assistance-actions .assistance-button,.two-choice-grid .button,.screen-confirm .confirm-choice-actions .button,.confirm-assistance-actions .button,.confirm-assistance-actions .assistance-button,.short-action-grid .button,.family-actions .button,.family-actions .text-button,.manual-actions.is-partial-document .button,.journey-secondary-actions:not(.journey-secondary-actions-single) .button,.journey-problem-connection-actions .button{width:100%;max-width:none;font-size:inherit;font-weight:800;line-height:1.12;text-align:center;word-break:normal;overflow-wrap:normal;hyphens:none}
.answer-choice-grid .button,.step-assistance-actions .assistance-button{min-width:44px;min-height:104px;flex-direction:column;gap:6px;padding:12px 6px}
.two-choice-grid .button,.screen-confirm .confirm-choice-actions .button,.confirm-assistance-actions .button,.confirm-assistance-actions .assistance-button,.short-action-grid .button,.family-actions .button,.family-actions .text-button,.manual-actions.is-partial-document .button,.journey-secondary-actions:not(.journey-secondary-actions-single) .button{min-height:76px;padding:12px}
.two-choice-grid .icon-button,.screen-confirm .confirm-choice-actions .icon-button,.confirm-assistance-actions .assistance-button,.short-action-grid .icon-button,.step-assistance-actions .assistance-button,.manual-actions.is-partial-document .staff-help-button,.journey-secondary-actions:not(.journey-secondary-actions-single) .icon-button{display:flex;align-items:center;justify-content:center;flex-direction:column}
.short-action-grid .action-full-row{min-height:72px;padding:14px 18px;font-size:var(--full-row-control-font-size);line-height:1.12}

.choice-icon,.answer-choice-grid .icon-button svg,.two-choice-grid .answer-choice svg,.screen-confirm .confirm-choice-actions .icon-button svg{width:var(--action-control-icon-size);height:var(--action-control-icon-size);max-width:100%;stroke:currentColor;stroke-width:2.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.answer-choice[data-answer="yes"] .choice-icon,.answer-choice.answer-yes .choice-icon,.answer-yes svg{color:var(--icon-yes)}
.answer-choice[data-answer="no"] .choice-icon,.answer-choice.answer-no .choice-icon,.answer-no svg{color:var(--icon-no)}
.answer-choice[data-answer="unsure"] .choice-icon,.answer-choice.answer-unsure .choice-icon,.answer-unsure svg{color:var(--icon-unsure)}
.icon-yes{color:var(--icon-yes)}
.icon-no{color:var(--icon-no)}
.icon-unsure{color:var(--icon-unsure)}
.button-primary .icon-yes{color:var(--icon-yes-on-dark)}
.button-primary .icon-no{color:var(--icon-no-on-dark)}
.button-primary .icon-unsure{color:var(--icon-unsure-on-dark)}
.icon-yes,.icon-no,.icon-unsure{stroke-width:2.9;stroke-linecap:round;stroke-linejoin:round}
.staff-icon-person{color:var(--color-mid);stroke:var(--color-mid)}
.staff-icon-question{color:var(--icon-unsure);stroke:var(--icon-unsure)}
.staff-help-button .staff-icon-person{color:var(--staff-person-on-dark);stroke:var(--staff-person-on-dark)}
.button-primary.staff-help-button .staff-icon-question,.step-assistance-actions .staff-help-button .staff-icon-question{color:var(--icon-unsure-on-dark);stroke:var(--icon-unsure-on-dark)}
.staff-icon-person,.staff-icon-question{stroke-width:2.9;stroke-linecap:round;stroke-linejoin:round}
.step-assistance-actions .assistance-button svg,.confirm-assistance-actions .assistance-button svg{width:var(--action-control-icon-size);height:var(--action-control-icon-size);max-width:100%;stroke-width:2.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.confirm-assistance-actions{margin:14px 0}
.dialog-speech-button{width:auto;min-width:44px;min-height:72px;margin:0 0 16px;border:2px solid var(--color-border-strong);background:var(--color-surface-muted);padding:12px;color:var(--navy);font-size:var(--multi-control-font-size);font-weight:800;line-height:1.12}
.dialog-speech-button svg{width:var(--action-control-icon-size);height:var(--action-control-icon-size);max-width:100%;fill:none;stroke:currentColor;stroke-width:2.9;stroke-linecap:round;stroke-linejoin:round;flex:none}

@media(max-width:650px){
  .answer-choice-grid,.step-assistance-actions{grid-template-columns:repeat(3,minmax(44px,1fr));gap:8px}
  .two-choice-grid,.confirm-assistance-actions,.short-action-grid,.screen-confirm .confirm-choice-actions,.journey-secondary-actions{grid-template-columns:repeat(2,minmax(44px,1fr));gap:10px}
  .journey-secondary-actions-single{grid-template-columns:minmax(0,1fr)}
}

@media(max-width:340px){
  .answer-choice-grid,.step-assistance-actions{gap:4px}
  .two-choice-grid,.confirm-assistance-actions,.short-action-grid,.screen-confirm .confirm-choice-actions,.journey-secondary-actions{gap:6px}
  .journey-secondary-actions-single{grid-template-columns:minmax(0,1fr)}
}

@media(max-width:280px){
  .answer-choice-grid,.step-assistance-actions,.step-assistance-actions.share-unavailable{grid-template-columns:minmax(0,1fr)}
}

/* 390x844 at 200% zoom is approximately a 195x422 CSS-pixel viewport. */
@media(max-width:220px){
  :root{--action-control-icon-size:40px;--action-control-text-icon-size:32px}
  .screen,.site-header,.site-footer{width:calc(100% - 12px)}
  .brand{flex:0 0 44px;min-width:44px;justify-content:center}
  .brand-mark{flex:none}
  .header-tools{min-width:0}
  .language-select{width:96px;min-width:96px;padding-inline:8px 22px}
  .answer-choice-grid,.step-assistance-actions{grid-template-columns:minmax(0,1fr);gap:4px}
  .date-control-value{padding-inline:18px}
  .date-control::after{right:6px}
  .screen-confirm .route-summary{grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr);gap:4px}
  .screen-confirm .route-arrow{width:14px}
  .screen-confirm .airport-code{font-size:20px;letter-spacing:0}
  .screen-confirm .flight-details-core{grid-template-columns:minmax(0,1fr)}
  .screen h1,.screen h2,.section-heading>*,.confirm-card h1,.confirm-card p{min-width:0;max-width:100%;word-break:normal;overflow-wrap:normal;hyphens:none}
}

/* Journey problem assistance. */
.journey-problem-entry{width:100%;margin:30px 0 4px}
.departure-passed-journey-problem-entry{margin-top:26px}
.journey-problem-button{width:100%;max-width:none;min-height:72px;border:3px solid #8e742f;background:#d2b45f;color:#1b2537;font-size:clamp(22px,4vw,28px);font-weight:850}
.journey-problem-button:hover{background:#e4ca73}
.journey-problem-button:active{transform:translateY(2px)}
.journey-problem-button:focus-visible{outline:4px solid var(--color-focus,#1d5f91);outline-offset:4px}
.journey-problem-card{width:min(100%,680px);max-width:680px;padding-top:76px;word-break:normal;overflow-wrap:normal;hyphens:none}
.journey-problem-close{position:absolute;top:16px;right:16px;margin:0}
.journey-problem-card h1{margin-top:0;padding-right:44px;font-size:clamp(34px,6vw,52px)}
.journey-problem-question{font-size:clamp(22px,3.6vw,28px);font-weight:800;line-height:1.45}
.journey-problem-connection-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px}
.journey-problem-connection-actions .button{width:100%;max-width:none;min-height:68px}
[data-journey-problem-form]{min-width:0}
.journey-problem-transfer-prompt{margin:0 0 14px;color:var(--color-text-secondary);font-size:clamp(17px,2.5vw,21px);font-weight:750;line-height:1.5}
.journey-problem-textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;min-height:170px;padding:16px;border:2px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:clamp(19px,3vw,23px);line-height:1.55;resize:vertical}
.journey-problem-textarea:focus-visible{border-color:var(--color-primary);outline:4px solid color-mix(in srgb,var(--color-primary) 35%,transparent);outline-offset:2px}
.journey-problem-voice-button{display:flex;width:100%;max-width:none;min-height:56px;margin-top:14px;align-items:center;justify-content:center;gap:10px}
.journey-problem-microphone-icon{flex:0 0 30px;width:30px;min-width:28px;height:30px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.journey-problem-input-status{min-height:28px;margin:8px 0;color:var(--color-danger,#8d2635);font-weight:800}
.journey-problem-submit{width:100%;max-width:none;min-height:68px}
.journey-problem-submit:disabled,.journey-problem-voice-button:disabled{cursor:not-allowed;opacity:.52}
.journey-problem-result{min-width:0}
.journey-problem-answer{margin:8px 0 18px;font-size:clamp(20px,3.4vw,25px);line-height:1.55;word-break:normal;overflow-wrap:normal;hyphens:none}
.journey-problem-confirmation{margin:0;color:var(--color-text-secondary);font-size:clamp(17px,2.8vw,21px);font-weight:750;line-height:1.5;word-break:normal;overflow-wrap:normal;hyphens:none}
.flight-change-journey-problem-link{display:block;width:100%;min-height:44px;margin:6px 0 0;padding:8px 0;border:0;background:transparent;color:#f6df94;font:inherit;font-size:max(15px,.92em);font-weight:750;line-height:1.45;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.flight-change-journey-problem-link:focus-visible{outline:3px solid currentColor;outline-offset:3px}
@media(max-width:340px){.journey-problem-card{padding-inline:12px}.journey-problem-card h1{padding-right:36px}}
@media(forced-colors:active){.journey-problem-button{border-color:ButtonText;background:ButtonFace;color:ButtonText}.journey-problem-button:focus-visible,.flight-change-journey-problem-link:focus-visible{outline-color:Highlight}.journey-problem-microphone-icon,.flight-change-journey-problem-link{color:LinkText;forced-color-adjust:auto}}

/* Operational changes stay in normal document flow and use one accessible visual contract. */
:root{
  --flight-change-bg:#163D75;
  --flight-change-text:#F0D68A;
  --flight-change-border:#D2B45F;
}
.flight-change-alert,
.flight-change-alert.is-critical{
  position:relative;
  width:100%;
  max-width:100%;
  margin:10px 0 18px;
  border:2px solid var(--flight-change-border);
  border-left-width:8px;
  border-radius:var(--radius-medium);
  background:var(--flight-change-bg);
  color:var(--flight-change-text);
  padding:clamp(16px,3vw,22px);
  padding-right:clamp(72px,12vw,82px);
  overflow:hidden;
}
.flight-change-dismiss{
  appearance:none;
  position:absolute;
  top:12px;
  right:12px;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  width:44px;
  min-width:44px;
  max-width:44px;
  height:44px;
  min-height:44px;
  max-height:44px;
  margin:0;
  border:2px solid #A9D5F5;
  border-radius:9px;
  background:rgba(255,255,255,.06);
  box-shadow:none;
  padding:0;
  color:#BFE2FA;
  font:800 32px/1 var(--body);
  cursor:pointer;
}
.flight-change-dismiss:hover{background:rgba(255,255,255,.12)}
.flight-change-dismiss:focus-visible{outline:4px solid #D7EEFF;outline-offset:3px}
.flight-change-dismiss-mark{display:block;line-height:1;transform:translateY(-1px)}
.flight-change-group+.flight-change-group{
  margin-top:14px;
  padding-top:14px;
  border-top:2px solid rgba(240,214,138,.55);
}
.flight-change-group p{
  margin:0;
  color:var(--flight-change-text);
  line-height:1.18;
  white-space:normal;
  word-break:normal;
  overflow-wrap:normal;
  hyphens:none;
}
.flight-change-group p:first-child{
  font-size:clamp(21px,3vw,25px);
  font-weight:900;
}
.flight-change-group p+ p{
  margin-top:8px;
  font-size:clamp(18px,2.7vw,22px);
  font-weight:850;
}
@media(forced-colors:active){
  .flight-change-alert,
  .flight-change-alert.is-critical{
    border-color:CanvasText;
    background:Canvas;
    color:CanvasText;
    forced-color-adjust:auto;
  }
  .flight-change-group p{color:CanvasText}
  .flight-change-group+.flight-change-group{border-color:CanvasText}
  .flight-change-dismiss{border-color:ButtonText;background:ButtonFace;color:ButtonText;forced-color-adjust:auto}
  .flight-change-dismiss:focus-visible{outline-color:Highlight}
}

/* The scenario surface is a compact developer tool, separate from passenger controls. */
.scenario-panel{grid-column:1/-1;border-radius:var(--radius-medium,16px);padding:14px;margin-top:10px}
.scenario-panel>strong{font-size:15px}
.scenario-panel>p{margin:4px 0 10px;font-size:13px}
.scenario-group+.scenario-group{margin-top:14px}
.scenario-group>span{display:block;margin-bottom:7px;color:var(--color-text);font-size:14px;font-weight:850}
.scenario-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.scenario-actions button{width:100%;min-height:60px;padding:8px;border-radius:var(--radius-small,8px);font:800 14px/1.25 var(--body);word-break:normal;overflow-wrap:normal;hyphens:none}
.scenario-test-card{width:100%;margin:0 0 14px;padding:14px;border:2px solid var(--color-border-strong);border-radius:var(--radius-medium,16px);background:var(--color-surface);box-shadow:0 6px 16px var(--color-shadow-soft);font-size:14px}
.scenario-test-card .eyebrow{margin-bottom:7px;font-size:12px}
.scenario-test-card h2{margin:0 0 12px;font-size:16px;line-height:1.3}
.scenario-test-card h2 strong{font-weight:900}
.scenario-test-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}
.scenario-test-card dl>div{min-width:0;padding:9px;border-radius:var(--radius-small,8px);background:var(--color-surface-muted)}
.scenario-test-card dt{color:var(--color-text-secondary);font-size:14px;font-weight:800}
.scenario-test-card dd{margin:4px 0 0;font-size:15px;font-weight:750;word-break:normal;overflow-wrap:normal;hyphens:none}
.scenario-test-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.scenario-test-actions .button{width:100%;min-height:44px;padding:7px 9px;font-size:16px;line-height:1.2}
@media(max-width:650px){
  .scenario-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .scenario-test-card dl,.scenario-test-actions{grid-template-columns:1fr}
}
@media(max-width:280px){.scenario-actions{grid-template-columns:1fr}}
@media(forced-colors:active){
  .scenario-panel,.scenario-test-card,.scenario-actions button{border-color:CanvasText;background:Canvas;color:CanvasText}
}

/* Compact assistance and dialog controls use the same icon and grid contract. */
.confirm-assistance-actions{margin:16px 0 20px}
.departure-passed-confirmation .confirm-assistance-actions{margin:18px 0 0}
.complete-assistance-actions{max-width:520px;margin:0 0 18px}
.confirm-assistance-actions.share-unavailable{grid-template-columns:minmax(44px,1fr)}
.step-assistance-actions.share-unavailable{grid-template-columns:repeat(2,minmax(44px,1fr))}
.answer-choice .choice-icon{fill:none;stroke-linecap:round;stroke-linejoin:round}
.answer-choice>span,.assistance-button>span{display:block;min-width:0;text-align:center;word-break:normal;overflow-wrap:normal;hyphens:none}
.answer-choice-grid .answer-choice>span,.step-assistance-actions .assistance-button>span{font-size:inherit;white-space:normal}
.dialog-speech-button{width:100%;min-height:72px;justify-content:center;margin:18px 0;padding:12px;border:2px solid var(--color-border-strong);background:var(--color-surface-muted);color:var(--navy);font-size:var(--multi-control-font-size);font-weight:800;line-height:1.12}
.dialog-speech-button svg{width:var(--action-control-icon-size);height:var(--action-control-icon-size);fill:none;stroke:currentColor;stroke-width:2.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.family-actions{grid-template-columns:repeat(2,minmax(44px,1fr))}
.family-actions [data-action="share-family"],.family-actions [data-action="share-family-card"]{width:100%;min-width:0;min-height:76px;justify-content:center;text-align:center}

@media(max-width:220px){
  .answer-choice-grid .answer-choice,.step-assistance-actions .assistance-button{height:auto;min-height:104px;overflow:visible;flex-direction:column;justify-content:center}
  .two-choice-grid .answer-choice,.screen-confirm .confirm-choice-actions .answer-choice,.confirm-assistance-actions .assistance-button{height:auto;min-height:76px;overflow:visible;flex-direction:column;justify-content:center}
  .short-action-grid .icon-button,.journey-secondary-actions .journey-back{flex-direction:column}
  .answer-choice-grid .answer-choice svg,.two-choice-grid .answer-choice svg,.screen-confirm .confirm-choice-actions .answer-choice svg,.step-assistance-actions .assistance-button svg,.confirm-assistance-actions .assistance-button svg{width:var(--action-control-icon-size);height:var(--action-control-icon-size);min-height:var(--action-control-icon-size);margin:0 auto}
  .answer-choice-grid .answer-choice>span,.two-choice-grid .answer-choice>span,.screen-confirm .confirm-choice-actions .answer-choice>span,.step-assistance-actions .assistance-button>span,.confirm-assistance-actions .assistance-button>span{position:static;background:transparent;padding:0;font-weight:800;line-height:1.1;text-align:center;word-break:normal;overflow-wrap:normal;hyphens:none}
  .dialog-speech-button{flex-direction:column}
  .step-assistance-actions.share-unavailable{grid-template-columns:minmax(0,1fr)}
}

/* Preserve the large speaker silhouette while its wider safe viewBox contains every sound-wave stroke. */
.support-button.assistance-button .speech-icon,.support-button.dialog-speech-button .speech-icon{width:calc(var(--action-control-icon-size) + 4px);height:var(--action-control-icon-size)}

/* The welcome note explains the automatic reading behavior without starting speech on this screen. */
.welcome-speech-note{display:flex;align-items:center;gap:12px;width:min(100%,520px);min-width:0;margin-top:4px;color:var(--blue-dark)}
.welcome-speech-note svg{width:34px;height:34px;flex:none;fill:none;stroke:var(--accent);stroke-width:2.9;stroke-linecap:round;stroke-linejoin:round}
.welcome-speech-note p{min-width:0;margin:0;font-size:16px;font-weight:750;line-height:1.45;word-break:normal;overflow-wrap:normal;hyphens:none}

/* Document segments stay in source order and remain selectable while local details are completed. */
.segment-option.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px rgba(44,100,142,.12)}
.segment-option.is-incomplete{border-style:dashed;background:var(--color-surface-muted)}
.segment-option.is-incomplete .segment-choice-label{color:var(--color-text-muted)}
.segment-option.is-pending{border-color:var(--icon-unsure);background:var(--color-surface-muted)}
.segment-option.is-pending .segment-choice-label{color:var(--icon-unsure)}
.segment-option.is-conflict{border-color:var(--icon-unsure)}
.segment-option.is-conflict .segment-choice-label{color:var(--icon-unsure)}
.live-status-unavailable{margin:16px 0 20px;border-left:5px solid var(--accent);background:var(--color-surface-emphasis);padding:14px 16px;color:var(--navy);font-size:18px;font-weight:850;line-height:1.4}
.flight-correction{width:100%;min-width:0;max-width:100%;border:2px solid var(--color-border-strong);border-top:5px solid var(--accent);background:var(--color-surface);box-shadow:0 12px 30px var(--color-shadow);padding:24px;margin:0 0 28px}
.flight-correction h2{margin:0 0 14px;font:700 clamp(1.8rem,5vw,2.5rem)/1.16 var(--title)}
.flight-correction .lead{font-size:18px;line-height:1.55}
.flight-candidate-list{display:grid;gap:12px;width:100%;min-width:0;max-width:100%;margin:22px 0}
.flight-candidate{display:grid;gap:5px;width:100%;min-width:44px;min-height:64px;max-width:100%;border:2px solid var(--color-border-strong);border-radius:var(--radius-small);background:var(--color-surface);padding:12px 16px;color:var(--navy);text-align:left;cursor:pointer;word-break:normal;overflow-wrap:normal;hyphens:none}
.flight-candidate:hover{border-color:var(--accent);background:var(--color-surface-muted)}
.flight-candidate:focus-visible{outline:4px solid var(--color-focus);outline-offset:3px}
.flight-candidate strong{font:850 21px/1.15 var(--data)}
.flight-candidate span{color:var(--blue-dark);font-size:17px;font-weight:750;line-height:1.25}
.flight-correction-actions{margin-top:22px}
.flight-correction-actions .button{width:100%;max-width:none}

/* Segment selection and correction are distinct views inside the confirmation screen. */
.screen-confirm.is-correcting-flight>:not(.home-back-button):not([data-flight-correction]){display:none!important}
.screen-confirm.is-awaiting-segment>:not(.home-back-button):not([data-segment-selector]){display:none!important}

@media(max-width:420px){
  .welcome-speech-note{align-items:flex-start}
  .flight-correction{padding:20px 14px}
  .flight-candidate{padding-inline:12px}
}

/* Recognition uncertainty remains visible without turning supporting-field differences into a dead end. */
.segment-option.is-advisory{border-color:var(--icon-unsure)}
.segment-option.is-advisory .segment-choice-label{color:var(--icon-unsure)}
.review-candidates{grid-column:1/-1;width:100%;min-width:0;border:2px solid var(--icon-unsure);background:var(--color-surface-muted);padding:16px;margin:0}
.review-candidates h2{margin:0 0 12px;font:800 20px/1.25 var(--title)}
.review-candidate-group{display:grid;gap:9px;margin-top:14px}
.review-candidate-group>strong,.review-candidate-empty{font-size:16px;line-height:1.4}
.review-candidate-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:10px}
.review-candidate{display:grid;gap:3px;min-width:0;min-height:58px;border:2px solid var(--color-border-strong);border-radius:var(--radius-small);background:var(--white);padding:10px 12px;color:var(--navy);text-align:left;cursor:pointer;word-break:normal;overflow-wrap:normal;hyphens:none}
.review-candidate:hover,.review-candidate[aria-pressed="true"]{border-color:var(--accent);background:var(--color-surface-emphasis)}
.review-candidate:focus-visible{outline:4px solid var(--color-focus);outline-offset:3px}
.review-candidate strong{font:850 18px/1.15 var(--data)}
.review-candidate span{color:var(--blue-dark);font-size:14px;font-weight:700}

/* Manual review typography and compact vertical rhythm. */
.site-header{height:68px}
.screen:not(.screen-welcome),.screen-step,.screen-confirm{padding-top:20px}
.section-heading{margin-bottom:22px}
.section-heading .eyebrow,.eyebrow{margin-bottom:9px}
.manual-status{margin:0;border-left:5px solid var(--accent);background:var(--color-surface-emphasis);padding:14px 16px;color:var(--navy);font-size:clamp(18px,3vw,21px);font-weight:800;line-height:1.35}
.review-candidates{padding:14px}
.review-candidate-group{gap:10px;margin-top:0}
.review-candidate-group+.review-candidate-group{margin-top:18px}
.review-candidate-group h2{margin:0;font:800 clamp(20px,3vw,24px)/1.2 var(--title)}
.review-candidate-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.review-candidate{display:flex;align-items:center;justify-content:center;min-width:0;min-height:56px;padding:8px;text-align:center;overflow:visible;word-break:normal;overflow-wrap:normal;hyphens:none}
.review-candidate strong,.flight-candidate strong{font:850 clamp(20px,3vw,24px)/1.15 var(--data);text-align:center;word-break:normal;overflow-wrap:normal;hyphens:none}
.review-candidate span,.flight-candidate span{font-size:clamp(15px,2vw,17px);line-height:1.25}
.review-candidate:first-child:nth-last-child(2){grid-column:1/-1}
.review-candidate[aria-pressed="true"]{border-width:4px;border-color:var(--accent);background:var(--color-surface-emphasis);box-shadow:inset 0 0 0 2px var(--color-surface)}
.review-candidate-manual{grid-column:1/-1;display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:72px;border:2px solid var(--color-border-strong);border-radius:var(--radius-small);background:var(--color-surface);padding:14px 18px;color:var(--navy);font:800 var(--full-row-control-font-size)/1.12 var(--body);text-align:center;cursor:pointer;word-break:normal;overflow-wrap:normal;hyphens:none}
.review-candidate-manual:hover{border-color:var(--accent);background:var(--color-surface-emphasis)}
.review-candidate-manual:focus-visible{outline:4px solid var(--color-focus);outline-offset:3px}
.manual-actions.is-partial-document{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:10px}
.manual-actions.is-partial-document .button{width:100%;max-width:none;min-height:76px;padding:12px;font-size:inherit;line-height:1.12}
.manual-actions.is-partial-document .staff-help-button{order:1}
.manual-actions.is-partial-document [data-manual-primary]{order:2}
.manual-actions.is-partial-document [data-action="demo-flight"]{display:none!important}

@media(max-width:650px){
  .site-header{height:56px}
  .screen:not(.screen-welcome),.screen-step,.screen-confirm{padding-top:10px}
  .screen-welcome{min-height:calc(100vh - 56px)}
}

@media(max-width:280px){
  .language-select{width:104px;min-width:104px}
  .review-candidate-list,.manual-actions.is-partial-document{grid-template-columns:minmax(0,1fr)}
  .review-candidate,.review-candidate-manual,.manual-actions.is-partial-document .button{grid-column:1}
}

/* Airport contact action and local-only diagnostics. */
.airport-resource-qa{width:min(100% - 32px,760px);margin:24px auto;padding:24px;border:2px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface)}
.airport-resource-qa h2{margin-top:0}.airport-resource-qa form{display:grid;gap:12px}.airport-resource-qa label{display:grid;gap:5px;font-weight:700}.airport-resource-qa label small{color:var(--color-text-muted);font-weight:600}.airport-resource-qa input{min-height:44px;padding:8px;border:2px solid var(--color-border);font:inherit}.qa-airport-actions{display:flex;justify-content:center}.qa-airport-actions .button{width:min(100%,260px);min-height:44px;border-radius:var(--radius-small)}.qa-airport-result{word-break:normal;overflow-wrap:break-word;hyphens:none}.qa-airport-result p{margin:10px 0}.qa-airport-name{margin:22px 0 6px}.qa-airport-result h4{margin:24px 0 8px}.qa-airport-phone{font:850 clamp(25px,5vw,36px)/1.2 var(--data)}.qa-airport-action{display:flex;width:min(100%,340px);min-height:52px;margin:10px 0;align-items:center;justify-content:center;text-decoration:none}
.card-close{width:56px;height:56px;min-width:56px;min-height:56px;padding:0;display:grid;place-items:center;line-height:0;color:var(--color-text)}
.card-close svg{display:block;width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
.staff-overlay-close{position:static;float:none;margin:0}
.staff-contact-button{min-width:0;white-space:normal;word-break:normal;overflow-wrap:normal;hyphens:none;font-size:20px}
.family-card{position:relative;padding-top:76px}
.family-overlay-close{position:absolute;top:16px;right:16px;margin:0;float:none}
.airport-resource-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;margin-top:14px}
.airport-resource-button{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0;min-height:68px;padding:12px 14px;text-align:center}
.airport-resource-button svg{flex:0 0 auto;width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.airport-resource-view{clear:both;min-width:0}
.airport-resource-view h1{margin:0 0 24px;font-size:clamp(32px,5vw,46px)}
.airport-resource-airport{margin:-12px 0 20px;color:var(--color-text-secondary);font-size:clamp(20px,3vw,27px);font-weight:800}
.airport-resource-status{min-height:150px;border-left:6px solid var(--color-primary);background:var(--color-surface-muted);padding:22px}
.airport-phone-icon{display:block;width:48px;height:48px;margin:0 0 14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.airport-phone-icon[hidden]{display:none}
.airport-resource-message{margin:0;color:var(--color-text);font-size:clamp(24px,4vw,34px);font-weight:850;line-height:1.35}
.airport-resource-detail{margin:14px 0 0;color:var(--color-text-secondary);font-size:clamp(17px,2.5vw,21px);font-weight:750;line-height:1.45}
.airport-phone-display{margin:20px 0 0;font:850 clamp(27px,5vw,42px)/1.25 var(--data);word-break:normal;overflow-wrap:break-word;hyphens:none}
.airport-resource-result-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:22px}
.airport-resource-result-actions .button{display:flex;align-items:center;justify-content:center;width:100%;max-width:none;min-height:64px;text-align:center;text-decoration:none}
@media(max-width:220px){
  .airport-resource-qa{box-sizing:border-box;width:calc(100% - 8px);padding:10px 6px}
  .airport-resource-qa h2,.airport-resource-qa label,.airport-resource-qa form{min-width:0;max-width:100%;word-break:normal;overflow-wrap:normal;hyphens:none}
  .airport-resource-qa input{box-sizing:border-box;width:100%;min-width:0}
}

@media(max-width:420px){
  .staff-card-topbar{grid-template-columns:minmax(0,1fr) 56px;gap:8px}
  .staff-contact-button{padding-inline:10px;line-height:1.2}
  .airport-resource-button{min-height:104px;flex-direction:column;gap:4px;padding-inline:4px;font-size:20px;line-height:1.15}
  .airport-resource-button svg{width:32px;height:32px}
}

/* Keep every action operable and readable through narrow-screen and 200% reflow. */
.home-back-button{min-height:60px;padding:12px 14px;overflow:visible}
@media(max-width:420px){
  .review-candidate-list{grid-template-columns:minmax(0,1fr)}
  .review-candidate{grid-column:1}
}
@media(max-width:400px) and (min-width:221px){
  html[lang="es"] .screen-error .two-choice-grid{font-size:20px}
  html[lang="es"] .screen-error .two-choice-grid .button{padding-inline:6px}
}
@media(max-width:340px) and (min-width:221px){
  html[lang="es"] .screen-confirm .confirm-choice-actions{font-size:20px}
  html[lang="es"] .screen-confirm .confirm-choice-actions .button{padding-inline:6px}
  html[lang="es"] [data-board-overlay] .two-choice-grid{font-size:20px}
  html[lang="es"] [data-board-overlay] .two-choice-grid .button{padding-inline:6px}
}
@media(max-width:220px){
  :root{--full-row-control-font-size:22px;--multi-control-font-size:20px;--action-control-icon-size:32px;--action-control-text-icon-size:28px}
  html[lang="en"]{--multi-control-font-size:18px}
  html[lang="es"]{--multi-control-font-size:18px}
  .screen{width:100%}
  .site-header,.site-footer{width:calc(100% - 8px)}
  .staff-overlay,.confirm-overlay{padding:4px}
  .staff-card,.confirm-card,.family-card{width:100%;padding:16px 10px}
  .flight-card,.flight-correction{padding-inline:10px}
  .button,.home-back-button,.back-button,.card-close,.text-button,.support-button,
  .journey-end-action .end-journey-link,.flight-candidate,.review-candidate,
  .review-candidate-manual,.segment-option{
    max-width:100%;padding-inline:6px;font-size:var(--full-row-control-font-size);word-break:normal;overflow-wrap:normal;hyphens:none
  }
  .button>span,.support-button>span,.icon-button>span,.answer-choice>span,
  .assistance-button>span,.segment-option strong,.segment-option>span{
    width:100%;max-width:100%;word-break:normal;overflow-wrap:normal;hyphens:none
  }
  .button,.icon-button,.support-button,.home-back-button,.staff-help-button{flex-direction:column}
  .support-button.assistance-button .speech-icon,.support-button.dialog-speech-button .speech-icon{stroke-width:2.7}
  .journey-end-action .end-journey-link .end-journey-icon{stroke-width:2.7}
  .home-back-button{width:100%;min-height:60px;margin-bottom:12px}
  .answer-choice-grid,.step-assistance-actions,.step-assistance-actions.share-unavailable,
  .two-choice-grid,.confirm-assistance-actions,.short-action-grid,
  .screen-confirm .confirm-choice-actions,.journey-secondary-actions,
  .family-actions,.manual-actions.is-partial-document{
    grid-template-columns:minmax(0,1fr);gap:6px
  }
  .screen-step.is-departure-exception .step-assistance-actions{grid-template-columns:minmax(0,1fr)}
  .airport-resource-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
  .airport-resource-button{min-height:104px;padding:8px 0;font-size:20px;line-height:1.15;gap:4px}
  html[lang="en"] .airport-resource-button,html[lang="es"] .airport-resource-button{font-size:18px}
  .airport-resource-button svg{width:32px;height:32px}
  .language-select{width:92px;min-width:92px;font-size:18px}
  .header-tools{gap:4px}
  .scenario-actions{grid-template-columns:minmax(0,1fr)}
  .screen h1,.screen h2,.section-heading>*,.confirm-card h1,.confirm-card p,
  .family-card h1,.family-card p,.conflict-card h2,.segment-selector h2,
  .departure-passed-flight dt,.departure-passed-flight dd{
    max-width:100%;word-break:normal;overflow-wrap:normal;hyphens:none
  }
  .screen h1,.screen-step h1,.departure-passed-confirmation h1{font-size:30px}
  .welcome-speech-note{flex-direction:column;align-items:flex-start;gap:6px}
  .date-control{height:auto;min-height:72px;padding-right:18px}
  .date-control-value{padding:8px 0;white-space:normal;word-break:normal;overflow-wrap:normal;hyphens:none;line-height:1.2}
  .departure-passed-confirmation{padding-inline:10px}
  .departure-passed-flight,.flight-details,.flight-details-expanded{grid-template-columns:minmax(0,1fr)}
}

/* Formal passenger copy and controls keep whole words and remain usable on phones. */
body,button,input,select,textarea{word-break:normal;overflow-wrap:normal;hyphens:none}
.loading-current-status{min-height:2.5em;margin:0;color:var(--navy);font:700 clamp(2rem,6vw,2.7rem)/1.22 var(--title)}
.upload-hint,.document-unusable-hint,.welcome-speech-note p,.form-hint,.privacy-note,.share-expiry{font-size:max(16px,1rem)}

.document-unusable-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:620px}
.document-unusable-actions .staff-help-button,.document-unusable-actions .home-back-button{grid-column:1/-1}
.document-unusable-actions .home-back-button{width:auto;justify-self:start}
.error-actions .action-full-row{grid-column:1/-1}
.departure-passed-end-action{margin-top:18px}

.screen-confirm .airport-city{font-size:16px;line-height:1.35}
.screen-confirm .airport-time-label{min-height:0;font-size:15px;line-height:1.35}
.screen-confirm .airport-local-time{font-size:18px;line-height:1.35}

/* Dialog cards scroll internally so their close control stays visible above safe areas. */
.app-shell{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);min-height:100dvh}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:env(safe-area-inset-top)}
input,textarea,select{font-size:max(16px,1em)}

@media(max-width:440px){
  .app-shell *, .staff-overlay *, .confirm-overlay *{min-width:0}
  .brand-copy{flex:1}
  .brand-copy strong{white-space:normal}
  .screen-welcome{min-height:calc(100dvh - 100px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
  .button,.support-button,.end-journey-link,.language-select{min-height:44px}
  .staff-card,.confirm-card{width:100%;min-width:0}
}
.staff-overlay,.confirm-overlay{
  top:var(--visible-top,0px);
  bottom:auto;
  height:var(--visible-height,100dvh);
  padding-top:calc(12px + env(safe-area-inset-top));
  padding-right:calc(12px + env(safe-area-inset-right));
  padding-bottom:calc(12px + env(safe-area-inset-bottom));
  padding-left:calc(12px + env(safe-area-inset-left));
}
.staff-card,.confirm-card{
  max-height:calc(100vh - 24px);
  max-height:calc(var(--visible-height,100dvh) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);
  overflow-y:auto;
  overscroll-behavior:contain;
}
.staff-card-topbar{position:sticky;top:0;z-index:3;grid-template-columns:minmax(0,1fr) 56px;background:var(--color-surface);padding-bottom:8px}
.staff-card .staff-overlay-close{grid-column:2;justify-self:end}
@media(max-width:650px){
  .staff-card{height:100%;max-width:none;align-self:stretch}
}
.family-card,.journey-problem-card{padding-top:16px}
.family-overlay-close,.journey-problem-close{position:sticky;top:0;right:auto;z-index:3;margin:0 0 -56px auto;background:var(--color-surface)}
.family-card h1,.journey-problem-card h1{padding-top:68px;padding-right:64px}

/* Airport resources and transfer choices stay paired at ordinary mobile widths. */
.airport-resource-actions,.journey-problem-connection-actions{grid-template-columns:repeat(2,minmax(0,1fr))}

@media(max-width:340px){
  .document-unusable-actions,.error-actions{grid-template-columns:minmax(0,1fr)}
  .document-unusable-actions .staff-help-button,.document-unusable-actions .home-back-button,.error-actions .action-full-row{grid-column:1}
}

@media(max-width:220px){
  .staff-overlay{padding-left:2px;padding-right:2px}
  .staff-card{padding-left:4px;padding-right:4px}
  .staff-card-topbar{grid-template-columns:minmax(0,1fr) 56px;gap:2px}
  .staff-contact-button{padding-left:2px;padding-right:2px;gap:4px;font-size:18px}
  .journey-problem-connection-actions{grid-template-columns:minmax(0,1fr)}
}
