:root{
  --bg:#15171c; --card:#1e2127; --card2:#23272e; --line:#333842;
  --text:#e6e8eb; --muted:#9aa3ad; --accent:#5aa9ff; --warn:#e0533d;
  --ok:#4bb96a; --amberbg:#3a2f1a; --amber:#e0a83d;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:15px;line-height:1.5;}
.wrap{max-width:820px;margin:0 auto;padding:24px 16px 60px;}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:18px 22px;margin-bottom:18px;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.card h2{margin:0 0 14px;font-size:17px;font-weight:600;}
.header{text-align:center;}
.header h1{margin:0 0 4px;font-size:26px;}
.header .sub{margin:0;color:var(--muted);}
.header .credits{margin:0;font-size:13px;color:var(--muted);}
a{color:var(--accent);text-decoration:none;} a:hover{text-decoration:underline;}
button{background:var(--accent);color:#04121f;border:0;border-radius:8px;
  padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer;margin:4px 6px 4px 0;}
button:hover{background:#7bbaff;}
button.warn-btn{background:var(--warn);color:#fff;} button.warn-btn:hover{background:#f0674f;}
button:disabled{opacity:.45;cursor:not-allowed;}
select{background:var(--card2);color:var(--text);border:1px solid var(--line);
  border-radius:6px;padding:6px 8px;font-size:14px;}
label{color:var(--muted);margin-right:8px;}
.note{background:var(--amberbg);border:1px solid var(--amber);border-radius:8px;
  padding:12px 14px;margin-bottom:14px;font-size:13px;color:#f0d9a8;}
.note strong{color:var(--amber);}
.kv{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-bottom:1px solid var(--line);}
.kv:last-child{border-bottom:0;} .kv span{color:var(--muted);}
.kv b{font-family:ui-monospace,Menlo,Consolas,monospace;}
.slot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0;font-size:13px;}
.slot .addr{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--muted);min-width:70px;}
.slot .st{margin-left:auto;font-size:12px;color:var(--muted);}
.slot .st.ok{color:var(--ok);} .slot .st.miss{color:var(--warn);}
progress{width:100%;height:16px;margin-top:8px;}
#term{white-space:pre-wrap;background:#0c0e12;border:1px solid var(--line);border-radius:8px;
  padding:10px;height:320px;overflow:auto;font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:12.5px;color:#cbd3dc;}
#status{font-size:13px;color:var(--muted);margin-top:8px;}
.pill{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;
  background:var(--card2);color:var(--muted);border:1px solid var(--line);}
.pill.ok{background:var(--ok);color:#04140a;border-color:var(--ok);}
