@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{font-family:Inter,Microsoft YaHei,sans-serif;color:#dce5f2;background:#09101b;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}.app{display:grid;grid-template:64px calc(100vh - 64px) / 280px 1fr;background:radial-gradient(circle at 80% 10%,#142a3e55,transparent 38%),#09101b}header{grid-column:1/3;display:flex;align-items:center;gap:8px;padding:0 22px;border-bottom:1px solid #1c2b3d;background:#0c1522dd}.brand{display:flex;align-items:center;gap:11px}.brand>span{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:linear-gradient(145deg,#22d3ee,#2563eb);color:#fff;font-weight:700}.brand b{display:block}.brand small{display:block;color:#667993;font-size:9px;letter-spacing:1.5px;margin-top:2px}.stats{margin:auto;color:#8293a9;font-size:13px}.stats strong{color:#e9f3ff;font-size:17px}.stats i{display:inline-block;height:18px;border-left:1px solid #253448;margin:0 20px;vertical-align:middle}button{border:1px solid #2a3a4f;background:#152235;color:#cad6e5;border-radius:7px;padding:8px 13px;cursor:pointer}button:hover{border-color:#3f5875;background:#1a2a40}button:disabled{opacity:.4}.ghost{background:transparent}aside{border-right:1px solid #1b293a;background:#0b1420;padding:14px 10px;overflow:auto}.asideTitle{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 12px;color:#71849d;text-transform:uppercase;font-size:11px;letter-spacing:1px}.asideTitle>div{display:flex;gap:5px}.asideTitle button{padding:2px 8px;font-size:19px}.machine,.service{width:100%;display:flex;align-items:center;text-align:left;border:0;background:transparent;margin:2px 0}.machine{height:42px;font-weight:600}.machine.active{background:#142438}.machine small,.service small{margin-left:auto;color:#60738c;font-size:9px}.service{padding-left:30px;color:#96a6ba}.service.active{background:#172a3e;color:#eff7ff}.machine em,.service em{width:7px;height:7px;border-radius:50%;background:#526174;margin-right:10px}.machine em.online,.service em.running{background:#23d18b;box-shadow:0 0 8px #23d18b99}.service em.crashed{background:#ff5570}.content{min-width:0;padding:32px 38px;overflow:auto}.title{display:flex;justify-content:space-between;align-items:end}.title p{color:#54708f;font-size:10px;letter-spacing:1.5px}.title h1{margin:5px 0;font-size:30px}.badge{font-size:11px;border:1px solid #32465c;padding:6px 10px;border-radius:20px}.badge.running{color:#35dfa0;border-color:#208b69}.actions{display:flex;gap:8px;margin:25px 0}.primary{background:#0878d8;border-color:#1790ef;color:#fff}.danger{color:#ff7387}.details{display:grid;grid-template-columns:120px 1fr 1fr 150px;gap:1px;background:#1b2b3e;border:1px solid #1b2b3e;border-radius:8px;overflow:hidden}.details>div{background:#0e1825;padding:14px}.details span,.deploy small{display:block;color:#667991;font-size:10px;margin-bottom:7px}.details b{font:500 12px JetBrains Mono;word-break:break-all}.deploy{display:flex;gap:12px;align-items:center;margin-top:16px;padding:14px;background:#0e1825;border:1px solid #1b2b3e;border-radius:8px}.deploy>div{margin-right:auto}.deploy input{width:150px}.consoleHead{display:flex;justify-content:space-between;align-items:center;margin-top:26px}.consoleHead span{color:#60748e;font-size:10px;margin-left:10px}.console{height:360px;overflow:auto;background:#050a11;border:1px solid #1b2a3c;border-radius:8px;padding:14px;font:11px/1.7 JetBrains Mono;color:#aebed1}.console div{white-space:pre-wrap}.console time{color:#3e536b;margin-right:12px}.console .stderr{color:#ff7589}.empty{height:70vh;display:grid;place-content:center;text-align:center;color:#63748a}.empty b{color:#bfccdc;font-size:20px}.toast{position:fixed;right:25px;top:78px;background:#662b38;border:1px solid #b3455b;padding:12px 18px;border-radius:8px;z-index:30}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at center,#163150,#09101b 60%)}.login form,.modal form{width:380px;background:#0e1927;border:1px solid #26384d;border-radius:14px;padding:28px;box-shadow:0 30px 80px #0008}.login .brand{margin-bottom:30px}label{display:block;color:#8294aa;font-size:11px;margin:14px 0}input,select,textarea{display:block;width:100%;margin-top:7px;background:#09131f;border:1px solid #293b50;border-radius:7px;padding:10px;color:#e5edf7;outline:none}input:focus,select:focus,textarea:focus{border-color:#198ae8}.login form>button{width:100%;margin-top:10px;background:#0878d8;color:#fff}.error{color:#ff7186;font-size:12px}.modal{position:fixed;inset:0;background:#03070cb8;display:grid;place-items:center;z-index:10}.modal form{width:560px;max-height:92vh;overflow:auto}.modalTitle{display:flex;justify-content:space-between;align-items:center}.modalTitle h2{margin:0}.modalTitle small{display:block;color:#647a94;margin-top:5px;max-width:600px;overflow:hidden;text-overflow:ellipsis}.modalTitle button{border:0;background:transparent;font-size:24px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}.modal .primary{width:100%;margin-top:8px}.inputWithButton{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:end}.inputWithButton button{height:39px}.pathPicker{position:fixed;inset:0;background:#020508d9;display:grid;place-items:center;z-index:20}.pathPanel{width:min(760px,92vw);height:min(620px,86vh);display:flex;flex-direction:column;background:#0d1825;border:1px solid #2a3d52;border-radius:14px;padding:22px;box-shadow:0 30px 90px #000}.pathActions{display:flex;justify-content:space-between;margin:18px 0 10px}.pathActions .primary{width:auto;margin:0}.fileList{flex:1;overflow:auto;border:1px solid #1d3045;border-radius:8px;background:#08111c;padding:6px}.fileList>p{color:#71849a;text-align:center;margin-top:80px}.fileList button{width:100%;display:grid;grid-template-columns:28px 1fr auto;align-items:center;text-align:left;background:transparent;border:0;margin:1px 0}.fileList button:hover{background:#15273a}.fileList b{font:500 12px JetBrains Mono;overflow:hidden;text-overflow:ellipsis}.fileList small{color:#60748d}.keyWarning{color:#ffba5c}.muted{color:#71849a;font-size:12px;line-height:1.6}textarea{height:110px;font:12px/1.5 JetBrains Mono;resize:none}@media(max-width:800px){.app{grid-template:64px 200px 1fr/1fr}header{grid-column:1}.stats{display:none}aside{border-right:0;border-bottom:1px solid #1b293a}.content{padding:20px}.details{grid-template-columns:1fr 1fr}.deploy{flex-wrap:wrap}.modal form{width:92vw}.row{grid-template-columns:1fr}}
