.travel-app { --travel-ink:#193548; --travel-muted:#536674; --travel-line:#cbd6dd; --travel-accent:#007ea7; max-width:1140px; margin:0 auto; padding:32px 24px 56px; color:var(--travel-ink); }
.travel-app *, .travel-app *::before, .travel-app *::after { box-sizing:border-box; }
.travel-app [hidden] { display:none!important; }
.travel-intro { margin-bottom:28px; }
.travel-intro h1 { font-size:2rem; line-height:1.2; margin:0 0 12px; color:var(--travel-ink); }
.travel-intro > p { max-width:66ch; margin:0 0 22px; font-size:1.0625rem; }
.travel-nav { display:flex; gap:28px; border-bottom:1px solid var(--travel-line); }
.travel-nav a { padding:10px 2px 12px; color:var(--travel-muted); text-decoration:none; border-bottom:2px solid transparent; }
.travel-nav a[aria-current] { color:var(--travel-accent); border-bottom-color:var(--travel-accent); font-weight:700; }
.travel-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,0.85fr); align-items:start; gap:36px; }
.travel-app fieldset { min-width:0; margin:0 0 24px; padding:0 0 24px; border:0; border-bottom:1px solid var(--travel-line); }
.travel-app legend { float:none; width:auto; font-size:1.25rem; line-height:1.35; font-weight:700; margin:0 0 18px; }
.travel-fields-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.travel-field { min-width:0; margin-bottom:16px; }
.travel-field label { display:block; font-weight:600; margin-bottom:6px; }
.travel-field input, .travel-field select { display:block; width:100%; min-width:0; min-height:46px; padding:10px 12px; border:1px solid #93a7b4; border-radius:6px; background:#fff; color:var(--travel-ink); font:inherit; font-size:1rem; line-height:1.4; color-scheme:light; }
.travel-field input::placeholder { color:#637581; opacity:1; }
.travel-field input:focus, .travel-field select:focus { outline:2px solid var(--travel-accent); outline-offset:2px; }
.travel-field input[aria-invalid=true], .travel-field select[aria-invalid=true] { border-color:#b52628; }
.travel-date-field { max-width:270px; }
.travel-optional, .travel-hint { color:var(--travel-muted); font-weight:400; font-size:.9375rem; line-height:1.5; }
.travel-hint { margin:8px 0 16px; }
.travel-check { display:flex; align-items:center; gap:10px; min-height:36px; margin:0 0 10px; cursor:pointer; }
.travel-check input { width:18px; height:18px; flex:0 0 18px; accent-color:var(--travel-accent); }
.travel-app a { text-underline-offset:3px; }
.travel-app a:focus-visible, .travel-app button:focus-visible, .travel-check input:focus-visible { outline:2px solid var(--travel-accent); outline-offset:4px; }
.travel-form-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px; margin-bottom:12px; }
.travel-primary, .travel-secondary { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:11px 18px; border:1px solid var(--travel-accent); border-radius:6px; font:inherit; font-weight:700; line-height:1.4; text-decoration:none; cursor:pointer; }
.travel-primary { background:var(--travel-accent); color:#fff; }
.travel-primary:hover { background:#006681; border-color:#006681; }
.travel-secondary { background:#fff; color:var(--travel-accent); }
.travel-secondary:hover { background:#e9f4f8; color:#005d7b; }
.travel-text-button { border:0; background:transparent; padding:8px 0; min-height:40px; color:var(--travel-accent); font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.travel-text-button:hover { color:#00536f; }
.travel-text-button:disabled { color:#5f6f79; opacity:.75; cursor:default; text-decoration:none; }
.travel-summary { position:sticky; top:82px; min-width:0; background:#f1f7fa; border:1px solid #cbdde6; border-radius:12px; padding:24px; }
.travel-summary h2 { font-size:1.375rem; margin:0 0 16px; color:var(--travel-ink); }
#summary-title, #meal-fieldset { scroll-margin-top:90px; }
.travel-summary h3 { font-size:1.0625rem; margin:24px 0 10px; font-weight:700; color:var(--travel-ink); }
.travel-summary dl { margin:0; font-size:.9375rem; }
.travel-summary dl > div { display:flex; justify-content:space-between; gap:16px; margin:9px 0; }
.travel-summary dt { font-weight:400; overflow-wrap:anywhere; }
.travel-summary dd { margin:0; text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.travel-summary-actions { display:flex; align-items:stretch; flex-direction:column; gap:8px; margin-top:22px; }
.travel-remove { font-size:.875rem; margin-top:6px; }
.travel-total { display:flex; flex-direction:column; gap:4px; border-top:1px solid var(--travel-line); padding-top:18px; margin-top:22px; }
.travel-total strong { font-size:1.75rem; line-height:1.25; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.travel-report-description { font-weight:600; overflow-wrap:anywhere; }
.travel-report-note { margin:18px 0 0; font-size:.875rem; }
.travel-error, .travel-notice { padding:12px 14px; border:1px solid #c49494; background:#fff3f3; border-radius:6px; color:#822021; line-height:1.5; margin:0 0 20px; }
.travel-notice { background:#fff9e9; border-color:#d8c487; color:#62521b; font-size:.9375rem; }
.travel-meal-period { border-top:1px solid var(--travel-line); padding:14px 0; }
.travel-meal-period > p { margin:0 0 8px; font-weight:600; }
.travel-meal-checks { display:flex; flex-wrap:wrap; column-gap:20px; }
.travel-meal-checks .travel-check { font-size:.9375rem; margin:0; }
.travel-help { max-width:74ch; border-top:1px solid var(--travel-line); padding-top:28px; margin-top:38px; }
.travel-help h2 { font-size:1.375rem; margin:0 0 14px; }
.travel-help p { line-height:1.65; margin:0 0 16px; }
.travel-source-links { color:var(--travel-muted); font-size:.9375rem; }
.travel-print-only { display:none; }
@media(max-width:850px) { .travel-layout { grid-template-columns:1fr; gap:24px; } .travel-summary { position:static; } }
@media(max-width:480px) { .travel-app { padding:24px 20px 40px; } .travel-intro h1 { font-size:1.75rem; } .travel-fields-two { grid-template-columns:1fr; gap:0; } .travel-summary { padding:20px; } .travel-primary { width:100%; } .travel-app input[type=datetime-local] { max-width:100%; } }
@media(prefers-reduced-motion:no-preference) { .travel-primary, .travel-secondary { transition:background-color 150ms ease-out; } }
@media print {
  @page { margin:18mm; }
  body > *:not(main), body > main > *:not(.travel-app) { display:none!important; }
  .travel-app { max-width:none; padding:0; color:#000; }
  .travel-app > *:not(.travel-layout), .travel-form-col, .travel-summary .no-print { display:none!important; }
  .travel-layout { display:block; }
  .travel-summary { position:static; background:#fff; border:0; border-radius:0; padding:0; }
  .travel-summary h2 { font-size:20pt; }
  .travel-summary dl > div { break-inside:avoid; }
  .travel-total { break-inside:avoid; }
  .travel-print-only { display:block; font-size:9pt; margin-top:24px; }
}
