:root { --bg:#0f1115; --panel:#171a21; --text:#e7e9ee; --muted:#8b93a3; --accent:#4f7af2; --danger:#e5534b; --ok:#3fb950; --warn:#d29922; --border:#262b36; }
* { box-sizing:border-box }
body { margin:0; font:15px/1.5 -apple-system, BlinkMacSystemFont, "SF Pro Text", Inter, sans-serif; background:var(--bg); color:var(--text) }
a { color:var(--accent); text-decoration:none } a:hover { text-decoration:underline }
header.top { display:flex; align-items:center; justify-content:space-between; padding:14px 28px; border-bottom:1px solid var(--border) }
header .brand { font-weight:700; font-size:18px; color:var(--text) }
header nav { display:flex; gap:18px; align-items:center }
main { max-width:960px; margin:0 auto; padding:32px 24px }
footer { text-align:center; color:var(--muted); padding:40px 0; font-size:13px }
.hero { padding:40px 0 } .hero h1 { font-size:34px; line-height:1.15; margin:0 0 12px } .hero p { max-width:640px; color:var(--muted); font-size:17px }
.actions { display:flex; gap:12px; margin-top:20px }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:16px; margin-top:32px }
.grid div, .card { background:var(--panel); border:1px solid var(--border); border-radius:12px; padding:20px }
.card { margin-bottom:20px } .card h2 { margin:0 0 10px; font-size:17px } .narrow { max-width:440px; margin:40px auto }
label { display:block; margin:12px 0 } input[type=email], input[type=password], input[type=text] { width:100%; padding:10px 12px; border-radius:8px; border:1px solid var(--border); background:#0b0d11; color:var(--text); font-size:15px; margin-top:4px }
.button { display:inline-block; background:var(--accent); color:#fff; border:0; border-radius:8px; padding:9px 16px; font-size:14px; font-weight:600; cursor:pointer } .button:hover { text-decoration:none; filter:brightness(1.1) }
.button.secondary { background:#242a36 } .button.small { padding:5px 10px; font-size:13px } .button.danger { background:var(--danger) }
.link { background:none; border:0; color:var(--accent); cursor:pointer; font:inherit; padding:0 } .link.danger { color:var(--danger) }
.inline { display:inline } .muted { color:var(--muted) } .tag { border:1px solid var(--border); border-radius:999px; padding:2px 10px; font-size:12px; margin-right:8px }
.flash { padding:12px 16px; border-radius:8px; margin-bottom:16px } .flash.error { background:#3a1d1c; color:#ffb3ae } .flash.notice { background:#1c2e1f; color:#b7f2c0 }
table { width:100%; border-collapse:collapse } td { padding:8px 6px; border-top:1px solid var(--border) }
code.block { display:block; word-break:break-all; background:#0b0d11; padding:10px; border-radius:8px; font-size:12px }
.dot { display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--muted); margin-right:4px; vertical-align:middle }
.dot.on { background:var(--ok) } .dot.idle { background:var(--muted) } .dot.working { background:var(--accent); animation:pulse 1s infinite alternate } .dot.waitingForPermission { background:var(--warn) } .dot.waitingForInput { background:#e3c15b } .dot.done { background:var(--ok) } .dot.error { background:var(--danger) }
@keyframes pulse { from { opacity:1 } to { opacity:.35 } }
.sessions { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:14px }
.session { background:var(--panel); border:1px solid var(--border); border-radius:12px; padding:14px } .session h3 { margin:0 0 4px; font-size:15px } .session .meta { color:var(--muted); font-size:12px }
.session pre { background:#0b0d11; border-radius:8px; padding:10px; font-size:11px; max-height:180px; overflow:auto; white-space:pre-wrap; word-break:break-all; color:#c9d1d9; margin:10px 0 }
.permission { border:1px solid var(--warn); background:#2b2410; border-radius:8px; padding:10px; margin:10px 0 } .permission code { display:block; margin:6px 0; word-break:break-all }
.row { display:flex; gap:8px; align-items:center; flex-wrap:wrap } .prompt input { flex:1 }
.pairbox { font-size:28px; letter-spacing:.2em; font-family:ui-monospace, Menlo, monospace; background:#0b0d11; padding:12px 16px; border-radius:8px; display:inline-block }
.sas { font-size:22px; font-family:ui-monospace, Menlo, monospace; letter-spacing:.15em }
.group h2 { font-size:16px; margin:24px 0 10px; color:var(--muted) }
.status-line { color:var(--muted); font-size:13px; margin-bottom:16px }
.session.wide { grid-column:1 / -1 }
.term-wrap { margin:10px 0 } .term-bar { justify-content:space-between; margin-bottom:6px } .term-note { font-size:12px }
.term-host { background:#0b0d11; border-radius:8px; padding:6px; overflow:auto } .term-host .xterm { padding:2px }
