@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#080e18;--surface:#101927;--surface2:#141f30;--line:#263348;--text:#e8eef8;--muted:#8e9db3;--teal:#4fe0c0;--violet:#a79bff;--blue:#6bb9ff;--amber:#f2bd6b;--danger:#ff7e88;font-family:'DM Sans',system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 80% -20%,#172c3b 0,transparent 42%),var(--bg);color:var(--text);font-size:14px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{width:236px;position:fixed;inset:0 auto 0 0;background:#0c1421;border-right:1px solid #1e2b3f;padding:25px 16px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;padding:2px 9px 34px}.brand-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:linear-gradient(140deg,#4fe0c0,#4a9dba);color:#06202a;font:700 23px 'Space Grotesk',sans-serif;box-shadow:0 8px 25px #4fe0c022}.brand b,.brand small{display:block}.brand b{font:700 16px 'Space Grotesk',sans-serif;letter-spacing:.13em}.brand small{color:var(--muted);font-size:9px;letter-spacing:.19em;margin-top:4px}.side-label,.eyebrow{font-size:10px;letter-spacing:.16em;color:#667a95;font-weight:700}.side-label{padding:0 12px 12px}.nav-item{padding:12px 14px;border-radius:9px;color:#a6b4c8;display:flex;gap:12px;align-items:center;margin:2px 0;transition:.2s}.nav-item span{font-size:18px;color:#7488a6}.nav-item:hover,.nav-item.active{background:#18263a;color:#f4f8ff}.nav-item.active span{color:var(--teal)}.sidebar-bottom{margin-top:auto}.secure-pill{display:flex;gap:10px;align-items:center;border:1px solid #263648;border-radius:10px;padding:12px;margin-bottom:12px}.secure-pill b,.secure-pill small{display:block}.secure-pill b{font-size:11px}.secure-pill small{font-size:10px;color:var(--muted);margin-top:4px}.dot,.online-dot{width:7px;height:7px;background:var(--teal);border-radius:50%;box-shadow:0 0 10px #4fe0c066}.logout{width:100%;background:transparent;border:1px solid #253348;color:#aab8cc;border-radius:9px;padding:11px;text-align:left}.logout:hover{border-color:#56718d;color:white}.main-content{margin-left:236px;padding:30px clamp(20px,3vw,48px) 22px;max-width:1800px}.topbar,.top-actions,.hero-row,.panel-heading,.metric-top,.metric-foot,.metric-value,.host-chip,.interface-head,.footer{display:flex;align-items:center;justify-content:space-between}.topbar{margin-bottom:27px}.eyebrow{margin:0 0 8px}.topbar h1{margin:0;font:600 26px 'Space Grotesk',sans-serif;letter-spacing:-.04em}.top-actions{gap:13px}.live-status{font-size:9px;letter-spacing:.12em;color:var(--teal);border:1px solid #24534d;background:#102b2b;padding:8px 10px;border-radius:20px}.live-status i{display:inline-block;width:6px;height:6px;background:var(--teal);border-radius:50%;margin-right:6px}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#23354b;color:var(--teal);font-weight:700}.user-label{color:#a2b1c7;font-size:12px}.hero-row{margin-bottom:22px}.hero-row h2{font:600 20px 'Space Grotesk',sans-serif;margin:0 0 7px}.muted{color:var(--muted)}.hero-row p{margin:0}.host-chip{justify-content:start;gap:12px;min-width:230px;background:#111c2b;border:1px solid #26364b;border-radius:12px;padding:12px 15px}.host-icon{font-size:22px;color:var(--teal)}.host-chip small,.host-chip b{display:block}.host-chip small{color:#7185a0;font-size:9px;letter-spacing:.13em}.host-chip b{font-size:12px;margin-top:4px}.online-dot{margin-left:auto}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}.metric-card,.panel{background:linear-gradient(145deg,#111b2a,#0e1724);border:1px solid #243247;border-radius:14px;box-shadow:0 12px 28px #00000012}.metric-card{padding:18px 18px 15px;min-width:0}.metric-label{font-size:10px;letter-spacing:.12em;color:#9aa9be;font-weight:600}.metric-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#ffffff08;font-size:18px}.teal{color:var(--teal);background:#4fe0c012}.violet{color:var(--violet);background:#a79bff12}.amber{color:var(--amber);background:#f2bd6b12}.blue{color:var(--blue);background:#6bb9ff12}.metric-value{justify-content:start;gap:6px;margin:16px 0 12px}.metric-value strong{font:600 31px 'Space Grotesk',sans-serif;letter-spacing:-.055em}.metric-value span{color:#8699b2;font-size:15px}.progress{height:5px;border-radius:10px;background:#273449;overflow:hidden}.progress i{display:block;width:0;height:100%;background:var(--teal);border-radius:10px;transition:width .45s}.violet-progress i{background:var(--violet)}.blue-progress i{background:var(--blue)}.metric-foot{gap:8px;color:#8293aa;font-size:10px;margin-top:12px}.metric-foot span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.net-speed{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:17px 0 17px}.net-speed small{display:block;color:#8597ad;font-size:9px;letter-spacing:.1em}.net-speed strong{display:block;font:600 16px 'Space Grotesk',sans-serif;margin-top:5px;white-space:nowrap}.content-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:16px;margin-bottom:18px}.panel{padding:19px 20px;margin-bottom:18px;min-width:0}.content-grid .panel{margin-bottom:0}.panel-heading{gap:15px;margin-bottom:18px}.panel-heading h3{margin:0 0 5px;font:600 15px 'Space Grotesk',sans-serif}.panel-heading p{font-size:11px;margin:0;line-height:1.5}.tag{font-size:9px;letter-spacing:.12em;color:var(--teal);border:1px solid #28534d;background:#102627;padding:6px 8px;border-radius:6px;white-space:nowrap}.chart-legend{display:flex;gap:19px;font-size:10px;color:#a2b1c7;margin-bottom:12px}.chart-legend span{display:flex;align-items:center;gap:7px}.chart-legend i{width:7px;height:7px;border-radius:50%}.legend-cpu{background:var(--teal)}.legend-ram{background:var(--violet)}.chart-wrap{height:155px;position:relative}.chart-wrap canvas{width:100%;height:100%;display:block}.chart-axis{display:flex;justify-content:space-between;font-size:9px;color:#70839c;margin-top:7px}.info-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #233046;font-size:11px}.info-list>div:last-child{border-bottom:0}.info-list span{color:#899bb2}.info-list b{text-align:right;font-weight:500;max-width:62%;overflow-wrap:anywhere}.subtle-count{color:#8d9eb4;font-size:10px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:9px;letter-spacing:.1em;color:#7f91a9;font-weight:600;padding:12px 11px;background:#0d1623}td{font-size:11px;color:#bdc9d9;padding:13px 11px;border-bottom:1px solid #202d40}tbody tr:last-child td{border-bottom:0}.empty{text-align:center;color:#71839b;padding:22px;font-size:11px}.usage-cell{display:flex;align-items:center;gap:9px;min-width:130px}.usage-cell .progress{width:75px}.usage-cell span{font-size:10px}.interface-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.interface-card{border:1px solid #253449;border-radius:10px;background:#0d1623;padding:13px;min-width:0}.interface-head{margin-bottom:10px}.interface-head b{font-size:12px}.interface-head span{font-size:9px;color:var(--teal);border-radius:5px;padding:4px 6px;background:#102b2a}.interface-head span.down{color:var(--danger);background:#331d2a}.interface-card p{font-size:10px;color:#8799b0;margin:7px 0 0;overflow-wrap:anywhere}.admin-divider{height:1px;background:#253348;margin:22px 0}.control-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.control-form label,.stack label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#9eacc0}.control-form input,.control-form select,.stack input{width:100%;min-width:0;border:1px solid #2a3a51;background:#0a1320;color:#e4edf9;border-radius:8px;padding:11px 12px;outline:none}.control-form input:focus,.control-form select:focus,.stack input:focus{border-color:#4caeaa;box-shadow:0 0 0 3px #4fe0c012}.control-form .wide,.control-form .checkbox-line,.control-form .warning-text{grid-column:1/-1}.control-form .checkbox-line{display:flex;flex-direction:row;align-items:center;gap:9px}.checkbox-line input{width:auto}.warning-text{color:#e5b978;line-height:1.6;margin:0}.button{border:1px solid transparent;border-radius:8px;padding:11px 15px;font-size:11px;font-weight:700}.button.primary{background:var(--teal);color:#09201f}.button.secondary{background:#17313a;border-color:#275353;color:#8debd7}.button:hover{filter:brightness(1.12)}.service-list{display:flex;flex-direction:column}.service-row{display:flex;align-items:center;gap:13px;border-bottom:1px solid #222f43;padding:13px 0}.service-row:last-child{border-bottom:0}.service-symbol{display:grid;place-items:center;width:35px;height:35px;border-radius:9px;color:var(--blue);background:#6bb9ff12;font-size:17px}.service-name{flex:1;min-width:0}.service-name b,.service-name small{display:block;overflow:hidden;text-overflow:ellipsis}.service-name b{font-size:12px;font-weight:600}.service-name small{color:#8092aa;font-size:10px;margin-top:5px}.service-state{font-size:9px;border-radius:5px;padding:5px 7px}.state-active{background:#10312e;color:var(--teal)}.state-idle{background:#29303d;color:#9cacbf}.service-actions{display:flex;gap:5px}.mini-button{border:1px solid #2c3b50;background:#121e2d;color:#aebdd0;border-radius:6px;padding:7px 9px;font-size:10px}.mini-button:hover{border-color:#4e7184;color:#fff}.mini-button:disabled{opacity:.45;cursor:wait}.mini-button.danger{color:#f59ba4;border-color:#4b2d3b}.footer{gap:12px;border-top:1px solid #202c3e;margin-top:25px;padding-top:19px;font-size:9px;letter-spacing:.07em;color:#9aabc0}.footer .muted{letter-spacing:0}.footer #last-updated{font-size:10px;letter-spacing:0}.toast{position:fixed;right:22px;bottom:22px;background:#163b39;color:#bff9e8;border:1px solid #2d6e64;border-radius:9px;padding:13px 17px;max-width:min(400px,calc(100vw - 32px));font-size:12px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s;z-index:10}.toast.show{opacity:1;transform:translateY(0)}.toast.bad{background:#431e2b;color:#ffd2d6;border-color:#703644}.login-shell{min-height:100vh;display:grid;place-items:center;padding:25px}.login-card{width:min(100%,410px);border:1px solid #28364a;background:linear-gradient(145deg,#111d2d,#0c1421);padding:34px;border-radius:17px;box-shadow:0 25px 70px #0005}.login-brand{padding:0 0 34px}.login-card h1{font:600 30px 'Space Grotesk',sans-serif;margin:14px 0 8px}.login-card>.muted{font-size:12px;line-height:1.7;margin-bottom:24px}.stack{display:grid;gap:16px}.stack .button{margin-top:5px}.tiny{font-size:10px;line-height:1.6}.login-card>.tiny{margin-top:20px;text-align:center}.flash{padding:10px 12px;border-radius:8px;margin:12px 0;font-size:11px}.flash.error{background:#3b202c;color:#ffbec7;border:1px solid #623342}
@media(max-width:1180px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}.system-panel{order:-1}}@media(max-width:760px){.sidebar{position:relative;width:100%;height:auto;padding:13px 15px;border-right:0;border-bottom:1px solid #223149}.brand{padding:0 4px 13px}.side-label,.sidebar-bottom{display:none}.sidebar .nav-item{display:inline-flex;padding:8px 9px;margin:0;font-size:11px}.sidebar{display:block}.sidebar>.brand{display:flex}.main-content{margin-left:0;padding:22px 14px}.topbar{align-items:flex-start;gap:12px}.topbar h1{font-size:22px}.top-actions{gap:7px;flex-wrap:wrap;justify-content:flex-end}.live-status{font-size:8px;padding:7px}.user-label{display:none}.hero-row{align-items:flex-start;gap:15px;flex-direction:column}.host-chip{width:100%}.metrics-grid{gap:10px}.metric-card{padding:13px}.metric-label{font-size:9px}.metric-value strong{font-size:27px}.metric-foot{font-size:9px}.panel{padding:15px 12px}.service-row{gap:8px;flex-wrap:wrap}.service-name{min-width:calc(100% - 60px)}.service-state{margin-left:auto}.service-actions{width:100%;justify-content:flex-end}.control-form{grid-template-columns:1fr}.control-form .wide,.control-form .checkbox-line,.control-form .warning-text{grid-column:auto}.footer{align-items:flex-start;flex-direction:column}.login-card{padding:25px}}@media(max-width:420px){.metrics-grid{grid-template-columns:1fr}.metric-card{padding:17px}.nav-item{font-size:10px!important}.nav-item span{font-size:15px}.panel-heading{align-items:flex-start}.tag{font-size:8px}.topbar{flex-direction:column}.top-actions{width:100%;justify-content:flex-start}.control-form{gap:11px}}
