/* Knox Nonstop: Airport & Game Days (team knxa). Loaded after site.css, v2.css and theme.css. */

/* Stamps and notes */
.ka-stamp{display:inline-flex;align-items:center;gap:8px;margin:1rem 0 0;padding:8px 14px;border-radius:999px;background:rgba(59,208,122,.1);border:1px solid rgba(59,208,122,.35);color:#BFF0D3;font:600 .95rem/1.2 var(--body)}
.ka-stamp span{color:var(--go)}
.ka-indie{max-width:46rem;margin:1rem 0 0;color:var(--muted);font-size:1rem}
.ka-sub{color:var(--muted);font-size:.95rem}

/* Guide cards: a grid of photo links that never collapses to empty */
.ka-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px;margin-top:1.6rem}
.ka-card{position:relative;display:block;aspect-ratio:4/3;border-radius:20px;overflow:hidden;text-decoration:none;color:var(--text);border:1px solid var(--line);background:#14161b;isolation:isolate}
.ka-card .ph{position:absolute;inset:0;z-index:-2}
.ka-card .ph img{transition:transform 1.2s var(--ease)}
.ka-card:hover .ph img{transform:scale(1.06)}
.ka-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,9,12,.05) 25%,rgba(8,9,12,.93))}
.ka-card-t{position:absolute;left:20px;right:20px;bottom:18px;display:grid;gap:5px}
.ka-card-k{font:600 .9rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.ka-card-t b{font:800 1.85rem/1 var(--display);text-transform:uppercase}
.ka-card-t span:last-child{color:#DCD8D0;font-size:1rem;line-height:1.45}
.ka-card:hover{border-color:var(--gold);color:var(--text)}
@media (max-width:560px){.ka-card{aspect-ratio:auto;min-height:280px}}

/* Tool form + output */
.ka-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px 20px;align-items:end}
.ka-form .field>span{color:var(--text);font-weight:600}
.ka-form select{appearance:auto}
.ka-form input[type=date],.ka-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}
.ka-out{margin-top:1.4rem;padding:clamp(16px,2.6vw,24px);border-radius:16px;background:var(--night);border:1px solid var(--line)}
.ka-big{margin:0 0 .6rem;font-size:1.1rem;color:var(--muted)}
.ka-big b{display:block;font:800 clamp(2.2rem,5vw,3.4rem)/1 var(--display);color:var(--gold);font-variant-numeric:tabular-nums;text-transform:uppercase}
.ka-twin{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.ka-flags{list-style:none;margin:.8rem 0 0;padding:0;display:grid;gap:8px}
.ka-flags li{padding:12px 14px 12px 16px;border-radius:10px;background:var(--panel);border-left:4px solid var(--line-2);color:var(--text)}
.ka-flags li.warn{border-left-color:var(--warn);background:rgba(255,184,107,.08)}
.ka-flags li.bad{border-left-color:var(--bad);background:rgba(255,143,118,.1)}
.ka-flags li.ok{border-left-color:var(--go);background:rgba(59,208,122,.08)}
.ka-warn{margin:1rem 0 0;padding:12px 14px;border-left:4px solid var(--warn);background:rgba(255,184,107,.08);border-radius:8px}
.ka-save{margin:1rem 0 0;font-weight:600;color:var(--go)}
.ka-steps{list-style:none;margin:1rem 0;padding:0;display:grid;gap:8px;counter-reset:s}
.ka-steps li{display:grid;grid-template-columns:7.2em minmax(0,1fr);gap:12px;align-items:baseline;padding:10px 12px;border-radius:10px;background:var(--panel)}
.ka-steps b{font:700 1.25rem/1 var(--display);color:var(--gold);font-variant-numeric:tabular-nums}

/* Cost rows with bars */
.ka-rows{display:grid;gap:10px;margin-top:.6rem}
.ka-row{display:grid;grid-template-columns:minmax(0,13em) minmax(0,1fr) 5.5em;gap:14px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--line);transition:border-color .3s}
.ka-row.best{border-color:var(--go)}
.ka-row-n{font-weight:600}
.ka-row-n small{display:block;color:var(--muted);font-weight:400;font-size:.92rem}
.ka-row-bar{height:14px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}
.ka-row-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--orange));transition:width .5s var(--ease)}
.ka-row.best .ka-row-bar i{background:var(--go)}
.ka-row>b{text-align:right;font:800 1.6rem/1 var(--display);font-variant-numeric:tabular-nums}
.ka-row.na{opacity:.55}
@media (max-width:600px){.ka-row{grid-template-columns:minmax(0,1fr) auto}.ka-row-bar{grid-column:1/-1;order:3}}

/* 24-hour strip */
.ka-strip{position:relative;height:58px;margin:1.4rem 0 .4rem;border-radius:10px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px calc(100%/24)),var(--panel);border:1px solid var(--line)}
.ka-peak{position:absolute;top:0;bottom:22px;background:rgba(255,130,0,.38);border-left:2px solid var(--orange);border-right:2px solid var(--orange)}
.ka-mark{position:absolute;top:-6px;bottom:18px;width:3px;margin-left:-1px;background:var(--text);transition:left .4s var(--ease)}
.ka-mark em{position:absolute;top:-1.5em;left:50%;transform:translateX(-50%);font:600 .9rem/1 var(--body);font-style:normal;white-space:nowrap;color:var(--text)}
.ka-tick{position:absolute;bottom:2px;font:600 .9rem/1 var(--mono);color:var(--muted);transform:translateX(4px)}

/* Passenger bars */
.ka-bars{margin:1.6rem 0 0;display:grid;gap:10px}
.ka-bar-row{display:grid;grid-template-columns:6.4em minmax(0,1fr) 7.6em;gap:14px;align-items:center}
.ka-bar-y{font:700 1.3rem/1 var(--display)}
.ka-bar-y small{display:block;font:500 .9rem/1.2 var(--body);color:var(--muted);text-transform:none}
.ka-bar-track{position:relative;height:26px;border-radius:8px;background:rgba(255,255,255,.05)}
.ka-bar-track i{position:absolute;left:0;top:0;bottom:0;border-radius:8px;background:linear-gradient(90deg,var(--gold),var(--orange))}
.ka-bar-row.f .ka-bar-track i{background:repeating-linear-gradient(135deg,rgba(255,130,0,.55) 0 8px,rgba(255,130,0,.2) 8px 16px)}
.ka-cap{position:absolute;top:-4px;bottom:-4px;border-left:2px dashed #fff}
.ka-bar-row>b{text-align:right;font:700 1.15rem/1 var(--display);font-variant-numeric:tabular-nums}
.ka-bars figcaption{color:var(--muted);font-size:1rem;margin-top:.6rem}
.ka-cap-key{display:inline-block;width:0;height:1em;border-left:2px dashed #fff;margin-right:6px;vertical-align:middle}
@media (max-width:560px){.ka-bar-row{grid-template-columns:4.6em minmax(0,1fr) 6.4em;gap:8px}.ka-bar-row>b{font-size:1rem}}

/* Schematic (terminal + curbs) */
.ka-schem-wrap{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;align-items:start}
@media (max-width:900px){.ka-schem-wrap{grid-template-columns:minmax(0,1fr)}}
.ka-schem{width:100%;height:auto;background:var(--night);border:1px solid var(--line);border-radius:14px}
.ka-schem .bldg{fill:#1B1F27;stroke:rgba(255,255,255,.22);stroke-width:2}
.ka-schem .conc{fill:#20252E;stroke:rgba(255,255,255,.22);stroke-width:2}
.ka-schem .road{fill:none;stroke:#2A2F38;stroke-width:22;stroke-linecap:round}
.ka-schem .road-l{fill:none;stroke:rgba(255,255,255,.25);stroke-width:1.5;stroke-dasharray:8 8}
.ka-schem .lbl{font:600 15px var(--body);fill:var(--muted)}
.ka-schem .lbl-b{font:800 20px var(--display);fill:var(--text);letter-spacing:.04em;text-transform:uppercase}
.ka-schem .gate circle{fill:#2A303B;stroke:var(--gold);stroke-width:2}
.ka-schem .gate text{font:700 15px var(--mono);fill:var(--text);text-anchor:middle;dominant-baseline:central}
.ka-spot{cursor:pointer}
.ka-spot circle.hit{fill:var(--orange);stroke:#fff;stroke-width:2;transition:r .2s}
.ka-spot text{font:800 14px var(--display);fill:#16130A;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.ka-spot:hover circle.hit,.ka-spot:focus circle.hit,.ka-spot.on circle.hit{fill:var(--gold);r:17}
.ka-spot:focus{outline:none}
.ka-spot:focus-visible circle.hit{stroke:var(--orange);stroke-width:4}
.ka-hide{display:none}
.ka-legend{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ka-legend li button{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;width:100%;min-height:48px;text-align:left;padding:8px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--line);color:var(--text);font:500 1rem/1.35 var(--body);cursor:pointer}
.ka-legend li button[aria-pressed="true"]{border-color:var(--gold);background:rgba(255,184,28,.08)}
.ka-legend li button i{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--orange);color:#16130A;font:800 .95rem/1 var(--display);font-style:normal}
.ka-detail{margin-top:12px;padding:14px 16px;border-radius:12px;background:var(--night);border:1px solid var(--line-2);min-height:5em}
.ka-detail b{display:block;font:800 1.35rem/1.1 var(--display);text-transform:uppercase;margin-bottom:4px}
.ka-detail p{margin:0;color:var(--muted)}
.ka-approx{display:inline-block;margin:.6rem 0 0;padding:6px 12px;border-radius:999px;background:rgba(255,184,107,.12);border:1px solid rgba(255,184,107,.4);color:var(--warn);font:600 .95rem/1.2 var(--body)}

/* Open-now food list */
.ka-food{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:8px}
.ka-food li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.ka-food li small{grid-column:1;color:var(--muted);font-size:.95rem}
.ka-food .st{grid-row:1/3;grid-column:2;font:700 1rem/1 var(--body);padding:8px 12px;border-radius:999px;background:var(--panel-2);color:var(--muted)}
.ka-food li.open{border-color:rgba(59,208,122,.45)}
.ka-food li.open .st{background:rgba(59,208,122,.15);color:var(--go)}
.ka-food li.closed .st{color:var(--bad)}

/* Filterable timeline */
.ka-tl{list-style:none;margin:1.6rem 0 0;padding:0;position:relative}
.ka-tl::before{content:"";position:absolute;left:15px;top:8px;bottom:8px;width:3px;border-radius:3px;background:linear-gradient(var(--gold),var(--orange))}
.ka-tl>li{position:relative;padding:0 0 1.4rem 52px}
.ka-tl>li::before{content:"";position:absolute;left:5px;top:6px;width:20px;height:20px;border-radius:50%;background:var(--night);border:4px solid var(--gold)}
.ka-tl>li.done::before{background:var(--gold)}
.ka-tl>li.now::before{background:var(--orange);border-color:var(--orange);box-shadow:0 0 0 7px rgba(255,130,0,.22)}
.ka-tl>li.plan::before{border-style:dashed}
.ka-tl>li[hidden]{display:none}
.ka-tl time{display:block;font:800 1.35rem/1 var(--display);color:var(--gold);text-transform:uppercase;letter-spacing:.03em}
.ka-tl h3{font-size:1.55rem;margin:.35rem 0 .3rem}
.ka-tl p{color:var(--muted);margin:0 0 .3rem;max-width:46rem}
.ka-tl .ka-src{font-size:.95rem}
.ka-tl .ka-src a{color:var(--muted)}
.ka-tag{display:inline-block;margin-left:8px;padding:4px 10px;border-radius:999px;font:600 .9rem/1 var(--body);vertical-align:middle;background:var(--panel-2);color:var(--muted);text-transform:none;letter-spacing:0}
.ka-tag.done{color:var(--go)}.ka-tag.now{color:var(--orange)}.ka-tag.plan{color:var(--warn)}
.ka-count{margin:1rem 0 0;color:var(--muted)}

/* Schedule cards (game day) */
.ka-games{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:10px;margin-top:1.2rem}
.ka-game{display:grid;gap:4px;text-align:left;padding:14px 16px;border-radius:14px;background:var(--panel);border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;min-height:96px}
.ka-game b{font:800 1.6rem/1 var(--display);text-transform:uppercase}
.ka-game span{color:var(--muted);font-size:1rem}
.ka-game[aria-pressed="true"]{border-color:var(--gold);background:rgba(255,184,28,.08)}
.ka-game.past b{color:var(--muted)}
.ka-game em{font-style:normal;font:600 .9rem/1 var(--body);color:var(--go)}
.ka-game.past em{color:var(--dim)}
.ka-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px;margin:.6rem 0 0}
.ka-kv div{padding:12px 14px;border-radius:12px;background:var(--panel)}
.ka-kv dt{color:var(--muted);font-size:.95rem}
.ka-kv dd{margin:2px 0 0;font-weight:600}

/* Bag checker verdict */
.ka-verdict{display:flex;gap:14px;align-items:center;padding:16px;border-radius:14px;border:1px solid var(--line-2);background:var(--panel)}
.ka-verdict b{font:800 clamp(1.8rem,4vw,2.4rem)/1 var(--display);text-transform:uppercase}
.ka-verdict.yes{border-color:var(--go)}.ka-verdict.yes b{color:var(--go)}
.ka-verdict.no{border-color:var(--bad)}.ka-verdict.no b{color:var(--bad)}
.ka-verdict.maybe b{color:var(--warn)}
.ka-bagviz{width:120px;flex:0 0 auto}
.ka-bagviz rect{fill:rgba(255,255,255,.06);stroke:var(--muted);stroke-width:2;stroke-dasharray:6 5}
.ka-bagviz rect.you{fill:rgba(255,184,28,.25);stroke:var(--gold);stroke-dasharray:none;transition:all .4s var(--ease)}
@media (max-width:480px){.ka-bagviz{width:84px}}

/* Small layout helpers */
.ka-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:start}
@media (max-width:860px){.ka-split{grid-template-columns:minmax(0,1fr)}}
.ka-list{margin:0;padding-left:1.2rem;color:var(--muted)}
.ka-list li{margin:.4rem 0}
.ka-list strong{color:var(--text)}
.ka-pill-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:.6rem}
.ka-mono{font-family:var(--mono)}
td .ka-gates{display:flex;flex-wrap:wrap;gap:6px}
td .ka-gates span{display:inline-grid;place-items:center;min-width:36px;height:36px;border-radius:50%;border:2px solid var(--gold);font:700 1rem/1 var(--mono)}
.ka-schem .gdot{fill:#2A303B;stroke:var(--gold);stroke-width:2}
.ka-level{margin:0 0 16px}
.ka-level-cap{font:800 1.3rem/1.1 var(--display);text-transform:uppercase;letter-spacing:.03em;margin:0 0 8px}
.ka-quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px;margin-top:1rem}
.ka-q{border:1px solid var(--line);border-radius:14px;padding:14px 16px 16px;margin:0;display:grid;gap:12px;min-width:0;background:var(--night)}
.ka-q legend{font:800 1.2rem/1 var(--display);text-transform:uppercase;padding:0 6px;color:var(--gold)}
.ka-curb .ka-zone rect{fill:var(--panel-2);stroke:rgba(255,255,255,.25);stroke-width:2;transition:fill .3s,stroke .3s}
.ka-curb .ka-zone text{font:600 15px var(--body);fill:var(--muted);text-anchor:middle;dominant-baseline:central}
.ka-curb .ka-zone.on rect{fill:rgba(255,130,0,.35);stroke:var(--orange)}
.ka-curb .ka-zone.on text{fill:var(--text)}
@media (prefers-reduced-motion:no-preference){.ka-curb .ka-zone.on rect{animation:kaPulse 1.6s ease-in-out infinite alternate}}
@keyframes kaPulse{from{stroke-width:2}to{stroke-width:5}}
.ka-form input[type=range]{height:44px}
.ka-form input[type=date],.ka-form input[type=time]{height:50px;min-height:50px}
.ka-legend small{font-size:.95rem;color:var(--muted)}
.ka-tool [hidden]{display:none!important}
.ka-schem .lbl{font-size:21px}
.ka-schem .lbl-b{font-size:26px}
.ka-spot circle.hit{r:23px}
.ka-spot text{font-size:22px}
.ka-spot:hover circle.hit,.ka-spot:focus circle.hit,.ka-spot.on circle.hit{r:26px}
.ka-curb .ka-zone text{font-size:17px}
@media (max-width:560px){.ka-card{min-height:230px}.ka-card-t b{font-size:1.6rem}}
