:root{--purple:#6c5ce7;--purple-dark:#5648c9;--purple-soft:#f1effe;--orange:#ff7a45;--orange-dark:#ee5f27;--orange-soft:#fff3ec;--bg:#f4f3fb;--surface:#fff;--border:#eceaf5;--text:#211b36;--muted:#6e6a82;--red-bg:#fdecec;--red:#d03a3a;--amber-bg:#fff4e0;--amber:#c07a0b;--green-bg:#e9f6ec;--green:#2f8a44;--blue:#6c5ce7;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}.app{align-items:stretch;min-height:100vh;display:flex}.sidebar{background:var(--purple);color:#fff;flex-direction:column;flex-shrink:0;align-self:flex-start;gap:5px;width:234px;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0}.side-brand{align-items:center;gap:12px;padding:4px 6px 26px;display:flex}.side-brand .tl{background:#ffffff2e;border-radius:9px;flex-direction:column;gap:3px;padding:6px;display:flex}.side-brand .tl span{border-radius:50%;width:12px;height:12px}.side-brand h1{color:#fff;margin:0;font-size:17px;font-weight:600;line-height:1.1}.side-brand p{color:#ffffffb8;margin:3px 0 0;font-size:12px}.nav-item{color:#ffffffd1;border-radius:11px;align-items:center;gap:11px;padding:11px 14px;font-size:14px;text-decoration:none;transition:background .15s;display:flex}.nav-item i{font-size:19px}.nav-item:hover{color:#fff;background:#ffffff21}.nav-item.active{color:var(--purple);background:#fff;font-weight:600}.side-logout{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:11px;margin-top:auto;padding:11px;font-size:14px}.side-logout:hover{background:#ffffff42}.main{flex:1;min-width:0;padding:36px 44px 80px}.main-inner{max-width:1000px;margin:0 auto}.main-top{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:30px;display:flex}.wrap{padding:0}@media (width<=820px){.app{flex-direction:column}.sidebar{flex-flow:wrap;align-items:center;gap:6px;width:auto;padding:12px}.side-brand{padding:0 8px 0 4px}.nav-item{padding:8px 11px}.side-logout{margin:0}.main{padding:18px 16px 48px}}button{font-family:inherit}.main button,.row button,.toolbar button{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);border-radius:10px;padding:9px 14px;font-size:14px;transition:background .15s}.main button:hover,.row button:hover,.toolbar button:hover{background:var(--purple-soft)}.main button:disabled{opacity:.5;cursor:default}.primary{background:var(--orange)!important;color:#fff!important;border:none!important}.primary:hover{background:var(--orange-dark)!important}.status-hero{background:var(--purple);color:#fff;border-radius:20px;align-items:center;gap:22px;margin-bottom:28px;padding:28px 32px;display:flex;position:relative;overflow:hidden}.status-hero .blob{pointer-events:none;background:#ffffff17;border-radius:50%;position:absolute}.status-hero .tl-big{z-index:1;background:#ffffff29;border-radius:14px;flex-direction:column;gap:7px;padding:11px;display:flex}.status-hero .tl-big span{background:#ffffff47;border-radius:50%;width:18px;height:18px}.status-hero .ht{z-index:1;margin:0;font-size:23px;font-weight:600}.status-hero .hs{color:#ffffffd9;z-index:1;margin:5px 0 0;font-size:14px;line-height:1.5}.status-hero .hr{color:#ffffffb3;text-align:right;z-index:1;white-space:nowrap;font-size:12px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand .dot{border-radius:50%;width:14px;height:14px}.brand h1{margin:0;font-size:20px;font-weight:600}.brand p{color:var(--muted);margin:2px 0 0;font-size:13px}.status-pill{border-radius:10px;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:600;display:inline-flex}.status-pill .led{border-radius:50%;width:10px;height:10px}.s-red{background:var(--red-bg);color:var(--red)}.s-amber{background:var(--amber-bg);color:var(--amber)}.s-green{background:var(--green-bg);color:var(--green)}.led-red{background:var(--red)}.led-amber{background:var(--amber)}.led-green{background:var(--green)}.cards{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:26px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px 20px}.card.danger{background:var(--red-bg);border-color:#f4cccc}.card .label{color:var(--muted);margin:0 0 6px;font-size:13px}.card.danger .label{color:var(--red)}.card .value{margin:0;font-size:25px;font-weight:600}.card.danger .value{color:var(--red)}.alert{background:var(--orange-soft);color:var(--orange-dark);border-radius:12px;align-items:center;gap:10px;margin-bottom:22px;padding:12px 16px;font-size:14px;display:flex}.metric{background:var(--surface);border:1px solid var(--border);border-radius:16px;align-items:center;gap:14px;padding:16px 18px;display:flex}.metric .ic{border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:23px;display:flex}.metric .ml{color:var(--muted);margin:0;font-size:13px}.metric .mv{margin:2px 0 0;font-size:24px;font-weight:600}.ic-red{background:var(--red-bg);color:var(--red)}.ic-purple{background:var(--purple-soft);color:var(--purple)}.ic-green{background:var(--green-bg);color:var(--green)}.ic-amber{background:var(--amber-bg);color:var(--amber)}.ic-orange{background:var(--orange-soft);color:var(--orange-dark)}.stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px}.stat .sl{color:var(--muted);align-items:center;gap:8px;margin:0 0 7px;font-size:12px;display:flex}.stat .sl .d{border-radius:50%;flex-shrink:0;width:9px;height:9px}.stat .sv{margin:0;font-size:20px;font-weight:600}.section-title{margin:34px 0 14px;font-size:17px;font-weight:600}.row{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-items:center;gap:14px;margin-bottom:10px;padding:15px 18px;display:flex}.row .sev{border-radius:4px;flex:none;width:8px;height:40px}.sev-critical{background:var(--red)}.sev-warning{background:var(--amber)}.row .main{flex:1;min-width:0}.row .main .t{margin:0;font-size:14px;font-weight:600}.row .main .sub{color:var(--muted);margin:2px 0 0;font-size:12px}.row .nums{text-align:right;white-space:nowrap}.row .nums .c{margin:0;font-size:14px;font-weight:600}.fix{color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:12px;margin:0 0 8px;padding:11px 14px;font-size:13px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin:24px 0 14px;display:flex}.toolbar .hint{color:var(--muted);font-size:13px}.connectors{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;display:grid}.conn{background:var(--surface);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;padding:11px 14px;font-size:13px;display:flex}.robot-status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rbot{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:inline-flex}.rbot i{color:var(--purple);font-size:18px}.rbot .rdot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.robot-legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;display:flex}.robot-legend span{align-items:center;gap:6px;display:inline-flex}.robot-legend .rdot{border-radius:50%;width:8px;height:8px}.tag{border-radius:7px;padding:3px 9px;font-size:11px;font-weight:600}.tag-mock{background:var(--green-bg);color:var(--green)}.tag-live{background:var(--purple-soft);color:var(--purple)}.tag-planned{background:var(--bg);color:var(--muted)}.loading{color:var(--muted);padding:40px 0;font-size:15px}
