.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--navy:#0f2a4a;--navy-deep:#081a2f;--blue:#1d5aa6;--blue-light:#4b84c4;--gold:#f4b400;--gold-deep:#c98f00;--bg:#f5f7fa;--surface:#fff;--border:#e3e7ed;--text:#12202e;--text-secondary:#5b6b7b;--text-muted:#95a2af;--green:#1d9e75;--green-bg:#e4f5ef;--red:#d8473a;--red-bg:#fbeae8;--axis-x:#1d5aa6;--axis-y:#1d9e75;--axis-z:#c98f00}:root[data-theme=dark]{--navy:#0f2a4a;--navy-deep:#081a2f;--blue:#4b8dda;--blue-light:#6ba3e8;--gold:#f4b400;--gold-deep:#ffc933;--bg:#0b1420;--surface:#121d2b;--border:#223244;--text:#e8edf2;--text-secondary:#9fb0c0;--text-muted:#66788a;--green:#34d399;--green-bg:#34d39924;--red:#f87171;--red-bg:#f8717124;--axis-x:#5b9be0;--axis-y:#34d399;--axis-z:#f4b400}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:IBM Plex Sans,sans-serif}a{color:inherit}.display{font-family:Space Grotesk,sans-serif}.mono{font-family:IBM Plex Mono,monospace}header{background:linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 100%)}.header-inner{justify-content:space-between;align-items:center;gap:24px;max-width:1240px;height:64px;margin:0 auto;padding:0 32px;display:flex}.brand{flex-shrink:0;align-items:center;gap:11px;display:flex}.brand-title{color:#fff;letter-spacing:-.01em;white-space:nowrap;font-size:18px;font-weight:600}.brand-title .accent{color:var(--gold)}.nav-links{flex-shrink:0;align-items:center;gap:22px;display:flex}.nav-links a{color:#b9c9da;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s}.nav-links a:hover{color:#fff}.nav-links .cta-btn{background:var(--gold);color:var(--navy-deep);border-radius:6px;align-items:center;gap:7px;padding:8px 16px;font-size:13px;font-weight:600;display:flex}.nav-links .cta-btn:hover{background:#ffc933}.theme-switch{cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-shrink:0;align-items:center;gap:8px;padding:0;display:flex}.theme-switch .track{background:#ffffff1f;border:1px solid #ffffff24;border-radius:999px;width:46px;height:25px;transition:background .2s;display:block;position:relative}.theme-switch .track-icon{color:#ffffff59;width:12px;height:12px;position:absolute;top:50%;transform:translateY(-50%)}.theme-switch .track-icon.sun{left:6px}.theme-switch .track-icon.moon{right:6px}.theme-switch .knob{width:19px;height:19px;color:var(--navy-deep);background:#fff;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000004d}.theme-switch .knob svg{width:12px;height:12px}:root[data-theme=dark] .theme-switch .knob{transform:translate(21px)}:root[data-theme=dark] .theme-switch .track{background:#ffffff0f}.status-bar{align-items:center;gap:26px;max-width:1240px;margin:0 auto;padding:14px 32px;display:flex}.status-item{align-items:baseline;gap:6px;display:flex}.status-item .val{color:var(--text);font-size:14px;font-weight:600}.status-item .lbl{color:var(--text-muted);font-family:IBM Plex Sans,sans-serif;font-size:12px}.status-divider{background:var(--border);width:1px;height:16px}.live-pulse{color:var(--green);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.live-pulse .dot{background:var(--green);animation:1.6s infinite pulse}.live-pulse.down{color:var(--red)}.live-pulse.down .dot{background:var(--red);animation:none}.dot{border-radius:50%;width:7px;height:7px;display:inline-block}@keyframes pulse{0%{box-shadow:0 0 #1d9e758c}70%{box-shadow:0 0 0 6px #1d9e7500}to{box-shadow:0 0 #1d9e7500}}main{max-width:1240px;margin:0 auto;padding:34px 32px 60px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.section-head h2{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-size:15px;font-weight:600}.section-head .hint{color:var(--text-muted);font-size:13px}.page-loading,.page-error{color:var(--text-secondary);padding:24px 0;font-size:14px}.page-error{color:var(--red)}.grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:16px 16px 14px;text-decoration:none;transition:border-color .15s,transform .15s;display:block}.card:hover{border-color:var(--blue-light);transform:translateY(-2px)}:root[data-theme=dark] .card{box-shadow:none}:root[data-theme=dark] .card:hover{box-shadow:0 4px 16px #00000059}.card-top{justify-content:space-between;align-items:flex-start;margin-bottom:2px;display:flex}.card-id{color:var(--text);font-size:14px;font-weight:600}.card-loc{color:var(--text-muted);margin-top:1px;font-size:11.5px}.card-status{align-items:center;gap:5px;display:flex}.card-status .dot{background:var(--green);width:6px;height:6px;animation:1.6s infinite pulse}.card-status span:last-child{color:var(--green);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-size:10px;font-weight:600}.status-stale .card-status .dot{background:var(--gold-deep);animation:none}.status-stale .card-status span:last-child{color:var(--gold-deep)}.status-error .card-status .dot{background:var(--red);animation:none}.status-error .card-status span:last-child{color:var(--red)}.status-error{opacity:.75}.status-empty .card-status .dot,.status-loading .card-status .dot{color:var(--text-muted);background:var(--text-muted);animation:none}.status-empty .card-status span:last-child,.status-loading .card-status span:last-child{color:var(--text-muted)}.status-loading{opacity:.6}.card-chart{height:52px;margin:10px 0 8px}.card-chart-svg{width:100%;height:100%;display:block}.sparkline-line{stroke:var(--blue);stroke-width:1.6px}.sparkline-empty{stroke:var(--border);stroke-width:1.6px;stroke-dasharray:3 4}.card-bottom{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.card-value{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:19px;font-weight:500;overflow:hidden}.card-value .unit{color:var(--text-muted);margin-left:3px;font-size:11px;font-weight:400}footer{max-width:1240px;color:var(--text-muted);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:8px auto 0;padding:20px 32px 40px;font-size:12px;display:flex}footer a{color:var(--text-secondary);text-decoration:none}.breadcrumb{max-width:1240px;color:var(--text-muted);align-items:center;gap:8px;margin:0 auto;padding:16px 32px 0;font-size:13px;display:flex}.breadcrumb a{color:var(--text-secondary);text-decoration:none}.breadcrumb a:hover{color:var(--blue)}.breadcrumb .current{color:var(--text);font-weight:500}.instrument-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;max-width:1240px;margin:0 auto;padding:16px 32px 20px;display:flex}.instrument-title-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.instrument-title{letter-spacing:-.01em;font-size:28px;font-weight:600}.status-pill{background:var(--green-bg);color:#0f6e56;text-transform:uppercase;letter-spacing:.03em;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-pill .dot{background:var(--green);width:6px;height:6px;animation:1.6s infinite pulse}:root[data-theme=dark] .status-pill{color:var(--green)}.status-pill.inactive{background:var(--border);color:var(--text-muted)}.status-pill.inactive .dot{background:var(--text-muted);animation:none}.instrument-meta{color:var(--text-secondary);flex-wrap:wrap;gap:24px;margin-top:8px;font-size:13px;display:flex}.instrument-meta .meta-item{align-items:center;gap:6px;display:flex}.instrument-meta .meta-label{color:var(--text-muted);font-family:IBM Plex Sans,sans-serif}.download-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:500;text-decoration:none;transition:border-color .15s;display:flex}.download-btn:hover{border-color:var(--blue-light)}.control-bar{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:14px 20px;display:flex}.view-toggle{background:var(--bg);border-radius:8px;align-items:center;gap:4px;padding:3px;display:flex}.view-toggle button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:500}.view-toggle button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000000f}.date-controls{align-items:center;gap:10px;display:flex}.nav-btn{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.nav-btn:hover{border-color:var(--blue-light);color:var(--blue)}.nav-btn:disabled{opacity:.4;cursor:not-allowed}.nav-btn:disabled:hover{border-color:var(--border);color:var(--text-secondary)}.date-input-group{align-items:center;gap:8px;display:flex}.date-input{border:1px solid var(--border);background:var(--surface);color:var(--text);text-align:center;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;border-radius:7px;width:150px;padding:7px 12px;font-family:IBM Plex Mono,monospace;font-size:13px}@media (prefers-color-scheme:dark){.date-input{--lightningcss-light: ;--lightningcss-dark:initial}}.date-sep{color:var(--text-muted);font-size:13px}.live-indicator{color:var(--green);text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.live-indicator .dot{background:var(--green);width:6px;height:6px;animation:1.6s infinite pulse}.chart-stack{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:2px;display:flex;overflow:hidden}.chart-panel{border-bottom:1px solid var(--border);padding:16px 20px 12px;position:relative}.chart-panel:last-child{border-bottom:none}.chart-panel-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.axis-label{align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.axis-swatch{border-radius:2px;width:10px;height:10px}.axis-value{color:var(--text-secondary);font-size:13px}.axis-value-time{color:var(--text-muted)}.chart-canvas{height:150px;position:relative}.chart-canvas-mount{width:100%;height:100%}.chart-unit-label{color:var(--text-muted);pointer-events:none;font-size:10px;position:absolute;top:2px;right:6px}.chart-canvas .u-over{cursor:crosshair;touch-action:none}.chart-canvas .u-over.panning{cursor:grabbing}.chart-canvas .u-select{background:#4b8dda38;border:1px solid #4b8dda8c}.chart-cursor-dot{border:2px solid var(--surface);pointer-events:none;z-index:5;border-radius:50%;width:9px;height:9px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000026}.chart-footer{color:var(--text-muted);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;font-size:12px;display:flex}.reset-zoom{color:var(--blue);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:12px;font-weight:500}.reset-zoom:hover{text-decoration:underline}@media (width<=820px){.control-bar{flex-direction:column;align-items:stretch}.instrument-head{flex-direction:column}}@media (width<=1080px){.grid{grid-template-columns:repeat(3,1fr)}}@media (width<=820px){.grid{grid-template-columns:repeat(2,1fr)}.status-bar{flex-wrap:wrap}}@media (width<=520px){.grid{grid-template-columns:1fr}}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;opacity:0;pointer-events:none;background:#081a2f8c;justify-content:center;align-items:center;padding:24px;transition:opacity .18s;display:flex;position:fixed;inset:0}.modal-backdrop.open{opacity:1;pointer-events:all}.modal{background:var(--surface);border-radius:14px;width:100%;max-width:620px;max-height:88vh;transition:transform .18s;overflow-y:auto;transform:translateY(12px)scale(.98);box-shadow:0 20px 60px #0000004d}.modal-backdrop.open .modal{transform:translateY(0)scale(1)}.modal-head{border-bottom:1px solid var(--border);background:var(--surface);z-index:2;justify-content:space-between;align-items:center;padding:20px 24px;display:flex;position:sticky;top:0}.modal-title{font-size:18px;font-weight:600}.modal-close{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;display:flex}.modal-close:hover{background:var(--bg);color:var(--text)}.modal-body{padding:22px 24px}.field-group{margin-bottom:22px}.field-label{color:var(--text);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;font-weight:600;display:flex}.field-label .sub-action{color:var(--blue);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:12px;font-weight:500}.field-label .sub-action:hover{text-decoration:underline}.instrument-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.instrument-chip{border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:8px;padding:9px 11px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.instrument-chip:hover{border-color:var(--blue-light)}.instrument-chip.checked{border-color:var(--blue);background:#1d5aa60f}.chip-box{border:1.5px solid var(--border);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px;transition:all .12s;display:flex}.instrument-chip.checked .chip-box{background:var(--blue);border-color:var(--blue)}.chip-box svg{color:#fff;opacity:0;width:10px;height:10px}.instrument-chip.checked .chip-box svg{opacity:1}.date-row{align-items:center;gap:10px;display:flex}.date-field{flex:1}.date-field label{color:var(--text-muted);margin-bottom:5px;font-size:11.5px;display:block}.date-field .date-input{text-align:left;width:100%}.field-error{color:var(--red);align-items:center;gap:6px;margin-top:8px;font-size:12px;font-weight:500;display:flex}.form-input,.form-select,.form-textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;border-radius:7px;padding:9px 12px;font-family:inherit;font-size:13.5px}@media (prefers-color-scheme:dark){.form-input,.form-select,.form-textarea{--lightningcss-light: ;--lightningcss-dark:initial}}.form-textarea{resize:vertical;min-height:90px;font-family:inherit}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--blue);outline:none}.form-status{align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.form-status.error{color:var(--red)}.form-status.success{color:var(--text)}.format-row{gap:8px;display:flex}.format-option{border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:12px 10px;transition:border-color .15s,background .15s;display:flex}.format-option:hover{border-color:var(--blue-light)}.format-option.checked{border-color:var(--blue);background:#1d5aa60f}.format-option .fmt-name{font-size:13px;font-weight:600}.format-option .fmt-tag{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:10.5px}.summary-box{background:var(--bg);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.summary-box.over-limit{background:var(--red-bg);border-color:#d8473a59}.summary-left{flex-direction:column;gap:2px;display:flex}.summary-size{font-size:16px;font-weight:600}.summary-detail{color:var(--text-secondary);font-size:12px}.summary-warn{color:var(--red);white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex}.modal-footer{border-top:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex;position:sticky;bottom:0}.download-cta{background:var(--gold);color:var(--navy-deep);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;align-items:center;gap:8px;padding:11px 22px;font-size:14px;font-weight:600;transition:background .15s;display:flex}.download-cta:hover{background:var(--gold-deep)}.download-cta:disabled{background:var(--border);color:var(--text-muted);cursor:not-allowed}.progress-view{padding:22px 24px}.progress-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.progress-count{color:var(--text-secondary);font-size:13px}.progress-track{background:var(--bg);border-radius:99px;height:8px;margin-bottom:8px;overflow:hidden}.progress-fill{background:var(--blue);border-radius:99px;height:100%;transition:width .25s}.progress-files{color:var(--text-muted);font-size:12px}.progress-done{background:var(--green-bg);color:#0f6e56;border-radius:8px;align-items:center;gap:10px;margin-top:16px;padding:14px;font-size:13px;font-weight:500;display:none}.progress-done.show{display:flex}.progress-done.partial{color:var(--gold-deep);background:#f4b40024}:root[data-theme=dark] .progress-done{color:var(--green)}:root[data-theme=dark] .progress-done.partial{color:var(--gold)}@media (width<=520px){.instrument-grid{grid-template-columns:repeat(2,1fr)}.format-row{flex-direction:column}}
