.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{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;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.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{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;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{color-scheme:dark;--bg: #0b0e14;--surface: #131826;--surface-2: #1a2132;--border: #232c42;--text: #e8ecf4;--text-muted: #93a0b8;--accent: #7c93ff;--accent-strong: #5b76f7;--positive: #4ade80;--negative: #f87171;--warn: #fbbf24;--bg-elevated: var(--surface-2);--bg-card: var(--surface);--bg-input: var(--surface-2);--border-strong: var(--border);--text-faint: var(--text-muted);--accent-contrast: var(--bg);--negative-bg: color-mix(in srgb, var(--negative) 14%, var(--bg));--warn-bg: color-mix(in srgb, var(--warn) 14%, var(--bg));--radius: 12px;--radius-sm: 8px;--touch: 44px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#app{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4{margin:0 0 .5em;font-weight:600;line-height:1.25}h1{font-size:1.25rem}h2{font-size:1.05rem}h3{font-size:.95rem}p{margin:0 0 .75em;color:var(--text-muted);line-height:1.5}a{color:var(--accent)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.app-bar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(6px);border-bottom:1px solid var(--border);padding:calc(.4rem + var(--safe-top)) calc(.6rem + var(--safe-right)) .4rem calc(.4rem + var(--safe-left));display:flex;align-items:center;gap:.5rem}.burger-btn,.drawer-close-btn{width:var(--touch);height:var(--touch);min-width:var(--touch);display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text);border-radius:var(--radius-sm);flex:none}.burger-btn:focus-visible,.drawer-close-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app-title{font-size:1.05rem;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:.4rem}.app-title .mark{width:22px;height:22px;border-radius:6px;background:linear-gradient(160deg,var(--accent) 0%,var(--accent-strong) 100%);display:inline-block;flex:none}.app-main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:.75rem calc(.75rem + var(--safe-right)) calc(1.5rem + var(--safe-bottom)) calc(.75rem + var(--safe-left))}.drawer-backdrop{position:fixed;inset:0;background:#0000008c;z-index:40;opacity:0;pointer-events:none;transition:opacity .2s ease}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;left:0;bottom:0;width:min(82vw,300px);background:var(--bg-card);border-right:1px solid var(--border);z-index:50;display:flex;flex-direction:column;transform:translate(-100%);transition:transform .22s ease;box-shadow:8px 0 24px #00000059;padding-top:var(--safe-top);padding-left:var(--safe-left)}.drawer.open{transform:translate(0)}@media(prefers-reduced-motion:reduce){.drawer,.drawer-backdrop{transition:none}}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .6rem .6rem .9rem;border-bottom:1px solid var(--border)}.drawer-nav{display:flex;flex-direction:column;gap:.1rem;padding:.5rem .6rem calc(.5rem + var(--safe-bottom));overflow-y:auto}.drawer-nav button{display:flex;align-items:center;gap:.75rem;width:100%;min-height:var(--touch);padding:0 .75rem;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-muted);font-size:.95rem;font-weight:600;text-align:left}.drawer-nav button svg{flex:none}.drawer-nav button[aria-current=page]{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.drawer-nav button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.login-screen{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:calc(1rem + var(--safe-top)) calc(1rem + var(--safe-right)) calc(1rem + var(--safe-bottom)) calc(1rem + var(--safe-left))}.login-card{width:100%;max-width:360px}.login-card h2{text-align:center}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem;margin-bottom:.75rem}.card>h2,.card>h3{margin-bottom:.6rem}.section-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin:1.1rem 0 .4rem}details.details-section{margin-bottom:.6rem;border-bottom:1px solid var(--border);padding-bottom:.5rem}details.details-section:last-child{border-bottom:none}details.details-section summary{cursor:pointer;min-height:var(--touch);display:flex;align-items:center;font-weight:700;font-size:.85rem;color:var(--text);list-style:none}details.details-section summary::-webkit-details-marker{display:none}details.details-section summary:before{content:"▸";margin-right:.5rem;color:var(--accent);flex:none}details.details-section[open] summary:before{content:"▾"}details.details-section .section-body{padding-top:.3rem}.field{margin-bottom:.85rem}.field label,.field-label{display:block;font-size:.82rem;font-weight:600;color:var(--text-muted);margin-bottom:.3rem}.field-hint{font-size:.75rem;color:var(--text-faint);margin-top:.25rem}input[type=number],input[type=date],input[type=text],input[type=password],select{width:100%;min-width:0;max-width:100%;min-height:var(--touch);background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);padding:.5rem .65rem;font-size:1rem}input[type=number],input[type=date],input[type=text],input[type=password]{-webkit-appearance:none;appearance:none}input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}input[type=date]::-webkit-calendar-picker-indicator{margin-left:auto}input[type=number]:focus,input[type=date]:focus,input[type=text]:focus,input[type=password]:focus,select:focus,input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.slider-row{display:flex;align-items:center;gap:.6rem}input[type=range]{flex:1;height:var(--touch);accent-color:var(--accent);background:transparent}.slider-row .num-input{width:6.5rem;flex:none}.toggle-row{display:flex;align-items:center;justify-content:space-between;min-height:var(--touch);gap:.6rem}.switch{position:relative;display:inline-flex;align-items:center;justify-content:center;width:46px;min-height:var(--touch);background:none;border:none;flex:none;padding:0}.switch .track{position:relative;width:46px;height:26px;border-radius:13px;background:var(--border-strong)}.switch[aria-checked=true] .track{background:var(--accent)}.switch .knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s ease}.switch[aria-checked=true] .knob{transform:translate(20px)}@media(prefers-reduced-motion:reduce){.switch .knob{transition:none}}.btn{min-height:var(--touch);padding:0 1rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);font-weight:600;font-size:.9rem}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-block{width:100%}.btn-row{display:flex;gap:.5rem;flex-wrap:wrap}.chip-row{display:flex;gap:.4rem;flex-wrap:wrap}.chip{min-height:var(--touch);padding:0 .75rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-muted);font-size:.85rem;font-weight:600}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.banner{border-radius:var(--radius);padding:.7rem .85rem;margin-bottom:.6rem;font-size:.85rem;line-height:1.45;border:1px solid transparent}.banner strong{display:block;margin-bottom:.15rem;font-size:.85rem}.banner-warning{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 55%,var(--bg));color:color-mix(in srgb,var(--warn) 75%,var(--text))}.banner-error{background:var(--negative-bg);border-color:color-mix(in srgb,var(--negative) 55%,var(--bg));color:color-mix(in srgb,var(--negative) 75%,var(--text))}.banner-info{background:var(--surface-2);border-color:var(--text-muted);color:var(--text)}.banner-neutral{background:var(--bg-elevated);border-color:var(--border-strong);color:var(--text-muted)}.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}@media(min-width:480px){.summary-grid{grid-template-columns:repeat(3,1fr)}}.summary-tile{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem .7rem}.summary-tile .label{font-size:.72rem;color:var(--text-faint);margin-bottom:.2rem;font-weight:600}.summary-tile .value{font-size:1.02rem;font-weight:700;font-variant-numeric:tabular-nums}.summary-tile .value.negative{color:var(--negative)}.chart-wrap{width:100%}.chart-canvas-host{width:100%;min-height:220px}.chart-legend{display:flex;flex-wrap:wrap;gap:.5rem .9rem;margin-top:.5rem;font-size:.78rem;color:var(--text-muted)}.chart-legend .swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.35rem;vertical-align:middle}.uplot .u-legend{font-size:.78rem;line-height:1.8;text-align:left;color:var(--text-muted);margin:.5rem 0 0;max-width:100%}.uplot .u-legend tr{margin-right:1rem;max-width:100%}.uplot .u-legend th{font-weight:600;color:var(--text)}.uplot .u-legend .u-marker{width:.7em;height:.7em;border-radius:2px}.uplot .u-legend .u-label{overflow-wrap:anywhere}.uplot .u-legend .u-value{color:var(--text-muted);font-variant-numeric:tabular-nums}.waterfall-svg{width:100%;height:auto;display:block}.waterfall-caption{font-size:.72rem;color:var(--text-faint);text-anchor:middle}.events-table-wrap{width:100%;overflow-x:auto}table.events-table{width:100%;border-collapse:collapse;font-size:.8rem;min-width:480px}table.events-table th,table.events-table td{text-align:right;padding:.4rem .5rem;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;white-space:nowrap}table.events-table th:first-child,table.events-table td:first-child{text-align:left}table.events-table th{color:var(--text-faint);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}table.events-table tr.negative td{background:var(--negative-bg);color:var(--negative)}details.events-details summary{cursor:pointer;min-height:var(--touch);display:flex;align-items:center;font-weight:600;list-style:none}details.events-details summary::-webkit-details-marker{display:none}details.events-details summary:before{content:"▸";margin-right:.5rem;color:var(--accent)}details.events-details[open] summary:before{content:"▾"}.compare-table-wrap{width:100%;overflow-x:auto}table.compare-table{width:100%;border-collapse:collapse;font-size:.82rem;min-width:420px}table.compare-table th,table.compare-table td{text-align:right;padding:.4rem .5rem;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}table.compare-table th:first-child,table.compare-table td:first-child{text-align:left;color:var(--text-muted)}@media(max-width:400px){table.compare-table{min-width:0}table.compare-table thead{display:none}table.compare-table,table.compare-table tbody,table.compare-table tr,table.compare-table td{display:block;width:100%}table.compare-table tr{padding:.5rem 0;border-bottom:1px solid var(--border)}table.compare-table td{border:none;padding:.1rem 0;text-align:left}table.compare-table td:first-child{font-weight:700;color:var(--text);padding-bottom:.25rem}table.compare-table td:not(:first-child):before{content:attr(data-label) ": ";color:var(--text-faint);font-weight:600}}.info-page p{line-height:1.65;overflow-wrap:anywhere}.info-toc{display:flex;flex-direction:column}.info-toc button{text-align:left;background:none;border:none;color:var(--accent);font-size:.85rem;min-height:var(--touch);padding:0 .2rem;border-radius:var(--radius-sm);overflow-wrap:anywhere}.info-toc button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.muted{color:var(--text-muted)}.faint{color:var(--text-faint);font-size:.8rem}.build-stamp{text-align:center;color:var(--text-faint);font-size:.7rem;font-variant-numeric:tabular-nums;margin:.5rem 0 .25rem}.spinner{display:inline-block;width:16px;height:16px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .8s linear infinite;vertical-align:middle}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:1.5rem 1rem;color:var(--text-faint);font-size:.85rem}.source-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.source-row{display:flex;justify-content:space-between;gap:.5rem;font-size:.8rem;padding:.35rem 0;border-bottom:1px solid var(--border)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.4rem}.dot-ok{background:var(--accent)}.dot-error{background:var(--negative)}.dot-unknown{background:var(--text-faint)}.kv-list{display:grid;grid-template-columns:auto 1fr;gap:.15rem .75rem;font-size:.78rem;color:var(--text-muted)}
