.op-shell{--op-accent-100:#eaf3fc;--op-accent-200:#cfe4f7;--op-accent-500:#2f7fd4;--op-accent-600:#1f66b0;--op-ink:#16212e;--op-ink-soft:#5b6b7d;--op-line:#dbe6f1;--op-ok:#2f7d54;--op-danger:#b4442f;--op-surface:#ffffffd1;--op-series-1:#2f7fd4;--op-series-2:#eb6834;--op-series-3:#1baf7a;--op-series-4:#eda100;--op-series-5:#e87ba4;--op-series-6:#008300;--op-series-7:#4a3aa7;--op-series-8:#e34948;--op-series-other:#898781;min-height:100%;color:var(--op-ink);background:radial-gradient(circle at top, var(--op-accent-100), #fff 65%);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.op-gate{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:100%;padding:2rem 1rem;display:flex}.op-gate--error p,.op-gate--forbidden p{color:var(--op-ink-soft);max-width:32rem}.op-gate__header{border-bottom:1px solid var(--op-line);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.op-gate__brand{align-items:center;gap:.5rem;font-weight:600;display:flex}.op-gate__mark{color:var(--op-accent-500)}.op-gate__login{background:var(--op-accent-500);color:#fff;border-radius:999px;padding:.5rem 1.25rem;font-weight:600;text-decoration:none;display:inline-block}.op-gate__login:hover{background:var(--op-accent-600)}.op-gate__main{padding:1.5rem}.op-panel{background:var(--op-surface);border:1px solid var(--op-line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:1rem;padding:1.25rem}.op-stat-grid{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1rem;display:grid}.op-stat-tile{border:1px solid var(--op-line);background:var(--op-surface);border-radius:.75rem;margin:0;padding:1rem}.op-stat-tile__label{color:var(--op-ink-soft);font-size:.8rem}.op-stat-tile__value{margin:.25rem 0 0;font-size:1.75rem;font-weight:700}.op-stat-tile__trend{color:var(--op-ink-soft);margin-top:.25rem;font-size:.8rem}.op-range-toggle{border:1px solid var(--op-line);background:var(--op-surface);border-radius:999px;min-inline-size:auto;margin:0;padding:.2rem;display:inline-flex}.op-range-toggle__option{color:var(--op-ink-soft);cursor:pointer;font:inherit;background:0 0;border:none;border-radius:999px;padding:.35rem .9rem}.op-range-toggle__option[aria-pressed=true]{background:var(--op-accent-500);color:#fff}.op-chart{flex-direction:column;gap:.5rem;display:flex}.op-chart--empty{color:var(--op-ink-soft);text-align:center;padding:2rem 0}.op-chart__svg{width:100%;height:auto}.op-chart__area{fill:var(--op-accent-200);opacity:.6;stroke:none}.op-chart__line{fill:none;stroke:var(--op-accent-500);stroke-width:2px}.op-chart__crosshair{stroke:var(--op-line);stroke-width:1px}.op-chart__dot{fill:var(--op-accent-600)}.op-chart__tooltip{color:var(--op-ink-soft);gap:.5rem;font-size:.85rem;display:flex}.op-chart__fallback summary{cursor:pointer;color:var(--op-ink-soft);font-size:.85rem}.op-chart__fallback table{border-collapse:collapse;width:100%;margin-top:.5rem}.op-chart__fallback th,.op-chart__fallback td{text-align:left;border-bottom:1px solid var(--op-line);padding:.35rem .5rem}.op-multi-chart__svg{width:100%;height:auto;display:block}.op-multi-chart__line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.op-multi-chart__grid{stroke:var(--op-line);stroke-width:1px}.op-multi-chart__crosshair{stroke:var(--op-ink-soft);stroke-width:1px}.op-multi-chart__dot{stroke:#fff;stroke-width:2px}.op-multi-chart__tick{fill:var(--op-ink-soft);font-variant-numeric:tabular-nums;font-size:10px}.op-multi-chart__endpoint{font-size:10px;font-weight:600}.op-multi-chart__legend,.op-multi-chart__readout ul{flex-wrap:wrap;gap:.35rem 1rem;margin:0 0 .5rem;padding:0;font-size:.85rem;list-style:none;display:flex}.op-multi-chart__legend-item,.op-multi-chart__readout li{color:var(--op-ink);align-items:center;gap:.4rem;display:flex}.op-multi-chart__legend-key{border-radius:1px;flex:none;width:14px;height:2px}.op-multi-chart__readout{margin-top:.5rem}.op-multi-chart__readout ul{margin:.25rem 0 0}.op-multi-chart__readout-date{color:var(--op-ink-soft);font-variant-numeric:tabular-nums;font-size:.85rem}.op-multi-chart .op-chart__fallback caption{text-align:left;color:var(--op-ink-soft);padding-top:.5rem;font-size:.85rem}.op-logout-form{margin:0}.op-logout-button{border:1px solid var(--op-line);color:var(--op-ink-soft);cursor:pointer;font:inherit;background:0 0;border-radius:999px;padding:.4rem .9rem}.op-logout-button:hover:not(:disabled){border-color:var(--op-danger);color:var(--op-danger)}.op-logout-button:disabled{opacity:.6;cursor:default}.op-logout-error{color:var(--op-danger);margin:.35rem 0 0;font-size:.8rem}html,body,#root{height:100%;margin:0}.hub-shell{flex-direction:column;min-height:100%;display:flex}.hub-shell .op-gate__main{flex-direction:column;gap:1.5rem;display:flex}.hub-button{border:1px solid var(--op-line);color:var(--op-ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.4rem 1rem;font-weight:600}.hub-button:hover{border-color:var(--op-accent-500);color:var(--op-accent-600)}.hub-button--primary{background:var(--op-accent-500);color:#fff;border-color:#0000}.hub-button--primary:hover{background:var(--op-accent-600);color:#fff}.hub-button:disabled{opacity:.5;cursor:not-allowed}.hub-form{flex-direction:column;gap:1rem;max-width:28rem;display:flex}.hub-form h2{margin:0;font-size:1.1rem}.hub-form__hint{color:var(--op-ink-soft);margin:0;font-size:.9rem}.hub-form__field{flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600;display:flex}.hub-form__field input{border:1px solid var(--op-line);color:var(--op-ink);font:inherit;background:#fff;border-radius:.5rem;padding:.5rem .75rem;font-weight:400}.hub-form__field input:focus-visible{outline:2px solid var(--op-accent-500);outline-offset:1px}.hub-section__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.hub-section__head h2{margin:0;font-size:1.1rem}.hub-hint{max-width:60ch;color:var(--op-ink-soft);margin:-.5rem 0 1rem;font-size:.85rem}.hub-section__title{margin:0 0 1rem;font-size:1.1rem}.hub-table{border-collapse:collapse;width:100%;font-size:.9rem}.hub-table th,.hub-table td{text-align:left;border-bottom:1px solid var(--op-line);vertical-align:top;padding:.5rem}.hub-table th{color:var(--op-ink-soft);font-weight:600}.hub-table__number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.hub-table__id{color:var(--op-ink-soft);word-break:break-all;font-size:.75rem}
