/* v1.2.0 — Kiwi-style flights widget (UI only) with two-month datepicker & right rail */
:root{
  --efw-bg:#f5f7fb;
  --efw-surface:#ffffff;
  --efw-ink:#0b1f3f;
  --efw-muted:#5b6b84;
  --efw-primary:#1E63CC;
  --efw-border:#e2e8f0;
  --efw-green:#1db954;
  --efw-radius:10px;
  --efw-shadow:0 2px 10px rgba(2,14,45,.06);
  --efw-font: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  --efw-range:#E8F0FF;
  --efw-range-edge:#1E63CC;
}
.efw{all: initial; font-family:var(--efw-font); color:var(--efw-ink); background:var(--efw-bg); padding:16px; border-radius:16px; box-shadow:var(--efw-shadow); display:block}
.efw *{all: revert; box-sizing:border-box}

.efw__topbar{background:var(--efw-surface); border:1px solid var(--efw-border); border-radius:16px; padding:16px; position:sticky; top:0; z-index:5}
.efw__triptype{display:flex; gap:8px; margin-bottom:12px}
.efw-tab{background:#eef3ff;border:1px solid #d4e1ff;border-radius:20px;padding:6px 12px;cursor:pointer;font-weight:600;color:var(--efw-primary)}
.efw-tab--active{background:var(--efw-primary); color:#fff; border-color:var(--efw-primary)}
.efw__controls{display:grid; grid-template-columns:1fr 1fr repeat(2, 160px) 180px 120px; gap:10px; align-items:end}
.efw-field{display:flex; flex-direction:column; gap:6px}
.efw-field__label{font-size:12px; color:var(--efw-muted)}
.efw-field input[type="text"]{border:1px solid var(--efw-border); border-radius:10px; padding:12px 12px; outline:none; background:#fff}
.efw-field--passengers{position:relative}
.efw-field__button{border:1px solid var(--efw-border); border-radius:10px; padding:12px; background:#fff; text-align:left; width:100%}
.efw-popover{position:absolute; top:100%; right:0; background:#fff; border:1px solid var(--efw-border); border-radius:12px; padding:12px; margin-top:8px; box-shadow:var(--efw-shadow); width:280px}
.efw-popover__row{display:flex; justify-content:space-between; align-items:center; padding:8px 0}
.efw-select{border:1px solid var(--efw-border); border-radius:8px; padding:8px 10px}
.efw-stepper{display:flex; gap:8px; align-items:center}
.efw-stepper__btn{width:28px;height:28px;border:1px solid var(--efw-border);border-radius:8px;background:#f7f9fc}
.efw-stepper__value{min-width:18px; text-align:center; display:inline-block}
.efw-btn{border:1px solid var(--efw-border); background:#fff; border-radius:10px; padding:12px 16px; cursor:pointer; font-weight:600}
.efw-btn--primary{background:var(--efw-primary); color:#fff; border-color:var(--efw-primary)}
.efw-btn--ghost{background:#f7f9fc}
.efw__datepills{display:flex; gap:8px; margin-top:12px; overflow:auto; padding-bottom:4px}
.efw-pill{background:#fff; border:1px solid var(--efw-border); border-radius:10px; padding:10px 12px; min-width:120px; text-align:left}
.efw-pill--active{border-color:var(--efw-primary); box-shadow:0 0 0 2px rgba(30,99,204,.15)}

/* Calendar */
.efw-cal{position:absolute; background:#fff; border:1px solid var(--efw-border); border-radius:14px; padding:12px; margin-top:8px; box-shadow:var(--efw-shadow); width:680px}
.efw-cal__header{display:flex; align-items:center; justify-content:space-between; margin-bottom:8px}
.efw-cal__title{font-weight:800}
.efw-cal__nav{border:1px solid var(--efw-border); border-radius:8px; padding:4px 10px; background:#fff}
.efw-cal__months{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.efw-cal__grid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px; font-size:12px}
.efw-cal__cell{border-radius:8px; padding:8px 0; text-align:center; cursor:pointer}
.efw-cal__cell.is-disabled{color:#b9c3d1; cursor:not-allowed; background:#f3f5f8}
.efw-cal__cell.is-start, .efw-cal__cell.is-end{background:var(--efw-range-edge); color:#fff}
.efw-cal__cell.is-inrange{background:var(--efw-range)}
.efw-cal__dow{color:var(--efw-muted); font-weight:700}
.efw-cal__legend{display:flex; gap:10px; margin-top:8px; font-size:12px}
.efw-cal__legend span{display:inline-flex; align-items:center; gap:6px}
.efw-cal__legend .is-start::before{content:''; width:14px; height:14px; background:var(--efw-range-edge); border-radius:4px; display:inline-block}
.efw-cal__legend .is-end::before{content:''; width:14px; height:14px; background:var(--efw-range-edge); border-radius:4px; display:inline-block}
.efw-cal__legend .is-inrange::before{content:''; width:14px; height:14px; background:var(--efw-range); border-radius:4px; display:inline-block}

/* Body 3-column */
.efw__body--threecol{display:grid; grid-template-columns:320px 1fr 300px; gap:16px; margin-top:16px}
.efw__filters{position:sticky; top:132px; align-self:start; display:flex; flex-direction:column; gap:8px}
.efw-acc{background:#fff; border:1px solid var(--efw-border); border-radius:12px; overflow:hidden}
.efw-acc__title{margin:0; padding:12px 14px; font-size:14px; font-weight:700; cursor:pointer; background:#f7f9fc}
.efw-acc__panel{padding:12px 14px; display:grid; gap:10px}
.efw-check{display:flex; gap:8px; align-items:center; font-size:14px}
.efw-input{border:1px solid var(--efw-border); border-radius:10px; padding:10px 12px}
.efw-input--full{width:100%}
.efw-chips{display:flex; flex-wrap:wrap; gap:6px}
.efw-chip{border:1px solid var(--efw-border); border-radius:20px; padding:6px 10px; background:#fff}
.efw-range{display:flex; gap:10px; padding:6px 0}
.efw-range input[type="range"]{width:100%}

.efw__results{display:flex; flex-direction:column; gap:12px}
.efw__results-header{background:#fff; border:1px solid var(--efw-border); border-radius:12px; padding:8px 8px}
.efw-badges{display:flex; gap:8px; flex-wrap:wrap}
.efw-badge{background:#fff; border:1px solid var(--efw-border); border-radius:20px; padding:8px 12px; cursor:pointer; font-weight:700}
.efw-badge small{display:block; font-weight:400; color:var(--efw-muted)}
.efw-badge--active{background:var(--efw-primary); color:#fff; border-color:var(--efw-primary)}
.efw-badge--ghost{background:#f7f9fc}

.efw__card{display:grid; grid-template-columns:1fr 1fr 120px 140px; gap:10px; align-items:center; background:#fff; border:1px solid var(--efw-border); border-radius:12px; padding:12px 14px; box-shadow:var(--efw-shadow)}
.efw-leg{display:flex; gap:8px; align-items:center}
.efw-leg__time{font-weight:800}
.efw-leg__meta{color:var(--efw-muted); font-size:13px}
.efw-price{font-weight:800; font-size:18px}
.efw-price__note{color:var(--efw-green); font-size:12px}
.efw__card .efw-btn{justify-self:end}

/* Right rail */
.efw__right{position:sticky; top:132px; align-self:start; display:flex; flex-direction:column; gap:12px}
.efw-right__card{background:#fff; border:1px solid var(--efw-border); border-radius:12px; padding:12px; box-shadow:var(--efw-shadow)}
.efw-right__img{height:120px; border-radius:8px; background:linear-gradient(145deg,#e6f1ff,#cfe2ff)}
.efw-right__title{font-weight:800; margin-top:8px}
.efw-right__text{color:var(--efw-muted); font-size:13px; margin:6px 0 10px}
.efw-right__mini{display:flex; gap:8px}

/* Responsive */
@media (max-width: 1200px){
  .efw__body--threecol{grid-template-columns:320px 1fr}
  .efw__right{display:none}
}
@media (max-width: 1024px){
  .efw__controls{grid-template-columns:1fr 1fr 1fr; grid-auto-rows:auto}
  .efw__body--threecol{grid-template-columns:1fr}
  .efw__filters{position:relative; top:auto; order:2}
  .efw__results{order:1}
  .efw__card{grid-template-columns:1fr; gap:6px}
}
