:root{color-scheme:dark;font:15px/1.5 system-ui,"Microsoft YaHei",sans-serif;color:#e9eff8;background:#111722;--muted:#a8b9ce;--line:#263447;--panel:#172131;--accent:#73d3ed}
*{box-sizing:border-box}[hidden]{display:none!important}body,h1,h2,h3,p{margin:0}a{color:#9cdcf8}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.shell{max-width:1560px;margin:auto;padding:24px clamp(15px,3vw,44px) 48px}
.heading,.section-head,.actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.heading{margin-bottom:16px}.kicker,small{color:#8bb0d8;font-size:12px;letter-spacing:.06em}h1{font-size:27px}h2{font-size:22px}h3{font-size:17px}.section-head{margin:18px 0 12px}.section-head p,.muted,.scope{color:var(--muted);font-size:13px}
button,input,select,textarea{border:1px solid #354761;border-radius:8px;padding:7px 10px;background:#192536;color:#eff5fc}.accent{background:#7dd7eb;color:#10222e;border-color:#7dd7eb;font-weight:750}
.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:10px;flex-wrap:wrap}.tabs button{background:transparent}.tabs [aria-current=page]{background:#243a53;border-color:#567ba1}
.filters{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:12px 0}.filters label{min-width:120px}.filters select,.filters input:not([type=checkbox]){max-width:230px;width:100%}.filters .check{min-width:0;padding-bottom:8px}
label{display:grid;gap:4px;color:#c6d5e8;font-size:13px}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:9px;margin:12px 0}.metric{padding:11px 13px;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:13px}.metric strong{display:block;color:#fff;font-size:24px}.compact{display:flex;flex-wrap:wrap}.compact .metric{padding:6px 10px;border-radius:99px}.compact strong{display:inline;margin-left:5px;font-size:14px}
.table-wrap{overflow:auto;border-bottom:1px solid var(--line)}table{border-collapse:collapse;width:100%;text-align:left}th{color:#9ab7dc;font-size:12px;background:#141d2a}td,th{padding:9px 11px;border-bottom:1px solid #243146}td{vertical-align:top;overflow-wrap:anywhere}tr:hover td{background:#172334}.sub{display:block;color:var(--muted);font-size:12px}.tag{display:inline-block;white-space:nowrap;padding:2px 6px;border:1px solid #41526c;border-radius:6px;color:#c9d9ee;font-size:12px}.tag[data-state="处理中"]{color:#7dc8ff;border-color:#316494}.tag[data-state="已完成"]{color:#86e5bc;border-color:#2d6f59}.tag[data-state="关闭"]{color:#bdc5d1;border-color:#4d5669}
.card{border:1px solid var(--line);background:var(--panel);padding:16px;border-radius:12px;min-width:0}.chart-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:12px}.timeline-row{display:grid;grid-template-columns:76px minmax(50px,1fr) 94px;gap:8px;align-items:center;margin:7px 0;font-size:12px}.tracks{display:grid;gap:3px}.track{height:5px;background:#26384c;border-radius:4px}.track i{display:block;height:5px;border-radius:4px}.composition{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:15px}.pie{display:grid;place-items:center;flex:0 0 144px;height:144px;border-radius:100%}.pie b{display:grid;place-items:center;width:92px;height:92px;border-radius:100%;background:var(--panel);font-size:21px}.legend{list-style:none;padding:0;margin:0}.legend li{display:flex;align-items:center;gap:7px;margin:4px 0;font-size:13px}.legend i{width:9px;height:9px;border-radius:2px}
dialog{border:1px solid #405775;border-radius:12px;background:#152131;color:#edf5ff;padding:17px;width:min(94vw,470px);max-height:92dvh;overflow:auto}dialog::backdrop{background:#050b15b0}.drawer{margin:0 0 0 auto;height:100dvh;max-height:100dvh;border-radius:12px 0 0 12px}dialog .section-head{margin-top:0}dialog form{display:grid;gap:10px;margin-top:12px}.fault{margin:12px 0;padding:9px;background:#1e2d40;border-radius:7px;overflow-wrap:anywhere}#ticketHistory{padding-left:20px;overflow-wrap:anywhere}#ticketHistory li{margin:4px 0}.check{display:flex;align-items:center}#feedback,#ticketError,#deviceError{color:#ffce9c;padding-top:7px}.scope{margin:8px 0}
.login{max-width:420px;margin:10vh auto;padding:20px}.login form{display:grid;gap:14px;margin-top:16px}.login .card{padding:24px}.login .muted{margin:9px 0}
@media(max-width:780px){.chart-grid{grid-template-columns:1fr}.table-wrap table{min-width:610px}.heading{align-items:flex-start}h1{font-size:22px}}
