
:root{
  --ink:#0b1f3a;
  --ink-soft:#62728a;
  --paper:#ffffff;
  --bg:#f5f7fb;
  --line:#dfe5ee;
  --sky:#2e6ff2;
  --amber:#e8763c;
  --green:#1f9d6c;
  --red:#d64545;
  --shadow:0 14px 40px rgba(11,31,58,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:Inter,Arial,sans-serif;
  font-size:15px;
  line-height:1.5;
}
button,input,select{font:inherit}
button{cursor:pointer}
.wrap{width:min(1120px,calc(100% - 36px));margin:auto}
header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(10px);
}
nav{
  min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.logo{
  display:flex;align-items:center;gap:9px;
  font-family:Fraunces,Georgia,serif;font-size:25px;font-weight:700;
}
.logo svg{width:31px;height:31px}
.nav-right{display:flex;align-items:center;gap:12px}
.mono{font-family:"IBM Plex Mono",monospace}
.login-btn,.dark-toggle{
  border:1px solid var(--line);background:var(--paper);color:var(--ink);
  border-radius:10px;min-height:42px;padding:0 13px;display:inline-flex;align-items:center;gap:8px;
}
.login-btn svg,.dark-toggle svg{width:21px;height:21px}
.login-btn:hover,.dark-toggle:hover{border-color:#b7c3d4}
.stepper{background:#fff;border-top:1px solid #f0f2f6}
.stepper .wrap{display:flex;align-items:center;justify-content:center;padding:13px 0}
.step{display:flex;align-items:center;gap:7px;color:#8995a8;font-size:12px;font-weight:600;white-space:nowrap}
.step .circ{
  width:27px;height:27px;border-radius:50%;display:grid;place-items:center;
  border:1px solid #ccd5e1;background:#fff;font-size:12px;
}
.step.active,.step.done{color:var(--sky)}
.step.active .circ,.step.done .circ{background:var(--sky);border-color:var(--sky);color:#fff}
.step-line{height:1px;width:60px;background:#d9e0ea;margin:0 12px}
.view{display:none;min-height:calc(100vh - 126px);padding:54px 0}
.view.active{display:block}
.hero-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:60px;align-items:center;padding-top:35px}
.eyebrow,.tag{
  font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.05em;
  color:var(--ink-soft);text-transform:uppercase
}
h1,h2,h3{font-family:Fraunces,Georgia,serif;color:var(--ink)}
h1{font-size:64px;line-height:.98;margin:18px 0}
h1 em{color:var(--amber)}
h2{font-size:34px;margin:0}
h3{font-size:22px;margin:0 0 18px}
.lead{font-size:17px;color:var(--ink-soft);max-width:570px}
.trust-row{display:flex;gap:30px;margin-top:34px;flex-wrap:wrap}
.trust-item{display:flex;flex-direction:column}
.trust-item .num{font-size:22px;font-weight:700}
.trust-item .lbl{font-size:12px;color:var(--ink-soft)}
.pass{
  background:#fff;border-radius:22px;box-shadow:var(--shadow);
  border:1px solid var(--line);overflow:hidden
}
.pass-top{background:var(--ink);color:#fff;padding:22px 25px;display:flex;justify-content:space-between}
.pass-top .tag{color:#afc4ee}
.route{font-family:Fraunces,Georgia,serif;font-size:31px;margin-top:8px}
.mode-icon{width:25px;height:25px;vertical-align:-4px;margin:0 7px}
.mode-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}
.mode-tab{
  border:0;background:#fff;padding:14px 8px;color:var(--ink-soft);
  display:flex;align-items:center;justify-content:center;gap:7px;border-bottom:3px solid transparent
}
.mode-tab svg{width:19px;height:19px}
.mode-tab.active{color:var(--sky);border-bottom-color:var(--sky);font-weight:700}
.pass-body{padding:24px}
.intl-row{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:18px;color:var(--ink-soft)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:15px}
.field label,.in label{display:block;font-size:12px;font-weight:700;color:var(--ink-soft);margin-bottom:6px}
.field select,.field input,.in input,.promo-row input{
  width:100%;height:46px;border:1px solid var(--line);border-radius:9px;
  padding:0 12px;background:#fff;color:var(--ink);outline:none
}
.field select:focus,.field input:focus,.in input:focus,.promo-row input:focus{border-color:var(--sky);box-shadow:0 0 0 3px rgba(46,111,242,.10)}
.search-btn,.continue-btn,.pay-btn,.new-search{
  width:100%;height:48px;border:0;border-radius:10px;background:var(--sky);color:#fff;font-weight:700
}
.search-btn:hover,.continue-btn:hover,.pay-btn:hover,.new-search:hover{filter:brightness(.96)}
.results-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:22px}
.back-link{color:var(--sky);font-weight:700;font-size:13px;margin-bottom:17px;cursor:pointer}
#flightList{display:grid;gap:14px}
.trip-card{
  background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;
  display:grid;grid-template-columns:1fr auto;gap:18px;box-shadow:0 5px 20px rgba(11,31,58,.04)
}
.trip-main{display:grid;grid-template-columns:120px 1fr 130px;gap:18px;align-items:center}
.trip-air{font-weight:700}.trip-time{font-size:22px;font-weight:700}.trip-route{color:var(--ink-soft);font-size:12px}
.score{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#eaf8f2;color:var(--green);padding:5px 8px;font-weight:700;font-size:12px}
.trip-price{text-align:right}.trip-price strong{display:block;font-size:22px}.trip-price small{color:var(--ink-soft)}
.select-trip{margin-top:10px;width:120px;height:38px;border:0;border-radius:8px;background:var(--ink);color:#fff;font-weight:700}
.results-foot{color:var(--ink-soft);font-size:12px;margin-top:18px}
.seat-layout,.pay-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:25px;align-items:start}
.plane-body{
  background:#fff;border:1px solid var(--line);border-radius:28px;padding:28px;
  box-shadow:var(--shadow);min-height:530px
}
.cockpit{width:130px;height:48px;border-radius:60px 60px 10px 10px;background:var(--ink);margin:0 auto 25px}
.seat-grid{display:grid;grid-template-columns:repeat(6,44px);justify-content:center;gap:10px 14px}
.seat{
  width:44px;height:38px;border:1px solid #cbd5e2;border-radius:8px;background:#fff;color:var(--ink);
  font-size:11px
}
.seat.taken{background:var(--line);color:#8995a8;cursor:not-allowed}
.seat.selected{background:var(--sky);border-color:var(--sky);color:#fff}
.seat.premium{border-color:var(--amber)}
.legend{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:28px;color:var(--ink-soft);font-size:11px}
.legend span{display:flex;align-items:center;gap:5px}.legend i{width:13px;height:13px;border-radius:3px;display:inline-block}
.summary-card,.pay-card{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:23px;box-shadow:var(--shadow)
}
.summary-card{position:sticky;top:145px}
.sum-row{display:flex;justify-content:space-between;gap:15px;margin:13px 0;font-size:14px}
.sum-row span:first-child{color:var(--ink-soft)}
.sum-total{border-top:1px solid var(--line);padding-top:16px;margin-top:16px;display:flex;justify-content:space-between;font-weight:800;font-size:19px}
.continue-btn{margin-top:18px}
.offer-strip{background:#eef4ff;color:#244e9c;border:1px solid #d4e1fb;border-radius:10px;padding:11px 14px;margin-bottom:18px;font-size:12px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.form-grid.full{grid-template-columns:1fr}
.pay-methods{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:17px}
.pay-tab{height:44px;border:1px solid var(--line);background:#fff;border-radius:9px;color:var(--ink-soft)}
.pay-tab.active{border-color:var(--sky);color:var(--sky);font-weight:700;background:#f3f7ff}
.pay-tab svg{width:18px;height:18px;vertical-align:middle;margin-right:5px}
.card-visual{height:175px;border-radius:18px;background:linear-gradient(135deg,#0b1f3a,#244c84);color:#fff;padding:20px;margin-bottom:18px}
.crow{display:flex;justify-content:space-between;font-size:11px;opacity:.9}.cnum{font-family:"IBM Plex Mono",monospace;font-size:19px;letter-spacing:2px;margin:47px 0 18px}
.qr-pay-box{text-align:center}.qr-box{width:130px;height:130px;margin:10px auto;background:#fff;display:grid;place-items:center}
.qr-hint{font-size:11px;color:var(--ink-soft)}.or-divider{border-top:1px solid var(--line);margin:20px 0;padding-top:10px;color:var(--ink-soft);font-size:12px}
.promo-row{display:grid;grid-template-columns:1fr 85px;gap:7px;margin-top:17px}.promo-row button{border:1px solid var(--line);background:#fff;border-radius:8px;font-weight:700}
.promo-msg{font-size:12px;margin-top:7px;color:var(--green);min-height:18px}
.confirm-wrap{max-width:850px;margin:auto;text-align:center}
.check-circle{width:70px;height:70px;border-radius:50%;background:#eaf8f2;display:grid;place-items:center;margin:0 auto 15px}
.eticket{background:var(--ink);color:#fff;border-radius:18px;overflow:hidden;text-align:left;margin:30px 0;box-shadow:var(--shadow)}
.et-flex{display:grid;grid-template-columns:1fr 190px}
.et-main{padding:25px}.et-stub{padding:25px;border-left:1px dashed #6d82a2;background:#102c50}
.et-top{display:flex;justify-content:space-between;gap:15px}.et-body{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0}
.et-field .l{font-size:10px;color:#afc4ee;text-transform:uppercase}.et-field .v{font-weight:700;margin-top:3px}
.et-fare{border-top:1px solid #28466d;padding-top:10px}.et-fare .sum-row span:first-child{color:#afc4ee}
.track-mini{height:25px;margin-top:12px;border-top:1px solid #28466d;position:relative}.track-plane{width:24px;position:absolute;right:20%;top:-12px}
.stub-label{font-size:10px;color:#afc4ee;margin-bottom:22px}.stub-pnr{text-align:center;margin-top:10px}
.barcode{padding:13px 25px 20px;border-top:1px dashed #6d82a2;text-align:center}.barcode-bars{height:34px;background:repeating-linear-gradient(90deg,#fff 0 2px,transparent 2px 5px);border-radius:2px}.barcode-num{font-size:10px;margin-top:5px}
.new-search{width:230px}
footer{text-align:center;padding:25px;color:var(--ink-soft);font-size:12px;border-top:1px solid var(--line);background:#fff}
.modal-overlay{position:fixed;inset:0;background:rgba(11,31,58,.65);display:none;align-items:center;justify-content:center;padding:18px;z-index:200}
.modal-overlay.open{display:flex}.modal{width:min(440px,100%);background:#fff;border-radius:16px;padding:25px;position:relative;box-shadow:0 25px 70px rgba(0,0,0,.25)}
.modal-close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:27px;color:var(--ink-soft)}
.modal-sub{color:var(--ink-soft);font-size:13px}
.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:11px 17px;border-radius:9px;display:none;z-index:300}
.toast.show{display:block}
.details-modal{max-height:85vh;overflow:auto}
body.dark{--paper:#101c2d;--bg:#07111e;--ink:#edf3ff;--ink-soft:#a8b6ca;--line:#26364d}
body.dark header,body.dark .stepper,body.dark footer{background:#0c1726}
body.dark .pass,body.dark .trip-card,body.dark .plane-body,body.dark .summary-card,body.dark .pay-card,body.dark .modal,body.dark .mode-tab,body.dark .field select,body.dark .field input,body.dark .in input,body.dark .promo-row input,body.dark .seat,body.dark .login-btn,body.dark .dark-toggle{background:var(--paper);color:var(--ink)}
body.dark .mode-tab{border-bottom-color:transparent}
body.dark .mode-tab.active{border-bottom-color:var(--sky)}
body.dark .card-visual{background:linear-gradient(135deg,#07111e,#17365d)}
@media(max-width:850px){
  .hero-grid,.seat-layout,.pay-layout{grid-template-columns:1fr}
  .hero-grid{gap:30px}
  h1{font-size:48px}
  .summary-card{position:static}
  .trip-main{grid-template-columns:1fr 1fr}
  .trip-price{grid-column:1/3;text-align:left}
  .select-trip{width:100%}
}
@media(max-width:600px){
  .wrap{width:min(100% - 24px,1120px)}
  .nav-credit{display:none}
  .step-line{width:15px;margin:0 5px}
  .step{font-size:9px;gap:3px}.step .circ{width:23px;height:23px}
  .view{padding:30px 0}
  .field-row,.form-grid{grid-template-columns:1fr}
  .seat-grid{grid-template-columns:repeat(4,40px)}.seat{width:40px}
  .et-flex{grid-template-columns:1fr}.et-stub{border-left:0;border-top:1px dashed #6d82a2}
  .et-body{grid-template-columns:1fr}
  .new-search{width:100%}
}
