:root{--bg:#080b10;--panel:#0e131b;--panel2:#121925;--line:#202b3a;--text:#e8edf5;--muted:#7f8b9c;--accent:#52e0a5;--blue:#5ba5ff;--red:#ff6b7a;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}button,input,textarea{font:inherit}.hidden{display:none!important}.login-shell{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 20%,#173029 0,transparent 32%),var(--bg)}.login-card{width:min(420px,100%);padding:34px;border:1px solid var(--line);background:rgba(14,19,27,.94);border-radius:18px;box-shadow:0 24px 80px #0008}.brand-mark{font:700 23px var(--mono);color:var(--accent);border:1px solid #52e0a555;background:#52e0a510;width:52px;height:52px;display:grid;place-items:center;border-radius:12px}.eyebrow{font:700 10px var(--mono);letter-spacing:.16em;color:var(--accent);margin:20px 0 6px}.login-card h1{margin:0;font-size:29px;letter-spacing:-.04em}.muted{color:var(--muted);line-height:1.55}.login-card label{display:block;margin:25px 0 8px;font-size:13px;font-weight:600}.login-card input,.search-wrap input,.command-line input{width:100%;color:var(--text);background:#080c12;border:1px solid var(--line);border-radius:8px;padding:13px;outline:none}.login-card input:focus,.search-wrap input:focus,.command-line input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #52e0a518}.primary,.run-button,.command-line button{border:0;background:var(--accent);color:#06120e;font-weight:800;border-radius:8px;padding:12px 16px;cursor:pointer}.login-card .primary{width:100%;margin-top:13px}.error{color:var(--red);min-height:20px;font-size:13px}.app{height:100%;display:grid;grid-template:52px 1fr / 270px 1fr;overflow:hidden}.topbar{grid-column:1/-1;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);background:#0a0e14;padding:0 12px;z-index:20}.wordmark{font:700 12px var(--mono);letter-spacing:.12em}.wordmark span{color:var(--accent)}.save-state{margin-left:auto;color:var(--muted);font:11px var(--mono)}.run-button{padding:7px 13px;font-size:12px}.icon-button,.tiny-button{border:0;color:var(--muted);background:transparent;cursor:pointer;border-radius:6px}.icon-button{font-size:20px;padding:6px 9px}.tiny-button{font:16px var(--mono);padding:4px 7px}.icon-button:hover,.tiny-button:hover{background:var(--panel2);color:var(--text)}.sidebar{background:var(--panel);border-right:1px solid var(--line);overflow:auto}.sidebar-head{height:63px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between}.sidebar-head .eyebrow{display:block;margin:0 0 4px}.sidebar-head strong{font:700 12px var(--mono)}.search-wrap{padding:0 10px 10px}.search-wrap input{padding:8px 10px;font-size:12px}.tree{font:12px var(--mono);padding:0 6px 30px}.tree details>summary{list-style:none}.tree details>summary::-webkit-details-marker{display:none}.tree-row{display:flex;align-items:center;height:30px;border-radius:5px;padding-right:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.tree-row:hover{background:#ffffff0b}.tree-row.active{background:#5ba5ff18;color:#a8ceff}.tree-row .chev{width:18px;color:var(--muted)}.tree-row .file-icon{width:22px;text-align:center;color:var(--blue)}.tree-children{padding-left:13px}.workspace{min-width:0;display:grid;grid-template-rows:38px 1fr auto;background:#090d13}.tabs{display:flex;overflow-x:auto;background:var(--panel);border-bottom:1px solid var(--line)}.tab{min-width:110px;max-width:200px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font:11px var(--mono);padding:0 8px 0 12px;display:flex;align-items:center;gap:8px;cursor:pointer}.tab.active{color:var(--text);background:#090d13;border-top:2px solid var(--accent)}.tab span:first-child{overflow:hidden;text-overflow:ellipsis}.tab .dirty{color:var(--accent)}.tab .close{margin-left:auto}.empty-state{display:grid;place-content:center;justify-items:center;text-align:center;color:var(--muted);padding:20px}.empty-state h2{color:var(--text);margin:20px 0 5px}.empty-state p{margin:0 0 18px}.editor-wrap{display:grid;grid-template-columns:48px 1fr;min-height:0;overflow:hidden}.gutter{padding:16px 10px 40vh 0;text-align:right;color:#3e4a59;background:#080c12;border-right:1px solid #151d28;white-space:pre;font:14px/1.65 var(--mono);overflow:hidden;user-select:none}.editor-wrap textarea{resize:none;border:0;outline:0;background:#090d13;color:#dce6f3;padding:16px 20px 40vh;white-space:pre;overflow:auto;tab-size:2;font:14px/1.65 var(--mono);caret-color:var(--accent)}.terminal{height:210px;border-top:1px solid var(--line);background:#080c12;display:grid;grid-template-rows:34px 1fr 39px;min-height:0}.terminal.collapsed{height:34px}.terminal.collapsed>*:not(.terminal-head){display:none}.terminal-head{display:flex;gap:12px;align-items:center;padding:0 10px;color:var(--muted);font:700 10px var(--mono);letter-spacing:.1em;border-bottom:1px solid var(--line)}.terminal-head #cwd{overflow:hidden;text-overflow:ellipsis;letter-spacing:0;color:#526174}.terminal-head #clear-terminal{margin-left:auto;font-size:11px}.terminal pre{margin:0;padding:10px 13px;overflow:auto;white-space:pre-wrap;font:12px/1.55 var(--mono);color:#c9d4e3}.terminal .stderr{color:#ff8490}.terminal .success{color:var(--accent)}.dim{color:#526174}.command-line{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding:5px 8px;color:var(--accent);font:12px var(--mono)}.command-line input{padding:6px;border:0}.command-line button{padding:6px 10px}.toast{position:fixed;z-index:50;bottom:22px;left:50%;transform:translate(-50%,20px);opacity:0;background:#e8edf5;color:#0b0f14;padding:10px 14px;border-radius:8px;font-size:12px;font-weight:700;pointer-events:none;transition:.2s}.toast.show{transform:translate(-50%,0);opacity:1}.scrim,.mobile-only{display:none}@media(max-width:720px){.app{grid-template-columns:1fr}.sidebar{position:fixed;z-index:30;top:52px;bottom:0;left:0;width:min(84vw,320px);transform:translateX(-102%);transition:transform .2s;box-shadow:20px 0 60px #000a}.sidebar.open{transform:none}.scrim{display:block;position:fixed;z-index:25;inset:52px 0 0;background:#0009;opacity:0;pointer-events:none;transition:.2s}.scrim.open{opacity:1;pointer-events:auto}.mobile-only{display:block}.wordmark{font-size:10px}.save-state{font-size:9px}.editor-wrap{grid-template-columns:38px 1fr}.gutter{font-size:13px}.editor-wrap textarea{font-size:16px;padding-left:12px}.terminal{height:190px}.topbar{gap:5px;padding:0 6px}.run-button{padding:7px 10px}}
