:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f6f7f9;--surface:#fff;--surface-2:#f0f2f5;--border:#d8dce3;--border-strong:#7d8491;--text:#14181f;--text-dim:#5b6472;--accent:#2b5bd7;--accent-text:#fff;--danger:#b3261e;--danger-bg:#fdeceb;--warn:#8a5a00;--warn-bg:#fff4e0;--ok:#1a6b3c;--ok-bg:#e8f5ed;--focus:var(--accent);--skeleton:#e4e7ec;--text-xs:12px;--text-base:14px;--text-md:17px;--text-lg:21px;--text-xl:26px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-8:64px;--gap:var(--space-4);--radius:8px;--radius-sm:4px;--control-min:44px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, monospace}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#101318;--surface:#171b22;--surface-2:#1e242d;--border:#2c333e;--border-strong:#6b7585;--text:#e7eaf0;--text-dim:#9aa4b2;--accent:#6d92ee;--accent-text:#0b0e13;--danger:#f2b8b5;--danger-bg:#3a1f1e;--warn:#f0c070;--warn-bg:#34280f;--ok:#7fd1a0;--ok-bg:#11291c;--skeleton:#262d38}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101318;--surface:#171b22;--surface-2:#1e242d;--border:#2c333e;--border-strong:#6b7585;--text:#e7eaf0;--text-dim:#9aa4b2;--accent:#6d92ee;--accent-text:#0b0e13;--danger:#f2b8b5;--danger-bg:#3a1f1e;--warn:#f0c070;--warn-bg:#34280f;--ok:#7fd1a0;--ok-bg:#11291c;--skeleton:#262d38}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:var(--text-base)/1.5 var(--font);margin:0}a{color:var(--accent);min-height:var(--control-min);padding-inline:var(--space-1);align-items:center;display:inline-flex}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}.app{grid-template-columns:232px minmax(0,1fr);min-height:100%;display:grid}.app--bare{display:block}.topbar{display:none}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:var(--space-4);gap:var(--space-1);height:100vh;overscroll-behavior:contain;flex-direction:column;align-self:start;height:100dvh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar__brand{letter-spacing:.02em;margin-bottom:var(--space-4);font-weight:650}.sidebar__realm{color:var(--text-dim);font-size:var(--text-xs);text-transform:uppercase}.sidebar__link{min-height:var(--control-min);padding:var(--space-2) var(--space-2);border-radius:var(--radius);color:var(--text);align-items:center;text-decoration:none;display:flex}.sidebar__link:hover{background:var(--surface-2)}.sidebar__link.is-active{background:var(--accent);color:var(--accent-text)}.sidebar__group{margin-top:var(--space-4);color:var(--text-dim);font-size:var(--text-xs);text-transform:uppercase}.sidebar__foot{padding-top:var(--space-4);border-top:1px solid var(--border);margin-top:auto}.main{padding:var(--space-5) var(--space-6) var(--space-8);min-width:0;max-width:1180px}.page__title{margin:0 0 var(--space-1);font-size:var(--text-lg);line-height:1.3}.page__lede{margin:0 0 var(--space-4);color:var(--text-dim)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4)}.card__title{margin:0 0 var(--space-2);font-size:var(--text-md);line-height:1.4}.grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.stat__label{color:var(--text-dim);font-size:var(--text-xs);text-transform:uppercase}.stat__value{font-size:var(--text-xl);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.2}.banner{border-radius:var(--radius);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);border:1px solid #0000}.banner--error{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.banner--warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}.banner--ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}.text-prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.body-block{font-family:var(--mono);font-size:var(--text-xs);white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);overflow-x:auto}.field{margin-bottom:var(--space-3);display:block}.field__label{margin-bottom:var(--space-1);color:var(--text-dim);display:block}.field__input,.field__select,.field__textarea{width:100%;min-height:var(--control-min);padding:var(--space-2) var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}.field__textarea{min-height:calc(var(--control-min) * 2)}.field__hint{color:var(--text-dim);font-size:var(--text-xs);margin-top:var(--space-1);display:block}.field--error .field__input,.field--error .field__select,.field--error .field__textarea{border-color:var(--danger)}.field__error{color:var(--danger);font-size:var(--text-xs);margin-top:var(--space-1);display:block}.checkbox{align-items:center;gap:var(--space-2);min-height:var(--control-min);display:flex}.checkbox__box{width:var(--space-4);height:var(--space-4);accent-color:var(--accent)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn[aria-busy=true]{cursor:progress}.btn--primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.btn--danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.btn--link{color:var(--accent);padding:var(--space-2) 0;min-height:var(--control-min);background:0 0;border:none}.btn__spinner{width:var(--space-3);height:var(--space-3);border:2px solid;border-top-color:#0000;border-radius:999px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn__spinner{animation:none}}.row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.row:not(:last-child){margin-bottom:var(--space-3)}.row>.field,.row>.row{margin-bottom:0}.row--end{justify-content:flex-end}.spacer{flex:1}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--border)}.table th{color:var(--text-dim);font-weight:500;font-size:var(--text-xs);text-transform:uppercase}.table tr:last-child td{border-bottom:none}.table__scroll{overflow-x:auto}.table__scroll:not(:last-child){margin-bottom:var(--space-3)}.pill{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);border:1px solid var(--border-strong);border-radius:999px;display:inline-block}.pill--ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}.pill--warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}.pill--danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.text-danger{color:var(--danger);font-weight:600}.mono{font-family:var(--mono);font-size:var(--text-xs);word-break:break-all}.centre{min-height:100%;padding:var(--space-5);place-items:center;display:grid}.auth-card{width:100%;max-width:380px}.promo{gap:var(--space-6);min-height:100%;padding-bottom:var(--space-6);flex-direction:column;display:flex}.promo__bar{padding:var(--space-3) var(--space-5);background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.promo__brand{font-weight:700;font-size:var(--text-md);letter-spacing:.02em}.promo__hero{background:var(--accent);color:var(--accent-text);text-align:center;padding:var(--space-8) var(--space-5);margin-top:calc(-1 * var(--space-6))}.promo__title{font-size:var(--text-xl);margin:0 auto var(--space-3);max-width:1180px;font-weight:800}.promo__lead{font-size:var(--text-md);margin:0 auto var(--space-5);opacity:.92;max-width:1180px}.promo__stats{justify-content:center;gap:var(--space-5) var(--space-6);flex-wrap:wrap;max-width:1180px;margin:0 auto;padding:0;list-style:none;display:flex}.promo__stats li{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.promo__stats strong{font-size:var(--text-xl);font-weight:800}.promo__stats span{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;opacity:.85}.promo__form{padding:0 var(--space-4);margin-top:calc(-1 * var(--space-8));place-items:center;display:grid}.promo__section{width:100%;max-width:1180px;padding:0 var(--space-4);box-sizing:border-box;margin:0 auto}.promo__section h2{font-size:var(--text-lg);text-align:center;margin:0 0 var(--space-4)}.promo__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.promo__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5)}.promo__card h3{font-size:var(--text-md);margin:0 0 var(--space-2)}.promo__card p{color:var(--text-dim);margin:0}.promo__card--featured{border:2px solid var(--accent)}.promo__price{font-size:var(--text-xl);color:var(--text);margin-bottom:var(--space-2);font-weight:800}.promo__card .promo__price{color:var(--text);margin-bottom:var(--space-2)}.promo__price span{font-size:var(--text-base);color:var(--text-dim);font-weight:400}.promo__foot{justify-content:space-between;gap:var(--space-3);width:100%;max-width:1180px;padding:0 var(--space-4);box-sizing:border-box;color:var(--text-dim);font-size:var(--text-xs);flex-wrap:wrap;margin:0 auto;display:flex}.state{padding:var(--space-5);text-align:center}.state__title{margin:0 0 var(--space-2);font-size:var(--text-md);line-height:1.4}.state__body{margin:0 auto var(--space-4);color:var(--text-dim);max-width:380px}.empty{color:var(--text-dim);padding:var(--space-5);text-align:center}.empty__body{max-width:380px;margin:0 auto}.empty__action{margin-top:var(--space-4)}.skeleton{height:var(--space-3);border-radius:var(--radius-sm);background:var(--skeleton);display:block}.skeleton+.skeleton{margin-top:var(--space-3)}.skeleton--row{height:var(--space-5)}.skeleton--pulse{animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (prefers-reduced-motion:reduce){.skeleton--pulse{animation:none}}.toasts{gap:var(--space-2);z-index:20;flex-direction:column;max-width:360px;display:flex;position:fixed;inset-block-end:var(--space-5);inset-inline-end:var(--space-5)}.toast{align-items:flex-start;gap:var(--space-3);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:var(--space-3);display:flex;box-shadow:0 2px 8px #0000002e}.toast--error{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.toast--ok{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.toast__body{flex:1}.consent-banner{z-index:25;align-items:center;gap:var(--space-3);background:var(--surface);border-top:1px solid var(--border-strong);padding:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex;position:fixed;inset-block-end:0;inset-inline:0;box-shadow:0 -2px 8px #0000001f}.consent-banner__text{flex:280px;margin:0}.modal__scrim{padding:var(--space-4);z-index:30;background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);width:100%;max-width:480px}.modal__title{margin:0 0 var(--space-2);font-size:var(--text-md);line-height:1.4}.chart{width:100%;height:auto;display:block;overflow:visible}.chart__axis,.chart__grid{stroke:var(--border);stroke-width:1px;vector-effect:non-scaling-stroke}.chart__grid{stroke-dasharray:2 4}.chart__line{fill:none;stroke-width:2px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.chart__line--0{stroke:var(--accent)}.chart__line--1{stroke:var(--ok)}.chart__line--2{stroke:var(--warn)}.chart__line--3{stroke:var(--danger)}.chart__line--4{stroke:var(--text-dim)}.chart__line--style1{stroke-dasharray:6 4}.chart__line--style2{stroke-dasharray:2 3}.chart__line--limit{stroke-width:2.5px}.chart__scale{justify-content:space-between;gap:var(--space-2);margin-top:var(--space-1);display:flex}.chart__table{border-collapse:collapse;width:100%;margin-top:var(--space-3);font-size:var(--text-xs)}.chart__table th,.chart__table td{text-align:left;padding:var(--space-1) var(--space-2);border-top:1px solid var(--border)}.chart__table th{color:var(--text-dim);font-weight:600}.chart-legend{margin:0 0 var(--space-4);gap:var(--space-2) var(--space-4);flex-wrap:wrap;padding:0;list-style:none;display:flex}.chart-legend__item{align-items:center;gap:var(--space-2);display:inline-flex}.chart-legend__swatch{width:var(--space-5);height:var(--space-1);margin-right:var(--space-1);flex:none;overflow:visible}.chart-legend__button{align-items:center;gap:var(--space-2);min-height:var(--control-min);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;flex-wrap:wrap;display:inline-flex}.chart-legend__button:hover{border-color:var(--border)}.chart-legend__button[aria-pressed=false]{opacity:.55}.chart-legend__button[aria-pressed=false]>span:first-of-type{text-decoration:line-through}.chart__tick{fill:var(--text-dim);font-size:var(--text-xs);font-family:var(--font)}.chart__cursor{stroke:var(--border-strong);stroke-width:1px}.chart__area{stroke:none;fill-opacity:.2}.chart__area--0{fill:var(--accent)}.chart__area--1{fill:var(--ok)}.chart__area--2{fill:var(--warn)}.chart__area--3{fill:var(--danger)}.chart__area--4{fill:var(--text-dim)}.chart-frame{min-width:0;position:relative}.chart-frame .chart{touch-action:pan-y}.chart-tip{z-index:5;pointer-events:none;max-width:100%;transform:translateX(var(--space-2));background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:var(--space-2);font-size:var(--text-xs);position:absolute;top:0}.chart-tip--flip{transform:translateX(calc(-100% - var(--space-2)))}.chart-tip__time{margin-bottom:var(--space-1);font-weight:600}.chart-tip__row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.chart-help{margin-bottom:var(--space-4)}.chart-help summary,.chart-picker summary{cursor:pointer;min-height:var(--control-min);line-height:var(--control-min)}.chart-help p{margin:var(--space-2) 0 0}.chart-picker{flex:auto;min-width:0}.chart-picker__groups{gap:var(--space-3);flex-wrap:wrap;display:flex}.chart-picker__group{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-1) var(--space-3);min-width:0;margin:0}.chart-picker__group legend{color:var(--text-dim);font-size:var(--text-xs);padding:0 var(--space-1)}@media (max-width:720px){.app{grid-template-columns:minmax(0,1fr)}.topbar{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);z-index:10;display:flex;position:sticky;top:0}.topbar__brand{letter-spacing:.02em;font-weight:650}.sidebar{border-right:none;border-bottom:1px solid var(--border);height:auto;display:none;position:static;overflow-y:visible}.sidebar--open{display:flex}.main{padding:var(--space-4) var(--space-4) var(--space-8)}.toasts{inset-inline:var(--space-4);max-width:none}.table{position:relative}.table thead{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.table,.table tbody,.table tr{display:block}.table tr{padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.table tr:last-child{border-bottom:none}.table td{gap:var(--space-2);padding:var(--space-1) 0;overflow-wrap:anywhere;border-bottom:none;grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:center;display:grid}.table td:before{content:attr(data-label);color:var(--text-dim);font-weight:500;font-size:var(--text-xs);text-transform:uppercase}.table td[colspan],.table td[data-label=""]{display:block}.table td[colspan]:before,.table td[data-label=""]:before{content:none}.table a,.table button{min-width:var(--control-min)}}
