@charset "UTF-8";.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}: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-radius-input: var(--ui-radius-lg);--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}*,*: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}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}.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)}.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}.tab-bar,.status-veil{display:none}@media(max-width:767px){.tab-bar{position:fixed;left:50%;bottom:calc(.75rem + env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;gap:.15rem;width:max-content;max-width:calc(100vw - 1.5rem);padding:.35rem;border-radius:999px;background:color-mix(in srgb,var(--ui-bg-card) 55%,transparent);backdrop-filter:blur(14px) saturate(1.8) brightness(1.08);-webkit-backdrop-filter:blur(14px) saturate(1.8) brightness(1.08);border:1px solid rgb(255 255 255/35%);box-shadow:inset 0 1px #ffffff8c,inset 0 -1px 1px #00000014,0 1px 2px #0000000f,0 12px 32px -10px #00000059;isolation:isolate;transform:translate(-50%);transition:transform .45s cubic-bezier(.34,1.56,.64,1);view-transition-name:tab-bar}.tab-bar:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,#ffffff59,#fff0 38%),linear-gradient(to bottom,#ffffff2e,#fff0 60%)}.tab-bar{touch-action:none}.tab-bar.is-pressing>.tab-indicator{background:color-mix(in srgb,var(--ui-tab-bar-active, var(--ui-text-heading)) 20%,transparent);box-shadow:0 4px 14px -6px #00000059;transition:transform .3s cubic-bezier(.34,1.56,.64,1),width .3s cubic-bezier(.34,1.56,.64,1),background .2s ease}.tab-bar.is-scrubbing>.tab-indicator{transition:transform .08s linear,width .3s cubic-bezier(.34,1.56,.64,1)}.tab-bar>.tab-indicator{position:absolute;top:.35rem;bottom:.35rem;left:0;border-radius:999px;background:color-mix(in srgb,var(--ui-tab-bar-active, var(--ui-text-heading)) 14%,transparent);opacity:0;pointer-events:none;transition:transform .5s cubic-bezier(.34,1.56,.64,1),width .5s cubic-bezier(.34,1.56,.64,1),opacity .2s ease}.tab-bar>.tab-indicator.visible{opacity:1}.tab-bar .tab{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-width:60px;padding:.4rem .6rem;border:none;border-radius:999px;background:none;color:var(--ui-text-muted);font:inherit;font-size:.68rem;font-weight:500;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .25s ease}.tab-bar .tab-icon{display:inline-flex;transition:transform .45s cubic-bezier(.34,1.56,.64,1)}.tab-bar .tab-icon svg{display:block;width:20px;height:20px}.tab-bar .tab:active .tab-icon{transform:scale(.8);transition-duration:.1s}.tab-bar .tab.is-current,.tab-bar:not(:has(.is-current)) .tab.active{color:var(--ui-tab-bar-active, var(--ui-text-heading))}.tab-bar .tab.is-current .tab-icon,.tab-bar:not(:has(.is-current)) .tab.active .tab-icon{animation:ui-tab-hop .5s cubic-bezier(.34,1.56,.64,1)}.tab-bar .tab:focus-visible{outline:2px solid currentColor;outline-offset:-2px}.status-veil{display:block;position:fixed;top:0;left:0;right:0;z-index:25;height:calc(env(safe-area-inset-top,0px) + 10px);pointer-events:none;background:linear-gradient(to bottom,color-mix(in srgb,var(--ui-surface-bg) 92%,transparent),color-mix(in srgb,var(--ui-surface-bg) 0%,transparent));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);mask-image:linear-gradient(to bottom,#000 70%,transparent);-webkit-mask-image:linear-gradient(to bottom,#000 70%,transparent)}[data-theme=dark] .tab-bar{backdrop-filter:blur(14px) saturate(1.6) brightness(.95);-webkit-backdrop-filter:blur(14px) saturate(1.6) brightness(.95);border-color:#ffffff1f;box-shadow:inset 0 1px #ffffff24,inset 0 -1px 1px #0000004d,0 12px 32px -10px #0009}[data-theme=dark] .tab-bar:before{background:linear-gradient(115deg,#ffffff1a,#fff0 38%),linear-gradient(to bottom,#ffffff0f,#fff0 60%)}}::view-transition-old(tab-bar){display:none}::view-transition-group(tab-bar),::view-transition-new(tab-bar){animation:none}.ui-menu.island-menu{max-height:calc(100dvh - 8rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;border-radius:22px;padding:.45rem;box-shadow:0 18px 40px -12px #0000004d,0 2px 6px #0000000f;animation:ui-island-menu-in .22s cubic-bezier(.2,.8,.2,1)}.ui-menu.island-menu .ui-menu-item{min-height:44px;border-radius:14px}.ui-menu.island-menu.menu-leave{animation:ui-island-menu-out .16s ease-in forwards}@keyframes ui-island-menu-in{0%{opacity:0;transform:translateY(12px)}}@keyframes ui-island-menu-out{to{opacity:0;transform:translateY(12px)}}@keyframes ui-tab-hop{35%{transform:translateY(-4px) scale(1.12)}}@media(prefers-reduced-motion:reduce){.tab-bar,.tab-bar .tab,.tab-bar>.tab-indicator,.tab-bar .tab-icon{transition:none!important;animation:none!important}.ui-menu.island-menu,.ui-menu.island-menu.menu-leave{animation-duration:.01s}}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);--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)}:root{--ui-primary-50: #ecf7ff;--ui-primary-100: #d5eefd;--ui-primary-300: #7fcbf7;--ui-primary-400: #3db4f2;--ui-primary-500: #007bc0;--ui-primary-600: #0068a8;--ui-primary-700: #00558a}body[data-theme=light]{--bg-detail-a: #f0f9ff;--bg-detail-b: #eef7fc;--border-detail-a: #bae6fd;--border-detail-b: #d5eefd;--panel-bg: #f6fafd;--sidebar-bg: #ffffff;--sidebar-text: #334155;--sidebar-hover: rgba(0, 0, 0, .05);--sidebar-active: rgba(0, 123, 192, .09);--sidebar-border: #e2e8f0;color:#1e293b;--nub-azure: #0369a1;--nub-line: #d6ebfb;--nub-azure-solid: #0369a1;--nub-azure-deep: #075985}body[data-theme=dark]{--bg-detail-a: #0c1f35;--bg-detail-b: #18123a;--border-detail-a: #1e3a5f;--border-detail-b: #2d1f5e;--panel-bg: #263450;--sidebar-bg: #0f172a;--sidebar-text: #f1f5f9;--sidebar-hover: rgba(255, 255, 255, .07);--sidebar-active: rgba(255, 255, 255, .12);--sidebar-border: #1e293b;color:#f1f5f9;--nub-azure: #38bdf8;--nub-line: #1e3a5f;--nub-azure-solid: #0369a1;--nub-azure-deep: #075985}a,a:where(:visited){color:#007bc0;text-decoration:none}input,textarea,select{background:var(--bg-input);color:var(--text-primary);border-color:var(--border);font-family:inherit}input::placeholder,textarea::placeholder,select::placeholder{color:var(--text-primary);opacity:.35}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,textarea:-webkit-autofill:hover,textarea:-webkit-autofill:focus,select:-webkit-autofill,select:-webkit-autofill:hover,select:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-primary);-webkit-box-shadow:0 0 0 1000px var(--bg-input) inset;transition:background-color 9999s ease-in-out 0s}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;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)}.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)}.form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.75rem 2rem;box-shadow:0 1px 4px #0000000a}.form-card+.form-card{margin-top:1.25rem}.badge.badge-pending{background:#eab3081a;color:#b45309}.badge.badge-paid{background:#22c55e1a;color:#15803d}.badge.badge-overdue{background:#ef44441f;color:#b91c1c}.badge.badge-open{background:#007bc01a;color:#007bc0}.badge.badge-closed{background:var(--ui-bg-subtle);color:var(--ui-text-muted)}.badge.badge-in-progress{background:#8b5cf61a;color:#7c3aed}body[data-theme=dark]{--ui-badge-success-bg: rgba(34, 197, 94, .16);--ui-badge-success-text: #4ade80;--ui-badge-danger-bg: rgba(239, 68, 68, .16);--ui-badge-danger-text: #f87171;--ui-badge-warning-bg: rgba(234, 179, 8, .16);--ui-badge-warning-text: #fbbf24;--ui-badge-info-bg: rgba(59, 130, 246, .16);--ui-badge-info-text: #60a5fa}body[data-theme=dark] .badge.badge-paid{background:#22c55e29;color:#4ade80}body[data-theme=dark] .badge.badge-overdue{background:#ef444429;color:#f87171}body[data-theme=dark] .badge.badge-pending{background:#eab30829;color:#fbbf24}body[data-theme=dark] .badge.badge-open{background:#007bc02e;color:#7fcbf7}body[data-theme=dark] .badge.badge-in-progress{background:#8b5cf62e;color:#c4b5fd}.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: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}.detail-tabs{display:flex;gap:.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border)}.detail-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:.875rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.detail-tab:hover{color:var(--text-primary)}.detail-tab.active{color:var(--ui-primary-500);border-bottom-color:var(--ui-primary-500);font-weight:600}.row-identity{display:flex;align-items:center;gap:.65rem}.row-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#0b3a66,#0091d5);color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.no-data{color:var(--text-faint);font-size:.875rem}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--ui-primary-500);border-radius:50%;animation:spin .6s linear infinite}.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}.info-table{width:100%;border-collapse:collapse}.info-table th,.info-table td{padding:.75rem 1.25rem;border-bottom:1px solid var(--border-subtle);font-size:.9375rem;vertical-align:middle}.info-table th{width:40%;text-align:left;font-weight:500;color:var(--text-muted);white-space:nowrap}.info-table td{color:var(--text-primary);text-align:right;word-break:break-word}.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:none}.info-table .valor-fuerte{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-heading)}@media(max-width:640px){.info-table tr,.info-table th,.info-table td{display:block;width:auto}.info-table th{padding-bottom:.15rem;border-bottom:none;font-size:.8125rem;white-space:normal}.info-table td{padding-top:0;text-align:left}}.list-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:1rem}.list-card{background:var(--bg-card);border-radius:12px;padding:1.25rem;box-shadow:0 1px 2px #0f172a0a,0 10px 30px -12px #0f172a1a;display:flex;flex-direction:column;gap:.5rem;cursor:pointer;color:inherit;text-decoration:none;transition:box-shadow .15s}.list-card:hover{box-shadow:0 1px 2px #0f172a0d,0 14px 34px -12px #0f172a2e}.list-card--skel{pointer-events:none}body[data-theme=dark] .list-card{box-shadow:none}body[data-theme=dark] .list-card:hover{box-shadow:0 14px 34px -12px #00000080}.list-card__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.list-card__tag{font-size:.75rem;font-weight:500;color:#007bc0;background:#007bc014;border-radius:4px;padding:.15rem .5rem;text-transform:capitalize}.list-card__name{margin:0;font-size:1rem;font-weight:600;color:var(--text-heading);line-height:1.35}.list-card__ref{display:inline-block;margin-top:2px;font-size:.72rem;font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums}.list-card__desc{margin:0;font-size:.875rem;color:var(--text-muted);line-height:1.5;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.list-card__footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border-subtle)}.list-card__meta{font-size:.75rem;color:var(--text-faint)}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;flex-wrap:wrap;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-primary)}.danger-zone p{margin:0;font-size:.85rem;color:var(--text-muted);line-height:1.5}.renovacion-zone{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;flex-wrap:wrap;border-radius:12px;background:var(--bg-subtle);padding:1.25rem 1.5rem}.renovacion-zone .dz-text{flex:1;min-width:220px}.renovacion-zone h4{margin:0 0 .35rem;font-size:.95rem;color:var(--text-primary)}.renovacion-zone p{margin:0;font-size:.85rem;color:var(--text-muted);line-height:1.5}.modal-backdrop{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-dialog{padding:0;border:none;background:transparent;width:100%;max-width:min(440px,100% - 2rem);max-height:calc(100dvh - 2rem);color:inherit}.modal-dialog::backdrop{background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .15s ease}.modal-dialog.modal-dialog--wide{max-width:min(620px,100% - 2rem)}.modal-dialog.modal-dialog--wide .modal-box{max-width:620px}.modal-box{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;width:100%;max-width:440px;max-height:inherit;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003;overflow:hidden;animation:slideUp .18s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:1.125rem 1.25rem .875rem;border-bottom:1px solid var(--border-subtle)}.modal-header h3{margin:0;font-size:1rem;font-weight:700;color:var(--text-heading)}.modal-close-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1rem;padding:4px 8px;border-radius:4px}.modal-close-btn:hover{background:var(--bg-subtle)}.modal-body{padding:1.125rem 1.25rem;flex:1;min-height:0;overflow-y:auto}.modal-body p{margin:0 0 .75rem;font-size:.9rem;color:var(--text-primary);line-height:1.55}.modal-footer{display:flex;flex-shrink:0;justify-content:flex-end;gap:.625rem;padding:.875rem 1.25rem;border-top:1px solid var(--border-subtle);background:var(--bg-subtle)}.detail-aside-layout{display:flex;gap:1.5rem;align-items:flex-start;margin-top:1.25rem}.detail-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;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;transition:background .12s,color .12s}.aside-nav-btn:hover{background:var(--bg-subtle);color:var(--text-heading)}.aside-nav-btn.active{background:#007bc01a;color:#007bc0;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}.tab-badge{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:18px;height:18px;background:#007bc01f;color:#3db4f2;border-radius:9px;font-size:.7rem;font-weight:700;line-height:1;padding:0 5px}.tab-badge--alert{background:#ef444426;color:#ef4444}.detail-aside-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1.25rem}.detail-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>*{animation:none}}@media(max-width:768px){.detail-aside-layout{flex-direction:column;align-items:stretch}.detail-aside-nav{width:100%;flex-direction:row;flex-wrap:wrap;position:static}.aside-nav-btn{width:auto}}.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}}.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*{animation:stagger-in .5s cubic-bezier(.22,1,.36,1) backwards;animation-delay:calc(var(--stagger-base, 0ms) + var(--stagger-index, 0) * 70ms)}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(1){--stagger-index: 0}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(2){--stagger-index: 1}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(3){--stagger-index: 2}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(4){--stagger-index: 3}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(5){--stagger-index: 4}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(6){--stagger-index: 5}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(7){--stagger-index: 6}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(8){--stagger-index: 7}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(9){--stagger-index: 8}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(10){--stagger-index: 9}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(11){--stagger-index: 10}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(12){--stagger-index: 11}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(13){--stagger-index: 12}:is(.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*):nth-child(n+14){--stagger-index: 12}.planes-grid{--stagger-base: .2s}@keyframes stagger-in{0%{opacity:0;transform:translateY(14px)}}@media(prefers-reduced-motion:reduce){.stagger>:not(app-consulta-modal),.planes-grid>*,.list-cards>*,.domain-grid>*{animation:none}}.cdk-overlay-container{z-index:1100}.field-hint{font-size:.8rem;font-weight:400;color:var(--text-muted)}
