@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";.markdown-viewer{max-height:500px;overflow-y:auto;padding:1rem;line-height:1.6;font-size:.95rem;color:var(--nf-text-primary, #e0e0e0)}.markdown-viewer h1,.markdown-viewer h2,.markdown-viewer h3,.markdown-viewer h4,.markdown-viewer h5,.markdown-viewer h6{margin-top:1.25em;margin-bottom:.5em;font-weight:600;line-height:1.3}.markdown-viewer h1{font-size:1.5rem;border-bottom:1px solid var(--nf-border, #333);padding-bottom:.3em}.markdown-viewer h2{font-size:1.3rem}.markdown-viewer h3{font-size:1.1rem}.markdown-viewer p{margin:.75em 0}.markdown-viewer ul,.markdown-viewer ol{padding-left:1.5em;margin:.5em 0}.markdown-viewer li{margin:.25em 0}.markdown-viewer code{background:var(--nf-surface-3, #2a2a2a);padding:.15em .4em;border-radius:3px;font-size:.9em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.markdown-viewer pre{background:var(--nf-surface-3, #2a2a2a);padding:1em;border-radius:6px;overflow-x:auto;margin:.75em 0}.markdown-viewer pre code{background:none;padding:0;font-size:.85em}.markdown-viewer blockquote{border-left:3px solid var(--nf-border, #333);margin:.75em 0;padding:.25em 1em;color:var(--nf-text-secondary, #aaa)}.markdown-viewer table{border-collapse:collapse;width:100%;margin:.75em 0}.markdown-viewer th,.markdown-viewer td{border:1px solid var(--nf-border, #333);padding:.5em .75em;text-align:left}.markdown-viewer th{background:var(--nf-surface-3, #2a2a2a);font-weight:600}.markdown-viewer a{color:var(--nf-teal, #00a4e4);text-decoration:none}.markdown-viewer a:hover{text-decoration:underline}.markdown-viewer hr{border:none;border-top:1px solid var(--nf-border, #333);margin:1em 0}.markdown-viewer img{max-width:100%;height:auto}.data-table-page{text-align:left}.data-table-page h1{margin-top:0;margin-bottom:20px;color:var(--nf-text-primary)}.data-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);overflow:hidden}.data-table thead{background:var(--nf-surface-2)}.data-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)}.data-table td{padding:12px 16px;color:var(--nf-text-primary);border-bottom:1px solid var(--nf-border);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table tbody tr:hover{background:#ff82040a}.data-table tbody tr:last-child td{border-bottom:none}.sort-button{background:none;border:none;color:var(--nf-text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;cursor:pointer;padding:0;font-family:var(--nf-font-body);display:inline-flex;align-items:center;gap:4px}.sort-button:hover{color:var(--nf-orange)}.filter-input{width:100%;padding:6px 10px;border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);background:var(--nf-surface-3);color:var(--nf-text-primary);font-size:12px;font-family:var(--nf-font-body);box-sizing:border-box}.filter-input::placeholder{color:var(--nf-text-muted);opacity:.7}.filter-input:focus{outline:none;border-color:var(--nf-orange);box-shadow:0 0 0 2px var(--nf-glow-orange)}.link-button{background:none;border:none;color:var(--nf-teal);cursor:pointer;padding:0;font-size:13px;font-family:monospace}.link-button:hover{text-decoration:underline;color:var(--nf-orange)}.data-table .actions-cell{display:flex;gap:8px}.data-table .btn-icon{background:none;border:none;cursor:pointer;padding:4px 8px;font-size:16px;line-height:1;border-radius:var(--nf-radius-sm);transition:background .15s ease}.data-table .btn-icon:hover{background:#ffffff0f}.data-table-page .pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem;padding:.75rem 0}.data-table-page .pagination button{background:var(--nf-surface-3);border:1px solid var(--nf-border);color:var(--nf-text-primary);padding:8px 16px;border-radius:var(--nf-radius-sm);cursor:pointer;font-size:13px;font-family:var(--nf-font-body);transition:all .15s ease}.data-table-page .pagination button:hover:not(:disabled){background:var(--nf-surface-4);border-color:var(--nf-border-lit)}.data-table-page .pagination button:disabled{opacity:.4;cursor:not-allowed}.data-table-page .pagination span{color:var(--nf-text-muted);font-size:13px}.data-table-page .error-state{padding:20px;text-align:center;color:var(--nf-red)}.data-table-page .error-state button{margin-top:12px}.data-table-page .empty-state{color:var(--nf-text-muted);font-size:13px;padding:20px 0}@media(max-width:1100px){.data-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:768px){.data-table th,.data-table td{padding:8px 10px;font-size:12px}.data-table td{max-width:160px}.filter-input{font-size:11px;padding:4px 8px}}.import-page{display:flex;flex-direction:column;gap:20px}.import-loading,.import-empty{color:var(--nf-text-muted);font-size:14px;padding:40px 0;text-align:center}.import-table-scroll{overflow-x:auto;border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);background:var(--nf-surface-1)}.import-table{width:100%;border-collapse:collapse;table-layout:fixed}.import-table thead{position:sticky;top:0;background:var(--nf-surface-2)}.import-table th{padding:12px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--nf-text-secondary);text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid var(--nf-border-lit);white-space:nowrap;-webkit-user-select:none;user-select:none}.import-table td{padding:12px 16px;color:var(--nf-text-primary);border-bottom:1px solid var(--nf-border);font-size:13px}.import-table tbody tr:last-child td{border-bottom:none}.import-table tbody tr:hover{background:#ffffff05}.import-cell-date{font-size:12px;color:var(--nf-text-secondary);white-space:nowrap}.import-cell-date span{display:block;line-height:1.4}.import-cell-actions{text-align:center;white-space:nowrap}.upload-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 24px;border:2px dashed var(--nf-border);border-radius:var(--nf-radius-md);background:var(--nf-surface-1);transition:border-color .15s,background .15s}.upload-zone-dragover{border-color:var(--nf-accent, #6366f1);background:#6366f10f}.upload-zone-uploading{opacity:.7;pointer-events:none}.upload-zone-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.upload-zone-text{margin:0;font-size:13px;color:var(--nf-text-secondary);text-align:center}.upload-zone-browse-btn{padding:6px 16px;font-size:13px;font-weight:500;color:var(--nf-text-primary);background:var(--nf-surface-2);border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm, 4px);cursor:pointer;transition:background .15s}.upload-zone-browse-btn:hover{background:var(--nf-surface-3, rgba(255, 255, 255, .08))}.import-result-modal{max-width:480px}.import-result-counts{display:flex;gap:24px;margin:16px 0}.import-result-count{display:flex;flex-direction:column;align-items:center;gap:4px}.import-result-label{font-size:11px;font-weight:600;color:var(--nf-text-secondary);text-transform:uppercase;letter-spacing:.5px}.import-result-value{font-size:24px;font-weight:700;color:var(--nf-text-primary)}.import-result-errors{margin-top:16px}.import-result-errors h3{font-size:13px;font-weight:600;color:var(--nf-text-secondary);margin:0 0 8px}.import-result-error-list{max-height:200px;overflow-y:auto;border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm, 4px)}.import-result-error-item{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-bottom:1px solid var(--nf-border);font-size:12px}.import-result-error-item:last-child{border-bottom:none}.import-result-error-title{font-weight:600;color:var(--nf-text-primary)}.import-result-error-message{color:var(--nf-text-muted)}@media(max-width:768px){.import-table th,.import-table td{padding:8px 10px}.upload-zone{padding:24px 16px}}.export-page h1{margin-top:0;margin-bottom:20px;color:var(--nf-text-primary)}.export-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.export-col-filename{width:50%}.export-col-size{width:20%}.export-col-modified{width:30%}.export-loading{color:var(--nf-text-muted);font-size:13px;padding:20px 0}:root{font-family:DM Sans,system-ui,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#f0f2f5;background-color:#0a0f1a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}h1{font-size:1.75rem;line-height:1.2;margin:0 0 16px}h2{font-size:1.25rem;line-height:1.3;margin:0 0 12px}: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);transition:width .2s ease;overflow:hidden}.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-collapse-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;position:absolute;top:28px;right:-14px;z-index:101;border-radius:50%;border:1px solid var(--nf-border-lit);background:var(--nf-surface-2);color:var(--nf-text-secondary);cursor:pointer;transition:all .2s ease;opacity:0}.nf-sidebar:hover .nf-collapse-toggle,.nf-collapse-toggle:focus-visible{opacity:1}.nf-collapse-toggle:hover{background:var(--nf-surface-3);color:var(--nf-text-primary);border-color:var(--nf-orange)}.nf-collapse-icon{width:16px;height:16px;transition:transform .2s ease}.nf-collapse-icon.collapsed{transform:rotate(180deg)}.nf-sidebar[data-collapsed=true]{width:64px}.nf-sidebar[data-collapsed=true] .nf-brand-text,.nf-sidebar[data-collapsed=true] .nf-nav-heading,.nf-sidebar[data-collapsed=true] .nf-user-info,.nf-sidebar[data-collapsed=true] .nf-logout-btn>span,.nf-sidebar[data-collapsed=true] .nf-nav-chevron{display:none}.nf-sidebar[data-collapsed=true] .nf-sidebar-brand{padding:20px 12px 16px;display:flex;justify-content:center}.nf-sidebar[data-collapsed=true] .nf-sidebar-brand a{justify-content:center}.nf-sidebar[data-collapsed=true] .nf-sidebar-nav{padding:16px 8px}.nf-sidebar[data-collapsed=true] .nf-nav-item{justify-content:center;padding:10px;font-size:0;gap:0}.nf-sidebar[data-collapsed=true] .nf-nav-item .nf-nav-icon{width:22px;height:22px}.nf-sidebar[data-collapsed=true] .nf-nav-submenu{max-height:0;opacity:0;overflow:hidden}.nf-sidebar[data-collapsed=true] .nf-sidebar-user{padding:12px 8px;display:flex;flex-direction:column;align-items:center}.nf-sidebar[data-collapsed=true] .nf-user-button,.nf-sidebar[data-collapsed=true] .nf-logout-btn{justify-content:center;padding:8px}.nf-sidebar[data-collapsed=true] .nf-collapse-toggle{opacity:1;right:-14px}.nf-main-wrapper[data-sidebar-collapsed=true]{margin-left:64px}.nf-main-wrapper{flex:1;margin-left:var(--nf-sidebar-w);display:flex;flex-direction:column;min-height:100vh;transition:margin-left .2s ease}.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-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-none{background:#ef44441a;color:var(--nf-red)}@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;inset: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;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-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-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-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-header{display:flex;align-items:center;gap:20px;padding:20px 24px}.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-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-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-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-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-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-denied{color:var(--nf-red);opacity:.6}.nf-comparison-diff{background:#ff82040a}.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;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}.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:var(--nf-surface-0);font-family:var(--nf-font-body)}.auth-page h1{font-size:1.75rem;margin-bottom:24px;color:var(--nf-orange)}.auth-page form{width:100%;max-width:360px}.form-field{margin-bottom:16px}.form-field label{display:block;margin-bottom:6px;font-size:.875rem;color:var(--nf-text-secondary)}.form-field input,.form-field select{width:100%;padding:10px 12px;background:var(--nf-surface-2);border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);color:var(--nf-text-primary);font-size:.875rem;box-sizing:border-box;font-family:var(--nf-font-body)}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--nf-orange);box-shadow:0 0 0 2px var(--nf-glow-orange)}.error-message{padding:10px 12px;margin-bottom:16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--nf-radius-sm);color:var(--nf-red);font-size:.8125rem}.auth-page button[type=submit]{width:100%;padding:10px;background:var(--nf-orange);border:none;border-radius:var(--nf-radius-sm);color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s;font-family:var(--nf-font-body)}.auth-page button[type=submit]:hover{background:var(--nf-orange-hot)}.auth-page button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.auth-page p{margin-top:16px;font-size:.8125rem;color:var(--nf-text-muted)}.auth-page a{color:var(--nf-teal);text-decoration:none}.auth-page a:hover{text-decoration:underline}.nf-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;border-radius:var(--nf-radius-sm);border:none;cursor:pointer;font-family:var(--nf-font-body);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{padding:4px 10px;font-size:12px;background:none;border:1px solid rgba(239,68,68,.3);color:var(--nf-red)}.nf-btn-danger-sm:hover{background:#ef44441a}.nf-btn-icon{background:none;border:none;color:var(--nf-teal);cursor:pointer;padding:4px 8px;font-size:13px;font-family:var(--nf-font-body)}.nf-btn-icon:hover{text-decoration:underline}.nf-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.nf-modal{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-lg);padding:28px 32px;max-width:440px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 24px 48px #0006}.nf-modal-wide{max-width:640px}.nf-modal-title{font-size:18px;font-weight:600;color:var(--nf-text-primary);margin:0 0 20px}.nf-modal-body{font-size:14px;color:var(--nf-text-secondary);line-height:1.5}.nf-modal-user-details{margin:0 0 12px}.nf-modal-warning{background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--nf-radius-sm);padding:10px 14px;font-size:13px;color:var(--nf-red);margin:0}.nf-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.nf-form-field{margin-bottom:16px}.nf-form-field label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--nf-text-secondary)}.nf-form-field input,.nf-form-field select{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;box-sizing:border-box;transition:border-color .15s ease}.nf-form-field input:focus,.nf-form-field select:focus{border-color:var(--nf-orange);box-shadow:0 0 0 2px var(--nf-glow-orange)}.nf-toast{position:fixed;top:80px;right:32px;z-index:300;padding:12px 16px;border-radius:var(--nf-radius-sm);font-size:13px;max-width:400px;display:flex;align-items:center;gap:10px;animation:nf-toast-in .25s ease-out}.nf-toast-success{background:var(--nf-green);color:#fff}.nf-toast-error{background:var(--nf-red);color:#fff}.nf-toast-info{background:var(--nf-teal);color:#fff}@keyframes nf-toast-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.nf-user-management{display:flex;flex-direction:column;gap:24px}.nf-user-management-header{display:flex;align-items:center;justify-content:space-between}.nf-user-management-title{font-size:20px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-user-stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.nf-user-stat-card{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);padding:16px 20px;display:flex;flex-direction:column;gap:4px}.nf-user-stat-value{font-size:24px;font-weight:700;color:var(--nf-text-primary)}.nf-user-stat-label{font-size:12px;color:var(--nf-text-muted);text-transform:capitalize}.nf-user-access-denied{text-align:center;padding:60px 20px;color:var(--nf-text-muted)}.nf-table{width:100%;border-collapse:collapse;background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);overflow:hidden}.nf-table th,.nf-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--nf-border)}.nf-table th{font-size:11px;font-weight:600;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.5px;background:var(--nf-surface-2)}.nf-table tbody tr:hover{background:#ff82040a}.nf-table td{font-size:13px;color:var(--nf-text-primary)}.nf-actions-cell{display:flex;gap:8px}.nf-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:500}.nf-badge-active{background:#22d0811f;color:var(--nf-green)}.nf-badge-inactive{background:#ef44441f;color:var(--nf-red)}.nf-badge-system{background:#00a4e41f;color:var(--nf-teal)}.nf-roles-page{display:flex;flex-direction:column;gap:24px}.nf-roles-page-header{display:flex;align-items:center;justify-content:space-between}.nf-roles-page-title{font-size:20px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-roles-page-stats{display:flex;gap:16px}.nf-roles-page-stat{font-size:13px;color:var(--nf-text-muted);background:var(--nf-surface-2);padding:4px 12px;border-radius:12px}.nf-roles-list{display:flex;flex-direction:column;gap:12px}.nf-roles-error{color:var(--nf-red)}.nf-role-card{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);overflow:hidden;transition:border-color .15s ease}.nf-role-card:hover{border-color:var(--nf-border-lit)}.nf-role-card-header{display:flex;align-items:center;padding:16px 20px;gap:16px}.nf-role-card-info{flex:1;min-width:0}.nf-role-card-title-row{display:flex;align-items:center;gap:10px}.nf-role-card-name{font-size:15px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-role-badge-system{font-size:10px;font-weight:600;color:var(--nf-teal);background:#00a4e41f;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.nf-role-card-desc{font-size:13px;color:var(--nf-text-muted);margin:4px 0 0}.nf-role-card-stats{display:flex;gap:16px}.nf-role-card-stat{font-size:12px;color:var(--nf-text-secondary);white-space:nowrap}.nf-role-card-actions{display:flex;align-items:center;gap:8px}.nf-role-compare-btn{padding:5px 12px;border-radius:var(--nf-radius-sm);border:1px solid var(--nf-border);background:none;color:var(--nf-text-secondary);font-size: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{width:32px;height:32px;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}.nf-role-expand-btn:hover{background:var(--nf-surface-2)}.nf-role-chevron{transition:transform .2s ease}.nf-role-chevron-open{transform:rotate(180deg)}.nf-role-card-body{padding:0 20px 20px;border-top:1px solid var(--nf-border)}.nf-perm-category{margin-top:16px}.nf-perm-category-name{font-size:11px;font-weight:600;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px}.nf-perm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.nf-perm-item{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 0}.nf-perm-icon{flex-shrink:0}.nf-perm-granted{color:var(--nf-green)}.nf-perm-codename{color:var(--nf-text-primary);font-family:monospace;font-size:12px}.nf-perm-desc{color:var(--nf-text-muted);font-size:12px}.nf-perm-empty{color:var(--nf-text-muted);font-size:13px;padding:16px 0}.nf-role-comparison{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);padding:20px;margin-top:16px}.nf-comparison-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.nf-comparison-title{font-size:16px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-comparison-close{width:28px;height:28px;border-radius:var(--nf-radius-sm);border:none;background:none;color:var(--nf-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.nf-comparison-close:hover{background:var(--nf-surface-2);color:var(--nf-text-primary)}.nf-comparison-table{width:100%;border-collapse:collapse;font-size:13px}.nf-comparison-table th{padding:10px 14px;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}.nf-comparison-table th:first-child{text-align:left}.nf-comparison-category-row td{padding:10px 14px;font-size:11px;font-weight:600;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.5px;background:var(--nf-surface-0);border-bottom:1px solid var(--nf-border)}.nf-comparison-table td{padding:8px 14px;border-bottom:1px solid var(--nf-border)}.nf-comparison-cell{text-align:center}.nf-comparison-diff{background:#ff82040f}.nf-comparison-icon{flex-shrink:0}.nf-comparison-granted{color:var(--nf-green)}.nf-comparison-denied{color:var(--nf-text-muted);opacity:.4}.nf-permissions-page{display:flex;flex-direction:column;gap:24px}.nf-permissions-header{display:flex;flex-direction:column;gap:4px}.nf-permissions-title{font-size:20px;font-weight:600;color:var(--nf-text-primary);margin:0}.nf-permissions-count{font-size:13px;color:var(--nf-text-muted);margin:0}.nf-permissions-access-denied{text-align:center;padding:60px 20px;color:var(--nf-text-muted)}.nf-category-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.nf-category-card{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);padding:16px 20px;cursor:pointer;transition:all .15s ease;text-align:left;font-family:var(--nf-font-body);width:100%}.nf-category-card:hover{border-color:var(--nf-orange);background:var(--nf-surface-2)}.nf-category-card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.nf-category-card-name{font-size:14px;font-weight:600;color:var(--nf-text-primary);text-transform:capitalize}.nf-category-card-count{font-size:11px;color:var(--nf-text-muted)}.nf-category-card-roles{display:flex;flex-direction:column;gap:4px}.nf-category-role-row{display:flex;justify-content:space-between;align-items:center;font-size:12px}.nf-category-role-name{color:var(--nf-text-secondary)}.nf-category-role-access{font-size:11px;font-weight:500;padding:1px 8px;border-radius:8px}.nf-access-full{background:#22d0811f;color:var(--nf-green)}.nf-access-partial{background:#ffc5351f;color:var(--nf-gold)}.nf-access-none{background:#ef444414;color:var(--nf-text-muted)}.nf-org-management{display:flex;flex-direction:column;gap:24px}.nf-org-access-denied{text-align:center;padding:60px 20px;color:var(--nf-text-muted)}.nf-org-chart{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);padding:22px 24px}.nf-permission-picker{margin-top:8px;max-height:300px;overflow-y:auto;border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);padding:12px}.nf-permission-picker h3{margin:0 0 8px;font-size:14px;color:var(--nf-text-primary)}.nf-permission-category{margin-bottom:12px}.nf-permission-category h4{margin:0 0 6px;font-size:11px;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.5px}.nf-permission-checkbox{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;cursor:pointer;color:var(--nf-text-primary)}.nf-permission-checkbox input[type=checkbox]{width:auto}.nf-permission-desc{color:var(--nf-text-muted);font-size:12px}.settings-tabs{display:flex;gap:0;border-bottom:2px solid var(--nf-border);margin-bottom:1.5rem}.settings-tab{padding:.75rem 1.5rem;border:none;border-bottom:2px solid transparent;background:none;color:var(--nf-text-muted);cursor:pointer;font-size:.95rem;font-weight:500;margin-bottom:-2px;transition:color .2s,border-color .2s;font-family:var(--nf-font-body)}.settings-tab:hover{color:var(--nf-text-primary)}.settings-tab-active{color:var(--nf-orange);border-bottom-color:var(--nf-orange)}.settings-table th,.settings-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--nf-border)}.settings-table th{font-size:11px;font-weight:600;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.5px;background:var(--nf-surface-2)}.settings-table tbody tr:hover{background:#ff82040a}.settings-table td{font-size:13px;color:var(--nf-text-primary)}.actions-cell{display:flex;gap:8px}.codename{font-family:monospace;font-size:12px}.btn-primary{background:var(--nf-orange);color:#fff;border:none;padding:8px 16px;border-radius:var(--nf-radius-sm);cursor:pointer;font-weight:500;font-size:13px;font-family:var(--nf-font-body)}.btn-primary:hover{background:var(--nf-orange-hot)}.btn-cancel{background:var(--nf-surface-3);border:1px solid var(--nf-border);color:var(--nf-text-primary);padding:8px 16px;border-radius:var(--nf-radius-sm);cursor:pointer;font-family:var(--nf-font-body)}.btn-cancel:hover{background:var(--nf-surface-4)}.btn-danger{background:var(--nf-red);color:#fff;border:none;padding:8px 16px;border-radius:var(--nf-radius-sm);cursor:pointer;font-weight:500;font-family:var(--nf-font-body)}.btn-danger:hover{background:#dc2626}.btn-icon{background:none;border:none;color:var(--nf-teal);cursor:pointer;padding:4px 8px;font-size:13px;font-family:var(--nf-font-body)}.btn-danger-text{color:var(--nf-red)}.btn-danger-text:hover{color:#dc2626}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.modal-content{background:var(--nf-surface-1);border:1px solid var(--nf-border);border-radius:var(--nf-radius-lg);padding:28px 32px;max-width:480px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 24px 48px #0006}.modal-content h2{margin-top:0;margin-bottom:20px;color:var(--nf-text-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.permission-picker{margin-top:8px;max-height:300px;overflow-y:auto;border:1px solid var(--nf-border);border-radius:var(--nf-radius-sm);padding:12px}.permission-picker h3{margin:0 0 8px;font-size:14px;color:var(--nf-text-primary)}.permission-category{margin-bottom:12px}.permission-category h4{margin:0 0 6px;font-size:11px;color:var(--nf-text-muted);text-transform:uppercase;letter-spacing:.5px}.permission-checkbox{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;cursor:pointer;color:var(--nf-text-primary)}.permission-desc{color:var(--nf-text-muted);font-size:12px}.permission-groups{display:flex;flex-direction:column;gap:24px}.permission-group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.permission-group-header h3{margin:0;font-size:15px;text-transform:capitalize;color:var(--nf-text-primary)}.permission-count{color:var(--nf-text-muted);font-size:12px}.pagination-info{color:var(--nf-text-muted);font-size:13px}.toast-container{position:fixed;top:1rem;right:1rem;z-index:300;display:flex;flex-direction:column;gap:.5rem;max-width:400px}.toast{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:var(--nf-radius-sm);font-size:13px;animation:toast-slide-in .2s ease-out}.toast-success{background:var(--nf-green);color:#fff}.toast-error{background:var(--nf-red);color:#fff}.toast-info{background:var(--nf-teal);color:#fff}.empty-state-message{color:var(--nf-text-muted);font-size:13px}.checkbox-label{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;cursor:pointer;color:var(--nf-text-primary)}@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:768px){.nf-sidebar{transform:translate(-100%);transition:transform .2s ease}.nf-sidebar[data-open=true]{transform:translate(0)}.nf-main-wrapper{margin-left:0}.nf-topbar{padding:0 16px}.nf-content{padding:16px}.nf-search-box{display:none}.sidebar-toggle{display:block}}.settings-tabs{display:flex;gap:0;border-bottom:2px solid #333;margin-bottom:1.5rem}.settings-tab{padding:.75rem 1.5rem;border:none;border-bottom:2px solid transparent;background:none;color:#888;cursor:pointer;font-size:.95rem;font-weight:500;margin-bottom:-2px;transition:color .2s,border-color .2s}.settings-tab:hover{color:#ccc}.settings-tab-active{color:#646cff;border-bottom-color:#646cff}.settings-page{text-align:left}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.settings-header h2{margin:0;font-size:1.4rem}.settings-table{width:100%;border-collapse:collapse;margin-bottom:1rem}.settings-table th,.settings-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #333}.settings-table th{font-weight:600;color:#999;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.settings-table tbody tr:hover{background-color:#646cff0d}.actions-cell{display:flex;gap:.5rem}.codename{font-family:monospace;font-size:.9rem}.btn-primary{background-color:#646cff;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:500}.btn-primary:hover{background-color:#535bf2}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-cancel{background-color:transparent;border:1px solid #555;color:#ccc;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.btn-cancel:hover{border-color:#888}.btn-danger{background-color:#e53e3e;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:500}.btn-danger:hover{background-color:#c53030}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-icon{background:none;border:none;color:#646cff;cursor:pointer;padding:.25rem .5rem;font-size:.9rem}.btn-icon:hover{text-decoration:underline}.btn-danger-text{color:#e53e3e}.btn-danger-text:hover{color:#c53030}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#1a1a1a;border-radius:12px;padding:2rem;max-width:480px;width:90%;max-height:80vh;overflow-y:auto}.modal-wide{max-width:640px}.modal-content h2{margin-top:0;margin-bottom:1.5rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.4rem;font-weight:500;font-size:.9rem;color:#ccc}.form-field input{width:100%;padding:.5rem .75rem;border:1px solid #444;border-radius:6px;background-color:#2a2a2a;color:#eee;font-size:.95rem;box-sizing:border-box}.form-field input:focus{outline:none;border-color:#646cff}.permission-picker{margin-top:1rem;max-height:300px;overflow-y:auto;border:1px solid #333;border-radius:8px;padding:1rem}.permission-picker h3{margin-top:0;margin-bottom:.75rem;font-size:1rem}.permission-category{margin-bottom:1rem}.permission-category h4{margin:0 0 .5rem;font-size:.85rem;color:#999;text-transform:uppercase;letter-spacing:.05em}.permission-checkbox{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.9rem;cursor:pointer}.permission-checkbox input[type=checkbox]{width:auto}.permission-desc{color:#888;font-size:.85rem}.permission-groups{display:flex;flex-direction:column;gap:1.5rem}.permission-group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.permission-group-header h3{margin:0;font-size:1.1rem;text-transform:capitalize}.permission-count{color:#888;font-size:.85rem}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem;padding:.75rem 0}.pagination-info{color:#888;font-size:.9rem}.toast-container{position:fixed;top:1rem;right:1rem;z-index:2000;display:flex;flex-direction:column;gap:.5rem;max-width:400px}.toast{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:8px;font-size:.9rem;animation:toast-slide-in .2s ease-out}.toast-success{background-color:#276749;color:#c6f6d5}.toast-error{background-color:#9b2c2c;color:#fed7d7}.toast-info{background-color:#2b6cb0;color:#bee3f8}.toast-message{flex:1;margin-right:.75rem}.toast-close{background:none;border:none;color:inherit;cursor:pointer;font-size:1.2rem;padding:0;line-height:1;opacity:.7}.toast-close:hover{opacity:1}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.error-message{color:#fc8181;background-color:#e53e3e1a;padding:.5rem .75rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}@media(prefers-color-scheme:light){.settings-tabs{border-bottom-color:#e2e8f0}.settings-tab{color:#718096}.settings-tab:hover{color:#2d3748}.settings-table th,.settings-table td{border-bottom-color:#e2e8f0}.settings-table th{color:#718096}.settings-table tbody tr:hover{background-color:#646cff0a}.modal-content{background-color:#fff;box-shadow:0 20px 60px #00000026}.form-field input{border-color:#e2e8f0;background-color:#fff;color:#2d3748}.form-field label{color:#4a5568}.btn-cancel{border-color:#e2e8f0;color:#4a5568}.permission-picker{border-color:#e2e8f0}.toast-success{background-color:#38a169;color:#fff}.toast-error{background-color:#e53e3e;color:#fff}.toast-info{background-color:#3182ce;color:#fff}}.lessons-page{display:flex;flex-direction:column;gap:20px}.lessons-header{display:flex;align-items:center;justify-content:space-between}.lessons-title{font-size:22px;font-weight:600;color:var(--nf-text-primary);margin:0}.lessons-loading,.lessons-empty{color:var(--nf-text-muted);font-size:14px;padding:40px 0;text-align:center}.lessons-error{background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--nf-radius-md);padding:16px 20px;display:flex;align-items:center;gap:12px}.lessons-error p{margin:0;color:var(--nf-red);font-size:14px;flex:1}.lessons-table-scroll{overflow-x:auto;border:1px solid var(--nf-border);border-radius:var(--nf-radius-md);background:var(--nf-surface-1)}.lessons-table{width:100%;border-collapse:collapse;table-layout:fixed}.lessons-table thead{position:sticky;top:0;background:var(--nf-surface-2)}.lessons-table th{padding:12px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--nf-text-secondary);text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid var(--nf-border-lit);white-space:nowrap;-webkit-user-select:none;user-select:none}.lessons-table td{padding:12px 16px;color:var(--nf-text-primary);border-bottom:1px solid var(--nf-border);font-size:13px}.lessons-table tbody tr:last-child td{border-bottom:none}.lessons-col-id{width:100px}.lessons-col-title{width:18%}.lessons-col-content{width:24%}.lessons-col-project_id,.lessons-col-technology{width:10%}.lessons-col-hit_counts{width:120px}.lessons-col-created_at,.lessons-col-updated_at{width:100px}.lessons-col-actions{width:90px;text-align:center}.lessons-row{transition:background .1s ease}.lessons-row:hover{background:#ffffff05}.lessons-sort-btn{background:none;border:none;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:4px;transition:color .15s ease}.lessons-sort-btn:hover{color:var(--nf-text-primary)}.lessons-sort-indicator{font-size:12px;color:var(--nf-orange)}.lessons-filter-row th{padding:6px 16px 10px;border-bottom:1px solid var(--nf-border-lit)}.lessons-filter-input{width:100%;padding:5px 8px;border:1px solid var(--nf-border-lit);border-radius:var(--nf-radius-sm);background:var(--nf-surface-3);color:var(--nf-text-primary);font-size:12px;font-family:var(--nf-font-body);box-sizing:border-box;transition:border-color .15s ease}.lessons-filter-input::placeholder{color:var(--nf-text-muted)}.lessons-filter-input:focus{outline:none;border-color:var(--nf-orange)}.lessons-cell-truncate{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lessons-cell-id{font-family:monospace;font-size:12px}.link-button{background:none;border:none;color:var(--nf-teal);font:inherit;cursor:pointer;padding:0;text-decoration:none;transition:color .15s ease}.link-button:hover{color:var(--nf-orange);text-decoration:underline}.lessons-cell-hits{white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}.hit-label{color:var(--nf-text-muted);font-weight:600}.lessons-cell-date{font-size:12px;color:var(--nf-text-secondary);white-space:nowrap}.lessons-cell-date span{display:block;line-height:1.4}.lessons-cell-actions{text-align:center;white-space:nowrap}.action-btn{background:none;border:1px solid transparent;border-radius:var(--nf-radius-sm);padding:4px 8px;cursor:pointer;font-size:16px;line-height:1;transition:all .15s ease}.action-btn:hover{background:#00a4e41a;border-color:var(--nf-border-lit)}.action-btn-danger:hover{background:#ef44441a;border-color:#ef44444d}.lessons-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 0}.lessons-pagination-info{color:var(--nf-text-secondary);font-size:13px;font-variant-numeric:tabular-nums}.btn-secondary{padding:5px 14px;border:1px solid var(--nf-border-lit);border-radius:var(--nf-radius-sm);background:none;color:var(--nf-teal);font-size:13px;font-weight:500;font-family:var(--nf-font-body);cursor:pointer;transition:all .15s ease}.btn-secondary:hover{background:#00a4e41a;border-color:var(--nf-teal-dim)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.lesson-modal{max-width:85vw;width:85vw}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--nf-text-primary)}.modal-header-actions{display:flex;gap:8px}.lesson-form{display:flex;flex-direction:column;gap:16px}.lesson-form .form-group{display:flex;flex-direction:column;gap:6px}.lesson-form label{font-size:12px;font-weight:600;color:var(--nf-text-secondary);text-transform:uppercase;letter-spacing:.5px}.lesson-form input,.lesson-form textarea{padding:8px 12px;border:1px solid var(--nf-border-lit);border-radius:var(--nf-radius-sm);background:var(--nf-surface-3);color:var(--nf-text-primary);font-size:14px;font-family:var(--nf-font-body);box-sizing:border-box;transition:border-color .15s ease}.lesson-form input:focus,.lesson-form textarea:focus{outline:none;border-color:var(--nf-orange)}.lesson-form textarea{resize:vertical;min-height:180px}.lesson-view{display:flex;flex-direction:column;gap:16px}.lesson-meta{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:6px 12px;font-size:13px;padding:10px 14px;background:var(--nf-surface-2);border-radius:var(--nf-radius-sm)}.lesson-meta-label{font-weight:600;color:var(--nf-text-secondary)}@media(max-width:1024px){.lessons-table{table-layout:auto}.lessons-col-content{width:auto}.lessons-col-created_at,.lessons-col-updated_at,.lessons-table td.lessons-cell-date{display:none}}@media(max-width:768px){.lessons-header{flex-direction:column;align-items:flex-start;gap:12px}.lessons-table th,.lessons-table td{padding:8px 10px}.lessons-filter-input{font-size:11px}.lesson-modal{max-width:85vw;width:85vw}}
