@font-face{font-family:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/lato/v25/S6uyw4BMUTPHjxAwXjeu.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/lato/v25/S6uyw4BMUTPHjx4wXg.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/lato/v25/S6u9w4BMUTPHh6UVSwaPGR_p.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/lato/v25/S6u9w4BMUTPHh6UVSwiPGQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--accent: #5902cc;--accent-hover: #4c01ad;--accent-soft: #6d28d9;--accent-dark-text: #c4a3ff;--accent-dark-border: #a78bfa;--accent-border: rgba(89, 2, 204, .18);--accent-border-strong: rgba(89, 2, 204, .2);--accent-border-active: rgba(109, 40, 217, .45);--accent-fill-08: rgba(89, 2, 204, .08);--accent-fill-10: rgba(89, 2, 204, .1);--accent-fill-12: rgba(89, 2, 204, .12);--accent-fill-14: rgba(109, 40, 217, .14);--accent-fill-20: rgba(89, 2, 204, .2);--accent-helper: #f3ecfb;--accent-shadow: 0 10px 20px rgba(89, 2, 204, .14);--accent-shadow-sm: 0 3px 10px rgba(89, 2, 204, .1);--ink: #111827;--ink-muted: #6b7280;--paper: #ffffff;--page: #ffffff;--line: rgba(89, 2, 204, .18);--surface: #ffffff;--radius: 3px;--radius-control: 4px;--space-xs: .35rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1.5rem;--err: #991b1b;--err-soft: #fef2f2;--note: #5605bb;--note-soft: #f3ecfb;--warn: #92400e;--warn-soft: #fffbeb;--loader-scrim: rgba(255, 255, 255, .72);--row-border: rgba(89, 2, 204, .1);--scrollbar-thumb: rgba(89, 2, 204, .35);--focus-ring: rgba(89, 2, 204, .35);--spinner-track: rgba(89, 2, 204, .2);--option-bg: #ffffff;--option-fg: #1f2937;--option-hover-bg: rgba(89, 2, 204, .12);--option-hover-fg: #5902cc;--color-scheme: light}@media(prefers-color-scheme:dark){:root{--accent: #c4a3ff;--accent-hover: #a78bfa;--accent-soft: #c4a3ff;--accent-border: rgba(124, 58, 237, .35);--accent-border-strong: rgba(124, 58, 237, .35);--accent-border-active: rgba(167, 139, 250, .55);--accent-fill-08: rgba(89, 2, 204, .2);--accent-fill-10: rgba(89, 2, 204, .24);--accent-fill-12: rgba(89, 2, 204, .24);--accent-fill-14: rgba(109, 40, 217, .28);--accent-fill-20: rgba(89, 2, 204, .28);--accent-helper: #1f1430;--accent-shadow: 0 10px 24px rgba(0, 0, 0, .35);--accent-shadow-sm: 0 6px 18px rgba(0, 0, 0, .35);--ink: #f3f4f6;--ink-muted: #d1d5db;--paper: #171717;--page: #171717;--line: rgba(124, 58, 237, .35);--surface: #171717;--err: #fecaca;--err-soft: #4c1515;--note: #c4a3ff;--note-soft: #1f1430;--warn: #fde68a;--warn-soft: #4a2f0c;--loader-scrim: rgba(23, 23, 23, .78);--row-border: rgba(124, 58, 237, .22);--scrollbar-thumb: rgba(124, 58, 237, .45);--focus-ring: rgba(167, 139, 250, .45);--spinner-track: rgba(124, 58, 237, .35);--option-bg: #171717;--option-fg: #ffffff;--option-hover-bg: rgba(89, 2, 204, .2);--option-hover-fg: #ffffff;--color-scheme: dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--page);color:var(--ink);color-scheme:var(--color-scheme)}body{font-family:Lato,Segoe UI,sans-serif;line-height:1.45;-webkit-font-smoothing:antialiased}h1{font-family:Lato,Segoe UI,sans-serif;font-size:1.25rem;font-weight:700;margin:0 0 .35rem;color:var(--ink)}h2{font-family:Lato,Segoe UI,sans-serif;font-size:.95rem;font-weight:700;margin:1rem 0 .35rem;color:var(--accent)}.lead{color:var(--ink-muted);max-width:46rem;font-size:.875rem;margin:0 0 1rem}.btn-primary,.primary,button.primary,a.primary{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;margin-top:.5rem;background:#5902cc;color:#fff;border:1px solid #5902cc;padding:.45rem .95rem;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;text-decoration:none;border-radius:var(--radius-control);transition:background .15s ease,border-color .15s ease}.btn-primary:hover:not(:disabled),.primary:hover:not(:disabled),button.primary:hover:not(:disabled),a.primary:hover{background:#4c01ad;border-color:#4c01ad}@media(prefers-color-scheme:dark){.btn-primary,.primary,button.primary,a.primary{background:#5902cc;border-color:#a78bfa8c;color:#fff}.btn-primary:hover:not(:disabled),.primary:hover:not(:disabled),button.primary:hover:not(:disabled),a.primary:hover{background:#4c01ad;border-color:#a78bfa}}.btn-primary:disabled,.primary:disabled{opacity:.45;cursor:not-allowed}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.4rem .85rem;font:inherit;font-weight:600;font-size:.875rem;border-radius:var(--radius-control);text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .15s ease,color .15s ease,border-color .15s ease}.btn-secondary,.secondary,button.secondary{background:var(--accent-fill-08);color:var(--accent);border:1px solid var(--accent-border-strong);border-radius:var(--radius-control);padding:.4rem .85rem;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer}.btn-secondary:hover,.secondary:hover,button.secondary:hover{background:var(--accent-fill-14);color:var(--accent)}.btn-ghost{background:transparent;color:var(--accent);border-color:var(--accent-border-strong)}.btn-ghost:hover{background:var(--accent-fill-08)}.card{background:var(--surface);border:1px solid var(--accent-border);border-radius:var(--radius);padding:.75rem .85rem;margin:.75rem 0 1rem;box-shadow:var(--accent-shadow-sm)}.card.toolbar{background:var(--surface)}.ui-card{background:var(--surface);border:1px solid var(--accent-border);border-radius:var(--radius);padding:.75rem .85rem;margin:.75rem 0 1rem;box-shadow:var(--accent-shadow-sm)}.ui-table-wrap{overflow:auto;max-height:min(62vh,34rem);margin-bottom:1.25rem;border:1px solid var(--accent-border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--accent-shadow-sm);scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}.ui-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.ui-table .num{text-align:right;font-variant-numeric:tabular-nums}.ui-icon{display:inline-block;width:1rem;height:1rem;flex:none;vertical-align:-.125em}.ui-pager{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;margin:-.55rem 0 1.25rem;font-size:.8125rem;color:var(--ink-muted)}.ui-pager button{display:inline-flex;align-items:center;gap:.3rem;padding:.28rem .65rem;font:inherit;font-size:.75rem;font-weight:700;color:var(--accent);background:var(--surface);border:1px solid var(--accent-border-strong);border-radius:var(--radius-control);cursor:pointer}.ui-pager button:hover:not(:disabled){background:var(--accent-fill-08)}.ui-pager button:disabled{opacity:.4;cursor:not-allowed}.ui-empty{margin:.75rem 0;font-size:.875rem;color:var(--ink-muted)}.actions-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem 1rem;flex-wrap:wrap;margin:1rem 0 1.25rem}.actions-bar .primary{margin-top:0}.actions-right,.actions-left{display:flex;flex-wrap:wrap;gap:.5rem}.actions-right{margin-left:auto}.spinner{width:1.15rem;height:1.15rem;border:2px solid var(--spinner-track);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex:none}.spinner.lg{width:2rem;height:2rem;border-width:3px}.inline-loader{display:flex;align-items:center;gap:.65rem;color:var(--ink-muted);margin:.75rem 0 1rem;font-size:.875rem}.page-loader{position:fixed;inset:0;z-index:40;background:var(--loader-scrim);backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;color:var(--ink);font-weight:600}.page-loader .progress-stage{margin:0;font-size:.875rem;font-weight:500;color:var(--muted, #64748b);text-transform:capitalize}@keyframes spin{to{transform:rotate(360deg)}}.banner{padding:.65rem .8rem;margin:.75rem 0;border-radius:var(--radius);border:1px solid transparent;font-size:.875rem}.banner.error{background:var(--err-soft);color:var(--err);border-color:#dc262640}.banner.note{background:var(--note-soft);color:var(--note);border-color:var(--accent-border)}.hint{font-size:.8125rem;color:var(--ink-muted);margin:0 0 .75rem}.hint.warn{color:var(--warn)}.table-wrap{overflow:auto;margin:.5rem 0 1.15rem;border:1px solid var(--accent-border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--accent-shadow-sm);scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}table{width:100%;border-collapse:collapse;font-size:.75rem}th,td{text-align:left;padding:.35rem .5rem;border-bottom:1px solid var(--row-border);vertical-align:middle}th{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--accent);background:var(--accent-fill-20);position:sticky;top:0;z-index:2}tbody tr:hover{background:var(--accent-fill-08)}input,textarea{font:inherit;font-weight:400;font-size:.75rem;color:var(--ink);background:var(--surface);border:1px solid var(--accent-border-strong);border-radius:var(--radius-control);padding:.35rem .5rem;min-height:2rem;box-shadow:var(--accent-shadow-sm);transition:background .15s ease,box-shadow .15s ease}select{font:inherit;font-weight:400;font-size:.75rem;color:var(--ink);background-color:var(--surface);border:1px solid var(--accent-border-strong);border-radius:var(--radius-control);padding:.35rem 1.6rem .35rem .5rem;min-height:2rem;box-shadow:var(--accent-shadow-sm);appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--accent) 50%),linear-gradient(135deg,var(--accent) 50%,transparent 50%);background-position:calc(100% - 14px) calc(50% - 2px),calc(100% - 10px) calc(50% - 2px);background-size:4px 4px,4px 4px;background-repeat:no-repeat;transition:background-color .15s ease,box-shadow .15s ease;color-scheme:var(--color-scheme)}input:hover,textarea:hover{background:var(--accent-fill-08)}select:hover{background-color:var(--accent-fill-08)}input:focus,select:focus,textarea:focus{outline:none;box-shadow:0 0 0 2px var(--focus-ring)}input[type=number]{-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}select option{background-color:var(--option-bg);color:var(--option-fg)}code{display:block;font-size:.6875rem;color:var(--ink-muted)}.confirm-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:1rem}.confirm-backdrop{position:absolute;inset:0;background:#0306128c;backdrop-filter:blur(2px)}.confirm-dialog{position:relative;z-index:1;width:min(24rem,100vw - 2rem);background:var(--surface);border:1px solid var(--accent-border);border-radius:var(--radius-control);box-shadow:var(--accent-shadow)}.confirm-dialog header{padding:.85rem 1rem;border-bottom:1px solid var(--line)}.confirm-dialog header h3{margin:0;font-size:.9375rem;font-weight:700;color:var(--ink)}.confirm-dialog header p{margin:.2rem 0 0;font-size:.75rem;color:var(--ink-muted)}.confirm-dialog .confirm-body{padding:.9rem 1rem;margin:0;font-size:.8125rem;line-height:1.45;color:var(--ink)}.confirm-dialog .version-name-field{display:block;padding:0 1rem .9rem;font-size:.75rem;font-weight:650;color:var(--ink)}.confirm-dialog .version-name-field input{display:block;width:100%;margin-top:.35rem;padding:.45rem .55rem;border:1px solid var(--accent-border);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;font-weight:450}.confirm-dialog footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--line)}@media(prefers-color-scheme:dark){.confirm-backdrop{background:#000000b3}.confirm-dialog{background:#171717;border-color:#7c3aed59}.confirm-dialog header h3,.confirm-dialog .confirm-body{color:#f3f4f6}.confirm-dialog header p{color:#9ca3af}}
