:root{color-scheme:light dark;--color-bg: light-dark(#ffffff, #12161b);--color-surface: light-dark(#f3f5f7, #1b2129);--color-surface-raised: light-dark(#ffffff, #232b35);--color-text: light-dark(#1a1f24, #e9edf1);--color-text-muted: light-dark(#454f59, #b2bcc6);--color-border: light-dark(#5b6670, #8b97a3);--color-border-subtle: light-dark(#c3cad1, #36404b);--color-primary: light-dark(#0b57d0, #8ab4f8);--color-primary-text: light-dark(#ffffff, #0a1a33);--color-primary-hover: light-dark(#0842a0, #aecbfa);--color-danger: light-dark(#b3261e, #f2b8b5);--color-danger-text: light-dark(#ffffff, #3a0b08);--color-focus: light-dark(#0b57d0, #8ab4f8);--color-nav-active-bg: light-dark(#dce8fb, #243652);--color-backdrop: rgb(0 0 0 / .55);--font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-size-base: 1rem;--line-height-base: 1.5;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--radius: .375rem;--control-height: 2.75rem;--focus-ring: 3px solid var(--color-focus);--sidenav-width: 17rem}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-base)}body:has(dialog[open]){overflow:hidden}h1,h2,h3{line-height:1.25;margin:0 0 var(--space-3)}h1{font-size:1.75rem}h2{font-size:1.375rem}h3{font-size:1.125rem}p{margin:0 0 var(--space-3)}a{color:var(--color-primary)}code{font-family:var(--font-mono);background:var(--color-surface);padding:0 var(--space-1);border-radius:var(--radius)}:focus-visible{outline:var(--focus-ring);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.app{min-height:100vh;display:flex;flex-direction:column}.skip-link{position:absolute;top:-6rem;left:var(--space-2);z-index:100;padding:var(--space-3) var(--space-4);background:var(--color-primary);color:var(--color-primary-text);border-radius:var(--radius);font-weight:600}.skip-link:focus{top:var(--space-2)}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border-subtle)}.brand{font-size:1.25rem;font-weight:700;color:var(--color-text);text-decoration:none;display:inline-flex;align-items:center;min-height:var(--control-height)}.topbar__settings{margin-inline-start:auto;display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4)}.setting{display:flex;flex-direction:column;font-size:.8125rem;color:var(--color-text-muted)}.btn.menu-button{display:none}.layout{flex:1;display:flex;min-width:0}.sidenav{flex:0 0 var(--sidenav-width);padding:var(--space-4);background:var(--color-surface);border-inline-end:1px solid var(--color-border-subtle)}.sidenav ul{list-style:none;margin:0;padding:0}.nav-area+.nav-area{margin-top:var(--space-4)}.nav-area__label{display:block;padding:0 var(--space-3);margin-bottom:var(--space-1);font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.nav-link{display:flex;align-items:center;min-height:var(--control-height);padding:0 var(--space-3);border-radius:var(--radius);color:var(--color-text);text-decoration:none}.nav-link:hover{background:var(--color-nav-active-bg)}.nav-link[aria-current=page]{background:var(--color-nav-active-bg);font-weight:700;box-shadow:inset 4px 0 0 var(--color-primary)}.content{flex:1;min-width:0;padding:var(--space-6)}.content:focus{outline:none}@media(max-width:55.99rem){.btn.menu-button{display:inline-flex}.layout{flex-direction:column}.sidenav{flex-basis:auto;border-inline-end:0;border-bottom:1px solid var(--color-border-subtle)}.sidenav[data-open=false]{display:none}.content{padding:var(--space-4)}.topbar__settings{margin-inline-start:0;width:100%}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-height);min-width:var(--control-height);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-raised);color:var(--color-text);font:inherit;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--color-text)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text);font-weight:600}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-danger-text);font-weight:600}.input,.select,.textarea{min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-raised);color:var(--color-text);font:inherit;max-width:100%}.textarea{padding:var(--space-2) var(--space-3);min-height:6rem}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--color-danger);border-width:2px}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field__label{font-weight:600}.field__flag{font-weight:400;color:var(--color-text-muted)}.field__hint{margin:0;color:var(--color-text-muted);font-size:.875rem}.field__error{margin:0;color:var(--color-danger);font-size:.875rem;font-weight:600}.form-summary{border:2px solid var(--color-danger);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.form-summary h2{font-size:1.125rem;margin-bottom:var(--space-2)}.form-summary ul{margin:0;padding-inline-start:var(--space-6)}.state{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-6);border:1px dashed var(--color-border);border-radius:var(--radius);background:var(--color-surface);max-width:40rem}.state h2,.state h3,.state p{margin:0}.state--error{border:2px solid var(--color-danger)}.state--loading{flex-direction:row;align-items:center}.spinner{width:1.25rem;height:1.25rem;border:3px solid var(--color-border-subtle);border-top-color:var(--color-primary);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.dialog{width:min(32rem,calc(100vw - 2rem));padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-raised);color:var(--color-text)}.dialog--wide{width:min(40rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto}.detail-list{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-1) var(--space-4);margin:0 0 var(--space-4)}.detail-list dt{font-weight:600}.detail-list dd{margin:0;overflow-wrap:anywhere}.dialog::backdrop{background:var(--color-backdrop)}.dialog__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4)}.data-table__toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.column-picker summary{display:inline-flex;align-items:center;min-height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-raised);cursor:pointer}.column-picker fieldset{margin:var(--space-2) 0 0;padding:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius)}.column-picker label{display:flex;align-items:center;gap:var(--space-2);min-height:var(--control-height)}.table-scroll{position:relative;overflow-x:auto;border:1px solid var(--color-border-subtle);border-radius:var(--radius)}.data-table{width:100%;border-collapse:collapse}.data-table caption{padding:var(--space-2) var(--space-3);text-align:start;font-weight:700}.data-table th,.data-table td{padding:var(--space-2) var(--space-3);text-align:start;border-bottom:1px solid var(--color-border-subtle);white-space:nowrap}.data-table th{background:var(--color-surface)}.data-table[aria-busy=true] tbody{opacity:.6}.sort-button{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:700;cursor:pointer}.data-table__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3)}.data-table__pager{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.stack>*+*{margin-top:var(--space-4)}.button-row{display:flex;flex-wrap:wrap;gap:var(--space-3)}a.btn{text-decoration:none}.topbar__account{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3)}.account-name{font-weight:600;overflow-wrap:anywhere}.auth-frame{min-height:100vh;display:flex;flex-direction:column}.auth-frame__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border-subtle)}.auth-card{flex:1;width:100%;max-width:34rem;margin:0 auto;padding:var(--space-8) var(--space-4);min-width:0}.auth-card:focus{outline:none}.auth-alt{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle)}.auth-cancel{margin-top:var(--space-6)}.section-heading{font-size:1.25rem}.notice{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-inline-start-width:6px;border-radius:var(--radius);background:var(--color-surface)}.notice--error{border-color:var(--color-danger)}.support-banner{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);border-inline-start:6px solid var(--color-danger);background:var(--color-surface-raised);color:var(--color-text)}.support-banner--operator{border-inline-start-color:var(--color-primary)}.support-banner__text{margin:0}.fieldset{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius)}.fieldset legend{font-weight:600;padding:0 var(--space-2)}.choice{display:flex;align-items:center;gap:var(--space-3);min-height:var(--control-height)}.choice input{width:1.25rem;height:1.25rem;flex:none}.input--mono{font-family:var(--font-mono);width:100%}.code-list{list-style:none;margin:0 0 var(--space-4);padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:var(--space-2)}.code-list code{display:block;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-subtle);font-size:1.125rem}.facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--space-2) var(--space-6);margin:0 0 var(--space-4)}.facts dt{font-weight:600}.facts dd{margin:0;overflow-wrap:anywhere}@media(max-width:30rem){.facts{grid-template-columns:minmax(0,1fr);gap:0}.facts dd{margin-bottom:var(--space-2)}}.sections>section+section,.sections>*+*{margin-top:var(--space-6)}.device-list{list-style:none;margin:0 0 var(--space-4);padding:0}.device-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-subtle)}.muted{color:var(--color-text-muted);font-size:.875rem}.panel{margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);max-width:40rem}.toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.toolbar__search{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3)}.toolbar__search .field{margin-bottom:0}.form-narrow{max-width:34rem}.filter-form{margin:0 0 var(--space-4)}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:0 var(--space-4)}.code-block{margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid var(--color-border-subtle);max-width:100%;overflow:auto;font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere}.break-all{overflow-wrap:anywhere;word-break:break-all}.textarea{padding:var(--space-2) var(--space-3)}.badge{display:inline-block;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-raised);color:var(--color-text);font-size:.875rem;line-height:1.5;white-space:nowrap}.badge--warn{border-color:var(--color-danger);border-width:2px}.badge--ok{border-color:var(--color-primary)}.stepper{display:flex;flex-wrap:wrap;gap:var(--space-4);margin:0 0 var(--space-4);padding:0;list-style-position:inside}.stepper [aria-current=step]{font-weight:700;text-decoration:underline;text-underline-offset:.25em}.choice-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--space-4);margin:0;padding:0;list-style:none}.choice-list>li{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.form-fieldset{margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius);max-width:48rem}.form-fieldset--warn{border:2px solid var(--color-danger)}.form-section{margin:0 0 var(--space-4);max-width:60rem}.rule-list,.relation-list{margin:0 0 var(--space-4);padding:0;list-style:none}.rule-card{margin:0 0 var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.rule-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:0 var(--space-4)}.relation-list>li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border-subtle)}.relation-list .field{margin-bottom:0}.table--compact td,.table--compact th{padding:var(--space-2);vertical-align:top;text-align:left}progress{display:block;width:100%;max-width:34rem;height:1rem}.global-search{position:relative;flex:1 1 12rem;max-width:26rem;min-width:0}.global-search__input{width:100%}.global-search__list{position:absolute;inset-inline:0;top:100%;z-index:20;margin:var(--space-1) 0 0;padding:var(--space-1) 0;list-style:none;max-height:60vh;overflow-y:auto;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius)}.global-search__list[hidden]{display:none}.global-search__option{display:flex;flex-direction:column;padding:var(--space-2) var(--space-3);cursor:pointer;min-height:var(--control-height);justify-content:center}.global-search__option--active,.global-search__option:hover{background:var(--color-nav-active-bg)}.global-search__name{font-weight:600;overflow-wrap:anywhere}.global-search__match{font-size:.8125rem;color:var(--color-text-muted);overflow-wrap:anywhere}.breadcrumb{margin:0 0 var(--space-2)}.badges{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0 0 var(--space-4);padding:0}.badge{padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:999px;font-size:.875rem}.badge--ok{font-weight:600;border-color:var(--color-primary)}.device-tabs{margin:0 0 var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.device-tabs ul{display:flex;flex-wrap:wrap;gap:var(--space-1);list-style:none;margin:0;padding:0}.device-tab{display:inline-flex;align-items:center;min-height:var(--control-height);padding:0 var(--space-4);color:var(--color-text);text-decoration:none;border-bottom:3px solid transparent}.device-tab--active{font-weight:600;border-bottom-color:var(--color-primary)}.form-wide{max-width:64rem}.rule-editor__modes{display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.rule-editor__text{width:100%;max-width:100%}.rule-errors{margin:var(--space-2) 0;padding-inline-start:var(--space-4);color:var(--color-danger)}.rule-builder{margin:var(--space-3) 0}.rule-node{border:1px solid var(--color-border-subtle);border-inline-start:4px solid var(--color-border);padding:var(--space-3);margin-bottom:var(--space-2);background:var(--color-surface)}.rule-node--group{border-inline-start-color:var(--color-primary)}.rule-node--not{border-inline-start-color:var(--color-danger)}.rule-node--collection{border-inline-start-color:var(--color-text-muted)}.rule-node__head,.rule-node__fields,.rule-node__add,.rule-node__actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-2)}.rule-node__head{margin-bottom:var(--space-2)}.rule-node__actions{margin-top:var(--space-2)}.rule-node__head .rule-node__actions{margin-top:0}.rule-node__field{display:flex;flex-direction:column;gap:var(--space-1);min-width:10rem}.rule-node__field--value{flex:1 1 14rem}.rule-node__label{font-weight:600}.rule-node__children{list-style:none;margin:0 0 var(--space-2);padding:0}.rule-node__errors{margin:var(--space-2) 0 0;padding-inline-start:var(--space-4);color:var(--color-danger)}.rule-preview{margin-top:var(--space-4)}.plain-list{list-style:none;margin:0;padding:0}.policy-settings{list-style:none;margin:0 0 var(--space-4);padding:0}.policy-setting{margin:0 0 var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius)}.policy-setting h3{margin:0 0 var(--space-2)}.bulk-actions{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-subtle);border-radius:4px}.bulk-actions h2,.bulk-actions h3{margin-top:0;font-size:1rem}.row-select{inline-size:1.5rem;block-size:1.5rem;margin:0}.action-error{flex-basis:100%}.action-result details{max-inline-size:100%}.action-result .code-block{max-block-size:20rem;overflow:auto}progress{inline-size:100%;max-inline-size:32rem}.job-notices:empty{display:none}.job-notices{padding:var(--space-2) var(--space-4) 0}.job-notices .notice{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:0 0 var(--space-2)}.fieldset .choice{display:flex}.code-editor{position:relative;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-raised);max-inline-size:64rem}.code-editor__layer,.code-editor__input{box-sizing:border-box;margin:0;padding:var(--space-3);border:0;font-family:var(--font-mono);font-size:.9rem;line-height:1.5;tab-size:4;letter-spacing:0;white-space:pre;word-spacing:0;overflow-wrap:normal}.code-editor__layer{position:absolute;inset:0;overflow:hidden;color:var(--color-text);pointer-events:none}.code-editor__input{position:relative;display:block;inline-size:100%;min-block-size:22rem;resize:vertical;overflow:auto;background:transparent;color:transparent;caret-color:var(--color-text);border-radius:var(--radius)}.code-editor__input::selection{background:var(--color-nav-active-bg);color:transparent}.code-editor[data-readonly=true]{background:var(--color-surface)}.tok--comment{color:light-dark(#4f5b66,#a3afbb);font-style:italic}.tok--string{color:light-dark(#0a6a2f,#8fd19e)}.tok--variable{color:light-dark(#7a2e9e,#d7a8f0)}.tok--keyword{color:light-dark(#0842a0,#aecbfa);font-weight:600}.tok--builtin{color:light-dark(#8a4b00,#f0c27a)}.tok--number{color:light-dark(#9c2a1a,#f5a89d)}@media(forced-colors:active){.code-editor__layer{display:none}.code-editor__input{color:CanvasText}}.param-row{border:1px solid var(--color-border-subtle);border-radius:var(--radius);padding:var(--space-3);margin:0 0 var(--space-3);max-inline-size:40rem}.param-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:0 var(--space-4)}.hash{font-family:var(--font-mono);overflow-wrap:anywhere}.wide-panel{max-width:64rem}.setup-steps{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-4);padding:0;list-style:none}.setup-steps__button{text-align:left;white-space:normal}.setup-steps__button--current{border-width:2px;font-weight:700}.setup-steps__status{font-weight:400}.setup-step{max-width:60rem}.setup-actions{margin-top:var(--space-4)}.setup-paths{padding-left:var(--space-4)}.setup-paths li{margin-bottom:var(--space-3)}.setup-code{margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.choice-row{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4)}
