@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-down{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-ring{0%{transform:scale(1);opacity:.6}to{transform:scale(1.6);opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes counter-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fade-in .4s ease both}.animate-fade-up{animation:fade-up .5s cubic-bezier(0,0,.2,1) both}.animate-fade-down{animation:fade-down .4s ease both}.animate-scale-in{animation:scale-in .3s cubic-bezier(.34,1.56,.64,1) both}.animate-slide-right{animation:slide-in-right .4s ease both}.animate-float{animation:float 3s ease-in-out infinite}.stagger-children>*{animation:fade-up .5s cubic-bezier(0,0,.2,1) both}.stagger-children>*:nth-child(1){animation-delay:0ms}.stagger-children>*:nth-child(2){animation-delay:60ms}.stagger-children>*:nth-child(3){animation-delay:.12s}.stagger-children>*:nth-child(4){animation-delay:.18s}.stagger-children>*:nth-child(5){animation-delay:.24s}.stagger-children>*:nth-child(6){animation-delay:.3s}.stagger-children>*:nth-child(7){animation-delay:.36s}.stagger-children>*:nth-child(8){animation-delay:.42s}.stagger-children>*:nth-child(9){animation-delay:.48s}.stagger-children>*:nth-child(10){animation-delay:.54s}.stagger-children>*:nth-child(11){animation-delay:.6s}.stagger-children>*:nth-child(12){animation-delay:.66s}.spin{animation:spin 1s linear infinite;display:inline-block}.skeleton{background:linear-gradient(90deg,var(--bg-subtle) 25%,var(--bg-card) 50%,var(--bg-subtle) 75%);background-size:200% 100%;animation:shimmer 1.6s infinite;border-radius:6px}@media(prefers-reduced-motion:no-preference){::view-transition-old(root){animation:.22s ease-in both fade-out-view}::view-transition-new(root){animation:.28s ease-out both fade-in-view}}@keyframes fade-out-view{0%{opacity:1}to{opacity:0}}@keyframes fade-in-view{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.text-display-xl{font-size:clamp(2.75rem,6vw,4.5rem);font-weight:800;line-height:1.08;letter-spacing:-.03em}.text-display-lg{font-size:clamp(2.25rem,4.5vw,3.5rem);font-weight:800;line-height:1.1;letter-spacing:-.025em}.text-display-md{font-size:clamp(1.75rem,3vw,2.5rem);font-weight:700;line-height:1.14;letter-spacing:-.02em}.text-h1{font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700;line-height:1.2;letter-spacing:-.018em}.text-h2{font-size:clamp(1.25rem,2vw,1.625rem);font-weight:600;line-height:1.25;letter-spacing:-.015em}.text-h3{font-size:1.125rem;font-weight:600;line-height:1.3;letter-spacing:-.01em}.text-body-lg{font-size:1.0625rem;font-weight:400;line-height:1.65}.text-body{font-size:.9375rem;font-weight:400;line-height:1.6}.text-body-sm{font-size:.875rem;font-weight:400;line-height:1.55}.text-label{font-size:.8125rem;font-weight:500;line-height:1.4;letter-spacing:.01em}.text-caption{font-size:.75rem;font-weight:400;line-height:1.4}.text-overline{font-size:.6875rem;font-weight:600;line-height:1.4;letter-spacing:.08em;text-transform:uppercase}.text-gradient{background:linear-gradient(135deg,var(--brand-600),var(--accent-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-gradient-brand{background:linear-gradient(135deg,#3b82f6,#8b5cf6,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn{display:inline-flex;align-items:center;gap:8px;padding:0 20px;height:42px;border-radius:9999px;font-family:Inter,sans-serif;font-size:.875rem;font-weight:600;line-height:1;letter-spacing:-.005em;cursor:pointer;border:none;text-decoration:none;white-space:nowrap;transition:all .18s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;-webkit-user-select:none;user-select:none}.btn:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}.btn .material-symbols-rounded{font-size:18px}.btn.btn-sm{height:34px;padding:0 14px;font-size:.8125rem;border-radius:9999px}.btn.btn-sm .material-symbols-rounded{font-size:16px}.btn.btn-lg{height:52px;padding:0 28px;font-size:1rem;border-radius:9999px}.btn.btn-lg .material-symbols-rounded{font-size:20px}.btn.btn-primary{background:linear-gradient(135deg,var(--brand-600) 0%,var(--brand-700) 100%);color:#fff;box-shadow:var(--shadow-brand)}.btn.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-brand-lg);filter:brightness(1.08)}.btn.btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-brand)}.btn.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-base);box-shadow:var(--shadow-xs)}.btn.btn-secondary:hover{background:var(--bg-subtle);border-color:var(--border-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn.btn-secondary:active{transform:translateY(0)}.btn.btn-ghost{background:transparent;color:var(--text-secondary)}.btn.btn-ghost:hover{background:var(--bg-subtle);color:var(--text-primary)}.btn.btn-brand-outline{background:var(--brand-50);color:var(--brand-600);border:1px solid var(--border-brand)}.btn.btn-brand-outline:hover{background:var(--brand-100);border-color:var(--brand-500);transform:translateY(-1px)}.btn.btn-danger{background:var(--red-500);color:#fff}.btn.btn-danger:hover{filter:brightness(1.08)}.btn.btn-icon{width:42px;padding:0;justify-content:center}.btn.btn-icon.btn-sm{width:34px}.btn.btn-icon.btn-lg{width:52px}.btn[disabled],.btn:disabled{opacity:.5;pointer-events:none;cursor:not-allowed;transform:none!important;box-shadow:none!important;filter:none!important}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:14px;box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.4,0,.2,1)}.card.card-hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--border-base)}.card.card-interactive{cursor:pointer}.card.card-interactive:hover{transform:translateY(-3px);box-shadow:var(--shadow-xl);border-color:var(--border-brand)}.card.card-interactive:active{transform:translateY(-1px)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.badge.badge-blue{background:var(--brand-100);color:var(--brand-700)}.badge.badge-cyan{background:#06b6d41a;color:var(--accent-600)}.badge.badge-green{background:var(--green-50);color:var(--green-500)}.badge.badge-yellow{background:var(--yellow-50);color:var(--yellow-500)}.badge.badge-red{background:var(--red-50);color:var(--red-500)}.badge.badge-purple{background:#8b5cf614;color:#7c3aed}.badge.badge-neutral{background:var(--bg-subtle);color:var(--text-secondary)}.badge.badge-featured{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.badge.badge-popular{background:linear-gradient(135deg,#8b5cf6,#6d28d9);color:#fff}.badge.badge-new{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.badge.badge-enterprise{background:linear-gradient(135deg,#1e40af,#1e3a8a);color:#fff}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:9999px;font-size:.8125rem;font-weight:500;border:1px solid var(--border-base);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all .16s ease}.chip:hover{background:var(--bg-subtle);border-color:var(--border-strong);color:var(--text-primary)}.chip.chip-active{background:var(--brand-100);border-color:var(--border-brand);color:var(--brand-700)}.chip .material-symbols-rounded{font-size:15px}.form-input,.form-select{width:100%;padding:10px 16px;border-radius:10px;border:1px solid var(--border-base);background:var(--bg-card);color:var(--text-primary);font-family:Inter,sans-serif;font-size:.9375rem;transition:border-color .15s ease,box-shadow .15s ease;outline:none}.form-input::placeholder,.form-select::placeholder{color:var(--text-muted)}.form-input:focus,.form-select:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.form-select{appearance:none;cursor:pointer;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238494ad' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.divider{border:none;border-top:1px solid var(--border-subtle);margin:0}.container{width:100%;padding:0 24px}@media(min-width:640px){.container{padding:0 32px}}@media(min-width:1024px){.container{padding:0 48px}}@media(min-width:1280px){.container{padding:0 64px}}.container-narrow{width:100%;max-width:860px;margin:0 auto;padding:0 24px}@media(min-width:1024px){.container-narrow{padding:0 40px}}.section-gap{padding-top:clamp(60px,8vw,100px);padding-bottom:clamp(60px,8vw,100px)}.section-gap-sm{padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(40px,5vw,64px)}.icon-box{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:var(--brand-100);color:var(--brand-600);flex-shrink:0}.icon-box .material-symbols-rounded{font-size:22px}.icon-box.icon-box-sm{width:36px;height:36px;border-radius:9px}.icon-box.icon-box-sm .material-symbols-rounded{font-size:18px}.icon-box.icon-box-lg{width:60px;height:60px;border-radius:16px}.icon-box.icon-box-lg .material-symbols-rounded{font-size:28px}.rating-stars{display:inline-flex;gap:1px;color:var(--yellow-400);font-size:14px}.rating-stars .material-symbols-rounded{font-size:15px}.spinner{width:20px;height:20px;border:2px solid var(--border-base);border-top-color:var(--brand-500);border-radius:50%;animation:spin .7s linear infinite}.price-badge{display:inline-flex;align-items:baseline;gap:3px}.price-badge .price-from{font-size:.7rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.price-badge .price-value{font-size:1.125rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.price-badge .price-period{font-size:.75rem;font-weight:400;color:var(--text-muted)}.price-badge.price-free .price-value{color:var(--green-500)}.price-badge.price-contact .price-value{font-size:.875rem;font-weight:600;color:var(--text-secondary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--brand-200);color:var(--brand-900)}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:4px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.no-select{-webkit-user-select:none;user-select:none}.cursor-pointer{cursor:pointer}.pointer-none{pointer-events:none}:root,[data-theme=light]{--font-sans: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, system-ui, sans-serif;--font-mono: ui-monospace, SF Mono, Fira Code, Consolas, monospace;--bg-base: #f6f8fd;--bg-card: #ffffff;--bg-subtle: #eef1f8;--bg-overlay: rgba(255, 255, 255, .85);--bg-glass: rgba(255, 255, 255, .72);--bg-nav: rgba(252, 253, 255, .88);--text-primary: #0c1930;--text-secondary: #445470;--text-muted: #8494ad;--text-inverse: #ffffff;--text-brand: #1d4ed8;--brand-50: #eff6ff;--brand-100: #dbeafe;--brand-200: #bfdbfe;--brand-300: #93c5fd;--brand-500: #3b82f6;--brand-600: #2563eb;--brand-700: #1d4ed8;--brand-800: #1e40af;--brand-900: #1e3a8a;--accent-400: #22d3ee;--accent-500: #06b6d4;--accent-600: #0891b2;--green-400: #34d399;--green-500: #10b981;--green-50: #ecfdf5;--yellow-400: #fbbf24;--yellow-500: #f59e0b;--yellow-50: #fffbeb;--red-400: #f87171;--red-500: #ef4444;--red-50: #fef2f2;--border-subtle: rgba(0, 0, 0, .06);--border-base: rgba(0, 0, 0, .1);--border-strong: rgba(0, 0, 0, .18);--border-brand: rgba(59, 130, 246, .35);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 14px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .1), 0 4px 8px rgba(0, 0, 0, .05);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .12), 0 8px 16px rgba(0, 0, 0, .06);--shadow-brand: 0 4px 20px rgba(37, 99, 235, .2);--shadow-brand-lg: 0 8px 40px rgba(37, 99, 235, .28);--cat-core: #1e3a8a;--cat-aml: #7c2d12;--cat-kyc: #14532d;--cat-fraud: #7f1d1d;--cat-payments: #1e3a8a;--cat-onboard: #0c4a6e;--cat-lending: #2d1b6b;--cat-ledger: #064e3b;--cat-cards: #4c1d95;--cat-treasury: #052e16;--cat-compliance: #1a2e05;--cat-data: #0f172a}[data-theme=dark]{--font-sans: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, system-ui, sans-serif;--font-mono: ui-monospace, SF Mono, Fira Code, Consolas, monospace;--bg-base: #080e1c;--bg-card: #0e1628;--bg-subtle: #141f35;--bg-overlay: rgba(14, 22, 40, .9);--bg-glass: rgba(14, 22, 40, .75);--bg-nav: rgba(8, 14, 28, .9);--text-primary: #e2eaf6;--text-secondary: #8fa4c4;--text-muted: #546070;--text-inverse: #0c1930;--text-brand: #60a5fa;--brand-50: rgba(59, 130, 246, .06);--brand-100: rgba(59, 130, 246, .1);--brand-200: rgba(59, 130, 246, .16);--brand-300: rgba(59, 130, 246, .28);--brand-500: #3b82f6;--brand-600: #60a5fa;--brand-700: #93c5fd;--brand-800: #bfdbfe;--brand-900: #dbeafe;--accent-400: #22d3ee;--accent-500: #06b6d4;--accent-600: #67e8f9;--green-400: #34d399;--green-500: #6ee7b7;--green-50: rgba(16, 185, 129, .08);--yellow-400: #fbbf24;--yellow-500: #fcd34d;--yellow-50: rgba(245, 158, 11, .08);--red-400: #f87171;--red-500: #fca5a5;--red-50: rgba(239, 68, 68, .08);--border-subtle: rgba(255, 255, 255, .05);--border-base: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--border-brand: rgba(96, 165, 250, .25);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 14px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .25);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .6), 0 4px 8px rgba(0, 0, 0, .3);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .7), 0 8px 16px rgba(0, 0, 0, .4);--shadow-brand: 0 4px 20px rgba(59, 130, 246, .18);--shadow-brand-lg: 0 8px 40px rgba(59, 130, 246, .25);--cat-core: #60a5fa;--cat-aml: #fb923c;--cat-kyc: #4ade80;--cat-fraud: #f87171;--cat-payments: #818cf8;--cat-onboard: #38bdf8;--cat-lending: #a78bfa;--cat-ledger: #34d399;--cat-cards: #c084fc;--cat-treasury: #86efac;--cat-compliance: #bef264;--cat-data: #94a3b8}.header-eyebrow{font-size:.6875rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.header-title{font-size:clamp(1.5rem,3vw,2rem);font-weight:700;color:var(--text-primary);letter-spacing:-.02em;line-height:1.2}.header-subtitle{font-size:.9375rem;color:var(--text-muted);margin-top:4px}.dash-header{display:flex;flex-direction:column;gap:20px;margin-bottom:32px}@media(min-width:768px){.dash-header{flex-direction:row;align-items:flex-end;justify-content:space-between}}.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex-shrink:0}.page-header{padding-top:32px;margin-bottom:28px}.header-content{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}@media(min-width:1024px){.header-content{align-items:center}}.header-text{flex:1;min-width:0}.page-title{font-size:clamp(1.5rem,3vw,2rem);font-weight:700;color:var(--text-primary);letter-spacing:-.02em;line-height:1.2}.page-subtitle{font-size:.9375rem;color:var(--text-muted);margin-top:4px}.filters-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:14px;padding-bottom:4px}.table-section{padding-bottom:0}.table-card{overflow:hidden;position:relative}.table-progress{position:absolute;top:0;left:0;right:0;z-index:10}.error-banner{display:flex;align-items:center;gap:10px;padding:14px 24px;font-size:.875rem;font-weight:500;color:var(--red-500);background:var(--red-50);border-bottom:1px solid rgba(239,68,68,.12)}.error-banner .material-symbols-rounded{font-size:18px;flex-shrink:0}.no-data-row{display:flex;width:100%;height:auto!important;min-height:unset!important}.no-data-row td{flex:1;height:auto;display:flex;justify-content:center;padding:0}.no-data-row .empty-state{width:100%}.material-symbols-rounded{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24;font-style:normal;line-height:1;display:inline-block;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;-webkit-user-select:none;user-select:none;vertical-align:middle}.symbol-outline{font-variation-settings:"FILL" 0,"wght" 300,"GRAD" 0,"opsz" 24}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.6;color:var(--text-primary);background:var(--bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .22s ease,color .22s ease;min-height:100vh}img,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea,select{font-family:inherit}ul,ol{list-style:none}mat-table,mat-header-cell,mat-cell,mat-footer-cell,mat-paginator{font-family:var(--font-sans)!important}html{--mat-sys-body-large-font: var(--font-sans);--mat-sys-body-medium-font: var(--font-sans);--mat-sys-body-small-font: var(--font-sans);--mat-sys-label-large-font: var(--font-sans);--mat-sys-label-medium-font: var(--font-sans);--mat-sys-label-small-font: var(--font-sans);--mat-sys-title-large-font: var(--font-sans);--mat-sys-title-medium-font: var(--font-sans);--mat-sys-title-small-font: var(--font-sans);--mat-sys-headline-large-font: var(--font-sans);--mat-sys-headline-medium-font: var(--font-sans);--mat-sys-headline-small-font: var(--font-sans);--mat-sys-display-large-font: var(--font-sans);--mat-sys-display-medium-font: var(--font-sans);--mat-sys-display-small-font: var(--font-sans);--mdc-typography-font-family: var(--font-sans);--mdc-typography-body1-font-family: var(--font-sans);--mdc-typography-body2-font-family: var(--font-sans);--mdc-typography-subtitle1-font-family: var(--font-sans);--mdc-typography-subtitle2-font-family: var(--font-sans);--mdc-typography-button-font-family: var(--font-sans);--mdc-typography-caption-font-family: var(--font-sans);--mdc-typography-overline-font-family: var(--font-sans);--mdc-typography-headline6-font-family: var(--font-sans)}.mat-mdc-form-field{font-family:var(--font-sans);--mdc-outlined-text-field-container-shape: 8px;--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 1px;--mdc-outlined-text-field-outline-color: var(--border-base);--mdc-outlined-text-field-hover-outline-color: var(--border-strong);--mdc-outlined-text-field-focus-outline-color: var(--brand-500);--mdc-outlined-text-field-disabled-outline-color: var(--border-subtle);--mdc-outlined-text-field-error-outline-color: var(--red-400);--mdc-outlined-text-field-error-hover-outline-color: var(--red-500);--mdc-outlined-text-field-error-focus-outline-color: var(--red-500);--mdc-outlined-text-field-input-text-color: var(--text-primary);--mdc-outlined-text-field-disabled-input-text-color: var(--text-muted);--mdc-outlined-text-field-label-text-color: var(--text-muted);--mdc-outlined-text-field-hover-label-text-color: var(--text-secondary);--mdc-outlined-text-field-focus-label-text-color: var(--brand-600);--mdc-outlined-text-field-error-label-text-color: var(--red-500);--mdc-outlined-text-field-input-text-font: var(--font-sans);--mdc-outlined-text-field-input-text-size: .875rem;--mdc-outlined-text-field-label-text-font: var(--font-sans);--mdc-outlined-text-field-label-text-size: .875rem;--mdc-outlined-text-field-label-text-weight: 400;--mat-form-field-subscript-text-font: var(--font-sans);--mat-form-field-subscript-text-size: .75rem}.mat-mdc-form-field .mdc-text-field--outlined{background:var(--bg-card);border-radius:8px}.mat-mdc-form-field:focus-within .mdc-text-field--outlined{box-shadow:0 0 0 3px #3b82f61f}.mat-mdc-form-field.mat-form-field-invalid:focus-within .mdc-text-field--outlined{box-shadow:0 0 0 3px #ef44441a}.mat-mdc-form-field .mat-mdc-form-field-error{font-family:var(--font-sans);font-size:.75rem;color:var(--red-500)}.mat-mdc-form-field .mat-mdc-form-field-hint{font-family:var(--font-sans);font-size:.75rem;color:var(--text-muted)}.mat-mdc-select{font-family:var(--font-sans);--mat-select-trigger-text-font: var(--font-sans);--mat-select-trigger-text-size: .875rem}.mat-mdc-option{font-family:var(--font-sans);--mat-option-label-text-font: var(--font-sans);--mat-option-label-text-size: .875rem}.mat-mdc-select-panel{border-radius:10px!important;box-shadow:var(--shadow-lg)!important;border:1px solid var(--border-base)!important;background:var(--bg-card)!important}.mat-mdc-paginator-page-size-select{margin:0!important}.mat-mdc-paginator-page-size-select .mat-mdc-text-field-wrapper{background:var(--bg-card)!important;border-radius:10px!important;height:42px!important;padding:0!important;transition:box-shadow .15s ease}.mat-mdc-paginator-page-size-select .mdc-notched-outline__leading,.mat-mdc-paginator-page-size-select .mdc-notched-outline__notch,.mat-mdc-paginator-page-size-select .mdc-notched-outline__trailing{border-color:var(--border-base)!important;border-width:1px!important}.mat-mdc-paginator-page-size-select .mdc-notched-outline__leading{border-radius:10px 0 0 10px!important}.mat-mdc-paginator-page-size-select .mdc-notched-outline__trailing{border-radius:0 10px 10px 0!important}.mat-mdc-paginator-page-size-select:not(.mat-focused):hover .mdc-notched-outline__leading,.mat-mdc-paginator-page-size-select:not(.mat-focused):hover .mdc-notched-outline__notch,.mat-mdc-paginator-page-size-select:not(.mat-focused):hover .mdc-notched-outline__trailing{border-color:var(--border-strong)!important}.mat-mdc-paginator-page-size-select.mat-focused .mdc-notched-outline__leading,.mat-mdc-paginator-page-size-select.mat-focused .mdc-notched-outline__notch,.mat-mdc-paginator-page-size-select.mat-focused .mdc-notched-outline__trailing{border-color:var(--brand-500)!important;border-width:1px!important}.mat-mdc-paginator-page-size-select.mat-focused .mat-mdc-text-field-wrapper{box-shadow:0 0 0 3px var(--brand-100)!important}.mat-mdc-paginator-page-size-select .mat-mdc-form-field-infix{padding:10px 16px!important;min-height:unset!important;border-top:none!important}.mat-mdc-paginator-page-size-select .mat-mdc-select-trigger,.mat-mdc-paginator-page-size-select .mat-mdc-select-value-text{font-family:var(--font-sans)!important;font-size:.9375rem!important;color:var(--text-primary)!important}.mat-mdc-paginator-page-size-select .mat-mdc-select-arrow{color:#8494ad!important}html,body{height:100%}app-root{display:block;height:100%}.page-content{flex:1}.grid{display:grid;gap:24px}.grid.grid-2{grid-template-columns:repeat(2,1fr)}.grid.grid-3{grid-template-columns:repeat(3,1fr)}.grid.grid-4{grid-template-columns:repeat(4,1fr)}.grid.grid-auto-sm{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.grid.grid-auto-md{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}@media(max-width:767px){.grid.grid-2,.grid.grid-3,.grid.grid-4{grid-template-columns:1fr}}@media(min-width:768px)and (max-width:1023px){.grid.grid-3,.grid.grid-4{grid-template-columns:repeat(2,1fr)}}.flex-row{display:flex;align-items:center}.flex-col{display:flex;flex-direction:column}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-6{gap:24px}.bg-hero{background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(59,130,246,.14) 0%,transparent 70%),radial-gradient(ellipse 50% 40% at 80% 60%,rgba(6,182,212,.07) 0%,transparent 60%),var(--bg-base)}.bg-gradient-brand{background:linear-gradient(135deg,var(--brand-700) 0%,#4f46e5 50%,var(--accent-500) 100%)}.bg-mesh{position:relative}.bg-mesh:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--border-subtle) 1px,transparent 1px),linear-gradient(90deg,var(--border-subtle) 1px,transparent 1px);background-size:60px 60px;pointer-events:none}.bg-noise:after{content:"";position:absolute;inset:0;opacity:.018;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:256px 256px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;text-align:center;gap:16px}.empty-state .empty-icon{width:64px;height:64px;border-radius:16px;background:var(--bg-subtle);display:flex;align-items:center;justify-content:center}.empty-state .empty-icon .material-symbols-rounded{font-size:28px;color:var(--text-muted)}.empty-state h3{font-size:1rem;font-weight:600;color:var(--text-primary)}.empty-state p{font-size:.875rem;color:var(--text-muted);max-width:320px}mat-table{width:100%;background:transparent!important;--mat-table-row-item-outline-width: 0}mat-header-row{background:var(--bg-subtle)!important;border-bottom:1px solid var(--border-base)!important;min-height:44px!important}mat-header-cell{font-size:.6875rem!important;font-weight:700!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--text-muted)!important;border-bottom:none!important}mat-row{border-bottom:1px solid var(--border-subtle)!important;min-height:32px!important}mat-row:last-child{border-bottom:none!important}mat-cell{color:var(--text-primary);border-bottom:none!important;font-size:.875rem}.data-row{cursor:pointer;transition:background .15s ease}.data-row:hover{background:var(--bg-subtle)!important}.data-row:active{background:var(--brand-50)!important}.row-action-btn{opacity:0;transition:opacity .15s ease}.data-row:hover .row-action-btn{opacity:1}.danger-text{color:var(--red-500)}mat-paginator{background:transparent!important;border-top:1px solid var(--border-subtle)!important;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif!important}mat-paginator ::ng-deep .mat-mdc-paginator-container{padding:10px 16px;min-height:52px;gap:8px;flex-wrap:wrap}mat-paginator ::ng-deep .mat-mdc-paginator-page-size-label{font-size:.8125rem;font-weight:500;color:var(--text-muted);font-family:inherit;margin-right:4px}mat-paginator ::ng-deep .mat-mdc-paginator-page-size-select{font-family:inherit;width:80px;--mdc-outlined-text-field-container-shape: 8px;--mdc-outlined-text-field-outline-width: 1px;--mdc-outlined-text-field-focus-outline-width: 1px;--mdc-outlined-text-field-outline-color: var(--border-base);--mdc-outlined-text-field-hover-outline-color: var(--border-strong);--mdc-outlined-text-field-focus-outline-color: var(--brand-500);--mdc-outlined-text-field-input-text-color: var(--text-primary);--mdc-outlined-text-field-input-text-font: inherit;--mdc-outlined-text-field-input-text-size: .8125rem;--mat-form-field-container-height: 36px;--mat-form-field-container-vertical-padding: 0px}mat-paginator ::ng-deep .mat-mdc-paginator-page-size-select .mdc-text-field--outlined{background:var(--bg-card);border-radius:8px;height:36px;padding:0!important}mat-paginator ::ng-deep .mat-mdc-paginator-page-size-select .mdc-notched-outline__notch{border-top:1px solid var(--border-base)!important}mat-paginator ::ng-deep .mat-mdc-paginator-page-size-select .mdc-notched-outline--notched .mdc-notched-outline__notch{border-top:none!important}mat-paginator ::ng-deep .mat-mdc-paginator-page-size-select .mat-mdc-form-field-infix{padding-top:0!important;padding-bottom:0!important;min-height:36px;display:flex;align-items:center}mat-paginator ::ng-deep .mat-mdc-paginator-page-size-select .mat-mdc-select-trigger{height:36px;font-size:.8125rem;font-family:inherit}mat-paginator ::ng-deep .mat-mdc-paginator-page-size-select .mat-mdc-select-value{font-size:.8125rem;font-family:inherit;color:var(--text-primary)}mat-paginator ::ng-deep .mat-mdc-paginator-page-size-select .mat-mdc-select-arrow svg{fill:var(--text-muted)}mat-paginator ::ng-deep .mat-mdc-paginator-page-size-select:focus-within .mdc-text-field--outlined{box-shadow:0 0 0 3px #3b82f61f}mat-paginator ::ng-deep .mat-mdc-paginator-range-label{font-size:.8125rem;font-weight:500;color:var(--text-secondary);font-family:inherit;font-variant-numeric:tabular-nums;margin:0 8px}mat-paginator ::ng-deep .mat-mdc-paginator-navigation-first,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-previous,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-next,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-last{width:32px;height:32px;border-radius:8px!important;border:1px solid var(--border-base);background:var(--bg-card);color:var(--text-secondary);transition:border-color .14s ease,background .14s ease,color .14s ease;display:flex;align-items:center;justify-content:center}mat-paginator ::ng-deep .mat-mdc-paginator-navigation-first:hover:not([disabled]),mat-paginator ::ng-deep .mat-mdc-paginator-navigation-previous:hover:not([disabled]),mat-paginator ::ng-deep .mat-mdc-paginator-navigation-next:hover:not([disabled]),mat-paginator ::ng-deep .mat-mdc-paginator-navigation-last:hover:not([disabled]){border-color:var(--border-strong);background:var(--bg-subtle);color:var(--text-primary)}mat-paginator ::ng-deep .mat-mdc-paginator-navigation-first[disabled],mat-paginator ::ng-deep .mat-mdc-paginator-navigation-previous[disabled],mat-paginator ::ng-deep .mat-mdc-paginator-navigation-next[disabled],mat-paginator ::ng-deep .mat-mdc-paginator-navigation-last[disabled]{opacity:.38;cursor:not-allowed;pointer-events:none}mat-paginator ::ng-deep .mat-mdc-paginator-navigation-first .mat-mdc-button-touch-target,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-previous .mat-mdc-button-touch-target,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-next .mat-mdc-button-touch-target,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-last .mat-mdc-button-touch-target{display:none}mat-paginator ::ng-deep .mat-mdc-paginator-navigation-first .mat-icon,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-first svg,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-previous .mat-icon,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-previous svg,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-next .mat-icon,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-next svg,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-last .mat-icon,mat-paginator ::ng-deep .mat-mdc-paginator-navigation-last svg{width:18px;height:18px}mat-paginator ::ng-deep .mat-mdc-paginator-range-actions{gap:4px;display:flex;align-items:center}.audit-flow-dialog{--mdc-dialog-container-shape: 0px}.audit-flow-dialog .mat-mdc-dialog-container,.audit-flow-dialog .mdc-dialog__container,.audit-flow-dialog .mdc-dialog__surface{border-radius:0!important;max-width:100vw!important;max-height:100dvh!important}.audit-flow-dialog .mat-mdc-dialog-surface,.audit-flow-dialog .mdc-dialog__surface{padding:0!important;display:flex!important;flex-direction:column;height:100dvh!important;overflow:hidden!important}.fullscreen-client-dialog{--mdc-dialog-container-shape: 0px}.fullscreen-client-dialog .mat-mdc-dialog-container,.fullscreen-client-dialog .mdc-dialog__container,.fullscreen-client-dialog .mdc-dialog__surface{border-radius:0!important;max-width:100vw!important;max-height:100dvh!important}.fullscreen-client-dialog .mat-mdc-dialog-surface,.fullscreen-client-dialog .mdc-dialog__surface{padding:0!important;display:flex!important;flex-direction:column;height:100dvh!important;overflow:hidden!important}html{--mat-sys-background: #faf9fd;--mat-sys-error: #ba1a1a;--mat-sys-error-container: #ffdad6;--mat-sys-inverse-on-surface: #f2f0f4;--mat-sys-inverse-primary: #abc7ff;--mat-sys-inverse-surface: #2f3033;--mat-sys-on-background: #1a1b1f;--mat-sys-on-error: #ffffff;--mat-sys-on-error-container: #93000a;--mat-sys-on-primary: #ffffff;--mat-sys-on-primary-container: #00458f;--mat-sys-on-primary-fixed: #001b3f;--mat-sys-on-primary-fixed-variant: #00458f;--mat-sys-on-secondary: #ffffff;--mat-sys-on-secondary-container: #3e4759;--mat-sys-on-secondary-fixed: #131c2b;--mat-sys-on-secondary-fixed-variant: #3e4759;--mat-sys-on-surface: #1a1b1f;--mat-sys-on-surface-variant: #44474e;--mat-sys-on-tertiary: #ffffff;--mat-sys-on-tertiary-container: #0000ef;--mat-sys-on-tertiary-fixed: #00006e;--mat-sys-on-tertiary-fixed-variant: #0000ef;--mat-sys-outline: #74777f;--mat-sys-outline-variant: #c4c6d0;--mat-sys-primary: #005cbb;--mat-sys-primary-container: #d7e3ff;--mat-sys-primary-fixed: #d7e3ff;--mat-sys-primary-fixed-dim: #abc7ff;--mat-sys-scrim: #000000;--mat-sys-secondary: #565e71;--mat-sys-secondary-container: #dae2f9;--mat-sys-secondary-fixed: #dae2f9;--mat-sys-secondary-fixed-dim: #bec6dc;--mat-sys-shadow: #000000;--mat-sys-surface: #faf9fd;--mat-sys-surface-bright: #faf9fd;--mat-sys-surface-container: #efedf0;--mat-sys-surface-container-high: #e9e7eb;--mat-sys-surface-container-highest: #e3e2e6;--mat-sys-surface-container-low: #f4f3f6;--mat-sys-surface-container-lowest: #ffffff;--mat-sys-surface-dim: #dbd9dd;--mat-sys-surface-tint: #005cbb;--mat-sys-surface-variant: #e0e2ec;--mat-sys-tertiary: #343dff;--mat-sys-tertiary-container: #e0e0ff;--mat-sys-tertiary-fixed: #e0e0ff;--mat-sys-tertiary-fixed-dim: #bec2ff;--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}
