@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap);:root{--color-bg:#fafafa;--color-surface:#fff;--color-border:#e5e7eb;--color-border-strong:#9ca3af;--color-fg:#0d0d10;--color-fg-muted:#4b5563;--color-fg-subtle:#6b7280;--color-primary:#0b5fff;--color-on-primary:#fff;--color-success:#15803d;--color-on-success:#fff;--color-warning:#b45309;--color-on-warning:#fff;--color-danger:#c2410c;--color-on-danger:#fff;--color-danger-strong:#b91c1c;--color-highlight:#fff3a3;--color-focus-ring:#2563eb;--color-overlay:#0d0d1080;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-normal:1.5;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--shadow-sm:0 1px 2px #0d0d100d;--shadow-md:0 4px 12px #0d0d1014;--shadow-lg:0 12px 32px #0d0d101f;--z-dropdown:50;--z-toast:100;--z-modal:200;--z-modal-backdrop:199}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg);color:var(--color-fg);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);margin:0}code,kbd,pre,samp{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.modal__backdrop{align-items:flex-start;background:var(--color-overlay);display:flex;inset:0;justify-content:center;overflow-y:auto;padding:var(--space-7) var(--space-4) var(--space-4);position:fixed;z-index:var(--z-modal-backdrop)}.modal{animation:modal-pop .14s ease-out;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-width:480px;position:relative;width:100%;z-index:var(--z-modal)}.modal--sm{max-width:380px}.modal--md{max-width:480px}.modal--lg{max-width:720px}.modal__header{color:var(--color-fg);font-family:var(--font-body);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0;padding:var(--space-5) var(--space-5) var(--space-3)}.modal__body{color:var(--color-fg);line-height:var(--line-height-normal);padding:var(--space-3) var(--space-5)}.modal__footer{border-top:1px solid var(--color-border);display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-5)}@keyframes modal-pop{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.modal{animation:none}}.btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-weight:var(--font-weight-medium);gap:var(--space-2);justify-content:center;line-height:var(--line-height-tight);transition:background-color .12s ease,border-color .12s ease,color .12s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn--md{font-size:var(--font-size-sm);padding:var(--space-2) var(--space-4)}.btn--sm{font-size:var(--font-size-xs);gap:var(--space-1);padding:var(--space-1) var(--space-2)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn--primary{background:var(--color-primary);color:var(--color-on-primary)}.btn--primary:hover:not(:disabled){background:#084dcf}.btn--primary:active:not(:disabled){background:#073fb0}.btn--danger{background:var(--color-danger-strong);color:var(--color-on-danger)}.btn--danger:hover:not(:disabled){background:#991b1b}.btn--danger:active:not(:disabled){background:#7f1d1d}.btn--ghost{background:#0000;border-color:var(--color-border);color:var(--color-fg)}.btn--ghost:hover:not(:disabled){background:var(--color-bg);border-color:var(--color-border-strong)}.btn--ghost:active:not(:disabled){background:var(--color-border)}.btn__spinner{animation:btn-spin .7s linear infinite;border:2px solid;border-radius:var(--radius-full);border-top:2px solid #0000;height:.875em;width:.875em}.btn--loading .btn__label{opacity:.85}@keyframes btn-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn__spinner{animation-duration:2s}}.activation-labels__actions{display:flex;justify-content:flex-end;margin:var(--space-4) 0}.activation-labels__grid{grid-gap:var(--space-4);align-items:start;display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.activation-labels__card{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);text-align:center}.activation-labels__card canvas{height:auto;max-width:100%}.activation-labels__serial{color:var(--color-fg);font-weight:var(--font-weight-semibold);margin:0;word-break:break-all}.activation-labels__meta{color:var(--color-fg-muted);font-size:var(--font-size-xs);margin:0}.activation-labels__status{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);margin:0}.activation-labels__status--info{color:var(--color-success)}.activation-labels__status--warn{color:var(--color-warning)}.activation-labels__status--error{color:var(--color-danger)}.activation-labels__alert,.activation-labels__notice{background:var(--color-surface);border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--radius-md);color:var(--color-fg);margin:0 0 var(--space-3);padding:var(--space-3)}.activation-labels__notice{border-left-color:var(--color-warning)}.activation-labels__alert{border-left-color:var(--color-danger)}.badge{align-items:center;border:1px solid #0000;border-radius:var(--radius-full);display:inline-flex;font-family:var(--font-body);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);gap:var(--space-1);line-height:1.4;padding:2px var(--space-2);white-space:nowrap}.badge__icon{font-size:.7em;line-height:1}.badge--active{background:#dcfce7;border-color:#86efac;color:#14532d}.badge--inactive{color:#1f2937}.badge--deleted,.badge--inactive{background:#f3f4f6;border-color:#d1d5db}.badge--deleted{color:#6b7280;text-decoration:line-through}.badge--warning{background:#fef3c7;border-color:#fcd34d;color:#78350f}.badge--success{background:#dcfce7;border-color:#86efac;color:#14532d}.ext-modal__section{margin-bottom:var(--space-4)}.ext-modal__section:last-of-type{margin-bottom:0}.ext-modal__subtitle{color:var(--color-fg);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-2)}.ext-modal__details{grid-gap:var(--space-1) var(--space-3);display:grid;font-size:var(--font-size-sm);gap:var(--space-1) var(--space-3);grid-template-columns:140px 1fr;margin:0}.ext-modal__details dt{color:var(--color-fg-muted);font-weight:var(--font-weight-medium)}.ext-modal__details dd{color:var(--color-fg);margin:0}.ext-modal__mono{font-family:var(--font-mono)}.ext-modal__summary{background:var(--color-bg);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:var(--line-height-normal);margin-top:var(--space-3);padding:var(--space-3)}.ext-modal__summary p{margin:0 0 var(--space-2)}.ext-modal__summary p:last-child{margin-bottom:0}.ext-modal__history{color:var(--color-fg-subtle);font-size:var(--font-size-xs)}.toast-container{display:flex;flex-direction:column;gap:var(--space-2);max-width:380px;pointer-events:none;position:fixed;right:var(--space-4);top:var(--space-4);z-index:var(--z-toast)}.toast{align-items:flex-start;animation:toast-slide-in .16s ease-out;background:var(--color-surface);border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--color-fg);display:flex;font-family:var(--font-body);font-size:var(--font-size-sm);gap:var(--space-3);line-height:var(--line-height-normal);padding:var(--space-3) var(--space-4);pointer-events:auto}.toast--success{border-left-color:var(--color-success)}.toast--error{border-left-color:var(--color-danger-strong)}.toast--info{border-left-color:var(--color-primary)}.toast__icon{align-items:center;border-radius:var(--radius-full);color:var(--color-on-primary);display:inline-flex;flex:0 0 auto;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);height:20px;justify-content:center;width:20px}.toast--success .toast__icon{background:var(--color-success)}.toast--error .toast__icon{background:var(--color-danger-strong)}.toast--info .toast__icon{background:var(--color-primary)}.toast__message{flex:1 1 auto;word-break:break-word}.toast__dismiss{background:#0000;border:none;color:var(--color-fg-subtle);cursor:pointer;flex:0 0 auto;font-size:var(--font-size-lg);line-height:1;padding:0 var(--space-1)}.toast__dismiss:hover{color:var(--color-fg)}@keyframes toast-slide-in{0%{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.bind-modal__form{display:flex;flex-direction:column;gap:var(--space-2)}.bind-modal__serial{color:var(--color-fg);font-family:var(--font-mono);font-size:.95em}.bind-modal__current{background:var(--color-bg);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9em;padding:0 var(--space-1)}.bind-modal__hint{background:#fef3c7;border:1px solid #fcd34d;border-radius:var(--radius-md);color:#78350f;font-size:var(--font-size-sm);margin:0 0 var(--space-2);padding:var(--space-2) var(--space-3)}.bind-modal__input{font-family:var(--font-mono)}.confirm-modal__message{margin:0}.confirm-modal__gate{border-top:1px dashed var(--color-border);display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-4);padding-top:var(--space-3)}.confirm-modal__token{background:var(--color-bg);border-radius:var(--radius-sm);font-size:.95em;padding:0 var(--space-1)}.confirm-modal__gate-input,.confirm-modal__token{font-family:var(--font-mono)}.action-menu{align-items:center;display:flex;gap:var(--space-1)}.action-menu__overflow{position:relative}.action-menu__trigger{align-items:center;background:#0000;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-fg-muted);cursor:pointer;display:inline-flex;font-size:var(--font-size-base);height:28px;justify-content:center;line-height:1;min-width:28px;padding:0 var(--space-2)}.action-menu__trigger:hover:not(:disabled){background:var(--color-bg);color:var(--color-fg)}.action-menu__trigger:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.action-menu__trigger:disabled{cursor:not-allowed;opacity:.5}.action-menu__list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;min-width:180px;padding:var(--space-1);position:absolute;right:0;top:calc(100% + 4px);z-index:var(--z-dropdown)}.action-menu__item{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-fg);cursor:pointer;display:block;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);text-align:left;width:100%}.action-menu__item:focus-visible,.action-menu__item:hover:not(:disabled){background:var(--color-bg);outline:none}.action-menu__item:focus-visible{box-shadow:inset 0 0 0 2px var(--color-focus-ring)}.action-menu__item:disabled{cursor:not-allowed;opacity:.45}.action-menu__item--danger{color:var(--color-danger-strong)}.action-menu__separator{background:var(--color-border);height:1px;margin:var(--space-1) 0}.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-5);padding:var(--space-5)}.form-card__title{color:var(--color-fg);font-family:var(--font-body);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-4)}.form-grid{grid-gap:var(--space-4);align-items:end;display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.form-field{display:flex;flex-direction:column;gap:var(--space-1)}.form-label{color:var(--color-fg-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.form-input,.form-select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-fg);font-family:var(--font-body);font-size:var(--font-size-sm);line-height:var(--line-height-normal);padding:var(--space-2) var(--space-3);transition:border-color .12s ease,box-shadow .12s ease}.form-input:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0b5fff26;outline:none}.form-input:disabled,.form-select:disabled{background:var(--color-bg);color:var(--color-fg-subtle);cursor:not-allowed}.form-hint{color:var(--color-fg-subtle);font-size:var(--font-size-xs);margin-top:var(--space-1)}.form-actions{align-items:center;display:flex;gap:var(--space-2);grid-column:1/-1;justify-content:flex-end}.form-message{border-radius:var(--radius-md);font-size:var(--font-size-sm);margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3)}.form-message--error{background:#fee2e2;border:1px solid #fca5a5;color:#7f1d1d}.form-message--success{background:#dcfce7;border:1px solid #86efac;color:#14532d}.filter-row{flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-3)}.filter-field,.filter-row{align-items:center;display:flex}.filter-field{gap:var(--space-2)}.filter-field label{color:var(--color-fg-muted);font-size:var(--font-size-sm)}.license-table-root{margin-top:var(--space-5)}.filter-stack{flex-direction:column;margin-bottom:var(--space-4)}.filter-stack,.license-error{display:flex;gap:var(--space-3)}.license-error{align-items:center;background:#fee2e2;border:1px solid #fca5a5;border-radius:var(--radius-md);color:#7f1d1d;justify-content:space-between;margin:var(--space-3) 0;padding:var(--space-3) var(--space-4)}.license-error__dismiss{background:#0000;border:none;border-radius:var(--radius-sm);color:#7f1d1d;cursor:pointer;flex-shrink:0;font-size:var(--font-size-lg);height:24px;line-height:1;width:24px}.license-error__dismiss:hover{background:#fca5a5}.license-error__dismiss:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.license-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);overflow-x:auto}.license-table{border-collapse:collapse;font-size:var(--font-size-sm);width:100%}.license-table thead th{background:var(--color-bg);color:var(--color-fg-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap}.license-table tbody td,.license-table thead th{border-bottom:1px solid var(--color-border);padding:var(--space-2) var(--space-3)}.license-table tbody td{color:var(--color-fg);vertical-align:middle}.license-table tbody tr:last-child td{border-bottom:none}.license-table tbody tr.is-deleted{background:var(--color-bg);color:var(--color-fg-subtle)}.license-status{color:var(--color-fg-muted);font-size:var(--font-size-sm);margin:var(--space-3) 0}.confirm-modal__backdrop{align-items:center;background:var(--color-overlay);display:flex;inset:0;justify-content:center;padding:var(--space-4);position:fixed;z-index:var(--z-modal-backdrop)}.confirm-modal__card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:420px;padding:var(--space-5);width:100%}.confirm-modal__message{color:var(--color-fg);font-size:var(--font-size-base);line-height:var(--line-height-normal);margin:0 0 var(--space-4)}.confirm-modal__actions{display:flex;gap:var(--space-2);justify-content:flex-end}.action-row{gap:var(--space-1)}.action-row,.qr-toolbar{display:flex;flex-wrap:wrap}.qr-toolbar{gap:var(--space-2);margin-bottom:var(--space-4)}.search-highlight{background:var(--color-highlight);border-bottom:2px solid #facc15;border-radius:2px;color:var(--color-fg);font-weight:var(--font-weight-semibold);padding:0 2px}.cell-num{font-feature-settings:"tnum";color:var(--color-fg);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.cell-muted{color:var(--color-fg-subtle)}.cell-mono{font-family:var(--font-mono);font-size:var(--font-size-sm)}.license-table__select-cell,.license-table__select-col{padding:var(--space-2);text-align:center}.license-table__empty{color:var(--color-fg-muted);padding:var(--space-5);text-align:center}.license-empty{align-items:center;display:flex;flex-direction:column;gap:var(--space-2)}.license-table__sort{align-items:center;background:#0000;border:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:2px;letter-spacing:inherit;padding:0;text-transform:inherit}.license-table__sort:hover{color:var(--color-fg)}.license-table__sort:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.license-table__sort-icon{color:var(--color-fg-subtle);font-size:var(--font-size-xs)}.column-toggle{position:relative}.column-toggle__summary{align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-fg-muted);cursor:pointer;display:inline-flex;font-size:var(--font-size-sm);list-style:none;padding:var(--space-1) var(--space-3)}.column-toggle__summary::-webkit-details-marker{display:none}.column-toggle__summary:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:1px}.column-toggle__menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--space-1);left:0;min-width:200px;padding:var(--space-2);position:absolute;top:calc(100% + 4px);z-index:var(--z-dropdown)}.column-toggle__item{align-items:center;color:var(--color-fg);cursor:pointer;display:flex;font-size:var(--font-size-sm);gap:var(--space-2)}.batch-form{display:flex;flex-direction:column;gap:var(--space-4)}.batch-form__inline-options{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--space-5)}.batch-form__checkbox{align-items:center;color:var(--color-fg);display:flex;font-size:var(--font-size-sm);gap:var(--space-2)}.form-field--inline{align-items:center;flex-direction:row;gap:var(--space-2)}.batch-preview{margin-top:var(--space-2)}.batch-preview__title,.batch-results__title{color:var(--color-fg);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-2)}.batch-preview__scroll{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.batch-table{border-collapse:collapse;font-size:var(--font-size-sm);width:100%}.batch-table th{background:var(--color-bg);color:var(--color-fg-muted);font-weight:var(--font-weight-semibold);text-align:left}.batch-table td,.batch-table th{border-bottom:1px solid var(--color-border);padding:var(--space-2) var(--space-3)}.batch-table td{color:var(--color-fg);font-family:var(--font-mono)}.batch-table tr:last-child td{border-bottom:none}.batch-row--error{background:#fef2f2}.batch-row--success{background:#f0fdf4}.batch-preview__caption{color:var(--color-fg-subtle);font-size:var(--font-size-xs);font-style:italic;margin:var(--space-2) var(--space-3)}.batch-progress{margin-top:var(--space-3)}.batch-progress__label{color:var(--color-fg-muted);font-size:var(--font-size-sm);margin-bottom:var(--space-2)}.batch-progress__track{background:var(--color-border);border-radius:var(--radius-full);height:8px;overflow:hidden;width:100%}.batch-progress__bar{background:var(--color-success);border-radius:var(--radius-full);height:100%;transition:width .24s ease}.batch-results{margin-top:var(--space-4)}.batch-results__summary{align-items:center;display:flex;font-size:var(--font-size-sm);gap:var(--space-2);margin:0 0 var(--space-3)}.batch-results__divider{color:var(--color-border-strong);margin:0 var(--space-1)}.app-shell{margin:0 auto;max-width:1280px;padding:var(--space-5) var(--space-5) var(--space-7)}.app-shell__user-bar{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-3)}.app-shell__hello{color:var(--color-fg-muted);font-size:var(--font-size-sm);margin:0}.app-shell__title{color:var(--color-fg);font-family:var(--font-body);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;margin:var(--space-3) 0 var(--space-5)}.app-splash{align-items:center;background:var(--color-bg);display:flex;justify-content:center;min-height:100vh;padding:var(--space-5)}.app-splash__text{color:var(--color-fg-muted);font-size:var(--font-size-base)}.app-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:460px;padding:var(--space-6);text-align:center;width:100%}.app-card__title{color:var(--color-fg);font-family:var(--font-body);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-3)}.app-card__message{color:var(--color-fg-muted);line-height:var(--line-height-normal);margin:0 0 var(--space-4)}.error-boundary{align-items:center;display:flex;justify-content:center;min-height:60vh;padding:var(--space-5)}.error-boundary__card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:480px;padding:var(--space-6)}.error-boundary__title{color:var(--color-fg);font-family:var(--font-body);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin:0 0 var(--space-3)}.error-boundary__message{color:var(--color-fg-muted);line-height:var(--line-height-normal);margin:0 0 var(--space-4)}.error-boundary__details{color:var(--color-fg-subtle);font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.error-boundary__details summary{cursor:pointer;-webkit-user-select:none;user-select:none}.error-boundary__stack{background:var(--color-bg);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-xs);margin:var(--space-2) 0 0;padding:var(--space-3);white-space:pre-wrap;word-break:break-word}
/*# sourceMappingURL=main.d21da4e6.css.map*/