/* Knox Nonstop: Routes & Destinations team (knxr). Loaded after site.css, v2.css and theme.css. */
.knxr-al{color:var(--al);border-color:color-mix(in srgb,var(--al) 45%,transparent);white-space:nowrap}
.knxr-count{color:var(--muted);font-size:1rem}.knxr-count b{color:var(--gold);font:800 1.5rem/1 var(--display);margin-right:4px}
.knxr-code{font:600 .92rem/1 var(--mono);color:var(--dim);letter-spacing:.04em}
.knxr-new{display:inline-block;font:700 .9rem/1 var(--body);color:#120A02;background:var(--gold);border-radius:999px;padding:5px 9px;margin-left:4px;white-space:nowrap}
.knxr-ann{font-size:.92rem;color:var(--muted)}
.knxr-svc{font-weight:600}.knxr-svc.seasonal{color:var(--gold)}.knxr-svc.year-round{color:var(--go)}
.knxr-num{white-space:nowrap;font-variant-numeric:tabular-nums}
.knxr-fq{font-size:.95rem;color:var(--muted);min-width:11rem}
.knxr-city{font:700 1.2rem/1.1 var(--display);text-transform:uppercase;letter-spacing:.02em}

/* Map widget */
.knxr-mapbox{margin-top:14px;background:radial-gradient(120% 90% at 50% 0,rgba(255,130,0,.06),transparent 60%)}
.knxr-arc{stroke-width:1.9}
.knxr-dash{stroke-dasharray:5 6}
.knxr-alchip[aria-pressed="false"]{box-shadow:inset 0 -3px 0 var(--al)}
.knxr-mlist{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.knxr-mlist li{display:grid;gap:2px;padding:10px 12px;border-radius:10px;background:var(--night);border:1px solid var(--line);font-size:1rem;transition:opacity .2s,border-color .2s}
.knxr-mlist li.dim{opacity:.28}.knxr-mlist li.knxr-on{border-color:var(--gold)}
.knxr-mal{color:var(--muted);font-size:.95rem}.knxr-mal i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:3px;vertical-align:middle}
.tip span{display:block;color:var(--muted);margin-top:2px}

/* Tables */
.knxr-tbl th button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:44px;font:inherit;color:inherit}
.knxr-tbl th button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.knxr-tbl th[aria-sort] button::after{content:"↕";color:var(--dim)}
.knxr-tbl th[aria-sort="ascending"] button::after{content:"↑";color:var(--gold)}
.knxr-tbl th[aria-sort="descending"] button::after{content:"↓";color:var(--gold)}
.knxr-tbl{min-width:900px}
.knxr-tbl td{vertical-align:middle}
.knxr-tbl tr[hidden]{display:none}
.knxr-tbl .pill{margin:2px 0}
.knxr-ctl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin:8px 0 14px}
@media (max-width:700px){.knxr-ctl{grid-template-columns:minmax(0,1fr)}}
.knxr-table .chips{margin-top:8px}
.knxr-weekend{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;padding:16px;border-radius:14px;background:linear-gradient(120deg,rgba(255,130,0,.12),rgba(141,180,226,.08));border:1px solid rgba(255,130,0,.3);margin-bottom:16px}
.knxr-weekend p{margin:0;color:var(--muted);font-size:1rem}
@media (max-width:700px){.knxr-weekend{grid-template-columns:minmax(0,1fr)}}
.knxr-empty{padding:16px;color:var(--warn)}
[data-item][hidden]{display:none!important}

/* Cluster cards */
.knxr-clusters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:1.4rem}
@media (max-width:900px){.knxr-clusters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.knxr-clusters{grid-template-columns:minmax(0,1fr)}}
.knxr-ccard{position:relative;display:grid;gap:8px;padding:22px;border-radius:18px;background:linear-gradient(160deg,var(--panel-2),var(--panel));border:1px solid var(--line);text-decoration:none;color:var(--text);overflow:hidden;transition:transform .25s var(--ease),border-color .25s}
.knxr-ccard::after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,130,0,.25),transparent)}
.knxr-ccard:hover{transform:translateY(-3px);border-color:var(--gold);color:var(--text)}
.knxr-ccard b{font:800 2rem/1 var(--display);text-transform:uppercase}
.knxr-ck{font:600 .95rem/1 var(--body);color:var(--gold)}
.knxr-ccard span{color:var(--muted)}
.knxr-go{color:var(--gold)!important;font-weight:600}

/* Bars */
.knxr-bars{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;gap:10px;max-width:56rem}
.knxr-bars li{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr) 4.5rem;gap:14px;align-items:center}
.knxr-bl{font-size:1rem;color:var(--text)}
.knxr-bt{height:16px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}
.knxr-bt i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--orange),var(--gold-2));transform-origin:left}
.knxr-bt i.g{background:linear-gradient(90deg,var(--gold),#fff1d6)}
.knxr-bars b{text-align:right;font:800 1.3rem/1 var(--display);font-variant-numeric:tabular-nums}
@media (max-width:620px){.knxr-bars li{grid-template-columns:minmax(0,1fr) 4rem}.knxr-bt{grid-column:1/-1;order:3}}
.js .knxr-bars .knxr-bt i{animation:knxrGrow 1.1s var(--ease) both}
@keyframes knxrGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* Generic tool bits */
.knxr-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(18px,3vw,32px);align-items:start}
@media (max-width:900px){.knxr-grid{grid-template-columns:minmax(0,1fr)}}
.knxr-form{display:grid;gap:14px}
.knxr-form label>span,.knxr-form legend{font:600 1rem/1.3 var(--body);color:var(--text)}
.knxr-form fieldset{border:0;margin:0;padding:0;min-width:0;display:grid;gap:8px}
.knxr-form label{display:grid;gap:6px}
.knxr-out{display:grid;gap:12px}
.knxr-res{padding:16px 18px;border-radius:14px;background:var(--night);border:1px solid var(--line)}
.knxr-res.top{border-color:var(--gold);background:linear-gradient(135deg,rgba(255,130,0,.1),rgba(255,130,0,.02))}
.knxr-res h3{font-size:1.7rem;margin:0 0 .3rem}
.knxr-res p{margin:.2rem 0;color:var(--muted)}
.knxr-res .knxr-big{font:800 2.4rem/1 var(--display);color:var(--gold);font-variant-numeric:tabular-nums}
.knxr-rank{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--panel-2);font:800 1.2rem/1 var(--display);margin-right:8px;vertical-align:middle}
.knxr-res.top .knxr-rank{background:var(--gold);color:#120A02}
.knxr-kv{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.knxr-meter{height:12px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:10px}
.knxr-meter i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--orange));transition:width .5s var(--ease)}
.knxr-vs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:560px){.knxr-vs{grid-template-columns:minmax(0,1fr)}}
.knxr-vs .knxr-res.win{border-color:var(--go);background:rgba(59,208,122,.07)}
.knxr-vs .knxr-res.win h3::after{content:" ✓";color:var(--go)}
.knxr-select{font-size:1.05rem}
.knxr-hint{font-size:1rem;color:var(--muted);margin:0}

/* Timeline */
.knxr-tl{list-style:none;margin:1.6rem 0 0;padding:0;position:relative;display:grid;gap:14px}
.knxr-tl::before{content:"";position:absolute;left:19px;top:8px;bottom:8px;width:3px;border-radius:3px;background:linear-gradient(var(--gold),var(--orange),#8DB4E2)}
.knxr-tl li{position:relative;padding:16px 18px 16px 58px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.knxr-tl li::before{content:"";position:absolute;left:10px;top:20px;width:21px;height:21px;border-radius:50%;background:var(--night);border:4px solid var(--gold)}
.knxr-tl li.exit::before{border-color:var(--bad)}
.knxr-tl li.announce::before{border-color:#8DB4E2;border-style:dashed}
.knxr-tl li.future{border-style:dashed}
.knxr-tl time{display:block;font:800 1.35rem/1 var(--display);text-transform:uppercase;color:var(--gold);letter-spacing:.03em}
.knxr-tl li.exit time{color:var(--bad)}
.knxr-tl h3{font-size:1.5rem;margin:.35rem 0 .2rem}
.knxr-tl p{margin:.2rem 0;color:var(--muted)}
.knxr-tl .knxr-src{font-size:.95rem}
.knxr-tag{display:inline-block;font:700 .9rem/1 var(--body);padding:5px 9px;border-radius:999px;margin-right:6px;background:var(--panel-2);border:1px solid var(--line-2);color:var(--muted)}
.knxr-tag.launch{color:var(--go)}.knxr-tag.exit{color:var(--bad)}.knxr-tag.announce{color:#8DB4E2}
.knxr-net{display:flex;align-items:flex-end;gap:6px;height:180px;margin-top:1.4rem;padding:0 4px;border-bottom:1px solid var(--line-2)}
.knxr-net div{flex:1;display:grid;justify-items:center;gap:6px;align-self:end}
.knxr-net i{display:block;width:100%;border-radius:8px 8px 0 0;background:linear-gradient(var(--gold),var(--orange))}
.knxr-net b{font:800 1.4rem/1 var(--display)}
.knxr-net span{font-size:.95rem;color:var(--muted)}

/* Countdown */
.knxr-cd{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:1rem;max-width:34rem}
.knxr-cd div{padding:16px;border-radius:14px;background:var(--night);border:1px solid var(--line);text-align:center}
.knxr-cd b{display:block;font:800 clamp(2.4rem,6vw,3.6rem)/1 var(--display);color:var(--gold);font-variant-numeric:tabular-nums}
.knxr-cd span{color:var(--muted)}

/* Matrix (hub x region) */
.knxr-mx td,.knxr-mx th{text-align:center}
.knxr-mx td:first-child,.knxr-mx th:first-child{text-align:left}
.knxr-mx td.y{background:rgba(59,208,122,.10)}
.knxr-mx td.s{background:rgba(255,184,28,.10);color:var(--gold)}
.knxr-mx td.n{color:var(--dim)}

/* Airline rows highlighted by the map */
[data-al-row]{transition:background .3s}
[data-al-row].knxr-hot{background:rgba(255,130,0,.1)}
.knxr-alcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:1.4rem}
@media (max-width:900px){.knxr-alcards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.knxr-alcards{grid-template-columns:minmax(0,1fr)}}
.knxr-alcard{padding:20px;border-radius:18px;background:var(--panel);border:1px solid var(--line);border-top:4px solid var(--al);display:grid;gap:8px}
.knxr-alcard h3{font-size:1.9rem}
.knxr-alcard .knxr-big{font:800 3rem/1 var(--display);color:var(--al)}
.knxr-alcard p{margin:0;color:var(--muted)}
.knxr-alcard button{justify-self:start}
@media (prefers-reduced-motion:reduce){.js .knxr-bars .knxr-bt i{animation:none}}

/* Florida chooser map */
.knxr-flbox{background:var(--night);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.knxr-flmap{max-height:680px;margin:auto}
.knxr-fdot circle{fill:var(--panel-2);stroke:var(--muted);stroke-width:2;transition:fill .3s,r .3s}
.knxr-fdot text{font:700 28px var(--mono);fill:var(--muted)}
.knxr-fdot.near circle{fill:#8DB4E2;stroke:#8DB4E2}
.knxr-fdot.near text{fill:var(--text)}
.knxr-fdot.best circle{fill:var(--gold);stroke:#fff;r:15}
.knxr-fdot.best text{fill:var(--gold);font-size:34px}
.knxr-place{transition:transform .5s var(--ease)}
.knxr-place path{fill:var(--orange);stroke:#fff;stroke-width:2}
.knxr-place text{font:800 32px var(--display);fill:#fff;text-transform:uppercase;letter-spacing:.03em;paint-order:stroke;stroke:#0B0C0F;stroke-width:5px}
/* theme.css sets .btn text dark for orange buttons; keep ghost buttons readable on photos */
.btn.btn-ghost{color:var(--text)}
.knxr-cx{list-style:none;padding:0;margin:12px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.knxr-cx .knxr-res h3{font-size:1.5rem}
.knxr-best{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:1.4rem}
.knxr-best .knxr-res h3{font-size:1.6rem}
.knxr-best .knxr-k{font:600 .95rem/1 var(--body);color:var(--gold);display:block;margin-bottom:6px}
.knxr-city-card{display:grid;gap:10px}
.knxr-alt{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:10px 0}
.knxr-alt div{padding:12px 14px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line)}
.knxr-alt b{display:block;font:800 1.7rem/1 var(--display);color:var(--gold)}
.knxr-alt span{color:var(--muted);font-size:1rem}
.knxr-world .knxr-wl1{fill:none;stroke:rgba(255,255,255,.55);stroke-width:1.2}
.knxr-world .knxr-wl2{fill:none;stroke-width:1.4;opacity:.85}
.knxr-world .knxr-wd{fill:#fff;stroke:var(--night);stroke-width:1}
.js .knxr-world .knxr-wl2{stroke-dasharray:900;stroke-dashoffset:900;animation:knxrDraw 2.4s var(--ease) .3s forwards}
@keyframes knxrDraw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.js .knxr-world .knxr-wl2{stroke-dasharray:none;stroke-dashoffset:0;animation:none}}
.knxr-form,.knxr-form label,.knxr-grid>*{min-width:0}
.knxr-select,select.knxr-select{max-width:100%;width:100%}
.knxr-missmap,.knxr-world{overflow:hidden}
/* Land must read against the panel color inside tools */
.knxr-world .m-nation,.knxr-missmap .m-nation,.knxr-mapbox .m-nation,.knxr-flmap .m-nation{fill:#262B35}
.knxr-world .m-borders,.knxr-missmap .m-borders,.knxr-mapbox .m-borders,.knxr-flmap .m-borders{stroke:rgba(255,255,255,.14)}
.knxr-form input[type=date],.knxr-form input[type=time]{width:100%;background:var(--night);color:var(--text);border:1px solid var(--line-2);border-radius:10px;padding:12px 13px;font:inherit;min-height:48px;color-scheme:dark}
.knxr-table input[type=range],.knxr-form input[type=range]{height:44px}
.knxr-form,.knxr-out{grid-template-columns:minmax(0,1fr)}
.knxr-kv .pill,.knxr-kv .knxr-al{white-space:normal;max-width:100%}
.knxr-out.knxr-cx{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}
