:root { --navy:#075c74; --blue:#137b91; --pale:#e8f5f3; --line:#c9dfe0; --ink:#173743; --muted:#5c7478; --green:#8dc63f; --amber:#b96800; --red:#b42318; }
.readonly-passenger-field { display:inline-block; min-width:30px; color:var(--ink); font-weight:700; }
* { box-sizing:border-box; } [hidden] { display:none !important; } body { position:relative; isolation:isolate; margin:0; min-width:320px; background:linear-gradient(145deg,#d8f1ea 0%,#f2fbf8 44%,#d8eff4 100%); color:var(--ink); font:14px/1.4 Manrope,Arial,sans-serif; } body::before { content:""; position:fixed; right:-145px; bottom:-115px; z-index:-1; width:600px; height:600px; background:var(--brand-watermark) center/contain no-repeat; opacity:.10; pointer-events:none; }
.topbar { display:flex; gap:18px; align-items:center; justify-content:space-between; padding:12px clamp(16px,3vw,42px); color:#fff; background:linear-gradient(105deg,#4ca19d 0%,#16798d 43%,#075c74 100%); box-shadow:inset 0 -3px 0 #8dc63f; }
h1,h2,p { margin:0; } h1 { font-size:24px; } h2 { font-size:18px; } .eyebrow { color:#168195; font-size:11px; letter-spacing:.12em; font-weight:800; text-transform:uppercase; } .brand-lockup { display:flex; align-items:center; gap:16px; min-width:0; }.charter-main-logo { width:min(330px,48vw); max-height:76px; object-fit:contain; padding:5px 10px; border-radius:7px; background:#fff; }.parent-brand { padding-left:16px; border-left:1px solid #ffffff80; color:#fff; font-size:12px; font-weight:800; letter-spacing:.04em; white-space:nowrap; }.top-actions,.manifest-actions,.toolbar { display:flex; gap:9px; align-items:center; flex-wrap:wrap; }.account-email { max-width:220px; overflow:hidden; text-overflow:ellipsis; color:#fff; font-size:12px; font-weight:800; white-space:nowrap; }.account-logout { margin:0; }.login-form { display:grid; gap:14px; }.login-form header { margin-bottom:0; }.login-form label { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:800; }.login-form .checkin-actions { margin-top:2px; }
.top-actions label { display:grid; gap:3px; font-size:11px; font-weight:800; } input,select { min-height:36px; border:1px solid var(--line); border-radius:7px; padding:7px 9px; font:inherit; color:var(--ink); background:#fff; } .button { display:inline-flex; min-height:36px; align-items:center; justify-content:center; border:0; border-radius:7px; padding:7px 11px; cursor:pointer; text-decoration:none; font:700 13px Manrope,sans-serif; color:#fff; background:var(--blue); } .button.secondary { color:var(--navy); background:#fff; } .button.danger { background:var(--red); } .button:disabled { cursor:not-allowed; opacity:.55; } .upload-label input { display:none; }
.gate-field { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:12px; font-weight:800; }.gate-field input { width:78px; min-height:36px; }
.gate-select-label { display:grid; gap:6px; margin-top:16px; color:var(--muted); font-size:12px; font-weight:800; }.gate-select-label input { width:100%; }
.notice { margin:12px auto 0; width:min(1200px,calc(100% - 32px)); padding:10px 12px; border-radius:7px; background:#fff2dd; color:#834700; } .notice.error { background:#ffebe9; color:#a1271e; }
.workspace { display:grid; grid-template-columns:minmax(230px,300px) minmax(0,1fr); gap:18px; max-width:1440px; margin:0 auto; padding:18px; }.workspace.hide-flights { grid-template-columns:minmax(0,1fr); }.workspace.hide-flights .flight-panel { display:none; }.flight-panel,.checkin-panel { background:#fff; border:1px solid var(--line); border-radius:11px; box-shadow:0 2px 8px #073b5c0b; }.flight-panel { align-self:start; overflow:hidden; }.section-heading { display:flex; justify-content:space-between; align-items:center; padding:15px; border-bottom:1px solid var(--line); }.pill { padding:2px 8px; border-radius:999px; color:var(--navy); background:var(--pale); font-weight:800; }.flight-list { max-height:calc(100vh - 150px); overflow:auto; }.flight-card { width:100%; border:0; border-bottom:1px solid var(--line); padding:13px 15px; text-align:left; cursor:pointer; background:#fff; color:var(--ink); }.flight-card:hover,.flight-card.active { background:var(--pale); }.flight-card strong,.flight-card span { display:block; }.flight-card span { margin-top:3px; color:var(--muted); font-size:12px; }.checkin-panel { min-height:420px; }.empty-state { padding:80px 25px; text-align:center; color:var(--muted); }.empty-state h2 { margin-bottom:7px; color:var(--ink); }.flight-title-row { display:flex; justify-content:space-between; gap:18px; align-items:start; padding:20px; border-bottom:1px solid var(--line); }.flight-title-row .eyebrow { color:var(--blue); }.muted { color:var(--muted); font-size:12px; }.summary { display:grid; grid-template-columns:repeat(5,minmax(92px,1fr)); gap:10px; padding:14px 20px; }.metric { border-radius:8px; padding:10px; background:#f6fafc; }.metric strong,.metric span { display:block; }.metric strong { font-size:20px; }.metric span { color:var(--muted); font-size:11px; font-weight:700; }.toolbar { justify-content:space-between; gap:12px; padding:0 20px 14px; }.toolbar label { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:12px; font-weight:800; }.search { flex:1; }.search input { width:min(100%,390px); }.table-wrap { overflow:auto; border-top:1px solid var(--line); }.passenger-table { width:100%; min-width:850px; border-collapse:collapse; }.passenger-table th,.passenger-table td { padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:middle; text-align:left; }.passenger-table th { position:sticky; top:0; z-index:1; background:#f6fafc; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em; }.passenger-table td input { width:72px; min-height:32px; }.passenger-table .seat-input { width:58px; text-transform:uppercase; }.pax-name strong,.pax-name span { display:block; }.pax-name span { color:var(--muted); font-size:11px; }.status { display:inline-block; padding:3px 7px; border-radius:999px; background:#edf1f3; color:#42515b; font-size:11px; font-weight:800; white-space:nowrap; }.status.checked-in { color:#075985; background:#e0f2fe; }.status.boarded,.status.flown { color:#075f3d; background:#dcfce7; }.row-actions { display:flex; gap:6px; flex-wrap:wrap; }.row-actions .button { min-height:31px; padding:5px 8px; font-size:11px; }.empty { padding:16px; color:var(--muted); }
.seatmap-dialog { width:min(650px,calc(100vw - 24px)); border:0; border-radius:13px; padding:0; color:var(--ink); background:#fff; box-shadow:0 20px 60px #073b5c52; }.seatmap-dialog::backdrop { background:#08283b80; }.seatmap-shell { padding:20px; }.seatmap-shell header { display:flex; justify-content:space-between; gap:12px; align-items:start; margin-bottom:12px; }.seatmap-shell .eyebrow { color:var(--blue); }.seatmap-grid { display:grid; gap:6px; max-height:65vh; margin-top:16px; overflow:auto; padding:14px; border:2px solid #b7cbd6; border-radius:80px 80px 18px 18px; background:#f6fafc; }.seatmap-row { display:grid; grid-template-columns:34px max-content 28px max-content; justify-content:center; gap:6px; align-items:center; }.seatmap-row-number { color:var(--muted); font-size:11px; font-weight:800; text-align:right; }.seatmap-block { display:flex; gap:6px; }.seatmap-block.right { justify-content:flex-end; }.seatmap-seat { min-width:41px; min-height:38px; border:1px solid #78b8d5; border-radius:7px; color:var(--navy); background:#fff; cursor:pointer; font:800 12px Manrope,sans-serif; }.seatmap-seat:hover:not(:disabled),.seatmap-seat.current { border-color:var(--blue); outline:2px solid #75cef5; background:#e0f4fd; }.seatmap-seat:disabled { cursor:not-allowed; border-color:#d5dfe4; color:#8b9aa2; background:#e7ecef; }.seatmap-seat.occupied::after { content:"•"; display:block; color:var(--red); line-height:3px; }
.passenger-table tr.dangerous-goods-declared td { background:#fff8f8; border-top:2px dashed #bf2323; border-bottom:2px dashed #bf2323; }.passenger-table tr.dangerous-goods-declared td:first-child { border-left:2px dashed #bf2323; }.passenger-table tr.dangerous-goods-declared td:last-child { border-right:2px dashed #bf2323; }
.scan-feedback { z-index:3000; }
.boarding-decision-alert { position:fixed; inset:0; z-index:2000; display:grid; align-content:center; justify-items:center; gap:15px; padding:32px; background:#062b42ed; color:#fff; text-align:center; }.boarding-decision-alert .eyebrow { margin:0; color:#f5c86a; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.boarding-decision-alert strong { max-width:800px; font-size:clamp(30px,6vw,64px); line-height:1.05; }.boarding-decision-alert p:not(.eyebrow) { max-width:700px; margin:0; font-size:clamp(17px,2.5vw,27px); font-weight:700; }.boarding-decision-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:10px; }.boarding-decision-actions .button { min-height:58px; padding:14px 22px; font-size:18px; font-weight:900; }.boarding-decision-actions .secondary { background:#fff; color:#17384d; border-color:#fff; }
.boarding-video { display:block; width:100%; max-height:300px; margin:14px 0; border-radius:9px; background:#17232b; }.scan-code-label { display:grid; gap:5px; margin:12px 0; color:var(--muted); font-size:12px; font-weight:800; }.scan-code-label input { width:100%; }
.last-boarded { margin:12px 0 0; padding:9px 11px; border-radius:8px; background:var(--pale); color:var(--navy); font-weight:800; }
.seat-change-alert { position:fixed; inset:0; z-index:2000; display:grid; align-content:center; justify-items:center; gap:18px; padding:32px; background:#a61b1bd; color:#fff; text-align:center; box-shadow:inset 0 0 0 12px #fbbf24; }.seat-change-alert strong { max-width:900px; font-size:clamp(32px,7vw,82px); line-height:1; letter-spacing:.06em; }.seat-change-alert p { max-width:760px; margin:0; font-size:clamp(19px,3vw,34px); font-weight:800; }.seat-change-alert .seat-change-instruction { color:#fde68a; font-size:clamp(16px,2.3vw,25px); }.seat-change-alert .button { min-height:64px; max-width:650px; padding:15px 24px; border:3px solid #fff; background:#fbbf24; color:#3b0a0a; font-size:clamp(16px,2vw,24px); font-weight:900; }.seat-change-alert .button:hover { background:#fff; }
.scan-feedback { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:24px; color:#fff; font-size:clamp(26px,6vw,68px); font-weight:800; letter-spacing:.06em; text-align:center; animation:scan-flash 1.8s ease-out forwards; }.scan-feedback.success { background:#15803dcc; }.scan-feedback.error { background:#b42318d9; }.checkin-fields { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:16px 0; }.checkin-fields label,.comments-label { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:800; }.checkin-section { margin:16px 0; padding:12px; border:1px solid var(--line); border-radius:9px; }.checkin-section .section-heading { padding:0 0 10px; border:0; }.checkin-section h3 { margin:0; font-size:14px; }.ssr-add { display:grid; grid-template-columns:minmax(180px,1fr) minmax(150px,1fr) auto; gap:8px; }.ssr-list { display:flex; flex-wrap:wrap; gap:7px; min-height:28px; margin-top:10px; }.ssr-chip { display:inline-flex; align-items:center; gap:5px; padding:4px 7px; border-radius:999px; background:#e0f2fe; color:#075985; font-size:11px; }.ssr-chip button { border:0; background:transparent; color:#075985; cursor:pointer; font-size:16px; line-height:1; }.comments-label textarea { width:100%; resize:vertical; border:1px solid var(--line); border-radius:7px; padding:8px; font:inherit; }.checkin-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }@keyframes scan-flash{0%,72%{opacity:1}100%{opacity:0}}@media(max-width:600px){.checkin-fields,.ssr-add{grid-template-columns:1fr}.checkin-actions .button{flex:1}}
.checkin-layout { display:grid; grid-template-columns:minmax(220px,290px) minmax(0,1fr); gap:18px; }.checkin-seatmap-panel { align-self:start; padding:12px; border:1px solid var(--line); border-radius:10px; background:#f6fafc; }.checkin-seatmap-panel h3 { margin:0; font-size:15px; }.checkin-seatmap-panel .muted { display:block; margin:4px 0 9px; }.checkin-seatmap-grid { display:grid; gap:4px; max-height:480px; overflow:auto; padding:10px; border:2px solid #b7cbd6; border-radius:60px 60px 12px 12px; background:#fff; }.checkin-seatmap-grid .seatmap-row { grid-template-columns:27px max-content 20px max-content; gap:4px; }.checkin-seatmap-grid .seatmap-seat { min-width:33px; min-height:32px; font-size:10px; }.checkin-seatmap-grid .seatmap-seat.selected { border-color:var(--blue); outline:3px solid #075985; background:#dff4ff; }.seatmap-seat.reserve { border-style:dashed; border-color:#b96800; }.checkin-form { min-width:0; }@media(max-width:760px){.checkin-layout{grid-template-columns:1fr}.checkin-seatmap-grid{max-height:280px}.checkin-seatmap-panel{order:2}}
#checkinDialog { width:min(1120px,calc(100vw - 24px)); max-width:none; max-height:94dvh; overflow:hidden; }.checkin-shell { max-height:94dvh; overflow:auto; overscroll-behavior:contain; }.checkin-layout { min-width:0; }.checkin-seatmap-panel,.checkin-form { min-width:0; }
@media (max-width:850px) { .topbar,.flight-title-row { align-items:stretch; flex-direction:column; }.brand-lockup { justify-content:space-between; }.charter-main-logo { width:min(310px,78vw); }.parent-brand { padding:7px 0 0; border:0; border-top:1px solid #ffffff80; }.workspace { grid-template-columns:1fr; padding:10px; }.flight-list { max-height:230px; }.summary { grid-template-columns:repeat(3,1fr); }.toolbar { align-items:stretch; flex-direction:column; }.search input { width:100%; }.top-actions { display:grid; grid-template-columns:1fr 1fr; }.top-actions label { grid-column:span 2; }.manifest-actions { width:100%; }.manifest-actions .button { flex:1; }.checkin-panel { overflow:hidden; } }
@media (min-width:851px) { .top-actions { flex-wrap:nowrap; white-space:nowrap; }.top-actions label { display:flex; align-items:center; gap:7px; white-space:nowrap; } }
