:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:0 0% 100%;--foreground:240 10% 3.9%;--card:0 0% 100%;--card-foreground:240 10% 3.9%;--popover:0 0% 100%;--popover-foreground:240 10% 3.9%;--primary:240 5.9% 10%;--primary-foreground:0 0% 98%;--secondary:240 4.8% 95.9%;--secondary-foreground:240 5.9% 10%;--muted:240 4.8% 95.9%;--muted-foreground:240 3.8% 46.1%;--accent:240 4.8% 95.9%;--accent-foreground:240 5.9% 10%;--destructive:0 72% 51%;--destructive-foreground:0 0% 98%;--success:142 71% 38%;--success-foreground:0 0% 98%;--warning:32 95% 44%;--warning-foreground:0 0% 98%;--border:240 5.9% 90%;--input:240 5.9% 90%;--ring:240 5.9% 10%;--chart-cpu:217 91% 55%;--chart-ram:262 83% 58%;--chart-disk:173 80% 38%;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--shadow-sm:0 1px 2px 0 #09090b0d;--shadow-md:0 4px 12px -2px #09090b1a;--shadow-lg:0 12px 32px -8px #09090b3d;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:240 10% 3.9%;--foreground:0 0% 98%;--card:240 8% 6.5%;--card-foreground:0 0% 98%;--popover:240 8% 6.5%;--popover-foreground:0 0% 98%;--primary:0 0% 98%;--primary-foreground:240 5.9% 10%;--secondary:240 3.7% 15.9%;--secondary-foreground:0 0% 98%;--muted:240 3.7% 15.9%;--muted-foreground:240 5% 64.9%;--accent:240 3.7% 15.9%;--accent-foreground:0 0% 98%;--destructive:0 72% 55%;--destructive-foreground:0 0% 98%;--success:142 69% 48%;--success-foreground:240 10% 3.9%;--warning:38 92% 55%;--warning-foreground:240 10% 3.9%;--border:240 3.7% 15.9%;--input:240 3.7% 18%;--ring:240 4.9% 83.9%;--chart-cpu:213 94% 68%;--chart-ram:263 85% 72%;--chart-disk:172 66% 50%;--shadow-sm:0 1px 2px 0 #0006;--shadow-md:0 4px 12px -2px #00000080;--shadow-lg:0 16px 40px -12px #000000a6}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.25}a{color:hsl(var(--primary));text-decoration:none}a:hover{text-decoration:underline}code,pre,kbd,samp,.mono{font-family:var(--font-mono)}:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:var(--radius-full)}::-webkit-scrollbar-track{background:0 0}.num,.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.muted{color:hsl(var(--muted-foreground))}.small{font-size:12px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid hsl(var(--border));background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border-radius:var(--radius-md);font:inherit;cursor:pointer;white-space:nowrap;padding:6px 12px;font-size:13px;font-weight:500;line-height:1.25;transition:background .15s,border-color .15s,opacity .15s,color .15s;display:inline-flex}.btn:hover:not(:disabled){background:hsl(var(--accent))}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:4px 10px;font-size:12px}.btn-icon{width:32px;height:32px;padding:6px}.btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:#0000}.btn-primary:hover:not(:disabled){background:hsl(var(--primary));opacity:.9}.btn-destructive{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));border-color:#0000}.btn-destructive:hover:not(:disabled){background:hsl(var(--destructive));opacity:.9}.btn-success{background:hsl(var(--success));color:hsl(var(--success-foreground));border-color:#0000}.btn-success:hover:not(:disabled){background:hsl(var(--success));opacity:.9}.btn-outline{background:0 0}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.btn-spinner{border-radius:var(--radius-full);border:2px solid;border-right-color:#0000;width:12px;height:12px;animation:.6s linear infinite spin}.confirm-inline{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);background:hsl(var(--muted));padding:2px;display:inline-flex}@keyframes spin{to{transform:rotate(360deg)}}.card{background:hsl(var(--card));color:hsl(var(--card-foreground));border:1px solid hsl(var(--border));border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.card-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid hsl(var(--border));display:flex}.card-title{font-size:14px;font-weight:600}.card-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.card-content{padding:var(--space-5)}.card-content.flush{padding:0}.badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-full);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.badge-success{background:hsl(var(--success) / .12);color:hsl(var(--success));border-color:hsl(var(--success) / .3)}.badge-warning{background:hsl(var(--warning) / .14);color:hsl(var(--warning));border-color:hsl(var(--warning) / .3)}.badge-destructive{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive));border-color:hsl(var(--destructive) / .3)}.badge-info{background:hsl(var(--chart-cpu) / .14);color:hsl(var(--chart-cpu));border-color:hsl(var(--chart-cpu) / .3)}.status-pill{white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.status-pill .dot{border-radius:var(--radius-full);background:hsl(var(--muted-foreground));flex:none;width:8px;height:8px}.status-running .dot{background:hsl(var(--success));box-shadow:0 0 0 3px hsl(var(--success) / .15)}.status-running .status-text{color:hsl(var(--success))}.status-stopped .dot{background:hsl(var(--muted-foreground))}.status-stopped .status-text{color:hsl(var(--muted-foreground))}.status-starting .dot{background:hsl(var(--warning));box-shadow:0 0 0 3px hsl(var(--warning) / .15);animation:1s ease-in-out infinite pulse}.status-starting .status-text{color:hsl(var(--warning))}.status-failed .dot{background:hsl(var(--destructive));box-shadow:0 0 0 3px hsl(var(--destructive) / .15)}.status-failed .status-text{color:hsl(var(--destructive))}.status-unknown .dot{background:hsl(var(--muted-foreground))}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.label{color:hsl(var(--muted-foreground));margin-bottom:var(--space-1);font-size:12px;font-weight:500;display:block}.input,.select{background:hsl(var(--background));width:100%;color:hsl(var(--foreground));border:1px solid hsl(var(--input));border-radius:var(--radius-md);font:inherit;padding:6px 10px;font-size:13px;line-height:1.4}.input::placeholder{color:hsl(var(--muted-foreground))}.input:focus,.select:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .25);outline:none}.select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 14px),calc(100% - 9px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:28px}.select-inline{width:auto}.table-wrap{width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--muted-foreground));padding:10px var(--space-4);border-bottom:1px solid hsl(var(--border));white-space:nowrap;font-size:11px;font-weight:600}.table td{padding:10px var(--space-4);border-bottom:1px solid hsl(var(--border));vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:hsl(var(--muted) / .4)}.table .num{font-variant-numeric:tabular-nums}.drawer-overlay{z-index:50;background:#09090b8c;justify-content:flex-end;animation:.15s fade-in;display:flex;position:fixed;inset:0}.drawer{background:hsl(var(--card));border-left:1px solid hsl(var(--border));width:min(720px,100%);height:100%;box-shadow:var(--shadow-lg);flex-direction:column;animation:.2s slide-in;display:flex}.drawer-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid hsl(var(--border));display:flex}.drawer-title{font-size:14px;font-weight:600}.drawer-body{padding:var(--space-4) var(--space-5);flex:1;overflow:auto}.drawer-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid hsl(var(--border));display:flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{opacity:.4;transform:translate(16px)}to{opacity:1;transform:none}}.skeleton{background:linear-gradient(90deg, hsl(var(--muted)) 25%, hsl(var(--accent)) 37%, hsl(var(--muted)) 63%);border-radius:var(--radius-sm);background-size:400% 100%;animation:1.4s infinite shimmer;display:block}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.empty{align-items:center;gap:var(--space-2);text-align:center;padding:var(--space-8) var(--space-4);color:hsl(var(--muted-foreground));flex-direction:column;display:flex}.empty-title{color:hsl(var(--foreground));font-weight:600}.error-state{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:1px solid hsl(var(--destructive) / .4);background:hsl(var(--destructive) / .08);border-radius:var(--radius-lg);flex-direction:column;display:flex}.error-state .error-msg{color:hsl(var(--destructive));word-break:break-word;font-size:13px}.unavailable{align-items:center;gap:var(--space-2);color:hsl(var(--muted-foreground));font-size:12px;display:inline-flex}.kpi-strip{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.kpi-strip.compact{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.kpi{min-width:0;padding:var(--space-3) var(--space-4);background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius-lg);flex-direction:column;gap:2px;display:flex}.kpi-strip.compact .kpi{padding:var(--space-2) var(--space-3)}.kpi-label{text-transform:uppercase;letter-spacing:.04em;color:hsl(var(--muted-foreground));font-size:11px}.kpi-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.kpi-strip.compact .kpi-value{font-size:16px}.kpi-hint{color:hsl(var(--muted-foreground));font-size:11px}.kpi-spark{margin-top:var(--space-1);color:hsl(var(--chart-cpu))}.service-list{flex-direction:column;display:flex}.service-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid hsl(var(--border));display:flex}.service-row:last-child{border-bottom:none}.service-main{align-items:center;gap:var(--space-3);min-width:0;display:flex}.service-text{min-width:0}.service-label{align-items:center;gap:var(--space-2);font-weight:600;display:flex}.service-desc{color:hsl(var(--muted-foreground));font-size:12px}.service-url{word-break:break-all;font-size:12px;display:block}.service-actions{align-items:center;gap:var(--space-2);flex:none;display:flex}.service-mem{text-align:right;min-width:72px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;font-size:12px}.service-expand{align-items:center;gap:var(--space-2);display:flex}.log-view{max-height:320px;padding:var(--space-3);background:hsl(var(--muted) / .6);border:1px solid hsl(var(--border));border-radius:var(--radius-md);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;margin:0;font-size:12px;line-height:1.55;overflow:auto}.log-view.tall{max-height:560px}.agents-view{max-height:460px}.log-meta{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.sparkline{display:block;overflow:visible}.sparkline-line{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.sparkline-fill{fill:currentColor;stroke:none;opacity:.12}.sparkline-empty{background:hsl(var(--muted));border-radius:var(--radius-sm)}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-header{z-index:20;background:hsl(var(--background) / .88);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid hsl(var(--border));position:sticky;top:0}.app-header-inner{max-width:1180px;padding:var(--space-3) var(--space-5);gap:var(--space-3);flex-direction:column;margin:0 auto;display:flex}.header-row{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.brand{align-items:center;gap:var(--space-2);font-size:16px;font-weight:700;display:flex}.brand .sub{color:hsl(var(--muted-foreground));font-size:12px;font-weight:400}.header-actions{align-items:center;gap:var(--space-2);display:flex}.nav{gap:var(--space-1);display:flex;overflow-x:auto}.nav-item{color:hsl(var(--muted-foreground));border-radius:var(--radius-md);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:13px;font-weight:500}.nav-item:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.nav-item.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.app-main{width:100%;max-width:1180px;padding:var(--space-6) var(--space-5) var(--space-8);gap:var(--space-6);flex-direction:column;flex:1;margin:0 auto;display:flex}.section{gap:var(--space-3);flex-direction:column;display:flex}.section-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.section-title{font-size:15px;font-weight:600}.section-sub{color:hsl(var(--muted-foreground));font-size:12px}.grid{gap:var(--space-4);display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.spacer{flex:1}.login-wrap{min-height:100vh;padding:var(--space-5);background:hsl(var(--background));justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:340px}.login-card form{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.login-error{margin-top:var(--space-3);color:hsl(var(--destructive));font-size:13px}.status-line{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid hsl(var(--border));border-radius:var(--radius-md);background:hsl(var(--muted));font-size:13px;display:flex}.status-line-info{border-color:hsl(var(--chart-cpu) / .4);background:hsl(var(--chart-cpu) / .1)}.status-line-success{border-color:hsl(var(--success) / .4);background:hsl(var(--success) / .1)}.status-line-error{border-color:hsl(var(--destructive) / .4);background:hsl(var(--destructive) / .1)}.toast-wrap{right:var(--space-5);bottom:var(--space-5);z-index:60;gap:var(--space-2);flex-direction:column;display:flex;position:fixed}.toast{min-width:240px;max-width:360px;box-shadow:var(--shadow-lg);animation:.2s slide-up}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (width<=640px){.app-header-inner,.app-main{padding-left:var(--space-4);padding-right:var(--space-4)}.service-row{flex-direction:column;align-items:stretch}.service-actions{flex-wrap:wrap;justify-content:flex-start}.kpi-value{font-size:19px}}
