
:root{--bg:#07090d;--panel:#0c1118;--panel2:#111823;--border:#1b2635;--text:#f3f7fc;--muted:#8594a8;--blue:#1784ff;--blue2:#45a7ff;--green:#35d07f;--red:#ff5964;--sidebar:#090d12}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}
.app-shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--sidebar);border-right:1px solid var(--border);padding:18px 14px;display:flex;flex-direction:column}.side-brand{display:flex;align-items:center;gap:11px;padding:4px 7px 20px}
.brand-mark{width:42px;height:42px;border-radius:3px;background:#1f6feb;display:grid;place-items:center;font-weight:800;font-size:20px}.brand-mark.small{width:34px;height:34px;border-radius:3px;font-size:16px}.eyebrow{font-size:10px;letter-spacing:.16em;color:var(--blue2);font-weight:800}.side-brand strong{display:block;margin-top:2px}.sidebar nav{display:grid;gap:5px}.nav{width:100%;text-align:left;background:transparent;border:0;color:var(--muted);padding:10px 11px;border-radius:3px}.nav:hover,.nav.active{background:#111925;color:#fff}.side-bottom{margin-top:auto}.side-bottom form{margin:0}.user-chip{padding:11px;border:1px solid var(--border);border-radius:3px;margin-bottom:7px;background:#0d131b}.user-chip span,.user-chip small{display:block}.user-chip small{color:var(--muted);margin-top:2px}
.main{min-width:0}.topbar{height:86px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:rgba(7,9,13,.85)}.topbar h1{margin:0;font-size:24px}.topbar p{margin:5px 0 0;color:var(--muted);font-size:13px}.status-pill{display:flex;align-items:center;gap:8px;color:#cfe8dc;border:1px solid #1d5139;background:#0c241a;padding:8px 11px;border-radius:3px;font-size:13px}.pulse{width:8px;height:8px;border-radius:50%;background:var(--green)}
.view{display:none;padding:24px 28px;max-width:1500px;margin:0 auto}.view.active{display:block}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric,.panel{background:var(--panel);border:1px solid var(--border);border-radius:3px}.metric{padding:17px}.metric-top{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.metric strong{display:block;font-size:23px;margin-top:8px}.meter{height:6px;background:#17202c;border-radius:3px;margin-top:13px;overflow:hidden}.meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--blue2));transition:width .35s}.metric-foot{font-size:12px;color:var(--muted);margin-top:12px}
.panel{padding:18px;margin-top:14px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.panel-head h2{margin:0;font-size:16px}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.primary{background:var(--blue);color:#fff;border:0;border-radius:3px;padding:9px 13px}.wide{width:100%}
input,select,textarea{background:#090e14;border:1px solid var(--border);color:#fff;border-radius:3px;padding:10px 11px;outline:none}input:focus,select:focus,textarea:focus{border-color:#2f73b9}.project-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.summary-card{border:1px solid var(--border);background:var(--panel2);padding:13px;border-radius:3px}.summary-card b,.summary-card span{display:block}.summary-card span{font-size:12px;color:var(--muted);margin-top:4px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.service{display:flex;justify-content:space-between;border:1px solid var(--border);background:var(--panel2);padding:12px;border-radius:3px}.ok{color:var(--green)}.bad{color:var(--red)}
.project{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--border)}.project:first-child{border-top:0}.project-main{display:flex;align-items:center;gap:10px}.dot{width:9px;height:9px;border-radius:50%;background:#657386}.dot.on{background:var(--green)}.project small{color:var(--muted);display:block;margin-top:3px}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions button,.panel button:not(.primary),.dialog-head button{background:#121a24;border:1px solid var(--border);color:#eaf3ff;border-radius:3px;padding:8px 10px}.actions .delete,.delete{color:#ff9ba3!important}.empty{padding:25px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:3px}
.system-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail-list{display:grid;gap:2px}.detail-list div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid var(--border)}.detail-list div:last-child{border-bottom:0}.detail-list span{color:var(--muted)}
.file-actions{display:flex;gap:7px;flex-wrap:wrap}.file-actions select{min-width:170px}.crumbs{display:flex;align-items:center;gap:10px;margin:12px 0}.crumbs code{color:var(--muted)}.file-list{border:1px solid var(--border);border-radius:3px;overflow:hidden}.file-row{display:grid;grid-template-columns:1fr 120px 160px;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--border)}.file-row:first-child{border-top:0}.file-name{display:flex;align-items:center;gap:8px;min-width:0}.file-name button{background:transparent;border:0;color:#fff;text-align:left;padding:0;overflow:hidden;text-overflow:ellipsis}.file-meta{color:var(--muted);font-size:12px}.file-row .actions{justify-content:flex-end}
dialog{width:min(850px,92vw);background:#090d13;color:#fff;border:1px solid var(--border);border-radius:3px;padding:0}dialog::backdrop{background:#000a}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;padding:14px 16px;border-bottom:1px solid var(--border)}.dialog-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.dialog-body{padding:16px}.form-grid{display:grid;gap:12px}.form-grid label{display:grid;gap:6px}.dialog-body textarea{width:100%;min-height:420px;resize:vertical;margin-bottom:10px}pre{margin:0;padding:16px;max-height:65vh;overflow:auto;white-space:pre-wrap;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-shell{width:min(410px,100%);background:var(--panel);border:1px solid var(--border);border-radius:3px;padding:26px}.login-brand{display:flex;align-items:center;gap:12px}.login-brand h1{margin:2px 0 0;font-size:23px}.login-copy,.case-note{color:var(--muted);font-size:13px}.login-form{display:grid;gap:13px}.login-form label{font-size:13px}.login-form input{display:block;width:100%;margin-top:6px}.login-error{border:1px solid #68242a;background:#281114;color:#ffb4ba;padding:10px 11px;border-radius:3px;margin-bottom:13px;font-size:13px}
@media(max-width:1000px){.metrics{grid-template-columns:1fr 1fr}.project-summary{grid-template-columns:1fr 1fr}.app-shell{grid-template-columns:190px 1fr}}
@media(max-width:760px){.app-shell{display:block}.sidebar{height:auto;position:static;border-right:0;border-bottom:1px solid var(--border)}.sidebar nav{display:flex;overflow:auto}.side-bottom{display:none}.view{padding:18px}.topbar{padding:0 18px}.system-grid,.service-grid{grid-template-columns:1fr}.project{grid-template-columns:1fr}.stack-mobile{align-items:flex-start;flex-direction:column}.file-row{grid-template-columns:1fr}.file-row .actions{justify-content:flex-start}}
@media(max-width:480px){.metrics,.project-summary{grid-template-columns:1fr}.topbar{height:auto;padding-top:16px;padding-bottom:16px}.status-pill{display:none}}

.docker-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--border)}
.docker-row:first-child{border-top:0}
.docker-main{display:flex;gap:10px;align-items:flex-start}
.docker-main small{display:block;color:var(--muted);margin-top:3px}
@media(max-width:760px){.docker-row{grid-template-columns:1fr}}

.preview-dialog{width:min(1000px,94vw)}
.preview-body{padding:16px;display:grid;place-items:center;min-height:220px;background:#05070a}
.preview-body img,.preview-body video{max-width:100%;max-height:70vh;border-radius:3px}
.preview-body audio{width:min(680px,100%)}
.share-result{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.share-result input{width:100%}
.check-row{display:flex!important;align-items:center;gap:9px}
.check-row input{width:auto}
.share-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:13px 0;border-top:1px solid var(--border)}
.share-row:first-child{border-top:0}
.share-row small{display:block;color:var(--muted);margin:4px 0 8px}
.share-row input{width:100%;font-size:12px}
@media(max-width:760px){.share-row{grid-template-columns:1fr}.share-result{grid-template-columns:1fr}}

.small-editor{min-height:110px!important;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}
.sidebar,.topbar{background:#0b0f14}
.metric,.panel{box-shadow:none}
.brand-mark{border-radius:3px!important}
.status-pill{border-radius:3px}

.backup-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--border)}
.backup-row:first-child{border-top:0}
.backup-row small{display:block;color:var(--muted);margin-top:4px}
.panel,.metric,.project,.docker-row,.share-row,.file-list,.login-shell{border-radius:3px!important}
.primary,.actions button,.nav,input,select,textarea,.status-pill{border-radius:3px!important}
.sidebar{width:auto}
.metric strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.panel-head h2,.topbar h1{font-weight:650}
@media(max-width:760px){.backup-row{grid-template-columns:1fr}}

.dependency-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border)}
.dependency-grid>div{padding:12px;border-right:1px solid var(--border)}
.dependency-grid>div:last-child{border-right:0}
.dependency-grid span,.dependency-grid b{display:block}
.dependency-grid span,.field-label,.helper-text{color:var(--muted);font-size:12px}
.dependency-grid b{margin-top:4px}
.dependency-files{border:1px solid var(--border);background:#090d12;padding:10px;margin-top:6px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}
.dependency-output{max-height:260px;border:1px solid var(--border);background:#05070a}
@media(max-width:760px){.dependency-grid{grid-template-columns:1fr}.dependency-grid>div{border-right:0;border-bottom:1px solid var(--border)}.dependency-grid>div:last-child{border-bottom:0}}

.status-pill.offline{border-color:#63333a;background:#241116;color:#ffb3bb}
.status-pill.offline .pulse{background:#ff5964}
.terminal-output{height:360px;max-height:55vh;background:#030507;border:1px solid var(--border);padding:12px;overflow:auto;color:#d9e7f5}
.terminal-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:10px}
.terminal-row span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--green)}
.terminal-row input{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
