/* flights.css — shared across all routes and all three languages */

:root{
  --f-bg: #FFFFFF;
  --f-ink: #474748;
  --f-ink-soft: #6B6B6B;
  --f-green: #138D74;
  --f-green-deep: #0C5F4D;
  --f-gold: #C08A34;
  --f-line: rgba(71,71,72,0.14);
  --f-surface: #FFFFFF;
  --f-row-alt: rgba(19,141,116,0.05);
}
@media(prefers-color-scheme: dark){
  :root{
    --f-bg: #14201D; --f-ink: #EDEFEE; --f-ink-soft: #A9B4B0;
    --f-green: #2FBE9F; --f-green-deep: #0B1F1B; --f-gold: #D9A85C;
    --f-line: rgba(237,239,238,0.14); --f-surface: #1B2925;
    --f-row-alt: rgba(255,255,255,0.07);
  }
}

.flights-wrap{max-width:980px;margin-inline:auto;padding:8px 20px 64px;}
@media(max-width:640px){
  .flights-wrap{padding-inline:12px;}
}
.flights-intro{color:var(--f-ink-soft);font-size:.95rem;line-height:1.8;margin:0 0 20px;max-width:70ch;}
.flights-booking-via{color:var(--f-ink);font-size:.85rem;font-weight:600;margin:0 0 22px;}

.share-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 13px;border-radius:999px;border:1px solid var(--f-line);
  background:var(--f-surface);color:var(--f-ink);font-size:.75rem;font-family:inherit;cursor:pointer;
}
.share-btn:hover{border-color:var(--f-green);color:var(--f-green);}
.share-toast{
  position:absolute;top:100%;inset-inline-end:0;margin-top:6px;
  font-size:.78rem;color:var(--f-green);opacity:0;transition:opacity .2s;white-space:nowrap;pointer-events:none;
}
.share-toast.visible{opacity:1;}

/* ---------- Filters ---------- */
.flights-filters{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  gap:10px;margin-bottom:20px;
}
.flights-filters .share-wrap{position:relative;justify-self:start;}
.flights-filters [data-filter-group="currency"]{justify-self:center;}
.flights-filters [data-filter-group="period"]{justify-self:end;}

/* Multi-select dropdown (route / airline) */
.ff-multiselect{position:relative;}
.ff-ms-toggle{
  display:flex;align-items:center;gap:6px;
  padding:9px 12px;border-radius:8px;border:1px solid var(--f-line);
  background:var(--f-surface);color:var(--f-ink);font-size:.85rem;font-family:inherit;cursor:pointer;
}
.ff-ms-arrow{transition:transform .15s;flex-shrink:0;}
.ff-multiselect.open .ff-ms-arrow{transform:rotate(180deg);}
.ff-ms-menu{
  display:none;position:absolute;inset-inline-start:0;top:calc(100% + 4px);
  background:var(--f-surface);border:1px solid var(--f-line);border-radius:8px;
  min-width:180px;max-height:240px;overflow-y:auto;z-index:20;
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
}
.ff-multiselect.open .ff-ms-menu{display:block;}
.ff-ms-item{
  padding:9px 14px;font-size:.83rem;color:var(--f-ink);cursor:pointer;
  display:flex;align-items:center;gap:8px;white-space:nowrap;
}
.ff-ms-item:hover{background:var(--f-row-alt);}
.ff-ms-check{flex-shrink:0;opacity:0;color:var(--f-green);}
.ff-ms-item.selected .ff-ms-check{opacity:1;}
.ff-ms-select-all{border-bottom:1px solid var(--f-line);font-weight:600;}

/* Header-embedded route/airline dropdown trigger (UI experiment) */
.th-ms{position:relative;display:inline-block;}
.ff-ms-toggle-header{
  background:none;border:none;color:inherit;font:inherit;font-weight:600;
  display:inline-flex;align-items:center;gap:4px;cursor:pointer;padding:0;
}
.th-ms .ff-ms-menu{color:var(--f-ink);font-weight:400;}

/* Day/Night independent toggles + currency pills */
.ff-pills{display:flex;border:1px solid var(--f-line);border-radius:999px;padding:0;gap:2px;overflow:hidden;}
.ff-pill, .ff-pill-toggle{
  border:none;background:transparent;color:var(--f-ink-soft);
  padding:5px 13px;border-radius:999px;font-size:.75rem;font-family:inherit;cursor:pointer;
}
.ff-pill.active, .ff-pill-toggle.active{background:var(--f-green);color:#fff;}

/* ---------- Table ---------- */
.flights-table-wrap{border:1px solid var(--f-line);border-radius:10px;}
.flights-table thead tr .th-route{border-start-start-radius:10px;}
.flights-table thead tr .th-book{border-start-end-radius:10px;}
.flights-table tbody tr:last-child .td-route{border-end-start-radius:10px;}
.flights-table tbody tr:last-child .td-book{border-end-end-radius:10px;}
@media(min-width:830px){
  /* select column becomes visible and is the true first cell instead of route */
  .flights-table thead tr .th-route{border-start-start-radius:0;}
  .flights-table thead tr .th-select{border-start-start-radius:10px;}
  .flights-table tbody tr:last-child .td-route{border-end-start-radius:0;}
  .flights-table tbody tr:last-child .td-select{border-end-start-radius:10px;}
}
.flights-table{width:100%;border-collapse:collapse;font-size:.83rem;table-layout:fixed;}
.flights-table, .flights-table th, .flights-table td{box-sizing:border-box;}
.td-route{overflow:hidden;text-align:center;font-weight:600;line-height:1.2;}
.td-route .r-from, .td-route .r-to{display:block;}
.td-route .r-arrow{display:block;color:var(--f-ink-soft);font-size:.72em;}

.flights-table thead th{
  background:var(--f-green);color:#fff;font-weight:600;text-align:center;
  padding:9px 4px;white-space:nowrap;
}
.flights-table thead th.sortable{cursor:pointer;user-select:none;}
.flights-table thead th.sortable span:first-child{margin-inline-end:3px;}
.sort-indicator{display:inline-flex;vertical-align:middle;opacity:.75;}
.flights-table thead th.active-sort{background:var(--f-green-deep);}
.flights-table thead th.active-sort .sort-indicator{opacity:1;}

.flights-table tbody tr{border-top:1px solid var(--f-line);}
.flights-table tbody tr.row-alt{background:var(--f-row-alt);}
.flights-table tbody tr.ff-hidden{display:none;}

/* Multi-select column — desktop only */
.th-select, .td-select{display:none;}
@media(min-width:830px){
  .th-select, .td-select{display:table-cell;width:36px;text-align:center;}
  .row-select{width:16px;height:16px;cursor:pointer;}
  .flights-table tbody tr.row-checked{background:rgba(19,141,116,0.12);}
}
@media(min-width:830px) and (prefers-color-scheme: dark){
  .flights-table tbody tr.row-checked{background:rgba(47,190,159,0.18);}
}

/* Date-range filter in the Book column header — desktop only */
.th-date-filter{display:none;position:relative;}
@media(min-width:830px){
  .th-book-label{display:none;}
  .th-date-filter{display:flex;justify-content:center;}
  .date-filter-btn{
    background:none;border:1px solid rgba(255,255,255,0.5);border-radius:6px;color:#fff;
    font-family:inherit;font-size:.7rem;padding:4px 8px;cursor:pointer;white-space:nowrap;
  }
  .date-filter-btn:hover{background:rgba(255,255,255,0.12);}
  .date-filter-btn.has-value{background:rgba(255,255,255,0.18);}
}

.dfp{
  display:none;position:fixed;
  background:var(--f-bg);border:1px solid var(--f-line);border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,0.18);padding:12px;width:240px;z-index:200;
  color:var(--f-ink);font-weight:400;text-align:center;direction:ltr;
}
.dfp.open{display:block;}
.dfp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.dfp-nav{background:none;border:none;cursor:pointer;color:var(--f-ink);padding:4px;display:flex;}
.dfp-nav:hover{color:var(--f-green);}
.dfp-title{font-size:.82rem;font-weight:600;}
.dfp-weekdays, .dfp-grid{display:grid;grid-template-columns:repeat(7,1fr);}
.dfp-weekdays span{font-size:.66rem;color:var(--f-ink-soft);padding:4px 0;}
.dfp-day{
  font-size:.72rem;padding:6px 0;cursor:pointer;border-radius:4px;color:var(--f-ink);
  background:none;border:none;font-family:inherit;
}
.dfp-day:hover{background:var(--f-row-alt);}
.dfp-day:disabled{opacity:.3;cursor:default;pointer-events:none;}
.dfp-day.dfp-empty{visibility:hidden;pointer-events:none;}
.dfp-day.dfp-start, .dfp-day.dfp-end{background:var(--f-green);color:#fff;}
.dfp-day.dfp-in-range{background:var(--f-row-alt);}
.dfp-actions{display:flex;gap:6px;margin-top:10px;}
.dfp-actions button{
  flex:1;padding:6px 8px;border-radius:6px;font-size:.72rem;font-family:inherit;cursor:pointer;
}
.dfp-apply{background:var(--f-green);border:none;color:#fff;}
.dfp-apply:hover{background:var(--f-green-deep);}
.dfp-clear{background:none;border:1px solid var(--f-line);color:var(--f-ink);}
.dfp-clear:hover{border-color:var(--f-green);color:var(--f-green);}

.multi-share-float{
  display:none;position:fixed;bottom:24px;inset-inline-end:24px;z-index:50;
  align-items:center;gap:8px;background:var(--f-green);color:#fff;
  padding:12px 20px;border-radius:999px;border:none;cursor:pointer;
  font-size:.9rem;font-family:inherit;box-shadow:0 6px 20px rgba(0,0,0,0.18);
}
.multi-share-float.visible{display:inline-flex;}
.multi-share-float:hover{background:var(--f-green-deep);}
.flights-table td{padding:6px 4px;color:var(--f-ink);vertical-align:middle;text-align:center;}

/* Column width hints */
.th-route, .td-route{width:22%;}
.th-airline, .td-airline{width:24%;}
.th-price, .td-price{width:15%;}
.th-schedule, .td-schedule{width:27%;}
.th-book, .td-book{width:12%;}

.td-airline{line-height:1.5;}
.td-airline .airline-name{display:block;font-weight:500;}
.baggage-line{
  display:flex;align-items:center;justify-content:center;gap:0;
  min-height:1.1em;font-size:.8rem;color:var(--f-ink-soft);
}
.baggage-line svg{vertical-align:-2px;}
.bag-plus{margin-inline:1px;color:var(--f-ink-soft);}

.td-price{font-weight:700;white-space:nowrap;}

.td-schedule{text-align:center;}
.s-date{display:block;font-weight:600;color:var(--f-ink);font-size:.85rem;white-space:nowrap;}
.s-time{display:inline-flex;align-items:center;gap:3px;font-size:.8rem;color:var(--f-ink-soft);}
.period-icon{flex-shrink:0;opacity:.8;}

.book-btn{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--f-green);color:#fff;
  padding:7px 10px;border-radius:7px;font-size:.78rem;font-weight:500;
  text-decoration:none;white-space:nowrap;
}
.book-btn:hover{background:var(--f-green-deep);}
.book-unavailable{color:var(--f-ink-soft);font-size:.75rem;}
.book-full{display:inline;}
.book-short{display:none;}

.flights-currency-note{color:var(--f-ink-soft);font-size:.78rem;line-height:1.7;margin-top:14px;max-width:70ch;}

.flights-empty-state{
  background:var(--f-surface);border:1px solid var(--f-line);border-radius:12px;
  padding:28px 20px;text-align:center;margin-top:-1px;
}
.flights-empty-state[hidden]{display:none;}
.empty-text{color:var(--f-ink);font-size:.9rem;line-height:1.7;margin:0 0 18px;max-width:50ch;margin-inline:auto;}
.empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;}
.empty-reset-btn, .empty-contact-btn{
  display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:999px;
  font-size:.83rem;font-family:inherit;cursor:pointer;
}
.empty-reset-btn{background:transparent;border:1px solid var(--f-line);color:var(--f-ink);}
.empty-reset-btn:hover{border-color:var(--f-green);color:var(--f-green);}
.empty-contact-btn{background:var(--f-green);border:none;color:#fff;}
.empty-contact-btn:hover{background:var(--f-green-deep);}

@media(max-width:640px){
  .th-route, .td-route{width:23%;}
  .th-airline, .td-airline{width:25%;}
  .th-price, .td-price{width:15%;}
  .th-schedule, .td-schedule{width:24%;}
  .th-book, .td-book{width:13%;}
  .flights-table{font-size:.75rem;}
  .flights-table td, .flights-table thead th{padding:5px 2px;}
  .book-full{display:none;}
  .book-short{display:inline;}
  .book-btn{padding:6px 8px;}
}
