:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface:#fcfcfb;--page:#f9f9f7;--ink:#0b0b0b;--ink-2:#52514e;--muted:#898781;--grid:#e1e0d9;--axis:#c3c2b7;--border:#0b0b0b1a;--series-1:#2a78d6;--series-1-wash:#2a78d61a;--band:#f0efec;--critical:#d03b3b;--good:#006300;--hi-bg:#d03b3b1f;--lo-bg:#2a78d61f;--chip:#f0efec;--warning:#8a5a00;--font:system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface:#1a1a19;--page:#0d0d0d;--ink:#fff;--ink-2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--axis:#383835;--border:#ffffff1a;--series-1:#3987e5;--series-1-wash:#3987e524;--band:#383835;--critical:#e66767;--good:#0ca30c;--hi-bg:#e667672e;--lo-bg:#3987e52e;--chip:#262625;--warning:#e0a030}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface:#1a1a19;--page:#0d0d0d;--ink:#fff;--ink-2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--axis:#383835;--border:#ffffff1a;--series-1:#3987e5;--series-1-wash:#3987e524;--band:#383835;--critical:#e66767;--good:#0ca30c;--hi-bg:#e667672e;--lo-bg:#3987e52e;--chip:#262625;--warning:#e0a030}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--page);color:var(--ink);font-family:var(--font);margin:0;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit;color:inherit}input[type=search],input[type=date]{background:var(--surface);border:1px solid var(--border);border-radius:8px;outline:none;padding:6px 10px}input[type=search]:focus,input[type=date]:focus{border-color:var(--series-1)}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.ink2{color:var(--ink-2)}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:20px;height:52px;padding:0 20px;display:flex;position:sticky;top:0}.topbar .brand{font-size:15px;font-weight:600}.topbar nav{gap:4px;display:flex}.topbar nav a{color:var(--ink-2);border-radius:8px;padding:6px 12px}.topbar nav a.active{background:var(--chip);color:var(--ink);font-weight:500}.topbar .stats{color:var(--muted);margin-left:auto;font-size:12px}.page{grid-template-columns:300px 1fr;gap:0;min-height:calc(100% - 52px);display:grid}.sidebar{border-right:1px solid var(--border);background:var(--surface);height:calc(100vh - 52px);padding:14px;position:sticky;top:52px;overflow-y:auto}.main{min-width:0;padding:18px 24px 40px}@media (width<=860px){.page{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);height:auto;max-height:40vh;position:static}.main{padding:14px 16px 32px}}.sidebar .search{width:100%;margin-bottom:10px}.cat-title{color:var(--muted);letter-spacing:.02em;margin:12px 4px 4px;font-size:12px}.ind-item{cursor:pointer;border-radius:8px;align-items:baseline;gap:8px;padding:6px 8px;display:flex}.ind-item:hover{background:var(--chip);text-decoration:none}.ind-item.active{background:var(--chip);font-weight:500}.ind-item .code{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12px}.ind-item .cnt{color:var(--muted);text-align:right;min-width:2.2em;font-size:12px}.ind-item .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:16px 18px}.card h2{margin:0 0 2px;font-size:18px;font-weight:600}.card .sub{color:var(--ink-2);margin-bottom:8px;font-size:13px}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.filters .seg{border:1px solid var(--border);background:var(--surface);border-radius:8px;display:inline-flex;overflow:hidden}.filters .seg button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;padding:6px 12px}.filters .seg button.on{background:var(--chip);color:var(--ink);font-weight:500}.filters .seg button+button{border-left:1px solid var(--border)}.filters .custom{align-items:center;gap:6px;display:inline-flex}.btn{background:var(--surface);border:1px solid var(--border);cursor:pointer;color:var(--ink-2);border-radius:8px;padding:5px 10px}.btn:hover{background:var(--chip)}.btn.on{background:var(--chip);color:var(--ink)}.chart{width:100%;height:320px}.chart.small{height:180px}.legend-note{color:var(--ink-2);flex-wrap:wrap;gap:16px;margin-top:6px;font-size:12px;display:flex}.legend-note i{vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:5px;display:inline-block}.legend-note .band{background:var(--band);border:1px solid var(--grid);border-radius:2px;width:14px;height:8px}.multi{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px;display:grid}.multi .card{margin:0}.multi h3{align-items:center;gap:8px;margin:0 0 4px;font-size:14px;font-weight:600;display:flex}.multi h3 .x{margin-left:auto}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th{text-align:left;color:var(--muted);border-bottom:1px solid var(--grid);white-space:nowrap;padding:6px 8px;font-weight:500}table.data td{border-bottom:1px solid var(--grid);vertical-align:top;padding:6px 8px}table.data tr:last-child td{border-bottom:0}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.data td:first-child{text-align:left}.flag{white-space:nowrap;border-radius:6px;align-items:center;gap:3px;padding:1px 6px;font-size:12px;display:inline-flex}.flag.H{background:var(--hi-bg)}.flag.L{background:var(--lo-bg)}.month-title{color:var(--muted);margin:12px 4px 4px;font-size:12px}.day-item{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;display:flex}.day-item:hover{background:var(--chip);text-decoration:none}.day-item.active{background:var(--chip);font-weight:500}.day-item .d{font-variant-numeric:tabular-nums;min-width:3.4em}.day-item .h{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.day-item .c{color:var(--muted);margin-left:auto;font-size:12px}.dot{background:var(--critical);border-radius:50%;width:6px;height:6px;margin-left:4px;display:inline-block}.record{margin-bottom:14px}.record .head{flex-wrap:wrap;align-items:baseline;gap:8px 10px;margin-bottom:8px;display:flex}.record .head h3{margin:0;font-size:15px;font-weight:600}.badge{background:var(--chip);color:var(--ink-2);white-space:nowrap;border-radius:6px;padding:1px 8px;font-size:12px}.record .meta{color:var(--muted);font-size:12px}.record .note{color:var(--ink-2);margin-top:8px;font-size:12px}.record .sources{color:var(--muted);word-break:break-all;margin-top:6px;font-size:12px}.chips{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chips a{background:var(--chip);color:var(--ink-2);border-radius:6px;padding:2px 8px;font-size:12px}.chips a:hover{color:var(--ink);text-decoration:none}.chips a.H{background:var(--hi-bg)}.chips a.L{background:var(--lo-bg)}.record .toggle{margin-top:8px}.record-body{font-size:13.5px}.record-body p{margin:4px 0}.record-body ul,.record-body ol{margin:4px 0;padding-left:22px}.record-body table{border-collapse:collapse;width:100%;margin:8px 0;font-size:13px}.record-body th{text-align:left;color:var(--muted);border-bottom:1px solid var(--grid);white-space:nowrap;padding:4px 8px;font-weight:500}.record-body td{border-bottom:1px solid var(--grid);vertical-align:top;padding:4px 8px}.record-body td.hi{background:var(--hi-bg)}.record-body td.lo{background:var(--lo-bg)}.record-body td p,.record-body th p{margin:0}.empty{color:var(--muted);text-align:center;padding:40px 0}.result-list h4{color:var(--muted);margin:18px 0 8px;font-size:13px;font-weight:500}.hit{background:var(--chip)}.login-wrap{justify-content:center;align-items:center;min-height:100%;padding:24px 16px;display:flex}.login{flex-direction:column;gap:10px;width:100%;max-width:360px;display:flex}.login h1{margin:0;font-size:20px}.login p{margin:0}.login input[type=password]{background:var(--surface);border:1px solid var(--border);border-radius:8px;outline:none;padding:10px 12px;font-size:16px}.login input[type=password]:focus{border-color:var(--series-1)}.login .err{color:var(--critical);font-size:13px}.btn.primary{background:var(--series-1);color:#fff;border-color:#0000;padding:10px 14px;font-size:15px}.btn.primary:disabled{opacity:.5;cursor:default}.topbar .logout{margin-left:8px;padding:3px 10px;font-size:12px}.backdrop,.drawer-head,.mobile-only{display:none}.day-nav{align-items:center;gap:10px;margin:4px 0 12px;display:flex}.day-nav .day-head{flex:1;margin:0}.day-head{flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 12px;font-size:16px;display:flex}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.unit-inline{display:none}.row-link{cursor:pointer}.row-link:hover td{background:var(--chip)}.record-body{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=860px){.topbar{gap:10px;height:48px;padding:0 12px}.topbar .brand{font-size:14px}.topbar nav{flex:1}.topbar nav a{padding:6px 10px}.topbar .stats{display:none}.topbar .logout{margin-left:auto}.page{min-height:auto;display:block}.main{padding:12px 12px 40px}.mobile-only{display:inline-flex}.btn.picker{width:100%;color:var(--ink);justify-content:flex-start;gap:6px;margin-bottom:10px;padding:10px 12px;font-size:15px}.sidebar{z-index:30;border-right:1px solid var(--border);width:min(88vw,380px);height:100dvh;max-height:none;padding:10px 12px 24px;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-102%);box-shadow:0 0 40px #00000040}.sidebar.open{transform:none}.backdrop.show{z-index:25;background:#00000059;display:block;position:fixed;inset:0}.drawer-head{justify-content:space-between;align-items:center;margin:2px 0 10px;display:flex}.ind-item,.day-item{min-height:42px;padding:10px 8px}.filters{gap:6px}.filters .seg{flex:1}.filters .seg button{flex:1;padding:8px 6px;font-size:13px}.filters .custom{width:100%}.filters .custom input[type=date]{flex:1;min-width:0}.card{border-radius:10px;padding:12px}.card h2{font-size:16px}.chart{height:260px}.chart.small{height:170px}.multi{grid-template-columns:1fr}table.data td,table.data th{padding:8px 6px}.day-nav{gap:6px}.day-nav .btn{white-space:nowrap;padding:6px 8px;font-size:12px}.day-nav .day-head,.record .head h3{font-size:14px}.record-body table{font-size:12px}}@media (width<=600px){table.data .opt{display:none}.unit-inline{font-size:12px;font-weight:400;display:inline}}.attachments{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.att{width:96px;color:var(--muted);flex-direction:column;align-items:center;gap:3px;font-size:11px;display:flex}.att:hover{color:var(--ink);text-decoration:none}.att img,.att-icon{object-fit:cover;border:1px solid var(--border);background:var(--chip);border-radius:6px;justify-content:center;align-items:center;width:96px;height:72px;display:flex}.att:hover img{border-color:var(--series-1)}.att-name{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;overflow:hidden}.dash{max-width:880px;margin:0 auto}.upload-zone{border:1.5px dashed var(--axis);text-align:center;border-radius:12px;margin-top:12px;padding:18px 14px}.upload-zone.drag{border-color:var(--series-1);background:var(--series-1-wash)}.upload-btns{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.file-list{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:14px;display:flex}.file-item{text-align:left;width:110px;position:relative}.file-item img,.file-item .ph{object-fit:cover;border:1px solid var(--border);background:var(--chip);width:110px;height:82px;color:var(--muted);border-radius:8px;justify-content:center;align-items:center;font-weight:600;display:flex}.file-item .nm{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.file-item .x{background:var(--ink);width:24px;height:24px;color:var(--surface);border:2px solid var(--surface);cursor:pointer;border-radius:50%;padding:0;font-size:15px;line-height:20px;position:absolute;top:-8px;right:-8px}.form-row{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.form-row label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.form-row input,.dash textarea{background:var(--surface);border:1px solid var(--border);font:inherit;color:inherit;border-radius:8px;outline:none;padding:8px 10px;font-size:14px}.form-row input:focus,.dash textarea:focus{border-color:var(--series-1)}.progress{background:var(--chip);border-radius:3px;height:6px;margin-top:12px;overflow:hidden}.progress i{background:var(--series-1);height:100%;transition:width .2s;display:block}.pill{background:var(--chip);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;display:inline-flex}.pill.running,.pill.queued{background:var(--series-1-wash);color:var(--series-1)}.pill.done{color:var(--good);background:#0063001f}.pill.failed{background:var(--hi-bg);color:var(--critical)}.spin{border:2px solid;border-right-color:#0000;border-radius:50%;width:11px;height:11px;margin-right:6px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.steps{border:1px solid var(--border);background:var(--page);border-radius:8px;max-height:360px;padding:8px 10px;font-size:12.5px;overflow-y:auto}.steps>div{align-items:baseline;gap:8px;padding:2px 0;line-height:1.45;display:flex}.steps .t{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.steps .tool{color:var(--muted)}.steps .warn{color:var(--warning)}.steps .error{color:var(--critical)}.steps .ok{color:var(--good);font-weight:500}.banner{border:1px solid var(--border);background:var(--chip);border-radius:10px;margin:8px 0 12px;padding:12px 14px}.banner.ok{background:#00630014;border-color:#00630040}.banner.err{background:var(--hi-bg);border-color:#d03b3b4d}.banner h3{margin:0 0 6px;font-size:15px}.job-list .row{border-bottom:1px solid var(--grid);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:9px 6px;display:flex}.job-list .row:hover{background:var(--chip);text-decoration:none}.job-list .row.active{background:var(--chip)}@media (width<=600px){.form-row{grid-template-columns:1fr}.att{width:80px}.att img,.att-icon{width:80px;height:60px}.file-item{width:92px}.file-item img,.file-item .ph{width:92px;height:70px}.steps{max-height:300px;font-size:12px}}
