/* AirportCo — Hubud Airports Directory (UI v1.2) */
.ac-airports{
  --bg:#f8fafc;
  --card:#ffffff;
  --ink:#0f172a;
  --muted:rgba(15,23,42,.66);
  --line:rgba(15,23,42,.10);
  --line2:rgba(15,23,42,.14);
  --soft:rgba(15,23,42,.05);
  --shadow:0 18px 46px rgba(15,23,42,.10);
  --r:18px;
  max-width:1180px;
  margin:0 auto;
  padding:12px;
  color:var(--ink);
}
@media(min-width:768px){.ac-airports{padding:18px}}
.ac-airports *{box-sizing:border-box}
.ac-airports :where(h1,h2,h3,p){margin:0}

.ac-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.ac-head{padding:14px 14px 12px;margin-bottom:12px}
@media(min-width:768px){.ac-head{padding:18px 18px 14px}}
.ac-title h2{font-size:20px;line-height:1.2;font-weight:800}
@media(min-width:768px){.ac-title h2{font-size:24px}}
.ac-sub{margin:6px 0 0;color:var(--muted);font-size:13px}
.ac-crumbs{margin-top:10px;font-size:13px}
.ac-crumbs a{color:#0f172a;text-decoration:none}
.ac-crumbs a:hover{text-decoration:underline}

.ac-hero{
  position:relative;
  padding:14px;
  border-radius:var(--r);
  border:1px solid var(--line);
  background:
    radial-gradient(900px 400px at 0% 0%, rgba(59,130,246,.10), transparent 60%),
    radial-gradient(700px 350px at 100% 0%, rgba(16,185,129,.10), transparent 55%),
    linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
  box-shadow:0 12px 32px rgba(15,23,42,.08);
}
@media(min-width:768px){.ac-hero{padding:18px}}
.ac-hero-top{
  display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap
}
.ac-hero h2{font-size:22px;line-height:1.15;font-weight:900;letter-spacing:-.02em}
@media(min-width:768px){.ac-hero h2{font-size:30px}}
.ac-hero .ac-loc{margin-top:6px;color:var(--muted);font-size:13px}
.ac-actions{display:flex;gap:8px;flex-wrap:wrap}
.ac-btn, .ac-btn2, .ac-btn3{
  height:40px;border-radius:12px;border:1px solid var(--line2);
  padding:0 14px;background:#0f172a;color:#fff;font-weight:700;cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;
}
.ac-btn2{background:#fff;color:#0f172a}
.ac-btn3{background:#2563eb;border-color:rgba(37,99,235,.30);color:#fff}
.ac-btn:disabled,.ac-btn2:disabled,.ac-btn3:disabled{opacity:.45;cursor:not-allowed}
.ac-btn2:hover{background:#f8fafc}
.ac-btn3:hover{filter:brightness(.98)}

.ac-alert{margin-top:10px;padding:10px 12px;border-radius:12px;font-size:13px}
.ac-bad{background:#fff1f2;border:1px solid rgba(190,18,60,.18);color:#9f1239}

.ac-filters{
  display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;align-items:flex-end
}
.ac-field{display:flex;flex-direction:column;gap:6px;min-width:200px}
.ac-field span{font-size:12px;color:rgba(15,23,42,.72);font-weight:700}
.ac-field select,.ac-field input{
  width:100%;height:42px;border-radius:12px;border:1px solid var(--line2);
  padding:0 12px;font-size:14px;outline:none;background:#fff
}
.ac-field input::placeholder{color:rgba(15,23,42,.45)}
.ac-field select:disabled{opacity:.6;background:#f8fafc}
.ac-grow{flex:1;min-width:220px}

.ac-toolbar{
  display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  margin-top:12px;padding:10px 12px;border-radius:14px;background:rgba(15,23,42,.03);
  border:1px solid rgba(15,23,42,.06)
}
.ac-pageinfo{font-size:12px;color:rgba(15,23,42,.65)}
.ac-pager{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

.ac-body{padding:12px}
@media(min-width:768px){.ac-body{padding:16px}}

.ac-grid{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:980px){.ac-grid{grid-template-columns:1fr}}

.ac-list{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
.ac-list-head{
  display:none;
  background:linear-gradient(180deg,#ffffff 0%, #fbfbfd 100%);
  border-bottom:1px solid var(--line);
  padding:10px 12px;
  font-size:12px;
  color:rgba(15,23,42,.70);
  font-weight:800;
}
@media(min-width:860px){
  .ac-list-head{display:grid;grid-template-columns:1.3fr .8fr .9fr;gap:10px}
  .ac-list-body .ac-row{display:grid;grid-template-columns:1.3fr .8fr .9fr;gap:10px}
}
.ac-list-body{padding:10px}
@media(min-width:860px){.ac-list-body{padding:0}}
.ac-row{
  border:1px solid rgba(15,23,42,.08);
  border-radius:14px;
  padding:12px;
  background:#fff;
  box-shadow:0 10px 26px rgba(15,23,42,.06);
  margin-bottom:10px;
}
@media(min-width:860px){
  .ac-row{
    border:none;border-bottom:1px solid rgba(15,23,42,.06);
    border-radius:0; box-shadow:none; margin:0; padding:14px 12px;
  }
  .ac-row:last-child{border-bottom:none}
}
.ac-row-link:hover{background:rgba(15,23,42,.02)}
.ac-row-empty{color:rgba(15,23,42,.65);font-size:13px}

.ac-row-name .ac-n{font-weight:900;letter-spacing:-.01em}
.ac-row-name .ac-m{margin-top:4px;color:rgba(15,23,42,.62);font-size:12px}
.ac-row-codes,.ac-row-loc{margin-top:8px;color:rgba(15,23,42,.72);font-size:13px}
@media(min-width:860px){
  .ac-row-codes,.ac-row-loc{margin-top:0}
}
.ac-mini{margin-top:10px;font-size:12px}
.ac-mini a{color:#2563eb;text-decoration:none;font-weight:800}
.ac-mini a:hover{text-decoration:underline}

.ac-foot{margin-top:12px;color:rgba(15,23,42,.55);text-align:center;font-size:12px}

/* =========================
 * DETAIL LAYOUT v1.3.0
 * ========================= */
.ac-detail-layout{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:980px){
  .ac-detail-layout{grid-template-columns:360px 1fr;gap:16px;align-items:start}
  .ac-side{position:sticky;top:14px}
}
.ac-side-card{
  background:#fff;
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  padding:12px;
  box-shadow:0 12px 30px rgba(15,23,42,.06);
  margin-bottom:12px;
}
.ac-side-title{font-weight:900;font-size:13px;margin-bottom:10px;color:rgba(15,23,42,.85)}
.ac-side-pills{display:flex;flex-wrap:wrap;gap:8px}
.ac-side-mini{font-size:13px;line-height:1.45}
.ac-muted{color:rgba(15,23,42,.66)}

/* Map card */
.ac-mapbox{
  width:100%;
  border:1px solid rgba(15,23,42,.10);
  border-radius:14px;
  overflow:hidden;
  background:rgba(15,23,42,.02);
}
.ac-mapbox iframe{display:block;width:100%;height:190px;border:0}
.ac-map{
  display:inline-flex;align-items:center;justify-content:center;
  width:100%;margin-top:10px;
  height:40px;border-radius:12px;
  border:1px solid rgba(15,23,42,.12);
  background:#fff;color:#0f172a;
  font-weight:800;text-decoration:none;
}
.ac-map:hover{background:#f8fafc}

.ac-dh2{margin-bottom:8px}
.ac-dname{font-size:20px;font-weight:900;letter-spacing:-.01em}
@media(min-width:768px){.ac-dname{font-size:22px}}
.ac-dsub{margin-top:4px;color:rgba(15,23,42,.66);font-size:13px}

.ac-kvlist{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:860px){.ac-kvlist{grid-template-columns:1fr 1fr}}
.ac-kvrow{border:1px solid rgba(15,23,42,.08);border-radius:14px;padding:10px 12px;background:#fff}
.ac-kvrow .ac-k{font-size:12px;color:rgba(15,23,42,.65);font-weight:800}
.ac-kvrow .ac-v{margin-top:6px;font-size:14px;font-weight:700;color:#0f172a;word-break:break-word}

/* DETAIL PAGE */
.ac-detail{width:100%}
.ac-detail-inner{display:block}
.ac-dh{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.ac-dname{font-size:22px;font-weight:900;letter-spacing:-.02em;line-height:1.15}
.ac-dsub{margin-top:6px;color:rgba(15,23,42,.62);font-size:13px}
.ac-dcodes{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
.ac-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 10px;border-radius:999px;
  background:rgba(15,23,42,.04);
  border:1px solid rgba(15,23,42,.08);
  font-size:12px;font-weight:800;color:#0f172a
}
.ac-dmeta{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:14px;
}
@media(min-width:860px){.ac-dmeta{grid-template-columns:repeat(3,1fr)}}
.ac-kv{
  padding:12px;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.08);
  background:linear-gradient(180deg,#ffffff 0%, #fbfbfd 100%);
}
.ac-k{font-size:12px;color:rgba(15,23,42,.65);font-weight:800}
.ac-v{margin-top:6px;font-size:13px;font-weight:800}
.ac-links{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.ac-links a{color:#0f172a}

.ac-block{margin-top:14px}
.ac-acc{
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  background:#fff;
  box-shadow:0 12px 30px rgba(15,23,42,.06);
  overflow:hidden;
}
.ac-acc + .ac-acc{margin-top:10px}
.ac-acc summary{
  list-style:none;
  cursor:pointer;
  padding:14px 14px;
  font-weight:900;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:linear-gradient(180deg,#ffffff 0%, #fbfbfd 100%);
}
.ac-acc summary::-webkit-details-marker{display:none}
.ac-acc summary .ac-smeta{font-weight:800;font-size:12px;color:rgba(15,23,42,.55)}
.ac-acc .ac-acc-body{padding:12px 14px 14px}

.ac-meta{padding:0}
.ac-meta-sec{margin-top:10px}
.ac-meta-sec-h{font-weight:900;margin-bottom:8px}
.ac-meta-grid{display:grid;grid-template-columns:1fr;gap:8px}
@media(min-width:860px){.ac-meta-grid{grid-template-columns:repeat(2,1fr)}}
.ac-meta-item{padding:10px 12px;border-radius:14px;border:1px solid rgba(15,23,42,.08);background:#fff}
.ac-meta-k{font-size:12px;color:rgba(15,23,42,.65);font-weight:800}
.ac-meta-v{margin-top:6px;font-size:13px;font-weight:800}

.ac-section{margin-top:10px}
.ac-section-h{font-weight:900;margin-bottom:8px}
.ac-tablewrap{overflow:auto;border:1px solid rgba(15,23,42,.08);border-radius:14px}
.ac-table{width:100%;border-collapse:separate;border-spacing:0;min-width:520px}
.ac-table th,.ac-table td{padding:10px 12px;border-bottom:1px solid rgba(15,23,42,.06);text-align:left;font-size:13px}
.ac-table th{position:sticky;top:0;background:#fff;font-weight:900}
.ac-table tr:last-child td{border-bottom:none}

/* Small screen density */
@media(max-width:480px){
  .ac-airports{padding:10px}
  .ac-head{padding:12px}
  .ac-body{padding:10px}
  .ac-toolbar{padding:10px}
  .ac-field{min-width:160px}
}

.ac-statusbar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:10px}
.ac-status{font-size:12px;color:rgba(15,23,42,.60);font-weight:800}

/* Progressive disclosure: keep the page clean by default */
.ac-toolbar{display:flex;justify-content:flex-end;gap:10px;margin:2px 0 10px}
[data-ac-adv]{display:none}
.ac-show-adv [data-ac-adv]{display:block}
