/* KiwiSurf web app kit (assets/app/app.js): search sheet + inline search, favourites, install card, toast. Self-contained,
   every class starts with ksa-, so site.css, spot.css, hub.css and /ks/ks.css cannot change it. */
.ksa-sheet{position:fixed;inset:0;z-index:80;display:none;align-items:flex-start;justify-content:center;padding:72px 12px 12px;background:rgba(13,11,28,.42);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.ksa-sheet.on{display:flex}
html.ksa-lock{overflow:hidden}
.ksa-box{width:100%;max-width:640px;overflow:hidden;border-radius:18px;background:#fdfdfa;color:#1d1d1c;box-shadow:0 24px 60px -20px rgba(0,0,0,.45),0 0 0 1px #edeae4;
  font:400 16px/24px 'Nunito Sans','Nunito Sans fb',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;text-align:left}
.ksa-head{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 16px;border-bottom:1px solid #edeae4}
.ksa-head>svg{width:20px;height:20px;color:#6b6a64;flex:none}
.ksa-q{flex:1;min-width:0;height:44px;margin:0;padding:0;border:0;background:transparent;font:600 18px/24px inherit;color:inherit;outline:none;-webkit-appearance:none;appearance:none}
.ksa-q::placeholder{color:#a4a39d;font-weight:500}
.ksa-q::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.ksa-x{flex:none;height:36px;padding:0 12px;border:0;border-radius:10px;background:#f5f3ea;font:700 13px/1 inherit;color:#43423e;cursor:pointer}
.ksa-res{max-height:min(60vh,520px);overflow-y:auto;padding:6px}
.ksa-r{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding:10px 12px;border-radius:12px;color:inherit;text-decoration:none}
.ksa-r:hover,.ksa-r[aria-selected=true]{background:#f5f3ea}
.ksa-r>span:first-child{display:flex;flex-direction:column;min-width:0}
.ksa-rt{font:700 16px/22px inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ksa-rs{font:500 13px/18px inherit;color:#6b6a64;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ksa-tag{display:inline-block;margin-left:7px;padding:1px 6px;border-radius:999px;background:#eef0e6;color:#4f5a2a;font:800 11px/16px inherit;letter-spacing:.06em;text-transform:uppercase;vertical-align:2px}
.ksa-rk{display:inline-flex;align-items:center;gap:6px;font:800 13px/1 inherit;color:#1d1d1c;white-space:nowrap;font-variant-numeric:tabular-nums}
.ksa-rk small{font:700 12px/1 inherit;color:#6b6a64}
.ksa-shut{color:#8a4b12;font-weight:700}
.ksa-stars{display:inline-flex;gap:1px}
.ksa-stars svg{display:block}
.ksa-empty{margin:0;padding:14px 16px;color:#6b6a64;font-size:15px;line-height:22px}
.ksa-hint{margin:0;padding:8px 16px 12px;border-top:1px solid #edeae4;font:600 12px/16px inherit;color:#a4a39d}
/* inline search (hub + region hero) */
.ksa-inline{position:relative;max-width:560px;margin:22px 0 0}
.ksa-inline .ksa-q{width:100%;height:52px;padding:0 16px 0 46px;border-radius:14px;background:#fff;box-shadow:0 0 0 1px #d8d6ce,0 10px 22px -14px rgba(0,0,0,.25);font-size:17px;color:#1d1d1c}
.ksa-inline .ksa-q:focus{box-shadow:0 0 0 2px #1a7a42,0 10px 22px -14px rgba(0,0,0,.25)}
.ksa-lens{position:absolute;left:15px;top:15px;width:22px;height:22px;color:#6b6a64;pointer-events:none}
.ksa-lens svg{width:22px;height:22px}
.ksa-inline .ksa-res{position:absolute;left:0;right:0;top:58px;z-index:20;max-height:420px;border-radius:14px;background:#fdfdfa;box-shadow:0 0 0 1px #edeae4,0 18px 40px -16px rgba(0,0,0,.35)}
/* favourites: the star on a hub/region card */
.ksa-fav-c{position:absolute;top:12px;right:12px;z-index:2;display:grid;place-items:center;width:40px;height:40px;margin:0;padding:0;border:0;border-radius:12px;background:rgba(255,255,255,.92);box-shadow:0 0 0 1px #edeae4;cursor:pointer}
.ksa-fav-c svg{width:22px;height:22px;fill:#fff;stroke:#a4a39d;stroke-linejoin:round;stroke-width:2.2}
.ksa-fav-c:hover{background:#fff;box-shadow:0 0 0 1px #a4a39d}
.ksa-fav-c[aria-pressed=true]{background:#fff6d6;box-shadow:0 0 0 1px #e2b63a}
.ksa-fav-c[aria-pressed=true] svg{fill:#ffc83a;stroke:#b06f00}
.ksa-fav-c:focus-visible{outline:2px solid #1a7a42;outline-offset:2px}
/* install card */
.ksa-install{display:none;align-items:center;gap:14px;max-width:1200px;margin:20px auto 0;padding:14px 16px;border-radius:16px;background:#fff;box-shadow:0 0 0 1px #edeae4,0 10px 22px -14px rgba(0,0,0,.2);
  font:400 15px/22px 'Nunito Sans','Nunito Sans fb',system-ui,sans-serif;color:#1d1d1c}
.ksa-install.on{display:flex}
.ksa-install img{width:48px;height:48px;border-radius:12px;flex:none}
.ksa-install>div:nth-child(2){flex:1 1 220px;min-width:0}
.ksa-install b{display:block;font-weight:800}
.ksa-install p{margin:2px 0 0;color:#6b6a64;font-size:14px;line-height:20px}
.ksa-ib{display:flex;gap:8px;flex:none}
.ksa-ib button{height:38px;padding:0 14px;border:0;border-radius:10px;font:700 14px/1 inherit;cursor:pointer}
.ksa-go{background:linear-gradient(0deg,#2c2b29,#43423e);color:#f2f1ec}
.ksa-later{background:#f5f3ea;color:#43423e}
@media (max-width:760px){
  .ksa-install{margin:16px 16px 0;flex-wrap:wrap}
  .ksa-ib{width:100%}.ksa-ib button{flex:1 1 0}
  .ksa-sheet{padding:64px 8px 8px}
}
/* toast */
.ksa-toast{position:fixed;left:50%;bottom:24px;z-index:90;transform:translate(-50%,8px);padding:10px 16px;border-radius:12px;background:#1d1d1c;color:#fdfdfa;font:700 14px/20px 'Nunito Sans','Nunito Sans fb',system-ui,sans-serif;
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.ksa-toast.on{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){.ksa-toast{transition:none}}
