@font-face{font-family:Inter;src:url(/assets/inter-latin-wght-normal.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--gray-50:#f7f7f5;--gray-100:#ecece8;--gray-200:#d9d8cf;--gray-300:#c0c0b1;--gray-400:#a6a391;--gray-500:#94907b;--gray-600:#87826f;--gray-700:#716c5d;--gray-800:#5e594e;--gray-900:#4d4941;--gray-950:#282622;--bg:#fff;--card:#fff;--surface:var(--gray-50);--surface-2:var(--gray-100);--border:var(--gray-200);--border-soft:var(--gray-100);--fg:var(--gray-950);--fg-body:var(--gray-900);--fg-muted:var(--gray-600);--fg-subtle:var(--gray-500);--fg-faint:var(--gray-400);--primary:#333;--primary-fg:#fafafa;--link:#2e5d70;--success:#065f46;--destructive:#b91c1c;--warn:#bd6705;--info:#075985;--ok-icon:#059467;--bad-icon:#dc2828;--bad-bg:#fef1f1;--bad-border:#fec8c8;--bad-fg:#811d1d;--warn-bg:#fffbeb;--warn-border:#fde68b;--warn-fg:#833d07;--badge-alpha:25%;--radius:8px;--shadow:0 1px 2px #0000000d;--font:Inter, ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--background:var(--bg);--foreground:var(--fg);--card-foreground:var(--fg);--popover:var(--card);--popover-foreground:var(--fg);--primary-foreground:var(--primary-fg);--secondary:var(--surface);--secondary-foreground:var(--fg);--muted:var(--surface);--muted-foreground:var(--fg-muted);--accent:var(--surface);--accent-foreground:var(--fg);--surface-raised:var(--surface);--input:var(--border);--ring:var(--fg);--line:var(--border);--text:var(--fg)}
*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--fg-body);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;line-height:20px}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--fg);font-weight:600}h1{font-size:20px;line-height:28px}h2{font-size:16px;line-height:24px}p{color:var(--fg-muted)}small{font-size:12px;line-height:16px}a{color:inherit}code{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.muted{color:var(--fg-muted)}.subtle{color:var(--fg-subtle);font-size:12px;line-height:16px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}svg.i{flex-shrink:0;width:16px;height:16px}svg.i.sm{width:14px;height:14px}[data-tip]{cursor:help}.tip{z-index:100;border:1px solid var(--border);background:var(--popover);max-width:360px;color:var(--popover-foreground);white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;border-radius:6px;padding:6px 10px;font-size:12px;line-height:16px;position:fixed;box-shadow:0 4px 12px #00000014}:where(button),.btn{border:1px solid var(--border);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:6px;padding:7px 15px;font-weight:500;line-height:20px;transition:background-color .15s,border-color .15s}.btn{white-space:nowrap;justify-content:center;align-items:center;gap:6px;text-decoration:none;display:inline-flex}:where(button):hover,.btn:hover{background:var(--surface)}.btn.primary,button.primary{border-color:var(--primary);background:var(--primary);color:var(--primary-fg)}.btn.primary:hover,button.primary:hover{background:color-mix(in srgb, var(--primary) 90%, transparent)}button.danger{border-color:var(--destructive);background:var(--destructive);color:var(--primary-fg)}button.danger:hover{background:color-mix(in srgb, var(--destructive) 90%, transparent)}button.danger-outline{border-color:var(--bad-border);color:var(--destructive)}button.danger-outline:hover{background:var(--bad-bg)}button.sm,td :where(button){padding:4px 11px;font-size:13px}button:disabled{opacity:.45;cursor:default}.linkish{color:var(--link);background:0 0;border:0;padding:0;font-weight:500}.linkish:hover{background:0 0;text-decoration:underline}.badge{background:var(--surface);width:fit-content;color:var(--fg-muted);white-space:nowrap;vertical-align:middle;border-radius:4px;align-items:center;gap:6px;padding:2px 10px;font-size:11px;font-weight:600;line-height:16px;display:inline-flex}.badge.success{background:color-mix(in srgb, var(--success) var(--badge-alpha), transparent);color:var(--success)}.badge.warning{background:color-mix(in srgb, var(--warn) var(--badge-alpha), transparent);color:var(--warn-fg)}.badge.destructive{background:color-mix(in srgb, var(--destructive) var(--badge-alpha), transparent);color:var(--destructive)}.badge.info{background:color-mix(in srgb, var(--info) var(--badge-alpha), transparent);color:var(--info)}.state{color:var(--fg);white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:500;line-height:16px;display:inline-flex}.state .dot{background:var(--primary);border-radius:99px;flex-shrink:0;width:6px;height:6px}.state.ok .dot{background:var(--ok-icon)}.state.bad{color:var(--destructive)}.state.bad .dot{background:var(--destructive)}.state.off{color:var(--fg-muted)}.state.off .dot{background:var(--fg-faint)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);overflow-x:auto}table{border-collapse:collapse;text-align:left;white-space:nowrap;width:100%}th{background:var(--surface);color:var(--fg-subtle);padding:8px 16px;font-size:12px;font-weight:500;line-height:16px}td{border-top:1px solid var(--border-soft);color:var(--fg);vertical-align:top;padding:12px 16px}td strong{font-weight:500}td small{color:var(--fg-muted);margin-top:2px;display:block}tbody tr:hover>td{background:var(--surface)}td .error-text{max-width:280px;color:var(--destructive);text-overflow:ellipsis;margin-top:2px;font-size:12px;line-height:16px;display:block;overflow:hidden}td .error-text.open{white-space:pre-wrap;overflow-wrap:anywhere;max-width:420px;overflow:visible}td .row-actions{gap:6px;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--bg);justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:8px clamp(16px,3vw,32px);display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand strong{color:var(--fg);font-weight:600}.who{color:var(--fg-muted);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 16px;display:inline-flex}.who a{align-items:center;gap:6px;text-decoration:none;display:inline-flex}.who a:hover{color:var(--fg)}.tile{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--fg-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}main{max-width:1440px;margin:0 auto;padding:24px clamp(16px,3vw,32px) 48px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin:0 0 24px;display:flex}.page-head p{margin-top:2px}input,select,textarea{border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--fg);border-radius:6px;padding:7px 10px;line-height:20px}input:read-only{background:var(--surface)}input::-moz-placeholder{color:var(--fg-faint)}textarea::-moz-placeholder{color:var(--fg-faint)}input::placeholder,textarea::placeholder{color:var(--fg-faint)}input:is([type=checkbox],[type=radio]){accent-color:var(--primary);padding:0}.callout{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg-body);overflow-wrap:anywhere;align-items:flex-start;gap:12px;margin:0 0 16px;padding:12px 16px;display:flex}.callout.bad{border-color:var(--bad-border);background:var(--bad-bg);color:var(--bad-fg)}.callout.warn{border-color:var(--warn-border);background:var(--warn-bg);color:var(--warn-fg)}.empty{border:1px dashed var(--border);border-radius:var(--radius);color:var(--fg-muted);text-align:center;margin:16px 0;padding:40px 24px}.empty p{max-width:440px;margin:4px auto 0}.empty p+.btn,.empty p+button{margin-top:16px}.signin{background:var(--surface);justify-content:center;align-items:center;max-width:none;min-height:100vh;padding:16px;display:flex}.signin-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);width:min(360px,100%);box-shadow:var(--shadow);flex-direction:column;gap:16px;padding:24px;display:flex}.signin-card .error{color:var(--destructive)}.modal-backdrop{z-index:20;background:#0003;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);width:min(560px,100%);max-height:calc(100dvh - 32px);color:var(--fg-body);overscroll-behavior:contain;padding:0 24px;overflow:auto;box-shadow:0 4px 12px #00000014}.modal-head{z-index:2;border-bottom:1px solid var(--border-soft);background:var(--card);justify-content:space-between;align-items:flex-start;gap:16px;margin:0 -24px;padding:20px 24px 16px;display:flex;position:sticky;top:0}.modal-close{color:var(--fg-muted);background:0 0;border:0;margin:0 -6px 0 0;padding:4px;display:flex}.modal-body{flex-direction:column;gap:16px;padding:20px 0 0;display:flex}.modal-body p{font-size:14px}.modal label.field{min-width:0;color:var(--fg);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.modal label.field>:is(input,select,textarea){width:100%;font-size:14px;font-weight:400}.modal label.field>small{color:var(--fg-muted);font-weight:400}.modal fieldset{border:0;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}.modal legend{color:var(--fg);margin-bottom:6px;padding:0;font-size:13px;font-weight:500}.modal label.check{color:var(--fg);align-items:center;gap:8px;display:flex}.modal textarea{resize:vertical;min-height:80px}.modal-footer{z-index:2;border-top:1px solid var(--border-soft);background:var(--card);flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:24px -24px 0;padding:16px 24px 24px;display:flex;position:sticky;bottom:0}.presets{flex-wrap:wrap;gap:6px;display:flex}.presets button[aria-pressed=true]{border-color:var(--fg);background:var(--surface-2)}[hidden]{display:none!important}
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.table{display:table}.hidden{display:none}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.running{animation-play-state:running}
