/* Juanytours · Estudio de itinerarios — interfaz de trabajo (pantalla). Impresión en print.css. */
:root{
  --bg:#f1f4fa;--surface:#fff;--surface-2:#f7f9fd;--ink:#0f1f3d;--ink-2:#33466b;--muted:#6b7a95;--line:#e2e8f2;--line-2:#cfd9e8;
  --brand:#1557e6;--brand-600:#0f46c2;--brand-50:#eef3ff;--brand-100:#d9e5ff;--ring:0 0 0 3px #1557e626;
  --green:#0b8a4a;--green-50:#e7f6ee;--amber:#a86200;--amber-50:#fff4df;--red:#c0362c;--red-50:#fdecea;
  --radius:12px;--shadow:0 1px 2px #0f1f3d0a,0 6px 20px #0f1f3d0a;--shadow-lg:0 24px 80px #0f1f3d38;
  font-synthesis:none;color-scheme:light
}
*{box-sizing:border-box}
html{height:100%}
body{margin:0;height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:var(--ink);background:var(--bg);font:14px/1.5 'Segoe UI Variable Text','Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,p{margin:0}
small{font-size:12px;color:var(--muted)}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-100px;background:#fff;z-index:10;padding:10px;border-radius:8px}
.skip:focus{top:10px}

/* Icons */
.icon{width:1.15em;height:1.15em;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shimmer{to{background-position:-200% 0}}

/* Controls */
button,.file-button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line-2);border-radius:10px;background:#fff;padding:9px 14px;font-size:13px;font-weight:600;line-height:1.2;transition:background .15s,border-color .15s,box-shadow .15s,color .15s,transform .05s}
button:hover:not(:disabled),.file-button:hover{background:var(--surface-2);border-color:#b8c7de}
button:active:not(:disabled){transform:translateY(1px)}
button:disabled{cursor:not-allowed;opacity:.45}
button.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 1px 2px #0f46c233,0 4px 14px #1557e62e}
button.primary:hover:not(:disabled){background:var(--brand-600);border-color:var(--brand-600)}
button.danger{color:var(--red)}
button.danger:hover:not(:disabled){background:var(--red-50);border-color:#f0c4bf}
.icon-button{width:36px;height:36px;padding:0;border-color:transparent;background:transparent;color:var(--muted)}
.icon-button .icon{width:20px;height:20px}
.text-button{padding:4px 2px;border:0;border-radius:6px;background:transparent;font-size:12px;font-weight:600;color:var(--brand)}
.text-button:hover:not(:disabled){background:transparent;text-decoration:underline}
input,select,textarea{min-width:0;width:100%;border:1px solid var(--line-2);border-radius:10px;background:#fff;padding:10px 12px;transition:border-color .15s,box-shadow .15s}
input:hover:not(:disabled),select:hover,textarea:hover{border-color:#b8c7de}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--brand);box-shadow:var(--ring)}
input:disabled{background:var(--surface-2);color:#9aa6ba}
input[type=radio]{width:auto;accent-color:var(--brand)}
textarea{resize:vertical;line-height:1.6}
label{display:grid;gap:6px;font-size:12px;font-weight:600;color:var(--ink-2)}
button:focus-visible,a:focus-visible,summary:focus-visible,.results-scroll:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
input::placeholder,textarea::placeholder{color:#9aa6ba}
/* Input with a leading icon */
.control{position:relative;display:block}
.control>.icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;width:17px;height:17px}
.control>input{padding-left:36px}
.control:focus-within>.icon{color:var(--brand)}

/* Top bar */
.topbar{display:flex;align-items:center;gap:22px;height:64px;padding:0 20px;background:#fff;border-bottom:1px solid var(--line)}
.brand img{display:block;width:132px;height:auto}
.product{border-left:1px solid var(--line);padding-left:20px;min-width:0}
.product h1{font-size:16px;font-weight:650;letter-spacing:-.2px;line-height:1.25}
.product p{font-size:12px;color:var(--muted)}
.flow{display:flex;align-items:center;gap:4px;margin:0 auto;padding:4px;list-style:none;background:var(--surface-2);border:1px solid var(--line);border-radius:999px}
.flow li{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:600;color:var(--muted);transition:background .2s,color .2s}
.flow li+li{position:relative}
.flow li.is-done{color:var(--green)}
.flow li.is-current{background:#fff;color:var(--brand);box-shadow:0 1px 3px #0f1f3d1f}
.settings-button{margin-left:auto;border-color:transparent;background:transparent;color:var(--ink-2)}
.settings-button .icon{width:19px;height:19px;color:var(--muted)}
.settings-button:hover .icon{color:var(--brand);transform:rotate(45deg);transition:transform .3s}

/* Workspace */
.desktop-workspace{min-height:0;padding:14px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(380px,1fr);gap:14px;max-width:1800px;width:100%;margin:0 auto}
.work-panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);min-height:0;min-width:0}
.section-line{display:flex;align-items:center;justify-content:space-between;gap:12px}
.section-line h2,.inline-section h2{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:650;letter-spacing:-.3px}
.step-tile{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:10px;background:var(--brand-50);color:var(--brand)}
.step-tile .icon{width:17px;height:17px}
.step-tile[data-step]::after{content:attr(data-step);position:absolute;top:-5px;right:-5px;width:16px;height:16px;border-radius:50%;background:var(--brand);color:#fff;font-size:9.5px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px #fff}
.connection-label{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--green-50);color:var(--green);font-size:11.5px;font-weight:600}

/* 1 · Search */
.search-panel{padding:18px 20px;display:flex;flex-direction:column}
.trip-options{display:inline-flex;gap:2px;margin:14px 0 12px;padding:3px;border-radius:11px;background:#edf1f8}
.trip-options label{position:relative;display:flex;align-items:center;gap:7px;padding:6px 14px;border-radius:8px;font-size:12.5px;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}
.trip-options input{position:absolute;opacity:0;pointer-events:none}
.trip-options label:has(input:checked){background:#fff;color:var(--brand);box-shadow:0 1px 3px #0f1f3d24}
.trip-options label:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:1px}
.route-fields{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) minmax(0,1.05fr) minmax(0,1.05fr);gap:10px;align-items:end}
.field{font-size:12px;color:var(--muted)}
.field input{height:44px;color:var(--ink)}
.route-fields input[name=origin],.route-fields input[name=destination]{text-transform:uppercase;font-size:16px;font-weight:700;letter-spacing:.6px;padding-right:10px}
.airport-city{position:absolute;right:10px;top:50%;transform:translateY(-50%);max-width:calc(100% - 96px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:500;color:var(--muted);pointer-events:none}
.route-fields input[type=date]{font-size:13px;padding-right:8px}
#return-field.is-off{opacity:.45}
.swap{width:34px;height:34px;margin-bottom:5px;padding:0;border-radius:50%;color:var(--brand);background:#fff}
.swap .icon{width:16px;height:16px;transition:transform .3s}
.swap:hover .icon{transform:rotate(180deg)}
.search-bottom{display:flex;flex-wrap:wrap;gap:12px;align-items:end;justify-content:space-between;margin-top:14px}
.people{display:flex;gap:10px}
.pax{display:grid;gap:6px}
.pax label{display:flex;align-items:center;gap:5px;color:var(--muted)}
.pax label .icon{width:15px;height:15px}
.stepper{display:flex;align-items:center;height:40px;border:1px solid var(--line-2);border-radius:10px;background:#fff;overflow:hidden}
.stepper:focus-within{border-color:var(--brand);box-shadow:var(--ring)}
.stepper button{width:30px;height:100%;padding:0;border:0;border-radius:0;background:var(--surface-2);font-size:16px;font-weight:500;color:var(--ink-2)}
.stepper button:hover:not(:disabled){background:var(--brand-50);color:var(--brand)}
.stepper input{width:38px;height:100%;padding:0;border:0;border-radius:0;text-align:center;font-weight:700;font-size:14px;-moz-appearance:textfield;appearance:textfield}
.stepper input:focus{box-shadow:none}
.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.search-actions{display:flex;gap:8px;margin-left:auto}
#search-button{height:44px;padding:0 22px;font-size:14px}
@keyframes fold-in{from{opacity:0;transform:translateY(-4px)}}
.search-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:10px 10px 10px 14px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,#fbfcff,#f5f8fd);animation:fold-in .2s ease-out}
.summary-trip{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;min-width:0}
.summary-route{display:flex;align-items:center;gap:8px}
.summary-route>.icon{width:17px;height:17px;color:var(--brand)}
.summary-route .summary-arrow{width:15px;height:15px;color:var(--muted)}
.summary-place{display:flex;align-items:baseline;gap:5px}
.summary-place strong{font-size:16px;font-weight:700;letter-spacing:.5px}
.summary-place small{font-size:11.5px}
.summary-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:12px;color:var(--ink-2)}
.summary-chip .icon{width:13px;height:13px;color:var(--muted)}
#edit-search{flex-shrink:0;padding:8px 12px;font-size:12.5px;color:var(--brand)}
#edit-search .icon{width:14px;height:14px}
.search-panel:not(.is-collapsed) form{animation:fold-in .2s ease-out}
.results-tools{display:flex;align-items:center;gap:8px}
#cancel{padding:4px 10px}

/* Results */
.results-main{display:flex;flex-direction:column;flex:1;min-height:0;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.results-heading h3{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:650}
.results-heading h3 .icon{color:var(--brand)}
.expiry{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap}
.expiry:empty{display:none}
.expiry[data-state=ok]{background:var(--green-50);color:var(--green)}
.expiry[data-state=warn]{background:var(--amber-50);color:var(--amber)}
.expiry[data-state=expired]{background:var(--red-50);color:var(--red)}
.status-line{display:flex;align-items:flex-start;gap:7px;margin:8px 0 10px;font-size:12px;color:var(--muted)}
.status-icon{display:flex;margin-top:1px}
.status-icon .icon{width:15px;height:15px}
.status-line[data-state=ok] .status-icon{color:var(--green)}
.status-line[data-state=loading] .status-icon{color:var(--brand)}
.status-line[data-state=loading] .status-icon .icon{animation:spin .9s linear infinite}
.status-line[data-state=error]{color:var(--red)}
#status.error{color:var(--red)}
.results-scroll{overflow:auto;flex:1;min-height:0;margin-right:-8px;padding:2px 8px 4px 0;scrollbar-width:thin;scrollbar-color:#c3d0e5 transparent;border-radius:6px}
.results-main:has([aria-busy=true]) #results{opacity:.6}
.skeletons{display:none}
.results-scroll:has(#results[aria-busy=true]:empty) .skeletons{display:grid;gap:12px}
.skeleton{height:150px;border-radius:var(--radius);background:linear-gradient(90deg,#eef2f8 25%,#f8fafd 50%,#eef2f8 75%) 0 0/200% 100%;animation:shimmer 1.3s linear infinite}
.empty{min-height:250px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:28px 18px;background:radial-gradient(ellipse at top,#f3f7ff,#fafbfe 70%);border:1px dashed #d4def0;border-radius:var(--radius)}
.empty-plane{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:16px;border-radius:20px;background:#fff;color:var(--brand);box-shadow:0 6px 20px #1557e61f}
.empty-plane .icon{width:30px;height:30px;transform:rotate(45deg)}
.empty h3{font-size:17px;letter-spacing:-.3px}
.empty p{max-width:380px;margin-top:6px;font-size:12.5px;line-height:1.7;color:var(--muted)}
.how{display:grid;grid-template-columns:repeat(3,minmax(0,150px));gap:10px;margin:22px 0 0;padding:0;list-style:none}
.how li{display:grid;justify-items:center;gap:6px;padding:12px 10px;border-radius:10px;background:#fff;border:1px solid var(--line);font-size:11.5px;color:var(--muted);line-height:1.4}
.how .icon{width:20px;height:20px;color:var(--brand)}
.how strong{color:var(--ink)}
.empty.no-results .how{display:none}

/* Fare card */
.fare{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden;transition:box-shadow .2s,border-color .2s}
.fare:hover{box-shadow:var(--shadow)}
.fare.is-added{border-color:#b9e3cb}
.fare-header{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;background:linear-gradient(180deg,#fbfcff,#f7f9fd);border-bottom:1px solid var(--line)}
.fare-identity{display:flex;align-items:center;gap:12px;min-width:0}
.fare-logos{display:grid;gap:4px}
.fare-names{min-width:0}
.fare-names h3{font-size:15px;line-height:1.3}
.fare-ref,.fare-pax{display:flex;align-items:center;gap:5px;font-size:11px}
.fare-ref{color:var(--brand);font-weight:700;letter-spacing:.6px}
.fare-ref .icon,.fare-pax .icon{width:13px;height:13px}
.fare-price{text-align:right;flex-shrink:0}
.fare-price small{display:block;font-size:11px}
.fare-price strong{display:block;font-size:20px;line-height:1.25;color:var(--green);letter-spacing:-.3px}
.airline-logo{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:60px;height:30px;padding:3px 5px;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.airline-logo img{max-width:100%;max-height:100%;object-fit:contain}
.airline-code{font-size:11px;font-weight:800;letter-spacing:.3px;color:var(--brand)}
.fare-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:0 18px;padding:12px 16px 4px}
.leg{border:0;padding:0;margin:0 0 10px;min-width:0}
.leg+.leg{position:relative}
.fare{container-type:inline-size}
@container (min-width:670px){.leg+.leg::before{content:'';position:absolute;left:-10px;top:4px;bottom:10px;border-left:1px dashed var(--line-2)}}
.fare-body .timeline{gap:10px}
.fare-body .tl-point strong{font-size:17px}
.leg legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0;margin-bottom:8px;font-size:12.5px;font-weight:700}
.leg legend .icon{width:16px;height:16px;color:var(--brand)}
.leg legend small{font-size:11.5px;font-weight:500}
.option{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;margin-bottom:8px;border:1px solid var(--line);border-radius:10px;cursor:pointer;font-weight:400;color:var(--ink);transition:border-color .15s,background .15s,box-shadow .15s}
.option:hover{border-color:#b8c9ea}
.option:has(input:checked){border-color:var(--brand);background:#f6f9ff;box-shadow:var(--ring)}
.option input{margin:16px 0 0;width:16px;height:16px}
.option-body{min-width:0}
.timeline{display:grid;grid-template-columns:auto minmax(80px,1fr) auto;align-items:center;gap:14px}
.tl-point{display:grid;line-height:1.15}
.tl-point strong{font-size:18px;font-weight:700;letter-spacing:-.3px}
.tl-point span{font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.6px}
.tl-end{text-align:right}
.day-shift{margin-left:2px;font-size:10px;font-weight:700;color:var(--amber)}
.tl-mid{display:grid;justify-items:center;gap:3px;min-width:0}
.tl-duration{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted)}
.tl-duration .icon{width:12px;height:12px}
.tl-track{position:relative;display:flex;align-items:center;justify-content:space-evenly;width:100%;height:12px}
.tl-track::before{content:'';position:absolute;left:0;right:12px;top:50%;border-top:2px dotted #b9c6dc}
.tl-stop{position:relative;width:9px;height:9px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 2px #fff}
.tl-plane{position:absolute;right:-3px;top:50%;width:15px;height:15px;color:var(--brand);transform:translateY(-50%) rotate(45deg)}
.stops-badge{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:1px 8px;border-radius:999px;font-size:10.5px;font-weight:600;background:var(--amber-50);color:var(--amber);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stops-badge.is-direct{background:var(--green-50);color:var(--green)}
.stops-badge .icon{width:12px;height:12px}
.facts{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.fact{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:7px;background:#f2f5fa;font-size:11px;color:var(--ink-2);line-height:1.4}
.fact .icon{width:13px;height:13px;color:var(--muted)}
.fact.is-muted{background:transparent;border:1px dashed var(--line-2);color:var(--muted)}
.option details{margin-top:7px;font-size:11.5px}
.option summary{display:inline-flex;align-items:center;gap:4px;list-style:none;cursor:pointer;color:var(--brand);font-weight:600;border-radius:4px}
.option summary::-webkit-details-marker{display:none}
.option summary .icon{width:14px;height:14px;transition:transform .2s}
details[open]>summary .icon{transform:rotate(180deg)}
.segment-list{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid var(--line)}
.segment-detail{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.segment-detail>div{display:grid;gap:2px;min-width:0}
.segment-detail strong{font-size:12px}
.segment-detail>div>span:not(.facts){font-size:11.5px;color:var(--muted)}
.segment-detail .facts{margin-top:3px}
.segment-connection{display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:11px;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--line)}
.segment-connection .icon{width:13px;height:13px}
.warning{display:flex;align-items:center;gap:6px;margin:7px 0;font-size:11.5px;color:var(--amber)}
.segment-connection.warning{color:var(--amber);background:var(--amber-50);margin:0}
.warning .icon{width:14px;height:14px}
.more-options{margin:-2px 0 6px;padding:5px 10px;font-size:11.5px;border-style:dashed;color:var(--brand)}
.more-options[aria-expanded=true] .icon{transform:rotate(180deg)}
.fare-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--line);background:#fbfcff}
.fare-state{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.leg-pills{display:flex;gap:4px}
.leg-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;background:#edf1f8;color:var(--muted);font-size:11px;font-weight:600;transition:background .2s,color .2s}
.leg-pill .icon{width:13px;height:13px}
.leg-pill.is-done{background:var(--green-50);color:var(--green)}
.fare-footer p{font-size:11.5px;color:var(--muted)}
.fare-footer .primary{white-space:nowrap}
#more{display:flex;margin:6px auto 12px}
/* Sort and filters */
#retry-load{margin-left:auto;flex-shrink:0;font-size:12px}
#retry-load .icon{width:14px;height:14px}
.filter-bar{display:grid;gap:8px;margin-bottom:10px}
.filter-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#toggle-filters{padding:7px 12px;font-size:12.5px}
#toggle-filters[aria-expanded=true]{background:var(--brand-50);border-color:var(--brand-100);color:var(--brand)}
#toggle-filters .icon{width:15px;height:15px}
#toggle-filters .count-badge{min-width:18px;height:18px;font-size:10.5px;padding:0 5px}
.sort-field{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted)}
.sort-field .icon{width:15px;height:15px}
.sort-field select{width:auto;padding:6px 28px 6px 10px;font-size:12.5px;font-weight:600;color:var(--ink)}
.filter-summary{margin-left:auto;font-size:12px;color:var(--muted)}
.filter-summary strong{color:var(--ink);font-size:13px}
#clear-filters .icon{width:13px;height:13px}
.filter-chips{display:flex;flex-wrap:wrap;gap:6px}
.filter-chips:empty{display:none}
.active-chip{gap:5px;padding:3px 6px 3px 10px;border-radius:999px;border-color:var(--brand-100);background:var(--brand-50);color:var(--brand);font-size:11.5px;font-weight:600}
.active-chip .icon{width:13px;height:13px}
.active-chip:hover:not(:disabled){background:#fff;border-color:var(--brand)}
.filter-panel{display:grid;gap:12px;margin-bottom:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,#fbfcff,#f6f8fd);animation:fold-in .18s ease-out}
.filter-general{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px 18px}
.filter-legs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 18px;padding-top:12px;border-top:1px dashed var(--line-2)}
.filter-leg{display:grid;gap:10px;align-content:start}
.filter-leg h4{display:flex;align-items:center;gap:6px;margin:0;font-size:13px}
.filter-leg h4 .icon{width:16px;height:16px;color:var(--brand)}
.filter-leg h4 small{font-weight:500}
.filter-group{display:grid;gap:7px;margin:0;padding:0;border:0;min-width:0}
.filter-group legend{display:flex;align-items:center;gap:6px;padding:0;margin-bottom:7px;font-size:11.5px;font-weight:700;color:var(--ink-2);text-transform:uppercase;letter-spacing:.5px}
.filter-group legend .icon{width:14px;height:14px;color:var(--muted)}
.chip-row{display:flex;flex-wrap:wrap;gap:6px}
.filter-chip{gap:6px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;color:var(--ink-2)}
.filter-chip .icon{width:14px;height:14px;color:var(--muted)}
.filter-chip small{font-size:10.5px;font-weight:500;color:var(--muted)}
.filter-chip .airline-logo{width:34px;height:18px;padding:1px 2px;border:0;border-radius:4px}
.filter-chip[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#fff}
.filter-chip[aria-pressed=true] .icon,.filter-chip[aria-pressed=true] small{color:#ffffffd0}
.filter-chip[aria-pressed=true]:hover:not(:disabled){background:var(--brand-600)}
.range-value{font-size:12.5px;font-weight:700;color:var(--ink)}
/* Two native range inputs over one track; the filled part sits between --from and --to (0–1). */
.dual-range,.single-range{position:relative;height:22px}
.dual-range::before,.single-range::before{content:'';position:absolute;left:8px;right:8px;top:50%;height:4px;margin-top:-2px;border-radius:2px;background:var(--line-2)}
.dual-range::after{content:'';position:absolute;top:50%;height:4px;margin-top:-2px;border-radius:2px;background:var(--brand);left:calc(8px + (100% - 16px) * var(--from,0));right:calc(8px + (100% - 16px) * (1 - var(--to,1)))}
.dual-range input,.single-range input{position:absolute;inset:0;width:100%;height:22px;margin:0;padding:0;border:0;background:transparent;pointer-events:none;-webkit-appearance:none;appearance:none;z-index:1}
.single-range input{pointer-events:auto}
.dual-range input:focus,.single-range input:focus{box-shadow:none}
.dual-range input::-webkit-slider-thumb,.single-range input::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--brand);box-shadow:0 1px 3px #0f1f3d33;pointer-events:auto;cursor:grab}
.dual-range input::-moz-range-thumb,.single-range input::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--brand);pointer-events:auto;cursor:grab}
.dual-range input:focus-visible::-webkit-slider-thumb,.single-range input:focus-visible::-webkit-slider-thumb{box-shadow:var(--ring)}
.single-range input::-webkit-slider-runnable-track{background:transparent}
.filter-none{font-size:12px;color:var(--muted)}
.no-match{display:grid;justify-items:center;gap:6px;padding:30px 18px;text-align:center;border:1px dashed #d4def0;border-radius:var(--radius);background:var(--surface-2)}
.no-match-icon{width:28px;height:28px;color:#9fb3d6}
.no-match h3{font-size:15px}
.no-match p{font-size:12.5px;color:var(--muted);margin-bottom:6px}

/* 2 · Selected */
.proposal-panel{display:flex;flex-direction:column;overflow:hidden}
.proposal-heading{padding:16px 18px 12px;border-bottom:1px solid var(--line)}
.proposal-heading h2{flex-wrap:nowrap;white-space:nowrap}
.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--brand);color:#fff;font-size:12px;font-weight:700}
.quiet-button{padding:6px 10px;font-size:12px;font-weight:500;color:var(--muted)}
.quiet-button:hover:not(:disabled){color:var(--red);background:var(--red-50);border-color:#f0c4bf}
.quiet-button .icon{width:14px;height:14px}
.proposal-scroll{flex:1;min-height:0;overflow:auto;padding:0 16px;scrollbar-width:thin;scrollbar-color:#c3d0e5 transparent}
.panel-description{display:flex;align-items:center;gap:6px;margin:12px 0 10px;font-size:12px;color:var(--muted)}
.panel-description .icon{width:14px;height:14px;color:var(--brand)}
.selected-empty{display:grid;justify-items:center;gap:4px;padding:26px 18px;text-align:center;background:var(--surface-2);border:1px dashed #d4def0;border-radius:var(--radius);color:var(--muted);font-size:12px}
.selected-empty .empty-icon{width:28px;height:28px;margin-bottom:4px;color:#9fb3d6}
.selected-empty strong{color:var(--ink-2);font-size:13px}
.selected-card{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:8px;background:#fff;overflow:hidden;transition:border-color .15s,box-shadow .15s,background .15s}
.selected-card:not(.is-current):hover{border-color:#b8c9ea;background:var(--surface-2)}
.selected-card.is-current{border-color:var(--brand);box-shadow:var(--ring)}
.selected-card-head{display:flex;align-items:center;gap:8px;padding:8px 6px 8px 12px}
.selected-card-head label{display:flex;align-items:center;gap:9px;flex:1;min-width:0;cursor:pointer;color:var(--ink)}
.selected-card-head input{flex-shrink:0}
.card-title{display:grid;min-width:0;line-height:1.3}
.card-title strong{font-size:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.card-title small{font-size:11px;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.stale-flag{width:15px;height:15px;color:var(--amber)}
.card-index{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;border-radius:6px;background:#edf1f8;color:var(--ink-2);font-size:11px;font-weight:700}
.is-current .card-index{background:var(--brand);color:#fff}
.card-price{display:grid;justify-items:end;flex-shrink:0;line-height:1.25}
.card-price strong{font-size:14px;color:var(--green);letter-spacing:-.2px}
.is-current .card-price strong{font-size:16px}
.markup-badge{font-size:10.5px;font-style:normal;font-weight:700;color:var(--brand)}
.fold-selected{width:28px;height:28px;padding:0;border:0;background:transparent;color:var(--muted);flex-shrink:0}
.fold-selected:hover:not(:disabled){background:var(--brand-50);color:var(--brand)}
.fold-selected .icon{transition:transform .2s}
.is-open .fold-selected .icon{transform:rotate(180deg)}
.remove-selected{width:28px;height:28px;padding:0;border:0;background:transparent;color:var(--muted);flex-shrink:0}
.remove-selected:hover:not(:disabled){background:var(--red-50);color:var(--red)}
.selected-card-body{padding:2px 12px 10px;border-top:1px solid var(--line);animation:fold-in .18s ease-out}
.selected-leg{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;align-items:center;padding:7px 0}
.selected-leg+.selected-leg{border-top:1px dashed var(--line)}
.selected-leg .airline-logo{width:56px;height:28px}
.selected-leg-info{min-width:0}
.selected-route{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:650}
.selected-route .icon{width:15px;height:15px;color:var(--brand)}
.selected-meta{font-size:11px;color:var(--muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.card-warning{display:flex;align-items:center;gap:6px;margin:2px 0 4px;padding:5px 8px;border-radius:7px;background:var(--amber-50);color:var(--amber);font-size:11px}
.card-warning .icon{width:13px;height:13px}
.offer-editor{margin-top:6px;padding:10px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}
.offer-controls{display:grid;grid-template-columns:92px minmax(0,1fr) 108px;gap:8px}
.offer-controls label{font-size:11.5px;color:var(--muted)}
.offer-controls input{height:38px;font-size:14px;font-weight:600}
#offer-currency{text-transform:uppercase}
.field-note{margin-top:8px;font-size:11.5px;color:var(--muted)}
.price-calc{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px}
.price-calc>span,.price-calc>strong{padding:2px 8px;border-radius:6px;font-size:11.5px}
.calc-base{background:#fff;border:1px solid var(--line);color:var(--ink-2)}
.calc-markup{background:var(--amber-50);color:var(--amber);font-weight:700}
.price-calc .calc-eq{padding:0;border:0;color:var(--muted)}
.price-calc strong{background:var(--green-50);color:var(--green)}
.calc-help{display:block}
.selected-card-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px}
.card-pax{display:inline-flex;align-items:center;gap:5px;min-width:0;font-size:11px;color:var(--muted)}
.card-pax .icon{width:13px;height:13px}
.selected-card-foot button{flex-shrink:0;padding:6px 10px;font-size:12px}
.selected-card-foot button .icon{width:14px;height:14px}

/* 3 · Notes */
.inline-section{border-top:1px solid var(--line)}
.inline-section .step-tile,.generate-area .step-tile{width:28px;height:28px;border-radius:9px}
.inline-section .step-tile .icon,.generate-area .step-tile .icon{width:15px;height:15px}
.notes-section>summary{display:flex;align-items:center;gap:10px;padding:12px 0;cursor:pointer;list-style:none;border-radius:8px}
.notes-section>summary::-webkit-details-marker{display:none}
.notes-heading{display:grid;flex:1;min-width:0;font-size:15px;font-weight:650;letter-spacing:-.3px;line-height:1.3}
.notes-heading small{font-size:11.5px;font-weight:400;letter-spacing:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.notes-section.has-notes .notes-heading small{color:var(--ink-2);font-style:italic}
.notes-section .chevron{color:var(--muted);transition:transform .2s}
.notes-section[open] .chevron{transform:rotate(180deg)}
.notes-section textarea{margin-bottom:12px;min-height:70px;font-size:13px}
#workspace-status{margin:0 0 10px;font-size:11.5px;color:var(--ink-2)}
#workspace-status:empty{display:none}
#workspace-status.error{color:var(--red)}

/* 5 · Generate */
.generate-area{flex-shrink:0;padding:14px 16px 12px;border-top:1px solid var(--line);background:linear-gradient(180deg,#fff,#f9fbff);border-radius:0 0 16px 16px}
.generate-area h2{font-size:15px}
.generate-area .text-button .icon{width:15px;height:15px}
.generate-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.generate-buttons button{justify-content:flex-start;gap:10px;padding:10px 14px;min-height:56px;text-align:left}
.generate-buttons .icon{width:22px;height:22px}
.generate-buttons button:not(.primary) .icon{color:var(--brand)}
.generate-buttons span{display:grid;font-size:13.5px}
.generate-buttons small{font-size:11px;font-weight:400;color:var(--muted)}
.generate-buttons .primary small{color:#ffffffc7}
.workspace-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}
.workspace-tools .icon{width:14px;height:14px}
.workspace-tools>span{font-size:11px;color:var(--muted);white-space:nowrap}

.app-footer{display:flex;justify-content:space-between;gap:12px;padding:0 20px 10px;font-size:11px;color:var(--muted)}
.app-footer span{display:inline-flex;align-items:center;gap:5px}
.app-footer .icon{width:13px;height:13px}

/* Dialogs */
dialog{width:min(1030px,calc(100vw - 28px));max-height:92dvh;padding:0;border:1px solid var(--line);border-radius:18px;color:var(--ink);box-shadow:var(--shadow-lg)}
dialog[open]{display:flex;flex-direction:column}
dialog::backdrop{background:#0f1f3d73;backdrop-filter:blur(3px)}
.dialog-head,.dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 22px;background:#fff}
.dialog-head{border-bottom:1px solid var(--line)}
.dialog-title{display:flex;align-items:center;gap:12px}
.dialog-title h2{font-size:19px;letter-spacing:-.3px}
.eyebrow{margin-bottom:2px;font-size:10.5px;font-weight:700;letter-spacing:1.6px;color:var(--brand)}
.dialog-body,#preview-content{flex:1;min-height:0;overflow:auto}
.dialog-body{padding:22px;background:var(--bg)}
.dialog-foot{position:sticky;bottom:0;z-index:2;justify-content:flex-end;border-top:1px solid var(--line)}
.foot-hint{display:inline-flex;align-items:center;gap:6px;margin-right:auto;font-size:12px;color:var(--muted)}
.document-settings{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.label-text{display:inline-flex;align-items:center;gap:6px}
.label-text .icon{width:15px;height:15px;color:var(--brand)}
#document-status{margin:14px 2px;font-size:12.5px;color:var(--muted)}
#document-status.error{color:var(--red)}
.edit-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin:12px 0;overflow:hidden}
.edit-item>summary{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;list-style:none;font-weight:650}
.edit-item>summary::-webkit-details-marker{display:none}
.edit-item>summary:hover{background:var(--surface-2)}
.edit-item>summary .chevron{color:var(--muted);transition:transform .2s;transform:rotate(-90deg)}
.edit-item[open]>summary .chevron{transform:none}
.edit-title{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.edit-price{color:var(--green);font-size:13px}
.item-editor{padding:0 16px 18px;border-top:1px solid var(--line)}
.single-choice{display:flex;align-items:center;gap:8px;margin-top:14px;padding:10px 12px;border-radius:10px;background:var(--brand-50);color:var(--brand)}
.editor-heading{display:flex;align-items:center;gap:7px;margin:18px 0 4px;font-size:13px;font-weight:700}
.editor-heading .icon{width:16px;height:16px;color:var(--brand)}
.item-editor>label{margin-top:10px}
.item-editor .option-meta{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11.5px;color:var(--muted)}
.item-editor .option-meta .icon{width:13px;height:13px}
.edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:10px 0}
.edit-grid.two{grid-template-columns:1fr 1fr}
.segment-editor{margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}
.segment-editor h3{display:flex;align-items:center;gap:10px;font-size:13px}
.segment-editor .airline-logo{width:48px;height:24px}
.item-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.item-actions .icon{width:15px;height:15px}
.project-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:20px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.project-tools small{display:flex;align-items:center;gap:6px;flex-basis:100%}
.file-button{position:relative;display:inline-flex;grid-auto-flow:column;color:var(--ink);font-size:13px}
.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;padding:0}
.file-button:focus-within{border-color:var(--brand);box-shadow:var(--ring)}
#preview-content{padding:22px;background:#dfe5ee}

/* Document sheet (preview and print) */
.document-sheet{max-width:860px;margin:auto;padding:40px;background:#fff;color:var(--ink);font-size:13px;box-shadow:0 4px 24px #0f1f3d1f;overflow-wrap:anywhere}
.document-brand{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-bottom:16px;margin-bottom:22px;border-bottom:3px solid var(--brand)}
.document-brand img{width:150px;height:auto}
.doc-kind{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:1.6px;color:var(--brand)}
.document-sheet h1{font-size:27px;letter-spacing:-.6px;margin-bottom:10px}
.doc-meta-row{display:flex;flex-wrap:wrap;gap:4px 18px}
.doc-meta{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2)}
.doc-meta .icon{width:14px;height:14px;color:var(--brand)}
.print-itinerary{margin-top:24px;padding:18px 20px;border:1px solid var(--line);border-radius:14px}
.doc-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.doc-item-head h2{font-size:21px;letter-spacing:-.4px;margin-bottom:2px}
.doc-price-box{flex-shrink:0;text-align:right;padding:8px 14px;border-radius:10px;background:var(--green-50)}
.doc-price{font-size:20px;font-weight:700;color:var(--green)}
.doc-leg{margin-top:16px}
.doc-leg h3{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:8px;color:var(--ink)}
.doc-leg h3 .icon{width:17px;height:17px;color:var(--brand)}
.doc-segment{display:grid;grid-template-columns:62px minmax(0,1fr) 26px minmax(0,1fr);align-items:center;gap:6px 12px;margin:6px 0;padding:12px 14px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}
.doc-point strong{display:block;font-size:13.5px}
.doc-point p{font-size:12px;color:var(--ink-2)}
.doc-arrow{display:flex;justify-content:center;color:var(--brand)}
.doc-arrow .icon{transform:rotate(45deg)}
.doc-segment .segment-extra{grid-column:1/-1;font-size:11.5px;color:var(--muted);padding-top:6px;border-top:1px dashed var(--line-2)}
.doc-connection{display:flex;align-items:center;gap:6px;margin:4px 0 4px 14px;font-size:11.5px;color:var(--muted)}
.doc-connection .icon{width:13px;height:13px}
.doc-notes{white-space:pre-wrap;font-size:12.5px;margin-top:14px;padding:8px 12px;border-left:3px solid var(--brand);background:var(--brand-50);border-radius:0 8px 8px 0}
.print-itinerary>.option-meta{margin-top:12px;font-size:11px;color:var(--muted)}
.doc-disclaimer{font-size:10.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin-top:26px}
#print-output{display:none}

/* Responsive */
@media (min-width:861px){
  .proposal-scroll{display:flex;flex-direction:column}
  .selected-section{display:flex;flex-direction:column;flex:1 1 0;min-height:170px;overflow:hidden}
  .selected-section>.panel-description,.inline-section,#workspace-status{flex-shrink:0}
  .selected-section{min-height:220px}
  #selected-list{flex:1;min-height:0;overflow:auto;margin-right:-6px;padding:3px 6px 2px 3px;margin-left:-3px;scrollbar-width:thin;scrollbar-color:#c3d0e5 transparent}
}
@media (max-width:1240px){.flow li span{display:none}.flow li{padding:6px 9px}}
@media (max-width:1100px){.flow{display:none}.settings-button{margin-left:auto}}
@media (max-width:1100px) and (min-width:861px){
  .desktop-workspace{grid-template-columns:minmax(0,1.15fr) minmax(350px,1fr);gap:12px;padding:12px}
  .search-panel{padding:16px}
  .route-fields{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr)}
  .route-fields>label:nth-child(4){grid-column:1}.route-fields>label:nth-child(5){grid-column:3}
  .connection-label{display:none}
  .product p{display:none}
  .offer-controls{grid-template-columns:84px minmax(0,1fr) 100px;gap:8px}
  .how{grid-template-columns:1fr;max-width:220px}
  .timeline{gap:10px}
}
@media (max-height:760px) and (min-width:861px){
  .topbar{height:56px}.search-panel{padding:14px 18px}.trip-options{margin:10px 0 8px}.field input,#search-button,#cancel{height:40px}
  .search-bottom{margin-top:10px}.results-main{margin-top:12px;padding-top:10px}.status-line{margin:6px 0 8px}
  .proposal-heading{padding:12px 16px 10px}.notes-section>summary{padding:9px 0}.generate-area{padding:10px 16px 8px}.generate-buttons{margin-top:8px}.generate-buttons button{min-height:48px;padding:8px 12px}.workspace-tools{margin-top:6px}
  .empty{min-height:200px}.how{margin-top:14px}
}
@media (max-width:860px){
  body{display:block;height:auto;overflow:auto}
  .topbar{height:60px;padding:0 16px;gap:14px}
  .brand img{width:112px}
  .product{padding-left:14px}.product h1{font-size:14px}.product p{display:none}
  .desktop-workspace{grid-template-columns:1fr;padding:12px;gap:12px}
  .search-panel{padding:16px}
  .results-main{min-height:320px}
  .results-scroll{max-height:680px}
  .proposal-panel,.proposal-scroll{overflow:visible}
  .app-footer{padding:4px 16px 16px;flex-wrap:wrap}
}
@media (max-width:640px){
  .route-fields{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:8px}
  .route-fields>label:nth-child(4){grid-column:1}.route-fields>label:nth-child(5){grid-column:3}
  .search-bottom>.people{width:100%}
  .people .pax{flex:1}
  .stepper{justify-content:space-between}
  .stepper button{width:36px}
  .search-actions{width:100%}.search-actions button{flex:1}
  .search-summary{flex-direction:column;align-items:stretch}.summary-place small{display:none}
  .connection-label{display:none}
  .how{grid-template-columns:1fr;width:100%;max-width:260px}
  .fare-header{flex-wrap:wrap}
  .fare-logos .airline-logo+.airline-logo{display:none}
  .fare-footer{flex-wrap:wrap}.fare-footer .primary{width:100%}
  .timeline{gap:8px}.tl-point strong{font-size:16px}
  .offer-controls{grid-template-columns:84px minmax(0,1fr) 96px;gap:8px}
  .generate-buttons small{display:none}
  .document-settings,.edit-grid,.edit-grid.two{grid-template-columns:1fr}
  .document-sheet{padding:20px}
  .doc-segment{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)}.doc-segment>.airline-logo{grid-column:1/-1}
  .doc-item-head{flex-direction:column}.doc-price-box{text-align:left}
  .dialog-body{padding:14px}
  .foot-hint{display:none}
}
@media (max-width:420px){
  .topbar{gap:10px;padding:0 12px}
  .brand img{width:96px}
  .product{padding-left:10px}.product h1{font-size:12px;line-height:1.3}
  .settings-button{padding:8px;font-size:12px}
  .card-pax{display:none}
  .proposal-heading h2{font-size:15px;gap:8px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
