:root{--bg:#0b1118;--panel:#121a24;--panel2:#182330;--line:#22303f;--ink:#dbe6ef;--dim:#7d8fa0;--accent:#4ba3e3;--ok:#3fbf8a;--warn:#e0a63f;--bad:#e06a5e;--mono:ui-monospace,"Cascadia Mono",Menlo,Consolas,monospace}*{box-sizing:border-box}body,html{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font:15px/1.55 system-ui,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:6px 12px;font:13px system-ui;cursor:pointer}button.primary,button:hover{border-color:var(--accent)}button.primary{background:#123a57}input,select,textarea{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:7px 9px;font:14px system-ui}code,pre{font-family:var(--mono);font-size:.92em}pre{border:1px solid var(--line);border-radius:8px;padding:12px;overflow-x:auto}code,pre{background:var(--panel2)}code{padding:1px 5px;border-radius:4px}pre code{background:none;padding:0}table{border-collapse:collapse}td,th{border:1px solid var(--line);padding:6px 10px;text-align:left}.shell{display:grid;grid-template-columns:240px 1fr;grid-template-rows:52px 1fr;height:100vh}.topbar{grid-column:1/3;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:0 16px;background:var(--panel)}.topbar .brand{font-weight:700;letter-spacing:.04em}.topbar .spacer{flex:1 1}.topbar .who{color:var(--dim);font-size:12.5px}.rolechip{font-family:var(--mono);font-size:11px;padding:2px 8px;border-radius:12px;border:1px solid var(--accent);color:#bfe0f7;background:#12324a}.sidebar{border-right:1px solid var(--line);overflow-y:auto;padding:14px;background:var(--panel)}.sidebar h3{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--dim);margin:16px 0 6px}.sidebar a{display:block;padding:4px 8px;border-radius:5px;color:var(--ink);font-size:13.5px}.sidebar a:hover{background:var(--panel2);text-decoration:none}.sidebar a.active{background:#12324a;color:#bfe0f7}.main{overflow-y:auto;padding:28px 40px}.doc{max-width:780px}.doc h1{margin-top:0}.doc h2,.doc h3{scroll-margin-top:12px}.doc h2 a.anchor,.doc h3 a.anchor{color:var(--dim);opacity:0;margin-left:6px}.doc h2:hover a.anchor,.doc h3:hover a.anchor{opacity:1}.doc img{max-width:100%}.badges{display:flex;gap:8px;margin-bottom:14px}.badge{font-family:var(--mono);font-size:11px;padding:2px 8px;border-radius:12px;border:1px solid var(--line);color:var(--dim);background:var(--panel2)}.related{border-top:1px solid var(--line);margin-top:32px;padding-top:14px;font-size:13.5px}.feedback{margin-top:24px;color:var(--dim);font-size:13px;display:flex;gap:10px;align-items:center}.search{position:relative;width:320px}.search input{width:100%}.search .results{position:absolute;top:38px;left:0;right:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;max-height:60vh;overflow-y:auto;z-index:50}.search .results a{display:block;padding:8px 12px;border-bottom:1px solid var(--line)}.search .results a:hover{background:var(--panel2);text-decoration:none}.search .results .t{font-weight:600;font-size:13.5px}.search .results .s{color:var(--dim);font-size:12px}.login{min-height:100vh;display:grid;place-items:center}.login .card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:28px;width:340px;display:flex;flex-direction:column;gap:10px}.login .err{color:var(--bad);font-size:13px}.login .or{color:var(--dim);text-align:center;font-size:12px}.tut-root{display:flex;flex-direction:column;height:calc(100vh - 52px)}.tut-dock{flex:1 1;min-height:0}.tut-dock iframe{width:100%;height:100%;border:0;background:#000}.instructions{padding:18px 22px;overflow-y:auto;height:100%}.instructions .stepnum{color:var(--dim);font-family:var(--mono);font-size:12px}.instructions .steplist{margin:12px 0;padding:0;list-style:none}.instructions .steplist li{padding:3px 0 3px 24px;position:relative;color:var(--dim);font-size:13px}.instructions .steplist li.done:before{content:"✓";color:var(--ok);position:absolute;left:4px}.instructions .steplist li.now{color:var(--ink);font-weight:600}.instructions .steplist li.now:before{content:"▶";color:var(--accent);position:absolute;left:2px;font-size:10px;top:8px}.instructions .say{font-size:15px}.instructions .wait{font-size:12.5px}.instructions .wait,.simstatus{color:var(--dim);font-family:var(--mono)}.simstatus{font-size:11.5px;padding:3px 9px;border-radius:20px;border:1px solid var(--line);background:var(--panel2)}.simstatus.on{border-color:var(--ok);color:#a9ecd0}.simstatus.off{border-color:var(--bad);color:#eba9a1}.chat-fab{bottom:22px;border-radius:50%;width:48px;height:48px;font-size:20px;background:#123a57;border-color:var(--accent)}.chat-fab,.chat-panel{position:fixed;right:22px;z-index:60}.chat-panel{bottom:80px;width:400px;height:60vh;background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.5)}.chat-msgs{flex:1 1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.chat-msg{border-radius:10px;padding:8px 12px;font-size:13.5px;max-width:92%}.chat-msg.user{background:#12324a;align-self:flex-end}.chat-msg.assistant{background:var(--panel2);align-self:flex-start}.chat-msg .cites{margin-top:6px;font-size:12px}.chat-input{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}.chat-input input{flex:1 1}.admin table{width:100%;font-size:13.5px}.admin .newuser{display:flex;gap:8px;margin:14px 0;flex-wrap:wrap}.notice{background:var(--panel);border:1px solid var(--warn);border-radius:8px;padding:14px 18px;color:var(--warn)}.cardlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:14px;gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}.card h3{margin:0 0 6px}.card .dim{color:var(--dim);font-size:13px}