:root{
  --bg:#070a0e; --panel:#0e141b; --line:#1d2732; --ink:#d7e3ef; --dim:#7d8fa3;
  --teal:#6fe3d0; --green:#4ade80; --orange:#ff8a6a; --violet:#a78bfa;
  --amber:#fbbf24; --radius:12px;
  color-scheme:dark;
}
*{box-sizing:border-box}
body{
  margin:0;padding:18px 20px 40px;background:var(--bg);color:var(--ink);
  font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;
}
h1{font-size:17px;margin:0 0 3px;letter-spacing:.2px}
h1,.lead,.head{font-weight:600}
p{margin:0}
.dim{color:var(--dim)}
b{color:var(--ink)}

.bar{display:flex;gap:16px;align-items:center;justify-content:space-between;
  flex-wrap:wrap;margin-bottom:14px}
.id p{color:var(--dim);font-size:12px;max-width:62ch}
.ctl{display:flex;gap:10px;align-items:center}
.tag{border:1px solid var(--line);border-radius:999px;padding:5px 12px;
  color:var(--violet);font-size:12px}
.verdict{border:1px solid var(--green);color:var(--green);border-radius:10px;
  padding:9px 18px;font-weight:700;letter-spacing:.6px}
.verdict.held{border-color:var(--amber);color:var(--amber)}
.verdict.dead{border-color:var(--orange);color:var(--orange)}

.btn{background:#121b24;border:1px solid var(--line);color:var(--ink);
  border-radius:9px;padding:8px 14px;font:inherit;cursor:pointer}
.btn:hover{border-color:var(--teal);color:var(--teal)}
.btn.wide{padding:10px 20px;border-color:var(--amber);color:var(--amber)}
.btn.small{padding:5px 10px;font-size:12px}
.btn.on{border-color:var(--teal);color:var(--teal);background:#0f1f22}

.counters{display:grid;gap:10px;margin-bottom:12px;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.counter{background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);padding:12px 14px}
.counter .n{font-size:26px;font-weight:700;line-height:1.1}
.counter .k{color:var(--dim);font-size:10.5px;letter-spacing:.7px;
  text-transform:uppercase;margin-top:4px}
.counter.good{border-color:#1d3b2c}.counter.good .n{color:var(--green)}
.counter.warn .n{color:var(--amber)}
.counter.bad .n{color:var(--orange)}
.counter.info .n{color:var(--teal)}
.counter.alt .n{color:var(--violet)}

.panel{background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);padding:14px;margin-bottom:12px}
.head{display:flex;justify-content:space-between;align-items:center;
  font-size:11px;letter-spacing:.9px;color:var(--dim);margin-bottom:10px}
.note{color:var(--dim);font-size:11.5px;margin-top:10px;line-height:1.5}

.orders-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.lead{color:var(--dim);font-size:12px;white-space:nowrap}
.presets{display:flex;gap:7px;flex-wrap:wrap}
#say{display:flex;gap:7px;flex:1;min-width:260px}
#text{flex:1;min-width:0;background:#0a1016;border:1px solid var(--line);
  color:var(--ink);border-radius:9px;padding:8px 12px;font:inherit}
#text:focus{outline:none;border-color:var(--teal)}

.standing{background:#0f1a18;border:1px solid #1f3b36;border-radius:var(--radius);
  padding:12px 14px;margin-bottom:12px;display:flex;gap:14px;align-items:center;
  flex-wrap:wrap}
.standing ul{list-style:none;margin:0;padding:0;display:flex;gap:8px;
  flex-wrap:wrap;flex:1}
.standing li{border:1px solid var(--line);border-radius:8px;padding:6px 11px;
  font-size:12px;display:flex;gap:9px;align-items:center}
.standing li.on{border-color:var(--teal);color:var(--teal)}
.standing li.off{border-color:#4a3030;color:var(--orange)}
.standing li em{font-style:normal;color:var(--dim);font-size:11px}

main{display:grid;gap:12px;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}
.col{min-width:0}
.view img{width:100%;display:block;border-radius:8px;background:#000;
  image-rendering:pixelated;aspect-ratio:4/3;object-fit:cover}
.live{color:var(--green)}

.chain{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.chain b{border:1px solid var(--line);border-radius:7px;padding:5px 10px;
  font-size:11.5px;font-weight:500;color:var(--dim)}
.chain i{color:#33404d;font-style:normal}

.goals{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.goal{border:1px solid var(--line);border-radius:9px;padding:9px 11px;
  background:#0a1016}
.goal .g{font-weight:600;font-size:12.5px;color:var(--dim)}
.goal .u{font-size:11px;color:var(--dim);margin-top:5px}
.goal.applicable .g{color:var(--ink)}
.goal.chosen{border-color:var(--green);background:#0d1b14}
.goal.chosen .g{color:var(--green)}
.goal.blocked{border-color:#3a2a2a;opacity:.72}
.goal.blocked .g{color:var(--orange);text-decoration:line-through}
.goal .why{font-size:10.5px;color:var(--orange);margin-top:4px}

pre{margin:0;white-space:pre-wrap;font:inherit;color:var(--ink);
  background:#0a1016;border:1px solid var(--line);border-radius:8px;
  padding:11px;min-height:96px}

.row{margin-bottom:9px}
.row .t{display:flex;justify-content:space-between;font-size:11.5px;
  color:var(--dim);margin-bottom:4px}
.row .t b{color:var(--ink);font-weight:600}
.meter{height:6px;background:#0a1016;border-radius:99px;overflow:hidden}
.meter span{display:block;height:100%;background:var(--teal);border-radius:99px}
.meter.warn span{background:var(--amber)}
.meter.bad span{background:var(--orange)}

table{width:100%;border-collapse:collapse;font-size:11px}
td{padding:4px 5px;border-bottom:1px solid #16202b;color:var(--dim);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
td.sig{max-width:0;width:60%;color:var(--ink)}
td.num{text-align:right;font-variant-numeric:tabular-nums}
td.pos{color:var(--green)}td.neg{color:var(--orange)}

#rules{list-style:none;margin:0;padding:0;max-height:250px;overflow:auto}
#rules li.rule{border-left:2px solid var(--orange);padding:7px 0 7px 10px;
  margin-bottom:8px;background:#140f0e;border-radius:0 7px 7px 0}
#rules li.empty{color:var(--dim);font-size:11.5px;line-height:1.5}
.rh{font-size:12px;color:var(--ink)}
.rh b{color:var(--orange);font-weight:700}
.rp{font-size:10.5px;color:var(--teal);margin-top:4px;letter-spacing:.4px}
.rv{font-size:10.5px;color:var(--dim);margin-top:3px}

.log ul{list-style:none;margin:0;padding:0;max-height:168px;overflow:auto}
.log li.rule b{color:var(--orange)}
.log li{padding:5px 0;border-bottom:1px solid #141d26;font-size:11.5px;
  color:var(--dim);display:flex;gap:10px}
.log li b{color:var(--ink);font-weight:500}
.log li.order b{color:var(--teal)}
.log li.refused b{color:var(--orange)}
.log li.episode b{color:var(--violet)}
.log li.error b{color:var(--orange)}
.log li .k{min-width:66px;color:#4b5b6b;text-transform:uppercase;font-size:10px;
  letter-spacing:.6px;padding-top:1px}

footer{margin-top:16px;color:var(--dim);font-size:11.5px}
code{color:var(--teal)}

@media (max-width:900px){
  main{grid-template-columns:1fr}
  body{padding:14px 16px 32px}
}

/* ---- flight console additions ------------------------------------------- */
.view img{aspect-ratio:16/9;image-rendering:auto}
.eye img{width:100%;display:block;border-radius:8px;background:#000;
  image-rendering:pixelated;aspect-ratio:4/3}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg .btn.on{border-color:var(--teal);color:var(--teal);background:#0f1f22}
.route{position:relative;display:grid;gap:3px;margin-top:4px}
.route .blk{border-radius:5px;padding:6px 0 5px;text-align:center;font-size:10.5px;
  color:#061015;font-weight:700;position:relative;min-width:0}
.route .blk small{display:block;font-weight:500;font-size:9.5px;opacity:.8}
.route .blk.high::after{content:"▲ high";position:absolute;top:-15px;left:0;right:0;
  font-size:9px;color:var(--violet);font-weight:600}
.route .blk.here{outline:2px solid #fff;outline-offset:1px}
.route .blk.done{opacity:1}
.axis{display:flex;justify-content:space-between;color:var(--dim);font-size:10px;margin-top:6px}
.stations{display:flex;gap:10px;flex-wrap:wrap;color:var(--dim);font-size:10.5px;margin-top:8px}
.stations span b{color:var(--amber);font-weight:600}
.progress{height:8px;background:#0a1016;border-radius:99px;overflow:hidden;margin-top:10px}
.progress span{display:block;height:100%;background:var(--green)}
svg.curve{width:100%;height:170px;display:block}
.log li.accept b{color:var(--green)}
.log li.failure b{color:var(--orange)}
.log li.converged b{color:var(--violet)}
.log li.lap b{color:var(--ink)}
.log li.mode b,.log li.memory b{color:var(--teal)}
td.acc{color:var(--green)} td.rej{color:var(--dim)}
.table-wrap{max-height:230px;overflow:auto}
