:root{--bg: #0b0f19;--bg-elev: #131a2a;--bg-card: #161e30;--border: #232c42;--text: #e6ebf5;--text-dim: #97a2ba;--text-faint: #64708c;--accent: #5b8cff;--accent-2: #7c5cff;--ok: #37d67a;--warn: #ffb020;--hot: #ff5c6c;--topbar-bg: rgba(11, 15, 25, .85);--overlay-bg: rgba(11, 15, 25, .96);--shadow: rgba(0, 0, 0, .3);--radius: 12px;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;color-scheme:dark}:root[data-theme=light]{--bg: #f5f7fb;--bg-elev: #ffffff;--bg-card: #ffffff;--border: #dce3ef;--text: #16203a;--text-dim: #55617a;--text-faint: #8793a8;--accent: #3563e9;--accent-2: #6b4cff;--ok: #14a05a;--warn: #b9791a;--hot: #e23b4c;--topbar-bg: rgba(245, 247, 251, .85);--overlay-bg: rgba(20, 26, 40, .5);--shadow: rgba(20, 30, 60, .12);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.mono{font-family:var(--mono)}button{font-family:inherit;cursor:pointer}.app{display:flex;flex-direction:column;min-height:100%}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:var(--topbar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:baseline;gap:8px;cursor:pointer}.logo{font-weight:800;letter-spacing:1px;background:linear-gradient(120deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:20px}.logo-lg{font-size:40px}.brand-sub{color:var(--text-dim);font-size:13px}.topbar-actions{display:flex;gap:8px}.content{flex:1;padding:16px;max-width:1100px;width:100%;margin:0 auto}.btn-ghost{background:var(--bg-elev);border:1px solid var(--border);color:var(--text-dim);padding:7px 12px;border-radius:9px;font-size:13px}.btn-ghost:hover{color:var(--text);border-color:var(--accent)}.btn-primary{background:linear-gradient(120deg,var(--accent),var(--accent-2));border:none;color:#fff;padding:12px;border-radius:10px;font-weight:600;font-size:15px}.btn-primary:disabled{opacity:.5}.banner{padding:10px 16px;font-size:14px}.banner-error{background:#ff5c6c1f;color:var(--hot);border-radius:10px;margin:8px 0}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:360px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:14px}.login-brand{text-align:center;margin-bottom:8px}.login-tag{color:var(--text-dim);font-size:13px;margin:6px 0 0}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-dim)}.login-card input{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:11px;color:var(--text);font-size:15px}.login-card input:focus{outline:none;border-color:var(--accent)}.login-err{color:var(--hot);font-size:13px}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.stat{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;text-align:center}.stat-value{font-size:26px;font-weight:700}.stat-ok{color:var(--ok)}.stat-label{color:var(--text-dim);font-size:12px;margin-top:2px}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}.filter-search{flex:1;min-width:180px;background:var(--bg-card);border:1px solid var(--border);border-radius:9px;padding:9px 12px;color:var(--text);font-size:14px;font-family:inherit}.filter-search:focus,.filter-select:focus{outline:none;border-color:var(--accent)}.filter-seg{display:flex;border:1px solid var(--border);border-radius:9px;overflow:hidden}.seg-btn{background:var(--bg-card);color:var(--text-dim);border:none;padding:9px 14px;font-size:13px;border-right:1px solid var(--border)}.seg-btn:last-child{border-right:none}.seg-btn.seg-active{background:var(--accent);color:#fff}.filter-select{background:var(--bg-card);border:1px solid var(--border);border-radius:9px;padding:9px 12px;color:var(--text);font-size:14px;font-family:inherit}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;text-align:left;color:var(--text);transition:border-color .15s,transform .05s}.server-card:hover{border-color:var(--accent)}.server-card:active{transform:scale(.995)}.card-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.card-title{font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-os{color:var(--text-faint);font-size:12px}.dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.dot-ok{background:var(--ok);box-shadow:0 0 8px #37d67a99}.dot-off{background:var(--text-faint)}.metrics{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}.bar-row{display:flex;align-items:center;gap:8px;font-size:12px}.bar-label{width:46px;color:var(--text-dim)}.bar-track{flex:1;height:6px;background:var(--bg);border-radius:4px;overflow:hidden}.bar-fill{display:block;height:100%;border-radius:4px}.bar-cool{background:var(--accent)}.bar-warm{background:var(--warn)}.bar-hot{background:var(--hot)}.bar-val{width:42px;text-align:right;color:var(--text-dim)}.offline-note{color:var(--text-faint);font-size:13px;margin-bottom:12px}.card-foot{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:11px;padding:3px 8px;border-radius:20px;background:var(--bg-elev);border:1px solid var(--border);color:var(--text-dim)}.chip-muted{color:var(--text-faint)}.chip-warn{color:var(--warn);border-color:#ffb02066}.chip-ok{color:var(--ok);border-color:#37d67a66}.card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:2px 9px;border-radius:6px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.tag-x{background:none;border:none;color:inherit;font-size:14px;line-height:1;padding:0;opacity:.7}.tag-x:hover:not(:disabled){opacity:1}.tag-editor{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0}.tag-editor-label{color:var(--text-dim);font-size:13px;font-weight:600}.tag-editor-chips{display:flex;flex-wrap:wrap;gap:6px}.tag-add{display:flex;gap:6px}.tag-input{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:5px 10px;color:var(--text);font-size:13px;font-family:inherit;width:140px}.tag-input:focus{outline:none;border-color:var(--accent)}.thr-editor{margin:6px 0 4px}.thr-toggle{background:none;border:none;color:var(--text-dim);font-size:13px;font-weight:600;padding:4px 0;display:inline-flex;align-items:center;gap:8px}.thr-body{margin-top:8px;display:flex;flex-direction:column;gap:10px}.thr-fields{display:flex;flex-wrap:wrap;gap:12px}.thr-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-dim)}.thr-input-wrap{display:inline-flex;align-items:center;gap:4px}.thr-field input{width:80px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:6px 8px;color:var(--text);font-size:14px;font-family:inherit}.thr-field input:focus{outline:none;border-color:var(--accent)}.thr-pct{color:var(--text-faint)}.thr-actions{display:flex;gap:8px}.rename-btn{padding:2px 8px;font-size:13px}.rename-box{display:inline-flex;align-items:center;gap:6px}.rename-input{background:var(--bg-card);border:1px solid var(--accent);border-radius:8px;padding:6px 10px;color:var(--text);font-size:18px;font-weight:700;font-family:inherit;min-width:200px}.rename-input:focus{outline:none}.access-panel{margin:6px 0;display:flex;flex-direction:column;gap:8px}.access-head{display:flex;align-items:center;gap:10px}.access-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.access-input{width:260px}.ssh-cmd{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:6px 10px;color:var(--text-dim);font-size:13px}.share-upload{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.share-file{color:var(--text-dim);font-size:13px}.share-opt{display:flex;flex-direction:column;gap:4px;color:var(--text-dim);font-size:12px}.share-opt select,.share-opt input{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:6px 8px;color:var(--text);font-size:14px;font-family:inherit}.share-list{display:flex;flex-direction:column;gap:10px}.share-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card)}.share-main{min-width:0;display:flex;flex-direction:column;gap:3px}.share-name{font-weight:600;word-break:break-all}.share-link{font-size:12px;color:var(--accent);word-break:break-all}.share-actions{display:flex;gap:6px;flex:0 0 auto}.check-label{flex-direction:row!important;align-items:center;gap:8px;color:var(--text-dim)}.check-label input{flex:0 0 auto;width:auto}.empty{color:var(--text-faint);text-align:center;padding:40px 20px;font-size:14px}.detail-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.detail-title{display:flex;align-items:center;gap:10px;flex:1}.detail-title h1{font-size:20px;margin:0}.token-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-6px 0 14px}.detail-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px}.tile{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 10px;text-align:center}.tile-value{font-size:20px;font-weight:700}.tile-label{color:var(--text-dim);font-size:11px;margin-top:3px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:14px;overflow-x:auto}.tab{background:none;border:none;color:var(--text-dim);padding:10px 14px;font-size:14px;border-bottom:2px solid transparent;white-space:nowrap}.tab-active{color:var(--text);border-bottom-color:var(--accent)}.list{display:flex;flex-direction:column;gap:8px}.row{display:flex;gap:12px;justify-content:space-between;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.row-main{min-width:0;flex:1}.row-title{font-weight:600;display:flex;align-items:center;gap:8px}.lang{font-size:11px;color:var(--text-faint);font-weight:400}.row-sub{color:var(--text-dim);font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.git-line{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}.git-commit{font-size:11px;color:var(--text-faint)}.row-side{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.badges{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.badge{font-size:10px;font-weight:600;padding:3px 7px;border-radius:6px;background:var(--bg-elev);border:1px solid var(--border);color:var(--text-dim)}.badge-docker{color:#4aa8ff;border-color:#4aa8ff66}.badge-git{color:#ff8a5c;border-color:#ff8a5c66}.badge-node,.badge-nextjs,.badge-nuxt{color:var(--ok);border-color:#37d67a66}.badge-go{color:#4dd0e1}.badge-python{color:#ffd54f}.badge-rust{color:#ff8a65}.row-meta{color:var(--text-faint);font-size:12px}.browser-bar{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.browser-bar select{background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px}.path{background:var(--bg-elev);border:1px solid var(--border);padding:7px 10px;border-radius:8px;font-size:12px;color:var(--text-dim);overflow-x:auto;flex:1;white-space:nowrap}.file-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.file-item{display:flex;align-items:center;background:var(--bg-card);border-bottom:1px solid var(--border)}.file-item:last-child{border-bottom:none}.file-item:hover{background:var(--bg-elev)}.fi-open{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:none;border:none;padding:11px 14px;text-align:left;color:var(--text);font-size:14px}.fi-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fi-meta{color:var(--text-faint);font-size:11px}.fi-actions{display:flex;gap:2px;padding-right:8px;flex:0 0 auto}.fi-act{background:none;border:none;color:var(--text-dim);font-size:14px;padding:6px 8px;border-radius:6px;opacity:.75}.fi-act:hover{opacity:1;background:var(--bg-card)}.fi-act.danger:hover{color:var(--hot)}.breadcrumb{flex:1;display:flex;align-items:center;flex-wrap:wrap;gap:2px;min-width:0;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:5px 8px;overflow-x:auto}.crumb{display:inline-flex;align-items:center;gap:2px}.crumb-btn{background:none;border:none;color:var(--text-dim);font-size:12px;padding:2px 4px;border-radius:5px;white-space:nowrap}.crumb-btn:hover{color:var(--accent);background:var(--bg-card)}.crumb:last-child .crumb-btn{color:var(--text);font-weight:600}.crumb-sep{color:var(--text-faint);font-size:12px}.browser-actions{display:flex;gap:4px}.project-actions{display:flex;gap:6px;margin-top:8px}.transfer{margin:8px 0}.transfer-body{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.transfer-body select{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:6px 8px;color:var(--text);font-size:14px}.transfer-path{flex:1;min-width:200px}.file-view-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.file-view-head code{font-size:12px;color:var(--text-dim);flex:1;overflow:hidden;text-overflow:ellipsis}.code-view{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:14px;overflow:auto;max-height:70vh;font-family:var(--mono);font-size:12.5px;line-height:1.5;color:#cdd6f4;white-space:pre;margin:0}.code-edit{width:100%;min-height:50vh;resize:vertical;white-space:pre;-moz-tab-size:4;tab-size:4}.code-edit:focus{outline:none;border-color:var(--accent)}.boot{min-height:100vh;display:grid;place-items:center;color:var(--text-dim)}.user-btn{display:flex;align-items:center;gap:7px}.user-avatar{width:22px;height:22px;border-radius:50%;background:linear-gradient(120deg,var(--accent),var(--accent-2));color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}.user-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:16px}.panel h2{font-size:15px;margin:0 0 14px;color:var(--text)}.form-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.form-row input,.form-row select{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:10px;color:var(--text);font-size:14px;flex:1;min-width:140px}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--accent)}.btn-primary.compact{padding:10px 16px;font-size:14px;flex:0 0 auto}.form-ok{color:var(--ok);font-size:13px;margin-top:10px}.form-err{color:var(--hot);font-size:13px;margin-top:10px}.btn-ghost.danger:hover:not(:disabled){color:var(--hot);border-color:var(--hot)}.btn-ghost:disabled{opacity:.4;cursor:not-allowed}.user-row .row-title{gap:8px}.container-row{flex-direction:column;align-items:stretch;gap:10px}.container-head{display:flex;gap:12px;justify-content:space-between}.container-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin-top:8px}.btn-ghost.sm{padding:5px 10px;font-size:12px}.btn-ghost.ok:hover:not(:disabled){color:var(--ok);border-color:var(--ok)}.logs-view{max-height:320px;font-size:12px}.chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:16px}.chart-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:10px}.chart-legend{display:flex;gap:14px}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim)}.legend-dot{width:10px;height:10px;border-radius:3px}.range-picker{display:flex;gap:4px}.range-btn{background:var(--bg-elev);border:1px solid var(--border);color:var(--text-dim);border-radius:7px;padding:4px 10px;font-size:12px}.range-active{color:var(--text);border-color:var(--accent)}.chart-svg{width:100%;height:160px;display:block}.grid-line{stroke:var(--border);stroke-width:1;stroke-dasharray:2 3}.grid-label{fill:var(--text-faint);font-size:9px}.chart-empty{color:var(--text-faint);font-size:13px;text-align:center;padding:40px 12px}.bell{position:relative}.bell-badge{position:absolute;top:-6px;right:-6px;background:var(--hot);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:grid;place-items:center;padding:0 4px}.alert-row .row-title{gap:8px}.alert-badge{font-size:10px;font-weight:700;padding:3px 7px;border-radius:6px;border:1px solid var(--border)}.alert-cpu{color:#5b8cff;border-color:#5b8cff66}.alert-mem{color:#7c5cff;border-color:#7c5cff66}.alert-disk{color:var(--ok);border-color:#37d67a66}.alert-offline{color:var(--hot);border-color:#ff5c6c66}.deploy-toolbar{margin-bottom:12px}.deploy-form h2{font-size:15px;margin:0 0 12px}.tpl-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.tpl-chip{background:var(--bg-elev);border:1px solid var(--border);color:var(--text-dim);border-radius:9px;padding:8px 12px;font-size:13px;display:flex;align-items:center;gap:6px}.tpl-active{color:var(--text);border-color:var(--accent)}.tpl-note{background:#ffb0201a;color:var(--warn);border-radius:8px;padding:8px 12px;font-size:12px;margin-bottom:12px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-dim)}.form-grid input,.form-grid select,.form-grid textarea{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:10px;color:var(--text);font-size:14px;font-family:inherit}.form-grid textarea{font-family:var(--mono);font-size:12px;resize:vertical}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--accent)}.deploy-row{flex-direction:column;align-items:stretch}.deploy-head{display:flex;gap:12px;justify-content:space-between}a.chip{text-decoration:none}.source-toggle{display:flex;gap:6px;margin-bottom:12px}.backups-panel{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.backups-actions{display:flex;flex-wrap:wrap;gap:6px}.backup-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}.backup-row .mono{color:var(--text)}.backup-btns{margin-left:auto;display:flex;gap:6px}.field-hint{color:var(--text-faint);font-size:11px;font-weight:400}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-desc{color:var(--text-dim);font-size:13px;margin:-6px 0 12px}.audit-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.audit-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--bg-card)}.audit-row:last-child{border-bottom:none}.audit-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0}.audit-action{font-weight:600;font-size:13px}.audit-target{color:var(--text-dim);font-size:12px;word-break:break-all}.audit-detail{color:var(--text-faint);font-size:12px}.audit-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:0 0 auto}.audit-actor{font-size:12px;color:var(--accent)}.panel-desc code,.field-hint code{background:var(--bg-elev);padding:1px 5px;border-radius:4px;font-size:12px}.token-reveal{background:#37d67a14;border:1px solid rgba(55,214,122,.35);border-radius:10px;padding:12px;margin:12px 0;display:flex;flex-direction:column;gap:8px}.token-reveal-head{color:var(--ok);font-size:13px;font-weight:600}.token-value{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px;font-size:13px;word-break:break-all;cursor:pointer;color:var(--text)}.term-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;padding:12px;padding-top:max(12px,env(safe-area-inset-top))}.term-head{display:flex;align-items:center;justify-content:space-between;padding:6px 4px 10px}.term-title{color:var(--text);font-size:14px}.term-body{flex:1;min-height:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;padding:8px;background:#0b0f19}@media (max-width: 640px){.summary{grid-template-columns:repeat(2,1fr)}.detail-metrics{grid-template-columns:repeat(3,1fr)}.grid{grid-template-columns:1fr}.row-side .badges{display:none}}
