.table-container{overflow-x:auto;border-radius:12px;border:1px solid var(--color-border);box-shadow:0 1px 2px rgba(0,0,0,.04)}table{width:100%;border-collapse:collapse}td,th{padding:12px 16px;text-align:left;border-left:none;border-right:none}td,th{border-bottom:1px solid var(--color-border)}th{font-family:var(--font-inter),system-ui,sans-serif;background:transparent;font-size:var(--font-sm);font-weight:600;color:var(--color-text-secondary);letter-spacing:.02em}tr:hover td{background:rgba(59,130,246,.04)}tr:hover td:first-child{border-left:3px solid var(--color-primary-light);padding-left:13px}.tr-compact td{padding:6px 12px;font-size:var(--font-sm)}.tr-comfortable td{padding:12px 16px}td.td-truncate{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-skeleton{display:flex;flex-direction:column;gap:1px}.table-skeleton-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));grid-gap:var(--space-sm);gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border)}.table-skeleton-cell{height:1.2em;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-bg-elevated) 25%,var(--color-border) 50%,var(--color-bg-elevated) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.th-sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:color var(--transition-fast)}.th-sortable:hover{color:var(--color-text)}.th-sort-indicator{display:inline-flex;align-items:center;margin-left:var(--space-xs);font-size:var(--font-xs);opacity:.5;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity var(--transition-fast)}.th-sort-indicator.active{opacity:1;color:var(--color-primary-light)}.th-sort-indicator.active.sort-desc{transform:rotate(180deg)}tbody tr:hover td{background:var(--color-bg-elevated);transition:background var(--transition-fast)}.tr-clickable{cursor:pointer}.tr-clickable:hover td{background:rgba(59,130,246,.08)}.table-container table thead{position:-webkit-sticky;position:sticky;top:0;z-index:2}.table-container table thead,.table-container table thead th{background:var(--color-bg-card)}[data-theme=light] .table-container table thead th{background:#ffffff}.table-container tbody tr{transition:background var(--transition-fast)}.table-container tbody tr:hover td{background:rgba(59,130,246,.06)}.data-table-cards-container{display:none}.data-table-card{border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-md);background:var(--color-bg-card);border:1px solid var(--color-border);border-left:4px solid var(--card-indicator-color,var(--color-border))}.data-table-card[data-severity=critical],.data-table-card[data-severity=high],.data-table-card[data-status=critical],.data-table-card[data-status=high]{--card-indicator-color:var(--color-danger)}.data-table-card[data-severity=medium],.data-table-card[data-status=warning]{--card-indicator-color:var(--color-warning)}.data-table-card[data-severity=low],.data-table-card[data-status=compliant],.data-table-card[data-status=success]{--card-indicator-color:var(--color-success)}.data-table-card[data-status=info],.data-table-card[data-status=pending]{--card-indicator-color:var(--color-primary-light)}.data-table-card-clickable{cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.data-table-card-clickable:focus-visible,.data-table-card-clickable:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-sm)}.data-table-card-field{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-xs) 0;gap:var(--space-sm)}.data-table-card-field:not(:last-child){border-bottom:1px solid rgba(45,50,80,.3)}.data-table-card-label{font-size:var(--font-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;min-width:80px}.data-table-card-value{font-size:var(--font-base);color:var(--color-text);text-align:right;flex:1 1}@media (max-width:768px){.data-table-cards-container{display:block}.data-table-desktop{display:none}}.data-table-bulk-bar{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);margin-bottom:var(--space-sm);font-size:var(--font-base);font-weight:500;box-shadow:0 2px 8px rgba(0,0,0,.25)}.data-table-bulk-bar-count{white-space:nowrap}.data-table-bulk-bar-actions{display:flex;gap:var(--space-xs);flex:1 1}.data-table-bulk-bar .btn{color:#fff;border-color:rgba(255,255,255,.3)}.data-table-bulk-bar .btn:hover{background:rgba(255,255,255,.15)}.tr-selected{background:rgba(59,130,246,.08)}.tr-selected:hover{background:rgba(59,130,246,.12)}.export-dropdown-wrapper{position:relative;display:inline-block}.export-dropdown-menu{position:absolute;top:100%;right:0;margin-top:var(--space-xs);min-width:180px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:20;padding:var(--space-xs) 0}.export-dropdown-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-sm) var(--space-md);background:none;border:none;color:var(--color-text);font-size:var(--font-sm);font-family:inherit;cursor:pointer;transition:background var(--transition-fast);text-align:left}.export-dropdown-item:hover:not(:disabled){background:var(--color-bg-elevated)}.export-dropdown-item:disabled{color:var(--color-text-muted);cursor:default}.export-dropdown-badge{font-size:var(--font-xs);color:var(--color-text-muted);background:var(--color-bg-elevated);padding:2px 6px;border-radius:var(--radius-sm)}.server-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-md);padding:var(--space-sm) 0}.server-pagination-info{font-size:var(--font-base)}.server-pagination-controls{display:flex;gap:var(--space-sm)}.column-toggle{position:relative}.column-toggle-dropdown{position:absolute;right:0;top:100%;margin-top:var(--space-xs);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-sm);min-width:200px;z-index:50;max-height:300px;overflow-y:auto}.column-toggle-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);cursor:pointer;font-size:var(--font-base);color:var(--color-text);border-radius:var(--radius-sm)}.column-toggle-item:hover{background:var(--color-bg-hover)}.column-toggle-item input[type=checkbox]{accent-color:var(--color-primary)}.row-actions{position:relative;display:inline-block}.row-actions-trigger{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.row-actions-trigger:hover{background:var(--color-bg-hover);color:var(--color-text)}.row-actions-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:160px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-xs)}.row-actions-item{display:block;width:100%;padding:var(--space-sm) var(--space-md);border:none;background:transparent;color:var(--color-text);font-size:var(--font-base);text-align:left;cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.row-actions-item:hover{background:var(--color-bg-hover)}.row-actions-item:disabled{opacity:.5;cursor:not-allowed}.row-actions-item--danger{color:var(--color-danger)}.row-actions-item--danger:hover{background:rgba(220,38,38,.08)}.row-actions-divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-xs) 0}.data-table-toolbar{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.data-table-toolbar-actions{display:flex;gap:var(--space-sm);margin-left:auto}.table-glass-header thead th{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:-webkit-sticky;position:sticky;top:0;z-index:10;border-bottom:1px solid var(--glass-border);font-family:var(--font-inter,"Inter"),system-ui,sans-serif}.table-row-animated tbody tr{transition:all var(--transition-fast)}.table-row-animated tbody tr:hover{background:rgba(59,130,246,.06);border-left:3px solid var(--brand-accent,#c8ff00)}[data-theme=light] .table-glass-header thead th{background:rgba(255,255,255,.9)}[data-theme=light] .table-row-animated tbody tr:hover{background:rgba(37,99,235,.04)}.data-table--virtual{table-layout:fixed}.data-table-virtual-scroll{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.data-table-virtual-scroll::-webkit-scrollbar{width:6px}.data-table-virtual-scroll::-webkit-scrollbar-track{background:transparent}.data-table-virtual-scroll::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.data-table-virtual-row{display:flex;align-items:center;border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.data-table-virtual-row:hover{background:rgba(59,130,246,.06)}.data-table-virtual-row.tr-clickable{cursor:pointer}.data-table-virtual-row.tr-clickable:hover,.data-table-virtual-row.tr-selected{background:rgba(59,130,246,.08)}.data-table-virtual-cell{display:inline-flex;align-items:center;padding:0 16px;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table-virtual-row.tr-compact .data-table-virtual-cell{font-size:var(--font-sm)}.th-resizable{position:relative}.th-resizable-content{display:flex;align-items:center;width:100%}.th-resizable-content .th-sort-button{flex:1 1;min-width:0}.th-resize-handle{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;background:transparent;z-index:5;transition:background var(--transition-fast)}.th-resize-handle:active,.th-resize-handle:hover{background:var(--color-primary-light);opacity:.5}.td-editable{cursor:text;position:relative}.td-editable:hover{background:rgba(59,130,246,.04)}.td-editable:after{content:"";position:absolute;bottom:4px;left:8px;right:8px;height:1px;background:var(--color-border);opacity:0;transition:opacity var(--transition-fast)}.td-editable:hover:after{opacity:.5}.td-editing{padding:4px 8px!important}.td-edit-container{display:flex;align-items:center;gap:4px}.td-edit-input{flex:1 1;padding:4px 8px;background:var(--color-bg-input);border:1px solid var(--color-border-focus);border-radius:var(--radius-sm);color:var(--color-text);font-family:inherit;font-size:inherit;outline:none;box-shadow:0 0 0 2px rgba(59,130,246,.15)}.td-edit-actions{display:flex;gap:2px;flex-shrink:0}.td-edit-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.td-edit-btn--save{background:rgba(34,197,94,.15);color:#22c55e}.td-edit-btn--save:hover{background:rgba(34,197,94,.25)}.td-edit-btn--cancel{background:rgba(220,38,38,.1);color:var(--color-emergency)}.td-edit-btn--cancel:hover{background:rgba(220,38,38,.2)}.td-edit-btn:disabled{opacity:.5;cursor:not-allowed}.export-trigger-btn{display:inline-flex;align-items:center;gap:6px}.export-chevron{transition:transform .2s ease}.export-chevron-open{transform:rotate(180deg)}.export-dropdown-header{padding:var(--space-xs) var(--space-md);font-size:var(--font-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.export-dropdown-divider{height:1px;background:var(--color-border);margin:var(--space-xs) 0}.export-item-icon{flex-shrink:0;color:var(--color-text-muted)}.export-dropdown-item:hover .export-item-icon{color:var(--color-primary-light)}.export-item-label{flex:1 1;text-align:left}.export-item-desc{font-size:var(--font-xs);color:var(--color-text-muted);font-family:var(--font-mono,"JetBrains Mono",monospace)}.dt-toolbar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.dt-toolbar-search{flex:1 1;min-width:200px;max-width:400px;position:relative}.dt-toolbar-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.dt-toolbar-search-input{width:100%;padding:7px 12px 7px 34px;background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:inherit;font-size:var(--font-sm);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.dt-toolbar-search-input:focus{border-color:var(--color-primary-light);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.dt-toolbar-search-input::placeholder{color:var(--color-text-muted)}.dt-toolbar-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:50%;background:var(--color-bg-elevated);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.dt-toolbar-search-clear:hover{background:var(--color-border);color:var(--color-text)}.dt-toolbar-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.dt-toolbar-divider{width:1px;height:24px;background:var(--color-border);margin:0 4px}.dt-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);position:relative}.dt-toolbar-btn:hover{background:var(--color-bg-elevated);color:var(--color-text);border-color:var(--color-border)}.dt-toolbar-btn.active{background:rgba(59,130,246,.1);color:var(--color-primary-light);border-color:rgba(59,130,246,.2)}.dt-toolbar-btn-label{display:none}@media (min-width:1024px){.dt-toolbar-btn-with-label{width:auto;padding:0 10px;gap:6px}.dt-toolbar-btn-with-label .dt-toolbar-btn-label{display:inline;font-size:var(--font-xs);font-weight:500}}.dt-density-pills{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.dt-density-pill{display:inline-flex;align-items:center;justify-content:center;width:30px;height:28px;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.dt-density-pill:first-child{border-right:1px solid var(--color-border)}.dt-density-pill.active{background:rgba(59,130,246,.1);color:var(--color-primary-light)}.dt-density-pill:hover:not(.active){background:var(--color-bg-elevated)}.expand-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.expand-toggle-btn:hover{background:var(--color-bg-elevated);color:var(--color-text)}.expand-toggle-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.expand-toggle-icon.expanded{transform:rotate(90deg)}.tr-expanded-content td{padding:0;border-bottom:1px solid var(--color-border)}.tr-expanded-inner{padding:var(--space-md) var(--space-lg);background:var(--color-bg-elevated);border-left:3px solid var(--color-primary-light);animation:expandRow .2s ease-out}@keyframes expandRow{0%{opacity:0;max-height:0;padding-top:0;padding-bottom:0}to{opacity:1;max-height:500px;padding-top:var(--space-md);padding-bottom:var(--space-md)}}.saved-views-wrapper{position:relative}.saved-views-dropdown{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:240px;max-width:320px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-xs) 0}.saved-views-header{padding:var(--space-xs) var(--space-md);font-size:var(--font-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.saved-views-list{max-height:280px;overflow-y:auto}.saved-views-item{display:flex;align-items:center;width:100%;padding:var(--space-sm) var(--space-md);border:none;background:transparent;color:var(--color-text);font-size:var(--font-sm);font-family:inherit;cursor:pointer;transition:background var(--transition-fast);text-align:left;gap:var(--space-sm)}.saved-views-item:hover{background:var(--color-bg-elevated)}.saved-views-item-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-views-item-default{font-weight:600;color:var(--color-primary-light)}.saved-views-delete{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.saved-views-delete:hover{background:rgba(220,38,38,.1);color:var(--color-emergency)}.saved-views-divider{height:1px;background:var(--color-border);margin:var(--space-xs) 0}.saved-views-save-form{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md)}.saved-views-save-input{flex:1 1;padding:5px 8px;background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-sm);font-family:inherit;outline:none}.saved-views-save-input:focus{border-color:var(--color-primary-light)}.saved-views-save-btn{display:inline-flex;align-items:center;justify-content:center;padding:5px 10px;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:var(--font-xs);font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.saved-views-save-btn:hover{background:var(--color-primary-dark)}.saved-views-save-btn:disabled{opacity:.5;cursor:not-allowed}.table-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background:var(--color-bg);padding:var(--space-md);overflow:auto;animation:fullscreenIn .2s ease-out}.table-fullscreen .table-container{max-height:calc(100vh - 120px);overflow:auto}@keyframes fullscreenIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@media print{body.printing-table *{visibility:hidden}body.printing-table .table-print-active,body.printing-table .table-print-active *{visibility:visible}body.printing-table .table-print-active{position:absolute;top:0;left:0;width:100%}body.printing-table .table-print-active table{width:100%;border-collapse:collapse;font-size:10pt}body.printing-table .table-print-active th{background:#f3f4f6!important;color:#111!important;font-weight:700;border:1px solid #d1d5db;padding:6px 8px;-webkit-print-color-adjust:exact;print-color-adjust:exact}body.printing-table .table-print-active td{border:1px solid #e5e7eb;padding:4px 8px;color:#111!important}body.printing-table .table-print-active tr:nth-child(2n) td{background:#f9fafb!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}body.printing-table .table-print-active .btn,body.printing-table .table-print-active .dt-toolbar,body.printing-table .table-print-active .export-dropdown-wrapper,body.printing-table .table-print-active .pagination{display:none!important}}.dt-status-bar{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xs) var(--space-md);border-top:1px solid var(--color-border);font-size:var(--font-xs);color:var(--color-text-muted)}.dt-status-bar-item{display:inline-flex;align-items:center;gap:4px}.dt-status-bar-dot{width:6px;height:6px;border-radius:50%;background:var(--color-success)}.dt-status-bar-dot--filtered{background:var(--color-warning)}.dt-status-bar-dot--selected{background:var(--color-primary-light)}.td-pinned-left,.th-pinned-left{left:0}.td-pinned-left,.td-pinned-right,.th-pinned-left,.th-pinned-right{position:-webkit-sticky;position:sticky;z-index:3;background:var(--color-bg-card)}.td-pinned-right,.th-pinned-right{right:0}.td-pinned-left:after,.th-pinned-left:after{content:"";position:absolute;right:-4px;top:0;bottom:0;width:4px;background:linear-gradient(90deg,rgba(0,0,0,.08),transparent);pointer-events:none}.td-pinned-right:before,.th-pinned-right:before{content:"";position:absolute;left:-4px;top:0;bottom:0;width:4px;background:linear-gradient(270deg,rgba(0,0,0,.08),transparent);pointer-events:none}[data-theme=light] .td-pinned-left,[data-theme=light] .td-pinned-right,[data-theme=light] .th-pinned-left,[data-theme=light] .th-pinned-right{background:#ffffff}.datatable-toolbar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.datatable-toolbar-left{flex:1 1;min-width:180px;max-width:360px}.datatable-toolbar-right{display:flex;align-items:center;gap:4px;margin-left:auto}.datatable-toolbar-group{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.datatable-toolbar-group .btn{border-radius:0;border:none}.datatable-toolbar-group .btn.active{background:rgba(59,130,246,.1);color:var(--color-primary-light)}.datatable-toolbar-dropdown{position:relative}.datatable-toolbar-dropdown-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:200px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-xs) 0;animation:dropdownFadeIn .15s ease-out}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.datatable-toolbar-dropdown-header{padding:var(--space-xs) var(--space-md);font-size:var(--font-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.datatable-toolbar-dropdown-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);color:var(--color-text);cursor:pointer;transition:background var(--transition-fast)}.datatable-toolbar-dropdown-item:hover{background:var(--color-bg-elevated)}.datatable-toolbar-dropdown-item input[type=checkbox]{accent-color:var(--color-primary)}.datatable-toolbar-dropdown-action{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:none;background:transparent;color:var(--color-text);font-size:var(--font-sm);font-family:inherit;cursor:pointer;text-align:left;transition:background var(--transition-fast)}.datatable-toolbar-dropdown-action:hover{background:var(--color-bg-elevated)}.datatable-toolbar-dropdown-divider{height:1px;background:var(--color-border);margin:var(--space-xs) 0}.datatable-fullscreen{position:fixed!important;top:0;left:0;right:0;bottom:0;z-index:9999;background:var(--color-bg);padding:var(--space-lg);overflow:auto;border-radius:0!important;animation:fullscreenIn .2s ease-out}body.datatable-fullscreen-active{overflow:hidden}.datatable-fullscreen .table-container{max-height:calc(100vh - 160px)}@media (max-width:768px){.dt-toolbar{flex-direction:column;align-items:stretch;gap:var(--space-xs)}.dt-toolbar-search{max-width:none}.dt-toolbar-actions{margin-left:0;justify-content:flex-end}.dt-toolbar-divider,.export-trigger-label{display:none}.datatable-toolbar{flex-direction:column;align-items:stretch;gap:var(--space-xs)}.datatable-toolbar-left{max-width:none}.datatable-toolbar-right{margin-left:0;justify-content:flex-end}.dt-status-bar{flex-wrap:wrap;gap:var(--space-xs)}}.toast-container{position:fixed;top:var(--space-lg);right:var(--space-lg);z-index:50;flex-direction:column}.toast,.toast-container{display:flex;gap:var(--space-sm)}.toast{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:var(--font-md);font-weight:500;box-shadow:var(--shadow-lg);animation:toastIn var(--transition-base) ease-out;align-items:center;max-width:400px}.toast-success{background:rgba(22,163,74,.95);color:white}.toast-error{background:rgba(220,38,38,.95);color:white}@keyframes toastIn{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.toast-warning{background:rgba(245,158,11,.95);color:white}.toast-info{background:rgba(59,130,246,.95);color:white}.toast-icon{font-weight:700;font-size:var(--font-md);flex-shrink:0}.toast-message{flex:1 1}.toast-dismiss{background:none;border:none;color:inherit;opacity:.7;cursor:pointer;font-size:var(--font-base);padding:0;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.toast-dismiss:hover{opacity:1}.toast-animated{animation:toastSlideIn .3s ease-out forwards;position:relative;overflow:hidden}.toast-progress-track{position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(0,0,0,.08);border-radius:0 0 var(--radius-md,8px) var(--radius-md,8px);overflow:hidden}.toast-progress-fill{height:100%;background:currentColor;opacity:.3}.confirm-dialog-backdrop{border:none;background:transparent;padding:0;max-width:100vw;max-height:100vh}.confirm-dialog-backdrop::-webkit-backdrop{background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-dialog-backdrop::backdrop{background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-dialog{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);min-width:380px;max-width:480px;text-align:center;box-shadow:var(--shadow-lg);animation:fadeIn var(--transition-base) ease-out}.confirm-dialog-icon{font-size:var(--font-2xl);margin-bottom:var(--space-md)}.confirm-dialog-title{font-size:var(--font-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-sm)}.confirm-dialog-message{font-size:var(--font-md);color:var(--color-text-secondary);margin-bottom:var(--space-xl);line-height:1.5}.confirm-dialog-actions{display:flex;gap:var(--space-sm);justify-content:center}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:modal-backdrop-in var(--transition-fast) ease-out}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}.modal-dialog{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:90%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:modal-dialog-in var(--transition-base) ease-out}.modal-dialog--narrow{max-width:420px}@keyframes modal-dialog-in{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--color-border)}.modal-title{font-size:var(--font-lg);font-weight:600}.modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-lg)}.modal-close:hover{background:var(--color-bg-elevated);color:var(--color-text)}.modal-body{padding:var(--space-lg)}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border)}.modal-form-stack{display:flex;flex-direction:column;gap:var(--space-md)}.modal-divider{border:none;border-top:1px solid var(--color-border);margin:0}@media (max-width:768px){.modal-dialog{width:95%;padding:var(--space-md)}}.command-palette-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh}.command-palette-dialog{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:600px;box-shadow:var(--shadow-lg);overflow:hidden;animation:fadeIn .1s ease-out}.command-palette-search{display:flex;align-items:center;padding:var(--space-md);border-bottom:1px solid var(--color-border);gap:var(--space-sm)}.command-palette-search input{flex:1 1;background:transparent;border:none;color:var(--color-text);font-size:var(--font-lg);outline:none}.command-palette-list{max-height:400px;overflow-y:auto;padding:var(--space-xs)}.command-item{display:flex;align-items:center;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);gap:var(--space-md);cursor:pointer;transition:background var(--transition-fast)}.command-item.selected{background:var(--color-primary);color:white}.command-item.selected .command-category{color:rgba(255,255,255,.7)}.command-icon{font-size:var(--font-lg)}.command-info{display:flex;flex-direction:column}.command-title{font-weight:500}.command-category,.command-palette-footer{font-size:var(--font-xs);color:var(--color-text-muted)}.command-palette-footer{padding:var(--space-sm) var(--space-md);background:var(--color-bg-elevated);border-top:1px solid var(--color-border)}.footer-hint{display:flex;gap:var(--space-md);align-items:center}.footer-hint kbd{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:4px;padding:0 4px}.command-palette-category-header{padding:var(--space-xs) var(--space-md);font-size:var(--font-xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-top:var(--space-xs)}.command-palette-category-header:first-child{margin-top:0}.command-shortcut-hint{margin-left:auto;display:flex;gap:4px}.command-shortcut-hint kbd{display:inline-block;padding:1px 5px;font-size:var(--font-2xs);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:3px;color:var(--color-text-muted);font-family:inherit}.breadcrumb{margin-bottom:var(--space-md)}.breadcrumb-list{list-style:none;font-size:var(--font-base)}.breadcrumb-item,.breadcrumb-list{display:flex;align-items:center;gap:var(--space-xs)}.breadcrumb-link{color:var(--color-text-muted);transition:color var(--transition-fast)}.breadcrumb-link:hover{color:var(--color-primary-light)}.breadcrumb-current{color:var(--color-text-secondary);font-weight:500}.breadcrumb-separator{color:var(--color-text-muted);font-size:var(--font-xs)}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-input-icon{position:absolute;left:var(--space-sm);font-size:var(--font-base);pointer-events:none;z-index:1}.search-input{width:100%;padding:var(--space-sm) var(--space-md);padding-left:calc(var(--space-sm) + 1.5em);padding-right:calc(var(--space-sm) + 1.5em);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:inherit;font-size:var(--font-md);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.search-input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px rgba(59,130,246,.15)}.search-input::placeholder{color:var(--color-text-muted)}.search-input-clear{position:absolute;right:var(--space-sm);background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--font-base);padding:0;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.search-input-clear:hover{color:var(--color-text)}.search-input-spinner{animation:search-spin .8s linear infinite}@keyframes search-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.pagination{justify-content:space-between;padding:var(--space-md) 0;font-size:var(--font-base);color:var(--color-text-secondary);flex-wrap:wrap}.pagination,.pagination-info{display:flex;align-items:center;gap:var(--space-md)}.pagination-size-select{background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);padding:var(--space-xs) var(--space-sm);font-size:var(--font-base);font-family:inherit;min-height:44px}.pagination-controls{display:flex;align-items:center;gap:var(--space-xs)}.pagination-btn{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);padding:var(--space-xs) var(--space-sm);cursor:pointer;font-size:var(--font-base);transition:all var(--transition-fast);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.pagination-btn:hover:not(:disabled){background:var(--color-border);color:var(--color-text)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-current{padding:0 var(--space-sm);font-weight:500;white-space:nowrap}.pagination-goto{display:flex;align-items:center;gap:var(--space-xs);margin-left:var(--space-sm);font-size:var(--font-sm);color:var(--color-text-secondary)}.pagination-goto-input{width:52px;padding:var(--space-xs);text-align:center;background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-sm);font-family:inherit;min-height:36px}.pagination-goto-input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 2px rgba(59,130,246,.15)}.pagination-btn.pagination-btn-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pagination-pills{display:flex;gap:4px;align-items:center}.pagination-pills .page-pill{min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:1px solid transparent;background:transparent;color:var(--color-text-secondary);font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.pagination-pills .page-pill:hover{background:var(--color-bg-elevated);color:var(--color-text)}.pagination-pills .page-pill-active{background:var(--color-primary);color:white;border-color:var(--color-primary)}.filter-panel{background:rgba(30,41,59,.5);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);animation:slideDown var(--transition-fast) ease-out}.filter-panel-row{display:flex;gap:var(--space-md);align-items:flex-end;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:var(--space-xs);min-width:140px}.filter-label{font-size:var(--font-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.filter-input,.filter-select{padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-input);color:var(--color-text);font-size:var(--font-base);outline:none;transition:border-color var(--transition-fast)}.filter-input:focus,.filter-select:focus{border-color:var(--color-border-focus)}.filter-toggle-btn{position:relative}.filter-toggle-btn.active{color:var(--color-primary-light)}.filter-active-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-primary-light);margin-left:4px;vertical-align:middle}.filter-clear-btn{align-self:flex-end;white-space:nowrap;color:var(--color-text-muted)!important;font-size:var(--font-base)!important}.results-count{font-size:var(--font-base);color:var(--color-text-muted);white-space:nowrap}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap}.table-toolbar-actions{display:flex;align-items:center;gap:var(--space-sm)}.help-tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;margin-left:4px;cursor:help;color:var(--color-text-muted);border-radius:50%;transition:color var(--transition-fast);vertical-align:middle}.help-tooltip-trigger:focus-visible,.help-tooltip-trigger:hover{color:var(--color-primary-light)}.help-tooltip-popover{bottom:calc(100% + 8px);background:var(--color-bg-elevated);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);max-width:280px;width:max-content;z-index:200;box-shadow:var(--shadow-lg);font-size:var(--font-base);line-height:1.5}.help-tooltip-popover,.help-tooltip-popover:after{position:absolute;left:50%;transform:translateX(-50%)}.help-tooltip-popover:after{content:"";top:100%;border:6px solid transparent;border-top:6px solid var(--color-border)}.help-tooltip-popover--below{bottom:auto;top:calc(100% + 8px)}.help-tooltip-popover--below:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--color-border)}.help-tooltip-title{font-weight:600;margin-bottom:var(--space-xs);color:var(--color-primary-light)}.help-tooltip-body{color:var(--color-text-secondary)}.help-tooltip-source{margin-top:var(--space-sm);font-size:var(--font-xs);color:var(--color-text-muted);font-style:italic}.field-tooltip{position:relative;margin-left:4px;cursor:help}.field-tooltip,.field-tooltip-icon{display:inline-flex;align-items:center}.field-tooltip-icon{justify-content:center;width:16px;height:16px;border-radius:50%;background:rgba(99,102,241,.2);color:var(--color-primary-light);font-size:var(--font-xs);font-weight:700}.field-tooltip:hover .field-tooltip-text{visibility:visible;opacity:1}.field-tooltip-text{visibility:hidden;opacity:0;position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:var(--color-bg-elevated);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);font-size:var(--font-base);line-height:1.4;white-space:normal;width:250px;z-index:100;box-shadow:var(--shadow-md);transition:opacity var(--transition-fast),visibility var(--transition-fast);margin-bottom:4px}.tab-list{display:flex;gap:0;border-bottom:2px solid var(--color-border);margin-bottom:0}.tab-button{padding:var(--space-sm) var(--space-lg);border:none;border-bottom:2px solid transparent;background:none;font-family:inherit;font-size:var(--font-base);font-weight:500;cursor:pointer;color:var(--color-text-secondary);margin-bottom:-2px;transition:color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.tab-button:hover{color:var(--color-text)}.tab-button[aria-selected=true]{color:var(--color-primary-light);border-bottom-color:var(--color-primary-light);font-weight:700}.tab-panel{animation:fadeIn var(--transition-base) ease-out}.tab-panel-card{border-top-left-radius:0;border-top-right-radius:0}.tab-underline{position:absolute;bottom:0;height:2px;background:var(--color-primary-light);transition:left var(--transition-base),width var(--transition-base);border-radius:1px}@media (max-width:768px){.tab-list{overflow-x:auto}}.keyboard-help-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10001;animation:fadeIn var(--transition-fast) ease-out}.keyboard-help-dialog{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);max-width:560px;width:90%;box-shadow:var(--shadow-lg)}.keyboard-help-dialog h2{font-size:var(--font-md);font-weight:700;margin-bottom:var(--space-lg);color:var(--color-text)}.keyboard-help-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-lg);gap:var(--space-lg)}.keyboard-help-section h3{font-size:var(--font-xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:var(--space-sm)}.keyboard-shortcut{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) 0;font-size:var(--font-base)}.keyboard-shortcut span{color:var(--color-text-secondary)}.keyboard-shortcut kbd,.sidebar-kbd{display:inline-block;padding:2px 6px;font-size:var(--font-xs);font-family:Inter,monospace;color:var(--color-text);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.3);min-width:20px;text-align:center}.filter-bar{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap;align-items:center}.filter-bar .form-input{max-width:400px}.filter-pills{display:flex;gap:var(--space-xs);flex-wrap:wrap}.notification-dropdown-wrapper{position:relative}.notification-bell{position:relative;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;padding:var(--space-xs);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.notification-bell:hover{background:var(--color-bg-elevated);color:var(--color-text)}.notification-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--color-danger);color:#fff;font-size:var(--font-2xs);font-weight:700;line-height:18px;text-align:center;pointer-events:none;animation:bell-pulse 2s ease-in-out infinite}@keyframes bell-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:380px;max-height:500px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:200;display:flex;flex-direction:column;overflow:hidden}.notification-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);font-size:var(--font-base)}.notification-empty{padding:var(--space-xl) var(--space-md);text-align:center;color:var(--color-text-muted);font-size:var(--font-base)}.notification-list{overflow-y:auto;max-height:360px}.notification-item{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background var(--transition-fast);color:var(--color-text-secondary);font-family:inherit}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--color-bg-elevated)}.notification-unread{background:rgba(59,130,246,.06);border-left:3px solid var(--color-primary)}.notification-unread:hover{background:rgba(59,130,246,.1)}.notification-active{background:var(--color-bg-elevated);outline:2px solid var(--color-primary);outline-offset:-2px}.notification-item-title{font-size:var(--font-sm);font-weight:600;color:var(--color-text);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-item-message{font-size:var(--font-xs);color:var(--color-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-item-time{font-size:var(--font-2xs);color:var(--color-text-muted);margin-top:4px}.notification-view-all{display:block;width:100%;text-align:center;background:none;border:none;border-top:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);color:var(--color-primary-light);font-size:var(--font-sm);font-weight:500;cursor:pointer;font-family:inherit;transition:background var(--transition-fast)}.notification-item-icon,.notification-view-all:hover{background:var(--color-bg-elevated)}.notification-item-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%}.notification-item-icon.notification-icon-info{color:var(--color-accent)}.notification-item-icon.notification-icon-warning{color:var(--color-orange)}.notification-item-icon.notification-icon-success{color:#22c55e}.notification-item-icon.notification-icon-system{color:var(--color-text-muted)}.notification-item-row{display:flex;gap:var(--space-sm);align-items:flex-start}.notification-item-content{flex:1 1;min-width:0}.notification-read-dot{width:8px;height:8px;border-radius:50%;background:var(--color-primary);flex-shrink:0;margin-top:6px}.notification-group-header{padding:var(--space-xs) var(--space-md);font-size:var(--font-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--color-bg-elevated)}.notification-empty-state{flex-direction:column;gap:var(--space-sm);padding:var(--space-xl) var(--space-md);text-align:center}.notification-empty-icon,.notification-empty-state{display:flex;align-items:center;color:var(--color-text-muted)}.notification-empty-icon{width:48px;height:48px;border-radius:50%;background:var(--color-bg-elevated);justify-content:center}.notif-cat-incidents{color:var(--color-danger,#ef4444);background:rgba(239,68,68,.1)}.notif-cat-compliance{color:var(--color-orange,#f59e0b);background:rgba(245,158,11,.1)}.notif-cat-training{color:var(--color-primary,#3b82f6);background:rgba(59,130,246,.1)}.notif-cat-system{color:var(--color-text-muted,#6b7280);background:var(--color-bg-elevated)}.notif-filter-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-lg);padding:var(--space-xs);background:var(--color-bg-elevated);border-radius:var(--radius-md);overflow-x:auto;-webkit-overflow-scrolling:touch}.notif-filter-tab{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--font-sm);font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.notif-filter-tab-active,.notif-filter-tab:hover{background:var(--color-bg-card);color:var(--color-text)}.notif-filter-tab-active{font-weight:600;box-shadow:var(--shadow-sm)}.notif-filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--color-border);color:var(--color-text-muted);font-size:var(--font-2xs);font-weight:600}.notif-batch-toolbar,.notif-filter-tab-active .notif-filter-count{background:var(--color-primary);color:#fff}.notif-batch-toolbar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md);position:-webkit-sticky;position:sticky;top:0;z-index:10}.notif-batch-toolbar .btn-ghost{color:#fff;border-color:rgba(255,255,255,.3)}.notif-batch-toolbar .btn-ghost:hover{background:rgba(255,255,255,.15)}.notif-batch-count{font-size:var(--font-sm);font-weight:600;margin-right:auto}.notif-list-card{padding:0!important;overflow:hidden}.notif-list-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);background:var(--color-bg-elevated)}.notif-checkbox-label{display:inline-flex;align-items:center;gap:var(--space-xs);cursor:pointer;font-size:var(--font-sm)}.notif-checkbox{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.notif-select-all-text{color:var(--color-text-secondary);font-size:var(--font-xs);font-weight:500}.notif-list-header-count{font-size:var(--font-xs);color:var(--color-text-muted)}.notif-inbox-item{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast)}.notif-inbox-item:last-child{border-bottom:none}.notif-inbox-item:hover{background:var(--color-bg-elevated)}.notif-inbox-unread{background:rgba(59,130,246,.04);border-left:3px solid var(--color-primary)}.notif-inbox-selected,.notif-inbox-unread:hover{background:rgba(59,130,246,.08)}.notif-inbox-selected:hover{background:rgba(59,130,246,.12)}.notif-inbox-item-checkbox{display:flex;align-items:center;padding-top:2px;flex-shrink:0}.notif-inbox-item-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;margin-top:2px}.notif-inbox-item-body{flex:1 1;min-width:0}.notif-inbox-item-title-row{display:flex;align-items:center;gap:var(--space-xs)}.notif-inbox-item-title{font-size:var(--font-sm);font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-unread-dot{width:8px;height:8px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.notif-inbox-item-message{font-size:var(--font-xs);color:var(--color-text-muted);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notif-inbox-item-time{font-size:var(--font-2xs);color:var(--color-text-muted);margin-top:var(--space-xs)}.notif-inbox-item-actions{flex-shrink:0;opacity:0;transition:opacity var(--transition-fast)}.notif-inbox-item:hover .notif-inbox-item-actions{opacity:1}.notif-read-toggle{padding:var(--space-xs)!important}.notif-empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-3xl) var(--space-xl)}.notif-empty-icon-wrap{width:64px;height:64px;border-radius:50%;background:var(--color-bg-elevated);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);margin-bottom:var(--space-md)}.notif-empty-title{font-size:var(--font-lg);font-weight:600;color:var(--color-text);margin:0 0 var(--space-xs)}.notif-empty-subtitle{font-size:var(--font-base);color:var(--color-text-muted);max-width:360px;margin:0}.notif-skeleton-list{display:flex;flex-direction:column}.notif-skeleton-item{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md);border-bottom:1px solid var(--color-border)}.notif-skeleton-checkbox{width:16px;height:16px;border-radius:var(--radius-sm)}.notif-skeleton-checkbox,.notif-skeleton-icon{background:var(--color-bg-elevated);animation:shimmer 1.5s ease-in-out infinite}.notif-skeleton-icon{width:36px;height:36px;border-radius:50%;flex-shrink:0}.notif-skeleton-content{flex:1 1;display:flex;flex-direction:column;gap:var(--space-xs)}.notif-skeleton-title{height:14px;width:60%}.notif-skeleton-desc,.notif-skeleton-title{border-radius:var(--radius-sm);background:var(--color-bg-elevated);animation:shimmer 1.5s ease-in-out infinite}.notif-skeleton-desc{height:12px;width:85%}.notif-skeleton-time{height:10px;width:25%;border-radius:var(--radius-sm);background:var(--color-bg-elevated);animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%,to{opacity:.4}50%{opacity:.8}}.notification-page-filters{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap}.notification-page-item{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast);cursor:pointer}.notification-page-item:hover{background:var(--color-bg-elevated)}.notification-page-item.unread{background:rgba(59,130,246,.06);border-left:3px solid var(--color-primary)}.notification-page-item-content{flex:1 1;min-width:0}.notification-page-item-actions{flex-shrink:0}.notification-date-group{font-size:var(--font-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:var(--space-md) var(--space-md) var(--space-sm);border-bottom:1px solid var(--color-border)}@media (max-width:640px){.notification-dropdown{width:calc(100vw - 32px);right:-8px}.notif-filter-tabs{gap:4px;padding:4px}.notif-filter-tab{padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs)}.notif-batch-toolbar{flex-wrap:wrap;gap:var(--space-xs)}.notif-inbox-item-title{white-space:normal}.notif-inbox-item-actions{opacity:1}}@media (min-width:1024px){.notif-empty-state,.notif-list-card{max-width:800px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-xl)}.login-card{width:100%;max-width:420px;text-align:center}.login-card .card-title{font-size:var(--font-xl);margin-bottom:var(--space-xs)}.login-divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-lg) 0;color:var(--color-text-muted);font-size:var(--font-base)}.login-divider:after,.login-divider:before{content:"";flex:1 1;height:1px;background:var(--color-border)}.login-sso-info{margin-bottom:var(--space-lg);flex-wrap:wrap;gap:var(--space-xs)}.login-sso-info,.session-timeout-overlay{display:flex;align-items:center;justify-content:center}.session-timeout-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;animation:fadeIn var(--transition-fast) ease-out}.session-timeout-dialog{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;max-width:420px;width:90%;box-shadow:var(--shadow-lg)}.session-timeout-icon{font-size:var(--font-3xl);margin-bottom:var(--space-md)}.session-timeout-title{font-size:var(--font-md);font-weight:700;margin-bottom:var(--space-sm)}.session-timeout-message{color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-lg)}.session-timeout-countdown{font-size:var(--font-xl);font-weight:700;margin-bottom:var(--space-md);color:var(--color-danger)}.session-timeout-progress{width:100%;height:4px;background:var(--color-bg-elevated);border-radius:2px;margin-bottom:var(--space-md);overflow:hidden}.session-timeout-progress-bar{height:100%;background:var(--color-danger);border-radius:2px;transition:width 1s linear}.session-timeout-actions{display:flex;gap:var(--space-md);justify-content:center}.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:2rem;text-align:center}.access-denied-title{font-size:var(--font-3xl);margin-bottom:1rem;color:var(--color-danger,#dc2626);font-weight:700}.access-denied-message{font-size:var(--font-lg);color:var(--color-text-muted,#64748b);max-width:480px;line-height:1.6;margin-bottom:1.5rem}.access-denied-action{padding:.6rem 1.5rem;font-size:var(--font-md);border-radius:var(--radius-sm);border:1px solid var(--color-border,#e2e8f0);background:var(--color-primary,#4f46e5);color:#fff;cursor:pointer;font-weight:500;transition:background var(--transition-fast)}.access-denied-action:hover{background:var(--color-primary-dark,#3730a3)}.impersonation-banner{background:linear-gradient(135deg,var(--color-warning),#d97706);color:#1a1a1a;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-md);display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:var(--font-base);animation:slideDown var(--transition-base) ease-out}.impersonation-banner .btn{background:#1a1a1a;color:white;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-weight:600;border:none}.password-field-wrapper{position:relative}.password-toggle-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast)}.password-toggle-btn:hover{color:var(--color-text)}.password-field-wrapper .form-input{padding-right:40px}@keyframes shakeX{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}.shake{animation:shakeX .3s ease-in-out}.auth-action-icon{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-lg)}.auth-action-icon--success{background:linear-gradient(135deg,#16a34a,#22c55e);box-shadow:0 4px 20px rgba(34,197,94,.3)}.auth-action-icon--error{background:linear-gradient(135deg,#dc2626,#ef4444);box-shadow:0 4px 20px rgba(239,68,68,.3)}.auth-action-title{font-size:var(--font-lg);font-weight:600;margin-bottom:var(--space-xs)}.auth-action-description{color:var(--color-text-secondary);font-size:var(--font-base);margin-bottom:var(--space-lg);line-height:1.6}.auth-action-cta{width:100%;gap:var(--space-xs);text-decoration:none}.auth-action-cta,.onboard-container{display:flex;align-items:center;justify-content:center}.onboard-container{min-height:100vh;background:linear-gradient(135deg,var(--color-bg) 0,var(--color-bg-card) 100%);padding:var(--space-xl)}.onboard-card{padding:var(--space-2xl);width:100%;max-width:480px}.onboard-header{text-align:center;margin-bottom:var(--space-xl)}.onboard-logo{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));border-radius:var(--radius-lg,12px);font-weight:700;font-size:var(--font-lg);color:white;margin-bottom:var(--space-md);box-shadow:0 4px 20px rgba(26,86,219,.3)}.onboard-title{font-size:var(--font-xl);font-weight:700;margin:0 0 var(--space-sm)}.onboard-subtitle{font-size:var(--font-base);margin:0}.onboard-illustration{display:flex;align-items:center;justify-content:center;padding:var(--space-lg);margin-bottom:var(--space-lg);border-radius:var(--radius-lg,12px);background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.1)}.onboard-actions{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-md)}.onboard-cta,.onboard-cta--access{justify-content:center;padding:var(--space-md);border-radius:var(--radius-lg,12px);font-weight:700;text-decoration:none;font-size:var(--font-base)}.onboard-cta--access{display:inline-flex;align-items:center;background:var(--color-success,#22c55e);color:var(--color-bg)}.onboard-info-box{margin-top:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-lg,12px);background:var(--color-bg-elevated);border:1px solid var(--color-border)}.onboard-info-title{color:var(--color-text-secondary);font-size:var(--font-sm);margin:0 0 var(--space-xs);font-weight:600}.onboard-info-text{font-size:var(--font-sm);margin:0}.onboard-pending-banner{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-lg,12px);background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.2);margin-bottom:var(--space-md)}.onboard-pending-icon{flex-shrink:0;color:var(--color-primary-light)}.onboard-contact{font-size:var(--font-xs);text-align:center;margin:var(--space-xs) 0 0}.flex-row{display:flex;align-items:center}.flex-row-wrap{display:flex;flex-wrap:wrap}.flex-between{display:flex;justify-content:space-between;align-items:flex-start}.flex-center{display:flex;align-items:center;justify-content:center}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.mt-xs{margin-top:var(--space-xs)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-xs{font-size:var(--font-xs)}.font-sm{font-size:var(--font-sm)}.font-base{font-size:var(--font-base)}.font-md{font-size:var(--font-md)}.no-margin{margin:0}.no-decoration{text-decoration:none}.col-span-2{grid-column:span 2}.min-w-120{min-width:120px}.min-w-32{min-width:32px}.flex-1{flex:1 1}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:var(--space-md);gap:var(--space-md);margin-bottom:var(--space-xl)}.card-body{padding:var(--space-md)}.metric-card{text-align:center;padding:var(--space-lg)}.metric-value{font-size:var(--font-3xl);font-weight:700;color:var(--color-text);letter-spacing:-.02em}.metric-value--success{color:var(--color-success)}.metric-value--info{color:var(--color-info,var(--color-accent))}.metric-value--warning{color:var(--color-warning)}.metric-value--danger{color:var(--color-danger)}.metric-label,.metric-value--muted{color:var(--color-text-muted)}.metric-label{font-size:var(--font-sm);margin-top:var(--space-xs)}.progress-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.progress-ring__svg{transform:rotate(-90deg)}.progress-ring__track{fill:none;stroke:var(--color-border);stroke-width:6}.progress-ring__fill{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset var(--transition-slow)}.progress-ring__fill--success{stroke:var(--color-success,#22c55e)}.progress-ring__fill--warning{stroke:var(--color-warning,#f59e0b)}.progress-ring__fill--danger{stroke:var(--color-danger,#dc2626)}.progress-ring__fill--info{stroke:var(--color-accent)}.progress-ring__fill--primary{stroke:var(--color-primary)}.progress-ring__label{position:absolute;font-weight:700;color:var(--color-text)}.progress-ring__label--sm{font-size:var(--font-xs)}.progress-ring__label--md{font-size:var(--font-md)}.progress-ring__label--lg{font-size:var(--font-xl)}.progress-bar{display:flex;align-items:center;gap:var(--space-xs)}.progress-bar__track{flex:1 1;height:6px;background:var(--color-bg-elevated);border-radius:3px;overflow:hidden}.progress-bar__fill{height:100%;border-radius:3px;transition:width .4s ease}.progress-bar__fill--success{background:var(--color-success,#22c55e)}.progress-bar__fill--warning{background:var(--color-warning,#f59e0b)}.progress-bar__fill--danger{background:var(--color-danger,#dc2626)}.progress-bar__fill--info{background:var(--color-accent)}.progress-bar__fill--muted{background:var(--color-text-muted)}.progress-bar__label{font-size:var(--font-xs);color:var(--color-text-muted);min-width:32px;text-align:right}.alert-overdue{background:rgba(220,38,38,.08);border:1px solid rgba(220,38,38,.25);color:var(--color-danger,#dc2626);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm);font-weight:500;font-size:var(--font-md);animation:pulse-overdue 3s ease-in-out infinite}@keyframes pulse-overdue{0%,to{border-color:rgba(220,38,38,.25)}50%{border-color:rgba(220,38,38,.6)}}.course-card-thumbnail{height:120px;background:linear-gradient(135deg,var(--color-bg-elevated),var(--color-bg));border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--text-3xl);border-bottom:1px solid var(--color-border);overflow:hidden}.course-card-content{padding:var(--space-md)}.difficulty-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.difficulty-badge--beginner{background:rgba(22,163,74,.12);color:var(--color-success,#22c55e)}.difficulty-badge--intermediate{background:rgba(245,158,11,.12);color:var(--color-warning,#f59e0b)}.difficulty-badge--advanced{background:rgba(220,38,38,.12);color:var(--color-danger,#dc2626)}.duration-indicator{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-xs);color:var(--color-text-muted)}.nav-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-md);gap:var(--space-md);margin-bottom:var(--space-xl)}@media (max-width:1024px){.nav-cards-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.nav-cards-grid{grid-template-columns:1fr}}.nav-card{text-decoration:none;display:flex;flex-direction:column;padding:var(--space-lg);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast);min-height:180px}.nav-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-glow);border-color:rgba(59,130,246,.35)}.nav-card:active{transform:translateY(-1px)}.nav-card__icon-wrap{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-bottom:var(--space-sm)}.nav-card__title{font-family:var(--font-display),system-ui,sans-serif;font-size:var(--font-md);font-weight:600;color:var(--color-text);margin:0 0 var(--space-xs);line-height:var(--leading-tight)}.nav-card__desc{font-size:var(--font-sm);color:var(--color-text-muted);margin:0;line-height:var(--leading-normal);flex:1 1}.nav-card h3{display:flex;align-items:center;gap:var(--space-sm);margin:0 0 var(--space-xs);color:var(--color-text)}.nav-card p{color:var(--color-text-muted);margin:0;font-size:var(--font-sm)}.nav-card__progress{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border);font-size:var(--font-xs);color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--space-sm)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--space-md);gap:var(--space-md);margin-top:var(--space-md)}.detail-grid__label{font-size:var(--font-base);color:var(--color-text-muted)}.detail-grid__value{font-weight:500;color:var(--color-text)}.score-indicator{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:600}.score-indicator--pass{color:var(--color-success,#22c55e)}.score-indicator--fail{color:var(--color-danger,#dc2626)}.score-indicator__icon{display:inline-flex;width:20px;height:20px;border-radius:50%;align-items:center;justify-content:center;font-size:var(--text-xs)}.score-indicator__icon--pass{background:rgba(22,163,74,.15);color:var(--color-success,#22c55e)}.score-indicator__icon--fail{background:rgba(220,38,38,.15);color:var(--color-danger,#dc2626)}.badge-card{position:relative;overflow:hidden;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.badge-card--earned{border-color:rgba(22,163,74,.3)}.badge-card--earned:hover{border-color:rgba(22,163,74,.5);box-shadow:0 0 16px rgba(22,163,74,.15)}.badge-card--locked{opacity:.65;filter:grayscale(.6);border-color:var(--color-border)}.badge-card__icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);flex-shrink:0}.badge-card__icon--earned{background:rgba(22,163,74,.12)}.badge-card__icon--locked,.badge-card__lock-overlay{background:var(--color-bg-elevated);color:var(--color-text-muted)}.badge-card__lock-overlay{position:absolute;top:var(--space-sm);right:var(--space-sm);width:24px;height:24px;border-radius:50%;border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs)}@keyframes badge-unlock{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.badge-card--just-earned{animation:badge-unlock .5s ease-out}.sparkline-card{padding:var(--space-md)}.sparkline-card__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-sm)}.sparkline-card__value{font-size:var(--font-2xl);font-weight:700;color:var(--color-text)}.sparkline-card__label{font-size:var(--font-sm);color:var(--color-text-muted)}.sparkline-card__delta{font-size:var(--font-xs);font-weight:600;padding:2px 6px;border-radius:var(--radius-sm)}.sparkline-card__delta--up{color:var(--color-success,#22c55e);background:rgba(22,163,74,.1)}.sparkline-card__delta--down{color:var(--color-danger,#dc2626);background:rgba(220,38,38,.1)}.sparkline-card__chart{height:48px;margin-top:var(--space-xs)}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));grid-gap:var(--space-md);gap:var(--space-md);margin-bottom:var(--space-lg)}.chart-card__title{font-size:var(--font-md);font-weight:600;margin:0 0 var(--space-md)}.voucher-card{padding:var(--space-md)}.voucher-card__grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-xs);gap:var(--space-xs);margin-top:var(--space-sm)}.voucher-card__total{margin-top:var(--space-xs);font-weight:600}.voucher-expiry-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:600}.voucher-expiry-badge--ok{background:rgba(22,163,74,.1);color:var(--color-success,#22c55e)}.voucher-expiry-badge--warn{background:rgba(245,158,11,.1);color:var(--color-warning,#f59e0b)}.voucher-expiry-badge--critical{background:rgba(220,38,38,.1);color:var(--color-danger,#dc2626)}.enrollment-progress{display:flex;align-items:center;gap:var(--space-xs);min-width:120px}.enrollment-progress__track{flex:1 1;height:8px;background:var(--color-bg-elevated);border-radius:4px;overflow:hidden}.enrollment-progress__fill{height:100%;border-radius:4px;transition:width .3s ease}.enrollment-progress__label{font-size:var(--font-xs);color:var(--color-text-muted);min-width:32px;text-align:right}.status-transition{display:flex;align-items:center;gap:var(--space-xs)}.status-transition__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-transition__dot--assigned{background:var(--color-text-muted)}.status-transition__dot--in-progress{background:var(--color-warning,#f59e0b);animation:pulse-dot 2s infinite}.status-transition__dot--completed{background:var(--color-success,#22c55e)}.status-transition__dot--failed{background:var(--color-danger,#dc2626)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.form-grid-2col{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-sm);gap:var(--space-sm)}.form-actions{margin-top:var(--space-sm);display:flex;gap:var(--space-sm)}.analytics-date-picker{display:flex;align-items:center;gap:var(--space-sm)}.analytics-date-picker input[type=date]{background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);padding:var(--space-xs) var(--space-sm);font-size:var(--font-base)}.metric-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:var(--space-md);gap:var(--space-md);margin-bottom:var(--space-lg)}.metric-summary-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md);text-align:center}.metric-summary-value{font-size:var(--font-3xl);font-weight:700;color:var(--color-primary-light)}.metric-summary-label{font-size:var(--font-sm);color:var(--color-text-muted);margin-top:var(--space-xs)}.score-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:var(--space-md);gap:var(--space-md)}.score-card{border-radius:var(--radius-md);padding:var(--space-md);border-width:2px;border-style:solid}.score-card-title{margin:0;font-size:var(--font-lg);font-weight:600}.score-card-body{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-sm) 0}.score-chart-wrapper{width:100px;height:100px;position:relative}.score-chart-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--font-lg);font-weight:700}.score-big-number{font-size:var(--font-3xl);font-weight:700}.trend-toggle-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.trend-toggle-label{font-size:var(--font-sm);color:var(--color-text-muted)}.trend-chart-card{padding:var(--space-md);margin-bottom:var(--space-lg)}.trend-chart-heading{font-size:var(--font-lg);font-weight:600;margin-bottom:var(--space-md)}.benchmark-chart-card{padding:var(--space-md);margin-bottom:var(--space-lg)}.benchmark-chart-heading{font-size:var(--font-lg);font-weight:600;margin-bottom:var(--space-md)}.benchmark-marker{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--font-xs);font-weight:600;color:var(--color-primary-light)}.benchmark-marker-dot{width:8px;height:8px;border-radius:50%;background:var(--color-primary-light);animation:benchmarkPulse 2s infinite}@keyframes benchmarkPulse{0%,to{box-shadow:0 0 0 0 rgba(59,130,246,.4)}50%{box-shadow:0 0 0 6px rgba(59,130,246,0)}}.benchmark-you-cell{background:rgba(59,130,246,.08);font-weight:600}.benchmark-below-avg{color:var(--color-success)}.benchmark-above-avg{color:var(--color-danger)}.chat-container{display:flex;flex-direction:column;gap:var(--space-md);max-width:700px}.chat-window{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);min-height:300px;max-height:500px;overflow-y:auto}.chat-row{margin-bottom:var(--space-sm);display:flex}.chat-row--user{justify-content:flex-end}.chat-row--ai{justify-content:flex-start}.chat-bubble{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);max-width:80%;text-align:left;position:relative;line-height:1.5}.chat-bubble--user{background:var(--color-primary);color:#fff;border-bottom-right-radius:var(--radius-sm)}.chat-bubble--ai{background:var(--color-bg-elevated);color:var(--color-text);border-bottom-left-radius:var(--radius-sm)}.chat-bubble-label{font-weight:600;font-size:var(--font-xs);margin-bottom:2px;display:block}.chat-bubble--user .chat-bubble-label{color:rgba(255,255,255,.8)}.chat-bubble--ai .chat-bubble-label{color:var(--color-text-muted)}.chat-copy-btn{position:absolute;top:var(--space-xs);right:var(--space-xs);background:transparent;border:none;color:inherit;opacity:0;cursor:pointer;font-size:var(--font-xs);padding:2px 4px;border-radius:var(--radius-sm);transition:opacity var(--transition-fast)}.chat-bubble:hover .chat-copy-btn{opacity:.6}.chat-copy-btn:hover{opacity:1!important;background:var(--color-bg-elevated)}.chat-typing-indicator{display:flex;gap:4px;padding:var(--space-xs) var(--space-sm);align-items:center}.chat-typing-dot{width:6px;height:6px;border-radius:50%;background:var(--color-text-muted);animation:chatTypingBounce 1.2s infinite}.chat-typing-dot:nth-child(2){animation-delay:.2s}.chat-typing-dot:nth-child(3){animation-delay:.4s}@keyframes chatTypingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.chat-form{display:flex;gap:var(--space-sm)}.chat-form .form-input{flex:1 1}.nav-link-row{display:flex;gap:var(--space-sm);flex-wrap:wrap}.alert-severity-icon{display:inline-flex;align-items:center;gap:var(--space-xs)}.alert-severity-icon--critical{color:var(--color-danger)}.alert-severity-icon--high{color:var(--color-orange)}.alert-severity-icon--medium{color:var(--color-warning)}.alert-severity-icon--low{color:var(--color-info)}.alert-urgency-border--critical{border-left:4px solid var(--color-danger)}.alert-urgency-border--high{border-left:4px solid var(--color-orange)}.alert-urgency-border--medium{border-left:4px solid var(--color-warning)}.alert-urgency-border--low{border-left:4px solid var(--color-info)}.alert-actions-row{display:flex;gap:var(--space-xs)}.alert-bulk-bar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.alert-bulk-bar .text-muted{margin-right:auto}.vision-upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);margin-bottom:var(--space-lg)}.vision-upload-zone--active,.vision-upload-zone:hover{border-color:var(--color-primary);background:rgba(26,86,219,.05)}.vision-upload-icon{font-size:var(--font-3xl);margin-bottom:var(--space-sm);color:var(--color-text-muted)}.vision-upload-zone--active .vision-upload-icon,.vision-upload-zone:hover .vision-upload-icon{color:var(--color-primary)}.vision-upload-hint{color:var(--color-text-muted);font-size:var(--font-sm)}.vision-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:var(--space-md);gap:var(--space-md);margin-bottom:var(--space-lg)}.vision-preview-card{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-card)}.vision-preview-card img{width:100%;height:120px;object-fit:cover;display:block}.vision-preview-remove{position:absolute;top:4px;right:4px;background:rgba(0,0,0,.6);color:#fff;border:none;width:22px;height:22px;cursor:pointer;display:flex;justify-content:center;line-height:1}.confidence-badge,.vision-preview-remove{border-radius:var(--radius-full);font-size:var(--font-xs);align-items:center}.confidence-badge{display:inline-flex;gap:4px;padding:2px 8px;font-weight:600}.confidence-badge--high{background:rgba(22,163,74,.15);color:var(--color-success)}.confidence-badge--medium{background:rgba(245,158,11,.15);color:var(--color-warning)}.confidence-badge--low{background:rgba(220,38,38,.15);color:var(--color-danger)}