.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;-webkit-user-select:none;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{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1e293b;background:#f8fafc}body{margin:0;padding:0}[hidden]{display:none!important}#app{max-width:1100px;margin:0 auto;padding:24px 16px 48px}.page-header h1{font-size:1.5rem;margin:0 0 4px}.subtitle{margin:0;color:#475569;font-size:.9rem}.as-of{margin:8px 0 0;color:#64748b;font-size:.8rem}.controls{display:flex;flex-wrap:wrap;gap:24px;margin:20px 0}.control-group{display:flex;align-items:center;gap:8px}.control-label{font-size:.8rem;color:#475569;font-weight:600}.button-row{display:flex;gap:6px}.preset-btn{border:1px solid #cbd5e1;background:#fff;color:#334155;padding:4px 12px;border-radius:6px;font-size:.8rem;cursor:pointer}.preset-btn:hover{border-color:#2563eb}.preset-btn.active{background:#2563eb;border-color:#2563eb;color:#fff}.chart-block{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px;margin:16px 0}.chart-block h2{font-size:1rem;margin:0 0 12px;color:#334155}.pane-note{color:#64748b;font-size:.85rem;margin:0;padding:24px 8px;text-align:center;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc}.status{color:#64748b;font-size:.85rem}.status.error{color:#dc2626}.login-overlay{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:32px;max-width:380px;width:100%;text-align:center;box-shadow:0 1px 3px #0f172a14}.login-card h1{font-size:1.25rem;margin:0 0 8px}.login-card p{color:#475569;font-size:.9rem;margin:0 0 20px}.signin-form{display:flex;flex-direction:column;gap:12px;text-align:left}.signin-field{display:flex;flex-direction:column;gap:4px;font-size:.8rem;font-weight:600;color:#475569}.signin-field input{border:1px solid #cbd5e1;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:.95rem;font-weight:400;color:#1e293b;background:#fff}.signin-field input:focus-visible{outline:2px solid #2563eb;outline-offset:1px;border-color:#2563eb}.signin-submit{border:1px solid #2563eb;background:#2563eb;color:#fff;padding:8px 16px;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer}.signin-submit:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.signin-submit:disabled{opacity:.6;cursor:progress}.signin-form .signin-note{margin:0;font-size:.85rem;color:#475569}.signout-btn{margin-top:12px;border:1px solid #cbd5e1;background:#fff;color:#334155;padding:4px 12px;border-radius:6px;font-family:inherit;font-size:.8rem;cursor:pointer}.signout-btn:hover{border-color:#2563eb}.login-error{color:#dc2626;font-size:.85rem;min-height:1.2em;margin-top:12px}.page-nav{margin-top:8px;font-size:.9rem}.page-nav a{color:#2563eb;text-decoration:none;font-weight:600}.page-nav a:hover{text-decoration:underline}
