@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.toast-stack[data-v-9733a4ff]{z-index:9999;pointer-events:none;flex-direction:column;gap:.625rem;display:flex;position:fixed;top:1.25rem;right:1.25rem}.toast[data-v-9733a4ff]{border-radius:var(--radius-lg);pointer-events:all;align-items:center;gap:.75rem;min-width:22rem;max-width:28rem;padding:.875rem 1rem .875rem 1.125rem;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #00000014}.toast[data-v-9733a4ff]:before{content:"";width:6px;position:absolute;top:0;bottom:0;left:0}.toast--success[data-v-9733a4ff]{background:#e8f7ed}.toast--success[data-v-9733a4ff]:before{background:var(--color-success)}.toast--success .toast-icon[data-v-9733a4ff],.toast--success .toast-title[data-v-9733a4ff],.toast--success .toast-msg[data-v-9733a4ff],.toast--success .toast-close[data-v-9733a4ff]{color:#1f8c39}.toast--error[data-v-9733a4ff]{background:#fbe9eb}.toast--error[data-v-9733a4ff]:before{background:var(--color-danger)}.toast--error .toast-icon[data-v-9733a4ff],.toast--error .toast-title[data-v-9733a4ff],.toast--error .toast-msg[data-v-9733a4ff],.toast--error .toast-close[data-v-9733a4ff]{color:#a52234}.toast--info[data-v-9733a4ff]{background:#e6eff4}.toast--info[data-v-9733a4ff]:before{background:var(--color-primary)}.toast--info .toast-icon[data-v-9733a4ff],.toast--info .toast-title[data-v-9733a4ff],.toast--info .toast-msg[data-v-9733a4ff],.toast--info .toast-close[data-v-9733a4ff]{color:var(--color-primary)}.toast-icon[data-v-9733a4ff]{flex-shrink:0}.toast-body[data-v-9733a4ff]{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.toast-title[data-v-9733a4ff]{font-size:.9375rem;font-weight:700}.toast-msg[data-v-9733a4ff]{opacity:.9;font-size:.875rem;font-weight:500;line-height:1.4}.toast-close[data-v-9733a4ff]{border-radius:var(--radius-sm);cursor:pointer;opacity:.6;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;transition:opacity .15s,background .15s;display:inline-flex}.toast-close[data-v-9733a4ff]:hover{opacity:1;background:#0000000f}.toast-enter-active[data-v-9733a4ff]{transition:all .2s}.toast-leave-active[data-v-9733a4ff]{transition:all .18s}.toast-enter-from[data-v-9733a4ff],.toast-leave-to[data-v-9733a4ff]{opacity:0;transform:translate(1.5rem)}:root{--color-primary:#2e6e8e;--color-primary-subtle:#2e6e8e1a;--color-primary-hover:#255e7a;--color-primary-soft:#2e6e8e14;--color-accent:#6bbf4e;--color-accent-subtle:#6bbf4e1a;--color-danger:#dc3545;--color-danger-hover:#b91c2c;--color-danger-subtle:#dc35451a;--color-success:#28a745;--color-success-hover:#15803d;--color-success-soft:#ecfdf3;--color-warning:#ffc107;--color-text-faint:#c0c4cc;--color-bg:#f8f9fa;--color-surface:#fff;--color-surface-sunken:#f4f5f7;--color-surface-elevated:#fff;--color-border:#e5e7eb;--color-border-subtle:#eef0f4;--color-border-strong:#cbd5e1;--color-bg-hover:#eef1f5;--color-nav-hover:#eaeef3;--color-text:#111827;--color-text-strong:#0f172a;--color-text-muted:#6b7280;--color-text-subtle:#9ca3af;--color-text-on-primary:#fff;--color-success-subtle:#d1fae5;--color-warn:#b45309;--color-warn-subtle:#fef3c7;--color-overlay:#0f172a7a;--shadow-xs:0 1px 1px #0f172a0a;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 8px 32px #0000001f;--shadow-popup:0 12px 32px #0f172a1f, 0 2px 6px #0f172a0f;--dur-fast:.15s;--dur-base:.2s;--ease-out:cubic-bezier(.4, 0, .2, 1);--tracking-tight:-.02em;--tracking-tighter:-.03em;--tracking-snug:-.01em;--tracking-normal:0;--tracking-wide:.04em;--radius-xs:.1875rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-feature-default:"cv11", "ss01", "ss03", "calt" 1;--font-feature-tnum:"tnum" 1, "cv11";--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:.9375rem;--text-lg:1rem;--text-xl:1.125rem;--text-2xl:1.375rem;--text-3xl:1.75rem;--shadow-focus:0 0 0 3px var(--color-primary-soft);--color-chip-bg:#e5e7eb}[data-theme=dark]{--color-bg:#0a0a0b;--color-surface:#131316;--color-surface-sunken:#08080a;--color-surface-elevated:#1a1a1f;--color-border:#232328;--color-border-subtle:#1a1a1f;--color-border-strong:#3a3a42;--color-bg-hover:#1f1f24;--color-nav-hover:#1d1d22;--color-text:#e4e6eb;--color-text-strong:#f5f7fb;--color-text-muted:#8a8f9a;--color-text-subtle:#585c66;--color-text-on-primary:#fff;--color-primary-subtle:#2e6e8e33;--color-primary-soft:#2e6e8e1f;--color-success-subtle:#064e3b40;--color-success-soft:#0d2c1a;--color-success-hover:#4ade80;--color-danger-hover:#f87171;--color-danger-subtle:#dc354533;--color-text-faint:#585c66;--color-warn:#fbbf24;--color-warn-subtle:#92400e40;--shadow-popup:0 12px 32px #00000080, 0 2px 6px #0000004d;--color-chip-bg:#232328}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-feature-settings:var(--font-feature-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--color-bg);color:var(--color-text);line-height:1.5;font-size:var(--text-base);overflow-x:hidden}#app{min-height:100dvh}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:inherit}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.backdrop{z-index:50;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-height:90vh;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-title{color:var(--color-text-strong);margin:0;font-size:1rem;font-weight:600}.modal-close{border-radius:var(--radius-sm);width:1.75rem;height:1.75rem;color:var(--color-text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal-close:hover{background:var(--color-bg-hover);color:var(--color-text)}.modal-form{flex-direction:column;flex:1;min-height:0;display:flex}.modal-body{flex-direction:column;flex:1;gap:1.25rem;padding:1.5rem;display:flex;overflow-y:auto}.modal-footer{border-top:1px solid var(--color-border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:.625rem;padding:1rem 1.5rem;display:flex}.modal-enter-active,.modal-leave-active{transition:opacity var(--dur-base) var(--ease-out)}.modal-enter-active .modal,.modal-leave-active .modal{transition:transform var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out)}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal,.modal-leave-to .modal{opacity:0;transform:scale(.96)}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border:none;justify-content:center;align-items:center;gap:.375rem;font-family:inherit;font-weight:500;display:inline-flex}.btn--primary{background:var(--color-primary);color:var(--color-text-on-primary);padding:.5rem 1.125rem;font-size:.875rem}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--primary:disabled{opacity:.65;cursor:not-allowed}.btn--ghost{color:var(--color-text-muted);border:1px solid var(--color-border);background:0 0;padding:.5rem .875rem;font-size:.875rem}.btn--ghost:hover{background:var(--color-bg-hover);color:var(--color-text)}.btn--sm{padding:.4375rem .875rem;font-size:.8125rem}.btn-spinner{border:1.5px solid;border-top-color:#0000;border-radius:50%;width:.875rem;height:.875rem;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.field{flex-direction:column;gap:.375rem;display:flex}.label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500}.field-error{font-size:var(--text-xs);color:var(--color-danger)}.input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);height:2.25rem;color:var(--color-text);font-family:inherit;font-size:var(--text-base);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);box-sizing:border-box;outline:none;width:100%;padding:0 .75rem}.input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.input--error{border-color:var(--color-danger)}.input--sm{height:1.875rem;font-size:var(--text-sm)}.select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);height:2.25rem;color:var(--color-text);font-family:inherit;font-size:var(--text-base);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);box-sizing:border-box;outline:none;width:100%;padding:0 .75rem}.select:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.page{flex-direction:column;gap:1rem;display:flex}.page-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.search-wrap{flex:1;align-items:center;min-width:16rem;display:flex;position:relative}.search-icon{color:var(--color-text-faint);pointer-events:none;position:absolute;left:.8125rem}.search{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);height:2.25rem;font-size:var(--text-base);color:var(--color-text);box-shadow:var(--shadow-xs);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);flex:1;padding:0 .75rem 0 2.25rem;font-family:inherit}.search::placeholder{color:var(--color-text-faint)}.search:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none}.icon-trigger{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:2.25rem;height:2.25rem;color:var(--color-text-muted);cursor:pointer;box-shadow:var(--shadow-xs);transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;display:inline-flex}.icon-trigger:hover:not(:disabled){color:var(--color-text-strong);background:var(--color-bg-hover);border-color:var(--color-border-strong)}.icon-trigger:disabled{opacity:.5;cursor:not-allowed}.icon-trigger--loading .icon-trigger__icon{animation:1s linear infinite spin}.icon-trigger__icon{width:1rem;height:1rem}.btn-primary{background:var(--color-primary);height:2.25rem;color:var(--color-text-on-primary);border:1px solid var(--color-primary);border-radius:var(--radius-md);font-size:var(--text-base);letter-spacing:var(--tracking-snug);cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);padding:0 1rem;font-family:inherit;font-weight:500;box-shadow:0 1px 2px #2e6e8e2e}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:0 4px 12px #2e6e8e42}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{height:2.25rem;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);letter-spacing:var(--tracking-snug);cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);background:0 0;padding:0 1rem;font-family:inherit;font-weight:500}.btn-secondary:hover{background:var(--color-bg-hover);border-color:var(--color-border-strong)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:visible}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--text-base)}.table th{text-align:left;font-size:var(--text-xs);text-transform:none;letter-spacing:var(--tracking-snug);color:var(--color-text-subtle);border-bottom:1px solid var(--color-border);background:var(--color-surface);padding:.6875rem 1rem;font-weight:500}.table thead th:first-child{border-top-left-radius:calc(var(--radius-lg) - 1px)}.table thead th:last-child{border-top-right-radius:calc(var(--radius-lg) - 1px)}.table td{border-bottom:1px solid var(--color-border-subtle);vertical-align:middle;padding:.8125rem 1rem}.table .row{cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}.table .row:last-child td{border-bottom:none}.table .row:last-child td:first-child{border-bottom-left-radius:calc(var(--radius-lg) - 1px)}.table .row:last-child td:last-child{border-bottom-right-radius:calc(var(--radius-lg) - 1px)}.table .row:hover{background:var(--color-bg-hover)}.empty{text-align:center;color:var(--color-text-subtle);font-size:var(--text-sm);padding:3rem 1rem}.status{font-size:var(--text-xs);border-radius:var(--radius-xs);letter-spacing:var(--tracking-snug);align-items:center;gap:.375rem;padding:.1875rem .5rem;font-weight:500;display:inline-flex}.status:before{content:"";border-radius:var(--radius-full);width:.4375rem;height:.4375rem;box-shadow:0 0 0 2px color-mix(in srgb, currentColor 22%, transparent);background:currentColor;flex-shrink:0}.status--on{background:var(--color-success-soft);color:var(--color-success-hover)}.status--off{background:var(--color-chip-bg);color:var(--color-text-muted)}.status--pending{background:color-mix(in srgb, var(--color-warning,#d97706) 12%, transparent);color:var(--color-warning,#d97706)}.col-id{text-align:left;font-variant-numeric:tabular-nums;width:3.5rem}.code{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-subtle);font-variant-numeric:tabular-nums}.num{text-align:right;font-variant-numeric:tabular-nums}th.num{text-align:right}.muted{color:var(--color-text-muted);font-size:var(--text-sm)}.th-sort{width:100%;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:inherit;cursor:pointer;transition:color var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:.375rem;padding:0;display:inline-flex}.th-sort:hover{color:var(--color-text)}.th-sort__icon{opacity:.6;flex-shrink:0;width:.625rem;height:.625rem}.th-sort:hover .th-sort__icon{opacity:1}.th-sort--num{justify-content:flex-end}.page-desc{font-size:var(--text-sm);color:var(--color-text-muted);letter-spacing:var(--tracking-snug);align-items:flex-start;gap:.5rem;margin:0;line-height:1.5;display:flex}.page-desc__icon{width:1rem;height:1rem;color:var(--color-primary);flex-shrink:0;margin-top:.125rem}.inline-error{font-size:var(--text-sm);color:var(--color-danger);background:var(--color-danger-subtle);border-radius:var(--radius-md);margin:0;padding:.5rem .75rem}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;opacity:0;box-shadow:var(--shadow-md);transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);z-index:100;padding:.375rem .625rem;font-size:.75rem;font-weight:500;line-height:1;position:absolute;top:50%;left:calc(100% + .625rem);transform:translateY(-50%)translate(-4px)}[data-tip]:hover:after{opacity:1;transform:translateY(-50%)translate(0)}[data-tip][data-tip-bottom]:after{top:calc(100% + .5rem);left:50%;transform:translate(-50%)translateY(-4px)}[data-tip][data-tip-bottom]:hover:after{opacity:1;transform:translate(-50%)translateY(0)}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}.theme-to-dark::view-transition-old(root){z-index:2}.theme-to-dark::view-transition-new(root){z-index:0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.checkbox{appearance:none;border:1.5px solid var(--color-border-strong);background:var(--color-surface);cursor:pointer;width:1.125rem;height:1.125rem;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border-radius:.3125rem;flex-shrink:0}.checkbox:checked{background:var(--color-primary);border-color:var(--color-primary);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.5 6l2.8 2.8 4.2-4.6' stroke='%23ffffff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C%2Fsvg%3E");background-position:50%;background-repeat:no-repeat;background-size:.7rem}.checkbox:focus-visible{box-shadow:var(--shadow-focus);border-color:var(--color-primary);outline:none}.checkbox:hover:not(:checked):not(:disabled){border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.checkbox:disabled{opacity:.5;cursor:not-allowed}.checkbox-label{font-size:var(--text-base);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;display:inline-flex}.checkbox-label:has(.checkbox:disabled){cursor:not-allowed;opacity:.7}
