:root{
  --bg:#0d1116; --panel:#161c23; --panel-2:#1d242c; --line:#2b343d; --line-2:#3a4650;
  --ink:#dfe7ee; --dim:#8b98a5; --faint:#5d6a77;
  --live:#2ee08a; --hot:#ff5d55; --amber:#ffb648; --accent:#4ea8ff;
  --r:6px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--ink);
  font:16px/1.55 "IBM Plex Sans",system-ui,-apple-system,Segoe UI,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1{font-size:19px;font-weight:500;margin:0;letter-spacing:.02em}
h1 b{color:var(--live);font-weight:500}
header{
  display:flex;align-items:center;gap:14px;
  padding:14px 22px;border-bottom:1px solid var(--line);background:var(--panel);
}
header .sub{color:var(--faint);font-size:13px}
main{max-width:760px;margin:0 auto;padding:22px}

.hud{display:flex;gap:22px;align-items:baseline;margin-bottom:10px;flex-wrap:wrap}
.stat{font-size:13px;color:var(--dim)}
.stat b{font-size:21px;font-weight:500;color:var(--ink);margin-left:6px}

.clockwrap{height:6px;background:var(--panel);border-radius:99px;overflow:hidden;margin-bottom:14px}
.clock{height:100%;background:var(--accent);width:100%}
.clock.low{background:var(--hot)}

.grid{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:5px;margin-bottom:14px}
.hd,.r{display:flex;align-items:center;height:38px}
.hd{height:28px}
.cell{width:70px;flex:none;text-align:center;font-family:"IBM Plex Mono",monospace;
  font-size:17px;font-weight:500}
.hd .cell{font-family:"IBM Plex Sans",sans-serif;font-size:12px;font-weight:400;color:var(--dim)}
.hd .cell.lane{color:var(--accent)}
.cell.z{color:var(--live)}
.cell.o{color:var(--hot)}
.cell.lane{background:var(--panel-2)}
.cell.target{box-shadow:inset 0 0 0 2px var(--accent);border-radius:5px}
.cell.past{opacity:.3}
.ex{flex:1;font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--dim);
  padding-left:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hd .ex{font-family:"IBM Plex Sans",sans-serif}
.tok{position:absolute;width:22px;height:22px;border-radius:50%;background:var(--ink);
  z-index:4;transition:top .12s linear}

.sw{display:flex;gap:8px;margin-bottom:12px}
.sw button{
  flex:1;background:var(--panel);color:var(--ink);border:1px solid var(--line-2);
  border-radius:var(--r);font-family:"IBM Plex Mono",monospace;font-size:17px;
  padding:14px 0;cursor:pointer;
}
.sw button:hover{border-color:var(--dim)}
.sw button.on{border-color:var(--accent);color:var(--accent);background:rgba(78,168,255,.12)}

button.go{
  background:var(--panel);color:var(--live);border:1px solid var(--live);border-radius:var(--r);
  padding:8px 16px;font:inherit;font-size:15px;cursor:pointer;
}
button.go:hover{background:rgba(46,224,138,.1)}

.msg{font-size:14px;color:var(--dim);min-height:24px}
.msg b{color:var(--ink);font-weight:500}

footer{max-width:760px;margin:0 auto;padding:24px 22px 40px;color:var(--faint);font-size:13px}
footer a{color:var(--dim);text-decoration:none;border-bottom:1px solid var(--line)}
