:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#182538;background:#f4f6f8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #182538;--muted: #738094;--line: #e5eaf0;--surface: #ffffff;--surface-subtle: #f8fafb;--navy: #152a42;--teal: #2d8e7c;--blue: #477ac3;--green: #2c9271;--amber: #c4872e;--red: #c45850;--shadow: 0 10px 30px rgba(22, 38, 56, .035)}*{box-sizing:border-box}body{margin:0;min-width:360px;min-height:100vh;background:radial-gradient(ellipse at 8% 0%,rgba(219,236,233,.38),transparent 29rem),#f4f6f8}button{font:inherit}.app-shell{min-height:100vh}.topbar{min-height:70px;padding:0 clamp(18px,4vw,62px);display:flex;align-items:center;justify-content:space-between;background:#fffffff0;border-bottom:1px solid var(--line)}.brand,.topbar-right,.connection-state,.freshness{display:flex;align-items:center}.brand{gap:11px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;color:#fff;background:var(--navy);border-radius:11px}.brand strong,.brand span{display:block}.brand strong{font:800 15px/1.1 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:.035em}.brand span{margin-top:4px;color:var(--muted);font-size:11px}.topbar-right{gap:16px;color:var(--muted);font-size:12px}.connection-state,.freshness{gap:7px;white-space:nowrap}.connection-state.connected{color:#27765f}.connection-state.disconnected{color:#b04741}.connection-state.loading{color:#8b702e}.topbar-divider{width:1px;height:20px;background:var(--line)}.icon-button{width:34px;height:34px;display:grid;place-items:center;color:#526174;background:#fff;border:1px solid var(--line);border-radius:9px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.icon-button:hover:not(:disabled){background:#f5f8f9;border-color:#cbd5df}.icon-button:disabled{cursor:wait;opacity:.7}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-content{width:min(1440px,calc(100% - 48px));margin:0 auto;padding:34px 0 58px}.page-heading,.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.page-heading{margin-bottom:22px}.eyebrow{display:block;color:#76859a;font-size:10px;line-height:1.2;font-weight:700;letter-spacing:.14em}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Inter,ui-sans-serif,sans-serif}h1{margin-top:6px;color:var(--ink);font-size:clamp(26px,3vw,33px);line-height:1.12;letter-spacing:-.045em;font-weight:800}.page-heading p{margin-top:8px;color:var(--muted);font-size:13px}.range-control{display:flex;padding:4px;background:#e9eef1;border:1px solid #e4e9ed;border-radius:10px}.range-control button{padding:7px 11px;color:#68788a;background:transparent;border:0;border-radius:7px;font-size:11px;font-weight:600;cursor:pointer}.range-control button.selected{color:#1d3349;background:#fff;box-shadow:0 1px 3px #0f233417}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:36px}.summary-card{min-height:96px;display:flex;align-items:flex-start;gap:13px;padding:17px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.summary-icon{width:33px;height:33px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px}.summary-icon.blue{color:#426fae;background:#edf4fc}.summary-icon.green{color:#2b8469;background:#eaf5f1}.summary-icon.amber{color:#aa7424;background:#fbf2e4}.summary-icon.red{color:#b24f46;background:#f9eeec}.summary-copy span,.summary-copy small{display:block}.summary-copy span{color:#68788c;font-size:11px;font-weight:600}.summary-copy strong{display:block;margin-top:3px;color:#182b40;font:800 22px/1.15 Inter,ui-sans-serif,sans-serif;letter-spacing:-.04em}.summary-copy small{margin-top:4px;color:#8995a4;font-size:10px}.section-block{margin-top:37px}.section-heading{align-items:center;margin-bottom:15px}.section-heading h2{margin-top:5px;color:#1a2d42;font-size:18px;letter-spacing:-.03em}.section-note{color:#8995a4;font-size:11px;text-align:right}.groups-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;align-items:start}.group-panel{overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.group-panel.full-width{grid-column:1 / -1}.group-panel-header{width:100%;min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;color:inherit;background:#fff;border:0;text-align:left;cursor:pointer}.group-panel-header:hover{background:#fbfcfd}.group-title-wrap,.group-right{display:flex;align-items:center}.group-title-wrap{gap:11px}.group-status-dot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#56a987;box-shadow:0 0 0 4px #edf7f2}.group-status-dot.attention{background:#d3973a;box-shadow:0 0 0 4px #fbf4e7}.group-title-wrap h3{color:#21364d;font-size:14px;letter-spacing:-.02em}.group-title-wrap span:not(.group-status-dot){display:block;margin-top:3px;color:#8693a2;font-size:10px}.group-right{gap:9px;color:#8995a4;font-size:10px;white-space:nowrap}.rotate{transform:rotate(180deg)}.table-scroll{overflow-x:auto;border-top:1px solid #edf0f3}.server-table{width:100%;border-collapse:collapse;min-width:720px}.server-table th{padding:10px 10px 8px;color:#8894a2;background:#fbfcfd;font-size:9px;font-weight:700;letter-spacing:.08em;text-align:left;text-transform:uppercase}.server-table th:first-child,.server-table td:first-child{padding-left:15px}.server-table td{height:73px;padding:8px 10px;border-top:1px solid #f0f2f5;vertical-align:middle}.server-row{cursor:pointer;transition:background .12s ease}.server-row:hover,.server-row.expanded{background:#f9fbfc}.server-name{color:#283d53;font-size:11px;font-weight:700}.server-host{display:block;margin:3px 0 0 26px;color:#95a0ad;font-size:9px}.expand-button{width:18px;height:18px;display:inline-grid;place-items:center;margin-right:5px;padding:0;color:#91a0ae;background:transparent;border:0;vertical-align:-4px;cursor:pointer}.health-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;color:#4c7e69;background:#edf6f1;border-radius:999px;font-size:9px;font-weight:700;white-space:nowrap}.health-pill.warning{color:#9c722c;background:#fbf4e8}.health-pill.critical,.health-pill.offline,.health-pill.not-found{color:#a85149;background:#f9eeec}.metric-cell{width:92px;min-width:72px}.metric-number{display:flex;align-items:baseline;gap:3px}.metric-number strong{color:#2e4055;font:700 11px/1.1 Inter,ui-sans-serif,sans-serif}.metric-number span{color:#8995a4;font-size:8px}.metric-caption{display:block;margin-top:2px;color:#98a2ae;font-size:8px}.sparkline{width:100%;min-width:0}.sparkline-empty{height:34px;margin-top:3px;border-bottom:1px dashed #dce3e9}.alert-count{width:25px;height:25px;display:inline-grid;place-items:center;color:#688173;background:#f1f6f3;border-radius:8px;font-size:10px;font-weight:700}.alert-count.hot{color:#a74c44;background:#fbefed}.detail-row td{height:auto;padding:0;background:#f8fafb}.server-detail{padding:16px;border-top:1px solid #eef1f4}.detail-heading,.hosted-apps-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}.detail-heading h3,.hosted-apps-heading h3{margin-top:4px;color:#25394f;font-size:13px}.detail-heading .freshness{color:#94a0ac;font-size:9px}.detail-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.detail-metric{padding:12px;background:#fff;border:1px solid #e9edf1;border-radius:9px}.detail-metric-title{display:flex;align-items:center;gap:6px;color:#778598;font-size:10px}.detail-icon{display:inline-flex;color:#5f7fa4}.detail-metric>strong{display:block;margin-top:7px;color:#22364b;font:700 17px/1.2 Inter,ui-sans-serif,sans-serif}.chart-last{display:block;margin-top:3px;color:#9aa4b0;font-size:9px}.hosted-apps{margin-top:17px;padding-top:14px;border-top:1px solid #e7ecf0}.muted-note{color:#929eab;font-size:9px}.app-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.app-list-row{min-height:42px;display:flex;align-items:center;gap:7px;padding:8px 9px;background:#fff;border:1px solid #e9edf1;border-radius:8px}.app-dot{width:6px;height:6px;flex:0 0 auto;background:#a7b1bc;border-radius:50%}.app-name{color:#465a70;font-size:9px;font-weight:600}.not-monitored{display:flex;align-items:center;gap:3px;margin-left:auto;color:#9a7a43;font-size:8px;white-space:nowrap}.storage-section{margin-top:42px;padding:19px;background:#edf3f3;border:1px solid #e4eceb;border-radius:14px}.storage-section .section-heading{margin-bottom:22px}.storage-subsection+.storage-subsection{margin-top:23px}.subsection-title{display:flex;align-items:center;gap:9px;margin-bottom:10px}.subsection-icon{width:30px;height:30px;display:grid;place-items:center;color:#337f70;background:#deece9;border-radius:9px}.subsection-icon.ecs{color:#5078ab;background:#e3ebf5}.subsection-title h3{color:#294257;font-size:12px}.subsection-title span{display:block;margin-top:2px;color:#86959e;font-size:9px}.storage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.storage-card{padding:15px;background:#fff;border:1px solid #dfe8e7;border-radius:10px;box-shadow:0 4px 14px #1e394406}.storage-card-top{display:flex;align-items:center;gap:10px}.storage-card-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;color:#2f8774;background:#eaf5f1;border-radius:10px}.storage-card-icon.ecs-icon,.subsection-icon.ecs{color:#4b73a5}.storage-card h3{color:#263b51;font-size:12px}.resource-id{display:block;margin-top:3px;color:#929eaa;font-size:9px}.source-status{margin-left:auto;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.source-status.live{color:#2d7c62;background:#eaf5ef}.source-status.missing,.source-status.estimated{color:#956f36;background:#faf3e7}.storage-bar{position:relative;height:23px;overflow:hidden;display:flex;align-items:center;margin-top:15px;background:#edf1f3;border-radius:6px}.storage-fill{position:absolute;inset:0 auto 0 0;border-radius:6px;transition:width .3s ease}.storage-fill.safe{background:#8ec5ad}.storage-fill.warning{background:#e5bf79}.storage-fill.danger{background:#d99a90}.storage-bar span{position:relative;z-index:1;margin-left:9px;color:#345366;font-size:9px;font-weight:700}.storage-bar.unknown{justify-content:center;background:#f5f2ea;border:1px dashed #e6d9be}.storage-bar.unknown span{margin:0;color:#92764a;font-weight:600}.storage-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px}.storage-stats span{display:block;color:#8c98a4;font-size:9px}.storage-stats strong{display:block;margin-top:3px;color:#294257;font:700 13px/1.2 Inter,ui-sans-serif,sans-serif}.storage-chart{margin-top:13px;padding-top:10px;border-top:1px solid #edf0f2}.storage-chart-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;color:#8895a1;font-size:9px}.storage-chart-label span:last-child{color:#51687d;font-weight:700}.ecs-capacity{display:flex;align-items:baseline;gap:9px;margin-top:21px}.ecs-capacity strong{color:#284258;font:800 23px/1 Inter,ui-sans-serif,sans-serif;letter-spacing:-.04em}.ecs-capacity span{color:#87939f;font-size:9px}.usage-unavailable{display:flex;align-items:center;gap:6px;margin-top:15px;padding:9px;color:#8e7042;background:#fbf6ec;border-radius:7px;font-size:9px}.assessment-date{margin-top:9px;color:#9aa4af;font-size:8px}.alert-list{display:grid;gap:7px}.alert-row{display:flex;align-items:center;gap:10px;min-height:54px;padding:10px 13px;background:#fff;border:1px solid var(--line);border-radius:9px}.alert-row-icon{width:29px;height:29px;display:grid;place-items:center;color:#b34f46;background:#f9efed;border-radius:8px}.alert-row-copy strong,.alert-row-copy span{display:block}.alert-row-copy strong{color:#34485d;font-size:10px}.alert-row-copy span{margin-top:2px;color:#8b97a4;font-size:9px}.alert-row .health-pill{margin-left:auto}.clear-state,.error-banner,.warning-banner{display:flex;align-items:center;gap:10px;padding:13px 15px;background:#fff;border:1px solid var(--line);border-radius:9px}.clear-icon{width:27px;height:27px;display:grid;place-items:center;color:#2d896a;background:#e9f5ef;border-radius:8px}.clear-state strong,.clear-state span:not(.clear-icon){display:block}.clear-state strong{color:#3d5d4f;font-size:10px}.clear-state div>span{margin-top:2px;color:#89979f;font-size:9px}.warning-banner{margin-bottom:12px;color:#926d37;background:#fffaf0;border-color:#f0e2c8;font-size:10px}.error-banner{margin-bottom:12px;color:#9e4c45;background:#fff7f5;border-color:#f1d9d5}.error-banner div{flex:1}.error-banner strong,.error-banner span{display:block}.error-banner strong{font-size:11px}.error-banner span{margin-top:3px;font-size:9px}.error-banner button{padding:7px 10px;color:#8f413b;background:#fff;border:1px solid #ebcbc6;border-radius:7px;font-size:9px;font-weight:700;cursor:pointer}.loading-state{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#7e8c9a;background:#fff;border:1px solid var(--line);border-radius:12px}.loading-state strong{color:#384d62;font-size:12px}.loading-state span{font-size:10px}.loader{width:23px;height:23px;margin-bottom:4px;border:2px solid #e2e9ed;border-top-color:#3d8d7a;border-radius:50%;animation:spin .85s linear infinite}.page-footer{display:flex;justify-content:space-between;gap:12px;margin-top:30px;padding-top:12px;color:#98a2ae;border-top:1px solid #e5e9ed;font-size:9px}.empty-cell{padding:22px!important;color:#8995a2;text-align:center}@media(max-width:980px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.groups-grid,.storage-grid{grid-template-columns:1fr}}@media(max-width:640px){.topbar{min-height:62px;padding:0 14px}.topbar-right{gap:9px}.topbar-divider,.topbar-right .freshness{display:none}.page-content{width:calc(100% - 26px);padding-top:24px}.page-heading{align-items:flex-start;flex-direction:column;gap:14px}.summary-grid{gap:8px}.summary-card{min-height:88px;padding:12px 10px;gap:8px}.summary-icon{width:29px;height:29px}.section-heading{align-items:flex-start;flex-direction:column;gap:6px}.section-note{text-align:left}.storage-section{padding:14px}.detail-metric-grid,.app-list{grid-template-columns:1fr}.page-footer{flex-direction:column}}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 50% 0%,rgba(213,234,230,.7),transparent 31rem),#f3f6f7}.login-panel{width:min(410px,100%);padding:28px;background:#fff;border:1px solid #e4e9ed;border-radius:16px;box-shadow:0 18px 50px #172b3a14}.login-brand{margin-bottom:30px}.login-lock{width:43px;height:43px;display:grid;place-items:center;margin-bottom:19px;color:#2f806e;background:#e8f4f0;border-radius:12px}.login-panel h1{margin-top:6px;font-size:27px}.login-intro{margin-top:8px;color:#778698;font-size:12px;line-height:1.5}.login-form{display:grid;gap:14px;margin-top:23px}.login-form label{display:grid;gap:6px;color:#45596d;font-size:10px;font-weight:700}.login-form input{width:100%;height:42px;padding:0 11px;color:#22374b;background:#fbfcfd;border:1px solid #dfe6eb;border-radius:8px;outline:none;font:inherit;font-size:12px}.login-form input:focus{border-color:#4a9a87;box-shadow:0 0 0 3px #4a9a871f}.login-form input:disabled{color:#929daa;background:#f6f8f9}.login-button{height:42px;margin-top:3px;color:#fff;background:#1f4a56;border:0;border-radius:8px;font-size:11px;font-weight:700;cursor:pointer;transition:background .12s ease}.login-button:hover:not(:disabled){background:#286373}.login-button:disabled{color:#a4adb5;background:#e8ecef;cursor:not-allowed}.login-config-note,.login-error{margin-top:16px;padding:10px 11px;border-radius:8px;font-size:10px;line-height:1.5}.login-config-note{color:#8b6b35;background:#fbf5e9;border:1px solid #f0e4cb}.login-error{color:#a34f46;background:#fdf1ef;border:1px solid #f1d9d5}.login-footer{display:flex;align-items:center;gap:6px;margin-top:21px;padding-top:13px;color:#94a0ac;border-top:1px solid #edf0f3;font-size:9px}.login-checking{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#8793a0}.login-checking strong{color:#3a5064;font:700 13px/1.2 Inter,ui-sans-serif,sans-serif}.login-checking span{font-size:10px}.logout-button{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 10px;color:#617185;background:#fff;border:1px solid var(--line);border-radius:9px;font-size:10px;font-weight:600;cursor:pointer}.logout-button:hover{color:#294257;background:#f8fafb}
