:root {
  --bg: #050806;
  --panel: #071109;
  --line: #173a1a;
  --green: #8dff93;
  --green-soft: #58d95f;
  --green-dim: #2f8f39;
  --text: #baffbf;
  --danger: #ff9898;
}
* { box-sizing: border-box; }
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  background: #020402;
  color: var(--text);
  font-family: Consolas, Monaco, 'Courier New', monospace;
  overflow: hidden;
}
body {
  min-height: 100dvh;
  background-image: radial-gradient(circle at top, #0b1c0e 0%, #030503 55%, #010201 100%);
}
.shell {
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
  height: 100dvh;
  padding: 10px;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
}
.topbar {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 10px 14px;
  border: 1px solid var(--line);
  background: rgba(4,10,5,.82);
  box-shadow: 0 0 30px rgba(0,255,80,.06) inset;
  min-height: 0;
}
.brand { color: var(--green); font-weight: 700; letter-spacing: 2px; }
.subtitle, .statusbox { color: var(--green-soft); font-size: 12px; }
.statusbox { display:flex; align-items:center; gap:8px; white-space:nowrap; }
.dot { width:9px; height:9px; border-radius:50%; background:var(--green); box-shadow:0 0 10px var(--green); display:inline-block; }
.sep { opacity:.55; }
.terminal-layout {
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(300px, .9fr);
  gap: 10px;
  overflow: hidden;
}
.screen, .panel { border:1px solid var(--line); background:rgba(3,8,4,.9); }
.screen {
  min-height: 0;
  display:flex;
  flex-direction:column;
  box-shadow:0 0 60px rgba(0,255,80,.05) inset, 0 0 20px rgba(0,0,0,.5);
  position:relative;
  overflow:hidden;
}
.screen::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(rgba(255,255,255,0.02) 50%, rgba(0,0,0,0.06) 50%);
  background-size:100% 4px;
  pointer-events:none;
  mix-blend-mode:screen;
  opacity:.25;
}
.screen-header {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  border-bottom:1px solid var(--line);
  color:var(--green-soft);
  font-size:12px;
  position:relative;
  z-index:1;
}
.output {
  flex:1;
  min-height:0;
  overflow:auto;
  padding:16px;
  line-height:1.55;
  position:relative;
  z-index:1;
}
.output::-webkit-scrollbar, .sidepanel::-webkit-scrollbar, .table-wrap::-webkit-scrollbar { width:10px; height:10px; }
.output::-webkit-scrollbar-thumb, .sidepanel::-webkit-scrollbar-thumb, .table-wrap::-webkit-scrollbar-thumb { background:#173a1a; }
.bootline { margin-bottom:8px; color:var(--green-soft); }
.commandbar {
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-top:1px solid var(--line);
  background:#051007;
  position:relative;
  z-index:1;
}
.prompt { font-size:24px; color:var(--green); }
.commandbar input {
  flex:1;
  min-width:0;
  background:#000;
  color:var(--green);
  border:1px solid #1e4b23;
  padding:12px 14px;
  font:inherit;
  outline:none;
  width: 100%;
}
.commandbar input:focus { box-shadow:0 0 0 1px var(--green-dim), 0 0 18px rgba(98,255,125,.12) inset; }
.commandbar button, .quick {
  background:#08150a;
  color:var(--green);
  border:1px solid #235428;
  padding:11px 14px;
  font:inherit;
  cursor:pointer;
}
.commandbar button:hover, .quick:hover { background:#0c200f; }
.sidepanel {
  min-height: 0;
  overflow: auto;
  display:grid;
  gap:10px;
  align-content:start;
}
.panel { padding:14px; }
.panel-title { color:var(--green); margin-bottom:12px; letter-spacing:1px; }
.button-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.notes { margin:0; padding-left:18px; color:var(--green-soft); }
.notes li { margin:0 0 8px; }
.smallprint { color:var(--green-soft); font-size:13px; line-height:1.45; }
.smallprint code { color:var(--green); }
.cmdline { color:#d8ffd8; margin:0 0 12px; word-break:break-word; }
.block { margin:0 0 18px; }
.table-wrap { width:100%; overflow:auto; margin-top:8px; }
.table { width:100%; min-width:640px; border-collapse:collapse; }
.table th, .table td { border:1px solid #173a1a; padding:8px 10px; text-align:left; vertical-align:top; }
.table th { color:var(--green); font-weight:700; }
.table tr:nth-child(even) td { background:rgba(18,45,20,.22); }
.muted { color:var(--green-soft); }
.error { color:var(--danger); }
.tagline { margin: 0 0 10px; display:flex; flex-wrap:wrap; gap:6px; }
.tag {
  display:inline-block;
  border:1px solid #245228;
  color:var(--green);
  padding:2px 7px;
  font-size:12px;
  line-height:1.35;
  word-break:break-word;
}
.suggestions .tag { color:#d7ff9f; border-color:#556d25; }
.status-lines { color: var(--green-soft); }

@media (max-width: 980px) {
  .terminal-layout { grid-template-columns: 1fr; }
  .sidepanel { grid-template-columns: 1fr; max-height: 30dvh; }
}

@media (max-width: 640px) {
  .shell { padding: 6px; gap: 6px; }
  .topbar, .screen-header, .commandbar { flex-direction:column; align-items:flex-start; }
  .statusbox { white-space:normal; }
  .button-grid { grid-template-columns:1fr; }
  .commandbar { align-items:stretch; }
  .commandbar button { width:100%; }
  .output { padding: 12px; }
  .table { min-width: 520px; }
}

.table th:first-child,
.table td:first-child { width: 3.5rem; text-align: center; }
.table th:nth-child(3),
.table td:nth-child(3) { white-space: nowrap; }
.table th:nth-child(7),
.table td:nth-child(7) { white-space: nowrap; }
@media (max-width: 900px) {
  .table { font-size: 0.78rem; }
}


.airport-card{border:1px solid #1fa34a;padding:12px;background:rgba(7,16,10,.85);margin-bottom:10px;box-shadow:inset 0 0 0 1px rgba(72,255,132,.15)}
.airport-card-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px;flex-wrap:wrap}
.airport-code{font-size:28px;line-height:1;font-weight:700;border:1px solid #2cd66b;padding:8px 10px;min-width:72px;text-align:center;background:#08110b}
.airport-title{min-width:0;flex:1}
.airport-name{font-size:18px;font-weight:700;margin-bottom:3px}
.airport-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}

.terminal-shutdown{opacity:.72;filter:saturate(.65);}
.terminal-shutdown .block:last-child{animation:shutdownPulse .9s steps(2,end) 1;}
@keyframes shutdownPulse{0%{opacity:1}50%{opacity:.35}100%{opacity:1}}
