@charset "UTF-8";:root{--ui-primary-50: #eef2ff;--ui-primary-100: #e0e7ff;--ui-primary-300: #a5b4fc;--ui-primary-400: #818cf8;--ui-primary-500: #6366f1;--ui-primary-600: #4f46e5;--ui-primary-700: #4338ca;--ui-neutral-0: #ffffff;--ui-neutral-50: #f8fafc;--ui-neutral-100: #f1f5f9;--ui-neutral-200: #e2e8f0;--ui-neutral-300: #cbd5e1;--ui-neutral-400: #94a3b8;--ui-neutral-500: #64748b;--ui-neutral-700: #334155;--ui-neutral-750: #253347;--ui-neutral-800: #1e293b;--ui-neutral-850: #162032;--ui-neutral-900: #0f172a;--ui-danger-100: #fee2e2;--ui-danger-400: #f87171;--ui-danger-500: #ef4444;--ui-danger-600: #dc2626;--ui-danger-700: #b91c1c;--ui-danger-800: #991b1b;--ui-success-100: #dcfce7;--ui-success-400: #4ade80;--ui-success-500: #22c55e;--ui-success-600: #16a34a;--ui-success-700: #15803d;--ui-success-800: #166534;--ui-warning-100: #fef3c7;--ui-warning-400: #fbbf24;--ui-warning-500: #f59e0b;--ui-warning-700: #b45309;--ui-warning-800: #92400e;--ui-info-100: #dbeafe;--ui-info-400: #60a5fa;--ui-info-500: #3b82f6;--ui-info-700: #1d4ed8;--ui-accent-100: #ede9fe;--ui-accent-200: #ddd6fe;--ui-accent-300: #c4b5fd;--ui-accent-500: #8b5cf6;--ui-accent-600: #7c3aed;--ui-accent-700: #6d28d9;--ui-bg-page: var(--ui-neutral-100);--ui-bg-card: var(--ui-neutral-0);--ui-bg-hover: var(--ui-neutral-50);--ui-bg-subtle: var(--ui-neutral-100);--ui-bg-input: var(--ui-neutral-0);--ui-surface-bg: var(--ui-neutral-100);--ui-text-heading: var(--ui-neutral-800);--ui-text-primary: var(--ui-neutral-700);--ui-text-muted: var(--ui-neutral-500);--ui-text-faint: var(--ui-neutral-400);--ui-text-on-primary: var(--ui-neutral-0);--ui-border: var(--ui-neutral-200);--ui-border-subtle: var(--ui-neutral-100);--ui-action-bg: var(--ui-primary-600);--ui-action-bg-hover: var(--ui-primary-700);--ui-action-text: var(--ui-primary-600);--ui-danger-text: var(--ui-danger-700);--ui-focus-ring-color: var(--ui-primary-500);--ui-focus-ring: 0 0 0 3px color-mix(in srgb, var(--ui-primary-500) 12%, transparent);--ui-danger-ring: 0 0 0 3px color-mix(in srgb, var(--ui-danger-500) 10%, transparent);--ui-disabled-opacity: .6;--ui-badge-info-bg: #e0f2fe;--ui-badge-info-bg-hover: #bae6fd;--ui-badge-info-text: #0369a1;--ui-badge-accent-bg: var(--ui-accent-100);--ui-badge-accent-bg-hover: var(--ui-accent-200);--ui-badge-accent-text: var(--ui-accent-700);--ui-badge-success-bg: var(--ui-success-100);--ui-badge-success-text: var(--ui-success-800);--ui-badge-danger-bg: var(--ui-danger-100);--ui-badge-danger-text: var(--ui-danger-800);--ui-badge-warning-bg: #fef9c3;--ui-badge-warning-text: #854d0e;--ui-space-1: 4px;--ui-space-2: 8px;--ui-space-3: 12px;--ui-space-4: 16px;--ui-space-5: 24px;--ui-space-6: 32px;--ui-radius-xs: 4px;--ui-radius-sm: 6px;--ui-radius-md: 8px;--ui-radius-lg: 12px;--ui-radius-pill: 999px;--ui-radius-circle: 50%;--ui-radius-input: var(--ui-radius-lg);--ui-btn-radius: var(--ui-radius-md);--ui-btn-radius-sm: var(--ui-radius-sm);--ui-btn-radius-icon: var(--ui-radius-sm);--ui-btn-padding: .5rem 1rem;--ui-btn-padding-sm: .35rem .75rem;--ui-btn-padding-lg: .65rem 1.25rem;--ui-btn-min-height: auto;--ui-btn-min-height-sm: auto;--ui-btn-min-height-lg: 2.75rem;--ui-btn-icon-size: 30px;--ui-btn-font-weight: var(--ui-font-weight-semibold);--ui-btn-font-weight-secondary: normal;--ui-btn-primary-shadow: none;--ui-font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ui-font-size-xs: .75rem;--ui-font-size-sm: .8125rem;--ui-font-size-md: .875rem;--ui-font-size-lg: .9375rem;--ui-font-size-xl: 1.125rem;--ui-font-weight-medium: 500;--ui-font-weight-semibold: 600;--ui-font-weight-bold: 700;--ui-shadow-sm: 0 1px 3px rgba(0, 0, 0, .12);--ui-shadow-md: 0 4px 20px rgba(0, 0, 0, .25);--ui-shadow-lg: 0 20px 60px rgba(0, 0, 0, .25);--ui-z-overlay: 2000;--ui-z-dialog: 2500;--ui-z-toast: 9999;--ui-transition-fast: .12s;--ui-transition-base: .2s;--ui-press-scale: .97;--ui-press-scale-icon: .92;color-scheme:light}[data-theme=light]{color-scheme:light}[data-theme=dark]{--ui-bg-page: var(--ui-neutral-900);--ui-bg-card: var(--ui-neutral-800);--ui-bg-hover: var(--ui-neutral-750);--ui-bg-subtle: var(--ui-neutral-850);--ui-bg-input: var(--ui-neutral-750);--ui-surface-bg: var(--ui-neutral-850);--ui-text-heading: var(--ui-neutral-100);--ui-text-primary: var(--ui-neutral-300);--ui-text-muted: var(--ui-neutral-400);--ui-text-faint: var(--ui-neutral-500);--ui-border: var(--ui-neutral-700);--ui-border-subtle: var(--ui-neutral-750);--ui-action-text: var(--ui-primary-400);--ui-danger-text: var(--ui-danger-400);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:var(--ui-border) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--ui-border);border-radius:var(--ui-radius-pill)}*::-webkit-scrollbar-thumb:hover{background:var(--ui-text-faint)}html,body{height:100%;margin:0;font-family:var(--ui-font-family);font-size:16px;-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:manipulation}html{overflow-x:hidden}body{color:var(--ui-text-heading);background:var(--ui-bg-page)}.ui-theme-animate,.ui-theme-animate *{transition:background-color .3s ease,color .3s ease,border-color .3s ease!important}@media(prefers-reduced-motion:reduce){.ui-theme-animate,.ui-theme-animate *{transition:none!important}}.cdk-visually-hidden{position:absolute;left:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0;outline:0;white-space:nowrap;-webkit-appearance:none;-moz-appearance:none}.btn-primary,.btn-secondary,.btn-danger,.btn-outline,.btn-danger-outline,.btn-ghost{min-height:var(--ui-btn-min-height);padding:var(--ui-btn-padding);border-radius:var(--ui-btn-radius);font-size:var(--ui-font-size-lg);font-family:inherit;cursor:pointer;text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),color var(--ui-transition-fast),box-shadow var(--ui-transition-fast),transform var(--ui-transition-fast) ease-out}.btn-secondary,.btn-outline,.btn-danger-outline,.btn-ghost{display:inline-flex;align-items:center;gap:.4rem}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled,.btn-outline:disabled,.btn-danger-outline:disabled,.btn-ghost:disabled,.btn-icon:disabled{opacity:var(--ui-disabled-opacity);cursor:not-allowed}.btn-primary[aria-disabled=true],.btn-secondary[aria-disabled=true],.btn-danger[aria-disabled=true],.btn-outline[aria-disabled=true],.btn-danger-outline[aria-disabled=true],.btn-ghost[aria-disabled=true],.btn-icon[aria-disabled=true]{opacity:var(--ui-disabled-opacity);cursor:not-allowed;pointer-events:none}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-danger:focus-visible,.btn-outline:focus-visible,.btn-danger-outline:focus-visible,.btn-ghost:focus-visible,.btn-icon:focus-visible{outline:2px solid var(--ui-focus-ring-color);outline-offset:2px}.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled),.btn-danger:active:not(:disabled),.btn-outline:active:not(:disabled),.btn-danger-outline:active:not(:disabled),.btn-ghost:active:not(:disabled){transform:scale(var(--ui-press-scale))}.btn-icon:active:not(:disabled){transform:scale(var(--ui-press-scale-icon))}.btn-primary{background:var(--ui-action-bg);color:var(--ui-text-on-primary);border:none;font-weight:var(--ui-btn-font-weight);box-shadow:var(--ui-btn-primary-shadow)}.btn-primary:disabled,.btn-primary[aria-disabled=true]{box-shadow:none}@media(hover:hover){.btn-primary:hover:not(:disabled){background:var(--ui-action-bg-hover)}}.btn-primary:active:not(:disabled){background:color-mix(in srgb,var(--ui-action-bg-hover) 85%,black)}.btn-secondary{background:var(--ui-bg-subtle);color:var(--ui-text-primary);border:1px solid var(--ui-border);font-weight:var(--ui-btn-font-weight-secondary)}@media(hover:hover){.btn-secondary:hover:not(:disabled){background:var(--ui-bg-hover)}}.btn-secondary:active:not(:disabled){background:color-mix(in srgb,var(--ui-text-primary) 10%,var(--ui-bg-subtle))}.btn-danger{background:var(--ui-danger-600);color:var(--ui-text-on-primary);border:none;font-weight:var(--ui-btn-font-weight)}@media(hover:hover){.btn-danger:hover:not(:disabled){background:var(--ui-danger-700)}}.btn-danger:active:not(:disabled){background:var(--ui-danger-800)}.btn-danger:focus-visible{outline-color:var(--ui-danger-500)}.btn-ghost{background:transparent;color:var(--ui-action-text);border:none;font-weight:var(--ui-btn-font-weight)}@media(hover:hover){.btn-ghost:hover:not(:disabled){background:color-mix(in srgb,var(--ui-action-text) 8%,transparent)}}.btn-ghost:active:not(:disabled){background:color-mix(in srgb,var(--ui-action-text) 14%,transparent)}.btn-outline{background:var(--ui-bg-card);color:var(--ui-action-text);border:2px solid var(--ui-action-text);font-weight:var(--ui-btn-font-weight)}@media(hover:hover){.btn-outline:hover:not(:disabled){background:color-mix(in srgb,var(--ui-action-text) 8%,var(--ui-bg-card))}}.btn-outline:active:not(:disabled){background:color-mix(in srgb,var(--ui-action-text) 16%,var(--ui-bg-card))}.btn-danger-outline{background:var(--ui-bg-card);color:var(--ui-danger-text);border:1px solid color-mix(in srgb,var(--ui-danger-text) 55%,transparent);font-weight:var(--ui-btn-font-weight)}@media(hover:hover){.btn-danger-outline:hover:not(:disabled){background:color-mix(in srgb,var(--ui-danger-500) 10%,var(--ui-bg-card))}}.btn-danger-outline:active:not(:disabled){background:color-mix(in srgb,var(--ui-danger-500) 18%,var(--ui-bg-card))}.btn-danger-outline:focus-visible{outline-color:var(--ui-danger-500)}.btn-sm{min-height:var(--ui-btn-min-height-sm);padding:var(--ui-btn-padding-sm);font-size:var(--ui-font-size-sm);border-radius:var(--ui-btn-radius-sm)}.btn-lg{min-height:var(--ui-btn-min-height-lg);padding:var(--ui-btn-padding-lg)}.btn-block{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%}.btn-pill{border-radius:var(--ui-radius-pill)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--ui-btn-icon-size);height:var(--ui-btn-icon-size);border-radius:var(--ui-btn-radius-icon);border:none;background:transparent;color:var(--ui-text-muted);cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color var(--ui-transition-fast),color var(--ui-transition-fast),transform var(--ui-transition-fast) ease-out}.btn-icon>svg{display:block}@media(hover:hover){.btn-icon:hover:not(:disabled){background:var(--ui-bg-subtle);color:var(--ui-text-primary)}}.btn-icon:active:not(:disabled){background:color-mix(in srgb,var(--ui-text-primary) 12%,var(--ui-bg-subtle));color:var(--ui-text-primary)}.btn-icon.btn-danger{background:transparent;color:var(--ui-text-muted)}@media(hover:hover){.btn-icon.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--ui-danger-500) 8%,transparent);color:var(--ui-danger-500)}}.btn-icon.btn-danger:active:not(:disabled){background:color-mix(in srgb,var(--ui-danger-500) 14%,transparent);color:var(--ui-danger-500)}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;inset:0;margin:auto;width:14px;height:14px;border:2px solid currentcolor;border-top-color:transparent;border-radius:var(--ui-radius-circle);animation:ui-spin .6s linear infinite}.btn-primary.btn-loading:after,.btn-danger.btn-loading:after{border-color:var(--ui-text-on-primary);border-top-color:transparent}.btn-secondary.btn-loading:after,.btn-outline.btn-loading:after,.btn-danger-outline.btn-loading:after,.btn-ghost.btn-loading:after,.btn-icon.btn-loading:after{border-color:var(--ui-text-muted);border-top-color:transparent}@keyframes ui-spin{to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.btn-loading:after{animation-duration:2s}.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled),.btn-danger:active:not(:disabled),.btn-outline:active:not(:disabled),.btn-danger-outline:active:not(:disabled),.btn-ghost:active:not(:disabled),.btn-icon:active:not(:disabled){transform:none}}.badges{display:flex;flex-wrap:wrap;gap:.3rem}.badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:var(--ui-radius-pill);font-size:.8rem;font-weight:var(--ui-font-weight-medium)}.badge.badge-info,.badge.badge-role{background:var(--ui-badge-info-bg);color:var(--ui-badge-info-text)}.badge.badge-accent,.badge.badge-perm{background:var(--ui-badge-accent-bg);color:var(--ui-badge-accent-text)}.badge.badge-success,.badge.badge-active{background:var(--ui-badge-success-bg);color:var(--ui-badge-success-text)}.badge.badge-danger,.badge.badge-inactive{background:var(--ui-badge-danger-bg);color:var(--ui-badge-danger-text)}.badge.badge-warning,.badge.badge-warn{background:var(--ui-badge-warning-bg);color:var(--ui-badge-warning-text)}.badge.removable{cursor:pointer;gap:.3rem}.badge.removable.badge-info:hover,.badge.removable.badge-role:hover{background:var(--ui-badge-info-bg-hover)}.badge.removable.badge-accent:hover,.badge.removable.badge-perm:hover{background:var(--ui-badge-accent-bg-hover)}input,textarea,select{background:var(--ui-bg-input);color:var(--ui-text-primary);border-color:var(--ui-border);font-family:inherit}input::placeholder,textarea::placeholder{color:var(--ui-text-faint);opacity:.6}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:var(--ui-text-primary);-webkit-box-shadow:0 0 0 1000px var(--ui-bg-input) inset;transition:background-color 9999s ease-in-out 0s}.form-page{max-width:600px}.form-card{background:var(--ui-bg-card);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);padding:1.75rem 2rem;box-shadow:0 1px 4px #0000000a}.form-card+.form-card{margin-top:1.25rem}.form-header{margin-bottom:1.75rem}.form-header h2{margin:0 0 .25rem;font-size:var(--ui-font-size-xl);font-weight:var(--ui-font-weight-bold);color:var(--ui-text-primary)}.form-header .form-subtitle{margin:0;font-size:var(--ui-font-size-md);color:var(--ui-text-muted)}.fields{display:grid;gap:1.125rem}.fields.cols-2{grid-template-columns:1fr 1fr}.fields.cols-3{grid-template-columns:1fr 1fr 1fr}.field{display:flex;flex-direction:column;gap:.4rem}.f-label{display:flex;align-items:center;gap:.5rem;font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-semibold);color:var(--ui-text-primary)}.f-optional,.optional{font-weight:400;font-size:var(--ui-font-size-xs);color:var(--ui-text-faint)}.f-hint{font-size:var(--ui-font-size-xs);color:var(--ui-text-muted)}.f-error{font-size:var(--ui-font-size-xs);color:var(--ui-danger-600)}.form-footer{display:flex;justify-content:flex-end;gap:.625rem;margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--ui-border)}.f-input{width:100%;height:40px;padding:0 .875rem;border:1.5px solid var(--ui-border);border-radius:var(--ui-radius-input);font-size:var(--ui-font-size-lg);background:var(--ui-bg-input);color:var(--ui-text-primary);outline:none;transition:border-color .15s,box-shadow .15s}textarea.f-input{height:auto;min-height:88px;padding:.625rem .875rem;resize:vertical}select.f-input{cursor:pointer}.f-input::placeholder{color:var(--ui-text-faint);opacity:.6}.f-input:focus{border-color:var(--ui-focus-ring-color);box-shadow:var(--ui-focus-ring)}.f-input:disabled{opacity:var(--ui-disabled-opacity);cursor:not-allowed}.f-input.is-invalid,.f-input[aria-invalid=true]{border-color:var(--ui-danger-500)}.f-input.is-invalid:focus,.f-input[aria-invalid=true]:focus{box-shadow:var(--ui-danger-ring)}.checkbox-row{display:flex;align-items:center;gap:.625rem;font-size:var(--ui-font-size-md);color:var(--ui-text-primary)}.f-checkbox{appearance:none;width:18px;height:18px;margin:0;flex-shrink:0;border:1.5px solid var(--ui-border);border-radius:var(--ui-radius-xs);background:var(--ui-bg-input);cursor:pointer;display:inline-grid;place-content:center;transition:background var(--ui-transition-fast),border-color var(--ui-transition-fast)}.f-checkbox:before{content:"";width:10px;height:10px;transform:scale(0);transform-origin:center;transition:transform var(--ui-transition-fast);background:var(--ui-text-on-primary);clip-path:polygon(14% 44%,0 65%,40% 100%,100% 16%,82% 0,37% 62%)}.f-checkbox:checked,.f-checkbox:indeterminate{background:var(--ui-action-bg);border-color:var(--ui-action-bg)}.f-checkbox:checked:before{transform:scale(1)}.f-checkbox:indeterminate:before{transform:scale(1);clip-path:polygon(0 40%,100% 40%,100% 60%,0 60%)}.f-checkbox:focus-visible{outline:2px solid var(--ui-focus-ring-color);outline-offset:2px}.f-checkbox:disabled{opacity:var(--ui-disabled-opacity);cursor:not-allowed}.checkbox-row:has(.f-checkbox:disabled){color:var(--ui-text-faint);cursor:not-allowed}.switch-row{display:flex;align-items:center;gap:.625rem}.switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;inset:0;background:var(--ui-border);border-radius:22px;cursor:pointer;transition:background var(--ui-transition-base)}.switch-slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:var(--ui-neutral-0);border-radius:var(--ui-radius-circle);transition:transform var(--ui-transition-base)}.switch input:checked+.switch-slider{background:var(--ui-primary-500)}.switch input:checked+.switch-slider:before{transform:translate(18px)}.switch input:focus-visible+.switch-slider{outline:2px solid var(--ui-focus-ring-color);outline-offset:2px}.switch input:disabled+.switch-slider{opacity:.45;cursor:not-allowed}.switch-row:has(input:disabled){color:var(--ui-text-faint);cursor:not-allowed}.f-range{appearance:none;width:100%;height:22px;margin:0;background:transparent;cursor:pointer}.f-range::-webkit-slider-runnable-track{height:6px;border-radius:var(--ui-radius-pill);background:var(--ui-border)}.f-range::-moz-range-track{height:6px;border-radius:var(--ui-radius-pill);background:var(--ui-border)}.f-range::-webkit-slider-thumb{appearance:none;width:16px;height:16px;margin-top:-5px;border:none;border-radius:var(--ui-radius-circle);background:var(--ui-action-bg)}.f-range::-moz-range-thumb{width:16px;height:16px;border:none;border-radius:var(--ui-radius-circle);background:var(--ui-action-bg)}.f-range:focus-visible{outline:2px solid var(--ui-focus-ring-color);outline-offset:2px;border-radius:var(--ui-radius-sm)}.f-range:disabled{opacity:var(--ui-disabled-opacity);cursor:not-allowed}@media(max-width:768px){input,select,textarea,.f-input{font-size:16px}}.table-card{background:var(--ui-bg-card);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);overflow-x:auto;overflow-y:hidden;box-shadow:0 1px 4px #0000000d}.table-card--bare{background:transparent;border:none;border-radius:0;box-shadow:none}.table-card table{width:100%;border-collapse:collapse}.table-card caption{text-align:left;padding:.875rem 1rem 0;font-size:var(--ui-font-size-md);color:var(--ui-text-muted)}.table-card thead th{padding:.65rem 1rem;text-align:left;font-size:.72rem;font-weight:var(--ui-font-weight-semibold);color:var(--ui-text-muted);text-transform:uppercase;letter-spacing:.06em;background:var(--ui-bg-subtle);border-bottom:1px solid var(--ui-border)}.table-card thead th.th-actions{text-align:right}.table-card tbody td{padding:.875rem 1rem;border-bottom:1px solid var(--ui-border-subtle);font-size:var(--ui-font-size-lg);color:var(--ui-text-primary);vertical-align:middle}.table-card tbody td.td-actions{text-align:right;white-space:nowrap}.table-card tbody tr:last-child td{border-bottom:none}.table-card tbody tr:hover:not(.skeleton-row){background:var(--ui-bg-hover)}tr.clickable-row{cursor:pointer}tr.clickable-row:hover>td{background:var(--ui-bg-hover)}tr.clickable-row:focus-visible{outline:2px solid var(--ui-focus-ring-color);outline-offset:-2px}.th-sort{display:inline-flex;align-items:center;gap:.35rem;padding:0;background:none;border:none;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.th-sort:hover{color:var(--ui-text-primary)}.th-sort .th-sort-idle{opacity:.35}.th-sort:hover .th-sort-idle{opacity:.7}.th-sort:focus-visible{outline:2px solid var(--ui-focus-ring-color);outline-offset:2px}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;border-bottom:1px solid var(--ui-border);flex-wrap:wrap}.toolbar-right{display:flex;align-items:center;gap:.5rem;margin-left:auto}.table-count{font-size:var(--ui-font-size-md);color:var(--ui-text-muted);font-weight:var(--ui-font-weight-medium)}.search-wrap{position:relative;display:flex;align-items:center}.search-wrap>ui-icon,.search-wrap>svg{position:absolute;left:.625rem;top:50%;transform:translateY(-50%);color:var(--ui-text-faint);pointer-events:none}.table-search,.table-filter{border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);font-size:var(--ui-font-size-md);background:var(--ui-bg-input);color:var(--ui-text-primary);transition:border-color .15s,box-shadow .15s}.table-search{width:210px;padding:.45rem .75rem .45rem 2rem}.table-filter{padding:.45rem .65rem;cursor:pointer}.table-search:focus,.table-filter:focus{outline:none;border-color:var(--ui-focus-ring-color);box-shadow:var(--ui-focus-ring)}.table-search::placeholder{color:var(--ui-text-faint);opacity:.6}@media(max-width:640px){.table-card--stacked thead{display:none}.table-card--stacked tbody tr.has-row-card>td:not(.row-card-cell){display:none}.table-card--stacked tbody tr.has-row-card>td.row-card-cell{display:block;padding:.85rem 1rem;text-align:left}.table-card--stacked tbody tr.has-row-card{padding:0}.table-card--stacked table,.table-card--stacked tbody,.table-card--stacked tr,.table-card--stacked td{display:block;width:100%}.table-card--stacked tbody tr{padding:.5rem 0;border-bottom:1px solid var(--ui-border)}.table-card--stacked tbody td{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.45rem 1rem;border:none;text-align:right}.table-card--stacked tbody td[data-label]:before{content:attr(data-label);flex-shrink:0;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ui-text-muted);text-align:left}.table-card--stacked tbody td>*{min-width:0;overflow-wrap:anywhere}.table-card--stacked tbody tr:not(.skeleton-row) td:not([data-label]):not([colspan]){justify-content:flex-end;flex-wrap:wrap;gap:.5rem}.table-card--stacked tbody td[colspan]{display:block;text-align:left}.table-card--stacked tfoot{display:block;border-top:1px solid var(--ui-border)}.table-card--stacked tfoot tr{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;padding:.6rem 1rem}.table-card--stacked tfoot td,.table-card--stacked tfoot th{display:block;padding:0;border:none}.table-card--stacked tfoot td:empty,.table-card--stacked tfoot th:empty{display:none}}.row-card-cell{display:none}@media(max-width:640px){.toolbar-right{flex-wrap:wrap;width:100%}.toolbar-right .search-wrap,.table-search{flex:1 1 100%;width:100%}}@keyframes ui-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skel{position:relative;display:block;height:13px;border-radius:var(--ui-radius-sm);background:var(--ui-border-subtle);overflow:hidden}.skel:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--ui-bg-hover),transparent);animation:ui-shimmer 1.4s ease-in-out infinite}.skel-avatar{width:32px;height:32px;border-radius:var(--ui-radius-circle);flex-shrink:0}@media(prefers-reduced-motion:reduce){.skel:after{animation:none}}.ui-img{position:relative;overflow:hidden;background:var(--ui-border-subtle)}.ui-img:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--ui-bg-hover),transparent);animation:ui-shimmer 1.4s ease-in-out infinite}.ui-img:has(>img.is-loaded,>iframe.is-loaded,>video.is-loaded):before{display:none}.ui-img>img,.ui-img>iframe,.ui-img>video{position:relative;opacity:0;transition:opacity .35s ease}.ui-img>img.is-loaded,.ui-img>iframe.is-loaded,.ui-img>video.is-loaded{opacity:1}@media(prefers-reduced-motion:reduce){.ui-img:before{animation:none}.ui-img>img,.ui-img>iframe,.ui-img>video{transition:none}}.empty-state{text-align:center;padding:3.5rem 1rem!important;color:var(--ui-text-muted)}.empty-state svg{display:block;margin-inline:auto;margin-bottom:.875rem;color:var(--ui-text-faint)}.empty-state p{margin:0 0 1.25rem;font-size:var(--ui-font-size-lg);color:var(--ui-text-muted)}.empty-state .empty-title{margin-bottom:.35rem;color:var(--ui-text-heading);font-weight:var(--ui-font-weight-semibold)}.empty-state .empty-hint{max-width:36ch;margin:0 auto 1.25rem;font-size:var(--ui-font-size-md)}.empty-state ui-icon{display:flex;justify-content:center;margin-bottom:.875rem;color:var(--ui-text-faint)}.empty-state ui-icon svg{margin-bottom:0}.empty{text-align:center;color:var(--ui-text-faint);padding:2rem!important}.page{width:100%}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:1.25rem}.page h1{margin:0;font-size:1.5rem;color:var(--ui-text-heading)}.page h2{margin:0 0 1rem;font-size:1.125rem;color:var(--ui-text-heading)}.page h3{margin:0 0 .75rem;font-size:1rem;color:var(--ui-text-heading)}.muted{color:var(--ui-text-faint)}.form-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.field-hint{display:block;margin-top:.3rem;font-size:.8125rem;color:var(--ui-text-faint)}.is-loading{gap:0}.is-loading:before{content:"";display:inline-block;flex-shrink:0;width:.85em;height:.85em;margin-right:.4rem;vertical-align:-.1em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:ui-layout-spin .6s linear infinite}.is-loading>svg{display:none}.detail-aside-layout{display:flex;gap:1.5rem;align-items:flex-start;margin-top:1.25rem}.detail-aside-nav{position:sticky;top:1rem;display:flex;flex-direction:column;flex-shrink:0;gap:2px;width:200px;padding:.5rem;background:var(--ui-bg-card);border:1px solid var(--ui-border);border-radius:10px}.aside-nav-btn{display:flex;align-items:center;gap:8px;width:100%;padding:.55rem .75rem;background:none;border:none;border-radius:7px;font-size:.875rem;font-weight:500;color:var(--ui-text-muted);text-align:left;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .12s,color .12s,transform var(--ui-transition-fast, .12s) ease-out}@media(hover:hover){.aside-nav-btn:hover:not(:disabled){background:var(--ui-bg-subtle);color:var(--ui-text-heading)}}.aside-nav-btn:active:not(:disabled){transform:scale(var(--ui-press-scale))}.aside-nav-btn:disabled{opacity:.45;cursor:not-allowed}.aside-nav-btn.active{background:color-mix(in srgb,var(--ui-action-text) 10%,transparent);color:var(--ui-action-text);font-weight:600}.aside-nav-btn svg,.aside-nav-btn ui-icon{flex-shrink:0}.aside-nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-aside-content{display:flex;flex:1;flex-direction:column;gap:1.25rem;min-width:0}.detail-aside-content>*{animation:ui-layout-section-in .22s ease}@media(max-width:768px){.detail-aside-layout{flex-direction:column;align-items:stretch}.detail-aside-nav{position:static;flex-direction:row;flex-wrap:wrap;width:100%}.aside-nav-btn{width:auto}}@keyframes ui-layout-spin{to{transform:rotate(360deg)}}@keyframes ui-layout-section-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.detail-aside-content>*,.aside-nav-btn:active:not(:disabled){animation:none;transform:none}}.ui-overlay-backdrop{background:#0f172a73}.ui-dialog-panel{width:min(460px,100vw - 2rem);max-height:calc(100vh - 4rem)}.ui-dialog-panel .cdk-dialog-container{display:block;padding:1.5rem;background:var(--ui-bg-card);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-lg);outline:none;overflow-y:auto;max-height:inherit;animation:ui-dialog-in .18s ease-out}@keyframes ui-dialog-in{0%{opacity:0;transform:scale(.94) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.ui-drawer-panel{width:min(920px,100%);height:100vh}.ui-drawer-panel .cdk-dialog-container{--ui-drawer-close-inset: 3rem;position:relative;display:block;height:100%;overflow-y:auto;background:var(--ui-bg-page);border-left:1px solid var(--ui-border);box-shadow:-8px 0 24px #0000001f;outline:none;animation:ui-drawer-in .22s cubic-bezier(.32,.72,0,1)}@keyframes ui-drawer-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.ui-sheet-panel{width:min(560px,100vw - 2rem);max-height:calc(100dvh - 4rem)}.ui-sheet-panel .cdk-dialog-container{display:block;max-height:inherit;overflow-y:auto;overscroll-behavior:contain;background:var(--ui-bg-card);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-lg);outline:none;animation:ui-dialog-in .18s ease-out}.ui-sheet-panel.ui-sheet-phone{width:100vw;margin-bottom:var(--ui-keyboard-inset, 0px);max-height:calc(100dvh - var(--ui-keyboard-inset, 0px) - env(safe-area-inset-top,0px) - .75rem)}.ui-sheet-phone .cdk-dialog-container{border:none;border-radius:22px 22px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -12px 40px #0000002e;animation:ui-sheet-in .42s cubic-bezier(.32,.72,0,1)}@keyframes ui-sheet-in{0%{transform:translateY(100%)}}.ui-drawer-sheet .cdk-dialog-container{--ui-drawer-close-inset: 3rem;position:relative;background:var(--ui-bg-page)}.ui-action-sheet-panel{width:min(360px,100vw - 2rem)}.ui-action-sheet-panel.ui-sheet-phone{width:100vw}.ui-action-sheet-panel .cdk-dialog-container{display:block;padding:.5rem;background:none;outline:none;animation:ui-dialog-in .18s ease-out}.ui-action-sheet-panel.ui-sheet-phone .cdk-dialog-container{padding-bottom:calc(.5rem + env(safe-area-inset-bottom,0px));animation:ui-sheet-in .38s cubic-bezier(.32,.72,0,1)}@media(prefers-reduced-motion:reduce){.ui-dialog-panel .cdk-dialog-container,.ui-drawer-panel .cdk-dialog-container,.ui-sheet-panel .cdk-dialog-container,.ui-action-sheet-panel .cdk-dialog-container{animation:none}}.ui-swipe-back{position:fixed;left:0;z-index:1100;display:grid;place-items:center;width:40px;height:40px;margin-left:-8px;border-radius:var(--ui-radius-circle);background:var(--ui-bg-card);color:var(--ui-text-muted);box-shadow:0 6px 20px #0000002e;pointer-events:none;transition:background-color .15s,color .15s}.ui-swipe-back:before{content:"";width:10px;height:10px;margin-left:4px;border-left:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:rotate(45deg)}.ui-swipe-back.ready{background:var(--ui-action-bg);color:var(--ui-text-on-primary)}.ui-pull-refresh{position:fixed;top:calc(env(safe-area-inset-top,0px) + .5rem);left:50%;z-index:1100;width:36px;height:36px;border-radius:var(--ui-radius-circle);background:var(--ui-bg-card);box-shadow:0 4px 16px #00000029;pointer-events:none;opacity:0;transition:transform .3s cubic-bezier(.32,.72,0,1),opacity .2s}.ui-pull-refresh:before{content:"";position:absolute;inset:9px;border:2.5px solid var(--ui-text-faint);border-right-color:transparent;border-radius:var(--ui-radius-circle)}.ui-pull-refresh.ready:before,.ui-pull-refresh.spinning:before{border-color:var(--ui-action-text);border-right-color:transparent}.ui-pull-refresh.spinning:before{animation:ui-pull-spin .7s linear infinite}@keyframes ui-pull-spin{to{transform:rotate(360deg)}}.swipe-row{position:relative;overflow:hidden}.swipe-row-content{position:relative;z-index:1;background:var(--ui-swipe-row-bg, var(--ui-bg-card));transition:transform .3s cubic-bezier(.32,.72,0,1);touch-action:pan-y}.swipe-row-actions{position:absolute;inset:0 0 0 auto;display:flex;visibility:hidden}.swipe-row-revealed .swipe-row-actions{visibility:visible}.swipe-action{display:grid;place-items:center;min-width:76px;padding:0 1rem;border:none;background:var(--ui-neutral-500);color:var(--ui-neutral-0);font:inherit;font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-semibold);cursor:pointer;-webkit-tap-highlight-color:transparent}.swipe-action:active{filter:brightness(.9)}.swipe-action-danger{background:var(--ui-danger-600)}.swipe-action-primary{background:var(--ui-action-bg)}@media(prefers-reduced-motion:reduce){.swipe-row-content,.ui-pull-refresh{transition:none}.ui-pull-refresh.spinning:before{animation-duration:2s}}.ui-disclosure{interpolate-size:allow-keywords}.ui-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:48px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ui-disclosure>summary::-webkit-details-marker{display:none}.ui-disclosure>summary::marker{content:""}.ui-disclosure>summary:after{content:"";flex-shrink:0;width:20px;height:20px;background-color:currentcolor;opacity:.6;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform var(--ui-transition-base) ease,opacity var(--ui-transition-fast)}.ui-disclosure[open]>summary:after{transform:rotate(180deg);opacity:.9}@media(hover:hover){.ui-disclosure>summary:hover:after{opacity:.9}}.ui-disclosure>summary:focus-visible{outline:2px solid var(--ui-focus-ring-color);outline-offset:-2px;border-radius:inherit}.ui-disclosure::details-content{block-size:0;overflow:clip;opacity:0;transition:block-size .3s cubic-bezier(.2,.8,.2,1),opacity .25s ease,content-visibility .3s allow-discrete}.ui-disclosure[open]::details-content{block-size:auto;opacity:1}@media(prefers-reduced-motion:reduce){.ui-disclosure>summary:after,.ui-disclosure::details-content{transition:none}}.ui-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;border:none}.ui-chips.ui-chips-scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.ui-chips.ui-chips-scroll::-webkit-scrollbar{display:none}.ui-chip{position:relative;display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;gap:.4rem;min-width:3.4rem;min-height:var(--ui-chip-height, 2.5rem);padding:.4rem 1rem;border:1.5px solid var(--ui-border);border-radius:var(--ui-radius-pill);background:var(--ui-bg-card);color:var(--ui-text-primary);font:inherit;font-size:var(--ui-font-size-md);font-weight:var(--ui-font-weight-semibold);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),color var(--ui-transition-fast),transform var(--ui-transition-fast) ease-out}.ui-chip>input[type=radio],.ui-chip>input[type=checkbox]{position:absolute;inset:0;margin:0;opacity:0;cursor:inherit}@media(hover:hover){.ui-chip:hover:not(:has(input:disabled),:disabled){border-color:var(--ui-action-text)}}.ui-chip:active:not(:has(input:disabled),:disabled){transform:scale(var(--ui-press-scale))}.ui-chip:has(input:checked),.ui-chip[aria-pressed=true]{border-color:var(--ui-action-bg);background:var(--ui-action-bg);color:var(--ui-text-on-primary)}.ui-chip:has(input:focus-visible),.ui-chip:focus-visible{outline:2px solid var(--ui-focus-ring-color);outline-offset:2px}.ui-chip:has(input:disabled),.ui-chip:disabled{opacity:var(--ui-disabled-opacity);cursor:not-allowed}@media(prefers-reduced-motion:reduce){.ui-chip:active:not(:has(input:disabled),:disabled){transform:none}}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:transparent;opacity:0;touch-action:manipulation;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors:active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:0 auto auto 0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}body[data-theme]{--bg-page: var(--ui-bg-page);--bg-card: var(--ui-bg-card);--bg-hover: var(--ui-bg-hover);--bg-subtle: var(--ui-bg-subtle);--bg-input: var(--ui-bg-input);--surface-bg: var(--ui-surface-bg);--content-bg: var(--ui-bg-page);--text-heading: var(--ui-text-heading);--text-primary: var(--ui-text-primary);--text-muted: var(--ui-text-muted);--text-faint: var(--ui-text-faint);--border: var(--ui-border);--border-subtle: var(--ui-border-subtle)}ui-select.f-input,ui-select.table-filter,ui-select.plan-billing-select,ui-select.status-select,ui-select.tb-select{height:auto;padding:0;border:none;background:none;box-shadow:none}ui-select.f-input{--ui-select-padding: 0 .875rem;--ui-select-height: 40px}ui-select.table-filter{--ui-select-padding: .45rem .65rem;--ui-select-font-size: .875rem;--ui-select-line-height: 1.5}ui-select.plan-billing-select{--ui-select-padding: 6px 10px;--ui-select-radius: 6px;--ui-select-font-size: .8rem;--ui-select-background: var(--bg-card)}ui-select.status-select{--ui-select-padding: .3rem .5rem;--ui-select-radius: 7px;--ui-select-font-size: .8rem}ui-select.tb-select{--ui-select-padding: 0 .4rem;--ui-select-radius: 6px;--ui-select-font-size: .82rem;--ui-select-height: 30px}.add-row ui-select{flex:1}.perm-clone ui-select{min-width:180px}.modal-field ui-select{--ui-select-padding: .55rem .65rem;--ui-select-background: var(--bg-subtle);--ui-select-font-size: .9rem}:root{--ui-primary-50: #fff1f2;--ui-primary-100: #ffe4e6;--ui-primary-300: #fda4af;--ui-primary-400: #fb7185;--ui-primary-500: #f43f5e;--ui-primary-600: #e11d48;--ui-primary-700: #be123c;--ui-accent-100: #fef3c7;--ui-accent-200: #fde68a;--ui-accent-300: #fcd34d;--ui-accent-500: #f59e0b;--ui-accent-600: #d97706;--ui-accent-700: #b45309;--ui-btn-radius: var(--ui-radius-pill);--ui-btn-radius-sm: var(--ui-radius-pill);--ui-btn-radius-icon: var(--ui-radius-circle);--ui-btn-padding: .7rem 1.35rem;--ui-btn-min-height: 2.75rem;--ui-btn-padding-sm: .55rem 1rem;--ui-btn-padding-lg: .9rem 1.6rem;--ui-btn-min-height-lg: 3.25rem;--ui-btn-icon-size: 36px;--ui-btn-font-weight: 700;--ui-btn-font-weight-secondary: 600;--ui-btn-primary-shadow: 0 10px 24px -10px color-mix(in srgb, var(--ui-action-bg) 70%, transparent)}body[data-theme=light]{--ui-bg-page: #f7f8fa;--card-shadow: 0 1px 2px rgb(15 23 42 / 4%), 0 4px 12px rgb(15 23 42 / 5%);--bg-detail-a: #f0f9ff;--bg-detail-b: #f5f3ff;--border-detail-a: #bae6fd;--border-detail-b: #e0e7ff;--sidebar-bg: #ffffff;--sidebar-text: #334155;--sidebar-hover: rgba(0, 0, 0, .05);--sidebar-active: color-mix(in srgb, var(--ui-primary-600) 9%, transparent);--sidebar-border: #e2e8f0;color:var(--ui-text-heading)}body[data-theme=dark]{--card-shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 4px 12px rgb(0 0 0 / 25%);--bg-detail-a: #0c1f35;--bg-detail-b: #18123a;--border-detail-a: #1e3a5f;--border-detail-b: #2d1f5e;--sidebar-bg: #0f172a;--sidebar-text: #f1f5f9;--sidebar-hover: rgba(255, 255, 255, .07);--sidebar-active: rgba(255, 255, 255, .12);--sidebar-border: #1e293b;color:var(--ui-text-heading)}.error-banner{background:#fee2e2;color:#dc2626;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9375rem}.loading{color:var(--text-muted)}.f-req{color:#ef4444;font-size:.8rem}.f-optional{font-weight:400;font-size:.75rem;color:var(--text-faint)}.f-hint{font-size:.78rem;color:var(--text-muted);margin:.3rem 0 0;line-height:1.5}.summary-card{border:1px solid var(--border);border-radius:10px;overflow:hidden}.form-section-title{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0 0 1rem}.row-identity{display:flex;align-items:center;gap:.65rem}.row-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--ui-primary-400),var(--ui-primary-700));color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:.03em}.row-name{font-weight:500;color:var(--text-primary)}.row-email{color:var(--text-muted);font-size:.9rem}.row-desc{color:var(--text-muted);font-size:.9rem;max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-row td{padding:0!important}.actions{display:flex;gap:.4rem;justify-content:flex-end}.table-card:not(.table-card--bare){border:none;box-shadow:var(--card-shadow)}.btn-secondary{background:var(--ui-bg-card);border-color:color-mix(in srgb,var(--ui-text-primary) 28%,transparent);box-shadow:0 1px 2px #00000014}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.modal-box{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.75rem;width:100%;max-width:520px;box-shadow:0 20px 60px #00000040}.modal-title{font-size:1.125rem;font-weight:600;color:var(--text-heading);margin:0 0 .6rem}.modal-message{font-size:.95rem;color:var(--text-muted);margin:0 0 1.5rem;line-height:1.55}.modal-actions{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap}.modal-actions button{white-space:nowrap;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.perm-matrix-wrap{overflow-x:auto;max-width:100%}@media(max-width:640px){.perm-matrix .pm-section-col{position:sticky;left:0;z-index:1;background:var(--bg-card)}}.perm-matrix{width:100%;border-collapse:separate;border-spacing:0;font-size:.8125rem}.perm-matrix thead th{text-align:center;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:.5rem .4rem;border-bottom:1px solid var(--border);white-space:nowrap}.perm-matrix tbody td{padding:.4rem;text-align:center;vertical-align:middle;border-bottom:1px solid var(--border-subtle)}.perm-matrix tbody tr:last-child td{border-bottom:none}.perm-matrix tbody tr:hover td{background:var(--bg-hover)}.pm-section-col{text-align:left!important;width:1%;white-space:nowrap;font-weight:600;color:var(--text-primary);padding-right:1rem!important}.pm-toggle{width:26px;height:26px;border-radius:6px;border:1.5px solid var(--border);background:transparent;color:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,border-color .12s ease}.pm-toggle:hover:not(:disabled){border-color:var(--ui-primary-600)}.pm-toggle.on{background:var(--ui-primary-600);border-color:var(--ui-primary-600);color:#fff}.pm-toggle:disabled{cursor:default;opacity:.7}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-weight:700;background:color-mix(in srgb,var(--ui-primary-600) 12%,transparent);color:var(--ui-action-text);border-radius:999px;transition:background .15s,color .15s}.active .tab-badge{background:var(--ui-primary-600);color:#fff}.badge-blue{background:#3b82f61f;color:#1d4ed8}.badge-red{background:#ef44441f;color:#b91c1c}.badge-green{background:#22c55e1f;color:#15803d}.badge-yellow{background:#eab3081f;color:#a16207}.badge-gray{background:#6b72801f;color:var(--text-muted)}body[data-theme=dark] .badge-purple{background:#8b5cf62e;color:#c4b5fd}body[data-theme=dark] .badge-blue{background:#3b82f629;color:#60a5fa}body[data-theme=dark] .badge-red{background:#ef444429;color:#f87171}body[data-theme=dark] .badge-green{background:#22c55e29;color:#4ade80}body[data-theme=dark] .badge-orange{background:#f9731629;color:#fb923c}body[data-theme=dark] .badge-indigo{background:#6366f12e;color:#a5b4fc}body[data-theme=dark] .badge-yellow{background:#eab30829;color:#fbbf24}.view-toggle-icons{display:flex;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.view-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;background:var(--bg-card);color:var(--text-muted);cursor:pointer;transition:background .1s}.view-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.view-btn.active{background:color-mix(in srgb,var(--ui-primary-600) 10%,transparent);color:var(--ui-action-text)}@supports not (view-transition-name: none){.content>:not(router-outlet){animation:route-enter .2s ease-out both}}@keyframes route-enter{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.content>:not(router-outlet){animation:none}}@media(max-width:767px){html,body{overflow-x:clip}html:has(.layout),body:has(.layout){background:var(--surface-bg)}*{scrollbar-width:none}::-webkit-scrollbar:horizontal{display:none}}.ui-menu.island-menu{animation:island-menu-in .22s cubic-bezier(.2,.8,.2,1);border-radius:22px;padding:.45rem;box-shadow:0 18px 40px -12px #0000004d,0 2px 6px #0000000f}.ui-menu.island-menu .ui-menu-item{min-height:44px;border-radius:14px}.ui-menu.island-menu.menu-leave{animation:island-menu-out .16s ease-in forwards}@keyframes island-menu-in{0%{opacity:0;transform:translateY(12px)}}@keyframes island-menu-out{to{opacity:0;transform:translateY(12px)}}.content{view-transition-name:page}.tab-bar{view-transition-name:tab-bar}::view-transition-old(tab-bar){display:none}::view-transition-group(tab-bar),::view-transition-new(tab-bar){animation:none}::view-transition-old(page){animation:page-out .14s ease-in both}::view-transition-new(page){animation:page-in .22s ease-out .06s both}::view-transition-group(page){animation:none}@keyframes page-out{to{opacity:0}}@keyframes page-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.ui-menu.island-menu,.ui-menu.island-menu.menu-leave{animation-duration:.01s}::view-transition-old(page),::view-transition-new(page){animation:none}}.made-by{display:inline-flex;align-items:center;gap:.35rem;color:inherit;font-size:.85rem;text-decoration:none;opacity:.85}.made-by img{width:20px;height:20px}.made-by:hover{opacity:1;text-decoration:underline}pf-login{--ui-action-bg: #e11d48;--ui-action-bg-hover: #be123c;--ui-action-text: #e11d48;--ui-focus-ring-color: #f43f5e;--pf-brand-950: #0b0a12;--pf-brand-925: #14121e;--pf-brand-900: #1f1b2e;--pf-brand-700: #9f1239;--pf-brand-600: #e11d48;--pf-brand-300: #fda4af;--pf-glow: rgb(244 63 94 / 70%);--pf-hero-glow: #e11d48;--pf-accent: #fb7185;--pf-accent-hover: #fda4af;--pf-accent-soft: #fecdd3;--pf-accent-softer: #ffe4e6;--pf-ink: #14121c;--pf-ink-muted: #5b5568;--pf-ink-faint: #7a7487}@property --ai-banner-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}.ai-banner{position:relative;isolation:isolate;border-radius:24px;color:#fff}.ai-banner:after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:radial-gradient(110% 120% at 0% 0%,color-mix(in srgb,var(--ui-primary-600) 28%,transparent) 0%,transparent 60%),linear-gradient(160deg,#241521,#17131f);box-shadow:inset 0 1px #ffffff1f}@media(hover:hover){.ai-banner:hover .ai-banner-glow{opacity:.85}}.ai-banner-glow{position:absolute;inset:18% 3% -10%;z-index:-2;border-radius:inherit;background:conic-gradient(from var(--ai-banner-angle),var(--ui-primary-400),#f0abfc,var(--ui-accent-300),#93c5fd,var(--ui-primary-400));filter:blur(28px);opacity:.7;pointer-events:none;transition:opacity .4s ease;animation:ai-banner-spin 14s linear infinite,ai-banner-breathe 7s ease-in-out infinite alternate}@keyframes ai-banner-spin{to{--ai-banner-angle: 360deg}}@keyframes ai-banner-breathe{0%{transform:scale(.94)}to{transform:scale(1.05)}}@media(prefers-reduced-motion:reduce){.ai-banner-glow{animation:none}}
