.ctrl{--space-3xs:2px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--font-xs:13px;--font-sm:16px;--font-md:20px;--font-lg:25px;--gray-100:hsl(220,20%,98%);--gray-200:hsl(220,16%,94%);--gray-300:hsl(220,14%,88%);--gray-400:hsl(220,12%,78%);--gray-500:hsl(220,10%,60%);--gray-600:hsl(220,11%,46%);--gray-700:hsl(220,13%,32%);--gray-800:hsl(220,16%,20%);--gray-900:hsl(220,20%,11%);--accent-100:hsl(217,94%,95%);--accent-300:hsl(217,92%,72%);--accent-500:hsl(217,91%,45%);--accent-700:hsl(217,92%,32%);--accent-900:hsl(217,94%,18%);--danger-100:hsl(4,78%,96%);--danger-300:hsl(4,74%,74%);--danger-500:hsl(4,72%,46%);--danger-700:hsl(4,74%,33%);--danger-900:hsl(4,78%,18%);--success-100:hsl(150,60%,93%);--success-300:hsl(150,56%,68%);--success-500:hsl(150,52%,34%);--success-700:hsl(150,56%,24%);--success-900:hsl(150,60%,14%);--warn-100:hsl(38,86%,93%);--warn-300:hsl(38,82%,68%);--warn-500:hsl(38,78%,38%);--warn-700:hsl(38,82%,27%);--warn-900:hsl(38,86%,16%);--surface:rgba(255,255,255,0.055);--surface-strong:rgba(255,255,255,0.08);--surface-hairline:rgba(255,255,255,0.12);--focus-ring:var(--accent-300);font-family:inherit}.ctrl-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:24px;padding:var(--space-xs) var(--space-md);border-radius:6px;border:1px solid transparent;font:inherit;font-size:var(--font-xs);font-weight:600;cursor:pointer;white-space:nowrap}.ctrl-button:disabled{cursor:not-allowed;opacity:.55}.ctrl-button--primary{background:var(--accent-300);color:var(--gray-900)}.ctrl-button--primary:not(:disabled):hover{background:var(--accent-100)}.ctrl-button--secondary{background:transparent;border-color:var(--gray-500);color:var(--gray-100)}.ctrl-button--secondary:not(:disabled):hover{background:var(--surface-strong)}.ctrl-button--tertiary{background:transparent;border-color:transparent;color:var(--accent-300);padding-left:var(--space-xs);padding-right:var(--space-xs);font-weight:400}.ctrl-button--tertiary:not(:disabled):hover{text-decoration:underline}.ctrl-button--destructive.ctrl-button--primary{background:var(--danger-300)}.ctrl-button--destructive.ctrl-button--primary:not(:disabled):hover{background:var(--danger-100)}@media (prefers-reduced-motion:no-preference){.ctrl-button{transition:background-color .12s ease,box-shadow .12s ease}}.ctrl-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.ctrl-field{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.ctrl-field__label{font-size:var(--font-xs);font-weight:400;color:var(--gray-400)}.ctrl-field__input,.ctrl-field__select{font:inherit;font-size:var(--font-sm);color:var(--gray-100);background:var(--surface);border:1px solid var(--gray-500);border-radius:6px;padding:var(--space-xs) var(--space-sm);min-height:24px}.ctrl-field__input:focus-visible,.ctrl-field__select:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px;border-color:var(--focus-ring)}.ctrl-field__hint{font-size:var(--font-xs);color:var(--gray-400)}.ctrl-table-wrap{border:1px solid var(--surface-hairline);border-radius:8px}.ctrl-table-wrap.overflow-x-auto{overflow-x:auto}.ctrl-table{width:100%;min-width:480px;border-collapse:collapse;font-size:var(--font-xs)}.ctrl-table thead{background:var(--surface-strong)}.ctrl-table td,.ctrl-table th{text-align:left;padding:var(--space-sm) var(--space-sm);border-bottom:1px solid var(--surface-hairline)}.ctrl-table th{font-weight:600;color:var(--gray-300)}.ctrl-table tbody tr:last-child td{border-bottom:none}.tabular-nums{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ctrl-table td.tabular-nums,.ctrl-table th.tabular-nums{text-align:right}.ctrl-badge{display:inline-flex;align-items:center;padding:var(--space-3xs) var(--space-sm);border-radius:999px;font-size:var(--font-xs);font-weight:600;white-space:nowrap}.ctrl-badge--neutral{background:var(--surface-strong);color:var(--gray-100)}.ctrl-badge--info{background:var(--surface-strong);color:var(--accent-300)}.ctrl-badge--success{background:var(--surface-strong);color:var(--success-300)}.ctrl-badge--danger{background:var(--surface-strong);color:var(--danger-300)}.ctrl-badge--warn{background:var(--surface-strong);color:var(--warn-300)}.ctrl-empty{padding:var(--space-lg);border:1px dashed var(--surface-hairline);border-radius:8px;text-align:left}.ctrl-empty__title{margin:0 0 var(--space-xs);font-size:var(--font-sm);font-weight:600;color:var(--gray-100)}.ctrl-empty__hint{margin:0;font-size:var(--font-xs);color:var(--gray-400)}.ctrl-error{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid hsl(4 74% 74%/.3);background:hsl(4 74% 74%/.14);border-radius:8px}.ctrl-error__message{margin:0;font-size:var(--font-xs);color:var(--danger-300)}.ctrl-loading{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);color:var(--gray-300);font-size:var(--font-xs)}.ctrl-loading__spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--surface-hairline);border-top-color:var(--accent-300);flex:none}@media (prefers-reduced-motion:no-preference){.ctrl-loading__spinner{animation:ctrl-spin .8s linear infinite}}@keyframes ctrl-spin{to{transform:rotate(1turn)}}.ctrl-pagination{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm)}.ctrl-pagination__info{font-size:var(--font-xs);color:var(--gray-300)}.ctrl-violations{margin:0;padding-left:var(--space-md);color:var(--danger-300);font-size:var(--font-xs);display:flex;flex-direction:column;gap:var(--space-3xs)}.ui-spinner{--ui-spinner-track:hsl(220,14%,90%);--ui-spinner-arc:hsl(217,91%,45%);--ui-spinner-text:hsl(220,10%,40%);display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ui-spinner-text)}.ui-spinner__ring{width:16px;height:16px;border-radius:50%;border:2px solid var(--ui-spinner-track);border-top-color:var(--ui-spinner-arc);flex-shrink:0}@media (prefers-reduced-motion:no-preference){.ui-spinner__ring{animation:ui-spinner-rotate .8s linear infinite}}@keyframes ui-spinner-rotate{to{transform:rotate(1turn)}}.header{--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--font-sm:13px;--font-md:16px;--font-lg:20px;--header-bg:rgba(255,255,255,0.055);--header-hover:rgba(255,255,255,0.08);--header-text:hsl(220,30%,96%);--header-text-muted:hsla(220,59%,95%,0.55);--header-accent:hsl(167,69%,64%);--header-focus-ring:hsl(214,94%,70%);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--header-bg);-webkit-backdrop-filter:blur(28px) saturate(1.7);backdrop-filter:blur(28px) saturate(1.7);color:var(--header-text);font-size:var(--font-md);line-height:1.5}.header__brand{display:flex;align-items:baseline;gap:var(--space-sm);min-width:0}.header__logo{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:6px;background:none;padding:var(--space-xs);margin:calc(var(--space-xs) * -1);font:inherit;font-size:var(--font-lg);font-weight:600;color:var(--header-text);cursor:pointer}.header__logo:hover{color:var(--header-accent)}.header__tagline{font-size:var(--font-sm);font-weight:400;color:var(--header-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header__nav{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;overflow-x:auto}.header__action{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:6px;background:none;padding:var(--space-xs) var(--space-sm);min-height:24px;font:inherit;font-size:var(--font-md);font-weight:400;color:var(--header-text);white-space:nowrap;cursor:pointer}.header__action--muted{color:var(--header-text-muted)}@media (prefers-reduced-motion:no-preference){.header__action,.header__logo{transition:background-color .12s ease,color .12s ease}}.header__action:hover{background:var(--header-hover)}.header__action:focus-visible,.header__logo:focus-visible{outline:2px solid var(--header-focus-ring);outline-offset:2px}@media (max-width:480px){.header{padding:var(--space-xs) var(--space-sm)}.header__tagline{display:none}}.session-restore{--space-md:16px;--space-xl:32px;display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:var(--space-xl) var(--space-md)}.session-restore__body{display:flex;justify-content:center;width:min(420px,100%)}.session-restore .ui-spinner{--ui-spinner-track:hsla(220,59%,95%,0.36);--ui-spinner-arc:hsl(167,69%,64%);--ui-spinner-text:hsla(220,59%,95%,0.86)}