*{box-sizing:border-box}
:root{--navy:#17365d;--ink:#0b1728;--muted:#5a6472;--line:#657180;--panel:#fff;--page:#f3f6fa}
body{margin:0;font:15px/1.42 "Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--page)}
header{background:var(--navy);color:#fff;min-height:72px;padding:14px 28px;display:flex;align-items:center;gap:14px;box-shadow:0 2px 6px #10284333}
header h1{font-size:22px;line-height:1.2;margin:0 auto 0 0}header #who{font-size:14px;white-space:nowrap}
.btn,button{border:1px solid var(--navy);border-radius:5px;background:#fff;color:var(--navy);padding:9px 14px;font:700 14px/1.2 "Segoe UI",Arial;cursor:pointer}
.primary{background:var(--navy);color:#fff}.danger{background:#a32621;color:#fff;border-color:#a32621}
.primary:disabled{background:#8090a4;cursor:not-allowed}.primary.loading::before{content:'';display:inline-block;width:14px;height:14px;margin-right:9px;border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;vertical-align:-2px;animation:login-spin .7s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}
main{padding:26px 28px;max-width:1900px;margin:auto;display:flex;flex-direction:column}
.panel{background:var(--panel);border:1px solid #aab3c0;border-radius:7px;padding:20px 22px;margin-bottom:22px;box-shadow:0 1px 3px #1028430d}
.panel h2{margin:0 0 5px;font-size:21px;line-height:1.25;color:#081a31}.muted{margin:4px 0 10px;color:var(--muted)}
#cautionPanel{order:20;margin-top:12px;background:#f8fafc;border-color:#d5dbe4;box-shadow:none;opacity:.88}
#cautionPanel h2{font-size:18px;color:#33445b}#cautionPanel .muted{font-size:13px}
.table-wrap{overflow:auto;border:1px solid var(--line);margin-top:13px;background:#fff}
table{border-collapse:collapse;width:100%;min-width:1040px;table-layout:auto;font-size:13px;line-height:1.32}
th,td{border:1px solid var(--line);padding:8px 9px;text-align:left;vertical-align:middle}
th{background:#e1e6ed;color:#000;font-size:13px;font-weight:700;white-space:normal;overflow-wrap:anywhere;line-height:1.25;text-align:center}
td{white-space:normal;overflow-wrap:break-word}.count{border:0;padding:2px 3px;background:none;color:#064f91;text-decoration:underline;font-size:13px}.split{white-space:normal}.split button{margin:2px 3px;padding:3px 5px}
.login{min-height:100vh;display:grid;place-items:center}.login .box{width:min(410px,92vw);background:#fff;padding:30px;border-radius:8px;box-shadow:0 8px 30px #17365d22}.login input,.upload input,.upload select{width:100%;padding:10px;margin:6px 0 12px}.status{min-height:22px}.error{color:#a32621}
.modal{position:fixed;inset:0;background:#0009;display:grid;place-items:center;padding:18px;z-index:20}.modal.hidden{display:none}.dialog{background:#fff;width:min(1500px,97vw);max-height:92vh;overflow:auto;padding:20px;border-radius:7px}.dialog-head{display:flex;align-items:center;gap:12px}.dialog-head h2{margin-right:auto}.dialog .table-wrap table{min-width:900px}
.upload{display:grid;grid-template-columns:170px minmax(240px,1fr) minmax(280px,360px) 130px;gap:10px;align-items:end}.hidden{display:none}
@media(max-width:900px){header{padding:12px 15px;flex-wrap:wrap}header h1{width:100%}main{padding:16px}.upload{grid-template-columns:1fr}.panel{padding:15px}table{font-size:12px}th,td{padding:7px}}

/* Compact, balanced monitoring summary tables. */
.panel .table-wrap table{min-width:900px;table-layout:fixed;font-size:14px;line-height:1.2}
.panel .table-wrap th,.panel .table-wrap td{
  padding:6px 7px;
  text-align:center;
  vertical-align:middle;
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
}
.panel .table-wrap th{font-size:12px;line-height:1.15;height:46px}
.panel .table-wrap td{height:38px}
.panel .table-wrap th:nth-child(1),.panel .table-wrap td:nth-child(1){width:15%}
.panel .table-wrap th:nth-child(2),.panel .table-wrap td:nth-child(2){width:12%}
.panel .table-wrap th:nth-child(3),.panel .table-wrap td:nth-child(3){width:18%}
.panel .table-wrap th:nth-child(4),.panel .table-wrap td:nth-child(4){width:12%}
.panel .table-wrap th:nth-child(5),.panel .table-wrap td:nth-child(5){width:12%}
.panel .table-wrap th:nth-child(6),.panel .table-wrap td:nth-child(6){width:12%}
.panel .table-wrap th:nth-child(7),.panel .table-wrap td:nth-child(7){width:19%}
.panel .count{font-size:14px;line-height:1;padding:1px 2px}
.dialog .table-wrap table{table-layout:auto}
@media(max-width:1100px){.panel .table-wrap table{min-width:840px}.panel .table-wrap th{font-size:11px}.panel .table-wrap td,.panel .count{font-size:12px}}
