:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#dae3ef;background:#0c111a;color-scheme:dark;font-size:14px}*{box-sizing:border-box}body{margin:0}header{height:72px;display:flex;align-items:center;gap:18px;padding:0 26px;border-bottom:1px solid #283345;position:sticky;top:0;background:#0c111af5;z-index:3}.brand{font-size:24px;font-weight:800;color:#77e1ae;display:flex;align-items:center;gap:14px}.brand span{font-size:14px;letter-spacing:2px;color:#ecf1f7}.tag,small{color:#8796ab}#connection{margin-left:auto;font-size:12px;color:#9db4c9}button,input,select,textarea{font:inherit}button{border:1px solid #35435b;border-radius:7px;background:#1a2536;color:#e3edf8;cursor:pointer;padding:9px 13px;white-space:normal}button:not(:disabled):hover{background:#263751;border-color:#63819e}button:disabled{opacity:.4;cursor:not-allowed}button.active,button[type=submit]{background:#88e5b9;color:#0b281c;border-color:#88e5b9}input,select,textarea{border:1px solid #374359;background:#0d1522;color:#edf4ff;border-radius:6px;padding:9px;min-width:100px;max-width:100%;width:100%}input:focus,textarea:focus,select:focus{outline:2px solid #69c79c;outline-offset:1px}input[type=checkbox],input[type=radio]{width:auto;min-width:0}textarea{resize:vertical;min-height:85px;font-family:Consolas,monospace;font-size:12px}.login{max-width:490px;margin:11vh auto;padding:32px;border:1px solid #2b394e;background:#111b2a;border-radius:14px}.login h1{font-size:30px}.eyebrow{letter-spacing:3px;color:#88e5b9;font-size:11px}.login label{display:grid;gap:10px;margin:25px 0 15px}.login button{width:100%;margin-bottom:20px}.login small{line-height:1.8}#loginError{color:#ff9999}#workspace{padding:22px;max-width:1800px;margin:auto}.frame{display:flex;flex-direction:column;gap:9px;min-width:0}.frame.row{flex-direction:row;align-items:center;flex-wrap:wrap}.frame.row>input,.frame.row>select{flex:1;width:auto}.label{line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;color:#b7c6d8}.label:empty{display:none}.notebook>nav{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}.notebook>article{border:1px solid #29364b;border-radius:10px;background:#111a28;padding:20px}.root-notebook>nav{padding-bottom:10px;border-bottom:1px solid #29364b}.root-notebook>nav button{padding:12px 16px}.root-notebook>article{min-height:70vh}.group{border:1px solid #2e3a50;padding:14px;border-radius:8px}.group>legend{color:#88e5b9;padding:0 7px}.check{display:flex;gap:8px;align-items:center;cursor:pointer;padding:7px}.table-wrap{overflow:auto;max-height:520px;border:1px solid #29374b;border-radius:6px;min-height:160px;background:#0b1320}table{border-collapse:collapse;min-width:100%;font:12px Consolas,"Microsoft YaHei",monospace}th{position:sticky;top:0;background:#1b293d;color:#a6bfd6;text-align:left;font-weight:500}th,td{padding:11px 12px;border-bottom:1px solid #233044;white-space:nowrap}td{max-width:800px;overflow:hidden;text-overflow:ellipsis;cursor:pointer}tr:hover td{background:#192c3c}tr.selected td{background:#1b3d3b}.table-meta{font-size:12px;color:#869eb4;padding:5px 0}.text-output{white-space:pre-wrap;overflow:auto;max-height:230px;background:#09111c;border:1px solid #27354a;padding:13px;color:#a8c1d4;font:12px/1.7 Consolas,"Microsoft YaHei",monospace;border-radius:6px}.grid{display:grid;grid-template-columns:minmax(120px,auto) minmax(200px,1fr);gap:9px;align-items:center}.grid>input{min-width:130px}.toast,#toast{position:fixed;bottom:18px;right:18px;background:#254339;color:#d1ffe6;padding:12px 18px;border-radius:8px;z-index:10;display:none}dialog{background:#142034;color:#e4eef9;border:1px solid #4a607a;border-radius:12px;max-width:min(1000px,95vw);width:640px;max-height:90vh;overflow:auto;padding:24px}dialog::backdrop{background:#000a}#modalActions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}#modalBody{white-space:pre-wrap;line-height:1.7}#downloads{margin:16px 22px;padding:12px;border:1px solid #294039;border-radius:7px}a{color:#88e5b9;margin:0 12px 0 0}h2{margin-top:0;font-size:21px}.secret{font-family:Consolas,monospace;color:#ffc991}@media(max-width:800px){header{height:auto;min-height:64px;flex-wrap:wrap;padding:14px}.tag{display:none}#workspace{padding:10px}.notebook>article{padding:12px}.grid{display:flex;flex-direction:column;align-items:stretch}.root-notebook>nav{flex-wrap:nowrap;overflow-x:auto}.root-notebook>nav button{white-space:nowrap}.login{margin:30px 12px}}

.frame.grid{display:grid;overflow-x:auto}.frame.grid input{min-width:0}.frame.grid>.label{align-self:center}
.account-field{display:grid;gap:8px;margin:16px 0}.account-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #35435b}#accountClose{margin-top:20px}

/* Main navigation stays on the left; nested notebooks keep their own tabs. */
.root-notebook{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;align-items:start}
.root-notebook>nav{display:flex;flex-direction:column;flex-wrap:nowrap;gap:8px;position:sticky;top:94px;max-height:calc(100dvh - 116px);overflow-y:auto;overflow-x:hidden;margin:0;padding:10px;background:#111a28;border:1px solid #29364b;border-radius:10px;scrollbar-width:thin}
.root-notebook>nav button{width:100%;text-align:left;flex-shrink:0;padding:13px 12px;white-space:normal;line-height:1.5}
.root-notebook>article{min-width:0;margin:0}
@media(max-width:800px){.root-notebook{grid-template-columns:140px minmax(0,1fr);gap:10px}.root-notebook>nav{position:static;max-height:calc(100dvh - 24px);padding:6px}.root-notebook>nav button{font-size:12px;padding:10px 8px;white-space:normal}}
@media(max-width:480px){.root-notebook{grid-template-columns:108px minmax(0,1fr);gap:7px}.root-notebook>article{padding:8px}.root-notebook>nav button{padding:9px 5px}}

/* Mutually exclusive task controls: bright when actionable, grey when disabled. */
button.control-start:not(:disabled){background:#35f28b;border-color:#69ffac;color:#062916;font-weight:700;box-shadow:0 0 0 1px #35f28b33,0 3px 12px #35f28b22}
button.control-start:not(:disabled):hover{background:#70ffb0;border-color:#a3ffcb}
button.control-stop:not(:disabled),#shutdown:not(:disabled){background:#ff4966;border-color:#ff8295;color:#290811;font-weight:700;box-shadow:0 0 0 1px #ff496633,0 3px 12px #ff496622}
button.control-stop:not(:disabled):hover,#shutdown:not(:disabled):hover{background:#ff7890;border-color:#ffadb9}
button.control-start:disabled,button.control-stop:disabled{background:#252c36;border-color:#3b4451;color:#788391;opacity:1;box-shadow:none;cursor:not-allowed}
button.control-start:focus-visible,button.control-stop:focus-visible{outline:2px solid #fff;outline-offset:3px}

header{height:auto;min-height:72px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.active-tasks{display:flex;flex:1 1 240px;gap:6px;align-items:center;flex-wrap:wrap;min-width:180px;max-width:900px}.active-tasks[hidden]{display:none}
.tasks-title{font-size:12px;color:#a6b6c8;white-space:nowrap}
button.task-chip{padding:5px 9px;font-size:12px;background:#153c2a;color:#94f7bd;border-color:#32845b;border-radius:20px}
button.task-chip:not(:disabled):hover{background:#20543b;border-color:#70e4a0}
button.task-chip.stopping{background:#47341b;color:#ffd390;border-color:#896637}
