:root{
  --black:#f7f6f0;
  --black-soft:#ffffff;
  --white:#17171a;
  --white-dim:#5c584f;
  --gold:#a9781f;
  --rust:#b1443c;
  --teal:#2e7d6b;
  --steel:#4a6fa5;
  --bronze:#8a7550;
  --gray:#7a7a7a;
  --purple:#7a4a8f;
  --line:#e3ded2;
  --radius:2px;
  --font-display:'Oswald', 'Arial Narrow', sans-serif;
  --font-body:'Inter', -apple-system, 'Segoe UI', sans-serif;
  --font-mono:'JetBrains Mono', 'Courier New', monospace;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--black);
  color:var(--white);
  font-family:var(--font-body);
  min-height:100vh;
}

a{color:inherit;}

/* ---------- HEADER ---------- */
.site-header{
  border-bottom:1px solid var(--line);
  padding:28px 5vw 20px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:16px;
  position:relative;
  overflow:hidden;
}
.brand{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:0.04em;
  font-size:clamp(28px,4vw,44px);
  text-transform:uppercase;
  line-height:1;
}
.brand span{color:var(--gold);}
.tagline{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--white-dim);
  margin-top:6px;
}
.header-meta{
  font-family:var(--font-mono);
  font-size:12px;
  color:var(--white-dim);
  text-align:right;
}
.header-meta a{
  color:var(--gold);
  text-decoration:none;
  border-bottom:1px solid var(--gold);
}
.radar-sweep{
  position:absolute;
  right:-60px;
  top:-60px;
  width:220px;
  height:220px;
  border-radius:50%;
  border:1px solid var(--line);
  opacity:0.5;
  pointer-events:none;
}
.radar-sweep::before,.radar-sweep::after{
  content:'';
  position:absolute;
  inset:30px;
  border-radius:50%;
  border:1px solid var(--line);
}
.radar-sweep .sweep-arm{
  position:absolute;
  left:50%;top:50%;
  width:50%;
  height:1px;
  background:linear-gradient(90deg, var(--gold), transparent);
  transform-origin:0 0;
  animation:sweep 6s linear infinite;
  opacity:0.8;
}
@keyframes sweep{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .sweep-arm{animation:none;} }

/* ---------- CONTROLS ---------- */
.controls{
  padding:18px 5vw;
  border-bottom:1px solid var(--line);
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
  background:var(--black-soft);
}
.search-wrap{
  flex:1 1 260px;
  position:relative;
}
#search{
  width:100%;
  background:transparent;
  border:1px solid var(--line);
  color:var(--white);
  padding:11px 14px;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.03em;
  border-radius:var(--radius);
}
#search::placeholder{color:var(--gray);}
#search:focus{outline:2px solid var(--gold); outline-offset:0;}

.sort-wrap select{
  background:var(--black);
  color:var(--white);
  border:1px solid var(--line);
  padding:11px 12px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.03em;
  border-radius:var(--radius);
}
.sort-wrap select:focus{outline:2px solid var(--gold);}

.filter-row{
  padding:14px 5vw 0;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.filter-label{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--gray);
  margin-right:6px;
}
.chip{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.04em;
  text-transform:uppercase;
  padding:7px 12px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--white-dim);
  cursor:pointer;
  border-radius:20px;
  transition:all .15s ease;
}
.chip:hover{border-color:var(--gold); color:var(--white);}
.chip:focus-visible{outline:2px solid var(--gold);}
.chip.active{
  background:var(--white);
  color:var(--black);
  border-color:var(--white);
  font-weight:600;
}
.chip[data-cat="Heavy Jet"].active{background:var(--rust); border-color:var(--rust); color:#f6f5f1;}
.chip[data-cat="Super Midsize Jet"].active{background:var(--gold); border-color:var(--gold); color:#141410;}
.chip[data-cat="Midsize Jet"].active{background:var(--teal); border-color:var(--teal); color:#f6f5f1;}
.chip[data-cat="Light Jet"].active{background:var(--steel); border-color:var(--steel); color:#f6f5f1;}
.chip[data-cat="Turboprop"].active{background:var(--bronze); border-color:var(--bronze); color:#f6f5f1;}
.chip[data-cat="Piston/Trainer"].active{background:var(--gray); border-color:var(--gray); color:#f6f5f1;}
.chip[data-cat="Airliner (VIP/BBJ)"].active{background:var(--purple); border-color:var(--purple); color:#f6f5f1;}

/* ---------- RESULT COUNT ---------- */
.result-count{
  padding:16px 5vw 0;
  font-family:var(--font-mono);
  font-size:12px;
  color:var(--gray);
  letter-spacing:0.04em;
}

/* ---------- FLIGHT STRIPS ---------- */
.strip-list{
  padding:14px 5vw 60px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.strip{
  display:grid;
  grid-template-columns:100px 1fr auto;
  align-items:center;
  background:var(--black-soft);
  border:1px solid var(--line);
  border-left:4px solid var(--cat-color, var(--gold));
  border-radius:var(--radius);
  overflow:hidden;
}
.strip-tail{
  font-family:var(--font-mono);
  font-weight:700;
  font-size:15px;
  letter-spacing:0.03em;
  padding:16px 14px;
  border-right:1px dashed var(--line);
  color:var(--white);
}
.strip-body{
  padding:14px 16px;
  display:grid;
  gap:4px;
  min-width:0;
}
.strip-model{
  font-family:var(--font-display);
  font-size:18px;
  letter-spacing:0.01em;
  text-transform:uppercase;
  overflow-wrap:anywhere;
}
.strip-meta{
  font-family:var(--font-mono);
  font-size:11.5px;
  color:var(--white-dim);
  display:flex;
  flex-wrap:wrap;
  gap:4px 14px;
}
.strip-meta .cat-tag{
  color:var(--cat-color, var(--gold));
  font-weight:600;
  text-transform:uppercase;
}
.strip-actions{
  padding:14px 18px 14px 6px;
  display:flex;
  align-items:center;
  gap:10px;
}
.track-btn{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  text-decoration:none;
  padding:10px 16px;
  border:1px solid var(--white);
  color:var(--white);
  background:transparent;
  border-radius:var(--radius);
  white-space:nowrap;
  transition:all .15s ease;
}
.track-btn:hover{background:var(--white); color:var(--black);}
.track-btn:focus-visible{outline:2px solid var(--gold);}

@media (max-width:640px){
  .strip{grid-template-columns:1fr;}
  .strip-tail{border-right:none; border-bottom:1px dashed var(--line); padding:10px 14px;}
  .strip-actions{padding:0 14px 16px;}
}

.empty-state{
  padding:60px 5vw;
  text-align:center;
  font-family:var(--font-mono);
  color:var(--gray);
  letter-spacing:0.05em;
}

/* ---------- FOOTER ---------- */
.site-footer{
  border-top:1px solid var(--line);
  padding:20px 5vw;
  font-family:var(--font-mono);
  font-size:11px;
  color:var(--gray);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
}
.site-footer a{color:var(--white-dim); text-decoration:none; border-bottom:1px solid var(--line);}
.site-footer a:hover{color:var(--gold); border-color:var(--gold);}

/* ---------- ADMIN ---------- */
.admin-shell{
  max-width:920px;
  margin:0 auto;
  padding:60px 5vw 80px;
}
.login-card{
  max-width:380px;
  margin:60px auto;
  border:1px solid var(--line);
  border-top:4px solid var(--gold);
  background:var(--black-soft);
  padding:32px 28px;
  border-radius:var(--radius);
}
.login-card h1{
  font-family:var(--font-display);
  text-transform:uppercase;
  font-size:22px;
  letter-spacing:0.03em;
  margin:0 0 6px;
}
.login-card p.sub{
  font-family:var(--font-mono);
  font-size:11px;
  color:var(--gray);
  margin:0 0 26px;
}
.field{margin-bottom:16px;}
.field label{
  display:block;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--white-dim);
  margin-bottom:6px;
}
.field input{
  width:100%;
  background:var(--black);
  border:1px solid var(--line);
  color:var(--white);
  padding:11px 12px;
  font-family:var(--font-mono);
  font-size:13px;
  border-radius:var(--radius);
}
.field input:focus{outline:2px solid var(--gold);}
.captcha-row{
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--black);
  border:1px solid var(--line);
  padding:10px 12px;
  border-radius:var(--radius);
}
.captcha-question{
  font-family:var(--font-mono);
  font-size:14px;
  letter-spacing:0.05em;
  flex:1;
}
.captcha-refresh{
  background:none;
  border:1px solid var(--line);
  color:var(--white-dim);
  padding:6px 9px;
  cursor:pointer;
  font-family:var(--font-mono);
  border-radius:var(--radius);
}
.btn-primary{
  width:100%;
  margin-top:20px;
  background:var(--gold);
  color:#141410;
  border:none;
  padding:13px;
  font-family:var(--font-mono);
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-size:12px;
  cursor:pointer;
  border-radius:var(--radius);
}
.btn-primary:hover{filter:brightness(1.08);}
.error-msg{
  color:var(--rust);
  font-family:var(--font-mono);
  font-size:12px;
  margin-top:14px;
  min-height:16px;
}

.admin-topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding-bottom:16px;
  margin-bottom:24px;
  flex-wrap:wrap;
  gap:10px;
}
.admin-topbar h1{
  font-family:var(--font-display);
  text-transform:uppercase;
  font-size:24px;
  margin:0;
}
.btn-ghost{
  background:none;
  border:1px solid var(--line);
  color:var(--white-dim);
  padding:9px 14px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  cursor:pointer;
  border-radius:var(--radius);
}
.btn-ghost:hover{border-color:var(--gold); color:var(--white);}

.admin-form{
  border:1px solid var(--line);
  border-top:4px solid var(--teal);
  background:var(--black-soft);
  padding:22px;
  margin-bottom:30px;
  border-radius:var(--radius);
}
.admin-form h2{
  font-family:var(--font-display);
  text-transform:uppercase;
  font-size:16px;
  margin:0 0 16px;
  letter-spacing:0.03em;
}
.form-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:14px;
}
.form-grid .field{margin-bottom:0;}
.form-grid select{
  width:100%;
  background:var(--black);
  border:1px solid var(--line);
  color:var(--white);
  padding:11px 12px;
  font-family:var(--font-mono);
  font-size:13px;
  border-radius:var(--radius);
}
.form-actions{
  margin-top:18px;
  display:flex;
  gap:10px;
}
.btn-save{
  background:var(--teal);
  color:#f6f5f1;
  border:none;
  padding:11px 20px;
  font-family:var(--font-mono);
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  font-size:12px;
  cursor:pointer;
  border-radius:var(--radius);
}
.btn-cancel{
  background:none;
  border:1px solid var(--line);
  color:var(--white-dim);
  padding:11px 20px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  cursor:pointer;
  border-radius:var(--radius);
}

.admin-table-wrap{overflow-x:auto;}
table.admin-table{
  width:100%;
  border-collapse:collapse;
  font-family:var(--font-mono);
  font-size:12.5px;
}
table.admin-table th{
  text-align:left;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--gray);
  font-weight:600;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  white-space:nowrap;
}
table.admin-table td{
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}
table.admin-table tr:hover td{background:rgba(0,0,0,0.03);}
.row-actions{display:flex; gap:8px;}
.link-btn{
  background:none;
  border:none;
  color:var(--gold);
  cursor:pointer;
  font-family:var(--font-mono);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.04em;
  padding:0;
  text-decoration:underline;
}
.link-btn.danger{color:var(--rust);}
.note-banner{
  border:1px solid var(--line);
  border-left:3px solid var(--gold);
  padding:12px 16px;
  font-family:var(--font-mono);
  font-size:11.5px;
  color:var(--white-dim);
  margin-bottom:24px;
  line-height:1.6;
}
