:root{color:#1e2528;letter-spacing:0;background:#edf1f0;font-family:Avenir Next,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}.login-page{background:linear-gradient(135deg,#14211f 0%,#26423d 42%,#d6ddd7 42%,#eef2ef 100%);place-items:center;min-height:100vh;display:grid}.login-panel{background:#fffffff0;border:1px solid #cfd8d5;border-radius:8px;width:min(420px,100vw - 32px);padding:32px;box-shadow:0 24px 70px #0c1d193d}.login-panel h1{margin:12px 0 4px}.login-panel p{color:#5c6966;margin:0 0 24px}.login-panel label{color:#40504c;gap:8px;margin:14px 0;display:grid}.login-panel input{border:1px solid #b8c4c0;border-radius:6px;height:44px;padding:0 12px}.login-panel button,.sidebar button{color:#fff;background:#1d3f39;border:0;border-radius:6px;min-height:42px}.form-error,.error-text{color:#b73a3a}.app-shell{grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{color:#f3f7f4;background:#152321;flex-direction:column;gap:28px;padding:24px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:#e1644d;border-radius:6px;place-items:center;width:48px;height:48px;font-weight:800;display:grid}.brand small,.sidebar-footer small{color:#aab8b4;margin-top:4px;display:block}.sidebar nav{gap:8px;display:grid}.sidebar nav button,.icon-button{text-align:left;color:#dce6e2;background:0 0;align-items:center;gap:10px;padding:0 12px;display:flex}.sidebar nav button.active,.sidebar nav button:hover{background:#284640}.sidebar-footer{gap:8px;margin-top:auto;display:grid}main{min-width:0}.page{padding:32px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-header h1{margin:0;font-size:clamp(28px,4vw,42px)}.page-header p{color:#65716e;margin:6px 0 0}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.metric-card,.panel{background:#fff;border:1px solid #d8e0dd;border-radius:8px;padding:18px;box-shadow:0 8px 24px #1a2d290f}.metric-card__top{justify-content:space-between;align-items:center;gap:8px;display:flex}.metric-card strong{margin-top:16px;font-size:30px;display:block}.metric-card small{color:#697673}.split-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:16px;display:grid}.panel-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.panel-header h2{margin:0}.panel-header p{color:#66736f;margin:6px 0 0}.status-list{gap:10px;display:grid}.status-list>div{border-bottom:1px solid #edf1ef;justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.segmented-control{background:#f7faf8;border:1px solid #cbd6d2;border-radius:8px;display:inline-flex;overflow:hidden}.segmented-control button{color:#40504c;white-space:nowrap;background:0 0;border:0;border-right:1px solid #cbd6d2;min-height:34px;padding:0 12px}.segmented-control button:last-child{border-right:0}.segmented-control button.active{color:#fff;background:#1d3f39}.status-badge{border-radius:999px;align-items:center;min-height:24px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.status-up{color:#126238;background:#dff3e7}.status-degraded{color:#8a5c00;background:#fff0cf}.status-down{color:#9e2f22;background:#ffe0dc}.status-unknown{color:#536068;background:#e6e9ec}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #edf1ef;padding:11px 8px}td:last-child{word-break:break-all}a{color:#1d6256;font-weight:700}.probe-chart{align-items:end;gap:10px;height:180px;padding-top:12px;display:flex;overflow-x:auto}.probe-chart__item{text-align:center;grid-template-rows:1fr auto;align-items:end;gap:8px;min-width:42px;height:100%;display:grid}.probe-chart__bar{border-radius:6px 6px 2px 2px;width:100%}.probe-chart__item small{color:#66736f;font-size:11px}@media (width<=780px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}.page{padding:20px}.panel-header{display:grid}.segmented-control{width:100%}.segmented-control button{flex:1;padding:0 8px}}
