@import "https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{--bg-main:#0b1517;--bg-card:#172e31a6;--border-card:#269a9629;--border-focus:#269a96;--text-main:#eef4f4;--text-muted:#7f9a9c;--accent:#269a96;--accent-light:#3eb0ab;--accent-dark:#1b7c79;--accent-glow:#269a9640;--cream:#fffdee;--success:#188038;--warning:#f59e0b;--error:#ff6b6b;--info:#3eb0ab;--font-sans:"Manrope", system-ui, -apple-system, sans-serif;--font-mono:"Fira Code", monospace}*{box-sizing:border-box;margin:0;padding:0}button,a,.control-input,.select-trigger{transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}body{font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-main);background-image:radial-gradient(at 0 0,#269a9624 0,#0000 50%),radial-gradient(at 100% 0,#3eb0ab14 0,#0000 50%),radial-gradient(at 50% 100%,#1880380d 0,#0000 50%);min-height:100vh;padding:1.25rem 1rem;overflow-y:scroll}#root{width:100%;max-width:1400px;margin:0 auto}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0f172a80;border-radius:6px}::-webkit-scrollbar-thumb{background:#94a3b833;border:2px solid #0f172a80;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#269a9680}.spinner{border:3px solid var(--accent-glow);border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:1s ease-in-out infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.glass-panel{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-card);border-radius:18px;box-shadow:0 8px 32px #0b151773}.control-select,.control-input{color:var(--text-main);cursor:pointer;background:#0b151799;border:1px solid #ffffff14;border-radius:10px;outline:none;width:100%;padding:.6rem 1rem;font-size:.95rem}.control-select:focus,.control-input:focus{border-color:var(--border-focus);box-shadow:0 0 10px var(--accent-glow);background:#0b1517d9}.btn-primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);color:#fff;cursor:pointer;border:none;border-radius:10px;align-items:center;gap:.5rem;padding:.6rem 1.5rem;font-size:.95rem;font-weight:600;display:inline-flex;box-shadow:0 4px 12px #1b7c794d}.btn-primary:hover{background:linear-gradient(135deg, var(--accent-light) 0%, var(--accent) 100%);transform:translateY(-1px);box-shadow:0 6px 16px #1b7c7980}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{color:var(--text-main);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.85rem;font-weight:500;display:inline-flex}.btn-secondary:hover{background:#ffffff1a;border-color:#fff3}.btn-secondary:active{transform:translateY(1px)}.badge{text-transform:uppercase;border-radius:4px;padding:.15rem .4rem;font-size:.75rem;font-weight:700;display:inline-block}.badge-info{color:#3eb0ab;background:#3eb0ab26}.badge-warn{color:#fbbf24;background:#f59e0b26}.badge-error{color:#ff6b6b;background:#ff6b6b26}.badge-success{color:#34d399;background:#1880382e}.app-container{flex-direction:column;gap:1rem;display:flex}.muted{color:var(--text-muted)}.small{font-size:.8rem}.mono{font-family:var(--font-mono)}.right{text-align:right}.center{text-align:center}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.lvl-ok{color:#34d399}.lvl-warn{color:var(--warning)}.lvl-error{color:var(--error)}.spin{animation:1s linear infinite spin}.app-header{align-items:center;gap:1.5rem;padding:.75rem 1.25rem;display:flex}.logo-section{align-items:center;gap:.6rem;display:flex}.app-title{letter-spacing:-.3px;background:linear-gradient(135deg, var(--cream) 0%, var(--accent-light) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.25rem;font-weight:800}.view-tabs{gap:.25rem;display:flex}.view-tabs button{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.45rem .9rem;font-weight:600}.view-tabs button:hover{color:var(--text-main);background:#ffffff0a}.view-tabs button.active{color:var(--text-main);background:#269a962e}.header-user{align-items:center;gap:.4rem;margin-left:auto;display:flex}.user-badge{color:var(--text-muted);align-items:center;gap:.4rem;margin-right:.25rem;font-size:.85rem;display:inline-flex}.btn-icon{width:32px;height:32px;color:var(--text-main);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover:not(:disabled){background:#ffffff1a}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.btn-link{color:var(--accent-light);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.2rem .4rem;font-weight:600}.btn-link:hover{background:#269a961f}.btn-secondary.is-on{border-color:var(--accent);color:var(--accent-light)}.btn-block{justify-content:center;width:100%}.btn-danger{color:#fff;font:inherit;cursor:pointer;background:#dc2626;border:none;border-radius:10px;padding:.6rem 1.25rem;font-weight:600}.btn-danger:hover:not(:disabled){background:#ef4444}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-restart{color:#ff8a8a;font:inherit;cursor:pointer;background:#ff6b6b14;border:1px solid #ff6b6b4d;border-radius:8px;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.8rem;font-weight:600;display:inline-flex}.btn-restart:hover{color:#fff;background:#ff6b6b;border-color:#ff6b6b}:is(button,a,input,[tabindex]):focus-visible{outline:2px solid var(--accent-light);outline-offset:2px}.field{flex-direction:column;gap:.35rem;display:flex}.field.grow{flex:260px}.control-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:.72rem;font-weight:700}.inline-field{align-items:center;gap:.4rem;display:flex}.inline-field .control-input{width:auto;padding:.45rem .6rem}.check{cursor:pointer;white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.check input{accent-color:var(--accent)}.segmented{background:#0b151799;border:1px solid #ffffff14;border-radius:10px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--text-muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;padding:.4rem .8rem;font-size:.85rem;font-weight:600}.segmented button:hover{color:var(--text-main)}.segmented button.active{background:var(--accent-dark);color:#fff}.segmented-sm button{padding:.3rem .6rem;font-size:.8rem}.select{min-width:160px;position:relative}.select-tenant{min-width:210px}.select-sm{min-width:110px}.select-trigger{width:100%;color:var(--text-main);font:inherit;cursor:pointer;text-align:left;background:#0b151799;border:1px solid #ffffff14;border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.9rem;display:flex}.select-sm .select-trigger{padding:.3rem .6rem;font-size:.8rem}.select-trigger:hover:not(:disabled),.select-trigger[aria-expanded=true]{border-color:var(--border-focus)}.select-trigger:disabled{opacity:.5;cursor:not-allowed}.select-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-list{z-index:50;background:#102326;border:1px solid #269a964d;border-radius:10px;min-width:100%;max-height:320px;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 12px 32px #00000080}.select-option{cursor:pointer;white-space:nowrap;border-radius:7px;align-items:center;gap:.5rem;padding:.45rem .6rem;font-size:.88rem;display:flex}.select-option.is-active{background:#269a9633}.select-check{width:14px;color:var(--accent-light);display:inline-flex}.select-hint{color:var(--text-muted);margin-left:auto;padding-left:1rem;font-size:.78rem}.toolbar{z-index:5;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.75rem 1rem;display:flex;position:relative}.toolbar-end{flex-wrap:wrap;align-items:center;gap:.6rem;margin-left:auto;display:flex}.toolbar-more{border-top:1px solid #ffffff0f;flex-wrap:wrap;flex-basis:100%;align-items:flex-end;gap:.75rem;padding-top:.75rem;display:flex}.summary{padding:0}.summary-line{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;padding:.65rem 1rem;font-size:.85rem;list-style:none;display:flex}.summary-line::-webkit-details-marker{display:none}.summary-line:before{content:"▸";color:var(--text-muted)}.summary[open] .summary-line:before{content:"▾"}.summary-title{font-weight:700}.summary-body{flex-direction:column;gap:.75rem;padding:0 1rem 1rem;display:flex}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:1rem;display:grid}.summary-block{min-width:0;overflow-x:auto}.summary-block h4{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin-bottom:.4rem;font-size:.8rem}.summary-block-wide{grid-column:1/-1}.summary-table{border-collapse:collapse;width:100%;font-size:.8rem}.summary-table th{text-align:left;color:var(--text-muted);padding:.3rem .4rem;font-weight:600}.summary-table th.right{text-align:right}.summary-table td{white-space:nowrap;border-top:1px solid #ffffff0a;padding:.3rem .4rem}.summary-table tbody tr[title]{cursor:pointer}.summary-table tbody tr[title]:hover{background:#269a9614}.st-err{color:var(--error);font-weight:700}.st-warn{color:var(--warning);font-weight:700}.console-wrapper{flex-direction:column;display:flex;overflow:hidden}.console-header{background:#0b1517cc;border-bottom:1px solid #ffffff0f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.6rem 1rem;display:flex}.console-info{flex-wrap:wrap;align-items:center;gap:.6rem;min-width:0;font-size:.85rem;display:flex}.console-actions{align-items:center;gap:.5rem;display:flex}.live{color:var(--accent-light);align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;display:inline-flex}.refresh-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.filter-bar{background:#0b151773;border-bottom:1px solid #ffffff0a;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.6rem 1rem;display:flex}.search{flex:280px;align-items:center;gap:.5rem;display:flex;position:relative}.search .control-input{padding-top:.45rem;padding-bottom:.45rem;padding-left:2.2rem}.search-icon{color:var(--text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:.7rem;transform:translateY(-50%)}.search-nav{white-space:nowrap;align-items:center;gap:.2rem;display:flex}.search-nav-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem;display:flex}.search-nav-btn:hover:not(:disabled){color:var(--text-main);background:#ffffff0f}.filter-stats{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:.8rem}.console-body{font-family:var(--font-mono);color:#f1f5f9;background:#050b0c;height:68vh;min-height:420px;padding:.75rem .5rem;font-size:.82rem;line-height:1.5;position:relative;overflow-y:auto}.console-line{white-space:pre-wrap;word-break:break-all;border-radius:4px;padding:.1rem .5rem;display:flex}.console-line:hover{background:#ffffff08}.console-line-num{color:#475569;-webkit-user-select:none;user-select:none;text-align:right;flex:0 0 3.2rem;margin-right:.9rem}.console-line-content{min-width:0}.log-error{color:#f87171;background:#dc262614}.log-warn{color:#fbbf24;background:#d977060d}.log-info{color:#cfe3e3}.log-success{color:#34d399}.log-timestamp{color:#64748b}.log-highlight{color:#fff;background:#eab3084d;border-radius:2px}.log-current-match{outline:1px solid #eab308}.console-empty{height:100%;min-height:380px;color:var(--text-muted);text-align:center;font-family:var(--font-sans);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.scroll-bottom-btn{background:var(--accent);color:#041012;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;margin-left:auto;margin-right:8px;display:flex;position:sticky;bottom:8px;box-shadow:0 4px 12px #0006}.toast{z-index:1100;color:var(--text-main);background:#102326;border:1px solid #269a9666;border-radius:10px;padding:.6rem 1rem;font-size:.9rem;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0b1517cc;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:#112326;border:1px solid #ffffff14;border-radius:16px;width:100%;max-width:480px;padding:1.5rem;box-shadow:0 20px 25px -5px #00000080}.modal-wide{max-width:600px}.modal-header{margin-bottom:.75rem;font-size:1.1rem;font-weight:700}.modal-body{margin-bottom:1.25rem;line-height:1.5}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1rem;display:flex}.login-screen{justify-content:center;align-items:center;min-height:80vh;display:flex}.login-card{flex-direction:column;gap:1rem;width:100%;max-width:380px;padding:2rem;display:flex}.login-title{text-align:center;margin-bottom:.5rem}.login-error{color:var(--error);font-size:.85rem}.users-panel-form{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.users-panel-form .control-input{flex:160px}.users-panel-list{flex-direction:column;gap:.4rem;max-height:300px;display:flex;overflow-y:auto}.users-panel-row{background:#ffffff08;border-radius:8px;align-items:center;gap:.6rem;padding:.4rem .6rem;display:flex}.users-panel-username{flex:1;font-weight:600}.overview{flex-direction:column;gap:1rem;display:flex}.overview-totals{gap:1rem;font-size:.9rem;font-weight:600;display:flex}.overview-totals span{align-items:center;gap:.4rem;display:inline-flex}.overview-error{color:var(--error);padding:.75rem 1rem}.overview-loading{color:var(--text-muted);align-items:center;gap:1rem;padding:1.5rem;display:flex}.hdot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.hdot-ok{background:#34d399}.hdot-warn{background:var(--warning);box-shadow:0 0 0 3px #f59e0b2e}.hdot-error{background:var(--error);animation:1.6s ease-in-out infinite pulse;box-shadow:0 0 0 3px #ff6b6b33}@media (prefers-reduced-motion:reduce){.hdot-error,.refresh-dot,.spin,.spinner{animation:none}}.host-panel{flex-direction:column;gap:.9rem;padding:1rem 1.25rem;display:flex}.host-head{align-items:center;gap:.6rem;display:flex}.host-head h2{font-size:1.05rem}.host-meters{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;display:grid}.meter{flex-direction:column;gap:.35rem;display:flex}.meter-head{justify-content:space-between;font-size:.85rem;display:flex}.meter-label{color:var(--text-muted);font-weight:600}.meter-value{font-weight:700}.meter-track{background:#ffffff12;border-radius:99px;height:6px;overflow:hidden}.meter-fill{background:var(--text-muted);border-radius:99px;height:100%}.meter-fill.lvl-ok{background:#34d399}.meter-fill.lvl-warn{background:var(--warning)}.meter-fill.lvl-error{background:var(--error)}.meter-detail{color:var(--text-muted);font-size:.75rem}.capacity{font-weight:600}.mem-details summary{cursor:pointer;color:var(--accent-light);font-size:.85rem;font-weight:600}.mem-list{flex-direction:column;gap:.3rem;margin-top:.6rem;display:flex}.mem-row{grid-template-columns:minmax(120px,230px) 1fr 80px 110px;align-items:center;gap:.75rem;font-size:.82rem;display:grid}.mem-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mem-bar{background:#ffffff0d;border-radius:99px;height:8px;overflow:hidden}.mem-bar span{background:var(--accent);border-radius:99px;height:100%;display:block}.mem-row-other .mem-bar span{background:#7f9a9c99}.mem-row-flagged .mem-name,.mem-row-flagged .mem-hint{color:var(--warning)}.mem-row-flagged .mem-bar span{background:var(--warning)}.mem-mb{text-align:right}.issues{flex-direction:column;gap:.25rem;list-style:none;display:flex}.issue{padding-left:.9rem;font-size:.82rem;position:relative}.issue:before{content:"";background:var(--text-muted);border-radius:50%;width:6px;height:6px;position:absolute;top:.5em;left:0}.issue-warn{color:var(--warning)}.issue-warn:before{background:var(--warning)}.issue-error{color:var(--error)}.issue-error:before{background:var(--error)}.table-panel{padding:.25rem 0;overflow-x:auto}.tenant-table{border-collapse:collapse;width:100%;font-size:.88rem}.tenant-table th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);white-space:nowrap;padding:.6rem .75rem;font-size:.72rem;font-weight:700}.tenant-table th.right{text-align:right}.tenant-table td{vertical-align:middle;white-space:nowrap;border-top:1px solid #ffffff0d;padding:.6rem .75rem}.tenant-table td:first-child,.tenant-table th:first-child{width:1.75rem;padding-right:0}.trow:hover td{background:#ffffff05}.trow-issues td{white-space:normal;border-top:none;padding-top:0}.tname{font-weight:700}.tmeta{align-items:center;gap:.4rem;margin-top:.1rem;font-size:.78rem;display:flex}.tmeta a{color:var(--text-muted);text-decoration:none}.tmeta a:hover{color:var(--accent-light);text-decoration:underline}.gbadge{color:var(--text-muted);border:1px solid #ffffff26;border-radius:99px;padding:.05rem .4rem;font-size:.68rem;font-weight:700}.gbadge-info{color:var(--info);border-color:#3eb0ab66}.services-panel{padding:1rem 1.25rem}.services-panel h3{margin-bottom:.5rem;font-size:.9rem}@media (width<=760px){.app-header{flex-wrap:wrap;gap:.75rem}.toolbar-end{margin-left:0}.mem-row{grid-template-columns:1fr 70px}.mem-bar,.mem-hint{display:none}}
