:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f4f6f9;line-height:1.4}*{box-sizing:border-box}body{margin:0;background:#f4f6f9;color:#172033}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#111827;color:#e5e7eb;padding:24px 16px;display:flex;flex-direction:column}.brand,.login-brand{display:flex;align-items:center;gap:12px}.brand{padding:0 8px 24px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#fff;color:#111827;font-weight:800}.brand strong,.login-brand strong{display:block}.brand small,.login-brand small{display:block;color:#9ca3af;margin-top:2px}.nav{display:grid;gap:6px}.nav a{padding:11px 12px;border-radius:9px;color:#cbd5e1;font-weight:600}.nav a:hover,.nav a.active{background:#1f2937;color:#fff}.sidebar-footer{margin-top:auto;padding:18px 8px 0;border-top:1px solid #263244}.signed-user span,.signed-user small{display:block}.signed-user small{color:#94a3b8;overflow:hidden;text-overflow:ellipsis}.link-button{margin-top:12px;border:0;background:none;color:#cbd5e1;padding:0;cursor:pointer}.main{min-width:0;padding:28px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.topbar h1{font-size:26px;margin:0 0 4px}.topbar p{margin:0;color:#667085}.topbar-meta{font-size:13px;color:#64748b;background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:8px 12px}.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:14px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;margin-bottom:18px}.filters label,.login-form label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#475467}.filters input,.filters select,.login-form input{height:38px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;padding:0 10px;color:#172033;min-width:132px}.filters .filter-search input{min-width:210px}.filter-actions{display:flex;gap:8px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;height:38px;border-radius:8px;padding:0 14px;font-weight:700;cursor:pointer}.primary-button{border:1px solid #111827;background:#111827;color:#fff}.secondary-button{border:1px solid #d0d5dd;background:#fff}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}.compact-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi-card,.panel{background:#fff;border:1px solid #e5e7eb;border-radius:14px}.kpi-card{padding:16px;min-width:0}.kpi-card span{display:block;font-size:12px;font-weight:700;color:#667085}.kpi-card strong{display:block;font-size:23px;margin:7px 0 3px;white-space:nowrap}.kpi-card small{color:#98a2b3}.panel{padding:18px;margin-bottom:18px}.content-grid{display:grid;gap:18px}.content-grid.two-thirds{grid-template-columns:2fr 1fr}.content-grid.thirds{grid-template-columns:repeat(3,minmax(0,1fr))}.panel-heading,.bridge-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.panel-heading h2,.bridge-heading h2{font-size:16px;margin:0}.panel-heading p,.bridge-heading p{font-size:12px;color:#667085;margin:3px 0 0}.panel-heading>a{font-size:13px;font-weight:700}.panel-heading>span{font-size:12px;color:#667085}.bar-chart{display:grid;gap:9px}.bar-row{display:grid;grid-template-columns:46px minmax(80px,1fr) 90px 72px;align-items:center;gap:10px;font-size:12px}.bar-track,.progress{height:8px;background:#eef2f6;border-radius:999px;overflow:hidden}.bar-fill,.progress span{display:block;height:100%;background:#253554;border-radius:999px}.bar-row strong{text-align:right}.bar-row small{color:#667085}.metric-line{margin-bottom:18px}.metric-line>div:first-child{display:flex;justify-content:space-between;margin-bottom:7px;font-size:13px}.summary-list{border-top:1px solid #eef2f6;margin-top:22px;padding-top:12px}.summary-list div{display:flex;justify-content:space-between;padding:7px 0;font-size:13px}.rank-list>div{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #f1f3f5}.rank-list>div:last-child{border-bottom:0}.rank-list>div>span{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#f2f4f7;font-size:11px;font-weight:800}.rank-list p{margin:0;font-size:13px;overflow:hidden;text-overflow:ellipsis}.rank-list p small{display:block;color:#98a2b3}.rank-list strong{font-size:13px}.table-wrap{overflow:auto;border:1px solid #edf0f3;border-radius:10px}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th{background:#f8fafc;color:#475467;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.03em}th,td{padding:10px 11px;border-bottom:1px solid #edf0f3}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcfe}.number{text-align:right}.tag,.status{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800}.tag,.status.neutral{background:#f2f4f7;color:#475467}.status.success{background:#ecfdf3;color:#067647}.status.warning{background:#fffaeb;color:#b54708}.status.danger{background:#fef3f2;color:#b42318}.status+.status{margin-left:3px}.empty-state,.empty-cell{padding:24px;text-align:center;color:#98a2b3}.pager{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;font-size:12px}.pager a,.pager .disabled{border:1px solid #d0d5dd;border-radius:8px;padding:7px 11px}.pager .disabled{color:#98a2b3}.monitor-note{padding:12px 14px;border:1px solid #d9e2f2;background:#f7faff;border-radius:10px;margin-bottom:18px;font-size:13px;color:#3e4c64}.bridge-status{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900}.bridge-status.online{background:#ecfdf3;color:#067647}.bridge-status.stale{background:#fffaeb;color:#b54708}.bridge-status.offline{background:#fef3f2;color:#b42318}.monitor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.monitor-grid>div{padding:13px;background:#f8fafc;border-radius:10px}.monitor-grid span,.monitor-grid strong{display:block}.monitor-grid span{font-size:11px;color:#667085;margin-bottom:5px}.monitor-grid strong{font-size:13px;overflow-wrap:anywhere}.last-batch{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid #edf0f3;font-size:12px}.last-batch span{color:#667085}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:#eef2f6}.login-card{width:min(100%,390px);padding:28px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 12px 36px rgba(16,24,40,.08)}.login-brand{margin-bottom:28px}.login-card h1{font-size:24px;margin:0 0 6px}.login-card>p{font-size:13px;color:#667085;margin:0 0 22px}.login-form{display:grid;gap:14px}.login-form input{width:100%;height:42px}.login-form .check-row{display:flex;align-items:center;gap:8px}.login-form .check-row input{width:16px;height:16px;min-width:16px}.login-form .primary-button{height:42px}.field-error{font-size:12px;color:#b42318}.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px}.alert.success{background:#ecfdf3;color:#067647}@media(max-width:1200px){.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.content-grid.thirds{grid-template-columns:1fr}.monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:14px}.brand{padding-bottom:12px}.nav{grid-template-columns:repeat(4,1fr);overflow:auto}.nav a{text-align:center;white-space:nowrap}.sidebar-footer{display:none}.main{padding:16px}.content-grid.two-thirds{grid-template-columns:1fr}.topbar-meta{display:none}.filters{align-items:stretch}.filters label{flex:1 1 150px}.filter-actions{flex:1 1 100%;}.primary-button,.secondary-button{flex:1}.bar-row{grid-template-columns:42px minmax(70px,1fr) 78px}.bar-row small{display:none}}@media(max-width:600px){.kpi-grid,.compact-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-card strong{font-size:19px}.monitor-grid{grid-template-columns:1fr}.nav{grid-template-columns:repeat(4,auto)}.topbar h1{font-size:22px}}
