:root{--navy:#33402a;--navy2:#3e4d32;--blue:#6aa84f;--blue2:#86c265;--ink:#1f2417;--mut:#6a7360;--line:#e0e7d5;--bg:#fff;--soft:#f3f7ec;--green:#2e7d32;--greenbg:#e6f3df;--red:#d23f57;--rad:12px}
*{box-sizing:border-box}
body{margin:0;font:15px/1.55 -apple-system,Segoe UI,Roboto,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}
a{cursor:pointer;color:inherit;text-decoration:none}.hidden{display:none!important}.muted{color:var(--mut)}
.err{color:var(--red);margin-top:10px;font-size:13px;min-height:16px}
h1,h2,h3{margin:0}h2{font-size:25px;font-weight:800;letter-spacing:-.4px}
button{cursor:pointer;border:none;border-radius:24px;font:inherit;font-weight:700;padding:11px 18px;color:#fff;background:var(--soft);transition:.15s}
button:hover{filter:brightness(.97)}
.primary{background:var(--blue)}.primary:hover{background:#5a9342;filter:none}
.ghost{background:#fff;color:var(--ink);border:1px solid var(--line);font-weight:600}
.danger{background:var(--red)}.warn{background:#b8860b}.big{width:100%;padding:13px;font-size:16px}

/* nav */
.nav{position:sticky;top:0;z-index:60;background:var(--navy)}
.nav-in{max-width:1180px;margin:0 auto;padding:14px 22px;display:flex;align-items:center;gap:18px}
.logo{font-size:21px;font-weight:800;color:#fff}
.nav-right{margin-left:auto;display:flex;gap:10px;align-items:center}
.nav-right .ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35)}
.nav-right .ghost:hover{background:rgba(255,255,255,.12)}
.uchip{color:#d7e6c3;font-size:14px}

/* hero */
.hero{background:linear-gradient(180deg,var(--navy),#3c4d2f);color:#fff;padding:10px 22px 70px}
.hero-in{max-width:1180px;margin:0 auto}
.pills{display:flex;gap:10px;margin:10px 0 24px;flex-wrap:wrap}
.pill{background:rgba(255,255,255,.12);color:#fff;border-radius:24px;padding:9px 18px;font-size:14px;font-weight:600}
.pill.active{background:var(--blue)}.ghostpill{opacity:.55;cursor:default}
.hero h1{font-size:40px;font-weight:800;line-height:1.1;letter-spacing:-1px;margin-bottom:24px}

/* search card */
.searchcard{background:transparent}
.trip-toggle{display:inline-flex;background:rgba(255,255,255,.14);border-radius:24px;padding:4px;margin-bottom:14px}
.tt{background:transparent;color:#fff;padding:8px 20px;font-size:14px;border-radius:22px;font-weight:700}
.tt.active{background:#fff;color:var(--navy)}
.searchbar{display:grid;grid-template-columns:1.5fr 44px 1.5fr 1fr 1fr 1.2fr auto;gap:8px;background:#fff;border-radius:12px;padding:8px;align-items:stretch}
.seg{position:relative;background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 13px;display:flex;flex-direction:column;justify-content:center;min-width:0;cursor:text}
.seg label{font-size:11px;font-weight:700;color:var(--mut);margin-bottom:2px;text-transform:uppercase;letter-spacing:.3px}
.seg input,.seg select,.travrow input,.travrow select{border:none;outline:none;background:transparent;color:var(--ink);font-size:15px;font-weight:700;padding:0;width:100%}
.seg input::placeholder{color:#9aa1b0;font-weight:500}
.seg:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(106,168,79,.14)}
.trav .travrow{display:flex;gap:8px;align-items:center}.travrow input{width:30px;font-weight:700}.travrow select{font-weight:600;font-size:13px}
.swap{align-self:center;justify-self:center;width:40px;height:40px;padding:0;border-radius:50%;background:#fff;border:1px solid var(--line);color:var(--blue);font-size:17px;box-shadow:0 1px 4px rgba(0,0,0,.1)}
.swap:hover{background:var(--soft);filter:none}
.search{align-self:stretch;border-radius:9px;padding:0 28px;font-size:16px;min-height:58px}
.checkrow{display:flex;gap:20px;align-items:center;margin-top:14px;flex-wrap:wrap;color:#fff}
.chk{display:flex;gap:8px;align-items:center;font-size:14px;cursor:pointer;font-weight:600}
.chk input{width:17px;height:17px;accent-color:var(--blue)}
.seg2{display:flex;gap:7px;align-items:center;font-size:13px;color:#d7e6c3}
.seg2 select{background:rgba(255,255,255,.16);color:#fff;border:none;border-radius:8px;padding:7px 9px;font-size:13px;font-weight:700}
.seg2 select option{color:#111}

/* autocomplete */
.ac .dropdown{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px rgba(5,32,60,.28);z-index:200;overflow:hidden;max-height:340px;overflow-y:auto;min-width:320px;width:max-content;max-width:380px}
.opt{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--soft)}
.opt:last-child{border-bottom:none}.opt.active,.opt:hover{background:#eef6e6}
.opt .pin{opacity:.7}.opt .txt{flex:1;min-width:0}.opt .city{font-weight:700;font-size:14px;color:var(--ink)}
.opt .nm{font-size:12px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opt .code{font-size:12px;font-weight:800;color:var(--blue);background:#e9f3df;padding:3px 8px;border-radius:6px}
.opt .none{color:var(--mut);font-style:italic}

/* results */
.results{max-width:1000px;margin:34px auto;padding:0 22px}
.res-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.rtabs{display:flex;gap:8px;margin:6px 0 16px;flex-wrap:wrap}
.rtab{background:#fff;color:var(--mut);border:1px solid var(--line);padding:9px 16px;font-size:14px;border-radius:24px;font-weight:700}
.rtab.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.fcard{display:grid;grid-template-columns:72px 1fr auto auto auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:14px 18px;margin-bottom:10px;box-shadow:0 1px 3px rgba(5,32,60,.05)}
.airwrap{display:flex;align-items:center;justify-content:center}
.airwrap .logo{max-width:62px;max-height:36px;object-fit:contain}
.air{width:46px;height:46px;border-radius:10px;background:var(--soft);display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--blue)}
.times{font-size:17px;font-weight:800}.route2{color:var(--mut);font-size:13px;margin-top:2px}
.meta{text-align:center;color:var(--mut);font-size:13px}
.fprice{font-size:22px;font-weight:800;text-align:right;color:var(--ink);white-space:nowrap}
.mini{padding:9px 15px;font-size:13px;border-radius:20px}.alertbtn{white-space:nowrap;background:#fff;color:var(--blue);border:1px solid var(--blue)}.alertbtn:hover{background:#eef6e6;filter:none}
.skeleton{height:74px;border-radius:var(--rad);background:linear-gradient(90deg,#f3f5f8,#e9edf3,#f3f5f8);background-size:200% 100%;animation:sh 1.2s infinite;margin-bottom:10px}
@keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}
.empty{background:var(--soft);border:1px dashed var(--line);border-radius:var(--rad);padding:40px;text-align:center;color:var(--mut)}
.gtip{padding:4px 2px 12px;color:var(--mut)}
.graph{display:flex;align-items:flex-end;gap:6px;overflow-x:auto;padding:10px 2px 28px;min-height:190px}
.bar{flex:0 0 40px;background:var(--blue);border-radius:6px 6px 0 0;display:flex;flex-direction:column;align-items:center;cursor:pointer;position:relative;padding-top:5px}
.bar:hover{filter:brightness(.92)}.bar.low{background:var(--green)}
.bar .bp{font-size:10px;font-weight:800;color:#fff;writing-mode:vertical-rl;transform:rotate(180deg)}
.bar .bd{position:absolute;bottom:-21px;font-size:10px;color:var(--mut);white-space:nowrap}
.cheaprow{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:13px 16px;margin-bottom:8px;cursor:pointer}
.cheaprow:hover{border-color:var(--blue)}.cheaprow.low{border-color:var(--green);background:var(--greenbg)}
.hit{color:var(--green)}.miss{color:var(--ink)}

/* feature cards (below hero, clean) */
.feature-cards{max-width:1180px;margin:40px auto;padding:0 22px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.fcard2{background:var(--navy);color:#fff;border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:4px;box-shadow:0 6px 20px rgba(5,32,60,.14)}
.fcard2:hover{background:var(--navy2);transform:translateY(-2px)}.fcard2 .fi{font-size:24px}.fcard2 b{font-size:15px}.fcard2 small{color:#cdddb6}

/* trending */
.trending,.how,.dash{max-width:1180px;margin:54px auto;padding:0 22px}
.trending p{margin:6px 0 18px}
.dest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.dest{position:relative;border-radius:16px;overflow:hidden;cursor:pointer;aspect-ratio:4/3;border:1px solid var(--line);background:var(--soft)}
.dest img{width:100%;height:100%;object-fit:cover;transition:.4s}
.dest:hover img{transform:scale(1.06)}
.dest .cap{position:absolute;left:0;right:0;bottom:0;padding:14px;background:linear-gradient(transparent,rgba(0,0,0,.78))}
.dest .cn{font-size:18px;font-weight:800;color:#fff}.dest .cc{font-size:13px;color:#eef3e4}
.dest .code{position:absolute;top:10px;right:10px;background:var(--blue);color:#fff;font-size:12px;font-weight:800;padding:3px 9px;border-radius:6px}

/* events */
.events{position:relative;max-width:1180px;margin:54px auto;padding:0 22px}
.events-bg{position:absolute;inset:0 22px;background:var(--navy);background-size:cover;background-position:center;border-radius:18px}
.events-overlay{position:absolute;inset:0 22px;border-radius:18px;background:linear-gradient(90deg,rgba(5,32,60,.88),rgba(5,32,60,.3))}
.events-text{position:relative;padding:54px 40px;color:#fff;max-width:560px}
.events-text h2{font-size:32px}.events-text p{margin:10px 0 18px;color:#eef3e4}

/* faq */
.how h2{margin-bottom:18px}
.faq{display:grid;grid-template-columns:1fr 1fr;gap:0 44px}
.qa{border-bottom:1px solid var(--line);padding:16px 0}
.qa summary{font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";color:var(--blue);font-size:20px;font-weight:700}.qa[open] summary::after{content:"−"}
.qa div{color:var(--mut);margin-top:10px;font-size:14px}

/* footer */
.site-footer{background:var(--navy);color:#fff;margin-top:54px}
.foot-in{max-width:1180px;margin:0 auto;padding:42px 22px;display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.foot-brand{font-size:20px;font-weight:800}.foot-brand .muted{color:#aebf95;font-size:13px;font-weight:400;margin-top:6px}
.foot-cols{display:flex;gap:54px;flex-wrap:wrap}
.foot-cols b{display:block;margin-bottom:10px;font-size:14px}
.foot-cols a{display:block;color:#cdddb6;font-size:14px;padding:4px 0}.foot-cols a:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);text-align:center;padding:18px;color:#aebf95;font-size:13px}

/* dashboard */
.dash-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:12px}
.dash-actions{display:flex;gap:8px}
.wcard{display:grid;grid-template-columns:1.4fr 1fr auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:16px 18px;margin-bottom:12px;box-shadow:0 1px 3px rgba(5,32,60,.05)}
.route{font-size:18px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sub{color:var(--mut);font-size:13px;margin-top:3px}
.pricebox{text-align:right}.price{font-size:24px;font-weight:800}.perr{color:var(--red);font-size:13px}
.badge{font-size:11px;padding:2px 9px;border-radius:20px;font-weight:700}
.badge.on{background:var(--greenbg);color:var(--green)}.badge.off{background:#fdeaed;color:var(--red)}
.acts{display:flex;gap:6px}.acts button{padding:8px 12px;font-size:13px;border-radius:20px}

/* modals */
.modal{position:fixed;inset:0;background:rgba(5,32,60,.55);display:flex;align-items:center;justify-content:center;z-index:300;padding:20px}
.mcard{position:relative;background:#fff;border-radius:18px;padding:28px;width:100%;max-width:400px;box-shadow:0 24px 70px rgba(5,32,60,.35)}
.mcard input{display:block;width:100%;margin:10px 0;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:15px}
.mcard h2{margin:8px 0 4px}.mclose{position:absolute;top:14px;right:18px;color:var(--mut);font-size:16px;cursor:pointer}
.flbl{display:block;font-size:12px;color:var(--mut);margin:12px 0 4px}
.row{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.auth-tabs{margin-bottom:16px;background:var(--soft)}
.auth-tabs .tt{color:var(--mut)}.auth-tabs .tt.active{background:var(--blue);color:#fff}
.adminhint{font-size:13px;margin-top:12px}.adminhint a{color:var(--blue);font-weight:600}

/* responsive */
@media(max-width:1080px){.searchbar{grid-template-columns:1fr 44px 1fr 1fr;grid-auto-rows:auto}
  .searchbar .seg:nth-child(1){grid-column:1}.swap{grid-column:2;grid-row:1}.searchbar .seg:nth-child(3){grid-column:3/5}
  .search{grid-column:1/-1;min-height:50px}}
@media(max-width:980px){.feature-cards{grid-template-columns:1fr 1fr}.faq{grid-template-columns:1fr}}
@media(max-width:680px){.hero h1{font-size:30px}.searchbar{grid-template-columns:1fr 1fr}.searchbar .seg,.searchbar .seg:nth-child(3){grid-column:auto}.swap{grid-column:1/-1;width:100%;border-radius:9px;height:40px}.search{grid-column:1/-1}
  .fcard{grid-template-columns:56px 1fr;row-gap:8px}.meta{grid-column:2}.fprice{grid-column:1/-1;text-align:left}.alertbtn{grid-column:1/-1;justify-self:start}
  .wcard{grid-template-columns:1fr}.events-text{padding:34px 22px}.foot-in{flex-direction:column}}

/* price calendar */
.callegend{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--mut);margin:4px 0 16px;flex-wrap:wrap}
.lgnd{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:middle}
.calmonths{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.calmonth{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}
.calhead{font-weight:800;margin-bottom:8px;font-size:15px}
.caldow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;font-size:11px;color:var(--mut);margin-bottom:5px;text-align:center;font-weight:700}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cell{aspect-ratio:1;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;cursor:pointer;transition:transform .1s}
.cell:hover{transform:scale(1.08);box-shadow:0 2px 8px rgba(0,0,0,.18)}
.cell b{font-size:13px;font-weight:800;line-height:1}.cell i{font-style:normal;font-size:9px;margin-top:1px;opacity:.92}
.cell.blank{background:transparent;cursor:default;box-shadow:none}
.cell.empty{background:var(--soft);color:#c2c2c2;cursor:default;box-shadow:none}
.cell.empty:hover{transform:none}

/* calendar alignment fix */
.calmonths{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:18px;align-items:start}
.calmonth{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;min-width:0}
.caldow,.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.caldow{font-size:11px;color:var(--mut);margin-bottom:6px;text-align:center;font-weight:700}
.cell{aspect-ratio:auto;min-height:44px;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;cursor:pointer;padding:3px 1px;line-height:1.05;overflow:hidden;text-align:center}
.cell b{font-size:13px;font-weight:800;line-height:1}
.cell i{font-style:normal;font-size:10px;font-weight:700;margin-top:2px;white-space:nowrap;opacity:.95}
.cell.blank{background:transparent;cursor:default;box-shadow:none;min-height:44px}
.cell.empty{background:var(--soft);color:#c2c2c2;cursor:default;box-shadow:none;font-size:12px}
.cell.empty:hover,.cell.blank:hover{transform:none;box-shadow:none}
.callegend{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--mut);margin:6px 0 16px;flex-wrap:wrap;line-height:1.6}
