@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-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-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;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);color-scheme:dark}.btn-primary,.btn-secondary,.btn-danger{padding:.5rem 1rem;border-radius:var(--ui-radius-md);font-size:var(--ui-font-size-lg);font-family:inherit;cursor:pointer;text-decoration:none}.btn-secondary{display:inline-flex;align-items:center;gap:.4rem}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled,.btn-icon:disabled{opacity:var(--ui-disabled-opacity);cursor:not-allowed}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-danger:focus-visible,.btn-icon:focus-visible{outline:2px solid var(--ui-focus-ring-color);outline-offset:2px}.btn-primary{background:var(--ui-action-bg);color:var(--ui-text-on-primary);border:none;font-weight:var(--ui-font-weight-semibold)}.btn-primary:hover:not(:disabled){background:var(--ui-action-bg-hover)}.btn-primary:active:not(:disabled){background:var(--ui-primary-700)}.btn-secondary{background:var(--ui-bg-subtle);color:var(--ui-text-primary);border:1px solid var(--ui-border)}.btn-secondary:hover:not(:disabled){background:var(--ui-bg-hover)}.btn-secondary:active:not(:disabled){background:var(--ui-border-subtle)}.btn-danger{background:var(--ui-danger-600);color:var(--ui-text-on-primary);border:none;font-weight:var(--ui-font-weight-semibold)}.btn-danger:hover:not(:disabled){background:var(--ui-danger-700)}.btn-danger:focus-visible{outline-color:var(--ui-danger-500)}.btn-sm{padding:.35rem .75rem;font-size:var(--ui-font-size-sm);border-radius:var(--ui-radius-sm)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--ui-radius-sm);border:none;background:transparent;color:var(--ui-text-muted);cursor:pointer;flex-shrink:0;transition:background var(--ui-transition-fast),color var(--ui-transition-fast)}.btn-icon>svg{display:block}.btn-icon:hover:not(:disabled){background:var(--ui-bg-subtle);color:var(--ui-text-primary)}.btn-icon.btn-danger{background:transparent;color:var(--ui-text-muted)}.btn-icon.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--ui-danger-500) 8%,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-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}}.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-md);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}.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 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}}@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}}.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{text-align:center;color:var(--ui-text-faint);padding:2rem!important}.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)}}@media(prefers-reduced-motion:reduce){.ui-dialog-panel .cdk-dialog-container,.ui-drawer-panel .cdk-dialog-container{animation: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}*,*:before,*:after{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:100px}*::-webkit-scrollbar-thumb:hover{background:var(--text-faint, var(--text-muted))}html,body{height:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}body[data-theme=light]{--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: rgba(99, 102, 241, .09);--sidebar-border: #e2e8f0;color:var(--ui-text-heading)}body[data-theme=dark]{--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)}body.theme-animate,body.theme-animate *{transition:background-color .3s ease,color .3s ease,border-color .3s ease!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(--text-heading)}.page h2{margin:0 0 1rem;font-size:1.125rem;color:var(--text-heading)}.page h3{margin:0 0 .75rem;font-size:1rem;color:var(--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)}.muted{color:var(--text-faint)}.wizard-steps{display:flex;align-items:flex-start;margin-bottom:1.75rem}.wizard-step{display:flex;flex-direction:column;align-items:center;gap:.4rem;flex-shrink:0}.ws-circle{width:34px;height:34px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:700;color:var(--text-muted);background:var(--bg-card);transition:border-color .2s,background .2s,color .2s}.ws-label{font-size:.72rem;font-weight:500;color:var(--text-muted);white-space:nowrap;transition:color .2s}.wizard-step.ws-active .ws-circle{border-color:#6366f1;color:#6366f1;background:#6366f114;box-shadow:0 0 0 4px #6366f11a}.wizard-step.ws-active .ws-label{color:#6366f1;font-weight:700}.wizard-step.ws-done .ws-circle{border-color:#6366f1;background:#6366f1;color:#fff}.wizard-step.ws-done .ws-label{color:var(--text-primary)}.wizard-line{flex:1;height:2px;background:var(--border);margin:16px .5rem 0;transition:background .3s}.wizard-line.ws-done{background:#6366f1}.step-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.step-title{font-size:1.05rem;font-weight:700;color:var(--text-heading);margin:0 0 .3rem}.step-subtitle{font-size:.875rem;color:var(--text-muted);margin:0}.step-error{display:flex;align-items:center;gap:.5rem;background:#ef444412;border:1px solid rgba(239,68,68,.22);border-radius:8px;color:#dc2626;padding:.65rem 1rem;font-size:.875rem;margin-bottom:1.25rem}.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}.f-input--error{border-color:#ef4444!important;box-shadow:0 0 0 3px #ef44441a!important}.role-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1rem;background:#6366f112;border:1.5px solid rgba(99,102,241,.22);border-radius:20px;color:#6366f1;font-size:.875rem;font-weight:600}.summary-card{border:1px solid var(--border);border-radius:10px;overflow:hidden}.summary-section{padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.summary-section:last-child{border-bottom:none}.summary-section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:.75rem}.summary-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.28rem 0;font-size:.875rem}.summary-label{color:var(--text-muted);flex-shrink:0}.summary-value{color:var(--text-primary);font-weight:500;text-align:right;word-break:break-all}.form-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.form-section-title{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0 0 1rem}.account-rows{display:flex;flex-direction:column}.account-row{display:flex;align-items:center;gap:1rem;padding:.875rem 0;border-bottom:1px solid var(--border-subtle)}.account-row:last-child{border-bottom:none}.account-row-icon{flex-shrink:0;width:34px;height:34px;border-radius:8px;background:var(--bg-subtle);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.account-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.account-row-title{font-size:.875rem;font-weight:500;color:var(--text-primary)}.account-row-desc{font-size:.78rem;color:var(--text-muted);line-height:1.45}.account-row-aside{flex-shrink:0}.aside-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.btn-new{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap}.row-identity{display:flex;align-items:center;gap:.65rem}.row-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);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}.no-data{color:var(--text-faint);font-size:.875rem}.perm-code{font-family:SF Mono,Fira Code,Fira Mono,monospace;font-size:.8125rem;background:var(--bg-subtle);color:#6366f1;padding:.2rem .5rem;border-radius:5px;border:1px solid var(--border);font-weight:500}.detail-row td{padding:0!important}.detail-panel{padding:1rem 1.25rem}.detail-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.col-label{font-size:.8125rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .5rem}.badge-list{display:flex;flex-wrap:wrap;gap:.35rem}.add-row{display:flex;gap:.5rem}.add-row select{flex:1;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;font-size:.9375rem;background:var(--bg-input);color:var(--text-primary)}.add-row select:focus{outline:none;border-color:#6366f1}.actions{display:flex;gap:.4rem;justify-content:flex-end}.page-header .btn-secondary{background:var(--bg-card);box-shadow:0 1px 3px #0000001f}.page-header .btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.field-rows{display:flex;flex-direction:column}.field-row{display:flex;align-items:center;justify-content:space-between;padding:.875rem .5rem;border-bottom:1px solid var(--border-subtle);cursor:pointer;border-radius:6px;gap:1rem}.field-row:last-child{border-bottom:none}.field-row:hover{background:var(--bg-hover)}.field-row:hover .field-row-icon{opacity:1}.field-row.non-clickable{cursor:default}.field-row.non-clickable:hover{background:none}.field-row-info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.field-row-icon{opacity:0;color:var(--text-faint);flex-shrink:0;transition:opacity .15s;display:flex;align-items:center}.input-password-wrap{position:relative}.input-password-wrap .f-input{padding-right:2.5rem}.toggle-visibility{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;cursor:pointer;color:var(--text-muted);display:flex;align-items:center}.toggle-visibility:hover{color:var(--text-primary)}.field-hint{font-size:.8125rem;color:var(--text-faint);margin-top:.3rem;display:block}.page-back{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;color:var(--text-muted);text-decoration:none;margin-bottom:1.25rem;cursor:pointer;background:none;border:none;padding:0}.page-back svg{flex-shrink:0}.page-back:hover{color:var(--text-primary)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.25rem}.detail-field{display:flex;flex-direction:column;gap:.25rem}.field-label{font-size:.8125rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.field-value{font-size:.9375rem;color:var(--text-primary);word-break:break-word}.field-value.field-value-row{display:flex;align-items:center;gap:.375rem}.field-action-link{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;color:var(--text-faint);text-decoration:none;transition:background .12s,color .12s}.field-action-link:hover{background:var(--bg-hover);color:var(--text-muted)}.field-action-link.field-action-whatsapp{color:#25d366;opacity:.7}.field-action-link.field-action-whatsapp:hover{opacity:1;background:#f0fdf4}.field-action-link.field-action-maps:hover{color:#4285f4}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;flex-wrap:wrap;border:1px solid rgba(239,68,68,.35);border-radius:12px;padding:1.25rem 1.5rem;background:#ef44440a}.danger-zone .dz-text{flex:1;min-width:220px}.danger-zone h4{margin:0 0 .35rem;font-size:.95rem;color:var(--text-heading)}.danger-zone p{margin:0;font-size:.85rem;color:var(--text-muted);line-height:1.5}.btn-danger{padding:.5rem 1rem;background:#dc2626;color:#fff;border:none;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer}.btn-danger:hover{background:#b91c1c}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.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-fields{display:flex;flex-direction:column;gap:.9rem;margin:0 0 1.5rem}.modal-field{display:flex;flex-direction:column;gap:.35rem}.modal-field-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.modal-field-optional{margin-left:.35rem;font-weight:400;text-transform:none;letter-spacing:0}.modal-field textarea{width:100%;padding:.55rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-subtle);color:var(--text-primary);font-size:.9rem;font-family:inherit}.modal-field textarea{resize:vertical}.modal-actions{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap}.modal-actions button{white-space:nowrap;flex-shrink:0}.th-center,.td-center{text-align:center}.default-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:none;background:none;cursor:pointer;color:var(--text-faint);transition:color .15s,background .15s}.default-toggle:hover:not(:disabled){color:#f59e0b;background:#fef3c7}.default-toggle.is-default{color:#f59e0b;cursor:default}.default-toggle:disabled:not(.is-default){opacity:.4}.btn-add{padding:.48rem .75rem;font-size:.875rem;border-radius:8px;cursor:pointer;border:none;font-weight:600;background:#6366f1;color:#fff;white-space:nowrap}.btn-add:hover:not(:disabled){background:#4f46e5}.btn-add:disabled{opacity:.5;cursor:not-allowed}.user-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.user-hero-identity{display:flex;align-items:flex-start;gap:1rem}@media(max-width:640px){.user-hero-top{flex-wrap:wrap}.user-hero-identity,.user-hero-info{min-width:0}.user-hero-email{overflow-wrap:anywhere}}.user-hero-avatar{flex-shrink:0;width:52px;height:52px;border-radius:50%;background:#eef2ff;color:#6366f1;font-size:1.125rem;font-weight:700;display:flex;align-items:center;justify-content:center;text-transform:uppercase;letter-spacing:.02em}.user-hero-info{display:flex;flex-direction:column;gap:.125rem}.user-hero-name-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.user-hero-name{margin:0;font-size:1.125rem;font-weight:700;color:var(--text-heading)}.user-client-chip{display:inline-block;padding:.15rem .55rem;background:#eef2ff;color:#6366f1;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.03em}.user-hero-email{font-size:.875rem;color:var(--text-muted)}.user-hero-meta{display:flex;align-items:center;gap:.5rem;margin-top:1rem;padding-top:.875rem;border-top:1px solid var(--border-subtle);font-size:.8125rem;color:var(--text-faint)}.user-hero-meta-sep{color:var(--border)}.contact-action-link{display:inline-flex;align-items:center;gap:.3rem;font-size:.8125rem;font-weight:500;color:var(--text-muted);text-decoration:none;padding:.3rem .6rem;border-radius:6px;transition:background .12s,color .12s;white-space:nowrap}.contact-action-link svg{flex-shrink:0}.contact-action-link:hover{background:var(--bg-subtle);color:var(--text-primary)}.perm-table{width:100%;border-collapse:collapse}.perm-group-row td{padding:.6rem .5rem .3rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);border-bottom:1px solid var(--border-subtle)}.perm-group-row td:first-child{padding-top:1rem}.perm-row td{padding:.6rem .5rem;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.perm-row:last-child td{border-bottom:none}.perm-row-toggle{cursor:pointer;transition:background .1s}.perm-row-toggle:hover td{background:var(--bg-hover)}.perm-row-toggle.is-assigned .perm-name{color:var(--text-primary);font-weight:500}.perm-row-toggle:not(.is-assigned) .perm-name{color:var(--text-faint)}.perm-row-toggle:not(.is-assigned) .perm-desc{color:var(--text-faint)}.perm-check{width:32px;text-align:center}.perm-check-icon{display:inline-block;vertical-align:middle}.perm-check-icon.assigned{color:#16a34a}.perm-check-icon.unassigned{color:var(--border)}.perm-name{font-size:.875rem;color:var(--text-primary);white-space:nowrap;padding-right:1rem}.perm-desc{font-size:.8125rem;color:var(--text-muted);width:100%}.perm-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:#6366f1;border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.is-loading{gap:0}.is-loading:before{content:"";display:inline-block;width:.85em;height:.85em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite;margin-right:.4rem;vertical-align:-.1em;flex-shrink:0}.is-loading>svg{display:none}.perm-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.perm-clone{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-muted);white-space:nowrap}.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-empty{color:var(--text-faint)}.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:#6366f1}.pm-toggle.on{background:#6366f1;border-color:#6366f1;color:#fff}.pm-toggle:disabled{cursor:default;opacity:.7}.pm-dot{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:transparent}.pm-dot.on{background:#6366f11f;border-color:#6366f1;color:#6366f1}.pm-others-col{text-align:left!important}.pm-chip{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;padding:.2rem .55rem;margin:.12rem .2rem .12rem 0;border-radius:999px;border:1.5px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s ease,border-color .12s ease}.pm-chip:hover:not(:disabled){border-color:#6366f1}.pm-chip.on{background:#6366f1;border-color:#6366f1;color:#fff}.pm-chip:disabled{cursor:default;opacity:.7}.perm-matrix--readonly .pm-chip{cursor:default}.section-desc{font-size:.8125rem;color:var(--text-muted);margin:0 0 1rem}.empty-sessions{font-size:.875rem;color:var(--text-muted);text-align:center;padding:1rem 0}.session-list{display:flex;flex-direction:column;gap:0}.session-row{display:flex;align-items:center;gap:.875rem;padding:.875rem 0;border-bottom:1px solid var(--border)}.session-row:last-child{border-bottom:none}.session-icon{flex-shrink:0;width:34px;height:34px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.session-info{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.session-device{font-size:.875rem;font-weight:500;color:var(--text-heading)}.session-meta{font-size:.75rem;color:var(--text-muted)}.btn-danger-sm{flex-shrink:0;background:transparent;border:1px solid #fca5a5;color:#dc2626;border-radius:6px;padding:.3rem .75rem;font-size:.8125rem;cursor:pointer;white-space:nowrap}.btn-danger-sm:hover:not(:disabled){background:#fee2e2}.btn-danger-sm:disabled{opacity:.5;cursor:not-allowed}.detail-tabs{display:flex;gap:2px;margin-top:2rem;margin-bottom:2rem;background:var(--bg-subtle);border-radius:10px;padding:3px;overflow-x:auto;scrollbar-width:none}.detail-tabs::-webkit-scrollbar{display:none}.detail-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background:none;border:none;border-radius:7px;font-size:.875rem;font-weight:500;color:var(--text-muted);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:color .15s,background .15s}.detail-tab svg{opacity:.6;transition:opacity .15s}.detail-tab:hover:not(.active){color:var(--text-primary);background:#6366f10f}.detail-tab:hover:not(.active) svg{opacity:.85}.detail-tab.active{color:var(--text-heading);background:var(--bg-card);font-weight:600;box-shadow:0 1px 3px #0000001f,0 0 0 1px #0000000a}.detail-tab.active svg{opacity:1}.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:#6366f11f;color:#6366f1;border-radius:999px;transition:background .15s,color .15s}.active .tab-badge{background:#6366f1;color:#fff}.activity-list{display:flex;flex-direction:column}.activity-row{display:flex;align-items:flex-start;gap:.875rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.activity-row:last-child{border-bottom:none}.activity-icon{flex-shrink:0;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-top:1px}.activity-icon.color-blue{background:#dbeafe;color:#1d4ed8}.activity-icon.color-green{background:#dcfce7;color:#16a34a}.activity-icon.color-red{background:#fee2e2;color:#dc2626}.activity-icon.color-purple{background:#ede9fe;color:#7c3aed}.activity-body{display:flex;flex-direction:column;gap:.2rem}.activity-desc{font-size:.875rem;color:var(--text-primary)}.activity-meta{font-size:.75rem;color:var(--text-muted)}.inactivity-overlay{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:1.5rem;pointer-events:none;z-index:9999}.cdk-overlay-container{z-index:2500}.inactivity-banner{display:flex;align-items:center;gap:.75rem;background:#92400e;color:#fef3c7;border:1px solid #b45309;border-radius:10px;padding:.875rem 1.25rem;font-size:.875rem;box-shadow:0 4px 20px #00000040;pointer-events:all;max-width:480px;width:100%}.inactivity-banner svg{flex-shrink:0;color:#fbbf24}.inactivity-banner span{flex:1}.inactivity-banner button{flex-shrink:0;background:#fbbf24;color:#1c1917;border:none;border-radius:6px;padding:.375rem .875rem;font-size:.8125rem;font-weight:600;cursor:pointer;white-space:nowrap}.inactivity-banner button:hover{background:#f59e0b}.badge-purple{background:#8b5cf61f;color:#6d28d9}.badge-blue{background:#3b82f61f;color:#1d4ed8}.badge-red{background:#ef44441f;color:#b91c1c}.badge-green{background:#22c55e1f;color:#15803d}.badge-orange{background:#f973161f;color:#c2410c}.badge-indigo{background:#6366f11f;color:#4338ca}.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}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.project-card{background:var(--bg-card);border:1.5px solid var(--border);border-radius:10px;padding:1.25rem;cursor:pointer;transition:border-color .15s,box-shadow .15s}.project-card:hover{border-color:#6366f1;box-shadow:0 4px 12px #6366f11a}.project-card.card-selected{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.row-selected td{background:#6366f10d!important}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px}.project-name{font-weight:700;font-size:.95rem;color:var(--text-heading)}.project-badges{display:flex;gap:4px;flex-wrap:wrap}.project-dates{font-size:.8rem;color:var(--text-muted);margin-bottom:10px}.project-financials{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.fin-item{display:flex;flex-direction:column}.fin-label{font-size:.68rem;text-transform:uppercase;color:var(--text-muted);font-weight:600}.fin-value{font-weight:700;font-size:.875rem}.text-green{color:#22c55e}.text-yellow{color:#eab308}.text-red{color:#ef4444}.detail-single{display:flex;flex-direction:column;gap:1rem}.btn-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:.875rem;padding:4px 0;font-weight:500;transition:color .12s}.btn-back:hover{color:var(--text-primary)}.ds-title{font-size:1.2rem;font-weight:700;color:var(--text-heading);margin:0 0 10px}.ds-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ds-date{font-size:.825rem;color:var(--text-muted)}.ds-description{font-size:.875rem;color:var(--text-muted);margin:12px 0 0;line-height:1.6}.ds-section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 1rem}.ds-fin-row{display:flex;gap:2.5rem;flex-wrap:wrap}.ds-fin-item{display:flex;flex-direction:column;gap:3px}.ds-fin-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.ds-fin-value{font-size:1.25rem;font-weight:700;color:var(--text-heading)}.ds-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.ds-field{display:flex;flex-direction:column;gap:4px}.ds-field-full{grid-column:1/-1}.ds-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.ds-domains{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border)}.ds-domains-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.ds-value{font-size:.9rem;color:var(--text-primary);font-weight:500;word-break:break-all}.ds-value.mono{font-family:ui-monospace,monospace;font-size:.84rem}.ds-link{font-size:.9rem;color:#6366f1;text-decoration:none;word-break:break-all}.ds-link:hover{text-decoration:underline}.ds-empty{font-size:.875rem;color:var(--text-muted);font-style:italic;margin:0}.section-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.tab-filters{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:.75rem}.tab-search-wrap{position:relative;display:flex;align-items:center}.tab-search-wrap svg{position:absolute;left:8px;color:var(--text-muted);pointer-events:none}.tab-search{padding:.38rem .65rem .38rem 1.9rem;border:1px solid var(--border);border-radius:8px;font-size:.82rem;background:var(--bg-input);color:var(--text-primary);width:180px}.tab-search:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}@media(max-width:640px){.detail-cols,.project-financials{grid-template-columns:1fr}.tab-search{width:100%}}@media(max-width:640px){table.stack-mobile thead{display:none}table.stack-mobile,table.stack-mobile tbody,table.stack-mobile tr,table.stack-mobile td{display:block;width:100%}table.stack-mobile tbody tr{padding:.4rem 0;border-bottom:1px solid var(--border)}table.stack-mobile tbody td{display:flex;align-items:center;justify-content:space-between;gap:.75rem;text-align:right;overflow-wrap:anywhere}table.stack-mobile 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(--text-muted);text-align:left}table.stack-mobile tbody td>*{min-width:0}table.stack-mobile tbody td:not([data-label]){justify-content:flex-end}table.stack-mobile tfoot{display:block}table.stack-mobile tfoot tr{display:flex;justify-content:space-between;gap:.75rem}table.stack-mobile tfoot td{width:auto}table.stack-mobile td:empty{display:none}}.section-heading{margin:0;font-size:.875rem;font-weight:700;color:var(--text-heading);display:flex;align-items:center;gap:6px}.tab-count{display:inline-block;background:#6366f11f;color:#818cf8;border-radius:10px;font-size:.7rem;font-weight:700;padding:1px 6px}.empty-section-sm{color:var(--text-muted);font-size:.85rem;padding:.5rem 0;margin:0}.empty-section{color:var(--text-muted);font-size:.875rem;padding:2rem 0;text-align:center}.view-toggle{display:flex;gap:2px;background:var(--bg-subtle);border-radius:6px;padding:2px}.view-toggle-icons{display:flex;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.toolbar-btn{min-height:36px}.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:#6366f11a;color:#6366f1}.toggle-btn{background:none;border:none;border-radius:4px;padding:5px 7px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center}.toggle-btn.active{background:var(--bg-card);color:#6366f1;box-shadow:0 1px 3px #0000001a}.cell-name{font-weight:600;color:var(--text-heading)}.loading-text{color:var(--text-muted);text-align:center;padding:2rem 0}.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}}body .content:has(.tab-full-bleed){max-width:none}.cdk-dialog-container .form-card:not(app-work-item-detail *){padding:0;border:none;background:transparent;box-shadow:none}.cdk-dialog-container .form-card:not(app-work-item-detail *) .form-header{padding-right:2.5rem}.open-page-btn{display:inline-flex;align-items:center;gap:.4rem;padding:6px 12px;border:1px solid #6366f1;border-radius:8px;background:var(--bg-card);color:#6366f1;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.open-page-btn:hover{background:#6366f1;color:#fff}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:1rem;align-items:flex-start}@media(max-width:768px){.detail-layout{grid-template-columns:1fr}}.detail-main{display:flex;flex-direction:column;gap:1rem}.sidebar-card{padding:0!important;overflow:hidden}.sidebar-section{display:flex;flex-direction:column;gap:.35rem;padding:.75rem 1rem}.sidebar-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.sidebar-value{font-size:.875rem;color:var(--text-primary)}.sidebar-empty{font-size:.875rem;color:var(--text-muted);font-style:italic}.sidebar-divider{height:1px;background:var(--border)}.user-row{display:flex;align-items:center;gap:.75rem}.user-row-sm{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-primary)}.user-avatar-sm{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.user-info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.user-name-text,.user-email-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-name-text{font-size:.875rem;font-weight:600;color:var(--text-heading)}.user-email-text{font-size:.8rem;color:var(--text-muted)}.detail-aside-layout,.user-aside-layout{display:flex;gap:1.5rem;align-items:flex-start;margin-top:1.25rem}.detail-aside-nav,.user-aside-nav{width:200px;flex-shrink:0;display:flex;flex-direction:column;gap:2px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:.5rem}.detail-aside-nav{position:sticky;top:1rem}.aside-nav-btn{display:flex;align-items:center;gap:8px;background:none;border:none;border-radius:7px;padding:.55rem .75rem;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text-muted);width:100%;text-align:left;text-decoration:none;transition:background .12s,color .12s}.aside-nav-btn:hover:not(:disabled){background:var(--bg-subtle);color:var(--text-heading)}.aside-nav-btn:disabled{opacity:.45;cursor:not-allowed}.aside-nav-btn.active{background:#6366f11a;color:#6366f1;font-weight:600}.aside-nav-btn svg{flex-shrink:0}.aside-nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aside-nav-divider{height:1px;background:var(--border);margin:.4rem .25rem}.aside-nav-section-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:.5rem .75rem .25rem}.detail-aside-content,.user-aside-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1.25rem}.detail-aside-content>*,.user-aside-content>*{animation:tabIn .22s ease}@keyframes tabIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.detail-aside-content>*,.user-aside-content>*{animation:none}}@media(max-width:768px){.detail-aside-layout,.user-aside-layout{flex-direction:column;align-items:stretch}.detail-aside-nav,.user-aside-nav{width:100%;flex-direction:row;flex-wrap:wrap;position:static}.aside-nav-btn{width:auto}}.set-password{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border)}.set-password-title{font-size:.9rem;font-weight:600;color:var(--text-heading)}.set-password-desc{margin:.3rem 0 .75rem;font-size:.8rem;color:var(--text-muted)}.set-password-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.set-password-form .input-wrap{position:relative;display:flex;align-items:center;flex:1;min-width:220px}.set-password-form .f-input{flex:1;padding-right:2.25rem}.set-password-form .eye-btn{position:absolute;right:.6rem;display:flex;align-items:center;padding:0;border:none;background:none;color:var(--text-faint);line-height:1;cursor:pointer}.set-password-form .eye-btn:hover{color:var(--text-muted)}.pw-checks{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1rem}.pw-check{display:flex;align-items:center;gap:.35rem;font-size:.775rem;color:var(--text-muted)}.pw-check svg{flex-shrink:0;color:var(--border);transition:color .15s}.pw-check.ok{color:var(--text-primary)}.pw-check.ok svg{color:#16a34a}.generated-box{display:flex;flex-direction:column;gap:.5rem;padding:.85rem 1rem;border:1px solid #f59e0b;border-radius:8px;background:#f59e0b14}.generated-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#b45309}.generated-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1rem;letter-spacing:.02em;color:var(--text-primary);-webkit-user-select:all;user-select:all;word-break:break-all}.generated-actions{display:flex;gap:.5rem}.timeline{display:flex;flex-direction:column;margin-top:.75rem}.timeline-item{display:flex;gap:.75rem;padding-bottom:1rem;position:relative}.timeline-item:not(:last-child):before{content:"";position:absolute;left:5px;top:14px;bottom:0;width:1px;background:var(--border)}.timeline-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0;margin-top:3px;background:var(--text-faint, var(--text-muted));z-index:1}.timeline-dot.evt-green{background:#22c55e}.timeline-dot.evt-red{background:#ef4444}.timeline-dot.evt-orange{background:#f59e0b}.timeline-dot.evt-blue{background:#3b82f6}.timeline-dot.evt-indigo{background:#6366f1}.timeline-body{flex:1;min-width:0}.timeline-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.timeline-label{font-size:.875rem;font-weight:600;color:var(--text-heading)}.timeline-date{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.timeline-desc{margin:.15rem 0 0;font-size:.825rem;color:var(--text-muted);line-height:1.4}.timeline-actor{font-size:.72rem;color:var(--text-faint, var(--text-muted))}.ds-domain-add{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.6rem 0 .35rem}.ds-domain-add .f-input{flex:1;min-width:200px}.ds-hint{margin:0 0 .6rem;font-size:.75rem;color:var(--text-muted)}
