:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1b283b;background:#f2f5f8;font-size:16px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.shell{min-height:100vh;display:grid;grid-template-columns:220px minmax(0,1fr)}.rail{background:#111a29;color:#fff;padding:32px 25px;display:flex;flex-direction:column;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px;font-weight:800;letter-spacing:.11em;line-height:1.15;font-size:15px}.brand small{font-size:10px;color:#7f93a9;letter-spacing:.24em}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:#50d6c1;color:#102333;border-radius:10px;font-size:28px;font-weight:400;line-height:1}.rail-bottom{display:flex;flex-direction:column;gap:8px;border-top:1px solid #304052;padding-top:22px}.rail-label,.rail-note{color:#8ea2b6;font-size:12px;letter-spacing:.08em}.rail-bottom strong{font-size:18px}.main{max-width:1600px;width:100%;padding:38px 44px 58px;margin:auto}.topbar,.top-actions,.panel-heading,.controls,.table-footer{display:flex;align-items:center;justify-content:space-between;gap:22px}.topbar{margin-bottom:27px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.15em;color:#6291a0;margin:0 0 8px}h1,h2,p{margin-top:0}h1{font-size:clamp(30px,3vw,41px);letter-spacing:-.045em;margin-bottom:0;line-height:1.1}h2{font-size:19px;letter-spacing:-.025em;margin-bottom:0}.top-actions{gap:16px}.connection{color:#6d7887;font-size:14px;font-weight:650;white-space:nowrap}.connection:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#aeb9c6;margin-right:8px}.connection.connected:before{background:#31b99d}.button{border:0;border-radius:9px;padding:11px 18px;color:#fff;background:#182b40;font-weight:700;font-size:14px;white-space:nowrap}.button:hover:not(:disabled){background:#29425a}.notice{padding:13px 17px;background:#e3f5f1;color:#206656;border:1px solid #b8e4d9;border-radius:10px;margin-bottom:22px;font-size:14px}.notice.error{background:#fff1ee;color:#a14335;border-color:#f2cfc8}.notice[hidden]{display:none}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px}.metric,.panel{background:#fff;border:1px solid #dce4eb;border-radius:13px;box-shadow:0 2px 6px rgba(14,37,58,.025)}.metric{padding:21px 23px;min-height:132px;display:flex;flex-direction:column;align-items:flex-start}.metric>span{font-size:12px;font-weight:800;letter-spacing:.11em;color:#728496}.metric strong{font-size:33px;letter-spacing:-.05em;margin:13px 0 2px;line-height:1.1}.metric .metric-time{font-size:20px;letter-spacing:-.025em;margin-top:18px}.metric small{font-size:13px;color:#8391a0}.overview-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,1fr);gap:17px;margin-bottom:17px}.panel{padding:24px}.panel-heading{align-items:flex-start;margin-bottom:24px}.subtle{color:#8898a7;font-size:13px;white-space:nowrap}.chart{height:205px;display:flex;flex-direction:column}.bars{height:170px;display:flex;align-items:flex-end;gap:5px;border-bottom:1px solid #e5eaf0;background:repeating-linear-gradient(to top,transparent 0,transparent 41px,#edf1f5 42px,#edf1f5 43px)}.bar-slot{height:100%;flex:1;display:flex;align-items:flex-end;min-width:2px}.bar{width:100%;background:#46b8ad;border-radius:3px 3px 0 0;min-height:2px;transition:height .2s ease}.bar.empty{background:#d9e9ea}.chart-axis{display:flex;justify-content:space-between;margin-top:10px;color:#91a0ad;font-size:12px}.status-chart{padding:5px 0}.status-track{display:flex;width:100%;height:14px;background:#e9edf1;border-radius:9px;overflow:hidden;margin-bottom:19px}.segment.good,.legend-dot.good{background:#48bba7}.segment.elevated,.legend-dot.elevated{background:#e5c36b}.segment.minor,.legend-dot.minor{background:#ec8a5a}.segment.major,.legend-dot.major{background:#d75863}.segment.unknown,.legend-dot.unknown{background:#9caaba}.legend{display:grid;gap:10px}.legend-row,.legend-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.legend-row{font-size:14px;color:#526479}.legend-row strong{color:#23364b}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.records-panel{padding-bottom:0}.records-heading{margin-bottom:19px}.download{color:#1c7780;font-size:14px;font-weight:700;text-decoration:none}.download:hover{text-decoration:underline}.controls{align-items:flex-end;margin-bottom:18px;flex-wrap:wrap}.tabs{display:flex;gap:4px;border-bottom:1px solid #dfe6eb}.tab{border:0;background:none;color:#81909e;font-size:14px;font-weight:700;padding:0 13px 13px;border-bottom:3px solid transparent}.tab:first-child{padding-left:0}.tab.active{color:#146b72;border-color:#2bb7ad}.filters{display:flex;gap:9px;flex-wrap:wrap}.filters input,.filters select{border:1px solid #d7e1e8;background:#fff;border-radius:8px;padding:9px 11px;color:#2b4052;font-size:14px;min-height:39px}.filters input{width:250px}.filters input:focus,.filters select:focus{outline:2px solid #49c3b9;outline-offset:1px}.filters select[hidden]{display:none}.table-wrap{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px;min-width:690px}th{background:#f6f8fa;color:#7c8a99;font-size:12px;text-transform:uppercase;letter-spacing:.07em;font-weight:800;padding:13px 15px;white-space:nowrap}td{padding:15px;border-bottom:1px solid #edf0f3;color:#42546a;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td:first-child,th:first-child{padding-left:17px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcfd}.empty-row{text-align:center;color:#8696a5;padding:35px}.status-pill{display:inline-block;border-radius:5px;padding:4px 8px;background:#eef1f4;color:#607081;text-transform:capitalize;font-size:12px;font-weight:750}.status-pill.good{background:#ddf4ef;color:#167d69}.status-pill.elevated{background:#fff4d8;color:#927025}.status-pill.minor{background:#ffeadf;color:#ad552d}.status-pill.major{background:#fde3e5;color:#b23843}.table-footer{border-top:1px solid #e9eef2;margin:0 -24px;padding:14px 24px;color:#8393a2;font-size:13px}.table-footer>div{display:flex;gap:8px}.page-button{background:#fff;border:1px solid #dce4eb;border-radius:7px;color:#4c5f72;padding:7px 12px;font-size:13px;font-weight:700}.page-button:hover:not(:disabled){background:#f2f7f8}.sync-strip{display:flex;align-items:center;gap:28px;padding:27px 3px}.sync-strip>div:first-child{min-width:150px}.sync-states{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;flex:1}.feed{display:grid;grid-template-columns:1fr auto;gap:5px 10px;border-left:2px solid #cadde1;padding:5px 13px;font-size:14px}.feed strong{color:#3a4e60}.feed span{color:#25866f;font-weight:700;font-size:13px}.feed span.feed-error{color:#ba4d45}.feed small{grid-column:1/-1;color:#8798a6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-note{letter-spacing:normal}@media(max-width:1100px){.shell{grid-template-columns:1fr}.rail{padding:15px 24px;flex-direction:row;align-items:center}.rail-bottom{border:0;padding:0;gap:2px;text-align:right}.rail-label,.rail-note{display:none}.main{padding:30px 24px}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.main{padding:25px 15px}.topbar{align-items:flex-start;flex-direction:column;gap:17px}.top-actions{width:100%;justify-content:space-between}.metrics{gap:9px}.metric{padding:16px;min-height:112px}.metric strong{font-size:26px}.metric .metric-time{font-size:16px}.metric>span{font-size:11px}.overview-grid{grid-template-columns:1fr}.panel{padding:18px}.controls{align-items:stretch;gap:12px}.tabs{width:100%;overflow-x:auto}.tab{font-size:13px;padding:0 9px 12px}.filters{width:100%}.filters input{flex:1;min-width:150px;width:auto}.records-heading{align-items:flex-start}.table-footer{margin:0 -18px;padding:12px 18px}.sync-strip{display:block}.sync-states{grid-template-columns:1fr;margin-top:17px}.feed{padding:3px 13px}}
.main,.panel,.metric{min-width:0}
@media(max-width:1100px){.shell{grid-template-columns:minmax(0,1fr)}}
.detail-button{border:0;background:none;color:#177b82;font-size:13px;font-weight:750;padding:4px;white-space:nowrap}.detail-button:hover{text-decoration:underline}.record-dialog{width:min(760px,calc(100vw - 24px));max-height:calc(100vh - 32px);border:1px solid #dce4eb;border-radius:13px;padding:22px;background:#fff;color:#1b283b;box-shadow:0 18px 70px #11233750}.record-dialog::backdrop{background:#1123379c}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px}.record-dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto;background:#f5f7fa;border:1px solid #e0e7ed;border-radius:8px;padding:16px;line-height:1.5;font-size:13px;max-height:calc(100vh - 160px)}
.signout{border:0;background:none;color:#67798b;font-size:13px;font-weight:700;padding:8px}.signout:hover{text-decoration:underline}.login-page{min-height:100vh;display:grid;place-items:center;background:#111a29;padding:20px}.login-card{width:min(430px,100%);background:#fff;padding:36px;border-radius:16px;box-shadow:0 20px 80px #07121e66}.login-brand{color:#142336;margin-bottom:42px}.login-brand small{color:#6d8c9a}.login-card h1{font-size:34px;margin:0 0 26px}.login-form{display:grid;gap:9px}.login-form label{color:#42566b;font-size:14px;font-weight:700}.login-form input{width:100%;border:1px solid #ccd8e1;border-radius:8px;padding:12px;margin-bottom:13px;color:#162a3f;background:#fff}.login-form input:focus{outline:2px solid #49c3b9;outline-offset:1px}.login-form .button{margin-top:5px;padding:13px}.login-error{background:#fff1ee;border:1px solid #f2cfc8;color:#a14335;padding:11px 13px;border-radius:8px;font-size:14px;margin-bottom:18px}.top-actions form{margin:0}@media(max-width:700px){.top-actions{flex-wrap:wrap}.top-actions form{margin-left:auto}}
.download-all{display:inline-flex;align-items:center;text-decoration:none;background:#e1f4f1;color:#176d69;border:1px solid #b7e0d9}.download-all:hover{background:#d0eee8}.top-actions .download-all{white-space:nowrap}@media(max-width:700px){.top-actions .download-all{order:2}.top-actions #sync-button{order:3}.top-actions form{order:4}}
