@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=Instrument+Serif:ital@0;1&display=swap";:root{--nf-navy: #002858;--nf-navy-deep: #001a3d;--nf-navy-light: #003a7a;--nf-orange: #ff8204;--nf-orange-hot: #ff9a2e;--nf-teal: #00a4e4;--nf-teal-dim: #0082b8;--nf-green: #22d081;--nf-gold: #ffc535;--nf-red: #ef4444;--nf-surface-0: #0a0f1a;--nf-surface-1: #111827;--nf-surface-2: #1a2235;--nf-surface-3: #222d42;--nf-surface-4: #2c3a54;--nf-border: rgba(255, 255, 255, .06);--nf-border-lit: rgba(255, 255, 255, .12);--nf-text-primary: #f0f2f5;--nf-text-secondary: #8899af;--nf-text-muted: #7a8fa1;--nf-glow-orange: rgba(255, 130, 4, .35);--nf-glow-teal: rgba(0, 164, 228, .3);--nf-glow-green: rgba(34, 208, 129, .25);--nf-font-display: "Instrument Serif", Georgia, serif;--nf-font-body: "DM Sans", system-ui, sans-serif;--nf-sidebar-w: 260px;--nf-topbar-h: 64px;--nf-radius-sm: 6px;--nf-radius-md: 10px;--nf-radius-lg: 16px}.nf-app{display:flex;min-height:100vh;background:var(--nf-surface-0);color:var(--nf-text-primary);font-family:var(--nf-font-body);line-height:1.5;-webkit-font-smoothing:antialiased}.nf-sidebar{width:var(--nf-sidebar-w);flex-shrink:0;background:var(--nf-navy-deep);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;border-right:1px solid var(--nf-border)}.nf-sidebar-brand{padding:20px 20px 16px;border-bottom:1px solid var(--nf-border)}.nf-sidebar-brand a{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.nf-brand-logo{width:40px;height:40px;flex-shrink:0}.nf-brand-text{display:flex;flex-direction:column}.nf-brand-name{font-size:16px;font-weight:600;color:var(--nf-text-primary);line-height:1.2}.nf-brand-sub{font-size:10px;font-weight:700;color:var(--nf-orange);letter-spacing:1.2px;text-transform:uppercase;line-height:1.3}.nf-brand-tagline{font-size:11px;color:var(--nf-text-muted);margin-top:6px;padding-left:52px}.nf-sidebar-nav{flex:1;overflow-y:auto;padding:16px 12px}.nf-nav-section{margin-bottom:24px}.nf-nav-heading{font-size:10.5px;font-weight:600;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:1px;padding:0 12px;margin-bottom:8px}.nf-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:var(--nf-radius-sm);border:none;background:none;color:var(--nf-text-secondary);font-family:var(--nf-font-body);font-size:13.5px;font-weight:400;text-decoration:none;cursor:pointer;transition:all .15s ease;position:relative;text-align:left}.nf-nav-item:hover{color:var(--nf-text-primary);background:#ffffff0a}.nf-nav-item.active{color:var(--nf-text-primary);background:#ff820414}.nf-nav-item.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;background:var(--nf-orange);border-radius:0 3px 3px 0}.nf-nav-icon{width:20px;height:20px;flex-shrink:0;opacity:.7}.nf-nav-item.active .nf-nav-icon,.nf-nav-item:hover .nf-nav-icon{opacity:1}.nf-nav-badge{margin-left:auto;background:var(--nf-orange);color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 6px}.nf-nav-chevron{margin-left:auto;width:16px;height:16px;transition:transform .2s ease;opacity:.5}.nf-nav-chevron.open{transform:rotate(90deg)}.nf-nav-submenu{overflow:hidden;transition:max-height .25s ease,opacity .2s ease}.nf-nav-submenu.collapsed{max-height:0;opacity:0}.nf-nav-submenu.expanded{max-height:300px;opacity:1}.nf-nav-subitem{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px 8px 42px;border-radius:var(--nf-radius-sm);border:none;background:none;color:var(--nf-text-secondary);font-family:var(--nf-font-body);font-size:12.5px;font-weight:400;text-decoration:none;cursor:pointer;transition:all .15s ease;text-align:left}.nf-nav-subitem:hover{color:var(--nf-text-primary);background:#ffffff0a}.nf-nav-subitem.active{color:var(--nf-orange);font-weight:500}.nf-sidebar-user{padding:16px;border-top:1px solid var(--nf-border)}.nf-user-button{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border-radius:var(--nf-radius-sm);border:none;background:none;color:var(--nf-text-primary);cursor:pointer;transition:background .15s ease;font-family:var(--nf-font-body);text-align:left}.nf-user-button:hover{background:#ffffff0a}.nf-user-avatar{width:36px;height:36px;border-radius:50%;background:var(--nf-navy-light);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--nf-text-primary);flex-shrink:0}.nf-user-info{display:flex;flex-direction:column;min-width:0}.nf-user-name{font-size:13px;font-weight:500;color:var(--nf-text-primary);line-height:1.3}.nf-user-role{font-size:11px;color:var(--nf-text-muted);line-height:1.3}.nf-logout-btn{display:flex;align-items:center;gap:6px;width:100%;padding:8px 12px;margin-top:8px;border-radius:var(--nf-radius-sm);border:none;background:none;color:var(--nf-text-muted);font-family:var(--nf-font-body);font-size:12px;cursor:pointer;transition:all .15s ease}.nf-logout-btn:hover{color:var(--nf-red);background:#ef444414}.nf-main-wrapper{flex:1;margin-left:var(--nf-sidebar-w);display:flex;flex-direction:column;min-height:100vh}.nf-topbar{height:var(--nf-topbar-h);background:var(--nf-surface-1);border-bottom:1px solid var(--nf-border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:50}.nf-topbar-left{display:flex;align-items:center;gap:16px}.nf-topbar-title{font-family:var(--nf-font-display);font-size:20px;font-weight:700;color:var(--nf-text-primary)}.nf-breadcrumb{display:flex;align-items:center;gap:8px;list-style:none;margin:0;padding:0}.nf-breadcrumb li{font-size:12px;color:var(--nf-text-muted)}.nf-breadcrumb li a{color:var(--nf-text-secondary);text-decoration:none}.nf-breadcrumb li a:hover{color:var(--nf-text-primary)}.nf-breadcrumb-sep{color:var(--nf-text-muted);opacity:.4}.nf-topbar-right{display:flex;align-items:center;gap:12px}.nf-search-box{position:relative;width:260px}.nf-search-box input{width:100%;padding:8px 12px 8px 36px;background:var(--nf-surface-2);border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);color:var(--nf-text-primary);font-size:13px;font-family:var(--nf-font-body);outline:none;transition:border-color .15s ease}.nf-search-box input::placeholder{color:var(--nf-text-muted)}.nf-search-box input:focus{border-color:var(--nf-teal)}.nf-search-box svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--nf-text-muted);pointer-events:none}.nf-search-shortcut{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--nf-text-muted);background:var(--nf-surface-3);padding:2px 6px;border-radius:4px;pointer-events:none}.nf-topbar-btn{width:36px;height:36px;border-radius:var(--nf-radius-sm);border:none;background:none;color:var(--nf-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;position:relative}.nf-topbar-btn:hover{background:var(--nf-surface-2);color:var(--nf-text-primary)}.nf-notif-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;background:var(--nf-orange);border-radius:50%;border:2px solid var(--nf-surface-1)}.nf-content{flex:1;padding:32px}.nf-welcome{background:linear-gradient(135deg,var(--nf-navy) 0%,var(--nf-navy-deep) 60%,#001230 100%);border:1px solid rgba(255,255,255,.05);border-radius:var(--nf-radius-lg);padding:40px 44px;margin-bottom:24px;position:relative;overflow:hidden}.nf-welcome:after{content:"";position:absolute;top:-50%;right:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(255,130,4,.06) 0%,transparent 70%);pointer-events:none}.nf-welcome-label{font-size:11px;font-weight:700;color:var(--nf-orange);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px}.nf-welcome-heading{font-family:var(--nf-font-display);font-size:32px;font-weight:400;font-style:italic;color:var(--nf-text-primary);margin-bottom:12px;line-height:1.2}.nf-welcome-desc{font-size:14px;color:var(--nf-text-secondary);line-height:1.6;max-width:640px}.nf-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.nf-stat-card{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);padding:20px 24px;transition:border-color .15s ease}.nf-stat-card:hover{border-color:var(--nf-border-lit)}.nf-stat-label{font-size:11px;font-weight:600;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px}.nf-stat-value{font-size:32px;font-weight:700;color:var(--nf-text-primary);line-height:1.1;margin-bottom:8px}.nf-stat-change{font-size:12px;font-weight:500;display:flex;align-items:center;gap:4px}.nf-stat-change.up{color:var(--nf-green)}.nf-stat-change.down{color:var(--nf-red)}.nf-stat-change svg{width:14px;height:14px}.nf-panels-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.nf-panel{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);padding:22px 24px}.nf-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.nf-panel-title{font-size:16px;font-weight:600;color:var(--nf-text-primary)}.nf-panel-action{font-size:13px;font-weight:500;color:var(--nf-teal);background:none;border:none;cursor:pointer;font-family:var(--nf-font-body);transition:color .15s ease;text-decoration:none}.nf-panel-action:hover{color:var(--nf-orange-hot)}.nf-activity-list{display:flex;flex-direction:column;gap:8px}.nf-activity-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--nf-surface-2);border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);transition:border-color .15s ease}.nf-activity-row:hover{border-color:var(--nf-border-lit)}.nf-activity-text{font-size:13px;color:var(--nf-text-primary);font-weight:400}.nf-activity-meta{font-size:12px;color:var(--nf-text-muted);white-space:nowrap;margin-left:16px;flex-shrink:0}.nf-priority{font-size:11px;font-weight:500;padding:3px 10px;border-radius:12px;white-space:nowrap;flex-shrink:0;margin-left:16px}.nf-priority.high{background:#ef44441f;color:var(--nf-red)}.nf-priority.medium{background:#ffc5351f;color:var(--nf-gold)}.nf-priority.low{background:#22d0811f;color:var(--nf-green)}.nf-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px}.nf-placeholder-icon{width:64px;height:64px;border-radius:16px;background:var(--nf-surface-2);border:1px solid var(--nf-border);display:flex;align-items:center;justify-content:center;color:var(--nf-orange)}.nf-placeholder-icon svg{width:28px;height:28px}.nf-placeholder h2{font-size:20px;font-weight:600;color:var(--nf-text-primary)}.nf-placeholder p{font-size:14px;color:var(--nf-text-muted);max-width:400px;text-align:center}.nf-footer{padding:16px 32px;border-top:1px solid var(--nf-border);display:flex;align-items:center;justify-content:space-between}.nf-footer-line{width:100%;height:1px;background:var(--nf-border);margin-bottom:0}.nf-footer p{font-size:12px;color:var(--nf-text-muted)}.nf-login{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--nf-surface-0);font-family:var(--nf-font-body);-webkit-font-smoothing:antialiased}.nf-login-card{width:100%;max-width:400px;background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-lg);padding:40px 36px;margin:24px}.nf-login-brand{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:28px}.nf-login-logo{width:56px;height:56px;margin-bottom:4px}.nf-login-brand-name{font-size:20px;font-weight:600;color:var(--nf-text-primary);line-height:1.2}.nf-login-brand-sub{font-size:10px;font-weight:700;color:var(--nf-orange);letter-spacing:1.5px;text-transform:uppercase}.nf-login-heading{font-family:var(--nf-font-body);font-size:18px;font-weight:600;color:var(--nf-text-primary);text-align:center;margin-bottom:24px}.nf-login-error{background:#ef44441a;border:1px solid rgba(239,68,68,.25);border-radius:var(--nf-radius-sm);padding:10px 14px;margin-bottom:20px;font-size:13px;color:var(--nf-red);text-align:center}.nf-login-field{margin-bottom:18px}.nf-login-label{display:block;font-size:13px;font-weight:500;color:var(--nf-text-secondary);margin-bottom:6px}.nf-login-input{width:100%;padding:10px 14px;background:var(--nf-surface-2);border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);color:var(--nf-text-primary);font-size:14px;font-family:var(--nf-font-body);outline:none;transition:border-color .15s ease;box-sizing:border-box}.nf-login-input::placeholder{color:var(--nf-text-muted)}.nf-login-input:focus{border-color:var(--nf-orange);box-shadow:0 0 0 2px var(--nf-glow-orange)}.nf-login-input-error{border-color:var(--nf-red)}.nf-login-input-error:focus{border-color:var(--nf-red);box-shadow:0 0 0 2px #ef444433}.nf-login-field-error{display:block;font-size:12px;color:var(--nf-red);margin-top:4px}.nf-login-submit{width:100%;padding:11px 20px;background:var(--nf-orange);border:none;border-radius:var(--nf-radius-sm);color:#fff;font-size:14px;font-weight:600;font-family:var(--nf-font-body);cursor:pointer;transition:background .15s ease;margin-top:6px}.nf-login-submit:hover:not(:disabled){background:var(--nf-orange-hot)}.nf-login-submit:disabled{opacity:.7;cursor:not-allowed}.nf-login-footer{font-size:11px;color:var(--nf-text-muted);text-align:center;margin-top:24px}.nf-subscribe-success{background:#22d0811a;border:1px solid rgba(34,208,129,.25);border-radius:var(--nf-radius-sm);padding:14px;margin-bottom:20px;font-size:14px;color:var(--nf-green);text-align:center;font-weight:500}.nf-subscribe-hints{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:4px 12px}.nf-subscribe-hint,.nf-subscribe-hint-pass{font-size:11px;color:var(--nf-text-muted)}.nf-subscribe-hint-pass{color:var(--nf-green)}.nf-subscribe-login-link{font-size:13px;color:var(--nf-text-secondary);text-align:center;margin-top:18px;margin-bottom:0}.nf-subscribe-link{color:var(--nf-orange);text-decoration:none;font-weight:500}.nf-subscribe-link:hover{text-decoration:underline}.nf-mfa-card{max-width:440px}.nf-mfa-email{font-size:14px;color:var(--nf-teal);text-align:center;margin:0 0 16px;font-weight:500}.nf-mfa-instruction{font-size:14px;color:var(--nf-text-secondary);text-align:center;margin:0 0 20px;line-height:1.6}.nf-mfa-qr-container{display:flex;justify-content:center;margin-bottom:16px}.nf-mfa-qr{border-radius:var(--nf-radius-sm);background:#fff;padding:8px}.nf-mfa-manual-key{font-size:12px;color:var(--nf-text-muted);text-align:center;margin:0 0 20px}.nf-mfa-manual-key code{font-family:DM Mono,monospace;font-size:13px;color:var(--nf-gold);background:var(--nf-surface-3);padding:2px 8px;border-radius:4px;letter-spacing:1px}.nf-mfa-success{font-size:15px;color:var(--nf-green);text-align:center;margin:20px 0;font-weight:500}.nf-matrix-wrapper{display:flex;flex-direction:column;gap:20px}.nf-matrix-header{display:flex;flex-direction:column;gap:6px}.nf-matrix-title{font-size:20px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-matrix-subtitle{font-size:13px;color:var(--nf-text-muted);margin:0}.nf-matrix-scroll{overflow-x:auto;border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);background:var(--nf-surface-1)}.nf-matrix-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.nf-matrix-table thead{position:sticky;top:0;z-index:2}.nf-matrix-table th{padding:12px 16px;text-align:center;font-weight:600;color:var(--nf-text-secondary);background:var(--nf-surface-2);border-bottom:1px solid var(--nf-border-lit);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.nf-matrix-th-perm{text-align:left!important;position:sticky;left:0;z-index:3;background:var(--nf-surface-2)!important;min-width:200px}.nf-matrix-th-role{min-width:120px}.nf-matrix-category-row{cursor:pointer;transition:background .15s ease}.nf-matrix-category-row:hover{background:#ffffff05}.nf-matrix-category-cell{padding:10px 16px;background:var(--nf-surface-3);border-top:1px solid var(--nf-border);border-bottom:1px solid var(--nf-border);display:flex;align-items:center;gap:8px}.nf-matrix-category-name{font-weight:600;font-size:12px;color:var(--nf-orange);text-transform:uppercase;letter-spacing:.8px}.nf-matrix-category-count{font-size:11px;font-weight:500;color:var(--nf-text-muted);background:var(--nf-surface-4);padding:1px 8px;border-radius:10px}.nf-matrix-chevron{transition:transform .2s ease;color:var(--nf-text-muted);flex-shrink:0}.nf-matrix-chevron.expanded{transform:rotate(90deg)}.nf-matrix-perm-row{transition:background .1s ease}.nf-matrix-perm-row:hover{background:#ffffff05}.nf-matrix-perm-row.nf-matrix-row-diff{background:#ff82040a}.nf-matrix-perm-row.nf-matrix-row-diff:hover{background:#ff820412}.nf-matrix-perm-cell{padding:10px 16px;border-bottom:1px solid var(--nf-border);position:sticky;left:0;background:var(--nf-surface-1);z-index:1}.nf-matrix-perm-row.nf-matrix-row-diff .nf-matrix-perm-cell{background:#111827f2}.nf-matrix-perm-label{position:relative;font-size:13px;color:var(--nf-text-primary);cursor:default}.nf-matrix-tooltip{position:absolute;bottom:calc(100% + 6px);left:0;background:var(--nf-surface-4);color:var(--nf-text-primary);font-size:12px;font-weight:400;padding:6px 10px;border-radius:var(--nf-radius-sm);border:1px solid var(--nf-border-lit);white-space:nowrap;z-index:10;pointer-events:none;box-shadow:0 4px 12px #0000004d}.nf-matrix-check-cell{padding:10px 16px;text-align:center;border-bottom:1px solid var(--nf-border)}.nf-matrix-check-cell.granted{color:var(--nf-green)}.nf-matrix-check-cell.denied{color:var(--nf-text-muted);opacity:.4}.nf-matrix-icon{display:inline-block;vertical-align:middle}.nf-matrix-loading,.nf-matrix-error{display:flex;align-items:center;justify-content:center;min-height:200px;font-size:14px;color:var(--nf-text-muted)}.nf-matrix-error{color:var(--nf-red)}.nf-category-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:24px}.nf-category-card{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);padding:20px 22px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;text-align:left;font-family:var(--nf-font-body);color:var(--nf-text-primary);width:100%}.nf-category-card:hover{border-color:var(--nf-border-lit);box-shadow:0 4px 12px #00000026}.nf-category-card:focus-visible{outline:2px solid var(--nf-orange);outline-offset:2px}.nf-category-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.nf-category-card-name{font-size:14px;font-weight:600;color:var(--nf-orange);text-transform:lowercase;letter-spacing:.3px}.nf-category-card-count{font-size:11px;font-weight:500;color:var(--nf-text-muted);background:var(--nf-surface-3);padding:2px 10px;border-radius:10px}.nf-category-card-roles{display:flex;flex-direction:column;gap:6px}.nf-category-role-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0}.nf-category-role-name{font-size:12px;color:var(--nf-text-secondary);font-weight:400}.nf-category-role-access{font-size:11px;font-weight:600;padding:2px 10px;border-radius:10px}.nf-access-full{background:#22d0811f;color:var(--nf-green)}.nf-access-partial{background:#ffc5351f;color:var(--nf-gold)}.nf-access-none{background:#ef44441a;color:var(--nf-red)}@media(max-width:1100px){.nf-stats-row{grid-template-columns:repeat(2,1fr)}.nf-panels-grid{grid-template-columns:1fr}.nf-category-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.nf-sidebar{display:none}.nf-main-wrapper{margin-left:0}.nf-stats-row,.nf-category-cards{grid-template-columns:1fr}}.nf-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nf-modal-card{width:min(90vw,500px);max-height:90vh;background:var(--nf-surface-1);border:1px solid var(--nf-border-lit);border-radius:var(--nf-radius-lg);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 48px #0006}.nf-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--nf-border)}.nf-modal-title{font-size:18px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--nf-text-muted);font-size:20px;cursor:pointer;border-radius:var(--nf-radius-sm);transition:all .15s ease}.nf-modal-close:hover{background:var(--nf-surface-3);color:var(--nf-text-primary)}.nf-modal-body{padding:20px 24px;overflow-y:auto;flex:1}.nf-modal-error{background:#ef44441a;border:1px solid rgba(239,68,68,.25);border-radius:var(--nf-radius-sm);padding:10px 14px;margin-bottom:16px;font-size:13px;color:var(--nf-red)}.nf-modal-field{margin-bottom:16px}.nf-modal-label{display:block;font-size:13px;font-weight:500;color:var(--nf-text-secondary);margin-bottom:6px}.nf-modal-input{width:100%;padding:10px 14px;background:var(--nf-surface-2);border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);color:var(--nf-text-primary);font-size:14px;font-family:var(--nf-font-body);outline:none;transition:border-color .15s ease;box-sizing:border-box}.nf-modal-input::placeholder{color:var(--nf-text-muted)}.nf-modal-input:focus{border-color:var(--nf-orange);box-shadow:0 0 0 2px var(--nf-glow-orange)}.nf-modal-input-error{border-color:var(--nf-red)}.nf-modal-input-error:focus{border-color:var(--nf-red);box-shadow:0 0 0 2px #ef444433}.nf-modal-select{width:100%;padding:10px 36px 10px 14px;background:var(--nf-surface-2);border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);color:var(--nf-text-primary);font-size:14px;font-family:var(--nf-font-body);outline:none;transition:border-color .15s ease;box-sizing:border-box;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%237a8fa1' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.nf-modal-select:focus{border-color:var(--nf-orange);box-shadow:0 0 0 2px var(--nf-glow-orange)}.nf-modal-field-error{display:block;font-size:12px;color:var(--nf-red);margin-top:4px}.nf-modal-toggle-field{display:flex;align-items:center;justify-content:space-between}.nf-modal-toggle{width:40px;height:22px;accent-color:var(--nf-orange);cursor:pointer}.nf-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--nf-border)}.nf-modal-btn-cancel{padding:9px 20px;background:none;border:1px solid var(--nf-border-lit);border-radius:var(--nf-radius-sm);color:var(--nf-text-secondary);font-size:14px;font-weight:500;font-family:var(--nf-font-body);cursor:pointer;transition:all .15s ease}.nf-modal-btn-cancel:hover{background:var(--nf-surface-3);color:var(--nf-text-primary)}.nf-modal-btn-submit{padding:9px 20px;background:var(--nf-orange);border:none;border-radius:var(--nf-radius-sm);color:#fff;font-size:14px;font-weight:600;font-family:var(--nf-font-body);cursor:pointer;transition:background .15s ease}.nf-modal-btn-submit:hover:not(:disabled){background:var(--nf-orange-hot)}.nf-modal-btn-submit:disabled{opacity:.7;cursor:not-allowed}.nf-org-table-wrapper{display:flex;flex-direction:column;gap:16px}.nf-org-table-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.nf-org-search{position:relative;flex:1;max-width:360px}.nf-org-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--nf-text-muted);pointer-events:none}.nf-org-search-input{width:100%;padding:9px 14px 9px 36px;background:var(--nf-surface-2);border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);color:var(--nf-text-primary);font-size:13px;font-family:var(--nf-font-body);outline:none;transition:border-color .15s ease;box-sizing:border-box}.nf-org-search-input::placeholder{color:var(--nf-text-muted)}.nf-org-search-input:focus{border-color:var(--nf-teal)}.nf-org-create-btn{padding:9px 20px;background:var(--nf-orange);border:none;border-radius:var(--nf-radius-sm);color:#fff;font-size:13px;font-weight:600;font-family:var(--nf-font-body);cursor:pointer;transition:background .15s ease;white-space:nowrap}.nf-org-create-btn:hover{background:var(--nf-orange-hot)}.nf-org-grid{border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);background:var(--nf-surface-1);overflow:hidden}.nf-org-header-row{display:grid;grid-template-columns:2fr 1.5fr 1fr 1fr 1.2fr 1.2fr;background:var(--nf-surface-2);border-bottom:1px solid var(--nf-border-lit)}.nf-org-header-cell{padding:12px 16px;font-size:11px;font-weight:600;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.6px;-webkit-user-select:none;user-select:none}.nf-org-header-cell.nf-org-sortable{cursor:pointer;transition:color .15s ease}.nf-org-header-cell.nf-org-sortable:hover{color:var(--nf-text-primary)}.nf-org-sort-indicator{font-size:10px;color:var(--nf-orange)}.nf-org-body{max-height:520px;overflow-y:auto}.nf-org-row{display:grid;grid-template-columns:2fr 1.5fr 1fr 1fr 1.2fr 1.2fr;border-bottom:1px solid var(--nf-border);transition:background .1s ease}.nf-org-row:last-child{border-bottom:none}.nf-org-row:hover{background:#ffffff05}.nf-org-cell{padding:14px 16px;font-size:13px;color:var(--nf-text-primary);display:flex;align-items:center}.nf-org-cell-slug{color:var(--nf-text-secondary);font-family:monospace;font-size:12px}.nf-org-cell-members{font-weight:600;color:var(--nf-teal)}.nf-org-cell-created{color:var(--nf-text-secondary);font-size:12px}.nf-org-cell-actions{gap:8px}.nf-org-badge{font-size:11px;font-weight:500;padding:3px 10px;border-radius:12px;white-space:nowrap}.nf-org-badge-active{background:#22d0811f;color:var(--nf-green)}.nf-org-badge-inactive{background:#ef44441f;color:var(--nf-red)}.nf-org-action-btn{padding:5px 12px;border:1px solid var(--nf-border-lit);border-radius:var(--nf-radius-sm);background:none;font-size:12px;font-weight:500;font-family:var(--nf-font-body);cursor:pointer;transition:all .15s ease}.nf-org-action-edit{color:var(--nf-teal)}.nf-org-action-edit:hover{background:#00a4e41a;border-color:var(--nf-teal-dim)}.nf-org-action-delete{color:var(--nf-red)}.nf-org-action-delete:hover{background:#ef44441a;border-color:var(--nf-red)}.nf-org-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:240px;gap:12px;background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md)}.nf-org-empty-icon{width:48px;height:48px;border-radius:12px;background:var(--nf-surface-2);border:1px solid var(--nf-border);display:flex;align-items:center;justify-content:center;color:var(--nf-text-muted)}.nf-org-empty-icon svg{width:22px;height:22px}.nf-org-empty p{font-size:14px;color:var(--nf-text-muted);margin:0}.nf-org-loading{display:flex;align-items:center;justify-content:center;min-height:200px;font-size:14px;color:var(--nf-text-muted)}.nf-user-management{position:relative;display:flex;flex-direction:column;gap:24px}.nf-user-access-denied{padding:48px 24px;text-align:center;color:var(--nf-text-muted)}.nf-user-access-denied code{background:var(--nf-surface-2);padding:2px 6px;border-radius:var(--nf-radius-sm);font-size:13px}.nf-user-management-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.nf-user-management-title{font-size:22px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-user-stats-row{display:flex;gap:12px;flex-wrap:wrap}.nf-user-stat-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 20px;background:var(--nf-surface-2);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);min-width:100px}.nf-user-stat-value{font-size:20px;font-weight:700;color:var(--nf-text-primary)}.nf-user-stat-label{font-size:12px;font-weight:500;color:var(--nf-text-muted);text-transform:capitalize}.nf-table-container{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);overflow:hidden}.nf-table{width:100%;border-collapse:collapse;font-size:13px}.nf-table thead{background:var(--nf-surface-2)}.nf-table th{padding:12px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid var(--nf-border)}.nf-table td{padding:12px 16px;color:var(--nf-text-primary);border-bottom:1px solid var(--nf-border)}.nf-table tbody tr:hover{background:#ffffff05}.nf-table tbody tr:last-child td{border-bottom:none}.nf-status-badge{font-size:11px;font-weight:500;padding:3px 10px;border-radius:12px;white-space:nowrap}.nf-status-badge.active{background:#22d0811f;color:var(--nf-green)}.nf-status-badge.inactive{background:#ef44441f;color:var(--nf-red)}.nf-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--nf-radius-sm);border:none;font-family:var(--nf-font-body);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.nf-btn-primary{background:var(--nf-orange);color:#fff}.nf-btn-primary:hover{background:var(--nf-orange-hot)}.nf-btn-secondary{background:var(--nf-surface-3);color:var(--nf-text-primary)}.nf-btn-secondary:hover{background:var(--nf-surface-4)}.nf-btn-danger{background:var(--nf-red);color:#fff}.nf-btn-danger:hover{background:#dc2626}.nf-btn-danger-sm{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:var(--nf-radius-sm);border:none;background:#ef44441f;color:var(--nf-red);font-family:var(--nf-font-body);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease}.nf-btn-danger-sm:hover{background:#ef444440}.nf-role-text{background:none;border:1px solid transparent;border-radius:var(--nf-radius-sm);padding:3px 8px;color:var(--nf-teal);font-family:var(--nf-font-body);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.nf-role-text:hover{border-color:var(--nf-border-lit);background:#00a4e414}.nf-role-select{background:var(--nf-surface-2);border:1px solid var(--nf-teal);border-radius:var(--nf-radius-sm);padding:3px 8px;color:var(--nf-text-primary);font-family:var(--nf-font-body);font-size:13px;outline:none;cursor:pointer}.nf-role-select option{background:var(--nf-surface-2);color:var(--nf-text-primary)}.nf-modal{background:var(--nf-surface-1);border:1px solid var(--nf-border-lit);border-radius:var(--nf-radius-lg);padding:28px 32px;max-width:440px;width:100%;margin:24px;box-shadow:0 24px 48px #0006}.nf-modal .nf-modal-title{margin-bottom:16px}.nf-modal-user-details{font-size:14px;color:var(--nf-text-primary);margin-bottom:12px;line-height:1.5}.nf-modal-user-details strong{font-weight:600}.nf-modal-warning{font-size:13px;color:var(--nf-red);background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--nf-radius-sm);padding:10px 14px;line-height:1.5}.nf-modal-actions{display:flex;justify-content:flex-end;gap:10px}.nf-toast{position:fixed;top:80px;right:32px;display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--nf-radius-sm);font-size:13px;font-weight:500;z-index:300;animation:nf-toast-in .25s ease;max-width:400px}.nf-toast-success{background:#22d08126;border:1px solid rgba(34,208,129,.3);color:var(--nf-green)}.nf-toast-error{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:var(--nf-red)}.nf-toast-info{background:#00a4e426;border:1px solid rgba(0,164,228,.3);color:var(--nf-teal)}.nf-toast-message{flex:1}.nf-toast-dismiss{background:none;border:none;color:inherit;font-size:18px;cursor:pointer;padding:0 4px;opacity:.7;transition:opacity .15s ease;line-height:1}.nf-toast-dismiss:hover{opacity:1}@keyframes nf-toast-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.nf-error-text{color:var(--nf-red)}.nf-roles-page{display:flex;flex-direction:column;gap:24px}.nf-roles-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.nf-roles-page-title{font-size:22px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-roles-page-stats{display:flex;gap:12px}.nf-roles-page-stat{font-size:13px;font-weight:600;color:var(--nf-text-secondary);background:var(--nf-surface-2);padding:6px 14px;border-radius:var(--nf-radius-sm);white-space:nowrap}.nf-roles-list{display:flex;flex-direction:column;gap:12px}.nf-role-card{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);transition:border-color .15s ease}.nf-role-card:hover{border-color:var(--nf-border-lit)}.nf-role-card-header{display:flex;align-items:center;gap:20px;padding:20px 24px}.nf-role-card-info{flex:1;min-width:0}.nf-role-card-title-row{display:flex;align-items:center;gap:10px;margin-bottom:4px}.nf-role-card-name{font-size:16px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-role-badge-system{font-size:10px;font-weight:700;color:var(--nf-teal);background:#00a4e41f;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.nf-role-card-desc{font-size:13px;color:var(--nf-text-muted);margin:0;line-height:1.4}.nf-role-card-stats{display:flex;gap:16px;flex-shrink:0}.nf-role-card-stat{font-size:13px;font-weight:500;color:var(--nf-text-secondary);white-space:nowrap;background:var(--nf-surface-2);padding:4px 12px;border-radius:var(--nf-radius-sm)}.nf-role-card-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.nf-role-compare-btn{font-size:12px;font-weight:500;color:var(--nf-text-secondary);background:none;border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);padding:5px 12px;cursor:pointer;font-family:var(--nf-font-body);transition:all .15s ease}.nf-role-compare-btn:hover{border-color:var(--nf-teal);color:var(--nf-teal)}.nf-role-compare-btn.selected{background:#00a4e41f;border-color:var(--nf-teal);color:var(--nf-teal)}.nf-role-expand-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--nf-radius-sm);border:none;background:none;color:var(--nf-text-secondary);cursor:pointer;transition:all .15s ease}.nf-role-expand-btn:hover{background:var(--nf-surface-2);color:var(--nf-text-primary)}.nf-role-chevron{transition:transform .2s ease}.nf-role-chevron-open{transform:rotate(180deg)}.nf-role-card-body{border-top:1px solid var(--nf-border);padding:20px 24px}.nf-perm-category{margin-bottom:16px}.nf-perm-category:last-child{margin-bottom:0}.nf-perm-category-name{font-size:11px;font-weight:600;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.8px;margin:0 0 8px}.nf-perm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.nf-perm-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--nf-surface-2);border-radius:var(--nf-radius-sm)}.nf-perm-icon{flex-shrink:0}.nf-perm-granted{color:var(--nf-green)}.nf-perm-codename{font-size:13px;font-weight:500;color:var(--nf-text-primary)}.nf-perm-desc{font-size:12px;color:var(--nf-text-muted)}.nf-perm-empty{font-size:13px;color:var(--nf-text-muted);font-style:italic;margin:0}.nf-role-comparison{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);overflow:hidden}.nf-comparison-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--nf-border)}.nf-comparison-title{font-size:16px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-comparison-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--nf-radius-sm);border:none;background:none;color:var(--nf-text-secondary);cursor:pointer;transition:all .15s ease}.nf-comparison-close:hover{background:var(--nf-surface-2);color:var(--nf-text-primary)}.nf-comparison-table{width:100%;border-collapse:collapse}.nf-comparison-table thead th{font-size:12px;font-weight:600;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.5px;padding:12px 16px;text-align:left;background:var(--nf-surface-2);border-bottom:1px solid var(--nf-border)}.nf-comparison-table thead th:not(:first-child){text-align:center;width:120px}.nf-comparison-category-row td{font-size:11px;font-weight:600;color:var(--nf-orange);text-transform:uppercase;letter-spacing:.8px;padding:10px 16px 6px;background:var(--nf-surface-0)}.nf-comparison-table tbody tr:not(.nf-comparison-category-row) td{font-size:13px;color:var(--nf-text-primary);padding:8px 16px;border-bottom:1px solid var(--nf-border)}.nf-comparison-cell{text-align:center}.nf-comparison-icon{flex-shrink:0}.nf-comparison-granted{color:var(--nf-green)}.nf-comparison-denied{color:var(--nf-red);opacity:.6}.nf-comparison-diff{background:#ff82040a}.nf-roles-error{color:var(--nf-red)}.nf-user-table-wrapper{display:flex;flex-direction:column;gap:20px}.nf-user-table-header{display:flex;flex-direction:column;gap:16px}.nf-user-table-title-row{display:flex;align-items:center;justify-content:space-between}.nf-user-table-title{font-size:22px;font-weight:600;color:var(--nf-text-primary);margin:0;display:flex;align-items:center;gap:12px}.nf-user-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:26px;padding:0 8px;border-radius:13px;background:var(--nf-orange);color:#fff;font-size:12px;font-weight:700;line-height:1}.nf-user-table-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.nf-user-search-box{position:relative;flex:1;min-width:200px;max-width:320px}.nf-user-search-box svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--nf-text-muted);pointer-events:none}.nf-user-search-input{width:100%;padding:9px 14px 9px 36px;background:var(--nf-surface-2);border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);color:var(--nf-text-primary);font-size:13px;font-family:var(--nf-font-body);outline:none;transition:border-color .15s ease;box-sizing:border-box}.nf-user-search-input::placeholder{color:var(--nf-text-muted)}.nf-user-search-input:focus{border-color:var(--nf-teal)}.nf-user-filter-select{padding:9px 36px 9px 14px;background:var(--nf-surface-2);border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);color:var(--nf-text-primary);font-size:13px;font-family:var(--nf-font-body);outline:none;transition:border-color .15s ease;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%237a8fa1' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.nf-user-filter-select:focus{border-color:var(--nf-teal)}.nf-user-table-scroll{border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);background:var(--nf-surface-1);overflow-x:auto}.nf-user-table{width:100%;border-collapse:collapse;font-size:13px}.nf-user-table thead{position:sticky;top:0;z-index:2}.nf-user-table th{padding:12px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.8px;background:var(--nf-surface-2);border-bottom:1px solid var(--nf-border-lit);white-space:nowrap;-webkit-user-select:none;user-select:none}.nf-sortable-header{cursor:pointer;transition:color .15s ease}.nf-sortable-header:hover{color:var(--nf-text-primary)}.nf-sort-indicator{font-size:12px;color:var(--nf-orange)}.nf-user-table td{padding:12px 16px;color:var(--nf-text-primary);border-bottom:1px solid var(--nf-border)}.nf-user-row{transition:background .1s ease}.nf-user-row:hover{background:#ffffff05}.nf-user-table tbody tr:last-child td{border-bottom:none}.nf-user-row-inactive{opacity:.55}.nf-user-row-inactive td{text-decoration:line-through;text-decoration-color:var(--nf-text-muted)}.nf-user-row-inactive td:first-child{text-decoration:none}.nf-role-label{font-weight:500;color:var(--nf-teal)}.nf-super-admin-badge{display:inline-block;margin-left:8px;font-size:10px;font-weight:700;color:var(--nf-orange);background:#ff82041f;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;vertical-align:middle}.nf-action-btn{padding:5px 12px;border:1px solid var(--nf-border-lit);border-radius:var(--nf-radius-sm);background:none;color:var(--nf-teal);font-size:12px;font-weight:500;font-family:var(--nf-font-body);cursor:pointer;transition:all .15s ease}.nf-action-btn:hover{background:#00a4e41a;border-color:var(--nf-teal-dim)}.nf-user-table-skeleton{display:flex;flex-direction:column;gap:12px;padding:24px;background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md)}.nf-skeleton-row{display:flex;gap:16px}.nf-skeleton-cell{flex:1;height:18px;background:var(--nf-surface-3);border-radius:var(--nf-radius-sm);animation:nf-skeleton-pulse 1.2s ease-in-out infinite}@keyframes nf-skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.nf-stat-card-skeleton{display:flex;flex-direction:column;gap:12px}.nf-skeleton-bar{background:var(--nf-surface-3);border-radius:var(--nf-radius-sm);animation:nf-skeleton-pulse 1.2s ease-in-out infinite}.nf-skeleton-bar-label{width:60%;height:12px}.nf-skeleton-bar-value{width:40%;height:28px}.nf-stat-breakdown{display:flex;gap:12px;font-size:12px;font-weight:500;margin-top:2px}.nf-stat-breakdown-active{color:var(--nf-green)}.nf-stat-breakdown-inactive{color:var(--nf-text-muted)}.nf-user-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:12px;background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md)}.nf-empty-illustration{width:64px;height:64px;border-radius:16px;background:var(--nf-surface-2);border:1px solid var(--nf-border);display:flex;align-items:center;justify-content:center;color:var(--nf-text-muted)}.nf-user-table-empty h3{font-size:18px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-user-table-empty p{font-size:14px;color:var(--nf-text-muted);margin:0}.nf-heatmap-grid{display:grid;gap:2px;margin-top:16px}.nf-heatmap-header-row{display:contents}.nf-heatmap-role-header{padding:8px 4px;text-align:center;font-size:12px;font-weight:600;color:var(--nf-text-secondary);text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nf-heatmap-row{display:contents}.nf-heatmap-category-label{padding:10px 8px;font-size:13px;font-weight:500;color:var(--nf-text-secondary);text-transform:capitalize;display:flex;align-items:center}.nf-heatmap-cell{position:relative;min-height:40px;border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:default;transition:transform .15s ease}.nf-heatmap-cell:hover{transform:scale(1.05);z-index:1}.nf-heatmap-cell-count{font-size:12px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.nf-heatmap-empty{text-align:center;padding:40px 0;color:var(--nf-text-muted);font-size:14px}.nf-heatmap-tooltip{position:fixed;z-index:100;background:#1a2235;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:8px 12px;color:#f0f2f5;font-size:13px;font-family:DM Sans,system-ui,sans-serif;pointer-events:none;white-space:nowrap;box-shadow:0 4px 12px #0000004d}.nf-heatmap-tooltip-role{font-weight:600;text-transform:capitalize}.nf-heatmap-tooltip-detail{color:#8899af;margin-top:2px}:root{--navy: #1B3A5C;--nd: #0E2035;--nm: #26608F;--or: #E87722;--ol: #F0943D;--obg: #FEF6EF;--w: #FFF;--off: #F4F6F9;--g1: #EDF0F4;--g2: #D4DAE2;--g3: #98A5B3;--g4: #6B7A8D;--dk: #14192A;--green: #1A8754;--green-bg: #E8F5E9;--green-bd: #C8E6C9;--red: #C62828;--red-bg: #FFEBEE;--red-bd: #FFCDD2;--amber: #E65100;--amber-bg: #FFF3E0;--amber-bd: #FFE0B2;--blue: #1565C0;--blue-bg: #E3F2FD;--blue-bd: #BBDEFB;--purple: #6B3A8A;--purple-bg: #F3E8F9;--teal: #00838F}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;background:var(--off)}#root{max-width:none;margin:0;padding:0}.mnrch-wrap{background:var(--off);color:var(--dk);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}.hero{background:var(--nd);padding:.85rem 0}.hi{max-width:1520px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.hl{display:flex;align-items:center;gap:.8rem}.lm{width:38px;height:38px;background:var(--or);border-radius:8px;display:flex;align-items:center;justify-content:center}.lm svg{width:20px;height:20px}.hero h1{font-size:1.35rem;font-weight:600;color:var(--w);letter-spacing:-.3px}.hero h1 span{font-weight:300;color:var(--g3);font-size:.78rem;margin-left:.5rem}.hr{display:flex;align-items:center;gap:.7rem}.hs{text-align:center;padding:0 .7rem;border-right:1px solid rgba(255,255,255,.08)}.hs:last-child{border-right:none}.hs .n{font-size:1.1rem;font-weight:700;color:var(--ol)}.hs .l{font-size:.48rem;color:var(--g3);text-transform:uppercase;letter-spacing:.8px}.vb{background:var(--w);border-bottom:1px solid var(--g2);padding:.5rem 0}.vi{max-width:1520px;margin:0 auto;padding:0 1.5rem}.cr{display:flex;gap:0}.cr.r1{margin-bottom:-1px}.ch{flex:1;height:28px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--w);font-size:.46rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;line-height:1.15;padding:0 14px}.cn{background:var(--navy)}.co{background:var(--or)}.ch+.ch{margin-left:1px}.ch:first-child{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);padding-right:16px}.ch:not(:first-child):not(:last-child){clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,10px 50%);padding:0 16px 0 18px}.ch:last-child{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,10px 50%);padding-left:18px}.mn{max-width:1520px;margin:0 auto;padding:.8rem 1.5rem 2rem}.tb{display:flex;align-items:center;justify-content:space-between;margin-bottom:.7rem;flex-wrap:wrap;gap:.5rem;position:relative;z-index:50}.tl{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.tb .fl{font-size:.56rem;font-weight:600;color:var(--g4)}.fb{font-size:.52rem;font-weight:600;padding:.2rem .55rem;border-radius:10px;border:1.5px solid var(--g2);background:var(--w);color:var(--g4);cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:4px;-webkit-user-select:none;user-select:none;font-family:inherit}.fb:hover{border-color:var(--nm);color:var(--navy)}.fb.active{background:var(--navy);color:var(--w);border-color:var(--navy)}.fd{width:6px;height:6px;border-radius:50%;display:inline-block}.fd-all{background:var(--g4)}.fd-healthy{background:var(--green)}.fd-failed{background:var(--red)}.fd-warning{background:var(--amber)}.fd-disabled{background:var(--g3)}.search-area{background:var(--w);border:1px solid var(--g2);border-radius:10px;padding:.6rem .8rem;margin-bottom:.7rem;display:flex;gap:.6rem;align-items:flex-start;flex-wrap:wrap}.search-main{flex:1;min-width:280px;position:relative}.search-main input{width:100%;padding:.4rem .6rem .4rem 2rem;border:1.5px solid var(--g2);border-radius:8px;font-size:.72rem;font-family:inherit;color:var(--dk);background:var(--off);transition:all .2s;outline:none}.search-main input:focus{border-color:var(--nm);background:var(--w);box-shadow:0 0 0 3px #26608f1a}.search-main input::placeholder{color:var(--g3)}.search-icon{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--g3);pointer-events:none}.search-filters{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.sf-select{font-size:.56rem;font-family:inherit;font-weight:600;padding:.25rem .5rem;border-radius:8px;border:1.5px solid var(--g2);background:var(--w);color:var(--g4);cursor:pointer;transition:all .15s;outline:none;min-width:120px}.sf-select:focus{border-color:var(--nm)}.sf-label{font-size:.46rem;font-weight:700;color:var(--g3);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:2px}.sf-group{display:flex;flex-direction:column}.search-count{font-size:.52rem;color:var(--g3);font-weight:600;padding:.25rem .5rem;white-space:nowrap}.ly{display:flex;gap:0;align-items:stretch}.nv{width:178px;flex-shrink:0;background:var(--w);border-radius:10px 0 0 10px;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--g2);border-right:none}.nl{display:flex;align-items:center;gap:.5rem;flex:1;padding:.55rem .65rem;color:var(--g4);cursor:pointer;transition:all .2s;border-bottom:1px solid var(--g1);position:relative;border:none;background:none;text-align:left;width:100%;font-family:inherit}.nl:last-child{border-bottom:none}.nl:hover{color:var(--navy);background:#edf1f8}.nl:before{content:"";position:absolute;left:0;top:12%;bottom:12%;width:3px;background:var(--navy);border-radius:0 3px 3px 0;opacity:0;transition:opacity .2s}.nl.active{color:var(--navy);background:#e8eef6;font-weight:600}.nl.active:before{opacity:1}.nl.active .ni{background:var(--navy);color:var(--w)}.nl.active .ni svg{stroke:var(--w)}.ni{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.ni svg{width:16px;height:16px}.nt{display:flex;flex-direction:column}.nn{font-size:.62rem;font-weight:600;line-height:1.25}.nc{font-size:.42rem;font-weight:400;opacity:.6}.n-all{background:#edf0f4;color:var(--g4)}.n-dep{background:#e5f5f0;color:#1a6b5a}.n-len{background:#e6eff6;color:#1b5e8a}.n-ret{background:#e8f1fa;color:#2668a0}.n-dig{background:#e8f0f8;color:#1e4d7b}.n-fin{background:#e5f5ee;color:#1f7a5c}.n-reg{background:#e6f0f5;color:#2b6b8a}.n-ops{background:#f0e8f5;color:#6b3a8a}.n-mkt{background:#e5f4f2;color:#2a7b6e}.gd{flex:1;border:1px solid var(--g2);border-left:none;border-radius:0 10px 10px 0;overflow:hidden;background:var(--w)}.th-row{display:grid;grid-template-columns:2.2fr 2.8fr 1.2fr 1.2fr 1.2fr 1fr .9fr .8fr;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;z-index:10}.th-cell{color:var(--w);font-size:.5rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;text-align:left;padding:.5rem;line-height:1.25;border-right:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.th-cell:hover{background:#ffffff14}.th-cell:last-child{border-right:none}.th-cell svg{width:11px;height:11px;opacity:.5;flex-shrink:0}.tbody{max-height:620px;overflow-y:auto}.tbody::-webkit-scrollbar{width:6px}.tbody::-webkit-scrollbar-thumb{background:var(--g2);border-radius:4px}.job-row{display:grid;grid-template-columns:2.2fr 2.8fr 1.2fr 1.2fr 1.2fr 1fr .9fr .8fr;border-bottom:1px solid var(--g1);transition:background .12s;cursor:default}.job-row:hover{background:#f0f4f8}.job-row:last-child{border-bottom:none}.job-cell{font-size:.58rem;color:var(--dk);padding:.45rem .5rem;line-height:1.35;border-right:1px solid var(--g1);display:flex;align-items:flex-start;flex-direction:column;justify-content:center;gap:2px;overflow:hidden}.job-cell:last-child{border-right:none}.job-name{font-weight:700;color:var(--navy);font-size:.6rem}.job-desc{font-size:.52rem;color:var(--g4);line-height:1.35}.job-id{font-size:.42rem;color:var(--g3);font-family:Consolas,Courier New,monospace}.domain-badge{display:inline-flex;align-items:center;gap:3px;font-size:.46rem;font-weight:600;padding:.08rem .3rem;border-radius:6px;border:1px solid;white-space:nowrap;margin:1px}.db-deposits{background:#e5f5f0;color:#1a6b5a;border-color:#b2dfdb}.db-lending{background:#e6eff6;color:#1b5e8a;border-color:#b3d4fc}.db-retail{background:#e8f1fa;color:#2668a0;border-color:#b8d4e9}.db-digital{background:#e8f0f8;color:#1e4d7b;border-color:#b5cde5}.db-finance{background:#e5f5ee;color:#1f7a5c;border-color:#b2e0cc}.db-regulatory{background:#e6f0f5;color:#2b6b8a;border-color:#b5d0e1}.db-operations{background:#f0e8f5;color:#6b3a8a;border-color:#d1b3e8}.db-marketing{background:#e5f4f2;color:#2a7b6e;border-color:#b2e0d8}.db-member{background:#fff8e1;color:#f57f17;border-color:#ffe082}.db-hr{background:#fce4ec;color:#ad1457;border-color:#f8bbd0}.dest-type{display:inline-flex;align-items:center;gap:3px;font-size:.48rem;font-weight:600;padding:.1rem .3rem;border-radius:5px}.dt-file{background:#e3f2fd;color:#1565c0}.dt-email{background:#fff3e0;color:#e65100}.dt-sftp{background:#f3e8f9;color:#6b3a8a}.dt-db,.dt-database{background:#e0f2f1;color:#00695c}.dt-sharepoint{background:#e8f5e9;color:#2e7d32}.dest-owner{font-size:.48rem;color:var(--g4);margin-top:2px}.vc-badge{display:inline-flex;align-items:center;gap:3px;font-size:.44rem;font-weight:700;padding:.1rem .3rem;border-radius:5px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;margin:1px}.vc-present{background:var(--navy);color:var(--w)}.vc-onboard{background:#26608f;color:var(--w)}.vc-service{background:var(--or);color:var(--w)}.vc-personalize{background:#f0943d;color:var(--w)}.vc-retain{background:#c75b10;color:var(--w)}.sched-badge{font-size:.48rem;font-weight:600;padding:.12rem .35rem;border-radius:5px;display:inline-flex;align-items:center;gap:3px}.sb-daily{background:#e3f2fd;color:#1565c0}.sb-weekly{background:#e8f5e9;color:#2e7d32}.sb-monthly{background:#fff3e0;color:#e65100}.sb-quarterly{background:#f3e8f9;color:#6b3a8a}.sb-adhoc{background:#eceff1;color:#546e7a}.sched-time{font-size:.42rem;color:var(--g3);margin-top:1px}.status-badge{font-size:.5rem;font-weight:700;padding:.14rem .4rem;border-radius:6px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.st-healthy{background:var(--green-bg);color:var(--green);border:1px solid var(--green-bd)}.st-failed{background:var(--red-bg);color:var(--red);border:1px solid var(--red-bd)}.st-warning{background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-bd)}.st-disabled{background:#eceff1;color:#78909c;border:1px solid #CFD8DC}.st-dot{width:6px;height:6px;border-radius:50%}.st-dot-h{background:var(--green)}.st-dot-f{background:var(--red)}.st-dot-w{background:var(--amber)}.st-dot-d{background:#90a4ae}.fail-detail{font-size:.42rem;color:var(--red);margin-top:2px}.stats-bar{display:flex;gap:.6rem;margin-bottom:.7rem;flex-wrap:wrap}.stat-card{background:var(--w);border:1px solid var(--g2);border-radius:10px;padding:.5rem .7rem;flex:1;min-width:140px;display:flex;align-items:center;gap:.5rem;transition:all .15s}.stat-card:hover{box-shadow:0 4px 14px #1b3a5c14;transform:translateY(-1px)}.stat-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon svg{width:18px;height:18px}.si-total{background:#e8f0f8;color:#1e4d7b}.si-healthy{background:var(--green-bg);color:var(--green)}.si-failed{background:var(--red-bg);color:var(--red)}.si-warn{background:var(--amber-bg);color:var(--amber)}.si-disabled{background:#eceff1;color:#78909c}.si-domains{background:var(--purple-bg);color:var(--purple)}.stat-info{display:flex;flex-direction:column}.stat-num{font-size:1.15rem;font-weight:700;color:var(--dk);line-height:1.1}.stat-label{font-size:.46rem;color:var(--g3);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.empty-state{display:none;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:var(--g3)}.empty-state svg{width:48px;height:48px;margin-bottom:.8rem;opacity:.4}.empty-state p{font-size:.7rem;font-weight:600}.empty-state span{font-size:.52rem;margin-top:.2rem}.detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0e203580;z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.detail-panel{background:var(--w);border-radius:12px;width:680px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0e20354d;animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dp-header{padding:.8rem 1rem;background:var(--nd);border-radius:12px 12px 0 0;display:flex;align-items:flex-start;justify-content:space-between}.dp-title{font-size:.9rem;font-weight:700;color:var(--w)}.dp-subtitle{font-size:.52rem;color:var(--g3);margin-top:.15rem;font-family:Consolas,monospace}.dp-close{background:none;border:none;color:var(--g3);cursor:pointer;padding:.2rem;border-radius:6px;transition:all .15s}.dp-close:hover{color:var(--w);background:#ffffff1a}.dp-close svg{width:18px;height:18px}.dp-body{padding:1rem}.dp-section{margin-bottom:.8rem}.dp-section:last-child{margin-bottom:0}.dp-section-title{font-size:.5rem;font-weight:700;color:var(--g3);text-transform:uppercase;letter-spacing:.6px;margin-bottom:.35rem;padding-bottom:.2rem;border-bottom:1px solid var(--g1)}.dp-row{display:flex;gap:1rem;margin-bottom:.4rem}.dp-field{flex:1}.dp-field-label{font-size:.44rem;font-weight:600;color:var(--g3);text-transform:uppercase;letter-spacing:.4px}.dp-field-value{font-size:.6rem;color:var(--dk);font-weight:500;margin-top:.1rem}.dp-desc{font-size:.58rem;color:var(--dk);line-height:1.5}.pipeline{display:flex;flex-direction:column;gap:0;position:relative}.pipe-step{display:flex;align-items:stretch;gap:0;position:relative}.pipe-connector{width:36px;display:flex;flex-direction:column;align-items:center;flex-shrink:0}.pipe-dot{width:12px;height:12px;border-radius:50%;border:2.5px solid;flex-shrink:0;z-index:2;background:var(--w)}.pipe-line{width:2px;flex:1;min-height:8px}.pipe-step:last-child .pipe-line{display:none}.pipe-card{flex:1;background:var(--off);border:1px solid var(--g2);border-radius:8px;padding:.55rem .7rem;margin-bottom:.4rem;transition:all .15s;cursor:default;position:relative}.pipe-card:hover{border-color:var(--nm);box-shadow:0 3px 12px #1b3a5c14;transform:translateY(-1px)}.pipe-header{display:flex;align-items:center;gap:.45rem;margin-bottom:.25rem}.pipe-icon{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.pipe-icon svg{width:14px;height:14px}.pipe-num{font-size:.4rem;font-weight:800;color:var(--g3);text-transform:uppercase;letter-spacing:.5px;width:26px;text-align:center}.pipe-name{font-size:.64rem;font-weight:700;color:var(--navy)}.pipe-type{font-size:.42rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:.06rem .3rem;border-radius:5px;margin-left:auto}.pipe-desc{font-size:.54rem;color:var(--g4);line-height:1.5;margin-left:0}.pipe-meta{display:flex;gap:.6rem;margin-top:.3rem;flex-wrap:wrap}.pipe-meta-item{font-size:.44rem;color:var(--g3);display:flex;align-items:center;gap:3px}.pipe-meta-item strong{color:var(--dk);font-weight:600}.ct-input .pipe-icon{background:#e3f2fd;color:#1565c0}.ct-input .pipe-dot{border-color:#1565c0}.ct-input .pipe-line{background:#1565c0}.ct-input .pipe-type{background:#e3f2fd;color:#1565c0}.ct-filter .pipe-icon{background:#fff3e0;color:#e65100}.ct-filter .pipe-dot{border-color:#e65100}.ct-filter .pipe-line{background:#e65100}.ct-filter .pipe-type{background:#fff3e0;color:#e65100}.ct-transform .pipe-icon{background:#f3e8f9;color:#6b3a8a}.ct-transform .pipe-dot{border-color:#6b3a8a}.ct-transform .pipe-line{background:#6b3a8a}.ct-transform .pipe-type{background:#f3e8f9;color:#6b3a8a}.ct-sort .pipe-icon{background:#e0f2f1;color:#00695c}.ct-sort .pipe-dot{border-color:#00695c}.ct-sort .pipe-line{background:#00695c}.ct-sort .pipe-type{background:#e0f2f1;color:#00695c}.ct-summary .pipe-icon{background:#e8f5e9;color:#2e7d32}.ct-summary .pipe-dot{border-color:#2e7d32}.ct-summary .pipe-line{background:#2e7d32}.ct-summary .pipe-type{background:#e8f5e9;color:#2e7d32}.ct-lookup .pipe-icon{background:#fce4ec;color:#ad1457}.ct-lookup .pipe-dot{border-color:#ad1457}.ct-lookup .pipe-line{background:#ad1457}.ct-lookup .pipe-type{background:#fce4ec;color:#ad1457}.ct-calculated .pipe-icon{background:#e8eaf6;color:#283593}.ct-calculated .pipe-dot{border-color:#283593}.ct-calculated .pipe-line{background:#283593}.ct-calculated .pipe-type{background:#e8eaf6;color:#283593}.ct-export .pipe-icon{background:#e8f5e9;color:#1a8754}.ct-export .pipe-dot{border-color:#1a8754}.ct-export .pipe-line{background:#1a8754}.ct-export .pipe-type{background:#e8f5e9;color:#1a8754}.ct-append .pipe-icon{background:#eceff1;color:#546e7a}.ct-append .pipe-dot{border-color:#546e7a}.ct-append .pipe-line{background:#546e7a}.ct-append .pipe-type{background:#eceff1;color:#546e7a}.ct-validation .pipe-icon{background:#fff8e1;color:#f57f17}.ct-validation .pipe-dot{border-color:#f57f17}.ct-validation .pipe-line{background:#f57f17}.ct-validation .pipe-type{background:#fff8e1;color:#f57f17}.log-section{background:#0d1117;border-radius:8px;overflow:hidden;border:1px solid #30363D;margin-top:.4rem}.log-header{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:linear-gradient(135deg,#161b22,#0d1117);border-bottom:1px solid #30363D}.log-header-icon{width:22px;height:22px;border-radius:5px;background:#da3633;color:#fff;display:flex;align-items:center;justify-content:center}.log-header-icon svg{width:12px;height:12px}.log-title{font-size:.58rem;font-weight:700;color:#f85149}.log-meta{font-size:.44rem;color:#8b949e;margin-left:auto}.log-body{padding:.5rem .6rem;max-height:320px;overflow-y:auto;font-family:Cascadia Code,Fira Code,Consolas,Courier New,monospace;font-size:.5rem;line-height:1.65;color:#c9d1d9;white-space:pre-wrap;word-break:break-all;-moz-tab-size:2;tab-size:2}.log-body::-webkit-scrollbar{width:6px}.log-body::-webkit-scrollbar-thumb{background:#30363d;border-radius:4px}.log-body::-webkit-scrollbar-track{background:#0d1117}.ft{margin-top:1rem;padding:.6rem 0;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--g2)}.ft p{font-size:.52rem;color:var(--g3)}.ht{font-size:.48rem;color:var(--g3);font-style:italic}@media(max-width:1100px){.th-row,.job-row{grid-template-columns:2fr 2.5fr 1fr 1fr 1fr 1fr .8fr .7fr}.nv{width:140px}}@media(max-width:800px){.ly{flex-direction:column}.nv{width:100%;flex-direction:row;flex-wrap:wrap;border-radius:10px 10px 0 0;border-right:1px solid var(--g2)}.nl{flex:1;min-width:80px;justify-content:center;border-bottom:none;border-right:1px solid var(--g1);padding:.4rem}.gd{border-left:1px solid var(--g2);border-radius:0 0 10px 10px}.th-row,.job-row{grid-template-columns:1fr}.job-cell{border-right:none;border-bottom:1px solid var(--g1)}.th-cell{display:none}.th-cell:first-child{display:flex}}
