:root { color-scheme: light; --ink:#1b2430; --muted:#657184; --line:#dfe4ea; --brand:#0b5d54; --soft:#f4f7f6; --danger:#8b1e2d; }
* { box-sizing: border-box; }
body { margin:0; color:var(--ink); background:#fafbfc; font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
a { color:var(--brand); }
.site-header { background:#fff; border-bottom:1px solid var(--line); padding:1rem max(1rem,calc((100% - 1120px)/2)); display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1.5rem; }
.brand { color:var(--ink); font-weight:750; text-decoration:none; font-size:1.1rem; }
.identity { margin-left:auto; color:var(--muted); }
nav { width:100%; display:flex; gap:1rem; align-items:center; overflow-x:auto; }
main { width:min(1120px,100%); margin:auto; padding:1rem; }
.demo-banner,.notice,.flash { border-radius:.55rem; padding:.75rem 1rem; margin:0 0 1rem; background:#fff7d6; border:1px solid #ead47a; }
.notice { background:#edf4ff; border-color:#b6cbed; }
.flash.error,.conflict { color:var(--danger); background:#fff0f1; border:1px solid #e2a9b0; }
.flash.success { color:#145b35; background:#ecfbf2; border:1px solid #a6dbbc; }
.page-heading { display:flex; justify-content:space-between; align-items:end; gap:1rem; flex-wrap:wrap; }
.card { background:#fff; border:1px solid var(--line); border-radius:.75rem; padding:1rem; box-shadow:0 2px 9px rgba(20,34,50,.04); }
.narrow { width:min(460px,100%); margin:2rem auto; }
.flight-grid,.review-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:1rem; }
.route { display:flex; gap:.75rem; align-items:center; font-size:1.65rem; font-weight:750; }
.flight-meta { margin:.45rem 0; }
.flight-meta small { display:block; color:var(--muted); }
.stack { display:grid; gap:.85rem; }
.stack label { display:grid; gap:.3rem; }
.compact { margin-top:1rem; }
input,select,textarea,button,.button { max-width:100%; border:1px solid #aeb8c4; border-radius:.45rem; padding:.65rem .75rem; font:inherit; }
button,.button { border:0; background:var(--brand); color:white; cursor:pointer; text-decoration:none; display:inline-block; width:max-content; }
.inline-form { display:inline; }
.link-button { background:none; color:var(--brand); padding:0; }
.status { display:inline-block; border-radius:999px; padding:.15rem .55rem; background:#e8edf2; font-size:.85rem; font-weight:700; }
.status.booked,.status.confirmed { background:#dff6e9; color:#155c38; }
.status.cancelled,.status.rejected { background:#fde2e5; color:#8b1e2d; }
.status.flown { background:#e5ecff; color:#274787; }
.status.pending,.status.unknown { background:#fff0c7; color:#6f5300; }
.status.planned { background:#dff6e9; color:#155c38; }
.status.history { background:#f0e7dc; color:#6e4c24; }
.status.disabled { background:#ececec; color:#555; }
.match-row { display:grid; gap:.25rem; border-bottom:1px solid var(--line); padding-bottom:.75rem; }
.conflict { border-radius:.55rem; padding:.75rem; }
dl { display:grid; grid-template-columns:max-content 1fr; gap:.35rem 1rem; }
dt { color:var(--muted); }
dd { margin:0; }
.muted { color:var(--muted); }
.history,.item-list { padding-left:1.35rem; }
.shared-section { margin-top:1.75rem; }
@media (max-width:600px) { .identity { order:3; margin-left:0; width:100%; } nav { gap:.8rem; } main { padding:.75rem; } h1 { font-size:1.55rem; } .route { font-size:1.4rem; } }
