@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.password-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.password-input{flex:1;padding:10px 40px 10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;transition:border-color .2s;width:100%}.password-input:focus{outline:none;border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e21a}.password-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.password-toggle-btn{position:absolute;right:8px;background:none;border:none;padding:6px;cursor:pointer;color:#666;display:flex;align-items:center;justify-content:center;transition:color .2s;font-size:18px}.password-toggle-btn:hover:not(:disabled){color:#333}.password-toggle-btn:disabled{cursor:not-allowed;opacity:.5}.password-toggle-btn:focus{outline:2px solid #4a90e2;outline-offset:2px;border-radius:4px}.force-password-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:9999}.force-password-modal{background:#fff;border-radius:8px;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.force-password-header{margin-bottom:1.5rem}.force-password-header h2{margin:0 0 .5rem;color:#333;font-size:1.5rem}.force-password-header .warning-text{margin:.5rem 0;padding:1rem;background-color:#fff3cd;border-left:4px solid #ffc107;color:#856404;border-radius:4px;font-size:.9rem;line-height:1.5}.force-password-form{margin-bottom:1rem}.force-password-form .form-group{margin-bottom:1.25rem}.force-password-form label{display:block;margin-bottom:.5rem;font-weight:600;color:#333}.force-password-form input[type=password]{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s}.force-password-form input[type=password]:focus{outline:none;border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.force-password-form input[type=password]:disabled{background-color:#f5f5f5;cursor:not-allowed}.password-hint{display:block;margin-top:.25rem;font-size:.85rem;color:#666}.btn-full-width{width:100%}.btn-primary{background-color:#06c;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.btn-primary:hover:not(:disabled){background-color:#0052a3}.btn-primary:disabled{background-color:#ccc;cursor:not-allowed}.force-password-footer{text-align:center;padding-top:1rem;border-top:1px solid #eee}.force-password-footer small{color:#666;font-size:.85rem}.alert{padding:1rem;border-radius:4px;margin-bottom:1rem}.alert-error{background-color:#f8d7da;border-left:4px solid #dc3545;color:#721c24}.notification-bell{position:relative;margin-right:1rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.notification-bell .notification-bell-btn{position:relative;background:none;border:none;color:var(--text-primary, #374151);font-size:1.125rem;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;transition:color .2s ease;border-radius:4px}.notification-bell .notification-bell-btn:hover{color:var(--primary-color, #4f46e5);background-color:#4f46e514}.notification-bell .notification-badge{position:absolute;top:2px;right:2px;background-color:#dc2626;color:#fff;border-radius:8px;padding:1px 4px;font-size:9px;font-weight:600;min-width:14px;text-align:center;line-height:1.3;font-family:Inter,sans-serif}.notification-bell .notification-dropdown{position:absolute;top:100%;right:-40px;margin-top:6px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 8px 24px #0000001f,0 2px 8px #00000014;width:260px;max-height:420px;display:flex;flex-direction:column;z-index:9999;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.notification-bell .notification-dropdown .notification-bell-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid #e5e7eb;background:#fafafa}.notification-bell .notification-dropdown .notification-bell-header h3{margin:0;padding:0;font-size:10px;font-weight:600;color:#111827;text-align:left;text-transform:capitalize;letter-spacing:.01em}.notification-bell .notification-dropdown .mark-all-read-btn{background:none;border:none;color:#4f46e5;cursor:pointer;font-size:9px!important;font-weight:500;padding:4px 6px;border-radius:4px;transition:all .2s ease;font-family:Inter,sans-serif}.notification-bell .notification-dropdown .mark-all-read-btn:hover:not(:disabled){background-color:#4f46e514}.notification-bell .notification-dropdown .mark-all-read-btn:disabled{opacity:.5;cursor:not-allowed}.notification-bell .notification-dropdown .notification-list{flex:1;overflow-y:auto;max-height:340px}.notification-bell .notification-dropdown .no-notifications{padding:32px 16px;text-align:center;color:#6b7280}.notification-bell .notification-dropdown .no-notifications p{margin:0;font-size:9px!important;font-weight:400}.notification-bell .notification-dropdown .notification-item{display:flex;gap:8px;padding:10px 12px;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background-color .15s ease;position:relative;align-items:flex-start}.notification-bell .notification-dropdown .notification-item:last-child{border-bottom:none}.notification-bell .notification-dropdown .notification-item:hover{background-color:#f9fafb}.notification-bell .notification-dropdown .notification-item.unread{background-color:#f0f4ff;border-left:2px solid #4f46e5}.notification-bell .notification-dropdown .notification-item.unread:hover{background-color:#e8edff}.notification-bell .notification-dropdown .notification-item .notification-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notification-bell .notification-dropdown .notification-item .notification-title{font-weight:600;font-size:10px!important;color:#111827;line-height:1.4;letter-spacing:.01em;margin:0;padding:0}.notification-bell .notification-dropdown .notification-item .notification-message{font-size:9px!important;font-weight:400;color:#4b5563;line-height:1.5;word-wrap:break-word;margin:0;padding:0}.notification-bell .notification-dropdown .notification-item .notification-time{font-size:9px!important;font-weight:500;color:#9ca3af;line-height:1.3;margin-top:1px}.notification-bell .notification-dropdown .notification-item .unread-dot{position:absolute;top:12px;right:10px;width:6px;height:6px;background-color:#4f46e5;border-radius:50%}.notification-bell .notification-dropdown .notification-footer{padding:8px 12px;border-top:1px solid #e5e7eb;text-align:center;background:#fafafa}.notification-bell .notification-dropdown .notification-footer button{background:none;border:none;color:#4f46e5;cursor:pointer;font-size:9px!important;font-weight:600;padding:6px 10px;border-radius:4px;transition:all .2s ease;width:100%;font-family:Inter,sans-serif}.notification-bell .notification-dropdown .notification-footer button:hover{background-color:#4f46e514}@media (max-width: 768px){.notification-bell .notification-dropdown{width:260px;right:0}.notification-bell .notification-dropdown .notification-item,.notification-bell .notification-dropdown .notification-bell-header,.notification-bell .notification-dropdown .notification-footer{padding:8px 10px}}.header{display:flex;justify-content:space-between;align-items:center;padding:0 var(--space-6);background-color:var(--bg-header);color:var(--text-on-primary);box-shadow:var(--shadow-md);position:fixed;top:0;left:0;right:0;z-index:var(--z-sticky);height:var(--header-height)}.header .logo a{color:var(--text-on-primary);text-decoration:none;display:flex;align-items:center;gap:var(--space-4);transition:opacity var(--transition-fast)}.header .logo a:hover{opacity:.9}.header .logo h1{font-size:var(--text-xl);margin:0;font-weight:var(--font-semibold);color:var(--text-on-primary)}.header-logo{height:36px;object-fit:contain}.header-actions{display:flex;gap:var(--space-3);align-items:center}.header-home-btn{display:flex;align-items:center;justify-content:center;background:var(--white-alpha-10);border:1px solid var(--white-alpha-20);border-radius:var(--radius-md);color:var(--text-on-primary);padding:var(--space-2);cursor:pointer;transition:all var(--transition-base);font-size:var(--text-lg);width:40px;height:40px}.header-home-btn:hover{background-color:var(--white-alpha-15);transform:translateY(-1px)}.ai-insights-btn{display:flex;align-items:center;gap:var(--space-2);background-color:var(--color-teal);color:var(--text-on-primary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-base);font-weight:var(--font-medium);font-size:var(--text-sm)}.ai-insights-btn:hover{background-color:var(--color-teal-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn.btn-primary{background-color:var(--color-primary-light);color:var(--text-on-primary);border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:var(--font-medium);font-size:var(--text-sm);transition:all var(--transition-base);text-decoration:none;cursor:pointer}.btn.btn-primary:hover{background-color:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.user-menu{position:relative}.user-menu-btn{display:flex;align-items:center;gap:var(--space-2);background:var(--white-alpha-10);border:1px solid var(--white-alpha-20);border-radius:var(--radius-md);color:var(--text-on-primary);padding:var(--space-2) var(--space-4);cursor:pointer;transition:all var(--transition-base);font-weight:var(--font-medium);font-size:var(--text-sm)}.user-menu-btn:hover{background-color:var(--white-alpha-15);transform:translateY(-1px)}.user-menu-btn .username{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu{position:absolute;top:calc(100% + var(--space-2));right:0;min-width:280px;background-color:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:var(--z-dropdown);overflow:hidden;border:1px solid var(--border-light)}.dropdown-header{padding:var(--space-4);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--text-on-primary)}.user-info{display:flex;flex-direction:column;gap:var(--space-1)}.user-info strong{color:var(--text-on-primary);font-size:var(--text-base);font-weight:var(--font-semibold)}.user-info small{color:var(--white-alpha-90);font-size:var(--text-sm)}.user-roles{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.role-badge{background-color:var(--white-alpha-20);color:var(--text-on-primary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.5px;text-transform:uppercase}.dropdown-content{padding:var(--space-2) 0}.dropdown-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--text-primary);text-decoration:none;font-size:var(--text-sm);transition:all var(--transition-fast);cursor:pointer;width:100%;text-align:left;border:none;background:none;font-family:var(--font-primary)}.dropdown-item:hover{background-color:var(--color-gray-50);color:var(--color-primary)}.dropdown-item svg{width:16px;height:16px;opacity:.7}.dropdown-item:hover svg{opacity:1}@media (max-width: 960px){.header{padding:0 var(--space-4)}.header .logo h1{font-size:var(--text-lg)}.user-menu-btn .username{display:none}}@media (max-width: 640px){.header{height:56px}.header .logo h1{font-size:var(--text-base)}.header-logo{height:30px}.dropdown-menu{min-width:240px}}@media (prefers-contrast: high){.header{border-bottom:2px solid var(--text-on-primary)}.user-menu-btn,.btn.btn-primary,.ai-insights-btn,.dropdown-menu{border-width:2px}}.loading-spinner-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:20px}.loading-spinner-wrapper.fullpage{position:fixed;top:0;left:0;width:100%;height:100%;background:#ffffffe6;z-index:var(--z-modal);display:flex;flex-direction:column;justify-content:center;align-items:center}.throb-spinner,div.throb-spinner{width:25px!important;height:25px!important;min-width:25px!important;min-height:25px!important;max-width:25px!important;max-height:25px!important;background:transparent!important;border:3px solid rgba(0,0,0,.1)!important;border-top-color:var(--color-primary)!important;border-radius:50%!important;animation:spin .8s linear infinite!important}.throb-spinner-small,div.throb-spinner-small{width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;max-width:16px!important;max-height:16px!important;background:transparent!important;border:2px solid rgba(0,0,0,.1)!important;border-top-color:var(--color-primary)!important;border-radius:50%!important;animation:spin .8s linear infinite!important}.throb-spinner-medium,div.throb-spinner-medium{width:25px!important;height:25px!important;min-width:25px!important;min-height:25px!important;max-width:25px!important;max-height:25px!important;background:transparent!important;border:3px solid rgba(0,0,0,.1)!important;border-top-color:var(--color-primary)!important;border-radius:50%!important;animation:spin .8s linear infinite!important}.throb-spinner-large,div.throb-spinner-large{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;max-width:40px!important;max-height:40px!important;background:transparent!important;border:4px solid rgba(0,0,0,.1)!important;border-top-color:var(--color-primary)!important;border-radius:50%!important;animation:spin .8s linear infinite!important}.loading-message{color:var(--text-secondary);font-size:var(--text-sm);margin:0;text-align:center}body.high-contrast .throb-spinner{background:var(--color-primary);border:2px solid var(--color-white)}body.high-contrast .loading-message{color:var(--color-white)}:root{--gps-primary-teal: #025043;--gps-primary-hover: #033830;--gps-danger-red: #e53e3e;--gps-danger-hover: #c53030;--gps-success-green: #38a169;--gps-warning-orange: #dd6b20;--gps-info-blue: #3182ce;--gps-bg-page: #f7fafc;--gps-bg-white: #ffffff;--gps-bg-header: #f8f9fa;--gps-bg-row-hover: #f7fafc;--gps-bg-subrow: #f9fafb;--gps-border-light: #e2e8f0;--gps-border-lighter: #f1f5f9;--gps-border-input: #cbd5e0;--gps-text-dark: #333333;--gps-text-muted: #666666;--gps-text-light: #9ca3af;--gps-font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--gps-font-size-title: 14px;--gps-font-size-header: 12px;--gps-font-size-content: 10px;--gps-font-weight-bold: 700;--gps-font-weight-semibold: 600;--gps-font-weight-medium: 500;--gps-spacing-xs: 4px;--gps-spacing-sm: 6px;--gps-spacing-md: 8px;--gps-spacing-lg: 12px;--gps-spacing-xl: 16px;--gps-spacing-2xl: 24px;--gps-radius-sm: 4px;--gps-radius-md: 6px;--gps-radius-lg: 8px}.gps-page-container button:focus,.gps-page-container select:focus,.gps-page-container input:focus,.gps-page-container [role=button]:focus,.gps-page-container summary:focus{outline:none;box-shadow:none}.gps-btn:focus,.gps-btn--primary:focus,.gps-btn--secondary:focus,.gps-btn--danger:focus{outline:none;box-shadow:none}.gps-form-select:focus,.gps-form-input:focus,.gps-search-input:focus,.gps-filter-select:focus{outline:none;border-color:var(--gps-primary-teal)}.gps-page-container{padding:var(--gps-spacing-xl);background:var(--gps-bg-page);min-height:100%;font-family:var(--gps-font-family)}.gps-page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--gps-spacing-xl)}.gps-page-header-left{display:flex;flex-direction:column;gap:2px}.gps-header-actions{display:flex;align-items:center;gap:var(--gps-spacing-md);flex-wrap:wrap}.gps-filter-row{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap;width:100%;box-sizing:border-box}.gps-filter-row .gps-form-input{flex:1 1 200px;min-width:150px;max-width:calc(100% - 180px);width:auto!important}.gps-filter-row .gps-form-select{flex:0 0 auto;min-width:100px;max-width:140px;width:auto!important}.gps-page-title{font-family:var(--gps-font-family);font-size:var(--gps-font-size-title);font-weight:var(--gps-font-weight-bold);color:var(--gps-primary-teal);margin:0;line-height:1.3}.gps-page-subtitle{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);color:var(--gps-text-muted);margin:0;line-height:1.4}.gps-btn{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-semibold);padding:var(--gps-spacing-md) 14px;border-radius:var(--gps-radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:var(--gps-spacing-sm);transition:all .2s ease;white-space:nowrap;text-decoration:none}.gps-btn--sm{padding:var(--gps-spacing-xs) var(--gps-spacing-md);font-size:11px}.gps-btn-primary,.gps-btn.gps-btn--primary{background:var(--gps-primary-teal);color:#fff;border:none}.gps-btn-primary:hover,.gps-btn.gps-btn--primary:hover{background:var(--gps-primary-hover);transform:translateY(-1px);box-shadow:0 2px 4px #02504333}.gps-btn-primary:active,.gps-btn.gps-btn--primary:active{transform:translateY(0)}.gps-btn-primary:disabled,.gps-btn.gps-btn--primary:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.gps-btn-secondary,.gps-btn.gps-btn--secondary{font-weight:var(--gps-font-weight-medium);background:var(--gps-bg-white);color:var(--gps-text-dark);border:1px solid var(--gps-border-input)}.gps-btn-secondary:hover,.gps-btn.gps-btn--secondary:hover{background:var(--gps-bg-header);border-color:var(--gps-primary-teal);color:var(--gps-primary-teal)}.gps-btn-danger,.gps-btn.gps-btn--danger{background:var(--gps-danger-red);color:#fff;border:none}.gps-btn-danger:hover,.gps-btn.gps-btn--danger:hover{background:var(--gps-danger-hover);transform:translateY(-1px);box-shadow:0 2px 4px #e53e3e33}.gps-action-btn{font-size:12px;padding:var(--gps-spacing-xs) var(--gps-spacing-md);border:1px solid var(--gps-border-input);border-radius:var(--gps-radius-sm);background:var(--gps-bg-white);color:var(--gps-primary-teal);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.gps-action-btn:hover{background:var(--gps-primary-teal);color:#fff;border-color:var(--gps-primary-teal)}.gps-action-btn--danger{color:var(--gps-danger-red);border-color:var(--gps-border-input)}.gps-action-btn--danger:hover{background:var(--gps-danger-red);color:#fff;border-color:var(--gps-danger-red)}.gps-action-btn:disabled{opacity:.5;cursor:not-allowed}.gps-action-btn:disabled:hover{background:var(--gps-bg-white);color:var(--gps-primary-teal);border-color:var(--gps-border-input);transform:none}.gps-action-buttons{display:flex;gap:var(--gps-spacing-sm);align-items:center}.gps-icon-btn{width:28px;height:28px;padding:0;border:none;border-radius:var(--gps-radius-sm);background:transparent;color:var(--gps-text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;text-decoration:none;outline:none}.gps-icon-btn:hover{color:var(--gps-primary-teal);background:#02504314}.gps-icon-btn:focus{outline:none;box-shadow:none}.gps-icon-btn svg{width:14px;height:14px}.gps-icon-btn-primary{color:var(--gps-primary-teal)}.gps-icon-btn-primary:hover{color:var(--gps-primary-hover);background:#0250431a}.gps-icon-btn--success,.gps-icon-btn-success{color:#16a34a}.gps-icon-btn--success:hover,.gps-icon-btn-success:hover{color:#15803d;background:#16a34a1a}.gps-icon-btn-danger,.gps-icon-btn--delete{color:var(--gps-danger-red)}.gps-icon-btn-danger:hover,.gps-icon-btn--delete:hover{color:var(--gps-danger-hover);background:#e53e3e1a}.gps-icon-btn--edit{color:#3b82f6}.gps-icon-btn--edit:hover{color:#2563eb;background:#3b82f61a}.gps-icon-btn--view{color:#6366f1}.gps-icon-btn--view:hover{color:#4f46e5;background:#6366f11a}.gps-icon-btn--warning{color:#f59e0b}.gps-icon-btn--warning:hover{color:#d97706;background:#f59e0b1a}.gps-icon-btn:disabled{opacity:.5;cursor:not-allowed}.gps-icon-btn:disabled:hover{background:transparent;color:var(--gps-text-muted)}.gps-results-info{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);color:var(--gps-text-muted);padding:var(--gps-spacing-md) 0;margin-bottom:var(--gps-spacing-md)}.gps-empty-state{text-align:center;padding:var(--gps-spacing-2xl);background:var(--gps-bg-white);border:1px solid var(--gps-border-light);border-radius:var(--gps-radius-md);color:var(--gps-text-muted);font-family:var(--gps-font-family);font-size:var(--gps-font-size-content)}.gps-empty-state p{margin:0}.gps-filters{display:flex;align-items:center;gap:var(--gps-spacing-lg);padding:var(--gps-spacing-lg);background:var(--gps-bg-white);border:1px solid var(--gps-border-light);border-radius:var(--gps-radius-md);margin-bottom:var(--gps-spacing-xl);flex-wrap:wrap}.gps-search-container{position:relative;display:flex;align-items:center}.gps-search-icon{position:absolute;left:10px;color:var(--gps-primary-teal);font-size:12px;pointer-events:none}.gps-search-input{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);padding:var(--gps-spacing-sm) var(--gps-spacing-lg);padding-left:32px;border:1px solid var(--gps-border-input);border-radius:var(--gps-radius-sm);min-width:200px;transition:border-color .2s ease,box-shadow .2s ease}.gps-search-input:focus{outline:none;border-color:var(--gps-primary-teal);box-shadow:0 0 0 3px #0250431a}.gps-search-input::placeholder{color:var(--gps-text-light)}.gps-filter-select{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);padding:var(--gps-spacing-sm) var(--gps-spacing-lg);padding-right:28px;border:1px solid var(--gps-border-input);border-radius:var(--gps-radius-sm);background:var(--gps-bg-white);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;min-width:150px}.gps-filter-select:focus{outline:none;border-color:var(--gps-primary-teal);box-shadow:0 0 0 3px #0250431a}.gps-filter-checkbox{display:flex;align-items:center;gap:var(--gps-spacing-sm);font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);color:var(--gps-text-dark);cursor:pointer}.gps-filter-checkbox input[type=checkbox]{width:14px;height:14px;accent-color:var(--gps-primary-teal);cursor:pointer}.gps-table-container{background:var(--gps-bg-white);border:1px solid var(--gps-border-light);border-radius:var(--gps-radius-md);overflow-x:auto}.gps-table{width:100%;border-collapse:collapse;font-family:var(--gps-font-family)}.gps-table thead{background:var(--gps-bg-header);border-bottom:1px solid var(--gps-border-light)}.gps-table th{font-family:var(--gps-font-family);font-size:var(--gps-font-size-header);font-weight:var(--gps-font-weight-bold);color:var(--gps-primary-teal);text-align:left;padding:10px 12px;white-space:nowrap;text-transform:none}.gps-table tbody tr{border-bottom:1px solid var(--gps-border-lighter);transition:background-color .15s ease}.gps-table tbody tr:hover{background:var(--gps-bg-row-hover)}.gps-table tbody tr:last-child{border-bottom:none}.gps-table td{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);color:var(--gps-text-dark);padding:var(--gps-spacing-md) 12px;vertical-align:middle}.gps-table tbody tr.gps-subrow{background:var(--gps-bg-subrow)}.gps-table tbody tr.gps-subrow:hover{background:#f3f4f6}.gps-table-empty{text-align:center;padding:var(--gps-spacing-2xl);color:var(--gps-text-muted);font-size:var(--gps-font-size-content)}.gps-link{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-semibold);color:var(--gps-primary-teal);text-decoration:underline;cursor:pointer;transition:color .2s ease}.gps-link:hover{color:var(--gps-primary-hover)}.gps-tabs{display:flex;gap:0;margin-bottom:var(--gps-spacing-xl);border-bottom:2px solid var(--gps-border-light)}.gps-tab{font-family:var(--gps-font-family);font-size:var(--gps-font-size-header);font-weight:var(--gps-font-weight-medium);padding:var(--gps-spacing-lg) var(--gps-spacing-xl);background:none;border:none;border-bottom:3px solid transparent;color:var(--gps-text-muted);cursor:pointer;transition:all .2s ease;margin-bottom:-2px;display:flex;align-items:center;gap:var(--gps-spacing-sm)}.gps-tab--active{color:var(--gps-primary-teal);font-weight:var(--gps-font-weight-semibold);border-bottom-color:var(--gps-primary-teal)}.gps-tab-count{background:var(--gps-primary-teal);color:#fff;border-radius:12px;padding:2px 8px;font-size:9px;font-weight:var(--gps-font-weight-semibold)}.gps-subrow{background:var(--gps-bg-subrow)}.gps-expanded-content{padding:var(--gps-spacing-xl);display:grid;grid-template-columns:1fr 1fr;gap:var(--gps-spacing-2xl)}.gps-expanded-section{background:var(--gps-bg-white);border-radius:var(--gps-radius-md);padding:var(--gps-spacing-xl);box-shadow:0 1px 3px #0000001a}.gps-expanded-section-title{font-family:var(--gps-font-family);font-size:var(--gps-font-size-header);font-weight:var(--gps-font-weight-bold);color:var(--gps-text-dark);margin:0 0 var(--gps-spacing-lg) 0;padding-bottom:var(--gps-spacing-md);border-bottom:2px solid var(--gps-border-light)}.gps-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gps-spacing-lg)}.gps-detail-item{display:flex;flex-direction:column;gap:2px}.gps-detail-label{font-family:var(--gps-font-family);font-size:var(--gps-font-size-header);font-weight:var(--gps-font-weight-bold);color:var(--gps-text-muted);text-transform:none}.gps-detail-value{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);color:var(--gps-text-dark);word-break:break-word}.gps-badge{font-family:var(--gps-font-family);font-size:9px;font-weight:var(--gps-font-weight-semibold);padding:3px 8px;border-radius:var(--gps-radius-sm);display:inline-flex;align-items:center;text-transform:uppercase;letter-spacing:.3px}.gps-badge--active{background:#dcfce7;color:#166534}.gps-badge--archived{background:#f3f4f6;color:#6b7280}.gps-badge--internal{background:#dbeafe;color:#1e40af}.gps-badge--external{background:#fef3c7;color:#92400e}.gps-badge--success{background:#dcfce7;color:#166534}.gps-badge--warning{background:#fef3c7;color:#92400e}.gps-badge--danger{background:#fee2e2;color:#991b1b}.gps-badge--info{background:#dbeafe;color:#1e40af}.gps-badge--pending,.gps-badge-secondary,.gps-badge--secondary{background:#e5e7eb;color:#4b5563}.gps-badge-success{background:#dcfce7;color:#166534}.gps-modal{background:var(--gps-bg-white);border-radius:var(--gps-radius-lg);max-width:600px;width:90%;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003;overflow:hidden}.gps-modal--large{max-width:900px}.gps-modal-header h2{font-family:var(--gps-font-family);font-size:var(--gps-font-size-header);font-weight:var(--gps-font-weight-bold);color:#fff;margin:0}.gps-modal-close{background:none;border:none;font-size:20px;color:#fff;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s ease}.gps-modal-close:hover{opacity:1}.gps-modal-body{flex:1;overflow-y:auto;padding:var(--gps-spacing-xl)}.gps-modal-footer{display:flex;justify-content:flex-end;gap:var(--gps-spacing-lg);padding:var(--gps-spacing-lg) var(--gps-spacing-xl);border-top:1px solid var(--gps-border-light);background:var(--gps-bg-white)}.gps-tabs-container{display:flex;flex-direction:row;gap:0;margin-bottom:var(--gps-spacing-xl);border-bottom:2px solid var(--gps-border-light)}.gps-tab{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);color:var(--gps-text-muted);background:transparent;border:none;padding:var(--gps-spacing-md) var(--gps-spacing-xl);cursor:pointer;transition:all .2s ease;position:relative;white-space:nowrap}.gps-tab:hover{color:var(--gps-primary-teal)}.gps-tab--active{color:var(--gps-primary-teal);font-weight:var(--gps-font-weight-semibold)}.gps-tab--active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--gps-primary-teal)}.gps-form-group{margin-bottom:var(--gps-spacing-xl)}.gps-form-label{display:block;font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-semibold);color:var(--gps-text-dark);margin-bottom:var(--gps-spacing-sm)}.gps-form-input,.gps-form-textarea,.gps-form-select{width:100%;font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);padding:var(--gps-spacing-md) var(--gps-spacing-lg);border:1px solid var(--gps-border-input);border-radius:var(--gps-radius-sm);transition:border-color .2s ease,box-shadow .2s ease}.gps-form-textarea{min-height:80px;resize:vertical}.gps-form-hint{font-family:var(--gps-font-family);font-size:9px;color:var(--gps-text-muted);margin-top:var(--gps-spacing-xs)}.gps-alert{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);padding:var(--gps-spacing-lg);border-radius:var(--gps-radius-md);margin-bottom:var(--gps-spacing-xl);display:flex;align-items:center;gap:var(--gps-spacing-md)}.gps-alert--error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.gps-alert--success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.gps-alert--warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.gps-alert--info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.gps-alert-danger{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);padding:var(--gps-spacing-lg);border-radius:var(--gps-radius-md);margin-bottom:var(--gps-spacing-xl);background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.gps-alert-success{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);padding:var(--gps-spacing-lg);border-radius:var(--gps-radius-md);margin-bottom:var(--gps-spacing-xl);background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.gps-loading{text-align:center;padding:var(--gps-spacing-2xl);color:var(--gps-text-muted);font-family:var(--gps-font-family);font-size:var(--gps-font-size-content)}.gps-expand-btn{background:none;border:none;padding:var(--gps-spacing-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gps-text-muted);transition:color .2s ease}.gps-expand-btn:hover{color:var(--gps-primary-teal)}.gps-pagination{display:flex;justify-content:center;align-items:center;gap:var(--gps-spacing-md);padding:var(--gps-spacing-xl) 0;font-family:var(--gps-font-family);font-size:var(--gps-font-size-content)}.gps-tooltip{position:relative}.gps-tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:var(--gps-text-dark);color:#fff;font-family:var(--gps-font-family);font-size:9px;font-weight:var(--gps-font-weight-medium);padding:var(--gps-spacing-xs) var(--gps-spacing-md);border-radius:var(--gps-radius-sm);white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;margin-bottom:4px;z-index:100}.gps-tooltip:hover:after{opacity:1;visibility:visible}.gps-text-muted{color:var(--gps-text-muted)!important}.gps-text-primary{color:var(--gps-primary-teal)!important}.gps-text-danger{color:var(--gps-danger-red)!important}.gps-text-center{text-align:center!important}.gps-mt-0{margin-top:0!important}.gps-mt-1{margin-top:var(--gps-spacing-md)!important}.gps-mt-2{margin-top:var(--gps-spacing-xl)!important}.gps-mb-0{margin-bottom:0!important}.gps-mb-1{margin-bottom:var(--gps-spacing-md)!important}.gps-mb-2{margin-bottom:var(--gps-spacing-xl)!important}.gps-flex{display:flex}.gps-flex-center{display:flex;align-items:center}.gps-gap-1{gap:var(--gps-spacing-md)}.gps-gap-2{gap:var(--gps-spacing-lg)}.gps-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.gps-modal{background:var(--gps-bg-white);border-radius:var(--gps-radius-md);box-shadow:0 4px 24px #0003;max-width:500px;width:90%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.gps-modal--large{max-width:800px}.gps-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--gps-spacing-lg) var(--gps-spacing-xl);background:var(--gps-primary-teal);min-height:50px}.gps-modal-title{font-family:var(--gps-font-family);font-size:var(--gps-font-size-title);font-weight:var(--gps-font-weight-bold);color:#fff;margin:0}.gps-modal-close{background:none;border:none;font-size:24px;color:#fff;cursor:pointer;padding:0;line-height:1;opacity:.8;transition:opacity .2s ease}.gps-modal-close:hover{opacity:1;color:#fff}.gps-modal-body{padding:var(--gps-spacing-xl);overflow-y:auto;flex:1}.gps-modal-footer{display:flex;justify-content:flex-end;gap:var(--gps-spacing-md);padding:var(--gps-spacing-lg) var(--gps-spacing-xl);border-top:1px solid var(--gps-border-light);background:var(--gps-bg-header)}.gps-modal-sections{display:flex;flex-direction:column;gap:var(--gps-spacing-xl)}.gps-form-group{margin-bottom:var(--gps-spacing-lg)}.gps-form-label{display:block;font-family:var(--gps-font-family);font-size:var(--gps-font-size-header);font-weight:var(--gps-font-weight-bold);color:var(--gps-text-dark);margin-bottom:var(--gps-spacing-sm)}.gps-form-input,.gps-form-textarea,.gps-form-select{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);width:100%;padding:var(--gps-spacing-md);border:1px solid var(--gps-border-input);border-radius:var(--gps-radius-sm);background:var(--gps-bg-white);transition:border-color .2s ease,box-shadow .2s ease}.gps-form-input:focus,.gps-form-textarea:focus,.gps-form-select:focus{outline:none;border-color:var(--gps-primary-teal);box-shadow:0 0 0 3px #0250431a}.gps-form-textarea{resize:vertical;min-height:80px}.gps-form-hint{display:block;font-family:var(--gps-font-family);font-size:11px;color:var(--gps-text-muted);margin-top:var(--gps-spacing-xs)}.gps-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--gps-spacing-lg)}.gps-checkbox-label{display:flex;align-items:center;gap:var(--gps-spacing-sm);font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);color:var(--gps-text-dark);cursor:pointer}.gps-checkbox-label input[type=checkbox]{width:14px;height:14px;accent-color:var(--gps-primary-teal);cursor:pointer}.gps-inline-form{margin-bottom:var(--gps-spacing-lg)}.gps-inline-form .gps-form-row{display:flex;gap:var(--gps-spacing-md);align-items:flex-end}.gps-section{margin-bottom:var(--gps-spacing-xl)}.gps-section-header{font-family:var(--gps-font-family);font-size:var(--gps-font-size-header);font-weight:var(--gps-font-weight-bold);color:var(--gps-primary-teal);margin:0 0 var(--gps-spacing-lg) 0;padding-bottom:var(--gps-spacing-sm);border-bottom:2px solid var(--gps-border-light)}.gps-divider{border:none;border-top:1px solid var(--gps-border-light);margin:var(--gps-spacing-xl) 0}.gps-scrollable-list{max-height:250px;overflow-y:auto;border:1px solid var(--gps-border-light);border-radius:var(--gps-radius-sm)}.gps-table--compact th,.gps-table--compact td{padding:var(--gps-spacing-sm) var(--gps-spacing-md);font-size:var(--gps-font-size-content)}.gps-empty-message{text-align:center;color:var(--gps-text-muted);font-style:italic;padding:var(--gps-spacing-lg)!important}.gps-cell-primary{font-weight:var(--gps-font-weight-semibold);color:var(--gps-text-dark)}.gps-cell-secondary{color:var(--gps-text-muted)}.gps-card{background:var(--gps-bg-white);border:1px solid var(--gps-border-light);border-radius:var(--gps-radius-md);padding:var(--gps-spacing-xl);margin-bottom:var(--gps-spacing-xl)}.gps-table-header-section{padding:var(--gps-spacing-lg);border-bottom:1px solid var(--gps-border-light)}.gps-table-header-section .gps-section-header{margin:0;border-bottom:none;padding-bottom:0}.gps-scope-checkboxes{display:flex;flex-direction:column;gap:var(--gps-spacing-md)}.gps-checkbox-card{border:1px solid var(--gps-border-input);border-radius:var(--gps-radius-sm);transition:all .2s ease}.gps-checkbox-card:hover{background:var(--gps-bg-header)}.gps-checkbox-card-label{display:flex;align-items:flex-start;gap:var(--gps-spacing-md);padding:var(--gps-spacing-md);cursor:pointer}.gps-checkbox-card-label input[type=checkbox]{margin-top:3px;width:14px;height:14px;accent-color:var(--gps-primary-teal)}.gps-checkbox-card-content{display:flex;flex-direction:column;gap:2px}.gps-checkbox-card-title{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-semibold);color:var(--gps-text-dark)}.gps-checkbox-card-desc{font-family:var(--gps-font-family);font-size:11px;color:var(--gps-text-muted)}.gps-token-display{display:flex;align-items:center;gap:var(--gps-spacing-md);background:var(--gps-bg-header);padding:var(--gps-spacing-md);border-radius:var(--gps-radius-sm);margin-bottom:var(--gps-spacing-lg)}.gps-token-value{flex:1;font-family:monospace;font-size:var(--gps-font-size-content);word-break:break-all;background:var(--gps-bg-white);padding:var(--gps-spacing-md);border-radius:var(--gps-radius-sm);border:1px solid var(--gps-border-light)}.gps-token-details{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content)}.gps-token-details p{margin:var(--gps-spacing-sm) 0}.gps-code{font-family:monospace;font-size:11px;background:var(--gps-bg-header);padding:2px 6px;border-radius:var(--gps-radius-sm);color:var(--gps-primary-teal)}.gps-pagination{display:flex;justify-content:space-between;align-items:center;padding:var(--gps-spacing-lg);margin-top:var(--gps-spacing-lg);border-top:1px solid var(--gps-border-light)}.gps-pagination-info{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);color:var(--gps-text-muted)}.gps-link{color:var(--gps-primary-teal);text-decoration:none;font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);transition:color .2s ease}.gps-link:hover{color:var(--gps-primary-hover);text-decoration:underline}.gps-divider{margin:var(--gps-spacing-lg) 0;border:none;border-top:1px solid var(--gps-border-light)}.gps-section{margin-bottom:var(--gps-spacing-lg)}.gps-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--gps-spacing-md)}.gps-section-title{font-family:var(--gps-font-family);font-size:var(--gps-font-size-header);font-weight:var(--gps-font-weight-bold);color:var(--gps-text-dark);margin:0 0 var(--gps-spacing-md) 0}.gps-form-grid--3col{display:grid;grid-template-columns:1fr 2fr auto;gap:var(--gps-spacing-md);align-items:center}.gps-form-row{display:flex;gap:var(--gps-spacing-md);align-items:center;margin-bottom:var(--gps-spacing-md)}.gps-table--compact{font-size:11px}.gps-table--compact th,.gps-table--compact td{padding:var(--gps-spacing-sm) var(--gps-spacing-md)}.gps-scrollable-list{max-height:200px;overflow-y:auto;border:1px solid var(--gps-border-light);border-radius:var(--gps-radius-sm);margin-top:var(--gps-spacing-md)}.gps-scrollable-list .gps-table{margin-bottom:0}.gps-empty-message{text-align:center;color:var(--gps-text-light);font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);padding:var(--gps-spacing-lg);margin:0}.gps-empty-cell{text-align:center;color:var(--gps-text-light)}.gps-modal-sections{display:flex;flex-direction:column;gap:var(--gps-spacing-md)}.gps-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--gps-spacing-lg)}.gps-stat-card{display:flex;align-items:center;gap:var(--gps-spacing-md);padding:var(--gps-spacing-lg);background:var(--gps-bg-white);border:1px solid var(--gps-border-light);border-radius:var(--gps-radius-md)}.gps-stat-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--gps-radius-sm);font-size:18px}.gps-stat-content{display:flex;flex-direction:column}.gps-stat-value{font-family:var(--gps-font-family);font-size:20px;font-weight:var(--gps-font-weight-bold);color:var(--gps-text-dark);line-height:1.2}.gps-stat-label{font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);font-weight:var(--gps-font-weight-medium);color:var(--gps-text-muted)}.gps-filter-wrapper{display:flex;align-items:center;gap:var(--gps-spacing-xs)}.gps-text-muted{color:var(--gps-text-muted)}.gps-spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top-color:var(--gps-primary-teal);border-radius:50%;animation:gps-spin .8s linear infinite}@keyframes gps-spin{to{transform:rotate(360deg)}}.gps-textarea{width:100%;padding:var(--gps-spacing-sm) var(--gps-spacing-md);border:1px solid var(--gps-border-light);border-radius:var(--gps-radius-sm);font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);color:var(--gps-text-dark);resize:vertical;min-height:80px;transition:border-color .2s ease}.gps-textarea:focus{outline:none;border-color:var(--gps-primary-teal)}.gps-textarea::placeholder{color:var(--gps-text-muted)}.gps-alert--warning{background-color:#fffbeb;border-color:#fbbf24;color:#92400e}.gps-btn--danger{background-color:#e53e3e;color:#fff;border:1px solid #e53e3e}.gps-btn--danger:hover{background-color:#c53030;border-color:#c53030}.gps-btn--danger:disabled{background-color:#feb2b2;border-color:#feb2b2;cursor:not-allowed}.gps-badge--warning{background-color:#fef3c7;color:#92400e}.gps-pagination{display:flex;justify-content:center;align-items:center;gap:var(--gps-spacing-md);padding:var(--gps-spacing-lg);border-top:1px solid var(--gps-border-light)}.gps-pagination-numbers{display:flex;gap:var(--gps-spacing-xs)}.gps-pagination-number{min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gps-border-input);border-radius:var(--gps-radius-sm);background:var(--gps-bg-white);color:var(--gps-text-dark);font-family:var(--gps-font-family);font-size:var(--gps-font-size-content);cursor:pointer;transition:all .2s ease}.gps-pagination-number:hover{background:var(--gps-bg-header);border-color:var(--gps-primary-teal)}.gps-pagination-number.active{background:var(--gps-primary-teal);color:#fff;border-color:var(--gps-primary-teal)}.gps-pagination-ellipsis{min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--gps-text-muted);font-family:var(--gps-font-family);font-size:var(--gps-font-size-content)}.file-preview-container{border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-card);overflow:hidden;display:flex;flex-direction:column;height:100%;min-height:400px;box-shadow:var(--shadow-md)}.file-preview-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;background-color:var(--bg-card)}.preview-info h3{margin:0;font-size:12px;font-weight:600;color:#334155}.preview-count{font-size:10px;color:#64748b;margin-top:2px;display:block}.preview-actions{display:flex;gap:var(--space-2)}.preview-actions .refresh-button,.preview-actions .delete-preview-button{background:none;border:1px solid #e2e8f0;border-radius:4px;padding:4px 10px;display:flex;align-items:center;gap:4px;font-size:10px;color:#334155;cursor:pointer;transition:all .2s ease}.preview-actions .refresh-button:hover{background-color:var(--bg-surface);border-color:var(--color-primary);color:var(--color-primary)}.preview-actions .delete-preview-button{color:#e74c3c;border-color:#e74c3c}.preview-actions .delete-preview-button:hover{background-color:#fee;border-color:#c0392b;color:#c0392b}.delete-confirm-modal{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.delete-confirm-content{background:#fff;border-radius:8px;padding:24px;max-width:500px;box-shadow:0 4px 16px #0003}.delete-confirm-content h3{margin:0 0 16px;font-size:20px;color:#333}.delete-confirm-content p{margin:0 0 12px;color:#666;line-height:1.5}.delete-confirm-content .warning-text{display:flex;align-items:center;gap:8px;color:#e74c3c;font-weight:600;margin-top:16px}.delete-confirm-content .modal-actions{display:flex;gap:12px;margin-top:20px;justify-content:flex-end}.delete-confirm-content .btn{padding:8px 16px;border-radius:4px;border:none;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.delete-confirm-content .btn-danger{background:#e74c3c;color:#fff}.delete-confirm-content .btn-danger:hover:not(:disabled){background:#c0392b}.delete-confirm-content .btn-secondary{background:#95a5a6;color:#fff}.delete-confirm-content .btn-secondary:hover:not(:disabled){background:#7f8c8d}.delete-confirm-content .btn:disabled{opacity:.6;cursor:not-allowed}.notification-modal{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001}.notification-content{background:#fff;border-radius:8px;padding:32px;max-width:400px;box-shadow:0 4px 16px #0003;text-align:center}.notification-header{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;margin:0 auto 20px}.notification-success .notification-header{background-color:#d4edda;color:#155724}.notification-error .notification-header{background-color:#f8d7da;color:#721c24}.notification-content p{margin:0 0 24px;color:#333;font-size:16px;line-height:1.5}.notification-content .btn-primary{background:#007bff;color:#fff;padding:10px 32px;border-radius:4px;border:none;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s}.notification-content .btn-primary:hover{background:#0056b3}.preview-table-wrapper{flex:1;overflow:auto;padding:0;position:relative;margin:0;border:none;max-height:500px}.preview-table{width:max-content;min-width:100%;table-layout:auto;border-collapse:collapse;font-size:10px;white-space:nowrap}.preview-table thead{position:sticky;top:0;z-index:1;background-color:var(--bg-surface)}.preview-table th{padding:8px 12px;text-align:left;font-weight:600;font-size:10px;color:#334155;border-bottom:2px solid #e2e8f0;background-color:#f8fafc;text-transform:capitalize;min-width:150px}.preview-table th .header-cell{display:flex;align-items:center;justify-content:space-between;gap:6px;height:24px}.preview-table .column-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;flex:1}.preview-table .quality-score-circle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:8px;font-weight:600;color:#fff;text-align:center;cursor:help;flex-shrink:0;text-shadow:0px 0px 1px rgba(0,0,0,.3);box-shadow:0 1px 2px #0000001a}.preview-table td{padding:8px 12px;border-bottom:1px solid #e5e7eb;color:#374151;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:120px;font-size:10px}.preview-table tr:nth-child(2n){background-color:var(--bg-surface)}.preview-table tr:hover{background-color:var(--color-gray-100)}.null-value{color:var(--text-tertiary);font-style:italic}.file-preview-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;background-color:var(--bg-card)}.file-details{display:flex;align-items:center;gap:var(--space-2)}.file-name{font-weight:var(--font-medium);color:var(--text-primary)}.file-type{font-size:var(--text-xs);color:var(--text-on-primary);background-color:var(--color-primary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-weight:var(--font-semibold);letter-spacing:.5px}.preview-notice{font-size:var(--text-xs);color:var(--text-secondary)}.file-preview-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;background-color:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-5)}.loading-spinner{width:5px!important;height:5px!important;border:1px solid var(--color-gray-200)!important;border-top-color:var(--color-primary)!important;border-radius:var(--radius-full);animation:spin 1s linear infinite;margin-bottom:var(--space-4)}.file-preview-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;background-color:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-5);color:var(--color-error);text-align:center}.file-preview-error svg{margin-bottom:var(--space-4)}.file-preview-error .refresh-button{margin-top:var(--space-4);background:none;border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer}.file-preview-empty{display:flex;align-items:center;justify-content:center;height:300px;background-color:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-5);color:var(--text-secondary)}.column-access-indicator{display:inline-flex;align-items:center;justify-content:center;margin-left:var(--space-2);padding:var(--space-1);border-radius:var(--radius-sm);cursor:help}.column-access-indicator.masked{color:var(--color-warning-dark);background-color:var(--color-warning-light)}.column-access-indicator.denied{color:var(--color-error-dark);background-color:var(--color-error-light)}.onboarding-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:fadeIn .3s ease}.onboarding-wizard{width:90%;max-width:800px;height:80vh;max-height:700px;background-color:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;animation:slideUp .3s ease;overflow:hidden}.wizard-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center}.wizard-header h2{margin:0;font-size:var(--text-2xl);color:var(--text-primary)}.close-wizard{background:none;border:none;color:var(--text-tertiary);font-size:var(--text-xl);cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);transition:var(--transition-base)}.close-wizard:hover{background-color:var(--color-gray-100);color:var(--text-primary)}.wizard-progress{display:flex;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-light);overflow-x:auto}.progress-step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}.progress-step:not(:last-child):after{content:"";position:absolute;top:15px;left:60%;right:-40%;height:2px;background-color:var(--border-light);z-index:1}.progress-step.completed:not(:last-child):after{background-color:var(--color-primary)}.step-indicator{width:30px;height:30px;border-radius:var(--radius-full);background-color:var(--bg-card);border:2px solid var(--border-light);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-2);position:relative;z-index:2}.progress-step.completed .step-indicator,.progress-step.active .step-indicator{border-color:var(--color-primary);background-color:var(--bg-card)}.progress-step.completed .step-indicator{background-color:var(--color-primary);color:var(--text-on-primary)}.step-number{font-size:var(--text-sm);font-weight:var(--font-semibold)}.step-icon{font-size:var(--text-sm)}.step-label{font-size:var(--text-xs);color:var(--text-secondary);text-align:center;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-step.active .step-label{color:var(--color-primary);font-weight:var(--font-medium)}.wizard-content{flex:1;padding:var(--space-5) var(--space-6);overflow-y:auto}.step-description{font-size:var(--text-base);color:var(--text-secondary);margin-top:0;margin-bottom:var(--space-6)}.wizard-footer{border-top:1px solid var(--border-light);padding:var(--space-4) var(--space-6);display:flex;justify-content:space-between;align-items:center}.wizard-controls{display:flex;gap:var(--space-3)}.wizard-button{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-weight:var(--font-medium);cursor:pointer;display:flex;align-items:center;gap:var(--space-2);transition:var(--transition-base)}.wizard-button.primary{background-color:var(--color-primary);color:var(--text-on-primary);border:none}.wizard-button.primary:hover{background-color:var(--color-primary-dark)}.wizard-button.primary:disabled{background-color:var(--color-primary-light);cursor:not-allowed}.wizard-button.secondary{background-color:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-light)}.wizard-button.secondary:hover{background-color:var(--color-gray-200)}.wizard-button.secondary:disabled{color:var(--text-tertiary);cursor:not-allowed}.wizard-button.text-button{background:none;border:none;color:var(--text-tertiary);padding:var(--space-2)}.wizard-button.text-button:hover{color:var(--text-primary);text-decoration:underline}.welcome-content{text-align:center;max-width:600px;margin:0 auto}.welcome-icon{margin-bottom:var(--space-5)}.primary-icon{color:var(--color-primary)}.feature-highlights{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4);margin-top:var(--space-6)}.feature{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background-color:var(--bg-surface);border-radius:var(--radius-full)}.feature-icon{color:var(--color-primary)}.upload-content{display:flex;flex-direction:column;gap:var(--space-6)}.upload-area{padding:var(--space-5);border:2px dashed var(--border-light);border-radius:var(--radius-md);background-color:var(--color-gray-50);transition:var(--transition-base)}.upload-area:hover{border-color:var(--color-primary);background-color:var(--bg-surface)}.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10) var(--space-5);text-align:center}.upload-icon{color:var(--color-primary);margin-bottom:var(--space-4)}.file-button{background-color:var(--color-primary);color:var(--text-on-primary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;margin:var(--space-3) 0;transition:var(--transition-base)}.file-button:hover{background-color:var(--color-primary-dark)}.supported-formats{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-2)}.selected-file{padding:var(--space-4);background-color:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md)}.file-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.file-name{font-weight:var(--font-medium);word-break:break-all}.file-size{color:var(--text-secondary);font-size:var(--text-sm)}.remove-file{background:none;border:none;color:var(--color-error);cursor:pointer;display:flex;align-items:center;justify-content:center;margin-left:auto}.upload-progress{margin-top:var(--space-3);height:8px;background-color:var(--color-gray-200);border-radius:var(--radius-sm);overflow:hidden;position:relative}.progress-bar{height:100%;background-color:var(--color-primary);transition:width .3s ease}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:var(--text-xs);color:var(--text-on-primary);text-shadow:0 1px 2px rgba(0,0,0,.5)}.upload-error{margin-top:var(--space-3);color:var(--color-error);display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.upload-tips{background-color:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-4)}.upload-tips h4{margin-top:0;margin-bottom:var(--space-2);color:var(--text-primary)}.upload-tips ul{margin:0;padding-left:var(--space-5);color:var(--text-secondary)}.upload-tips li{margin-bottom:var(--space-2)}.profile-content{display:flex;flex-direction:column;gap:var(--space-6)}.profile-demo{display:flex;gap:var(--space-5);align-items:center;background-color:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-5);overflow:hidden}.demo-image{max-width:200px;object-fit:contain}.profile-details{flex:1}.profile-details h4{margin-top:0;margin-bottom:var(--space-3);color:var(--text-primary)}.profile-info-list{list-style:none;padding:0;margin:0}.profile-info-list li{margin-bottom:var(--space-3);display:flex;flex-direction:column}.info-label{font-weight:var(--font-medium);color:var(--text-primary)}.info-description{color:var(--text-secondary);font-size:var(--text-sm)}.profile-navigation{background-color:var(--color-primary-50);border-left:4px solid var(--color-primary);padding:var(--space-4);border-radius:var(--radius-sm)}.profile-navigation p{margin:0;color:var(--text-primary)}.quality-content{display:flex;flex-direction:column;gap:var(--space-6)}.quality-demo{display:flex;gap:var(--space-5);flex-wrap:wrap}.quality-checks-list{flex:1;min-width:300px}.quality-check{background-color:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-3)}.check-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.check-type{font-weight:var(--font-medium);color:var(--text-primary)}.check-status{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--font-medium)}.check-status.passed{color:var(--color-success)}.check-status.warning{color:var(--color-warning)}.check-status.failed{color:var(--color-error)}.check-description{margin:0;color:var(--text-secondary);font-size:var(--text-sm)}.custom-check-example{flex:1;min-width:300px;background-color:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-4)}.custom-check-example h4{margin-top:0;margin-bottom:var(--space-3);color:var(--text-primary)}.check-config{background-color:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden}.config-row{display:flex;border-bottom:1px solid var(--border-light)}.config-row:last-child{border-bottom:none}.config-label,.config-value{padding:var(--space-2) var(--space-3)}.config-label{background-color:var(--bg-surface);font-weight:var(--font-medium);width:30%;border-right:1px solid var(--border-light)}.config-value{flex:1;font-family:var(--font-mono)}.quality-tips{background-color:var(--color-primary-50);border-left:4px solid var(--color-primary);padding:var(--space-4);border-radius:var(--radius-sm)}.quality-tips p{margin:0;color:var(--text-primary)}.final-content{text-align:center;max-width:600px;margin:0 auto}.completion-icon{margin-bottom:var(--space-4)}.success-icon{color:var(--color-success)}.completion-message{font-size:var(--text-lg);margin-bottom:var(--space-6);color:var(--text-primary)}.next-steps{text-align:left;margin-bottom:var(--space-6)}.next-steps h4{margin-top:0;margin-bottom:var(--space-3);color:var(--text-primary)}.next-steps-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-3)}.next-steps-list li{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background-color:var(--bg-surface);border-radius:var(--radius-md)}.step-icon{color:var(--color-primary);display:flex;align-items:center;justify-content:center}.help-resources{background-color:var(--color-success-light);border-radius:var(--radius-md);padding:var(--space-4);text-align:left}.help-resources h4{margin-top:0;margin-bottom:var(--space-2);color:var(--text-primary)}.help-resources p{margin:0;color:var(--text-secondary)}.preview-content{display:flex;flex-direction:column;height:100%;min-height:400px}.preview-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:100%;padding:var(--space-10) var(--space-5);background-color:var(--color-gray-50);border-radius:var(--radius-md);border:2px dashed var(--border-light)}.preview-icon{color:var(--color-primary);margin-bottom:var(--space-4)}.preview-placeholder p{margin:0 0 var(--space-5) 0;font-size:var(--text-lg);color:var(--text-secondary)}.preview-placeholder-description{text-align:left;max-width:500px;margin:0 auto}.preview-placeholder-description p{font-size:var(--text-base);margin-bottom:var(--space-2)}.preview-placeholder-description ul{margin:0;padding-left:var(--space-5);color:var(--text-secondary)}.preview-placeholder-description li{margin-bottom:var(--space-2);font-size:var(--text-sm)}@media (max-width: 768px){.onboarding-wizard{width:95%;height:90vh}.wizard-progress{overflow-x:auto;padding-bottom:5px}.progress-step:not(:last-child):after{left:55%;right:-45%}.profile-demo,.quality-demo{flex-direction:column}.demo-image{max-width:100%}.quality-checks-list,.custom-check-example{width:100%}.step-label{font-size:.7rem;max-width:80px}}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background-color:var(--bg-sidebar);border-right:1px solid var(--border-light);height:100vh;position:fixed;overflow-y:auto;overflow-x:hidden;top:0;bottom:0;left:0;z-index:var(--z-base);transition:width var(--transition-base),min-width var(--transition-base);display:flex;flex-direction:column}.sidebar.collapsed{width:70px;min-width:70px}.sidebar.collapsed .sidebar-nav a span,.sidebar.collapsed .collapsible-menu-item span,.sidebar.collapsed .nav-divider span,.sidebar.collapsed .category-chevron{display:none}.sidebar.collapsed .sidebar-nav a,.sidebar.collapsed .collapsible-menu-item{justify-content:center;padding:var(--space-3)}.sidebar.collapsed .sidebar-nav .icon{margin-right:0}.sidebar.collapsed .submenu-item{display:none}.sidebar-nav{padding:var(--space-4) 0}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background-color:var(--border-medium);border-radius:var(--radius-full)}.sidebar::-webkit-scrollbar-thumb:hover{background-color:var(--border-dark)}.sidebar{scrollbar-width:thin;scrollbar-color:var(--border-medium) transparent}.sidebar-nav ul{list-style:none;padding:0;margin:0}.sidebar-nav li{margin-bottom:var(--space-1)}.sidebar-nav a{display:flex;align-items:center;padding:var(--space-3) var(--space-5);color:var(--text-secondary);text-decoration:none;transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium);margin:0 var(--space-2);border-radius:var(--radius-md)}.sidebar-nav a:focus,.sidebar-nav a:focus-visible{outline:none!important}.sidebar-nav a:hover{background-color:var(--color-gray-50);color:var(--text-primary)}.sidebar-nav a.active{color:var(--color-primary);font-weight:var(--font-semibold)}.sidebar-nav .onboarding-button{display:flex;align-items:center;padding:var(--space-3) var(--space-5);width:100%;background:none;border:none;color:var(--text-secondary);text-align:left;cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium);margin:0 var(--space-2);border-radius:var(--radius-md)}.sidebar-nav .onboarding-button:hover{background-color:var(--color-gray-50);color:var(--text-primary)}.sidebar-nav .onboarding-button .icon{color:var(--color-success)}.sidebar-nav .icon{margin-right:var(--space-3);font-size:18px;min-width:18px}.nav-divider{padding:var(--space-3) var(--space-4) var(--space-2);margin-top:var(--space-4);border-top:1px solid var(--border-light);cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:background-color var(--transition-fast);border-radius:var(--radius-md);margin-left:var(--space-2);margin-right:var(--space-2)}.nav-divider:hover{background-color:var(--color-gray-50)}.nav-divider:first-child{margin-top:0;border-top:none}.nav-divider span{font-size:var(--text-xs);text-transform:capitalize;color:var(--text-tertiary);font-weight:var(--font-semibold);letter-spacing:.05em}.category-chevron{font-size:14px;color:var(--text-tertiary);transition:transform var(--transition-fast)}.sidebar-nav a.external-link{color:var(--color-teal);position:relative}.sidebar-nav a.external-link:after{content:"↗";margin-left:var(--space-2);font-size:var(--text-sm);opacity:.7;transition:all var(--transition-fast)}.sidebar-nav a.external-link:hover{background-color:var(--color-teal-light);color:var(--color-teal-dark)}.sidebar-nav a.external-link:hover:after{transform:translate(2px) translateY(-2px);opacity:1}.sidebar-nav a.external-link .icon{color:var(--color-teal)}.collapsible-menu-item{display:flex;align-items:center;padding:var(--space-3) var(--space-5);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium);margin:0 var(--space-2);border-radius:var(--radius-md)}.collapsible-menu-item:focus,.collapsible-menu-item:focus-visible{outline:none!important}.collapsible-menu-item:hover{background-color:var(--color-gray-50);color:var(--text-primary)}.collapsible-menu-item .icon{margin-right:var(--space-3);font-size:18px;min-width:18px}.collapsible-menu-item .chevron{margin-left:auto;font-size:14px;transition:transform var(--transition-fast)}.submenu-item{margin-bottom:0}.submenu-item a{padding-left:calc(var(--space-5) + 18px + var(--space-3));font-size:var(--text-sm);font-weight:var(--font-normal);margin-left:var(--space-2)}.submenu-item a:hover{background-color:var(--color-gray-50);color:var(--text-primary)}.submenu-item a.active{background-color:var(--color-primary-50);color:var(--color-primary);font-weight:var(--font-semibold)}@media (max-width: 960px){.sidebar{transform:translate(-100%);transition:transform var(--transition-base)}.sidebar.open{transform:translate(0)}}.sidebar-toggle{position:absolute;top:var(--space-4);right:-12px;display:flex;align-items:center;justify-content:center;width:24px;height:48px;background-color:#e3f2fd;color:#1976d2;border:1px solid #90caf9;border-radius:0 var(--radius-md) var(--radius-md) 0;cursor:pointer;transition:all var(--transition-fast);font-size:14px;z-index:10;box-shadow:2px 0 4px #0000000d}.sidebar-toggle:hover{background-color:#bbdefb;color:#1565c0;border-color:#64b5f6;box-shadow:2px 0 6px #0000001a}@media (max-width: 640px){.sidebar{width:280px}.sidebar-nav a,.sidebar-nav .onboarding-button{padding:var(--space-3) var(--space-4)}}.sidebar-header{padding:var(--space-4);border-bottom:1px solid var(--border-light);flex-shrink:0}.sidebar-header-content{display:flex;align-items:center;gap:var(--space-3)}.sidebar-home-btn{background:var(--muted);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:var(--foreground);font-size:18px}.sidebar-home-btn:hover{background:var(--accent);border-color:var(--ring)}.sidebar-logo{flex:1;text-decoration:none;display:flex;align-items:center}.sidebar-logo h1{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-nav{flex:1;overflow-y:auto;overflow-x:hidden}.sidebar-footer{padding:var(--space-4);border-top:1px solid var(--border-light);display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.sidebar-user-menu{position:relative;flex:1}.sidebar-user-btn{background:var(--muted);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);cursor:pointer;display:flex;align-items:center;gap:var(--space-2);transition:all .2s ease;color:var(--foreground);width:100%}.sidebar-user-btn:hover{background:var(--accent);border-color:var(--ring)}.sidebar-username{flex:1;text-align:left;font-size:var(--text-sm);font-weight:var(--font-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-dropdown-menu{position:absolute;bottom:100%;left:0;right:0;margin-bottom:var(--space-2);background-color:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;max-height:400px;overflow-y:auto}.sidebar-dropdown-header{padding:var(--space-4);border-bottom:1px solid var(--border-light);background-color:var(--color-gray-50)}.sidebar-user-info strong{display:block;font-size:var(--text-base);color:var(--text-primary);margin-bottom:var(--space-1)}.sidebar-user-info small{display:block;font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-2)}.sidebar-user-roles{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.sidebar-role-badge{padding:var(--space-1) var(--space-2);background-color:var(--color-primary-50);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium)}.sidebar-dropdown-content{padding:var(--space-2)}.sidebar-dropdown-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--text-secondary);text-decoration:none;transition:all var(--transition-fast);border-radius:var(--radius-md);font-size:var(--text-sm);border:none;background:none;width:100%;text-align:left;cursor:pointer}.sidebar-dropdown-item:hover{background-color:var(--color-gray-50);color:var(--text-primary)}.sidebar-dropdown-item svg{font-size:16px}.sidebar.collapsed .sidebar-logo h1,.sidebar.collapsed .sidebar-username{display:none}.sidebar.collapsed .sidebar-header-content,.sidebar.collapsed .sidebar-footer{flex-direction:column;gap:var(--space-2)}.notification-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;align-items:flex-end;max-width:400px}.notification{margin-bottom:15px;padding:15px 20px;border-radius:5px;box-shadow:0 4px 12px #00000026;display:flex;align-items:flex-start;justify-content:space-between;min-width:300px;max-width:100%;animation:slideIn .3s ease forwards;position:relative;overflow:hidden}.notification:after{content:"";position:absolute;bottom:0;left:0;height:3px;width:100%;background-color:#ffffff80}.notification-success{background-color:#10b981;color:#fff}.notification-error{background-color:#ef4444;color:#fff}.notification-warning{background-color:#f59e0b;color:#fff}.notification-info{background-color:#3b82f6;color:#fff}.notification-content{flex:1}.notification-message{font-size:14px;line-height:1.5;margin-right:10px}.notification-close{background:transparent;border:none;color:#fff;font-size:20px;cursor:pointer;opacity:.7;transition:opacity .2s;padding:0;margin-left:10px;height:20px;width:20px;display:flex;justify-content:center;align-items:center}.notification-close:hover{opacity:1}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.performance-optimizations{max-width:1200px;margin:0 auto;padding:var(--space-5);font-family:var(--font-primary)}.performance-optimizations h1{color:var(--text-primary);margin-bottom:var(--space-3);border-bottom:2px solid var(--color-primary);padding-bottom:var(--space-3)}.performance-optimizations .lead{font-size:1.1rem;color:var(--text-secondary);margin-bottom:var(--space-8)}.performance-optimizations .tabs{display:flex;border-bottom:1px solid var(--border-light);margin-bottom:var(--space-5)}.performance-optimizations .tabs button{background:none;border:none;padding:var(--space-3) var(--space-5);font-size:16px;cursor:pointer;border-bottom:3px solid transparent;transition:var(--transition-base);color:var(--text-secondary)}.performance-optimizations .tabs button:hover{background-color:var(--bg-surface);color:var(--color-primary)}.performance-optimizations .tabs button.active{border-bottom:3px solid var(--color-primary);color:var(--color-primary);font-weight:var(--font-semibold)}.performance-optimizations .tab-content{background-color:var(--bg-card);border-radius:var(--radius-sm);padding:var(--space-5);box-shadow:var(--shadow-sm)}.overview-container{line-height:1.6}.techniques-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-5);margin:var(--space-8) 0}.technique-card{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-5);background-color:var(--bg-surface);box-shadow:var(--shadow-sm);transition:var(--transition-base)}.technique-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.technique-card h3{color:var(--color-primary);margin-top:0;margin-bottom:var(--space-3)}.technique-card ul{padding-left:var(--space-5);margin-bottom:var(--space-4)}.technique-card li{margin-bottom:var(--space-2)}.technique-card button{background-color:var(--color-primary);color:var(--color-white);border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;font-weight:var(--font-medium);transition:var(--transition-base)}.technique-card button:hover{background-color:var(--color-primary-dark)}.performance-tips{margin-top:var(--space-10);background-color:var(--color-primary-50);padding:var(--space-5);border-radius:var(--radius-md);border-left:4px solid var(--color-primary)}.performance-tips h3{margin-top:0;color:var(--color-primary)}.performance-tips ul{padding-left:var(--space-5)}.performance-tips li{margin-bottom:var(--space-3)}.expensive-component{padding:var(--space-5);border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-surface);margin:var(--space-5) 0}.data-preview{margin-top:var(--space-4);background-color:var(--color-gray-100);padding:var(--space-3);border-radius:var(--radius-sm);overflow-x:auto}.data-preview pre{margin:0;white-space:pre-wrap}.callback-example .controls{margin-bottom:var(--space-5);padding:var(--space-4);background-color:var(--bg-surface);border-radius:var(--radius-md)}.callback-example button{margin-right:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-4);background-color:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-sm);cursor:pointer}.note{font-size:.9rem;color:var(--text-secondary);margin-top:var(--space-4);font-style:italic}.lazy-loading-example{padding:var(--space-5)}.toggle-button{padding:var(--space-3) var(--space-5);background-color:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-sm);cursor:pointer;margin-bottom:var(--space-5)}.loading-component{display:flex;flex-direction:column;align-items:center;padding:var(--space-10);background-color:var(--bg-surface);border-radius:var(--radius-md)}.loader{border:5px solid var(--color-gray-200);border-top:5px solid var(--color-primary);border-radius:var(--radius-full);width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:var(--space-4)}.info-box{margin-top:var(--space-8);padding:var(--space-4);background-color:var(--color-primary-50);border-radius:var(--radius-md);border-left:4px solid var(--color-primary)}.info-box h4{margin-top:0;color:var(--color-primary)}.info-box ul{padding-left:var(--space-5)}.virtualized-list-container{padding:var(--space-5)}.virtualized-list{border-radius:var(--radius-md);margin:var(--space-5) 0}.stats{display:flex;gap:var(--space-5);margin-top:var(--space-4);background-color:var(--bg-surface);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md)}.stats p{margin:var(--space-1) 0}.heavy-component{padding:var(--space-5);background-color:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.data-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-4);margin-top:var(--space-5)}.data-card{padding:var(--space-4);border:1px solid var(--border-light);border-radius:var(--radius-md);background-color:var(--bg-card)}.data-card h4{margin-top:0;color:var(--color-primary)}.data-footer{display:flex;justify-content:space-between;margin-top:var(--space-3);font-size:.8rem;color:var(--text-secondary)}.metric-trend-popup{position:fixed;z-index:1000;background:var(--exec-bg-surface, #FFFFFF);border-radius:var(--exec-radius-card, 12px);box-shadow:var(--exec-shadow-card, 0px 4px 12px rgba(0, 0, 0, .05));border:1px solid var(--exec-border, #E5E7EB);padding:var(--exec-space-md, 12px);width:280px;animation:fadeIn .2s ease-out;font-family:var(--exec-font-family, "Inter", sans-serif)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--exec-space-sm, 8px);padding-bottom:var(--exec-space-sm, 8px);border-bottom:1px solid var(--exec-border, #E5E7EB)}.popup-title{font-size:var(--exec-text-md, 10.5px);font-weight:var(--exec-font-semibold, 600);color:var(--exec-text-title, #1F2937);font-family:var(--exec-font-family, "Inter", sans-serif)}.popup-trend{font-size:var(--exec-text-sm, 9px);font-weight:var(--exec-font-semibold, 600);padding:2px 6px;border-radius:var(--exec-radius-button, 6px)}.popup-trend.trend-up{color:#059669;background:#0596691f}.popup-trend.trend-down{color:#dc2626;background:#dc26261f}.popup-trend.trend-neutral{color:var(--exec-text-muted, #6B7280);background:var(--exec-bg-main, #F5F7FA)}.popup-chart{height:80px;margin-bottom:var(--exec-space-sm, 8px)}.popup-footer{text-align:center}.popup-hint{font-size:var(--exec-text-sm, 9px);color:var(--exec-text-muted, #9CA3AF);font-style:italic;font-family:var(--exec-font-family, "Inter", sans-serif)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;color:var(--exec-text-muted, #6B7280);font-size:var(--exec-text-md, 10.5px);font-family:var(--exec-font-family, "Inter", sans-serif)}.loading-spinner.small{font-size:var(--exec-text-sm, 9px)}.no-data{display:flex;align-items:center;justify-content:center;height:100%;color:var(--exec-text-muted, #9CA3AF);font-size:var(--exec-text-md, 10.5px);font-family:var(--exec-font-family, "Inter", sans-serif)}.no-data.small{font-size:var(--exec-text-sm, 9px)}.metric-trend-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease-out}.metric-trend-modal-overlay.positioned{align-items:flex-start;justify-content:flex-start}.metric-trend-modal{background:var(--exec-bg-surface, #FFFFFF);border-radius:var(--exec-radius-card, 12px);box-shadow:0 8px 40px #0003;width:90%;max-width:800px;max-height:90vh;overflow:hidden;animation:slideUp .3s ease-out;font-family:var(--exec-font-family, "Inter", sans-serif)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--exec-space-md, 16px) var(--exec-space-lg, 20px);border-bottom:1px solid var(--exec-border, #E5E7EB);background:#fff!important}.modal-header h3{margin:0;font-size:var(--exec-text-lg, 13.5px);font-weight:var(--exec-font-semibold, 600);color:#1f2937!important;font-family:var(--exec-font-family, "Inter", sans-serif)}.modal-close{background:none;border:none;font-size:20px;color:var(--exec-text-muted, #6B7280);cursor:pointer;padding:0;line-height:1;transition:color .2s;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--exec-radius-button, 6px)}.modal-close:hover{color:var(--exec-text-title, #1F2937);background:#0000000d}.modal-controls{padding:var(--exec-space-md, 16px) var(--exec-space-lg, 20px);border-bottom:1px solid var(--exec-border, #E5E7EB)}.granularity-tabs{display:flex;gap:var(--exec-space-sm, 8px)}.granularity-tab{padding:var(--exec-space-sm, 8px) var(--exec-space-md, 16px);font-size:var(--exec-text-md, 10.5px);font-weight:var(--exec-font-medium, 500);font-family:var(--exec-font-family, "Inter", sans-serif);color:var(--exec-text-muted, #6B7280);background:var(--exec-bg-main, #F3F4F6);border:1px solid var(--exec-border, #E5E7EB);border-radius:var(--exec-radius-button, 6px);cursor:pointer;transition:all .2s}.granularity-tab:hover{background:var(--exec-border, #E5E7EB);color:var(--exec-text-body, #374151)}.granularity-tab.active{background:#025043;color:#fff;border-color:#025043}.modal-summary{display:flex;gap:var(--exec-space-xl, 24px);padding:var(--exec-space-md, 16px) var(--exec-space-lg, 20px);background:var(--exec-bg-main, #F9FAFB);border-bottom:1px solid var(--exec-border, #E5E7EB)}.summary-stat{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:var(--exec-text-sm, 9px);font-weight:var(--exec-font-medium, 500);color:var(--exec-text-muted, #6B7280);text-transform:uppercase;letter-spacing:.5px;font-family:var(--exec-font-family, "Inter", sans-serif)}.stat-value{font-size:var(--exec-text-lg, 13.5px);font-weight:var(--exec-font-semibold, 600);color:var(--exec-text-title, #1F2937);font-family:var(--exec-font-family, "Inter", sans-serif)}.stat-value.trend-up{color:#059669}.stat-value.trend-down{color:#dc2626}.stat-value.trend-neutral{color:var(--exec-text-muted, #6B7280)}.modal-chart-container{padding:var(--exec-space-lg, 20px);height:350px}@media (max-width: 640px){.metric-trend-modal{width:95%;max-height:85vh}.granularity-tabs{flex-wrap:wrap}.granularity-tab{flex:1;min-width:100px;text-align:center}.modal-summary{flex-wrap:wrap;gap:var(--exec-space-md, 16px)}.summary-stat{flex:1;min-width:80px}.modal-chart-container{height:280px}}:root{--exec-primary: #2ECC71;--exec-primary-light: rgba(46, 204, 113, .12);--exec-sidebar-bg: #F8FAFC;--exec-border: #E5E7EB;--exec-text-title: #1F2937;--exec-text-body: #374151;--exec-text-muted: #6B7280;--exec-bg-surface: #FFFFFF;--exec-bg-main: #F5F7FA;--exec-chart-blue: #4C6EF5;--exec-chart-orange: #FF9F43;--exec-font-family: "Inter", "SF Pro Display", sans-serif;--exec-text-xl: 18px;--exec-text-lg: 13.5px;--exec-text-md: 10.5px;--exec-text-sm: 9px;--exec-font-semibold: 600;--exec-font-medium: 500;--exec-font-regular: 400;--exec-radius-card: 12px;--exec-radius-button: 6px;--exec-space-sm: 6px;--exec-space-md: 12px;--exec-space-lg: 18px;--exec-space-xl: 24px;--exec-shadow-card: 0px 4px 12px rgba(0, 0, 0, .05)}.executive-dashboard{padding:var(--exec-space-lg);background-color:var(--exec-bg-main);min-height:100vh;font-family:var(--exec-font-family)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--exec-space-md)}.dashboard-header h1{font-size:1.1rem;font-weight:600;color:#333;margin:0}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--exec-space-lg);margin-top:var(--exec-space-lg)}.section-header h2{font-size:15px;font-weight:var(--exec-font-semibold);color:#025043;margin:0}.section-description{font-size:var(--exec-text-sm);color:var(--exec-text-muted);margin:4px 0 0}.platform-overview-header{margin-top:0}.project-metrics-header{margin-top:0;margin-bottom:var(--exec-space-md)}.section-divider{height:1px;background:linear-gradient(to right,transparent,var(--exec-border) 20%,var(--exec-border) 80%,transparent);margin:var(--exec-space-xl) 0}.dashboard-controls{display:flex;gap:var(--exec-space-md);align-items:center}.project-selector,.time-range-selector{padding:7px 12px;font-size:var(--exec-text-md);font-weight:var(--exec-font-medium);font-family:var(--exec-font-family);color:var(--exec-text-body);background-color:var(--exec-bg-surface);border:1px solid var(--exec-border);border-radius:var(--exec-radius-button);box-shadow:0 2px 4px #0000000a;cursor:pointer;transition:all .2s ease;min-width:135px}.project-selector:hover,.time-range-selector:hover{border-color:#025043;box-shadow:0 4px 8px #0250431a}.project-selector:focus,.time-range-selector:focus{outline:none;border-color:#025043;box-shadow:0 0 0 3px #0250431a}.health-score-hero{margin-bottom:var(--exec-space-xl)}.health-score-card{background:linear-gradient(135deg,#025043,#2ecc71);border-radius:var(--exec-radius-card);padding:18px;box-shadow:0 6px 18px #02504326;color:#fff;text-align:center}.health-label{font-size:var(--exec-text-md);font-weight:var(--exec-font-medium);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--exec-space-sm);opacity:.9}.health-value{font-size:36px;font-weight:700;line-height:1;margin-bottom:var(--exec-space-sm);text-shadow:0px 3px 9px rgba(0,0,0,.1)}.health-status{font-size:var(--exec-text-lg);font-weight:var(--exec-font-semibold);margin-bottom:var(--exec-space-md);opacity:.95}.health-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:12px;margin-top:var(--exec-space-md);padding-top:var(--exec-space-md);border-top:1px solid rgba(255,255,255,.2)}.health-metric{display:flex;flex-direction:column;gap:4px;text-align:center}.health-metric span:first-child{font-size:var(--exec-text-sm);font-weight:var(--exec-font-medium);opacity:.85;text-transform:uppercase;letter-spacing:.5px}.health-metric span:last-child{font-size:18px;font-weight:700;color:#fff}.health-score-card .health-label,.health-metric span:first-child{text-transform:none;letter-spacing:0;font-size:12px;font-family:Inter,sans-serif}.kpi-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:var(--exec-space-xl)}.kpi-card{background:var(--exec-bg-surface);border-radius:var(--exec-radius-card);padding:15px;box-shadow:var(--exec-shadow-card);border:1px solid var(--exec-border);transition:transform .2s ease,box-shadow .2s ease}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00000014}.kpi-label{font-size:var(--exec-text-sm);font-weight:var(--exec-font-medium);color:var(--exec-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--exec-space-sm)}.kpi-cards:not(.platform-overview-section) .kpi-label{text-transform:none;letter-spacing:0;font-size:12px;font-family:Inter,sans-serif}.kpi-value{font-size:21px;font-weight:700;color:var(--exec-text-title);line-height:1.2;margin-bottom:var(--exec-space-sm)}.platform-overview-section .kpi-label{text-transform:none;letter-spacing:0;font-size:12px;font-family:Inter,sans-serif}.platform-overview-section .kpi-value{color:#4c6ef5}.kpi-trend{font-size:var(--exec-text-sm);font-weight:var(--exec-font-medium);display:flex;align-items:center;gap:4px}.kpi-trend.trend-up{color:var(--exec-primary)}.kpi-trend.trend-down{color:#ef4444}.kpi-trend.status-excellent{color:var(--exec-primary)}.kpi-trend.status-good{color:var(--exec-chart-blue)}.kpi-trend.status-warning{color:var(--exec-chart-orange)}.kpi-trend.status-critical{color:#ef4444}.kpi-trend.neutral{color:var(--exec-text-muted)}.kpi-card.interactive{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.kpi-card.interactive:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001f;border-color:#025043}.kpi-card.interactive:active{transform:translateY(-1px)}.health-metric.interactive{cursor:pointer;padding:6px 8px;border-radius:6px;transition:background-color .2s ease}.health-metric.interactive:hover{background-color:#ffffff26}.trend-icon{display:inline-block;font-size:10px;font-weight:700;margin-left:4px;vertical-align:middle}.trend-icon.up{color:#10b981}.trend-icon.down{color:#ef4444}.trend-icon.neutral{color:#9ca3af}.kpi-label .trend-icon{font-size:12px}.health-metric .trend-icon{font-size:11px;margin-left:2px}.executive-dashboard .charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:var(--exec-space-lg)}.executive-dashboard .trend-charts-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:var(--exec-space-lg)}.executive-dashboard .chart-card{background:var(--exec-bg-surface);border-radius:var(--exec-radius-card);padding:10px;box-shadow:var(--exec-shadow-card);border:1px solid var(--exec-border)}.executive-dashboard .chart-card.wide{grid-column:span 2}.executive-dashboard .chart-header{margin-bottom:8px}.executive-dashboard .chart-header h3{font-size:12px;font-weight:var(--exec-font-semibold);color:var(--exec-text-title);margin:0}.quality-tabs{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.tab-button{padding:4px 10px;font-size:12px!important;font-weight:500!important;font-family:Inter,sans-serif!important;color:#6b7280;background-color:#f3f4f6;border:1px solid #E5E7EB;border-radius:6px;cursor:pointer;transition:all .2s ease;line-height:1.4}.tab-button:hover{background-color:#d1d5db;color:#374151}.tab-button.active{background-color:#e5e7eb;color:#fff;border-color:#e5e7eb}.executive-dashboard .chart-container,.executive-dashboard .chart-container-tall{position:relative;height:180px}.executive-dashboard .chart-container.donut{height:162px}.executive-dashboard .no-data{display:flex;align-items:center;justify-content:center;height:100%;color:var(--exec-text-muted);font-size:var(--exec-text-md);font-weight:var(--exec-font-medium)}.executive-dashboard .stats-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:var(--exec-space-md);margin-bottom:var(--exec-space-lg)}.executive-dashboard .stat-card{background:var(--exec-bg-surface);border-radius:var(--exec-radius-card);padding:var(--exec-space-md);box-shadow:var(--exec-shadow-card);border:1px solid var(--exec-border)}.executive-dashboard .stat-header{margin-bottom:var(--exec-space-sm);padding-bottom:var(--exec-space-sm);border-bottom:1px solid var(--exec-border)}.executive-dashboard .stat-header h3{font-size:var(--exec-text-lg);font-weight:var(--exec-font-semibold);color:var(--exec-text-title);margin:0}.executive-dashboard .stat-content{display:flex;flex-direction:column;gap:var(--exec-space-sm)}.executive-dashboard .stat-row{display:flex;justify-content:space-between;align-items:center}.executive-dashboard .stat-label{font-size:12px;font-family:Inter,sans-serif;font-weight:var(--exec-font-medium);color:var(--exec-text-body);text-transform:none;letter-spacing:0}.executive-dashboard .stat-value{font-size:18px;font-family:Inter,sans-serif;font-weight:var(--exec-font-semibold);color:var(--exec-text-title)}.executive-dashboard .stat-value.status-excellent{color:var(--exec-primary)}.executive-dashboard .stat-value.status-good{color:var(--exec-chart-blue)}.executive-dashboard .stat-value.status-warning{color:var(--exec-chart-orange)}.executive-dashboard .stat-value.status-critical{color:#ef4444}.loading-state,.error-state{display:flex;justify-content:center;align-items:center;min-height:400px;background:var(--exec-bg-surface);border-radius:var(--exec-radius-card);padding:var(--exec-space-xl);box-shadow:var(--exec-shadow-card);font-size:var(--exec-text-lg);color:var(--exec-text-body)}.error-state{color:#ef4444}@media (max-width: 768px){.dashboard-header{flex-direction:column;align-items:flex-start;gap:var(--exec-space-md)}.dashboard-controls{width:100%;flex-direction:column}.project-selector,.time-range-selector{width:100%}.health-value{font-size:48px}.health-breakdown{grid-template-columns:repeat(2,1fr)}.kpi-cards,.executive-dashboard .charts-grid,.executive-dashboard .trend-charts-row{grid-template-columns:1fr}.executive-dashboard .chart-card.wide{grid-column:span 1}.executive-dashboard .stats-cards{grid-template-columns:1fr}.executive-dashboard{padding:var(--exec-space-md)}}@media (max-width: 480px){.health-value{font-size:40px}.health-breakdown{grid-template-columns:1fr}.kpi-value{font-size:24px}.executive-dashboard .chart-container,.executive-dashboard .chart-container-tall,.executive-dashboard .chart-container.donut{height:240px}}.card{background-color:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-5);margin-bottom:var(--space-5);transition:var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg)}.file-dropzone{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;border:2px dashed #d1d5db;border-radius:8px;padding:48px 24px;text-align:center;transition:all .2s ease;background-color:#fafafa}.file-dropzone.dragging{border-color:#025043;background-color:#0250430d}.file-dropzone.status-success{border-color:#10b981;background-color:#f0fdf4}.file-dropzone.status-error{border-color:#ef4444;background-color:#fef2f2}.file-dropzone.status-partial{border-color:#f59e0b;background-color:#fffbeb}.dropzone-content{display:flex;flex-direction:column;align-items:center;justify-content:center}.upload-icon{font-size:48px;color:#025043;margin-bottom:16px}.success-icon-wrapper{margin-bottom:16px}.dropzone-success-icon{width:64px;height:64px;color:#10b981}.error-icon{font-size:48px;color:#ef4444;margin-bottom:16px}.dropzone-text{margin-bottom:20px}.dropzone-text p{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#333;margin-bottom:8px}.file-select-button{display:inline-block;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;padding:10px 20px;background-color:#025043;color:#fff;border-radius:4px;cursor:pointer;transition:background-color .2s ease}.file-select-button:hover{background-color:#013d34}.file-input{display:none}.file-requirements{margin-top:20px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#666}.file-requirements p{margin:4px 0}.file-size-limit{font-weight:500;color:#333}.file-size-helper{font-size:9px;color:#025043;font-style:italic;margin-top:8px!important}.upload-progress{display:flex;flex-direction:column;align-items:center;width:100%;max-width:400px}.file-info{display:flex;justify-content:space-between;width:100%;margin-bottom:10px}.file-name{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:600;font-size:10px;color:#333;margin:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}.file-size{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666;margin:0}.progress-container{width:100%;height:16px;background-color:#e5e7eb;border-radius:8px;margin:8px 0;overflow:hidden;position:relative}.progress-bar{height:100%;background-color:#025043;border-radius:8px;transition:width .3s ease;display:flex;align-items:center;justify-content:center}.progress-text{position:absolute;left:50%;transform:translate(-50%);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;color:#333;font-weight:600;font-size:9px;text-shadow:0 0 2px white}.processing-step{margin-top:8px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;color:#333;font-weight:500;font-size:10px}.scanning-icon{font-size:48px;color:#025043;margin-bottom:16px;animation:spin 1s linear infinite}.upload-scanning{display:flex;flex-direction:column;align-items:center;width:100%}.scanning-text{margin-top:8px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;color:#333;font-weight:500;font-size:11px}.scanning-subtext{margin-top:4px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;color:#666;font-size:10px}.upload-success{text-align:center}.upload-success p{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:11px;color:#065f46;margin:0}.upload-error{text-align:center}.upload-error p{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#991b1b}.error-text{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#991b1b;margin-top:8px}.gps-dropzone-file-list{margin-top:16px;max-height:200px;overflow-y:auto;width:100%;max-width:400px}.gps-dropzone-file-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid #e2e8f0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px}.gps-dropzone-file-item:last-child{border-bottom:none}.gps-dropzone-file-name{flex:1;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:12px}.gps-dropzone-file-status{display:flex;align-items:center;gap:6px}.gps-dropzone-file-error{font-size:9px;color:#ef4444}.gps-dropzone-icon-success{color:#10b981}.gps-dropzone-icon-error{color:#ef4444}.gps-dropzone-icon-pending{color:#f59e0b}.gps-dropzone-scan-banner{margin-top:16px;margin-bottom:16px;padding:12px;border-radius:4px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px}.gps-dropzone-scan-banner--clean{background-color:#d1fae5;color:#065f46}.gps-dropzone-scan-banner--warning{background-color:#fef3c7;color:#92400e}.gps-dropzone-scan-banner strong{font-weight:600}.gps-dropzone-reset-btn{margin-top:16px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;padding:8px 16px;background-color:#025043;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s ease}.gps-dropzone-reset-btn:hover{background-color:#013d34}.gps-dropzone-reset-btn--secondary{background-color:#fff;color:#333;border:1px solid #d1d5db}.gps-dropzone-reset-btn--secondary:hover{background-color:#f3f4f6;border-color:#025043}.gps-dropzone-file-scanning,.gps-dropzone-file-uploading{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#025043}.gps-dropzone-file-complete{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#10b981}.gps-dropzone-file-failed{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#ef4444}.gps-dropzone-file-pending{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#6b7280}.duplicate-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;animation:duplicateModalFadeIn .2s ease-in}@keyframes duplicateModalFadeIn{0%{opacity:0}to{opacity:1}}.duplicate-modal{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:#fff;border-radius:8px;box-shadow:0 20px 60px #0000004d;max-width:480px;width:90%;animation:duplicateModalSlideUp .3s ease-out}@keyframes duplicateModalSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.duplicate-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;border-bottom:1px solid #e2e8f0}.duplicate-modal .modal-title{display:flex;align-items:center;gap:10px}.duplicate-modal .modal-title h2{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:12px;font-weight:600;color:#333}.duplicate-modal .warning-icon{width:22px;height:22px;color:#f59e0b}.duplicate-modal .modal-close{background:none;border:none;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.duplicate-modal .modal-close:hover{background-color:#f3f4f6}.duplicate-modal .modal-close svg{width:18px;height:18px;color:#6b7280}.duplicate-modal .modal-body{padding:20px 24px}.duplicate-modal .modal-message{margin:0 0 16px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666;line-height:1.5}.duplicate-modal .existing-file-info{background:#f8f9fa;border:1px solid #e2e8f0;border-radius:6px;padding:14px 16px;margin-bottom:16px}.duplicate-modal .existing-file-info h3{margin:0 0 10px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:600;color:#333;text-transform:uppercase;letter-spacing:.05em}.duplicate-modal .file-details{display:flex;flex-direction:column;gap:6px}.duplicate-modal .detail-row{display:flex;justify-content:center;align-items:center;gap:4px}.duplicate-modal .detail-row .label{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666;font-weight:500}.duplicate-modal .detail-row .value{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#025043;font-weight:600}.duplicate-modal .modal-question{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;color:#333}.duplicate-modal .modal-actions{display:flex;gap:10px;padding:16px 24px 20px;border-top:1px solid #e2e8f0}.duplicate-modal .modal-actions .btn{flex:1;padding:10px 14px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;border-radius:4px;cursor:pointer;transition:all .2s ease;border:none;display:flex;align-items:center;justify-content:center}.duplicate-modal .modal-actions .btn-danger{background-color:#ef4444;color:#fff}.duplicate-modal .modal-actions .btn-danger:hover{background-color:#dc2626}.duplicate-modal .modal-actions .btn-secondary{background-color:#025043;color:#fff}.duplicate-modal .modal-actions .btn-secondary:hover{background-color:#013d34}.duplicate-modal .modal-actions .btn-outline{background-color:#fff;color:#666;border:1px solid #d1d5db}.duplicate-modal .modal-actions .btn-outline:hover{background-color:#f3f4f6;border-color:#025043;color:#025043}.step-progress-horizontal{background:#fff;border-radius:6px;padding:16px;box-shadow:0 1px 4px #00000014;margin:12px 0}.step-progress-current{display:flex;align-items:center;gap:10px;margin-bottom:12px}.current-step-emoji{font-size:24px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.current-step-info{flex:1}.current-step-label{font-size:14px;font-weight:600;color:#333;margin-bottom:2px}.current-step-description{font-size:12px;color:#666}.upload-progress-bar-horizontal{height:12px;background:#e0e0e0;border-radius:6px;overflow:hidden;position:relative;margin-bottom:16px}.upload-progress-fill-horizontal{height:100%;background:linear-gradient(90deg,#2196f3,#1976d2);transition:width .3s ease;border-radius:6px}.upload-progress-text-horizontal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:9px;font-weight:600;color:#333}.stepper-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.stepper-circle{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;transition:all .3s ease;position:relative;z-index:2}.stepper-circle.stepper-completed{background:#4caf50;color:#fff}.stepper-circle.stepper-active{background:#2196f3;color:#fff;box-shadow:0 0 0 3px #2196f333;animation:pulse-ring 2s ease-in-out infinite}@keyframes pulse-ring{0%,to{box-shadow:0 0 0 3px #2196f333}50%{box-shadow:0 0 0 5px #2196f34d}}.stepper-circle.stepper-pending{background:#e0e0e0;color:#999}.stepper-check{font-size:14px}.stepper-spinner{width:5px!important;height:5px!important;border:1px solid rgba(255,255,255,.3)!important;border-top-color:#fff!important;border-radius:50%;animation:spin .8s linear infinite}.stepper-number{font-size:11px}.stepper-line{flex:1;height:2px;margin:0 4px;transition:background-color .3s ease;position:relative;z-index:1}.stepper-line.stepper-line-completed{background:#4caf50}.stepper-line.stepper-line-pending{background:#e0e0e0}.stepper-labels{display:flex;justify-content:space-between;margin-top:4px}.stepper-label{font-size:9px;color:#999;text-align:center;width:24px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stepper-label.stepper-label-active{color:#2196f3;font-weight:600}.step-complete-message{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e0e0e0;font-size:13px;font-weight:600;color:#4caf50}.complete-icon{font-size:20px;animation:celebrate .6s ease-in-out}@keyframes celebrate{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.2) rotate(-10deg)}75%{transform:scale(1.2) rotate(10deg)}}.s3-folder-browser{border:1px solid #e0e0e0;border-radius:8px;background:#fff;overflow:hidden}.s3-breadcrumb{display:flex;align-items:center;padding:12px 16px;background:#f5f5f5;border-bottom:1px solid #e0e0e0;overflow-x:auto;gap:8px}.breadcrumb-item{background:none;border:none;padding:4px 8px;cursor:pointer;color:#2196f3;font-size:14px;display:flex;align-items:center;gap:6px;white-space:nowrap}.breadcrumb-item:hover{background:#2196f31a;border-radius:4px}.breadcrumb-separator{color:#999;font-size:12px}.s3-current-path{padding:12px 16px;background:#fafafa;border-bottom:1px solid #e0e0e0;display:flex;align-items:center;justify-content:space-between}.s3-current-path strong{color:#333;font-size:14px;margin-right:8px}.s3-current-path code{background:#e8f5e9;padding:4px 8px;border-radius:4px;font-family:monospace;font-size:13px;color:#2e7d32;flex:1}.s3-current-path button{background:#2196f3;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.s3-current-path button:hover{background:#1976d2}.s3-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;gap:12px;color:#666}.s3-loading-spinner{width:40px;height:40px;color:#2196f3;animation:spin 1s linear infinite}.s3-contents{max-height:400px;overflow-y:auto}.s3-item{display:grid;grid-template-columns:24px 1fr auto auto;gap:12px;padding:12px 16px;border-bottom:1px solid #f0f0f0;align-items:center;transition:background .2s}.s3-folder,.s3-parent{cursor:pointer}.s3-folder:hover,.s3-parent:hover{background:#f5f5f5}.s3-item .icon{color:#ffa726;font-size:18px}.s3-item .file-icon{color:#666;font-size:11px}.s3-item .name{font-size:14px;color:#333;font-weight:500}.s3-item .type{font-size:12px;color:#666;background:#f0f0f0;padding:2px 8px;border-radius:4px}.s3-item .size{font-size:12px;color:#999;margin-left:12px}.s3-empty{padding:48px 16px;text-align:center;color:#999;font-size:14px}.s3-parent .icon{color:#999}.gps-bulk-container{padding:24px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.gps-bulk-header{margin-bottom:24px}.gps-bulk-title{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;font-weight:600;color:#1a1a2e;margin:0 0 8px}.gps-bulk-subtitle{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666;margin:0}.gps-bulk-tabs{display:flex;gap:0;margin-bottom:24px;border-bottom:2px solid #e2e8f0}.gps-bulk-tab{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;padding:12px 20px;background:none;border:none;border-bottom:2px solid transparent;color:#6b7280;cursor:pointer;transition:all .2s ease;margin-bottom:-2px}.gps-bulk-tab:hover{color:#025043}.gps-bulk-tab--active{color:#025043;font-weight:600;border-bottom-color:#025043}.gps-bulk-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:20px}.gps-bulk-field{display:flex;flex-direction:column;gap:6px}.gps-bulk-field--full{grid-column:1 / -1}.gps-bulk-field--flex{flex-direction:row;align-items:center}.gps-bulk-label{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:600;color:#333;text-transform:uppercase;letter-spacing:.3px;display:flex;align-items:center;gap:4px}.gps-bulk-label .required{color:#e53e3e}.gps-bulk-input,.gps-bulk-select{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;padding:8px 12px;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#333;transition:border-color .2s,box-shadow .2s;width:100%}.gps-bulk-input:focus,.gps-bulk-select:focus{outline:none;border-color:#025043;box-shadow:0 0 0 2px #0250431a}.gps-bulk-input::placeholder{color:#9ca3af}.gps-bulk-input:disabled,.gps-bulk-select:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.gps-bulk-helper{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#666;margin-top:2px}.gps-bulk-checkbox-wrapper{display:flex;align-items:center;gap:8px;padding-top:24px}.gps-bulk-checkbox{accent-color:#025043;cursor:pointer;width:14px;height:14px}.gps-bulk-checkbox-label{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#333;cursor:pointer}.gps-bulk-input-group{display:flex;gap:8px}.gps-bulk-input-group .gps-bulk-input{flex:1}.gps-bulk-section{margin-top:20px;padding-top:20px;border-top:1px solid #e2e8f0}.gps-bulk-btn{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;padding:8px 16px;border-radius:4px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.gps-bulk-btn--primary{background:#025043;color:#fff;border:1px solid #025043}.gps-bulk-btn--primary:hover{background:#013d34}.gps-bulk-btn--primary:disabled{background:#9ca3af;border-color:#9ca3af;cursor:not-allowed}.gps-bulk-btn--secondary{background:#fff;color:#333;border:1px solid #d1d5db}.gps-bulk-btn--secondary:hover{background:#f3f4f6;border-color:#025043}.gps-bulk-btn--secondary:disabled{color:#9ca3af;cursor:not-allowed}.gps-bulk-actions{display:flex;gap:12px;margin-top:24px;justify-content:flex-start}.gps-bulk-actions--center{justify-content:center}.gps-bulk-banner{padding:24px;border-radius:8px;margin-bottom:24px}.gps-bulk-banner--success{background:#f0fdf4;border:2px solid #10b981}.gps-bulk-banner--error{background:#fef2f2;border:2px solid #ef4444}.gps-bulk-banner--info{background:#f8fafc;border:2px solid #6b7280}.gps-bulk-banner--warning{background:#fffbeb;border:2px solid #f59e0b}.gps-bulk-banner-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.gps-bulk-banner-icon{flex-shrink:0}.gps-bulk-banner-icon--success{color:#10b981}.gps-bulk-banner-icon--error{color:#ef4444}.gps-bulk-banner-icon--warning{color:#f59e0b}.gps-bulk-banner-icon--info{color:#6b7280}.gps-bulk-banner-title{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:12px;font-weight:600;color:#1a1a2e;margin:0}.gps-bulk-banner-subtitle{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666;margin:4px 0 0}.gps-bulk-banner-content{background:#fff;border-radius:6px;padding:16px;margin-bottom:16px}.gps-bulk-banner-row{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#333;margin-bottom:8px}.gps-bulk-banner-row:last-child{margin-bottom:0}.gps-bulk-banner-row strong{font-weight:600}.gps-bulk-code{font-family:Monaco,Menlo,monospace;font-size:9px;background:#f3f4f6;padding:2px 6px;border-radius:3px;color:#1a1a2e}.gps-bulk-progress{margin-bottom:20px}.gps-bulk-progress-header{display:flex;justify-content:space-between;margin-bottom:8px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666}.gps-bulk-progress-bar{width:100%;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.gps-bulk-progress-fill{height:100%;border-radius:4px;transition:width .3s ease}.gps-bulk-progress-fill--success{background:#10b981}.gps-bulk-progress-fill--error{background:#ef4444}.gps-bulk-progress-fill--running{background:#3b82f6}.gps-bulk-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.gps-bulk-stat{text-align:center;padding:12px;background:#fff;border-radius:4px;border:1px solid #e2e8f0}.gps-bulk-stat-value{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:18px;font-weight:700;margin-bottom:4px}.gps-bulk-stat-value--success{color:#10b981}.gps-bulk-stat-value--error{color:#ef4444}.gps-bulk-stat-value--muted{color:#6b7280}.gps-bulk-stat-label{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#666;text-transform:uppercase;letter-spacing:.3px}.gps-bulk-table-container{max-height:300px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:4px;background:#fff;margin-bottom:16px}.gps-bulk-table{width:100%;border-collapse:collapse;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px}.gps-bulk-table thead{position:sticky;top:0;background:#f8fafc}.gps-bulk-table th{padding:10px 12px;text-align:left;font-weight:600;color:#333;border-bottom:1px solid #e2e8f0;text-transform:uppercase;font-size:9px;letter-spacing:.3px}.gps-bulk-table th--center{text-align:center}.gps-bulk-table td{padding:10px 12px;border-bottom:1px solid #f3f4f6;color:#333}.gps-bulk-table td--center{text-align:center}.gps-bulk-table tr:last-child td{border-bottom:none}.gps-bulk-status{display:inline-block;padding:3px 8px;border-radius:4px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.3px}.gps-bulk-status--completed{background:#d1fae5;color:#065f46}.gps-bulk-status--failed{background:#fee2e2;color:#991b1b}.gps-bulk-status--processing{background:#dbeafe;color:#1e40af}.gps-bulk-status--skipped{background:#fef3c7;color:#92400e}.gps-bulk-status--pending{background:#f3f4f6;color:#6b7280}.gps-bulk-status--scheduled{background:#e0f2fe;color:#0369a1}.gps-bulk-error-alert{padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;margin-bottom:16px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#991b1b}.gps-bulk-error-alert strong{font-weight:600}.gps-bulk-files-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.gps-bulk-files-title{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:11px;font-weight:600;color:#333}.gps-bulk-files-count{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666}.gps-bulk-quality-section{margin-top:20px;padding-top:20px;border-top:1px solid #e2e8f0}.gps-bulk-quality-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-top:12px}.gps-bulk-quality-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;cursor:pointer;transition:all .2s}.gps-bulk-quality-item:hover,.gps-bulk-quality-item--selected{border-color:#025043;background:#f0fdf4}.gps-bulk-quality-checkbox{accent-color:#025043}.gps-bulk-quality-label{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#333}.gps-bulk-empty{text-align:center;padding:32px;color:#6b7280}.gps-bulk-empty-text{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px}.gps-bulk-loading{display:flex;align-items:center;justify-content:center;padding:32px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666}.gps-bulk-table-actions{display:flex;gap:8px;justify-content:center}.gps-bulk-table-btn{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;padding:4px 10px;border-radius:3px;cursor:pointer;transition:all .2s}.gps-bulk-table-btn--run{background:#025043;color:#fff;border:1px solid #025043}.gps-bulk-table-btn--run:hover{background:#013d34}.gps-bulk-table-btn--edit{background:#fff;color:#025043;border:1px solid #025043}.gps-bulk-table-btn--edit:hover{background:#f0fdf4}.gps-bulk-table-btn--cancel{background:#ef4444;color:#fff;border:1px solid #ef4444}.gps-bulk-table-btn--cancel:hover{background:#dc2626}.file-upload-container{padding:0}.upload-instructions{margin-bottom:16px}.upload-instructions-header{display:flex;justify-content:space-between;align-items:flex-start}.upload-section-title{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;font-weight:600;color:#333;margin:0 0 4px}.upload-section-subtitle{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666;margin:0;line-height:1.4}.upload-form-section{padding:16px;background:transparent;margin-bottom:16px;border:1px solid #e2e8f0;border-radius:6px}.upload-type-section{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.upload-type-options{display:flex;gap:24px}.upload-radio-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#333}.upload-radio-label input[type=radio]{cursor:pointer;accent-color:#025043}.upload-radio-hint{font-size:10px;color:#666}.upload-form-row{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.upload-form-field{display:flex;align-items:center;gap:8px;flex:1 1 280px}.upload-form-label{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:600;color:#333;white-space:nowrap}.required-indicator{color:#e53e3e}.upload-owner-field{flex:1 1 280px}.upload-owner-value{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#333;flex:1}.upload-edit-link{background:none;border:none;color:#025043;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;cursor:pointer;padding:4px 8px;transition:opacity .2s}.upload-edit-link:hover{opacity:.8;text-decoration:underline}.upload-form-row--compact{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.upload-form-field--flex{display:flex;align-items:center;gap:8px;flex:1 1 200px;min-width:180px}.gps-form-select--compact{padding:6px 10px;font-size:10px;max-width:200px}.gps-form-input--compact{padding:6px 10px;font-size:10px;max-width:180px}.password-input-wrapper--compact{display:flex;align-items:center;position:relative;max-width:180px}.password-input--compact{padding:6px 32px 6px 10px;font-size:10px;width:100%}.password-toggle-btn--compact{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:2px;display:flex;align-items:center;color:#666}.upload-checkbox-label--inline{display:flex;align-items:center;gap:6px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;cursor:pointer;white-space:nowrap}.upload-checkbox-label--inline input[type=checkbox]{cursor:pointer;accent-color:#025043}.archive-password-section{flex:1 1 100%;margin-top:16px;padding-top:16px;border-top:1px solid #e2e8f0}.archive-password-section .upload-form-label{margin-bottom:4px;display:block}.archive-password-hint{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#666;margin-bottom:8px}.password-input-wrapper{position:relative;max-width:400px}.password-input{width:100%;padding-right:40px!important;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;padding:10px 40px 10px 12px;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#333;transition:border-color .2s ease,box-shadow .2s ease}.password-input:focus{outline:none;border-color:#025043;box-shadow:0 0 0 2px #0250431a}.password-input::placeholder{color:#9ca3af;font-style:normal}.password-toggle-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;color:#666;transition:color .2s ease}.password-toggle-btn:hover{color:#025043}.quality-rules-section{flex:1 1 100%;margin-top:16px;padding-top:16px;border-top:1px solid #e2e8f0}.quality-rules-desc{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#666;margin-bottom:8px}.quality-rules-select{min-height:100px;width:100%}.quality-rules-hint{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#666;margin-top:6px}.upload-subsection{margin-top:16px;padding-top:16px;border-top:1px solid #e2e8f0}.upload-field-desc{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#666;margin-bottom:8px}.agreement-schema-preview{margin-top:16px;padding:12px;background:#f8f9fa;border-radius:4px;border:1px solid #e2e8f0}.agreement-schema-title{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:600;color:#333;margin-bottom:8px}.agreement-columns{display:flex;flex-wrap:wrap;gap:8px}.agreement-column-chip{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;padding:4px 8px;background:#e9ecef;border:1px solid #ced4da;border-radius:4px;color:#333}.agreement-column-chip .data-type{color:#6c757d}.agreement-tags{margin-top:12px;padding-top:12px;border-top:1px solid #dee2e6;display:flex;gap:12px;flex-wrap:wrap}.agreement-tag{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;padding:4px 8px;border-radius:4px}.agreement-tag--pii{background:#fff3cd;border:1px solid #ffc107;color:#856404}.agreement-tag--classification{background:#d1ecf1;border:1px solid #17a2b8;color:#0c5460}.agreement-tag--filetype{background:#d4edda;border:1px solid #28a745;color:#155724}.contract-rules-box{padding:12px;background:#f8f9fa;border-radius:4px;border:1px solid #e2e8f0}.contract-rule-item{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;margin-bottom:4px}.pattern-match-alert{margin-top:12px;padding:12px;border-radius:4px;display:flex;align-items:center;gap:8px}.pattern-match-alert--success{background:#d4edda;border:1px solid #28a745;color:#155724}.pattern-match-alert--warning{background:#fff3cd;border:1px solid #ffc107;color:#856404}.pattern-match-text{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px}.upload-subsection-inner{margin-top:16px}.pattern-auto-matched{background:#e8f5e9!important}.pattern-status{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;margin-top:4px}.pattern-status--success{color:#2e7d32;font-weight:600}.pattern-status--info{color:#666}.pattern-status--warning{color:#d32f2f;font-weight:600}.delimiter-select--has-custom{margin-bottom:12px}.custom-delimiter-section{margin-top:12px}.delimiter-input{font-family:Monaco,Menlo,monospace}.delimiter-hint{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#666;margin-top:6px}.header-checkbox-wrapper{margin-bottom:12px}.upload-checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#333}.upload-checkbox-label input[type=checkbox]{cursor:pointer;accent-color:#025043}.column-names-section{margin-top:12px}.column-names-input{font-family:Monaco,Menlo,monospace}.upload-field-hint{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#666;margin-top:6px}.project-required-warning{margin-top:12px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#e53e3e}.dropfile-form-container{display:flex;flex-direction:column;gap:16px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.dropfile-field{display:flex;flex-direction:column;gap:8px}.dropfile-field .upload-form-label{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:600;color:#333}.dropfile-field .gps-form-select{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;padding:10px 12px;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#333;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.dropfile-field .gps-form-select:focus{outline:none;border-color:#025043;box-shadow:0 0 0 2px #0250431a}.dropfile-field .gps-form-select:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.dropfile-label-row{display:flex;align-items:center;gap:8px}.dropfile-label-row .gps-btn{margin-left:auto;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;padding:8px 16px;background-color:#025043;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s ease}.dropfile-label-row .gps-btn:hover{background-color:#013d34}.connection-details-box{background:#fff;padding:12px;border-radius:4px;border:1px solid #e2e8f0}.connection-path-info{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666;margin-bottom:8px}.connection-path-info strong{color:#333}.folder-browser{margin-top:16px;max-height:200px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:4px;padding:8px}.folder-breadcrumb{margin-bottom:8px}.folder-path-info{margin-bottom:8px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#333}.folder-path-value{font-weight:600;color:#025043}.folder-list{display:flex;flex-direction:column;gap:4px}.folder-item{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;padding:6px 8px;background:#f8f9fa;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:6px;color:#333;border:1px solid transparent;transition:all .2s}.folder-item:hover{background:#e2e8f0;border-color:#025043}.dropzone-placeholder{padding:48px;border:2px dashed #d1d5db;border-radius:8px;text-align:center;background:#fafafa;transition:border-color .2s ease}.dropzone-placeholder-icon{margin-bottom:16px;color:#025043;opacity:.6}.dropzone-placeholder-text{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666;margin:0}.folder-empty-state{padding:16px;text-align:center;color:#999;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px}.quality-rules-multiselect{min-height:100px}.access-denied-message{background-color:var(--bg-surface);border:1px dashed var(--border-medium);border-radius:var(--radius-sm);padding:var(--space-8);text-align:center;margin:var(--space-5) 0}.access-denied-message p{color:var(--color-error-dark);font-size:var(--text-base);line-height:var(--leading-normal);margin:0}.upload-success-actions{display:flex;justify-content:center;gap:var(--space-4);margin-top:var(--space-5)}.debug-section{margin-top:var(--space-5)}.debug-section h2{font-size:var(--text-2xl);margin-bottom:var(--space-4);color:var(--text-primary)}.debug-section h3{font-size:var(--text-xl);margin:var(--space-4) 0 var(--space-2);color:var(--text-secondary)}.debug-status{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap}.api-status{font-weight:var(--font-medium);display:flex;align-items:center;gap:var(--space-2)}.status-badge{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-semibold)}.status-badge.connected{background-color:var(--color-success-light);color:var(--color-success-dark)}.status-badge.error{background-color:var(--color-error-light);color:var(--color-error-dark)}.debug-actions{display:flex;gap:var(--space-2)}.diagnostic-info{margin-top:var(--space-5);background-color:var(--bg-surface);border-radius:var(--radius-sm);padding:var(--space-4)}.diagnostic-info pre{white-space:pre-wrap;font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-primary);max-height:300px;overflow-y:auto}.ownership-section{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background-color:var(--color-gray-50);border-radius:var(--radius-md);margin-bottom:var(--space-4);border:1px solid var(--border-light)}.ownership-label{font-weight:var(--font-semibold);color:var(--text-secondary);font-size:var(--text-sm)}.ownership-value{color:var(--text-primary);font-size:var(--text-base);font-weight:var(--font-medium);flex:1}.ownership-edit-btn{color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;background:none;border:none;padding:var(--space-1) var(--space-2);transition:opacity var(--transition-base)}.ownership-edit-btn:hover{opacity:.8;text-decoration:underline}.ownership-modal{max-width:500px;min-width:400px}.ownership-modal .modal-description{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4);line-height:1.5}.ownership-modal .form-group{margin-bottom:var(--space-5)}.ownership-modal .form-group label{display:block;font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-2);font-size:var(--text-sm)}.ownership-modal .form-control{width:100%;padding:var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--text-base);transition:border-color var(--transition-base)}.ownership-modal .form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.fixed-width-section{margin-top:16px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.fixed-width-section .fixed-width-label{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:600;color:#333;display:block;margin-bottom:8px}.fixed-width-section .fixed-width-desc{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666;margin-bottom:12px;line-height:1.5}.fixed-width-upload-box{margin-bottom:16px;padding:14px 16px;background-color:#f0f9f6;border-radius:4px;border:1px solid #d1e7dd}.fixed-width-upload-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:8px}.fixed-width-upload-btn{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;padding:8px 14px;border-radius:4px;border:1px solid #025043;background-color:#fff;color:#025043;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease}.fixed-width-upload-btn:hover{background-color:#025043;color:#fff}.fixed-width-upload-btn svg{width:12px;height:12px}.fixed-width-template-text{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;color:#666}.fixed-width-template-btn{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;padding:8px 14px;border-radius:4px;border:1px solid #025043;background-color:#fff;color:#025043;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease}.fixed-width-template-btn:hover{background-color:#f0f9f6}.fixed-width-success-msg{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;padding:8px 12px;background-color:#d1fae5;border:1px solid #a7f3d0;border-radius:4px;color:#065f46;margin-top:8px}.fixed-width-error-msg{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;padding:8px 12px;background-color:#fee2e2;border:1px solid #fecaca;border-radius:4px;color:#991b1b;margin-top:8px}.fixed-width-formats-hint{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#666;margin-top:8px}.fixed-width-schema-box{border:1px solid #e2e8f0;border-radius:4px;padding:14px 16px;background-color:#f8f9fa}.fixed-width-columns-scroll{max-height:300px;overflow-y:auto;padding-right:4px;margin-bottom:4px}.fixed-width-columns-scroll::-webkit-scrollbar{width:6px}.fixed-width-columns-scroll::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.fixed-width-columns-scroll::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.fixed-width-columns-scroll::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.fixed-width-column-row{display:flex;gap:10px;margin-bottom:10px;align-items:center}.fixed-width-column-input{flex:2;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;padding:10px 12px;border-radius:4px;border:1px solid #d1d5db;background:#fff;color:#333;transition:border-color .2s ease,box-shadow .2s ease}.fixed-width-column-input:focus{outline:none;border-color:#025043;box-shadow:0 0 0 2px #0250431a}.fixed-width-column-input::placeholder{color:#9ca3af}.fixed-width-width-input{flex:1;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;padding:10px 12px;border-radius:4px;border:1px solid #d1d5db;background:#fff;color:#333;transition:border-color .2s ease,box-shadow .2s ease}.fixed-width-width-input:focus{outline:none;border-color:#025043;box-shadow:0 0 0 2px #0250431a}.fixed-width-width-input::placeholder{color:#9ca3af}.fixed-width-remove-btn{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;padding:8px 14px;border-radius:4px;border:1px solid #ef4444;background-color:#fff;color:#ef4444;cursor:pointer;transition:all .2s ease}.fixed-width-remove-btn:hover{background-color:#ef4444;color:#fff}.fixed-width-add-btn{margin-top:10px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;font-weight:500;padding:8px 14px;border-radius:4px;border:1px solid #025043;background-color:#fff;color:#025043;cursor:pointer;transition:all .2s ease}.fixed-width-add-btn:hover{background-color:#025043;color:#fff}.fixed-width-example{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;color:#666;margin-top:10px}.fixed-width-header-row{display:flex;gap:10px;margin-bottom:8px;padding:0 2px}.fixed-width-header-name,.fixed-width-header-type,.fixed-width-header-width,.fixed-width-header-action{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:9px;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.5px}.fixed-width-header-name{flex:2}.fixed-width-header-type{flex:1.5}.fixed-width-header-width{flex:1}.fixed-width-header-action{width:70px;min-width:70px}.fixed-width-type-select{flex:1.5;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:10px;padding:10px 24px 10px 8px;border-radius:4px;border:1px solid #d1d5db;background:#fff;color:#333;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M2 4l4 4 4-4H2z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.fixed-width-type-select:focus{outline:none;border-color:#025043;box-shadow:0 0 0 2px #0250431a}.fixed-width-type-select:hover{border-color:#025043}.fixed-width-width-input:disabled{background-color:#f3f4f6;color:#9ca3af;cursor:not-allowed}.confirmation-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;animation:fadeIn .2s ease-out}.confirmation-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;width:400px;max-width:90vw;animation:slideIn .2s ease-out;overflow:hidden}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.confirmation-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--gps-bg-header, #f8f9fa);border-bottom:1px solid var(--gps-border-light, #e2e8f0)}.confirmation-modal-header h3{margin:0;font-family:var(--gps-font-family, "Inter", sans-serif);font-size:14px;font-weight:600;color:var(--gps-primary-teal, #025043)}.confirmation-modal-close{background:none;border:none;font-size:22px;line-height:1;color:#6b7280;cursor:pointer;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s}.confirmation-modal-close:hover{background:#0000000d;color:#374151}.confirmation-modal-body{display:flex;flex-direction:column;align-items:center;padding:24px 20px;text-align:center}.confirmation-icon{margin-bottom:12px}.confirmation-icon--danger{color:#dc2626}.confirmation-icon--warning{color:#f59e0b}.confirmation-icon--info{color:#3b82f6}.confirmation-icon--success{color:#10b981}.confirmation-message{font-family:var(--gps-font-family, "Inter", sans-serif);font-size:14px;color:#374151;margin:0;line-height:1.5}.confirmation-message strong{color:#111827}.confirmation-sub-message{font-family:var(--gps-font-family, "Inter", sans-serif);font-size:12px;color:#9ca3af;margin:8px 0 0}.confirmation-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;background:var(--gps-bg-header, #f8f9fa);border-top:1px solid var(--gps-border-light, #e2e8f0)}.confirmation-btn{font-family:var(--gps-font-family, "Inter", sans-serif);font-size:12px;font-weight:500;padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .15s;border:none}.confirmation-btn--cancel{background:#fff;color:#374151;border:1px solid #d1d5db}.confirmation-btn--cancel:hover{background:#f3f4f6;border-color:#9ca3af}.confirmation-btn--danger{background:#dc2626;color:#fff}.confirmation-btn--danger:hover{background:#b91c1c}.confirmation-btn--warning{background:#f59e0b;color:#fff}.confirmation-btn--warning:hover{background:#d97706}.confirmation-btn--info{background:#3b82f6;color:#fff}.confirmation-btn--info:hover{background:#2563eb}.confirmation-btn--success{background:#10b981;color:#fff}.confirmation-btn--success:hover{background:#059669}.three-section-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in-out}.three-section-modal{background:var(--gps-bg-white, #ffffff);border-radius:var(--gps-radius-md, 6px);box-shadow:0 4px 24px #0003;display:flex;flex-direction:column;max-height:85vh;height:auto;animation:slideUp .3s ease-out;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.three-section-modal-small{width:90%;max-width:500px}.three-section-modal-medium{width:90%;max-width:650px}.three-section-modal-large{width:90%;max-width:800px}.three-section-modal-header{flex:0 0 auto;padding:var(--gps-spacing-lg, 12px) var(--gps-spacing-xl, 16px);border-bottom:1px solid var(--gps-border-light, #e2e8f0);display:flex;align-items:center;justify-content:space-between;background:var(--gps-bg-header, #f8f9fa);border-radius:var(--gps-radius-md, 6px) var(--gps-radius-md, 6px) 0 0}.three-section-modal-header h2{margin:0;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:16px;font-weight:var(--gps-font-weight-bold, 700);color:var(--gps-primary-teal, #025043)}.three-section-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--gps-text-muted, #666666);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--gps-radius-sm, 4px);transition:all .2s;padding:0;line-height:1}.three-section-modal-close:hover{background-color:var(--gps-bg-row-hover, #f7fafc);color:var(--gps-text-dark, #333333)}.three-section-modal-close:focus{outline:none}.three-section-modal-content{flex:1 1 auto;overflow-y:auto;padding:var(--gps-spacing-xl, 16px);background:var(--gps-bg-white, #ffffff);min-height:0}.three-section-modal-content::-webkit-scrollbar{width:6px}.three-section-modal-content::-webkit-scrollbar-track{background:var(--gps-bg-page, #f7fafc);border-radius:3px}.three-section-modal-content::-webkit-scrollbar-thumb{background:var(--gps-border-input, #cbd5e0);border-radius:3px}.three-section-modal-content::-webkit-scrollbar-thumb:hover{background:var(--gps-text-muted, #666666)}.three-section-modal-footer{flex:0 0 auto;padding:var(--gps-spacing-lg, 12px) var(--gps-spacing-xl, 16px);border-top:1px solid var(--gps-border-light, #e2e8f0);display:flex;align-items:center;justify-content:flex-end;gap:var(--gps-spacing-md, 8px);background:var(--gps-bg-header, #f8f9fa);border-radius:0 0 var(--gps-radius-md, 6px) var(--gps-radius-md, 6px)}.three-section-modal-footer button{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-semibold, 600);padding:var(--gps-spacing-md, 8px) var(--gps-spacing-xl, 16px);border-radius:var(--gps-radius-sm, 4px);cursor:pointer;transition:all .2s;border:none}.three-section-modal-footer button:focus{outline:none;box-shadow:none}.three-section-modal-footer button:first-child{background:var(--gps-bg-white, #ffffff);color:var(--gps-text-dark, #333333);border:1px solid var(--gps-border-input, #cbd5e0)}.three-section-modal-footer button:first-child:hover{background:var(--gps-bg-row-hover, #f7fafc);border-color:var(--gps-text-muted, #666666)}.three-section-modal-footer button.btn-secondary,.three-section-modal-footer button:nth-child(2):not(:last-child){background:var(--gps-text-muted, #666666);color:#fff;border:none;flex:0 0 auto;width:auto}.three-section-modal-footer button.btn-secondary:hover,.three-section-modal-footer button:nth-child(2):not(:last-child):hover{background:#555}.three-section-modal-footer button:last-child{background:var(--gps-primary-teal, #025043);color:#fff}.three-section-modal-footer button:last-child:hover{background:var(--gps-primary-hover, #033830)}.three-section-modal-footer button:disabled{opacity:.5;cursor:not-allowed}.three-section-modal-content .form-section{margin-bottom:var(--gps-spacing-xl, 16px)}.three-section-modal-content .section-title{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:13px;font-weight:var(--gps-font-weight-bold, 700);color:var(--gps-primary-teal, #025043);margin:0 0 var(--gps-spacing-lg, 12px) 0;padding-bottom:var(--gps-spacing-sm, 6px);border-bottom:1px solid var(--gps-border-light, #e2e8f0)}.three-section-modal-content .form-group{margin-bottom:var(--gps-spacing-lg, 12px)}.three-section-modal-content .form-group label{display:block;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-text-dark, #333333);margin-bottom:var(--gps-spacing-sm, 6px)}.three-section-modal-content .form-group label .required-field{color:var(--gps-danger-red, #e53e3e);margin-left:2px}.three-section-modal-content .form-group input,.three-section-modal-content .form-group select,.three-section-modal-content .form-group textarea{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)!important;font-size:11px!important;font-weight:var(--gps-font-weight-medium, 500);width:100%;padding:6px 10px!important;border:1px solid var(--gps-border-input, #cbd5e0);border-radius:var(--gps-radius-sm, 4px);background:var(--gps-bg-white, #ffffff);color:var(--gps-text-dark, #333333);transition:border-color .2s ease,box-shadow .2s ease;height:32px!important;box-sizing:border-box}.three-section-modal-content .form-group input[readonly],.three-section-modal-content .form-group input:read-only{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)!important;font-size:11px!important;background:var(--gps-bg-page, #f7fafc);cursor:not-allowed}.three-section-modal-content .form-group input:focus,.three-section-modal-content .form-group select:focus,.three-section-modal-content .form-group textarea:focus{outline:none;border-color:var(--gps-primary-teal, #025043);box-shadow:0 0 0 3px #0250431a}.three-section-modal-content .form-group input:disabled,.three-section-modal-content .form-group select:disabled,.three-section-modal-content .form-group textarea:disabled{background:var(--gps-bg-page, #f7fafc);cursor:not-allowed;color:var(--gps-text-muted, #666666)}.three-section-modal-content .form-group input::placeholder,.three-section-modal-content .form-group textarea::placeholder{color:var(--gps-text-light, #9ca3af);font-size:10px}.three-section-modal-content .form-group textarea{height:auto;min-height:60px;resize:vertical}.three-section-modal-content .form-group small,.three-section-modal-content .form-helper-text{display:block;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:9px;color:var(--gps-text-muted, #666666);margin-top:3px;line-height:1.3}.three-section-modal-content .checkbox-group{margin-bottom:var(--gps-spacing-xl, 16px)}.three-section-modal-content .checkbox-label{display:flex;align-items:center;gap:var(--gps-spacing-sm, 6px);cursor:pointer;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.three-section-modal-content .checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;flex-shrink:0}.three-section-modal-content .checkbox-text{font-size:11px;font-weight:var(--gps-font-weight-medium, 500);color:var(--gps-text-dark, #333333)}.three-section-modal-content .checkbox-helper{margin-left:22px}.three-section-modal-content .form-row-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gps-spacing-lg, 12px);margin-bottom:var(--gps-spacing-lg, 12px)}@media (max-width: 640px){.three-section-modal-content .form-row-grid{grid-template-columns:1fr}}.three-section-modal-content .quick-setup-section{background:var(--gps-bg-page, #f7fafc);padding:var(--gps-spacing-xl, 16px);border-radius:var(--gps-radius-md, 6px);border:1px solid var(--gps-primary-teal, #025043);margin-bottom:var(--gps-spacing-xl, 16px)}.three-section-modal-content .quick-setup-title{color:var(--gps-primary-teal, #025043);margin-bottom:var(--gps-spacing-sm, 6px);border-bottom:none;padding-bottom:0}.three-section-modal-content .quick-setup-description{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:var(--gps-font-size-content, 10px);color:var(--gps-text-muted, #666666);margin:0 0 var(--gps-spacing-lg, 12px) 0}.three-section-modal-content .template-buttons{display:flex;gap:var(--gps-spacing-md, 8px);flex-wrap:wrap}.three-section-modal-content .btn-template{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-semibold, 600);padding:var(--gps-spacing-sm, 6px) var(--gps-spacing-lg, 12px);background:var(--gps-bg-white, #ffffff);color:var(--gps-primary-teal, #025043);border:1px solid var(--gps-primary-teal, #025043);border-radius:var(--gps-radius-sm, 4px);cursor:pointer;transition:all .2s}.three-section-modal-content .btn-template:hover{background:var(--gps-primary-teal, #025043);color:#fff}.three-section-modal-content .success-text{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:var(--gps-font-size-content, 10px);color:var(--gps-success-green, #38a169);margin-top:var(--gps-spacing-sm, 6px)}.three-section-modal-content .processing-text{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:var(--gps-font-size-content, 10px);color:var(--gps-text-muted, #666666);margin-top:var(--gps-spacing-sm, 6px)}.three-section-modal-content .two-column-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gps-spacing-xl, 16px)}@media (max-width: 768px){.three-section-modal-content .two-column-grid{grid-template-columns:1fr}}.three-section-modal-content .form-panel{border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-md, 6px);padding:var(--gps-spacing-xl, 16px);background:var(--gps-bg-page, #f7fafc)}.three-section-modal-content .form-panel-title{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-text-dark, #333333);margin:0 0 var(--gps-spacing-lg, 12px) 0}.three-section-modal-content .contact-info-box{margin-top:var(--gps-spacing-lg, 12px);padding:var(--gps-spacing-md, 8px) var(--gps-spacing-lg, 12px);background:var(--gps-bg-white, #ffffff);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px}.three-section-modal-content .contact-info-box p{margin:var(--gps-spacing-xs, 4px) 0;color:var(--gps-text-dark, #333333)}.three-section-modal-content .contact-info-box strong{color:var(--gps-text-dark, #333333)}.three-section-modal-content .form-panel .form-group{margin-bottom:var(--gps-spacing-lg, 12px)}.three-section-modal-content .form-panel .form-group:last-child{margin-bottom:0}.three-section-modal-content .form-helper-text{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px;color:var(--gps-text-muted, #666666);margin-top:var(--gps-spacing-xs, 4px);display:block}.three-section-modal-content .checkbox-group{display:flex;align-items:center;gap:var(--gps-spacing-sm, 6px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;color:var(--gps-text-dark, #333333)}.three-section-modal-content .checkbox-group input[type=checkbox]{width:16px;height:16px;accent-color:var(--gps-primary-teal, #025043);cursor:pointer}.three-section-modal-content .password-input-wrapper{position:relative}.three-section-modal-content .password-toggle-btn{position:absolute;right:var(--gps-spacing-md, 8px);top:50%;transform:translateY(-50%);background:none;border:none;color:var(--gps-text-muted, #666666);cursor:pointer;padding:var(--gps-spacing-xs, 4px)}.three-section-modal-content .password-toggle-btn:hover{color:var(--gps-text-dark, #333333)}.three-section-modal-content .password-configured-notice{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--gps-spacing-md, 8px);padding:var(--gps-spacing-md, 8px);background:#ecfdf5;border:1px solid var(--gps-success-green, #38a169);border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;color:#065f46}.three-section-modal-content .password-notice-content{display:flex;align-items:center;gap:var(--gps-spacing-sm, 6px)}.three-section-modal-content .btn-remove-password{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px;padding:var(--gps-spacing-xs, 4px) var(--gps-spacing-md, 8px);background:var(--gps-bg-white, #ffffff);border:1px solid var(--gps-border-input, #cbd5e0);border-radius:var(--gps-radius-sm, 4px);cursor:pointer;color:var(--gps-text-dark, #333333)}.three-section-modal-content .btn-remove-password:hover{background:var(--gps-bg-row-hover, #f7fafc)}@media (max-width: 768px){.three-section-modal{width:95%;max-height:95vh}.three-section-modal-header{padding:var(--gps-spacing-md, 8px) var(--gps-spacing-lg, 12px)}.three-section-modal-content{padding:var(--gps-spacing-lg, 12px)}.three-section-modal-footer{padding:var(--gps-spacing-md, 8px) var(--gps-spacing-lg, 12px)}}.tooltip-container{position:relative;display:inline-flex}.tooltip{position:absolute;z-index:1000;background-color:var(--dark-gray, #333);color:#fff;padding:8px 12px;border-radius:4px;font-size:.85rem;max-width:250px;word-wrap:break-word;box-shadow:0 2px 8px #00000026;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s,transform .3s}.tooltip.visible{opacity:1;visibility:visible}.tooltip-default{background-color:var(--dark-gray, #333)}.tooltip-info{background-color:var(--info-color, #3498db)}.tooltip-success{background-color:var(--success-color, #2ecc71)}.tooltip-warning{background-color:var(--warning-color, #f39c12)}.tooltip-error{background-color:var(--error-color, #e74c3c)}.tooltip-top{bottom:100%;left:50%;transform:translate(-50%) translateY(-10px);margin-bottom:8px}.tooltip-bottom{top:100%;left:50%;transform:translate(-50%) translateY(10px);margin-top:8px}.tooltip-left{right:100%;top:50%;transform:translateY(-50%) translate(-10px);margin-right:8px}.tooltip-right{left:100%;top:50%;transform:translateY(-50%) translate(10px);margin-left:8px}.tooltip.visible.tooltip-top,.tooltip.visible.tooltip-bottom{transform:translate(-50%) translateY(0)}.tooltip.visible.tooltip-left,.tooltip.visible.tooltip-right{transform:translateY(-50%) translate(0)}.tooltip.animated{transition:opacity .5s,visibility .5s,transform .5s}.tooltip-arrow{position:absolute;width:0;height:0;border:5px solid transparent}.tooltip-arrow-top{bottom:-10px;left:50%;margin-left:-5px;border-top-color:inherit}.tooltip-arrow-bottom{top:-10px;left:50%;margin-left:-5px;border-bottom-color:inherit}.tooltip-arrow-left{right:-10px;top:50%;margin-top:-5px;border-left-color:inherit}.tooltip-arrow-right{left:-10px;top:50%;margin-top:-5px;border-right-color:inherit}.tooltip.quality-tooltip{padding:10px 15px;max-width:300px}.tooltip.quality-tooltip .quality-tooltip-title{font-weight:700;margin-bottom:5px;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:5px}.tooltip.quality-tooltip .quality-tooltip-content{line-height:1.4}.tooltip.quality-tooltip .quality-component{display:flex;justify-content:space-between;margin:4px 0}.tooltip.quality-tooltip .quality-component-label{margin-right:10px}.tooltip.quality-tooltip .quality-component-score{font-weight:700}.quality-high{color:var(--success-color, #2ecc71)}.quality-medium{color:var(--warning-color, #f39c12)}.quality-low{color:var(--error-color, #e74c3c)}.dlq-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;border:1px solid;transition:all .2s ease}.dlq-badge-compact{padding:2px 4px;font-size:14px}.dlq-badge-text{white-space:nowrap}.dlq-badge-default{color:#dc2626;background-color:#fee2e2;border-color:#dc2626}.dlq-badge:hover{opacity:.8;transform:scale(1.02)}.dlq-reason-text{color:#dc2626;font-weight:500;font-size:13px}.dlq-reason-text:hover{text-decoration:underline;cursor:help}.password-modal{max-width:500px;width:90%}.password-modal-text{margin-bottom:12px;color:#4b5563;font-size:14px}.password-modal-filename{margin-bottom:20px;padding:12px;background-color:#f3f4f6;border-radius:6px;font-size:13px;color:#111827;word-break:break-all}.password-form{display:flex;flex-direction:column;gap:16px}.password-input-group{display:flex;gap:8px;align-items:center}.password-input{flex:1;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .2s}.password-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.password-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.password-toggle-btn{padding:10px 16px;background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#4b5563;cursor:pointer;transition:all .2s;white-space:nowrap}.password-toggle-btn:hover:not(:disabled){background-color:#e5e7eb}.password-toggle-btn:disabled{opacity:.5;cursor:not-allowed}.password-modal-actions{display:flex;gap:12px;justify-content:flex-end}.password-modal-actions .btn-primary,.password-modal-actions .btn-secondary{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.password-modal-actions .btn-primary{background-color:#3b82f6;color:#fff}.password-modal-actions .btn-primary:hover:not(:disabled){background-color:#2563eb}.password-modal-actions .btn-primary:disabled{background-color:#93c5fd;cursor:not-allowed}.password-modal-actions .btn-secondary{background-color:#f3f4f6;color:#4b5563;border:1px solid #d1d5db}.password-modal-actions .btn-secondary:hover:not(:disabled){background-color:#e5e7eb}.password-modal-actions .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.password-modal-note{margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb;color:#6b7280;font-size:12px;line-height:1.5}.password-modal-note small{display:block}.file-catalog-container{padding:0 2rem 2rem;max-width:1400px;margin:0 auto}.file-catalog-container .page-header h1{font-size:1.1rem}.page-title{font-size:1.1rem;margin-bottom:var(--space-5);font-weight:var(--font-semibold);color:#025043}.catalog-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);flex-wrap:wrap;gap:var(--space-4)}.search-container{flex:1;min-width:250px}.search-input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-size:var(--text-sm)}.search-input:focus{outline:none;border-color:var(--color-primary)}.filter-container{display:flex;gap:var(--space-2)}.filter-select,.sort-select{padding:var(--space-2) var(--space-3);border:1px solid var(--border-medium);border-radius:var(--radius-sm);background-color:var(--bg-card);font-size:var(--text-sm);cursor:pointer}.filter-select:focus,.sort-select:focus{outline:none;border-color:var(--color-primary)}.order-button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-size:var(--text-lg);cursor:pointer;transition:background-color var(--transition-base)}.order-button:hover{background-color:var(--bg-surface)}.bulk-delete-button{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background-color:#ef4444;color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:background-color var(--transition-base)}.bulk-delete-button:hover:not(:disabled){background-color:#dc2626}.bulk-delete-button:disabled{opacity:.6;cursor:not-allowed}.checkbox-cell{width:40px;padding:var(--space-3) var(--space-4)}.checkbox-cell input[type=checkbox]{width:16px;height:16px;cursor:pointer}.file-catalog-table-container{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.file-catalog-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.file-table-wrapper{margin-top:1rem;overflow-x:auto}.file-catalog-table thead{background-color:var(--bg-surface);border-bottom:2px solid var(--border-light)}.file-catalog-table th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--font-semibold);color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.5px;border-right:1px solid var(--border-light)}.file-catalog-table th:last-child{border-right:none}.file-catalog-table th:nth-child(1){width:25%}.file-catalog-table th:nth-child(2){width:8%}.file-catalog-table th:nth-child(3){width:10%}.file-catalog-table th:nth-child(4){width:10%}.file-catalog-table th:nth-child(5){width:10%}.file-catalog-table th:nth-child(6){width:15%}.file-catalog-table th:nth-child(7){width:12%}.file-catalog-table th:nth-child(8){width:10%}.file-catalog-table tbody tr{transition:background-color var(--transition-fast);border-bottom:1px solid var(--border-light)}.file-catalog-table tbody tr:last-child{border-bottom:none}.file-catalog-table tbody tr:hover{background-color:var(--bg-surface)}.file-catalog-table td{padding:var(--space-3) var(--space-4);color:var(--text-secondary);font-size:var(--text-xs);border-right:1px solid var(--border-light);vertical-align:middle!important}.file-catalog-table td:last-child{border-right:none}.file-name-cell{font-weight:var(--font-medium)}.expand-icon{font-size:.7em;color:var(--text-tertiary);margin-right:var(--space-1);transition:transform var(--transition-fast)}.file-count-badge{display:inline-block;padding:2px 6px;margin-left:var(--space-2);background-color:var(--color-primary);color:#fff;font-size:.75em;font-weight:var(--font-semibold);border-radius:var(--radius-sm)}.group-header-row{background-color:var(--bg-card);font-weight:var(--font-medium)}.group-header-row:hover{background-color:var(--bg-surface)!important}.child-file-row{background-color:var(--bg-surface)}.child-file-row:hover{background-color:var(--color-gray-100)!important}.file-icon{font-size:var(--text-xl);flex-shrink:0}.file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schema-changed-indicator{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;margin-left:var(--space-2);background-color:#fef9c3;color:#ca8a04;font-size:.7em;font-weight:var(--font-semibold);border-radius:var(--radius-sm);border:1px solid #fde68a;white-space:nowrap;cursor:help}.schema-changed-indicator svg{width:12px;height:12px}.file-error-indicator{margin-left:8px;font-size:1.1em;cursor:help;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.error-text{color:#dc3545;font-weight:600;cursor:help}.file-catalog-table .file-type-badge{display:inline-block;padding:1px 4px!important;border-radius:var(--radius-sm);background-color:var(--color-gray-200);color:var(--text-secondary);font-size:.55rem!important;font-weight:var(--font-semibold);text-transform:uppercase}.quality-cell{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.quality-score{font-weight:var(--font-semibold);font-size:var(--text-sm)}.quality-score.high{color:var(--color-success)}.quality-score.medium{color:#b45309}.quality-score.low{color:#991b1b}.header-validation-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-sm);font-size:.7em;font-weight:var(--font-semibold);cursor:help;white-space:nowrap}.header-validation-badge.warning{background-color:#fef3c7;color:#92400e;border:1px solid #fbbf24}.header-validation-badge.critical{background-color:#fee2e2;color:#991b1b;border:1px solid #ef4444}.header-validation-badge svg{width:12px;height:12px}.action-icon-btn.password-btn{color:#f59e0b}.action-icon-btn.password-btn:hover{background-color:#fef3c7}.no-results{text-align:center;padding:var(--space-10) var(--space-5);color:var(--text-tertiary);font-size:var(--text-sm)}.pagination-info{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);font-size:var(--text-sm);color:var(--text-secondary)}.items-per-page{display:flex;align-items:center;gap:var(--space-2)}.items-per-page label{font-size:var(--text-sm);color:var(--text-secondary)}.items-per-page-select{padding:var(--space-1) var(--space-2);border:1px solid var(--border-medium);border-radius:var(--radius-sm);background-color:var(--bg-card);font-size:var(--text-sm);cursor:pointer}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-4);border-top:1px solid var(--border-light)}.pagination-button{padding:var(--space-2) var(--space-3);border:1px solid var(--border-medium);border-radius:var(--radius-sm);background-color:var(--bg-card);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-base)}.pagination-button:hover:not(:disabled){background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pagination-number{min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background-color:var(--bg-card);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-base)}.pagination-number:hover{background-color:var(--bg-surface)}.pagination-number.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.notification-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.notification-modal{background:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-5);max-width:400px;width:90%;box-shadow:var(--shadow-lg)}.notification-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.notification-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold)}.notification-modal.success .notification-header h3{color:var(--color-success)}.notification-modal.error .notification-header h3{color:var(--color-error)}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-tertiary);padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base)}.close-button:hover{background-color:var(--bg-surface);color:var(--text-primary)}.notification-modal p{margin:var(--space-3) 0;color:var(--text-secondary);font-size:var(--text-sm)}.notification-button{width:100%;padding:var(--space-2) var(--space-4);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:background-color var(--transition-base)}.notification-button:hover{background-color:var(--color-primary-dark)}@media (max-width: 768px){.catalog-controls{flex-direction:column;align-items:stretch}.file-catalog-table-container{overflow-x:auto}.file-catalog-table{min-width:800px}.pagination-info{flex-direction:column;gap:var(--space-2);align-items:flex-start}.pagination-controls{flex-wrap:wrap}}.schema-history-container{padding:16px;background:#fff;border-radius:8px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:10px}.schema-history-loading,.schema-history-error,.schema-history-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#666}.schema-history-error{color:#dc3545}.schema-history-error svg,.schema-history-empty svg{margin-bottom:20px;opacity:.5}.schema-history-error h3,.schema-history-empty h3{margin:0 0 10px;font-size:1.5rem;color:#333}.schema-history-error p,.schema-history-empty p{margin:0 0 20px;max-width:500px}.schema-history-metrics{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #e0e0e0}.upload-count{padding:4px 10px;background:#e0f2f1;border:1px solid #b2dfdb;border-radius:4px;font-size:10px;color:#025043;font-weight:500}.snapshot-count{padding:4px 10px;background:#f1f5f9;border-radius:4px;font-size:10px;color:#64748b}.schema-changed-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#fef9c3;border:1px solid #fde68a;border-radius:4px;font-size:10px;font-weight:600;color:#ca8a04}.drift-action-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:4px;font-size:10px;font-weight:500}.drift-action-badge.drift-abort{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.drift-action-badge.drift-alert{background:#fef9c3;color:#ca8a04;border:1px solid #fde68a}.drift-action-badge.drift-none{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.job-link{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#025043;color:#fff;text-decoration:none;border-radius:4px;font-size:10px;transition:background .2s}.job-link:hover{background:#025043}.schema-single{max-width:900px;margin:0 auto}.schema-comparison{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:start}.schema-comparison-three-panel{display:grid;grid-template-columns:1fr 1fr 400px;gap:20px;align-items:start}.schema-section{padding:15px 20px 15px 0;border-right:1px solid #e5e7eb;height:fit-content;max-height:800px;overflow-y:auto}.schema-section:last-child{border-right:none;padding-right:0}.schema-section h3{margin:0 0 12px;font-size:12px;font-weight:600;color:#025043;display:flex;flex-direction:column;gap:4px}.schema-subtitle{font-size:10px;color:#6b7280;font-weight:400;font-family:Monaco,Courier New,monospace}.schema-previous h3{color:#6b7280}.schema-info{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.capture-date{display:flex;align-items:center;gap:4px;margin:0 0 4px;font-size:10px;color:#6b7280}.schema-stats{margin:0;font-size:10px;color:#6b7280}.schema-table{overflow-x:auto}.schema-table table{width:100%;border-collapse:collapse;font-size:10px}.schema-table th{background:#f8fafc;color:#334155;padding:10px 12px;text-align:left;font-weight:600;white-space:nowrap;font-size:10px;text-transform:capitalize;border-bottom:2px solid #e2e8f0}.schema-table th:first-child{width:40px}.schema-table td{padding:10px 12px;border-bottom:1px solid #e5e7eb;font-size:10px}.schema-table tr:last-child td{border-bottom:none}.column-name{font-family:Monaco,Courier New,monospace;font-weight:500}.type-badge{display:inline-block;padding:2px 6px;background:#f1f5f9;color:#64748b;border-radius:4px;font-size:9px;font-family:Monaco,Courier New,monospace}.diff-badge-added,.diff-badge-removed,.diff-badge-modified,.diff-badge-reordered{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:4px;font-size:9px;font-weight:600}.diff-badge-added{background:#dcfce7;color:#16a34a;border:1px solid #86efac}.diff-badge-removed{background:#fee2e2;color:#dc2626;border:1px solid #fecaca}.diff-badge-modified{background:#fef3c7;color:#d97706;border:1px solid #fde68a}.diff-badge-reordered{background:#dbeafe;color:#2563eb;border:1px solid #bfdbfe}.row-added{background:#f0fdf4}.row-removed{background:#fef2f2;opacity:.7;text-decoration:line-through}.row-modified{background:#fffbeb}.row-reordered{background:#eff6ff}.schema-diff-summary{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;min-width:200px}.diff-arrow{color:#025043;margin-bottom:20px}.diff-stats{display:flex;flex-direction:column;gap:10px;text-align:center}.diff-stats h4{margin:0 0 10px;font-size:1rem;color:#333}.diff-stat{display:flex;justify-content:center}.no-changes-icon{color:#16a34a;margin-bottom:10px}.schema-changes-panel{padding:12px 0 12px 16px;border-left:1px solid #e5e7eb;max-height:800px;overflow-y:auto}.schema-changes-panel:first-child{padding-left:0;border-left:none}.schema-changes-panel h3{margin:0 0 10px;font-size:12px;font-weight:600;color:#025043;border-bottom:1px solid #e5e7eb;padding-bottom:6px}.changes-content,.change-overview{display:flex;flex-direction:column;gap:15px}.change-category{background:#f9fafb;border-radius:4px;padding:10px;border:1px solid #e5e7eb}.change-category h4{margin:0 0 8px;font-size:10px;font-weight:600}.change-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.change-list li{padding:6px 10px;border-radius:4px;font-size:10px;display:flex;justify-content:space-between;align-items:center;gap:10px}.change-item-added{background:#f0fdf4;border-left:3px solid #16a34a}.change-item-removed{background:#fef2f2;border-left:3px solid #dc2626;opacity:.8}.change-item-modified{background:#fffbeb;border-left:3px solid #d97706}.change-item-reordered{background:#eff6ff;border-left:3px solid #2563eb}.change-list li strong{font-family:Monaco,Courier New,monospace;flex:1;color:#111827}.type-badge-small{padding:2px 6px;background:#f1f5f9;color:#64748b;border-radius:4px;font-size:9px;font-family:Monaco,Courier New,monospace;white-space:nowrap}.type-change{display:flex;align-items:center;gap:6px}.position-change{font-size:10px;color:#6b7280;white-space:nowrap}.no-changes{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 16px;color:#6b7280}.no-changes h4{margin:12px 0 6px;font-size:12px;font-weight:600;color:#111827}.no-changes p{margin:0 0 16px;font-size:10px}.validation-alert-error{background:#fef2f2;border:2px solid #ef4444;border-radius:6px;padding:12px;margin-bottom:16px;display:flex;flex-direction:column;align-items:center;text-align:center;color:#991b1b}.validation-alert-error svg{color:#ef4444;margin-bottom:6px}.validation-alert-error p{margin:3px 0;font-size:10px}.validation-alert-error p strong{font-size:11px;font-weight:600;color:#7f1d1d}.snapshot-history{margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.snapshot-history h4{margin:0 0 10px;font-size:12px;font-weight:600;color:#334155}.snapshot-timeline{display:flex;flex-direction:column;gap:6px}.snapshot-item{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:4px;transition:background .2s;text-decoration:none}.snapshot-item:hover{background:#f9fafb}.snapshot-current{background:#eff6ff;border:1px solid #bfdbfe}.snapshot-marker{font-size:10px;line-height:1.4;color:#94a3b8;flex-shrink:0;width:14px;text-align:center}.snapshot-current .snapshot-marker{color:#2563eb}.snapshot-details{display:flex;flex-direction:column;gap:1px;flex:1}.snapshot-date{font-size:10px;color:#374151;font-weight:500}.snapshot-meta{font-size:9px;color:#64748b}.snapshot-more{font-size:10px;color:#64748b;padding:6px 10px;text-align:center;font-style:italic}.snapshot-clickable{cursor:pointer}.snapshot-clickable:hover{background:#e0f2f1;border:1px solid #b2dfdb}.snapshot-selected{background:#e0f2f1!important;border:2px solid #025043!important}.snapshot-selected .snapshot-marker{color:#025043;font-weight:700}.current-label{font-weight:400;color:#2563eb;margin-left:4px}.selected-label{font-weight:600;color:#025043;margin-left:4px}.compare-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:#e0f2f1;border:1px solid #b2dfdb;border-radius:4px;margin-bottom:10px;font-size:10px;color:#025043;font-weight:500}.clear-compare-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:#025043;color:#fff;border-radius:50%;cursor:pointer;transition:background .2s}.clear-compare-btn:hover{background:#033830}@media (max-width: 1400px){.schema-comparison-three-panel{grid-template-columns:1fr 1fr}.schema-changes-panel{grid-column:1 / -1;max-height:none}}@media (max-width: 1200px){.schema-comparison{grid-template-columns:1fr;gap:30px}.schema-diff-summary{padding:20px 0}.diff-arrow{transform:rotate(90deg)}}@media (max-width: 900px){.schema-comparison-three-panel{grid-template-columns:1fr}.schema-history-header{flex-direction:column;align-items:flex-start;gap:15px}.history-meta{width:100%}}.upload-history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.upload-history-header h4{margin:0;font-size:12px;font-weight:600;color:#333;text-transform:none}.compare-actions{display:flex;align-items:center;gap:8px}.selection-count{font-size:10px;color:#64748b;padding:4px 8px;background:#f1f5f9;border-radius:4px}.compare-schemas-btn{display:flex;align-items:center;gap:6px;padding:6px 12px!important;font-size:10px!important;font-weight:500}.btn-sm{padding:4px 10px!important;font-size:10px!important}.compare-checkbox{width:14px;height:14px;margin:0 8px 0 0;cursor:pointer;accent-color:#025043;flex-shrink:0}.compare-checkbox:disabled{opacity:.4;cursor:not-allowed}.snapshot-item.snapshot-checked{background:#e0f2f1!important;border-color:#025043!important}.schema-compare-modal{background:#fff;border-radius:12px;width:95vw;max-width:1400px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040}.schema-compare-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}.schema-compare-modal .modal-header h2{display:flex;align-items:center;gap:10px;margin:0;font-size:16px;font-weight:600;color:#1e293b}.modal-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:#f1f5f9;color:#64748b;border-radius:6px;cursor:pointer;transition:all .2s}.modal-close-btn:hover{background:#e2e8f0;color:#1e293b}.compare-summary{display:flex;align-items:center;gap:16px;padding:12px 20px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.compare-info{font-size:11px;font-weight:500;color:#334155}.total-columns{font-size:10px;color:#64748b;padding:4px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:4px}.compare-grid{display:grid;gap:1px;background:#e2e8f0;flex:1;overflow:hidden}.compare-panel{display:flex;flex-direction:column;background:#fff;min-width:0}.compare-panel-header{padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.compare-panel-header .panel-label{display:block;font-size:11px;font-weight:600;color:#025043;text-transform:none;margin-bottom:4px}.compare-panel-header .panel-date{display:block;font-size:10px;color:#334155;font-weight:500;margin-bottom:2px}.compare-panel-header .panel-stats{display:block;font-size:9px;color:#64748b}.compare-panel-body{flex:1;overflow-y:auto;max-height:55vh}.compare-table{width:100%;border-collapse:collapse;font-size:10px}.compare-table th{position:sticky;top:0;padding:8px 12px;background:#f1f5f9;font-weight:600;text-align:left;color:#475569;font-size:10px;text-transform:capitalize;border-bottom:1px solid #e2e8f0;z-index:1}.compare-table td{padding:6px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.compare-table .col-name{font-weight:500;color:#1e293b}.compare-table .col-type{width:80px}.compare-table .type-badge{display:inline-block;padding:2px 6px;background:#e2e8f0;border-radius:3px;font-size:9px;color:#475569}.compare-table .type-badge.type-mismatch{background:#fef9c3;color:#ca8a04;border:1px solid #fde68a}.compare-table .type-na{color:#cbd5e1}.compare-table .missing-col{color:#cbd5e1;font-style:italic}.compare-row-missing{background:#fef2f2!important}.compare-row-missing td{border-bottom-color:#fecaca!important}.compare-row-unique{background:#f0fdf4!important}.compare-row-unique td{border-bottom-color:#bbf7d0!important}.compare-row-mismatch{background:#fefce8!important}.compare-row-mismatch td{border-bottom-color:#fef08a!important}.compare-table .diff-badge-removed,.compare-table .diff-badge-added{display:inline-block;margin-left:6px;padding:1px 5px;font-size:8px;font-weight:600;border-radius:3px}.compare-table .diff-badge-removed{background:#fee2e2;color:#dc2626}.compare-table .diff-badge-added{background:#dcfce7;color:#16a34a}.compare-legend{display:flex;align-items:center;gap:20px;padding:12px 20px;background:#f8fafc;border-top:1px solid #e2e8f0}.legend-item{display:flex;align-items:center;gap:6px;font-size:10px;color:#64748b}.legend-color{width:12px;height:12px;border-radius:3px}.legend-missing{background:#fef2f2;border:1px solid #fecaca}.legend-unique{background:#f0fdf4;border:1px solid #bbf7d0}.legend-mismatch{background:#fefce8;border:1px solid #fef08a}@media (max-width: 1000px){.compare-grid{grid-template-columns:1fr!important}.compare-panel-body{max-height:30vh}}.ai-dq-suggestions-tab{padding:20px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.ai-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.ai-header-left h3{display:flex;align-items:center;gap:10px;margin:0 0 6px;font-size:14px;font-weight:600;color:#1e293b;text-transform:uppercase}.ai-icon{color:#025043}.ai-description{margin:0;font-size:10px;color:#64748b}.ai-header-right{flex-shrink:0;display:flex;align-items:center;gap:16px}.provider-selector{display:flex;align-items:center;gap:8px}.provider-label{font-size:10px;font-weight:500;color:#64748b}.provider-dropdown-container{position:relative}.provider-dropdown-trigger{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-size:10px;font-weight:500;color:#334155;cursor:pointer;transition:all .2s;min-width:120px}.provider-dropdown-trigger:hover:not(:disabled){border-color:#025043}.provider-dropdown-trigger:disabled{opacity:.6;cursor:not-allowed}.provider-dropdown-trigger svg.rotated{transform:rotate(180deg)}.provider-dropdown-trigger svg:last-child{margin-left:auto;transition:transform .2s}.provider-dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:200px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:100;overflow:hidden}.provider-option{display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;font-size:10px;color:#334155;cursor:pointer;text-align:left;transition:all .15s}.provider-option:hover:not(:disabled){background:#f8fafc}.provider-option.active{background:#f0fdfa;color:#025043}.provider-option.unavailable{opacity:.5;cursor:not-allowed}.provider-option svg{flex-shrink:0;margin-top:2px;color:#64748b}.provider-option.active svg{color:#025043}.provider-option span{font-weight:500}.provider-option small{display:block;font-size:9px;font-weight:400;color:#94a3b8;margin-top:2px}.generated-info{display:flex;align-items:center;gap:16px;margin-bottom:16px}.generated-info .generated-at{margin:0}.provider-used{display:flex;align-items:center;gap:6px;font-size:9px;color:#64748b;margin:0}.provider-used svg{color:#025043}.privacy-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;background:#dcfce7;color:#16a34a;border-radius:3px;font-size:9px;font-weight:500;margin-left:6px}.feature-toggle{display:flex;align-items:center;gap:10px}.toggle-label{font-size:10px;font-weight:500;color:#64748b}.toggle-button{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:10px;font-weight:500;cursor:pointer;transition:all .2s}.toggle-button.enabled{background:#dcfce7;border-color:#16a34a;color:#16a34a}.toggle-button.disabled{background:#f1f5f9;border-color:#cbd5e1;color:#64748b}.toggle-button:hover:not(:disabled){opacity:.85}.toggle-button:disabled{opacity:.6;cursor:not-allowed}.toggle-loading{animation:pulse 1s infinite}.feature-disabled-notice{display:flex;align-items:flex-start;gap:16px;padding:24px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#64748b}.feature-disabled-notice svg{flex-shrink:0;margin-top:2px}.feature-disabled-notice h4{margin:0 0 6px;font-size:12px;font-weight:600;color:#334155}.feature-disabled-notice p{margin:0;font-size:10px;line-height:1.5}.ai-actions{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.ai-dq-generate-btn{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:10px;font-weight:600;padding:8px 14px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease;white-space:nowrap;background:#025043;color:#fff;border:none}.ai-dq-generate-btn:hover:not(:disabled){background:#033830;transform:translateY(-1px);box-shadow:0 2px 4px #02504333}.ai-dq-generate-btn:active:not(:disabled){transform:translateY(0)}.ai-dq-generate-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.ai-dq-generate-btn .loading-spinner{width:12px;height:12px}.ai-dq-generate-btn svg{width:14px;height:14px}.bulk-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.select-all-btn,.clear-selection-btn{padding:6px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;font-size:10px;color:#475569;cursor:pointer;transition:all .2s}.select-all-btn:hover:not(:disabled),.clear-selection-btn:hover{background:#e2e8f0}.select-all-btn:disabled{opacity:.5;cursor:not-allowed}.create-selected-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:#16a34a;color:#fff;border:none;border-radius:4px;font-size:10px;font-weight:500;cursor:pointer;transition:all .2s}.create-selected-btn:hover{background:#15803d}.generated-at{font-size:9px;color:#94a3b8;margin:0 0 16px}.error-message{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:10px;margin-bottom:16px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.loading-state p{margin:12px 0 0;font-size:10px;color:#64748b}.loading-note{font-size:9px!important;color:#94a3b8!important}.no-suggestions,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;background:#f8fafc;border:1px dashed #e2e8f0;border-radius:8px}.no-suggestions svg,.empty-state svg{color:#94a3b8;margin-bottom:12px}.no-suggestions h4,.empty-state h4{margin:0 0 6px;font-size:12px;font-weight:600;color:#334155}.no-suggestions p,.empty-state p{margin:0;font-size:10px;color:#64748b;max-width:300px}.suggestions-list{display:flex;flex-direction:column;gap:12px}.suggestion-card{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;transition:all .2s}.suggestion-card:hover{border-color:#cbd5e1;box-shadow:0 2px 4px #0000000d}.suggestion-card.selected{border-color:#025043;background:#f0fdfa}.suggestion-card.created{border-color:#16a34a;background:#f0fdf4;opacity:.8}.suggestion-checkbox{flex-shrink:0;padding-top:2px}.suggestion-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:#025043;cursor:pointer}.suggestion-content{flex:1;min-width:0}.suggestion-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.suggestion-meta{display:flex;align-items:center;gap:8px}.rule-type-icon{font-size:14px}.rule-type-label{font-size:9px;font-weight:600;text-transform:uppercase;color:#64748b;background:#f1f5f9;padding:2px 6px;border-radius:3px}.severity-badge{font-size:9px;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:3px}.severity-critical{background:#fef2f2;color:#dc2626}.severity-error{background:#fff7ed;color:#ea580c}.severity-warning{background:#fefce8;color:#ca8a04}.severity-info{background:#eff6ff;color:#2563eb}.column-name{font-size:10px;color:#64748b}.column-name strong{color:#334155;font-family:Monaco,Menlo,monospace}.suggestion-title{margin:0 0 6px;font-size:11px;font-weight:600;color:#1e293b}.suggestion-description{margin:0 0 10px;font-size:10px;color:#475569;line-height:1.5}.suggestion-reason{display:flex;align-items:flex-start;gap:6px;padding:8px 10px;background:#f8fafc;border-radius:4px;font-size:9px;color:#64748b;line-height:1.4}.suggestion-reason svg{flex-shrink:0;margin-top:1px;color:#94a3b8}.rule-config-preview{margin-top:10px;padding:8px 10px;background:#1e293b;border-radius:4px;overflow-x:auto}.rule-config-preview code{font-family:Monaco,Menlo,monospace;font-size:9px;color:#94a3b8;white-space:pre}.suggestion-actions{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.create-rule-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#025043;color:#fff;border:none;border-radius:4px;font-size:10px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.create-rule-btn:hover:not(:disabled){background:#033830}.create-rule-btn:disabled{opacity:.6;cursor:not-allowed}.created-badge{display:flex;align-items:center;gap:4px;padding:6px 12px;background:#dcfce7;color:#16a34a;border-radius:4px;font-size:10px;font-weight:500}@media (max-width: 768px){.ai-header{flex-direction:column;gap:16px}.suggestion-card{flex-direction:column}.suggestion-actions{width:100%;flex-direction:row;justify-content:flex-end}.bulk-actions{margin-left:0;width:100%;justify-content:flex-start;margin-top:8px}}.data-profile-container{padding:var(--space-6);max-width:1600px;margin:0 auto}.profile-header-two-line{margin-bottom:var(--space-4);background:linear-gradient(to right,var(--color-gray-50),var(--color-gray-100));padding:var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.header-line-1{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.header-line-1 .header-left{display:flex;align-items:center;gap:var(--space-3)}.header-line-1 .header-right{display:flex;align-items:center;gap:var(--space-4)}.header-line-1 .file-icon{display:inline-flex;align-items:center;justify-content:center;background-color:var(--color-primary);color:#fff;font-weight:var(--font-bold);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em;min-width:70px}.header-line-1 h1{margin:0;font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary)}.header-line-2{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);font-size:var(--text-sm);padding-top:var(--space-3);border-top:1px solid var(--border-light);flex-wrap:wrap}.header-line-2-left{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.header-line-2-right{display:flex;align-items:center;gap:var(--space-2)}.header-line-2 .header-property{display:flex;align-items:center;gap:var(--space-2);color:var(--text-secondary)}.header-line-2 .header-property strong{color:var(--text-primary);font-weight:var(--font-medium)}.header-line-2 .sensitivity-select-wrapper{display:flex;align-items:center;gap:var(--space-2);color:#fff}.header-line-2 .sensitivity-select-wrapper strong{color:#fff;font-weight:var(--font-semibold)}.sensitivity-select{background-color:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);padding:4px 8px;font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;outline:none!important}.sensitivity-select:focus{outline:none!important;border-color:#ffffff80;background-color:#ffffff40}.sensitivity-select option{background-color:var(--color-gray-700);color:#fff}.header-line-2 .icon-inline{width:14px;height:14px;color:var(--color-primary)}.header-right .header-property{display:flex;align-items:center;gap:var(--space-2);color:#fff;font-size:var(--text-sm)}.header-right .header-property strong{color:#fff;font-weight:var(--font-medium)}.header-right .icon-inline{width:14px;height:14px;color:#fff}.header-right .btn-icon-small{color:#fff}.header-right .btn-icon-small svg{color:#fff}.profile-header-compact{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);background:linear-gradient(to right,var(--color-gray-50),var(--color-gray-100));padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-md);gap:var(--space-4)}.profile-header-compact .header-left h1{display:flex;align-items:center;margin:0;font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary)}.profile-header-compact .header-right{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-sm)}.profile-header-compact .header-property{display:flex;align-items:center;gap:var(--space-2);color:var(--text-secondary)}.profile-header-compact .header-property strong{color:var(--text-primary);font-weight:var(--font-medium)}.profile-header-compact .icon-inline{width:14px;height:14px;color:var(--color-primary)}.btn-icon-small{background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--text-tertiary);transition:all var(--transition-base);border-radius:var(--radius-sm)}.btn-icon-small:hover{background-color:var(--color-gray-200);color:var(--color-primary)}.btn-icon-small:disabled{opacity:.4;cursor:not-allowed;color:var(--text-tertiary)}.btn-icon-small:disabled:hover{background-color:transparent;color:var(--text-tertiary)}.profile-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-8);background:linear-gradient(to right,var(--color-gray-50),var(--color-gray-100));padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.profile-title h1{display:flex;align-items:center;margin-bottom:var(--space-2);font-size:var(--text-3xl);font-weight:var(--font-semibold);color:var(--text-primary)}.profile-title .file-type,.data-profile-container .file-type{background-color:var(--color-primary)!important;color:var(--text-on-primary)!important;padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);margin-right:var(--space-3);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.5px;text-shadow:0 1px 1px rgba(0,0,0,.2)}.file-details{display:flex;color:var(--text-tertiary);font-size:var(--text-sm);margin-top:var(--space-2)}.file-size{margin-right:var(--space-4);display:flex;align-items:center}.file-date{display:flex;align-items:center}.file-metadata{margin-left:var(--space-4);display:flex;align-items:center;color:var(--text-tertiary);font-style:italic}.profile-actions{display:flex;gap:var(--space-3)}.profile-actions .btn-primary{color:var(--text-on-primary)}.profile-tabs{display:flex;margin-bottom:var(--space-8);border-bottom:1px solid var(--border-light);background-color:var(--bg-card);border-radius:var(--radius-md) var(--radius-md) 0 0;padding:0 var(--space-4);box-shadow:var(--shadow-sm)}.tab-button{background:none;border:none;padding:var(--space-4) var(--space-6);cursor:pointer;font-size:var(--text-base);font-weight:var(--font-medium);color:var(--text-tertiary);position:relative;transition:all var(--transition-base)}.tab-button:hover{color:var(--color-primary)}.tab-button.active{color:var(--color-primary);font-weight:var(--font-semibold)}.profile-content{margin-top:var(--space-6);animation:fadeIn .3s ease-in-out}.profile-overview{display:grid;gap:var(--space-6)}.file-stats-grid{display:flex;flex-direction:row;justify-content:space-between;gap:0px;margin-bottom:0}.file-stat-card{display:flex;align-items:center;padding:var(--space-3);transition:background-color var(--transition-base);flex:1;border-right:1px solid var(--border-light)}.file-stat-card:last-child{border-right:none}.file-stat-card:hover{background-color:var(--bg-surface)}.stat-icon{width:39px;height:39px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:17px;margin-right:var(--space-3);box-shadow:var(--shadow-sm)}.rows-icon{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:var(--text-on-primary)}.columns-icon{background:linear-gradient(135deg,var(--color-success),var(--color-success-dark));color:var(--text-on-primary)}.size-icon{background:linear-gradient(135deg,var(--color-amber),var(--color-amber-dark));color:var(--text-on-primary)}.age-icon{background:linear-gradient(135deg,#9b59b6,#8e44ad);color:var(--text-on-primary)}.duplicates-icon{background:linear-gradient(135deg,#e74c3c,#c0392b);color:var(--text-on-primary)}.stat-details h3{margin:0 0 var(--space-1) 0;font-size:17px;font-weight:var(--font-semibold);color:var(--text-primary)}.stat-details p{margin:0;color:var(--text-tertiary);font-size:11px}.stat-timestamps{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-light);font-size:10px;color:var(--text-tertiary)}.stat-timestamps div{margin-bottom:2px}.stat-timestamps strong{font-weight:var(--font-medium);color:var(--text-secondary)}.stat-timestamps-only{font-size:11px;color:var(--text-secondary)}.stat-timestamps-only div{margin-bottom:4px}.stat-timestamps-only strong{font-weight:var(--font-medium);color:var(--text-primary)}.completeness-table-container{margin-top:0;overflow-x:auto}.completeness-table{width:100%;border-collapse:separate;border-spacing:0;background-color:var(--bg-card);border-radius:var(--radius-md);overflow:hidden}.completeness-table th{text-align:left;padding:var(--space-4);background-color:var(--bg-surface);border-bottom:1px solid var(--border-light);font-weight:var(--font-medium);color:var(--text-secondary);font-size:var(--text-sm)}.completeness-table td{padding:var(--space-4);border-bottom:1px solid var(--border-light);color:var(--text-primary);font-size:var(--text-sm)}.completeness-table .col-name{width:25%;font-weight:var(--font-medium)}.completeness-table .col-type{width:15%;color:var(--text-secondary)}.completeness-table .col-completeness{width:60%}.completeness-row:hover{background-color:var(--bg-surface)}.completeness-table tr:last-child td{border-bottom:none}.completeness-bar-container{display:flex;align-items:center;width:100%}.completeness-bar-track{height:12px;flex-grow:1;background-color:var(--color-gray-200);border-radius:var(--radius-md);overflow:hidden;margin-right:var(--space-4);box-shadow:inset 0 1px 2px #0000000d}.completeness-bar-fill{height:100%;background:linear-gradient(to right,var(--color-success),var(--color-success-dark));border-radius:var(--radius-md);transition:width .5s ease}.completeness-value{min-width:60px;text-align:right;font-weight:var(--font-medium);color:var(--color-success);font-size:var(--text-sm);white-space:nowrap}.freshness-stats{display:flex;flex-direction:row;justify-content:space-between;gap:0px;margin-top:var(--space-4);background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.freshness-stat{padding:var(--space-4);flex:1;transition:background-color var(--transition-base);border-right:1px solid var(--border-light)}.freshness-stat:last-child{border-right:none}.freshness-stat:hover{background-color:var(--bg-surface)}.freshness-stat h3{margin:0 0 var(--space-2) 0;font-size:11px;color:var(--text-tertiary)}.freshness-stat p{margin:0;font-weight:var(--font-medium);font-size:13px;color:var(--text-primary)}.columns-tab{animation:fadeIn .3s ease-in-out}.table{width:100%;border-collapse:separate;border-spacing:0;background-color:var(--bg-card);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-lg)}.table th,.table td{padding:var(--space-4);text-align:left;border-bottom:1px solid var(--border-light)}.table th{background-color:var(--bg-surface);font-weight:var(--font-semibold);color:var(--text-primary);position:sticky;top:0;z-index:10}.table tr:hover{background-color:var(--bg-surface)}.table tr:last-child td{border-bottom:none}.distribution-tab{animation:fadeIn .3s ease-in-out}.preview-tab{padding:0;margin-top:-1rem;height:calc(100vh - 230px);min-height:400px;animation:fadeIn .3s ease-in-out}.related-tab{padding:0;margin-top:-1rem;min-height:400px;animation:fadeIn .3s ease-in-out}.chat-tab{padding:0;margin-top:-1rem;height:calc(100vh - 230px);min-height:500px;animation:fadeIn .3s ease-in-out}.tab-icon{font-size:var(--text-lg);margin-right:var(--space-1)}.distribution-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);overflow:auto}.distribution-cards .card{height:500px;display:flex;flex-direction:column;overflow:hidden}.distribution-card-header{padding:var(--space-3);background-color:var(--color-gray-50);border-bottom:2px solid var(--border-color);flex-shrink:0}.distribution-card-header h3{margin:0;font-size:var(--text-base);font-weight:var(--font-bold);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.distribution-card-content{flex:1;overflow:auto;padding:var(--space-3)}.column-distribution{padding:var(--space-3)}.column-stats-table{background-color:var(--bg-surface);padding:var(--space-2);border-radius:var(--radius-sm);margin-bottom:var(--space-3)}.column-stat-row{display:flex;padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--border-light);align-items:center;background-color:var(--bg-card);margin-bottom:var(--space-1);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);transition:transform var(--transition-base)}.column-stat-row:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);background-color:var(--bg-surface)}.column-stat-label{font-weight:var(--font-medium);color:var(--text-tertiary);width:100px;flex-shrink:0;font-size:var(--text-xs)}.column-stat-value{font-weight:var(--font-semibold);color:var(--text-primary);font-size:var(--text-xs)}.histogram-container{background-color:var(--bg-surface);border-radius:var(--radius-sm);padding:var(--space-2);color:var(--text-secondary);box-shadow:inset 0 1px 2px #0000000d;margin-top:var(--space-2)}.histogram-title{font-weight:var(--font-semibold);font-size:var(--text-xs);margin-bottom:var(--space-2);text-align:center}.pseudo-histogram{height:128px;padding:var(--space-2);background-color:var(--bg-card);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.numeric-distribution{height:100%;display:flex;flex-direction:column}.value-labels{display:flex;justify-content:space-between;margin-bottom:var(--space-1);color:var(--text-primary);font-size:var(--text-xs);font-weight:var(--font-medium)}.min-label{text-align:left}.max-label{text-align:right}.bars{display:flex;align-items:flex-end;justify-content:space-between;height:85%;padding:0 var(--space-1)}.bar{width:8%;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:height .3s ease}.categorical-distribution{height:100%;display:flex;flex-direction:column;justify-content:space-evenly;padding:var(--space-2) 0}.category-row{display:flex;align-items:center;margin-bottom:var(--space-2);height:24px}.category-label{width:80px;font-size:11px;color:var(--text-primary);text-align:left;padding-right:var(--space-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:var(--font-medium)}.category-bar-container{flex:1;height:14px;background-color:var(--color-gray-200);border-radius:7px;overflow:hidden;margin:0 var(--space-2)}.category-bar{height:100%;border-radius:7px}.category-percentage{width:40px;padding-left:var(--space-1);font-size:11px;font-weight:var(--font-medium);color:var(--text-primary);text-align:right}.histogram-footer{margin-top:var(--space-2);text-align:center;font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic}.error-message{text-align:center;padding:var(--space-10);color:var(--color-error);background-color:var(--color-error-light);border-radius:var(--radius-md);margin:var(--space-6) 0}.empty-state{text-align:center;padding:60px 0;color:var(--text-tertiary);background-color:var(--bg-surface);border-radius:var(--radius-md);margin:var(--space-6) 0}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:var(--bg-card);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:400px;max-width:500px}.modal-content h2{margin-top:0;margin-bottom:var(--space-5);color:var(--text-primary);font-size:var(--text-xl)}.modal-content .form-group{margin-bottom:var(--space-4)}.modal-content .form-group label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-medium);color:var(--text-primary);font-size:var(--text-sm)}.modal-content .form-group input{width:100%;padding:var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--text-sm);transition:border-color var(--transition-base)}.modal-content .form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6)}.col-completeness-compact{width:150px;text-align:center}.completeness-bar-container-compact{display:flex;align-items:center;gap:var(--space-2);width:100%}.completeness-bar-track-compact{flex:1;height:10px;background-color:var(--color-gray-200);border-radius:5px;overflow:hidden}.completeness-value-compact{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--text-primary);min-width:40px;text-align:right}.col-tags,.col-policies{text-align:center;padding:var(--space-2)}.sensitivity-badge{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.5px}.sensitivity-public{background-color:#3b82f6;color:#fff}.sensitivity-internal{background-color:#10b981;color:#fff}.sensitivity-confidential{background-color:#f59e0b;color:#fff}.sensitivity-restricted{background-color:#ef4444;color:#fff}.no-tag,.no-policy{color:var(--text-tertiary);font-style:italic}.policies-count{color:var(--text-secondary);font-size:var(--text-sm)}.sensitivity-cell{display:flex;align-items:center;gap:var(--space-2)}.classification-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:var(--space-2)}.classification-option{padding:var(--space-3);border:2px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.classification-option:hover{border-color:var(--color-primary);background-color:var(--color-gray-50)}.classification-option.selected{border-color:var(--color-primary);background-color:var(--color-primary-light, rgba(59, 130, 246, .1))}.classification-option .sensitivity-badge{display:block;margin-bottom:var(--space-2);width:fit-content}.option-description{font-size:var(--text-xs);color:var(--text-secondary);margin:0}.btn-danger{background-color:#ef4444;color:#fff;border:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-medium);transition:background-color var(--transition-base)}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.file-governance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-5)}.governance-field label{display:block;font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-2);font-size:var(--text-sm)}.governance-select{width:100%;padding:var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--text-sm);background-color:#fff;cursor:pointer;transition:border-color var(--transition-base)}.governance-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.tags-selector,.policies-selector{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tag-chip,.policy-chip{padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);border:2px solid var(--border-medium);background-color:#fff;cursor:pointer;transition:all var(--transition-base);text-transform:uppercase;letter-spacing:.05em}.tag-chip:hover,.policy-chip:hover{border-color:var(--color-primary);background-color:var(--color-gray-50)}.tag-chip.selected{border-color:transparent}.policy-chip.selected{border-color:var(--color-primary);background-color:var(--color-primary);color:#fff}.no-items{color:var(--text-tertiary);font-style:italic;font-size:var(--text-sm)}.header-validation-container{display:flex;flex-direction:column;gap:var(--space-4)}.header-validation-status{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background-color:var(--bg-surface);border-radius:var(--radius-md)}.header-validation-status .status-icon{width:48px;height:48px;flex-shrink:0}.header-validation-status .status-icon.healthy{color:#10b981}.header-validation-status .status-icon.warning{color:#f59e0b}.header-validation-status .status-icon.critical{color:#ef4444}.header-validation-status .status-text{flex:1}.header-validation-status .status-text h4{margin:0 0 var(--space-1) 0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary)}.header-validation-status .status-text p{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}.header-validation-status .health-score{display:flex;flex-direction:column;align-items:center;padding:var(--space-3) var(--space-4);background-color:#fff;border-radius:var(--radius-md);border:2px solid var(--border-light)}.header-validation-status .health-score .score{font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-1)}.header-validation-status .health-score .score.healthy{color:#10b981}.header-validation-status .health-score .score.warning{color:#f59e0b}.header-validation-status .health-score .score.critical{color:#ef4444}.header-validation-status .health-score .score-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.header-validation-issues{display:flex;flex-direction:column;gap:var(--space-3)}.header-validation-issues h5{margin:0 0 var(--space-2) 0;font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary)}.issue-item{padding:var(--space-4);border-radius:var(--radius-md);border-left:4px solid}.issue-item.high{background-color:#fee2e2;border-left-color:#ef4444}.issue-item.medium{background-color:#fef3c7;border-left-color:#f59e0b}.issue-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.severity-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.05em}.severity-badge.high{background-color:#ef4444;color:#fff}.severity-badge.medium{background-color:#f59e0b;color:#fff}.issue-type{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.issue-message{font-size:var(--text-sm);color:var(--text-primary);line-height:1.6;margin-bottom:var(--space-2)}.issue-recommendation{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6;padding:var(--space-2);background-color:#fff9;border-radius:var(--radius-sm)}.issue-recommendation strong{color:var(--text-primary)}.processing-error-banner{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background-color:#fef2f2;border:1px solid #fecaca;border-left:4px solid #ef4444;border-radius:6px;padding:16px;margin:16px 0;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.error-banner-content{display:flex;align-items:flex-start;gap:12px}.error-icon{font-size:20px;flex-shrink:0;color:#ef4444}.error-text-content h3{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;margin:0 0 6px;color:#991b1b;font-size:12px;font-weight:600;letter-spacing:-.01em}.error-text-content p{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;margin:0;color:#7f1d1d;font-size:11px;line-height:1.6}.history-tab{display:flex;flex-direction:column;gap:var(--space-4)}.history-summary{margin-bottom:var(--space-4)}.summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.summary-stats .stat{text-align:center;padding:var(--space-3);background:var(--color-gray-50);border-radius:var(--radius-md)}.summary-stats .stat-label{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-2)}.summary-stats .stat-value{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary)}.history-table-container{overflow-x:auto;margin-top:var(--space-4)}.history-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.history-table thead{background-color:var(--color-gray-100);border-bottom:2px solid var(--border-color)}.history-table th{padding:var(--space-3);text-align:left;font-weight:var(--font-semibold);color:var(--text-secondary);white-space:nowrap}.history-table td{padding:var(--space-3);border-bottom:1px solid var(--border-light)}.history-table tbody tr:hover{background-color:var(--color-gray-50)}.badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium);text-transform:uppercase}.badge-source{background-color:#e3f2fd;color:#1976d2}.badge-target{background-color:#e8f5e9;color:#388e3c}.badge-adhoc{background-color:#fff3e0;color:#f57c00}.quality-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-semibold)}.quality-badge.quality-high{background-color:#c8e6c9;color:#2e7d32}.quality-badge.quality-medium{background-color:#fff9c4;color:#f57f17}.quality-badge.quality-low{background-color:#ffcdd2;color:#c62828}.empty-state-hint{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--space-2)}.anomaly-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.anomaly-badge.anomaly-warning{background-color:#fef3c7;color:#92400e;border:1px solid #fbbf24}.pii-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background-color:#fee2e2;color:#991b1b;border:1px solid #ef4444}.no-pii-indicator{color:var(--text-muted, #9ca3af);font-size:var(--text-sm)}.card-with-anomaly{border-left:3px solid #fbbf24!important}.row-with-anomaly{background-color:#fffbeb!important}.pattern-section{margin-bottom:var(--space-4);padding:var(--space-3);background-color:#f9fafb;border-radius:var(--radius-sm);border-left:3px solid #3b82f6}.pattern-header{display:flex;align-items:center;margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary)}.pattern-list{display:flex;flex-direction:column;gap:var(--space-2)}.pattern-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2);background-color:#fff;border-radius:var(--radius-sm);border:1px solid var(--border-light)}.pattern-code{background-color:#f3f4f6;padding:2px 6px;border-radius:3px;font-family:Monaco,Courier New,monospace;font-size:12px;color:#1f2937}.pattern-count{font-size:var(--text-xs);color:var(--text-secondary)}.numeric-summary{padding:var(--space-3);background-color:#f9fafb;border-radius:var(--radius-sm)}.min-max-display{display:flex;gap:var(--space-4);justify-content:space-around}.min-max-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.min-max-item .label{font-size:var(--text-xs);color:var(--text-secondary);font-weight:var(--font-semibold);text-transform:uppercase}.min-max-item .value{font-size:var(--text-base);color:var(--text-primary);font-weight:var(--font-medium)}.empty-distribution{padding:var(--space-4);text-align:center;color:var(--text-secondary);font-style:italic}.null-values-section{margin-bottom:var(--space-4);padding:var(--space-3);background-color:#f9fafb;border-radius:var(--radius-sm);border-left:3px solid #94a3b8}.null-values-section.null-warning{background-color:#fef3c7;border-left-color:#f59e0b}.null-values-section.null-info{background-color:#dbeafe;border-left-color:#3b82f6}.null-header{display:flex;align-items:center;margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary)}.null-metrics{display:flex;gap:var(--space-4)}.null-metric{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background-color:#fff;border-radius:var(--radius-sm);border:1px solid var(--border-light)}.null-metrics-vertical{display:flex;gap:var(--space-4)}.null-metric-vertical{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);background-color:#fff;border-radius:var(--radius-sm);border:1px solid var(--border-light)}.null-label{font-size:var(--text-xs);color:var(--text-secondary);font-weight:var(--font-bold);text-transform:capitalize}.null-value{font-size:var(--text-base);color:var(--text-primary);font-weight:var(--font-medium)}.null-value.has-nulls{color:#dc2626;font-weight:var(--font-bold)}.quality-rules-tab{display:flex;flex-direction:column;gap:var(--space-4)}.quality-summary{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-4)}.quality-summary .summary-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);padding:var(--space-4)}.quality-summary .stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background-color:var(--color-gray-50)}.quality-summary .stat.success{background-color:#f0fdf4;color:#15803d}.quality-summary .stat.error{background-color:#fef2f2;color:#dc2626}.quality-summary .stat-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium);text-align:center}.quality-summary .stat-value{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text-primary)}.severity-breakdown{display:flex;flex-direction:column;gap:var(--space-3)}.severity-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background-color:var(--color-gray-50)}.severity-item.critical{background-color:#fef2f2;border-left:4px solid #dc2626;color:#dc2626}.severity-item.error{background-color:#fef3c7;border-left:4px solid #f59e0b;color:#f59e0b}.severity-item.warning{background-color:#fefce8;border-left:4px solid #eab308;color:#eab308}.severity-label{flex:1;font-weight:var(--font-medium);font-size:var(--text-sm)}.severity-count{font-size:var(--text-xl);font-weight:var(--font-bold)}.quality-filters{display:flex;align-items:flex-end;gap:var(--space-3);padding:var(--space-4);flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:var(--space-1);min-width:180px}.filter-group label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.filter-select{padding:var(--space-2);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--text-sm);background-color:#fff;cursor:pointer}.filter-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.filter-results{display:flex;align-items:center;padding:var(--space-2) var(--space-3);background-color:var(--color-gray-50);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);margin-left:auto}.violations-table{width:100%;border-collapse:collapse}.violations-table thead{background-color:var(--color-gray-50)}.violations-table th{padding:var(--space-3);text-align:left;font-weight:var(--font-semibold);font-size:var(--text-sm);color:var(--text-secondary);border-bottom:2px solid var(--border-light)}.violations-table td{padding:var(--space-3);border-bottom:1px solid var(--border-light);font-size:var(--text-sm);vertical-align:top}.violations-table tbody tr:hover{background-color:var(--color-gray-50)}.rule-info{display:flex;flex-direction:column;gap:var(--space-1)}.rule-description{font-size:var(--text-xs);color:var(--text-secondary);font-style:italic}.expected-value,.actual-value{font-family:Courier New,monospace;font-size:var(--text-xs);padding:var(--space-1) var(--space-2);background-color:var(--color-gray-50);border-radius:var(--radius-sm);display:inline-block}.severity-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em}.severity-badge.severity-critical{background-color:#fef2f2;color:#dc2626;border:1px solid #fecaca}.severity-badge.severity-error{background-color:#fef3c7;color:#f59e0b;border:1px solid #fde68a}.severity-badge.severity-warning{background-color:#fefce8;color:#eab308;border:1px solid #fef08a}.status-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium)}.status-badge.status-success{background-color:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.badge.badge-secondary{background-color:var(--color-gray-100);color:var(--text-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium);text-transform:uppercase}.quality-checks-container{padding:24px;max-width:1600px;margin:0 auto}.quality-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;background:linear-gradient(to right,#f7f9fc,#eef2f7);padding:24px;border-radius:12px;box-shadow:0 4px 12px #0000000d}.quality-title h1{margin:0 0 8px;font-size:1.8rem;font-weight:600;color:#2c3e50}.file-details{display:flex;align-items:center;color:#7f8c8d;font-size:14px}.file-name{font-weight:500;margin-right:12px;color:#34495e}.file-date{color:#95a5a6}.quality-actions{display:flex;gap:12px}.quality-summary{display:grid;grid-template-columns:1fr 3fr;gap:24px;margin-bottom:28px}.quality-score-card{padding:24px;box-shadow:0 4px 12px #0000000d;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);transition:transform .2s ease}.quality-score-card:hover{transform:translateY(-5px);box-shadow:0 8px 16px #00000014}.quality-score{text-align:center;width:100%}.score-circle{width:180px;height:180px;border-radius:50%;background:conic-gradient(#2ecc71,#2ecc71 calc(var(--score, 0) * 1%),#ecf0f1 calc(var(--score, 0) * 1%),#ecf0f1);margin:0 auto 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;box-shadow:0 4px 16px #0000001a}.score-circle:before{content:"";position:absolute;width:80%;height:80%;border-radius:50%;background-color:#fff}.score-value{position:relative;z-index:2;font-size:48px;font-weight:700;color:#2c3e50}.score-label{position:relative;z-index:2;font-size:14px;color:#7f8c8d;margin-top:4px}.score-timestamp{margin-top:16px;font-size:14px;color:#95a5a6}.quality-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.metric-card{padding:20px;border-radius:12px;box-shadow:0 4px 12px #0000000d;transition:transform .2s ease;background-color:#fff}.metric-card:hover{transform:translateY(-5px);box-shadow:0 8px 16px #00000014}.metric-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.metric-header h3{margin:0;font-size:18px;font-weight:600;color:#2c3e50;display:flex;align-items:center;gap:8px}.info-icon{color:#95a5a6;font-size:16px;cursor:help;transition:color .2s ease}.info-icon:hover{color:#3498db}.metric-score{font-weight:600;padding:4px 10px;border-radius:12px;font-size:16px}.good{background-color:#2ecc7133;color:#27ae60}.medium{background-color:#f1c40f33;color:#f39c12}.poor{background-color:#e74c3c33;color:#c0392b}.metric-card p{margin:0;color:#7f8c8d;font-size:14px}.quality-details{margin-top:28px}.check-status{display:inline-flex;align-items:center;padding:6px 12px;border-radius:20px;font-weight:500;font-size:14px}.check-status svg{margin-right:6px}.check-status.success{background-color:#2ecc7133;color:#27ae60}.check-status.warning{background-color:#f1c40f33;color:#f39c12}.check-status.error{background-color:#e74c3c33;color:#c0392b}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;text-align:center}.empty-icon{font-size:48px;color:#bdc3c7;margin-bottom:16px}.empty-message{color:#95a5a6;font-style:italic;text-align:center;padding:20px}.error-message{text-align:center;padding:40px;color:#e74c3c;background-color:#e74c3c1a;border-radius:8px;margin:24px 0}.quality-report-container{padding:var(--space-5)}.report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.back-button,.export-button{display:flex;align-items:center;background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:var(--transition-base)}.back-button:hover,.export-button:hover{background-color:var(--color-primary-50)}.back-button svg,.export-button svg{margin-right:var(--space-2)}.file-info-card{margin-bottom:var(--space-5)}.file-info-header{display:flex;align-items:center}.file-icon-container{width:48px;height:48px;border-radius:var(--radius-md);background-color:var(--color-primary-50);display:flex;align-items:center;justify-content:center;margin-right:var(--space-4)}.file-icon{font-size:24px;color:var(--color-primary)}.file-details h2{margin:0 0 var(--space-2) 0;font-size:18px}.file-meta{display:flex;flex-wrap:wrap;gap:var(--space-4);color:var(--text-secondary);font-size:var(--text-sm)}.generate-report-section{margin-top:var(--space-5);text-align:center;padding:var(--space-5);border-top:1px solid var(--border-light)}.generate-btn{padding:var(--space-3) var(--space-5);font-size:16px;margin-top:var(--space-3)}.error-message{color:var(--color-error);margin-top:var(--space-3)}.report-content{display:flex;flex-direction:column;gap:var(--space-5)}.report-section{margin-bottom:var(--space-5)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.timestamp{font-size:var(--text-sm);color:var(--text-secondary)}.overall-score-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);margin-bottom:var(--space-5)}.overall-score{display:flex;align-items:center;gap:var(--space-5)}.score-circle{width:120px;height:120px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--color-white);font-size:36px;font-weight:700;box-shadow:var(--shadow-md)}.score-label{text-align:center}.score-label h3{margin:0 0 var(--space-1) 0;font-size:18px}.score-label p{margin:0;font-size:16px;font-weight:500}.report-metrics{display:flex;justify-content:space-around;width:100%;text-align:center;border-top:1px solid var(--border-light);padding-top:var(--space-5)}.metric{display:flex;flex-direction:column;gap:var(--space-1)}.metric-label{font-size:var(--text-sm);color:var(--text-secondary)}.metric-value{font-size:18px;font-weight:var(--font-semibold)}.status{display:flex;align-items:center;justify-content:center;gap:var(--space-1)}.status-icon.success{color:var(--color-success)}.status-icon.warning{color:var(--color-warning)}.component-scores{margin-top:var(--space-8)}.component-scores h3{margin-bottom:var(--space-5);text-align:center}.component-scores-container{display:flex;flex-wrap:wrap;justify-content:space-around;gap:var(--space-5)}.component-score{flex:1;min-width:180px;max-width:250px;text-align:center}.component-weight{font-size:var(--text-xs);color:var(--text-secondary);margin-top:var(--space-1)}.score-gauge{padding:var(--space-3)}.gauge-container{height:10px;background-color:var(--border-light);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:var(--space-3)}.gauge-value{height:100%;border-radius:var(--radius-sm);transition:width .5s ease}.gauge-details{display:flex;justify-content:space-between;align-items:center}.gauge-score{font-size:16px;font-weight:var(--font-semibold)}.gauge-label{font-size:var(--text-sm)}.gauge-rating{font-size:var(--text-sm);font-weight:var(--font-medium)}.report-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:var(--space-5)}.chart-section{min-height:350px}.chart-container{height:300px;display:flex;align-items:center;justify-content:center}.no-data-message{color:var(--text-secondary);font-style:italic}.anomalies{margin-top:var(--space-5)}.anomaly-icon{margin-right:var(--space-2);color:var(--color-warning)}.anomalies-list{display:flex;flex-direction:column;gap:var(--space-4)}.anomaly-item{background-color:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-sm);padding:var(--space-4)}.anomaly-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.anomaly-severity{font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-lg);font-weight:var(--font-semibold);text-transform:uppercase}.anomaly-severity.high{background-color:var(--color-error);color:var(--color-white)}.anomaly-severity.medium{background-color:var(--color-warning);color:var(--text-primary)}.anomaly-severity.low{background-color:var(--color-gray-500);color:var(--color-white)}.anomaly-type{font-weight:var(--font-semibold);text-transform:capitalize}.anomaly-column{font-family:var(--font-mono);background-color:#6c757d1a;padding:2px var(--space-2);border-radius:var(--radius-sm)}.anomaly-description{margin-bottom:var(--space-3)}.anomaly-details{background-color:#00000008;padding:var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm)}.anomaly-detail{display:flex;gap:var(--space-3);margin-bottom:var(--space-1)}.detail-label{font-weight:var(--font-semibold);min-width:100px}.recommendations{margin-top:var(--space-5)}.recommendations-list{list-style-type:none;padding:0;margin:0}.recommendations-list li{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-light)}.recommendations-list li:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.recommendation-icon{color:var(--color-success);margin-top:3px;flex-shrink:0}.rules{margin-top:var(--space-5)}.rules-list{display:flex;flex-direction:column;gap:var(--space-4)}.rule-item{padding:var(--space-4);border-radius:var(--radius-sm)}.rule-item.passed{background-color:var(--color-success-light);border:1px solid var(--color-success)}.rule-item.failed{background-color:var(--color-warning-light);border:1px solid var(--color-warning)}.rule-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.rule-status{flex-shrink:0}.rule-type{font-weight:var(--font-semibold);text-transform:capitalize}.rule-column{font-family:var(--font-mono);background-color:#6c757d1a;padding:2px var(--space-2);border-radius:var(--radius-sm)}.rule-message{margin-bottom:var(--space-3)}.rule-details{background-color:#ffffff80;padding:var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);display:flex;flex-direction:column;gap:var(--space-1)}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10);text-align:center}.error-icon{font-size:48px;color:var(--color-error);margin-bottom:var(--space-5)}@media (max-width: 768px){.report-charts{grid-template-columns:1fr}.overall-score-container{flex-direction:column}.report-metrics{flex-direction:column;gap:var(--space-4)}.component-scores-container{flex-direction:column;align-items:center}}.download-dropdown{position:relative;display:inline-block}.download-button{padding:.5rem 1rem;font-size:.8rem;border:1px solid #0066cc;background:#06c;color:#fff;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s}.download-button:hover{background:#0052a3;border-color:#0052a3}.download-menu{position:absolute;top:100%;right:0;margin-top:.25rem;background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 2px 8px #00000026;min-width:180px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s;z-index:1000}.download-dropdown:hover .download-menu{opacity:1;visibility:visible;transform:translateY(0)}.download-menu button{display:block;width:100%;padding:.75rem 1rem;text-align:left;background:none;border:none;cursor:pointer;font-size:.85rem;color:#333;transition:background .2s}.download-menu button:hover{background:#f5f5f5}.download-menu button:first-child{border-radius:4px 4px 0 0}.download-menu button:last-child{border-radius:0 0 4px 4px}.btn-secondary{padding:.5rem 1rem;font-size:.8rem;border:1px solid #ddd;background:#fff;color:#333;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s}.btn-secondary:hover{background:#f5f5f5;border-color:#999}.btn-secondary.active{background:#e6f2ff;border-color:#06c;color:#06c}.btn-sm{padding:.4rem .8rem;font-size:.75rem;border:1px solid #ddd;background:#fff;color:#333;border-radius:4px;cursor:pointer;transition:all .2s}.btn-sm:hover{background:#f5f5f5}.error-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin-bottom:1rem;font-size:.8rem;color:#856404}.error-close{margin-left:auto;background:none;border:none;cursor:pointer;color:#856404;padding:.25rem}.statistics-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:1rem}.stat-card h3{font-size:.8rem;font-weight:600;margin:0 0 .75rem;color:#333}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:.75rem}.stat-item{text-align:center;padding:.5rem;background:#f8f9fa;border-radius:4px}.stat-item.critical{background:#ffe6e6;color:#c62828}.stat-item.error{background:#ffebe6;color:#d84315}.stat-item.warning{background:#fff8e6;color:#f57c00}.stat-label{display:block;font-size:.7rem;color:#666;margin-bottom:.25rem}.stat-value{display:block;font-size:1.2rem;font-weight:600}.stat-breakdown{display:flex;gap:1rem;font-size:.75rem;color:#666;padding-top:.75rem;border-top:1px solid #e0e0e0}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-size:.8rem;font-weight:500;color:#333}.filter-group select,.filter-group input{padding:.5rem;font-size:.8rem;border:1px solid #ddd;border-radius:4px;background:#fff}.filter-search{grid-column:span 2}.clear-filters-button{padding:.5rem 1rem;font-size:.8rem;border:1px solid #dc2626;background:#fff;color:#dc2626;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s;height:fit-content}.clear-filters-button:hover{background:#dc2626;color:#fff}.tabs{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:2px solid #e0e0e0}.tab{padding:.75rem 1.25rem;font-size:.8rem;border:none;background:none;color:#666;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s;display:flex;align-items:center;gap:.5rem}.tab-badge{background:#f44;color:#fff;padding:.15rem .5rem;border-radius:10px;font-size:.7rem;font-weight:600}.table-container{background:#fff;border:1px solid #e0e0e0;border-radius:6px;overflow:hidden;margin-bottom:1rem}.quality-violations-bulk-actions-bar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#e6f2ff;border:1px solid #b3d9ff;border-radius:6px;margin-bottom:1rem}.quality-violations-selected-count{font-size:.85rem;font-weight:500;color:#06c}.quality-violations-bulk-delete-btn{padding:.5rem 1rem;font-size:.8rem;border:1px solid #dc2626;background:#fff;color:#dc2626;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s}.quality-violations-bulk-delete-btn:hover:not(:disabled){background:#dc2626;color:#fff}.quality-violations-bulk-delete-btn:disabled{opacity:.5;cursor:not-allowed}.error-table{width:100%;border-collapse:collapse;font-size:.8rem}.error-table th{background:#f8f9fa;padding:.75rem .5rem;text-align:left;font-weight:600;font-size:.75rem;color:#333;border-bottom:2px solid #e0e0e0}.error-table td{padding:.75rem .5rem;border-bottom:1px solid #f0f0f0;vertical-align:middle}.error-table tr:hover{background:#f8f9fa}.error-table tr.selected{background:#e6f2ff}.severity-icon{font-size:1.1rem}.severity-icon.critical{color:#c62828}.severity-icon.error{color:#d84315}.severity-icon.warning{color:#f57c00}.badge{padding:.25rem .5rem;background:#e0e0e0;border-radius:3px;font-size:.7rem;font-weight:500;text-transform:capitalize}.truncate{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error-message{max-width:300px;font-size:.75rem}.status-select{padding:.4rem;font-size:.75rem;border:1px solid #ddd;border-radius:3px;background:#fff;cursor:pointer}.pagination{display:flex;align-items:center;gap:.5rem;justify-content:center;padding:1rem}.pagination-btn{padding:.5rem .75rem;font-size:.75rem;border:1px solid #ddd;background:#fff;color:#333;border-radius:4px;cursor:pointer;transition:all .2s}.pagination-btn:hover:not(:disabled){background:#f5f5f5;border-color:#999}.pagination-btn.active{background:#06c;color:#fff;border-color:#06c}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-ellipsis{padding:0 .25rem;color:#999}.pagination-info{font-size:.75rem;color:#666;margin-left:1rem}.loading{text-align:center;padding:3rem;font-size:.9rem;color:#666}.no-data{text-align:center;padding:3rem;font-size:.9rem;color:#999}.tabs-container{width:100%;margin-bottom:0}.tabs{display:flex;gap:.5rem;border-bottom:2px solid #e0e0e0}.tab{padding:.75rem 1.5rem;font-size:.9rem;border:none;background:transparent;color:#666;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s;display:flex;align-items:center;gap:.5rem}.tab:hover{color:#06c}.tab.active{color:#06c;border-bottom-color:#06c;font-weight:500}.tab-count{background:#06c;color:#fff;border-radius:12px;padding:.125rem .5rem;font-size:.75rem;font-weight:500}.violations-table{width:100%;border-collapse:collapse;font-size:.8rem}.violations-table thead{background:#f8f9fa;border-bottom:2px solid #e0e0e0}.violations-table th{text-align:left;padding:.75rem 1rem;font-weight:600;color:#333;white-space:nowrap}.violations-table td{padding:.75rem 1rem;border-bottom:1px solid #f0f0f0;vertical-align:top}.violation-row{transition:background .2s}.violation-row:hover{background:#f8f9fa}.expand-button{background:none;border:none;cursor:pointer;color:#666;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.expand-button:hover{background:#e0e0e0;color:#333}.filename-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.violation-details-compact{display:flex;flex-direction:column;gap:.25rem}.detail-item{display:flex;gap:.5rem;font-size:.75rem}.detail-label{font-weight:600;color:#666;min-width:60px}.expanded-row{background:#f8f9fa}.expanded-row td{padding:1rem;border-bottom:2px solid #e0e0e0}.quality-violations-record-snapshot{margin-top:.5rem;padding:1rem;background:#fff;border:1px solid #e0e0e0;border-radius:4px}.quality-violations-record-header{font-weight:600;font-size:.9rem;color:#333;margin-bottom:.75rem}.quality-violations-record-content{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.5rem}.quality-violations-record-field{display:flex;gap:.5rem;font-size:.75rem;padding:.5rem;background:#f8f9fa;border-radius:4px}.quality-violations-record-field-key{font-weight:600;color:#666;min-width:100px}.quality-violations-record-field-value{color:#333;word-break:break-word}.quality-violations-mapping-info{margin-top:.75rem;padding:.75rem;background:#e6f2ff;border-left:3px solid #0066cc;border-radius:4px;font-size:.8rem}.quality-violations-status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500}.quality-violations-status-new{background:#e0e7ff;color:#3730a3}.quality-violations-status-reviewed{background:#dbeafe;color:#1e40af}.quality-violations-status-acknowledged{background:#fef3c7;color:#92400e}.quality-violations-status-resolved{background:#d1fae5;color:#065f46}.loading-message,.error-message,.empty-state{text-align:center;padding:3rem;font-size:.9rem;color:#666}.error-message{color:#dc2626}.quality-violations-project-group{margin-bottom:1rem;border:1px solid #e0e0e0;border-radius:6px;overflow:hidden;background:#fafafa}.quality-violations-project-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#f8f9fa;cursor:pointer;transition:background .2s;border-bottom:1px solid #e0e0e0}.quality-violations-project-header:hover{background:#e9ecef}.project-expand-button{background:none;border:none;cursor:pointer;color:#666;padding:0;display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:color .2s}.project-expand-button:hover{color:#333}h3.project-name{margin:0;font-size:.65rem!important;font-weight:600;color:#333;flex:1}.project-count{font-size:.85rem;color:#666;background:#e0e7ff;padding:.25rem .75rem;border-radius:12px;font-weight:500}.violations-details-table{font-size:.7rem;margin:0;border:none}.violations-details-table th{font-size:.7rem;padding:.6rem .75rem;background:#fff;border-bottom:1px solid #e0e0e0}.violations-details-table td{padding:.6rem .75rem;font-size:.7rem}.violations-details-table .filename-cell{max-width:150px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;background:#fff;border:1px solid #e0e0e0;border-top:none;border-radius:0 0 6px 6px}.pagination-controls{display:flex;align-items:center;gap:1rem}.pagination-button{padding:.5rem 1rem;font-size:.8rem;border:1px solid #ddd;background:#fff;color:#333;border-radius:4px;cursor:pointer;transition:all .2s}.pagination-button:hover:not(:disabled){background:#f5f5f5;border-color:#999}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.pagination-size-selector{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#666}.pagination-size-select{padding:.4rem .6rem;font-size:.8rem;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer}.delete-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.delete-modal-content{background:#fff;border-radius:6px;max-width:560px;width:90%;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:modalSlideIn .2s ease-out;overflow:hidden;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.delete-modal-header{background:#dd6b20;color:#fff;padding:14px 20px;display:flex;justify-content:space-between;align-items:center}.delete-modal-title-section{display:flex;align-items:center;gap:10px}.delete-modal-title-section h2{font-size:13px;font-weight:600;margin:0;color:#fff;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.delete-modal-title-section .warning-icon{font-size:18px}.delete-modal-close-btn{background:transparent;border:none;color:#fff;cursor:pointer;padding:6px;border-radius:4px;transition:background-color .2s;display:flex;align-items:center;justify-content:center}.delete-modal-close-btn:hover{background-color:#ffffff26}.delete-modal-close-btn svg{font-size:16px}.delete-modal-body{padding:16px 20px;max-height:70vh;overflow-y:auto}.agreement-info-section{background:var(--gps-bg-page, #f7fafc);border-radius:4px;padding:12px 14px;margin-bottom:14px}.agreement-info-section h3{font-size:11px;font-weight:600;color:var(--gps-text-dark, #333333);margin:0 0 10px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.info-row{display:flex;margin-bottom:6px}.info-row:last-child{margin-bottom:0}.info-label{font-weight:500;color:var(--gps-text-muted, #666666);min-width:90px;font-size:10px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.info-value{color:var(--gps-text-dark, #333333);font-weight:500;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.dependencies-warning{background:#fffaf0;border-left:3px solid #dd6b20;padding:10px 12px;border-radius:4px;margin-bottom:14px;display:flex;align-items:flex-start;gap:10px}.warning-icon-large{color:#dd6b20;font-size:16px;flex-shrink:0;margin-top:1px}.warning-message{color:#c05621;margin:0;line-height:1.5;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.dependencies-section{margin-bottom:14px}.dependencies-section h3{font-size:11px;font-weight:600;color:var(--gps-text-dark, #333333);margin:0 0 10px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.dependencies-list{display:flex;flex-direction:column;gap:8px}.dependency-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--gps-bg-page, #f7fafc);border-radius:4px;border:1px solid var(--gps-border-light, #e2e8f0)}.dep-icon{color:var(--gps-text-muted, #666666);font-size:14px;flex-shrink:0}.dep-label{flex:1;color:var(--gps-text-dark, #333333);font-weight:500;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.dep-count{background:#dd6b20;color:#fff;padding:2px 8px;border-radius:10px;font-weight:600;font-size:10px;min-width:24px;text-align:center;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.alternative-action-section{background:#ebf8ff;border-left:3px solid #3182ce;padding:10px 12px;border-radius:4px}.alternative-message{color:#2b6cb0;margin:0;line-height:1.5;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.alternative-message strong{font-weight:600}.delete-confirmation-section{background:#fff5f5;border-left:3px solid var(--gps-danger-red, #e53e3e);padding:10px 12px;border-radius:4px}.delete-message{color:#c53030;margin:0;line-height:1.5;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.delete-modal-footer{padding:14px 20px;border-top:1px solid var(--gps-border-light, #e2e8f0);display:flex;gap:10px;justify-content:flex-end}.delete-modal-footer button{padding:6px 14px;border-radius:4px;font-size:11px;font-weight:500;border:none;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.btn-cancel{background-color:var(--gps-bg-page, #f7fafc);color:var(--gps-text-dark, #333333);border:1px solid var(--gps-border-light, #e2e8f0)}.btn-cancel:hover{background-color:#edf2f7;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.btn-disable{background-color:#dd6b20;color:#fff}.btn-disable:hover{background-color:#c05621;transform:translateY(-1px);box-shadow:0 2px 4px #dd6b204d}.btn-delete-confirm{background-color:var(--gps-danger-red, #e53e3e);color:#fff}.btn-delete-confirm:hover{background-color:#c53030;transform:translateY(-1px);box-shadow:0 2px 4px #e53e3e4d}.delete-error-section{display:flex;align-items:flex-start;gap:10px;background-color:#fff5f5;border-left:3px solid var(--gps-danger-red, #e53e3e);padding:10px 12px;border-radius:4px;margin-bottom:12px}.delete-error-section .error-icon{color:var(--gps-danger-red, #e53e3e);font-size:14px;flex-shrink:0;margin-top:1px}.delete-error-section .error-message{color:#c53030;font-size:11px;line-height:1.5;margin:0;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.dependency-item-detailed{background-color:#fffaf0;border-left:3px solid #dd6b20;padding:10px 12px;border-radius:4px;margin-bottom:8px}.dependency-header{display:flex;align-items:center;gap:6px;font-weight:600;color:#c05621;margin-bottom:6px;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.dependency-items-list{margin-top:8px;padding-left:16px}.dependency-item-name{font-size:10px;color:#c05621;padding:2px 0;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.dependency-item-name.more-items{font-style:italic;color:#dd6b20}.dependencies-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;color:var(--gps-text-muted, #666666);font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.dependencies-loading .spinner{animation:spin 1s linear infinite;font-size:20px}.btn-delete-confirm:disabled,.delete-modal-close-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 640px){.delete-modal-content{width:95%}.delete-modal-header{padding:12px 16px}.delete-modal-title-section h2{font-size:12px}.delete-modal-body{padding:14px 16px}.delete-modal-footer{flex-direction:column-reverse;padding:12px 16px}.delete-modal-footer button{width:100%;justify-content:center}}.connections-container{padding:0 12px 12px;font-family:Inter,sans-serif;font-size:12px;font-weight:500;background-color:#f5f5f5}.connections-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;margin-top:0}.connections-header h1{margin:0;font-family:Inter,sans-serif;font-size:14px;font-weight:700;color:#025043}.connections-tabs{display:flex;gap:8px;margin-bottom:12px;border-bottom:2px solid #e0e0e0}.tab-button{padding:8px 16px;background:transparent;border:none;cursor:pointer;font-family:Inter,sans-serif;font-size:12px;font-weight:500;color:#666;transition:all .3s ease;border-radius:8px}.tab-button:hover{color:var(--primary-color);background-color:#3498db0d}.tab-button.active{color:var(--primary-color);font-weight:600}.permission-notice-sm{background-color:#f8f9fa;border:1px dashed #ccc;border-radius:5px;padding:8px 12px;color:#721c24;font-size:12px;font-weight:500;text-align:center;display:inline-block}.connections-content{display:flex;flex-direction:column;gap:var(--space-5)}.connections-table-container{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.connections-table{width:100%;border-collapse:collapse}.connections-table thead{background:var(--bg-header);color:var(--text-on-primary)}.connections-table thead th{padding:8px 10px;text-align:left;font-family:Inter,sans-serif;font-size:12px;font-weight:500;border-bottom:2px solid var(--border-medium);line-height:1.3;text-transform:none}.connections-table tbody tr{border-bottom:1px solid var(--border-light);transition:background-color var(--transition-fast);min-height:36px}.connections-table tbody tr:hover{background-color:var(--slate-alpha-10)}.connections-table tbody tr:last-child{border-bottom:none}.connections-table td{padding:8px 10px;vertical-align:top;font-family:Inter,sans-serif;font-size:12px;font-weight:500;line-height:1.3}.connections-table .badge{font-family:Inter,sans-serif;font-size:12px;font-weight:500;padding:4px 10px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.connections-table .badge-info{background-color:#dbeafe;color:#1e40af}.connections-table .badge-warning{background-color:#fef3c7;color:#92400e}.col-id{width:100px;font-family:Inter,sans-serif;font-size:12px;font-weight:500}.col-name{min-width:180px}.col-type{width:140px}.col-details{min-width:200px}.col-last-used{width:120px}.col-actions{width:120px;text-align:center}.connection-row.aws{border-left:4px solid #FF9900}.connection-row.gcp{border-left:4px solid #4285F4}.connection-row.azure{border-left:4px solid #0078D4}.connection-row.snowflake{border-left:4px solid #29B5E8}.connection-row.databricks{border-left:4px solid #FF3621}.connection-row.sharepoint{border-left:4px solid #036C70}.connection-row.outlook{border-left:4px solid #0078D4}.connection-icon{font-size:24px;margin-right:15px;color:#6c757d}.connection-icon.aws{color:#f90}.connection-icon.gcp{color:#4285f4}.connection-icon.azure{color:#0078d4}.connection-icon.snowflake{color:#29b5e8}.connection-icon.databricks{color:#ff3621}.connection-icon.sharepoint{color:#036c70}.connection-icon.outlook{color:#0078d4}.shared-indicator{display:inline-flex;align-items:center;margin-right:10px;background-color:#e9f7fe;color:#0078d4;padding:2px 8px;border-radius:4px;font-size:12px}.shared-icon{margin-right:4px;font-size:14px}.test-btn{background-color:#f0f0f0;border:none;color:#333;padding:4px 8px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s ease}.test-btn:hover{background-color:#e0e0e0}.test-result{margin-top:var(--space-2);padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);display:flex;align-items:center;gap:var(--space-2)}.test-result.success{background-color:var(--color-success-light);color:var(--color-success-dark)}.test-result.error{background-color:var(--color-error-light);color:var(--color-error-dark)}.error-message{font-size:var(--text-xs)}.connection-name-wrapper{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--font-semibold);color:var(--text-primary)}.shared-badge{display:inline-flex;align-items:center;color:var(--color-info);font-family:Inter,sans-serif;font-size:12px;font-weight:500}.usage-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;background-color:#fef3c7;color:#92400e;font-family:Inter,sans-serif;font-size:11px;font-weight:500;border-radius:12px;border:1px solid #fbbf24}.usage-badge svg{font-size:12px}.source-app-badge{margin-top:2px;font-family:Inter,sans-serif;font-size:11px;font-weight:400;color:var(--text-tertiary);background:var(--color-gray-100);padding:2px 6px;border-radius:4px;display:inline-block}.connection-details-inline{font-family:Inter,sans-serif;font-size:12px;font-weight:500;color:var(--text-secondary);line-height:1.4}.connection-details-inline>div{margin-bottom:4px}.connection-details-inline strong{color:var(--text-primary);font-weight:500}.table-actions{display:flex;gap:var(--space-2);justify-content:center;align-items:center}.action-icon-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:18px;padding:var(--space-2);border-radius:var(--radius-md);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.action-icon-btn:hover{background-color:var(--slate-alpha-10)}.action-icon-btn.test-btn{color:var(--color-info)}.action-icon-btn.test-btn:hover,.action-icon-btn.edit-btn:hover{background-color:var(--color-info-light);color:var(--color-info-dark)}.action-icon-btn.delete-btn:hover{background-color:var(--color-error-light);color:var(--color-error-dark)}.action-icon-btn:disabled{opacity:.5;cursor:not-allowed}.no-connections{text-align:center;padding:40px 20px;display:flex;flex-direction:column;align-items:center;gap:15px;background-color:#fff;border-radius:8px;box-shadow:0 2px 6px #0000001a}.empty-icon{font-size:48px;color:#6c757d;margin-bottom:10px}.no-connections p{margin:0;color:#6c757d}.no-connections button{margin-top:15px}.connection-form-container{max-width:800px;margin:0 auto}.connection-form-container h2{margin-top:0;margin-bottom:20px;text-align:center}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);margin-bottom:var(--space-4)}.form-grid .form-group-full{grid-column:1 / -1}.cloud-providers-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-top:20px}.cloud-provider-section{border-radius:8px;margin-bottom:20px;padding:20px;background-color:#f8f9fa;border-left:4px solid transparent;display:flex;flex-direction:column;box-shadow:0 2px 5px #0000000d;transition:all .2s ease-in-out}.cloud-provider-section:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.cloud-provider-section p{flex:1;margin-bottom:15px}.cloud-provider-section button{align-self:flex-start;margin-top:auto}.cloud-provider-section.aws{border-left-color:#f90}.cloud-provider-section.gcp{border-left-color:#4285f4}.cloud-provider-section.azure{border-left-color:#0078d4}.cloud-provider-section.snowflake{border-left-color:#29b5e8}.cloud-provider-section.databricks{border-left-color:#ff3621}.cloud-provider-section.sharepoint{border-left-color:#036c70}.cloud-provider-section.outlook{border-left-color:#0078d4}.cloud-provider-header{display:flex;align-items:center;margin-bottom:15px}.cloud-provider-icon{font-size:24px;margin-right:15px}.cloud-provider-icon.aws{color:#f90}.cloud-provider-icon.gcp{color:#4285f4}.cloud-provider-icon.azure{color:#0078d4}.cloud-provider-icon.snowflake{color:#29b5e8}.cloud-provider-icon.databricks{color:#ff3621}.cloud-provider-icon.sharepoint{color:#036c70}.cloud-provider-icon.outlook{color:#0078d4}.cloud-provider-title{flex:1}.cloud-provider-title h3{margin:0 0 5px}.cloud-provider-features{font-size:14px;color:#6c757d}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}.test-btn{background-color:#f0f8ff;border:1px solid #b0d8ff;border-radius:4px;color:#06c;font-size:13px;padding:4px 12px;margin-right:8px;cursor:pointer;transition:all .2s ease}.test-btn:hover{background-color:#d6eaff}.test-btn:disabled{background-color:#e9ecef;border-color:#ced4da;color:#6c757d;cursor:not-allowed}.test-result{margin:10px 0;padding:8px 12px;border-radius:4px;font-size:14px;display:flex;align-items:center;gap:6px}.test-result.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.test-result.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.error-message{word-break:break-word}.connection-title{display:flex;flex-direction:column;position:relative}.shared-indicator{position:absolute;top:-8px;right:-20px;background-color:#e9ecef;color:#495057;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.shared-icon{font-size:14px}.source-app{display:inline-block;background-color:#e9ecef;color:#495057;font-size:12px;padding:3px 8px;border-radius:4px;margin-bottom:8px}@media (max-width: 1024px){.connections-table-container{overflow-x:auto}.connections-table{min-width:800px}}@media (max-width: 768px){.connections-header{flex-direction:column;align-items:flex-start;gap:var(--space-4)}.connection-form-container{padding:var(--space-4)}.form-grid{grid-template-columns:1fr}.form-grid .form-group-full{grid-column:1}.connections-table thead{display:none}.connections-table tbody tr{display:block;margin-bottom:var(--space-4);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-3)}.connections-table tbody td{display:block;text-align:left;padding:var(--space-2) 0;border-bottom:1px solid var(--border-light)}.connections-table tbody td:last-child{border-bottom:none}.connections-table tbody td:before{content:attr(data-label);font-weight:var(--font-semibold);display:block;margin-bottom:var(--space-1);color:var(--text-secondary)}.col-icon,.col-actions{text-align:left}.table-actions{justify-content:flex-start}}.mappings-container{padding:0 20px 20px}.mappings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;margin-top:0}.mappings-header h1{margin:0}.page-container .page-header h1{font-size:1.5rem;color:#025043}.page-container .page-header p{font-size:.8rem}.permission-notice{background-color:#f8f9fa;border:1px dashed #ccc;border-radius:5px;padding:10px 15px;color:#721c24;font-size:14px;font-weight:500}.mappings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.mapping-card{display:flex;flex-direction:column}.mapping-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.mapping-title h3{margin:0;font-size:1.1rem}.mapping-actions{display:flex;gap:10px}.action-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px;color:#555;background-color:#0000000d;border:none;cursor:pointer;transition:all .2s ease}.action-button:hover{background-color:#0000001a;color:var(--primary-color)}.delete-button:hover{background-color:#e74c3c1a;color:var(--error-color)}.mapping-content{flex:1;margin-bottom:15px}.mapping-detail{margin-bottom:8px}.detail-label{font-weight:500;color:#555;margin-right:5px}.detail-value{color:#333}.mapping-footer{font-size:.9rem;color:#777}.mapping-form-card{margin-bottom:30px}.mapping-form-card h2{margin-top:0;margin-bottom:20px}.form-row{display:flex;gap:20px}.form-row .form-group{flex:1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.mapping-builder{margin-top:20px;border:1px solid var(--border-color);border-radius:6px;padding:20px;background-color:#f9f9f9}.mapping-columns-container{display:flex;align-items:stretch}.mapping-source-columns,.mapping-target-columns{flex:1;display:flex;flex-direction:column;background-color:#fff;border-radius:6px;border:1px solid var(--border-color);padding:15px}.mapping-arrow{display:flex;align-items:center;justify-content:center;padding:0 20px;color:#777;font-size:1.5rem}.mapping-source-columns h3,.mapping-target-columns h3{margin-top:0;margin-bottom:15px;font-size:1rem;border-bottom:1px solid var(--border-color);padding-bottom:10px}.column-loading,.column-empty{padding:20px;text-align:center;color:#777}.column-list{flex:1;overflow-y:auto;max-height:300px}.source-column{display:flex;align-items:center;padding:10px;border-bottom:1px solid var(--border-color)}.source-column:last-child{border-bottom:none}.source-column-name{flex:1;font-weight:500}.source-column-type{color:#777;font-size:.9rem;margin-right:10px}.source-column-add{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;color:var(--primary-color);background-color:#3498db1a;border:none;cursor:pointer;transition:all .2s ease}.source-column-add:hover{background-color:#3498db33}.mapping-column{display:flex;justify-content:space-between;padding:10px;border:1px solid var(--border-color);border-radius:4px;margin-bottom:10px;background-color:#fff;cursor:move}.mapping-column:last-child{margin-bottom:0}.mapping-column-info{display:flex;flex-direction:column;flex:1}.mapping-column-name{font-weight:500}.mapping-column-type{color:#777;font-size:.9rem}.mapping-column-transform{display:flex;align-items:center;font-size:.85rem;margin-top:5px;color:var(--primary-color);background-color:#3498db1a;padding:2px 6px;border-radius:3px;width:fit-content}.mapping-column-transform svg{margin-right:4px}.mapping-column-actions{display:flex;align-items:center;gap:5px}.mapping-column-edit,.mapping-column-remove{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;border:none;cursor:pointer;transition:all .2s ease}.mapping-column-edit{color:var(--primary-color);background-color:#3498db1a}.mapping-column-edit:hover{background-color:#3498db33}.mapping-column-remove{color:var(--error-color);background-color:#e74c3c1a}.mapping-column-remove:hover{background-color:#e74c3c33}.transform-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.transform-panel{background-color:#fff;border-radius:8px;box-shadow:0 5px 20px #00000026;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;animation:slideIn .3s ease;overflow:hidden}@keyframes slideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.transform-panel-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid var(--border-color)}.transform-panel-header h3{margin:0;font-size:1.2rem}.close-button{background:none;border:none;font-size:1.5rem;line-height:1;color:#777;cursor:pointer}.transform-panel-body{flex:1;padding:20px;overflow-y:auto}.transform-panel-footer{padding:15px 20px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:10px}.transform-field{margin-bottom:15px}.transform-field label{display:block;margin-bottom:5px;font-weight:500}.transform-field .field-help{margin-top:5px;font-size:.85rem;color:#777}.condition-row{display:flex;gap:10px}.operator-select{width:120px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.empty-icon{font-size:3rem;color:var(--primary-color);margin-bottom:20px}.empty-state h2{margin-bottom:10px}.empty-state p{margin-bottom:20px;color:#777;max-width:500px}.mapping-joins{margin-top:20px;border:1px solid var(--border-color);border-radius:6px;padding:20px;background-color:#f9f9f9}.joins-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.joins-header h3{margin:0;font-size:1rem}.joins-empty{background-color:#fff;border:1px dashed var(--border-color);border-radius:4px;padding:20px;text-align:center;color:#777}.joins-list{display:flex;flex-direction:column;gap:10px}.join-item{display:flex;justify-content:space-between;align-items:center;background-color:#fff;border:1px solid var(--border-color);border-radius:4px;padding:12px 15px}.join-info{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.join-type{font-weight:500;font-size:.85rem;background-color:#3498db1a;color:var(--primary-color);padding:2px 8px;border-radius:3px;display:inline-block}.join-details,.join-file{color:#555;font-size:.9rem}.join-details strong,.join-file strong{color:#333}.join-remove{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;color:var(--error-color);background-color:#e74c3c1a;border:none;cursor:pointer;transition:all .2s ease}.join-remove:hover{background-color:#e74c3c33}.btn-sm{font-size:.85rem;padding:4px 12px}.mapping-transforms{margin-top:10px;display:flex;flex-wrap:wrap;gap:5px}.transform-badge{display:inline-flex;align-items:center;font-size:.75rem;padding:2px 6px;border-radius:3px;background-color:#3498db1a;color:var(--primary-color)}.transform-badge svg{margin-right:4px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;margin-top:30px;border-bottom:1px solid var(--border-color);padding-bottom:10px}.section-header h2{margin:0;font-size:1.2rem;color:var(--text-color)}.transformations-header{margin-top:40px}.transformation-card{border-left:3px solid var(--primary-color)}.transform-icon{color:#6366f1}.external-link-btn{background-color:#6366f1;border-color:#6366f1}.external-link-btn:hover{background-color:#4f46e5;border-color:#4f46e5}.transformations-header{border-bottom:2px solid #6366f1}.status-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.8rem;font-weight:500;text-transform:capitalize}.status-badge.draft{background-color:#bdc3c733;color:#7f8c8d}.status-badge.active{background-color:#2ecc7133;color:#27ae60}.status-badge.paused{background-color:#f1c40f33;color:#f39c12}.status-badge.error{background-color:#e74c3c33;color:#c0392b}.mappings-table-container{padding:1rem;overflow-x:auto}.mappings-table{width:100%;border-collapse:collapse;background:#fff}.mappings-table thead{background-color:#f8fafc;border-bottom:2px solid #e2e8f0}.mappings-table th{padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.8125rem;color:#475569;letter-spacing:.05em;text-transform:none}.mappings-table tbody tr{border-bottom:1px solid #e2e8f0;transition:background-color .15s ease}.mappings-table tbody tr:hover{background-color:#f8fafc}.mappings-table td{padding:.875rem 1rem;font-size:.8125rem;color:#334155}.mapping-name-cell strong{color:#0f172a;font-weight:400}.table-actions{display:flex;gap:.5rem;align-items:center}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease}.modal-content{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:90%;max-width:500px;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e2e8f0}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#0f172a}.modal-close{background:none;border:none;font-size:1.75rem;line-height:1;color:#94a3b8;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.modal-body{padding:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.25rem 1.5rem;border-top:1px solid #e2e8f0;background-color:#f8fafc;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.btn-danger{background-color:#ef4444;color:#fff;border:1px solid #ef4444;padding:.5rem 1rem;border-radius:6px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s ease}.btn-danger:hover{background-color:#dc2626;border-color:#dc2626}.btn-secondary{background-color:#fff;color:#475569;border:1px solid #cbd5e1;padding:.5rem 1rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background-color:#f8fafc;border-color:#94a3b8}.table-based-mapper{display:flex;flex-direction:column;height:100%;background:#f8f9fa;border-radius:8px;padding:1rem}.mapper-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:2px solid #dee2e6}.mapper-header h3{margin:0;font-size:10px;font-weight:600;font-family:Inter,sans-serif;color:#212529;text-transform:uppercase}.mapper-actions{display:flex;gap:.5rem}.mapper-panels{display:grid;grid-template-columns:300px 1fr;gap:1rem;flex:1;min-height:0}.source-panel,.target-panel{background:#fff;border:1px solid #dee2e6;border-radius:6px;display:flex;flex-direction:column;overflow:hidden}.source-panel h4,.target-panel h4{margin:0;padding:.5rem;background:#e9ecef;border-bottom:1px solid #dee2e6;font-size:10px;font-weight:600;font-family:Inter,sans-serif;color:#495057;text-transform:uppercase}.target-panel-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#e9ecef;border-bottom:1px solid #dee2e6}.target-panel-header h4{margin:0;padding:0;background:none;border:none;font-size:10px;font-weight:600;font-family:Inter,sans-serif;color:#495057;text-transform:uppercase}.target-panel-header .btn{display:flex;align-items:center;gap:.125rem;font-size:10px;font-family:Inter,sans-serif;padding:.125rem .25rem;flex-grow:0;flex-shrink:0;width:auto;white-space:nowrap}.custom-badge{display:inline-block;padding:.125rem .375rem;background:#17a2b8;color:#fff;font-size:10px;font-family:Inter,sans-serif;font-weight:600;border-radius:3px;text-transform:uppercase;margin-right:.125rem}.field-search{padding:.5rem;border-bottom:1px solid #dee2e6}.field-search input{width:100%;padding:.25rem .5rem;border:1px solid #ced4da;border-radius:4px;font-size:10px;font-family:Inter,sans-serif}.source-fields-list{flex:1;overflow-y:auto;padding:.5rem;max-height:500px}.source-field-item{display:flex;align-items:center;padding:.25rem .5rem;gap:.25rem;border-radius:4px;transition:background-color .15s}.source-field-item:hover{background-color:#f8f9fa}.source-field-item input[type=checkbox]{margin:0;cursor:pointer;width:1rem;height:1rem}.source-field-item label{margin:0;cursor:pointer;font-size:10px;font-family:Inter,sans-serif;color:#495057;-webkit-user-select:none;user-select:none}.target-table-container{flex:1;overflow-y:auto;max-height:500px}.target-mapping-table{width:100%;border-collapse:collapse;font-size:10px;font-family:Inter,sans-serif}.target-mapping-table thead{position:sticky;top:0;background:#f8f9fa;z-index:1}.target-mapping-table th{text-align:left;padding:.25rem;font-weight:600;font-family:Inter,sans-serif;color:#495057;border-bottom:2px solid #dee2e6;font-size:10px;text-transform:uppercase}.target-mapping-table td{padding:.125rem .25rem;border-bottom:1px solid #e9ecef;vertical-align:middle}.target-mapping-table tbody tr:hover{background-color:#f8f9fa}.status-cell{text-align:center}.status-icon{font-size:1rem}.status-icon.mapped{color:#28a745}.name-cell{font-weight:500;color:#212529}.target-name-input{width:100%;padding:.125rem .25rem;border:1px solid #ced4da;border-radius:3px;font-size:10px;font-family:Inter,sans-serif;background:#fff;transition:border-color .15s}.target-name-input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 2px #4f46e51a}.actions-cell{display:flex;align-items:center;gap:.25rem}.arrow-icon{color:#6c757d;font-size:10px;margin-right:.125rem}.btn-icon-small{background:none;border:none;padding:.25rem;cursor:pointer;color:#6c757d;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;transition:all .15s}.btn-icon-small:hover{background-color:#e9ecef;color:#495057}.expression-cell{font-family:Consolas,Monaco,Courier New,monospace;color:#06c}.expression-text{cursor:pointer;padding:.25rem .5rem;border-radius:3px;display:inline-block;transition:background-color .15s}.expression-text:hover{background-color:#e7f3ff}.no-mappings{text-align:center;color:#6c757d;font-style:italic;padding:2rem!important}.expression-editor-modal .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999}.expression-editor-modal .modal-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003;z-index:1000;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column}.expression-editor-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #dee2e6}.expression-editor-modal .modal-header h4{margin:0;font-size:10px;font-weight:600;font-family:Inter,sans-serif;text-transform:uppercase}.expression-editor-modal .btn-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6c757d;padding:0;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:4px;transition:all .15s}.expression-editor-modal .btn-close:hover{background-color:#f8f9fa;color:#495057}.expression-editor-modal .modal-body{padding:.75rem;overflow-y:auto;flex:1}.expression-editor-modal .form-group{margin-bottom:.375rem}.expression-editor-modal .form-group label{display:block;margin-bottom:.25rem;font-weight:500;font-size:10px;font-family:Inter,sans-serif;color:#495057}.expression-editor-modal .form-control{width:100%;padding:.25rem .375rem;border:1px solid #ced4da;border-radius:4px;font-size:10px;font-family:Inter,sans-serif;transition:border-color .15s}.expression-editor-modal .form-control:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.expression-editor-modal .form-control:disabled{background-color:#e9ecef;cursor:not-allowed}.expression-preview{padding:.25rem .375rem;background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;font-family:Consolas,Monaco,Courier New,monospace;color:#06c;font-size:10px;word-break:break-all}.expression-editor-modal .modal-footer{display:flex;justify-content:flex-end;gap:.25rem;padding:.5rem .75rem;border-top:1px solid #dee2e6}.mapping-summary{margin-top:.75rem;padding:.75rem;background:#fff;border:1px solid #dee2e6;border-radius:6px;text-align:center}.variables-section{margin-bottom:1rem;background:#fff;border:1px solid #dee2e6;border-radius:6px;overflow:hidden}.variables-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f0f4ff;border-bottom:1px solid #dee2e6;cursor:pointer;-webkit-user-select:none;user-select:none}.variables-header .btn{flex-grow:0;flex-shrink:0;width:auto;white-space:nowrap}.variables-header:hover{background:#e6edff}.variables-title{display:flex;align-items:center;gap:.5rem;flex:1}.variables-title svg{color:#6366f1;font-size:1.25rem}.variables-title h4{margin:0;font-size:10px;font-weight:600;font-family:Inter,sans-serif;color:#4338ca;text-transform:uppercase}.variables-info{font-size:10px;font-family:Inter,sans-serif;color:#6b7280;font-style:italic;margin-left:.25rem}.variables-content{padding:1rem}.no-variables{padding:1rem;text-align:center;color:#6b7280;font-size:10px;font-family:Inter,sans-serif;border:2px dashed #e5e7eb;border-radius:6px;background:#f9fafb}.variables-list{display:flex;flex-direction:column;gap:.5rem}.variable-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:#fafbff;border:1px solid #e0e7ff;border-radius:6px;transition:all .2s}.variable-item:hover{background:#f5f8ff;border-color:#c7d2fe;box-shadow:0 2px 4px #4f46e51a}.variable-order{display:flex;flex-direction:column;align-items:center;gap:.25rem}.variable-order .btn-icon-small{padding:.125rem;min-width:unset}.variable-order .btn-icon-small:disabled{opacity:.3;cursor:not-allowed}.order-number{font-size:10px;font-family:Inter,sans-serif;font-weight:600;color:#6366f1;padding:.125rem .25rem;background:#fff;border-radius:3px;border:1px solid #c7d2fe}.variable-info{flex:1;display:flex;align-items:center;gap:.25rem;min-width:0}.variable-name{font-size:10px;font-family:Inter,sans-serif;color:#1f2937;white-space:nowrap}.variable-name strong{color:#4338ca}.variable-expression{flex:1;font-family:Consolas,Monaco,Courier New,monospace;font-size:10px;color:#059669;background:#f0fdf4;padding:.125rem .25rem;border-radius:3px;border:1px solid #d1fae5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.variable-actions{display:flex;gap:.25rem}.form-text{display:block;margin-top:.125rem;font-size:10px;font-family:Inter,sans-serif;color:#6b7280}.mapping-summary p{margin:0;font-size:10px;font-family:Inter,sans-serif;color:#6c757d;font-weight:500}.variable-builder-modal .modal-content{max-width:1200px;width:95%;height:80vh;max-height:800px}.variable-builder-modal .modal-header{background:#fff}.variable-builder-modal .modal-header h4{color:#6d8196}.variable-builder-modal .modal-body{padding:0;overflow:hidden;display:flex;flex-direction:column}.variable-builder-panes{display:grid;grid-template-columns:20% 20% 60%;gap:1px;background:#e5e7eb;flex:1;overflow:hidden}.variable-pane{background:#fff;display:flex;flex-direction:column;overflow:hidden}.variable-pane-header{padding:.5rem;background:#f9fafb;border-bottom:1px solid #e5e7eb;font-weight:600;font-size:10px;font-family:Inter,sans-serif;color:#374151;text-transform:uppercase}.variable-pane-content{flex:1;overflow-y:auto;padding:.5rem}.insertable-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;margin-bottom:.25rem;border-radius:4px;background:transparent;border:1px solid #e5e7eb;transition:all .2s}.insertable-item:hover{background:#f9fafb;border-color:#d1d5db}.insertable-item-name{font-size:10px;color:#3b82f6;font-weight:500;font-family:Consolas,Monaco,Courier New,monospace;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.insertable-item-type{font-size:10px;font-family:Inter,sans-serif;color:#6b7280;margin-right:.25rem}.btn-insert{background:#fff;border-radius:4px;padding:.125rem .25rem;cursor:pointer;font-size:10px;font-family:Inter,sans-serif;font-weight:600;display:flex;align-items:center;gap:.125rem;transition:all .2s}.btn-insert:active{transform:scale(.95)}.insertable-item .btn-insert{color:#1e40af;border:none}.insertable-item .btn-insert:hover{background:#eff6ff;color:#1e3a8a}.function-item .btn-insert{color:#047857;border:none}.function-item .btn-insert:hover{background:#f0fdf4;color:#065f46}.function-item{display:flex;flex-direction:column;padding:.5rem .75rem;margin-bottom:.25rem;border-radius:4px;background:transparent;border:1px solid #e5e7eb;transition:all .2s}.function-item:hover{background:#f9fafb;border-color:#d1d5db}.function-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.function-item-name{font-size:10px;font-family:Inter,sans-serif;color:#10b981;font-weight:500}.function-item-syntax{font-size:10px;color:#059669;font-family:Consolas,Monaco,Courier New,monospace;margin-top:.125rem}.function-group-header{padding:.25rem .5rem;font-size:10px;font-family:Inter,sans-serif;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;background:#f3f4f6;margin:.25rem 0 .125rem;border-radius:4px}.conditional-header{background:#f3f4f6;color:#6b7280;font-weight:600;font-family:Inter,sans-serif;padding:.25rem .5rem;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;font-size:10px}.function-item-conditional{background:transparent;border:1px solid #d1d5db}.function-item-conditional:hover{background:#f9fafb;border-color:#9ca3af}.function-item-conditional .function-item-name{color:#d97706;font-weight:600}.function-item-conditional .function-item-syntax{color:#92400e;background:transparent;padding:0;margin-top:.25rem}.function-item-description{font-size:10px;font-family:Inter,sans-serif;color:#78716c;font-style:italic;margin-top:.25rem;padding:.125rem .25rem;background:#fafaf9;border-left:2px solid #d6d3d1;border-radius:2px}.expression-builder{display:flex;flex-direction:column;height:100%;padding:1rem}.expression-builder-header{margin-bottom:1rem}.expression-builder-header label{display:block;margin-bottom:.25rem;font-weight:500;font-size:10px;font-family:Inter,sans-serif;color:#374151}.expression-editor-container{position:relative;width:100%}.expression-editor-surface{display:block;position:static;margin:0;padding:0;border:0;background:transparent;color:inherit;font:400 10px/1.5 Consolas,Monaco,Courier New,monospace;letter-spacing:normal;word-spacing:normal;text-align:left;text-decoration:none;text-transform:none;font-variant-ligatures:none;box-sizing:border-box}.expression-highlight-layer{position:absolute;top:0;left:0;width:100%;min-height:200px;padding:.5rem;margin:0;border:1px solid #d1d5db;border-radius:6px;white-space:pre-wrap;word-wrap:break-word;pointer-events:none;overflow-wrap:break-word;overflow-y:auto;overflow-x:auto;color:#000;box-sizing:border-box}.expression-placeholder{color:#9ca3af;font-style:italic}.expression-textarea{width:100%;min-height:200px;padding:.5rem;margin:0;border:1px solid #d1d5db;border-radius:6px;resize:vertical;transition:border-color .15s;background:transparent;position:relative;box-sizing:border-box;overflow-y:auto;overflow-x:auto;font-family:Consolas,Monaco,Courier New,monospace;font-size:10px;font-weight:400;line-height:1.5;letter-spacing:normal;word-spacing:normal;font-variant-ligatures:none;font-feature-settings:"liga" 0;text-rendering:geometricPrecision}.expression-textarea-overlay{color:transparent;caret-color:#374151}.expression-textarea:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.expression-help{margin-top:.25rem;padding:.5rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:4px;font-size:10px;font-family:Inter,sans-serif;color:#0369a1}.expression-help-title{font-weight:600;margin-bottom:.25rem}.expression-help-text{line-height:1.5}.expression-preview-section{margin-top:1rem}.expression-preview-section label{display:block;margin-bottom:.25rem;font-weight:500;font-size:10px;font-family:Inter,sans-serif;color:#374151}.variable-name-input{margin-bottom:.75rem}.variable-name-input label{display:block;margin-bottom:.25rem;font-weight:500;font-size:10px;font-family:Inter,sans-serif;color:#374151}.variable-name-input input{width:100%;padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:10px;font-family:Inter,sans-serif}.variable-name-input input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.btn-fixed-width{min-width:120px;flex-grow:0!important;flex-shrink:0!important}.expression-editor-modal .form-group label{display:block;margin-bottom:.25rem;font-weight:500;font-size:10px;font-family:Inter,sans-serif;color:#374151}.expression-editor-modal .form-group input[type=text],.expression-editor-modal .form-group input[type=number]{width:100%;padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:10px;font-family:Inter,sans-serif}.expression-editor-modal .form-group input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.target-panel-actions{display:flex;gap:.5rem;align-items:center}.dq-rules-cell{font-size:10px;font-family:Inter,sans-serif}.dq-rule-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background-color:#10b981;color:#fff;border-radius:10px;font-size:10px;font-weight:600;font-family:Inter,sans-serif}.dq-rule-badge:hover{background-color:#059669}.dq-rule-empty{color:#9ca3af;font-size:10px}.dq-rules-inline-tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.dq-rule-inline-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;background-color:#dbeafe;color:#1e40af;border-radius:4px;font-size:9px;font-weight:500;font-family:Inter,sans-serif;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.dq-rule-inline-tag:hover{background-color:#bfdbfe}.dq-rule-inline-remove{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;padding:0;border:none;background:transparent;color:#3b82f6;font-size:12px;font-weight:600;cursor:pointer;border-radius:50%;line-height:1;flex-shrink:0}.dq-rule-inline-remove:hover{background-color:#ef4444;color:#fff}.dq-rule-action-badge{font-size:8px;font-weight:700;color:#dc2626;margin-left:-2px}.dq-rule-inline-tag.error-action-abort{background-color:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.dq-rule-inline-tag.error-action-abort:hover{background-color:#fecaca}.dq-rule-inline-tag.error-action-continue{background-color:#dbeafe;color:#1e40af}.dq-error-action-selector{display:flex;align-items:center;margin-bottom:6px}.dq-assignment-action-select{border:1px solid #d1d5db;border-radius:3px;background:#fff;cursor:pointer}.dq-assignment-rule-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dq-rule-panel-modal .modal-content.dq-rule-panel-content{width:900px;max-width:95vw;max-height:80vh}.dq-rule-panel-body{padding:1rem}.dq-panel-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;height:400px}.dq-panel-section{display:flex;flex-direction:column;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden}.dq-panel-section-header{padding:.5rem .75rem;background:#e9ecef;border-bottom:1px solid #dee2e6;font-size:10px;font-weight:600;font-family:Inter,sans-serif;color:#495057;text-transform:uppercase}.dq-panel-section-content{flex:1;overflow-y:auto;padding:.5rem}.dq-panel-section-actions{padding:.5rem;border-top:1px solid #e5e7eb;background:#fff}.dq-panel-item{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border-radius:4px;cursor:pointer}.dq-panel-item:hover{background:#e5e7eb}.dq-panel-item input[type=checkbox]{cursor:pointer}.dq-panel-item label{cursor:pointer;font-size:10px;font-family:Inter,sans-serif;color:#374151;display:flex;gap:.25rem;align-items:center}.dq-rule-name{font-weight:500}.dq-rule-type{color:#6b7280;font-size:9px}.dq-panel-empty{padding:1rem;text-align:center;color:#9ca3af;font-size:10px;font-family:Inter,sans-serif}.dq-panel-loading{padding:1rem;text-align:center;color:#6b7280;font-size:10px;font-family:Inter,sans-serif}.dq-assignment-group{margin-bottom:.75rem;padding:.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:4px}.dq-assignment-column{font-size:10px;font-weight:600;font-family:Inter,sans-serif;color:#374151;margin-bottom:.375rem;padding-bottom:.25rem;border-bottom:1px solid #e5e7eb}.dq-assignment-rules{display:flex;flex-wrap:wrap;gap:.25rem}.dq-assignment-rule{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .375rem;background:#dbeafe;color:#1e40af;border-radius:3px;font-size:9px;font-family:Inter,sans-serif}.btn-icon-tiny{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;background:transparent;border:none;cursor:pointer;color:#6b7280;border-radius:2px}.btn-icon-tiny:hover{background:#f3f4f6;color:#ef4444}.dq-save-btn{font-size:10px;font-family:Inter,sans-serif;font-weight:500;color:#fff!important}.dq-save-btn:hover{color:#fff!important}*{font-family:Inter,sans-serif}.wizard-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.btn-back{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f3f4f6;border:1px solid #e2e8f0;border-radius:.375rem;color:#64748b;cursor:pointer;transition:all .2s;font-family:Inter,sans-serif;font-size:12px;flex-grow:0;flex-shrink:0;width:auto;white-space:nowrap}.btn-back:hover{background:#e5e7eb;border-color:#cbd5e1;color:#334155}.btn-browse{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f3f4f6;border:1px solid #e2e8f0;border-radius:.375rem;color:#64748b;cursor:pointer;transition:all .2s;font-family:Inter,sans-serif;font-size:12px;font-weight:400;flex-grow:0;flex-shrink:0;width:auto;white-space:nowrap}.btn-browse:hover{background:#e5e7eb;border-color:#cbd5e1;color:#334155}.wizard-steps{display:flex;align-items:center;justify-content:center;margin-bottom:1rem;padding:.75rem;background:#fff;border-radius:.5rem;border:1px solid #e2e8f0}.wizard-step{display:flex;flex-direction:column;align-items:center;gap:.25rem;transition:all .2s}.wizard-step.clickable{cursor:pointer}.wizard-step.clickable:hover .step-number{transform:scale(1.05);box-shadow:0 2px 8px #00000026}.wizard-step.clickable:hover .step-label{color:#1e293b}.step-number{width:1.5rem;height:1.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e2e8f0;color:#64748b;font-weight:600;font-size:11px;transition:all .3s;font-family:Inter,sans-serif}.wizard-step.active .step-number{background:#3b82f6;color:#fff}.wizard-step.completed .step-number{background:#10b981;color:#fff}.step-label{font-size:11px;color:#64748b;font-weight:500;font-family:Inter,sans-serif}.wizard-step.active .step-label{color:#1e293b;font-weight:600}.step-connector{width:3rem;height:2px;background:#e2e8f0;margin:0 .5rem}.wizard-step.completed+.step-connector{background:#10b981}.wizard-content{min-height:400px}.wizard-step-content{padding:1rem}.wizard-step-content h2{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;color:#1e293b;font-size:10px;font-weight:600;font-family:Inter,sans-serif;text-transform:uppercase}.wizard-step-content h3{display:flex;align-items:center;gap:.5rem;margin:.75rem 0 .5rem;color:#334155;font-size:10px;font-weight:600;font-family:Inter,sans-serif;text-transform:uppercase}.form-group label{display:block;margin-bottom:.25rem;color:#334155;font-weight:400;font-size:10px;font-family:Inter,sans-serif}.form-control{width:100%;padding:.375rem .5rem;border:1px solid #e2e8f0;border-radius:.375rem;font-size:10px;font-family:Inter,sans-serif;transition:all .2s}.form-control:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-control-sm{padding:.25rem .375rem;font-size:10px;font-family:Inter,sans-serif;border:1px solid #e2e8f0;border-radius:.25rem}.form-help{display:block;margin-top:.125rem;color:#64748b;font-size:10px;font-family:Inter,sans-serif}.matched-files{margin-top:.5rem;padding:.5rem;background:#f8fafc;border-radius:.375rem;border:1px solid #e2e8f0}.matched-files h4{margin-bottom:.25rem;color:#334155;font-size:10px;font-weight:600;font-family:Inter,sans-serif;text-transform:uppercase}.matched-files ul{list-style:none;padding:0;margin:0}.matched-files li{padding:.125rem 0;color:#475569;font-size:10px;font-family:Monaco,Menlo,monospace}.matched-files li.more-files{color:#64748b;font-style:italic;font-family:Inter,sans-serif}.field-mappings-header{display:flex;justify-content:flex-end;margin-bottom:.75rem}.field-mappings-list{display:flex;flex-direction:column;gap:.75rem}.field-mapping-row{padding:.75rem;background:#f8fafc;border-radius:.375rem;border:1px solid #e2e8f0}.field-mapping-inputs{display:grid;grid-template-columns:2fr auto 2fr 2fr auto;gap:.75rem;align-items:start}.arrow-icon{color:#94a3b8;margin-top:1.5rem}.transformation-params{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.form-group-inline{display:flex;align-items:center;gap:.25rem}.form-group-inline label{margin-bottom:0;font-size:10px;font-family:Inter,sans-serif;color:#64748b}.btn-icon-danger{padding:.5rem;background:transparent;border:1px solid #e2e8f0;border-radius:.25rem;color:#ef4444;cursor:pointer;transition:all .2s;margin-top:1.25rem}.btn-icon-danger:hover{background:#fef2f2;border-color:#ef4444}.anomaly-rules{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.anomaly-rule{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:#f8fafc;border-radius:.375rem;border:1px solid #e2e8f0}.checkbox-label input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.checkbox-label span{color:#334155;font-size:10px;font-family:Inter,sans-serif;font-weight:400;text-transform:capitalize}.threshold-input{display:flex;align-items:center;gap:.25rem}.threshold-input span{color:#64748b;font-size:10px;font-family:Inter,sans-serif}.wizard-actions{display:flex;justify-content:space-between;padding:1rem;border-top:1px solid #e2e8f0;margin-top:1rem}.wizard-actions-right{display:flex;gap:.75rem}.btn{display:inline-flex;align-items:center;gap:.125rem;padding:.125rem .25rem;border:1px solid transparent;border-radius:.375rem;font-size:10px;font-family:Inter,sans-serif;font-weight:500;cursor:pointer;transition:all .2s}.btn-sm{padding:.125rem .25rem;font-size:10px;font-family:Inter,sans-serif}.btn-primary:disabled{background:#93c5fd;cursor:not-allowed}.btn-secondary{background:#fff;color:#64748b;border-color:#e2e8f0}.btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1;color:#334155}.btn-success{background:#10b981;color:#fff}.btn-success:hover{background:#059669}.btn-success:disabled{background:#6ee7b7;cursor:not-allowed}.error-message{display:flex;align-items:center;gap:.25rem;padding:.5rem;margin-bottom:.75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;font-size:10px;font-family:Inter,sans-serif}.job-details-header{margin-bottom:2rem}.job-header-content{display:flex;justify-content:space-between;align-items:flex-start;margin-top:1rem}.job-id{display:inline-block;padding:.375rem .75rem;background:#f1f5f9;border-radius:.25rem;font-size:.813rem;color:#64748b;margin-top:.5rem}.job-header-actions{display:flex;gap:.75rem;align-items:center}.job-overview-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{display:flex;gap:1rem;padding:1.25rem!important}.stat-icon{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;background:#f0f9ff;color:#3b82f6;border-radius:.5rem;font-size:1.5rem}.stat-content{flex:1}.stat-label{font-size:.813rem;color:#64748b;margin-bottom:.375rem}.stat-value{font-size:1.5rem;font-weight:600;color:#1e293b}.overview-content{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.info-list{display:grid;grid-template-columns:auto 1fr;gap:.75rem 1.5rem;margin:0}.info-list dt{font-weight:500;color:#64748b;font-size:.875rem}.info-list dd{color:#1e293b;font-size:.875rem;margin:0}.error-card{background:#fef2f2!important;border-color:#fecaca!important}.error-card h3{display:flex;align-items:center;gap:.5rem;color:#dc2626;margin-bottom:.75rem}.error-card pre{background:#fff;padding:1rem;border-radius:.375rem;color:#991b1b;font-size:.813rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.logs-content{padding:1.5rem}.logs-list{display:flex;flex-direction:column;gap:.75rem}.log-entry{padding:1rem;background:#f8fafc;border-radius:.375rem;border-left:3px solid #cbd5e1}.log-entry.log-error{background:#fef2f2;border-left-color:#ef4444}.log-entry.log-warn{background:#fffbeb;border-left-color:#f59e0b}.log-entry.log-info{background:#f0f9ff;border-left-color:#3b82f6}.log-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.log-level{display:inline-block;padding:.125rem .5rem;background:#e2e8f0;border-radius:.25rem;font-size:.688rem;font-weight:600;color:#475569}.log-error .log-level{background:#dc2626;color:#fff}.log-warn .log-level{background:#f59e0b;color:#fff}.log-info .log-level{background:#3b82f6;color:#fff}.log-time{font-size:.75rem;color:#64748b}.log-message{font-size:.875rem;color:#1e293b}.log-details{margin-top:.75rem;padding:.75rem;background:#fff;border-radius:.25rem;font-size:.75rem;overflow-x:auto}.anomalies-content{padding:1.5rem}.anomalies-list{display:flex;flex-direction:column;gap:1rem}.anomaly-card{border-left:3px solid #f59e0b}.anomaly-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.anomaly-header h4{margin:0;font-size:1rem;color:#1e293b;text-transform:capitalize}.severity-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:.25rem;font-size:.75rem;font-weight:600}.severity-high{background:#fef2f2;color:#dc2626}.severity-medium{background:#fffbeb;color:#f59e0b}.severity-low{background:#f0fdf4;color:#10b981}.anomaly-description{color:#475569;font-size:.875rem;margin-bottom:.75rem}.anomaly-meta{display:flex;gap:.5rem;font-size:.75rem;color:#64748b}.anomaly-threshold{margin-top:.75rem;padding:.5rem;background:#f8fafc;border-radius:.25rem;font-size:.813rem;color:#475569}.metrics-content{padding:1.5rem}.metrics-table-container{overflow-x:auto}.metrics-table{width:100%;border-collapse:collapse;font-size:.875rem}.metrics-table thead{background:#f8fafc}.metrics-table th{padding:.75rem 1rem;text-align:left;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0}.metrics-table td{padding:.75rem 1rem;border-bottom:1px solid #e2e8f0;color:#1e293b}.metrics-table tr:hover{background:#f8fafc}.quality-score{font-weight:600;font-size:1rem}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;gap:1rem;color:#64748b}.error-state h3{color:#1e293b;margin:.5rem 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;text-align:center;color:#94a3b8}.empty-state p{margin-top:1rem;color:#64748b}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626}.btn-danger:disabled{background:#fca5a5;cursor:not-allowed}.status-cancelled{background:#f1f5f9;color:#64748b}.comparison-content{padding:var(--space-4)}.comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-4);margin-top:var(--space-4)}.metric-card{padding:var(--space-4);background:var(--color-gray-50);border-radius:var(--radius-md);border:1px solid var(--border-light)}.metric-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.metric-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium)}.metric-value{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text-primary)}.metric-value.positive{color:#10b981}.metric-value.negative{color:#ef4444}.metric-value.neutral{color:var(--text-secondary)}.comparison-table{width:100%;border-collapse:collapse;margin-top:var(--space-4)}.comparison-table th,.comparison-table td{padding:var(--space-3);text-align:left;border-bottom:1px solid var(--border-light)}.comparison-table th{background-color:var(--color-gray-100);font-weight:var(--font-semibold);color:var(--text-secondary)}.comparison-table td.positive{color:#10b981;font-weight:var(--font-semibold)}.comparison-table td.negative{color:#ef4444;font-weight:var(--font-semibold)}.comparison-table td.neutral{color:var(--text-secondary)}.badge.badge-source{background-color:#dbeafe;color:#1e40af}.badge.badge-target{background-color:#d1fae5;color:#065f46}.connection-selector{padding:30px}.connection-selector.loading,.connection-selector.error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:20px}.selector-header{margin-bottom:30px}.selector-header h2{margin:0 0 10px;color:#1e293b;font-size:1.5rem}.selector-header p{margin:0;color:#64748b;font-size:1rem}.connection-sections{display:flex;flex-direction:row;gap:30px}@media (max-width: 768px){.connection-sections{flex-direction:column;gap:20px}}.connection-section{flex:1;border:2px solid #e2e8f0;border-radius:12px;padding:25px;background-color:#f8fafc}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.section-header h3{margin:0;color:#1e293b;font-size:1.25rem}.section-badge{padding:1.6px 4.8px;border-radius:8px;font-size:.3rem;font-weight:600;text-transform:uppercase}.section-badge.source{background-color:#dbeafe;color:#1e40af}.section-badge.target{background-color:#dcfce7;color:#166534}.section-description{margin:0 0 20px;color:#64748b;font-size:.9rem}.connection-dropdown-container{margin-top:15px}.connection-dropdown{width:100%;padding:12px 40px 12px 16px;border:2px solid #e2e8f0;border-radius:8px;background-color:#fff;font-size:1rem;color:#1e293b;cursor:pointer;transition:all .2s ease;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px}.connection-dropdown:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f61a}.connection-dropdown:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.connection-dropdown option{padding:8px;color:#1e293b}.connection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.selection-summary{margin-top:40px;padding:20px;background-color:#f0f9ff;border-radius:8px;border-left:4px solid #3b82f6}.selection-summary h3{margin:0 0 15px;color:#1e293b}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.summary-item{display:flex;flex-direction:column;gap:5px}.summary-type{font-size:.875rem;color:#64748b}.file-selector{padding:30px}.file-dropdown-section{margin-top:20px}.dropdown-container{margin-bottom:30px}.dropdown-label{display:block;margin-bottom:8px;font-weight:600;color:#374151;font-size:14px}.file-dropdown{width:100%;padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;background-color:#fff;font-size:14px;color:#374151;transition:border-color .2s,box-shadow .2s;cursor:pointer}.file-dropdown:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.file-dropdown:hover{border-color:#9ca3af}.schema-loading{display:flex;align-items:center;gap:12px;padding:20px;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;font-size:14px}.selected-file-summary{margin-top:30px;padding:20px;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px}.selected-file-summary h3{margin:0 0 15px;color:#374151;font-size:16px;font-weight:600}.file-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #e5e7eb}.detail-item:last-child{border-bottom:none}.detail-item .label{font-weight:500;color:#6b7280;font-size:13px}.detail-item .value{font-weight:600;color:#374151;font-size:13px}.file-selector.loading,.file-selector.error,.file-selector.no-connection{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:20px}.info-message{text-align:center;color:#64748b}.info-message h3{margin:0 0 10px;color:#1e293b}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-top:20px}.file-card{position:relative;background:#fff;border:2px solid #e2e8f0;border-radius:8px;padding:20px;cursor:pointer;transition:all .2s ease;display:flex;align-items:flex-start;gap:15px}.file-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.file-card.selected{border-color:#3b82f6;background-color:#dbeafe}.file-icon{width:40px;height:40px;border-radius:6px;background-color:#f1f5f9;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:#3b82f6;flex-shrink:0}.file-info{flex:1}.file-info h4{margin:0 0 8px;color:#1e293b;font-size:1rem;font-weight:600}.file-meta{display:flex;align-items:center;gap:10px;margin-bottom:8px}.file-type{background-color:#e2e8f0;color:#475569;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600}.file-size{color:#64748b;font-size:.875rem}.file-stats{display:flex;gap:15px;margin-bottom:8px;font-size:.875rem;color:#64748b}.file-date{font-size:.8rem;color:#64748b;margin-bottom:5px}.quality-score{font-size:.8rem;color:#10b981;font-weight:600}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#ffffffe6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-radius:8px}.column-mapper{padding:30px}.mapper-header{margin-bottom:30px}.mapper-header h2{margin:0 0 10px;color:#1e293b;font-size:1.5rem}.mapper-header p{margin:0;color:#64748b;font-size:1rem}.mapping-workspace{display:grid;grid-template-columns:1fr auto 1fr;gap:30px;align-items:start;margin-bottom:30px}.source-panel,.target-panel{background:#fff;border-radius:8px;border:2px solid #e2e8f0;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px;background-color:#f8fafc;border-bottom:1px solid #e2e8f0}.panel-header h3{margin:0;color:#1e293b;font-size:1.125rem}.column-count{background-color:#e2e8f0;color:#475569;padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:600}.columns-list{padding:20px;max-height:500px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.source-column{background:#fff;border:2px solid #e2e8f0;border-radius:6px;padding:15px;cursor:grab;transition:all .2s ease}.source-column:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f626}.source-column.used{opacity:.6;border-color:#10b981;background-color:#f0fdf4}.source-column.dragging{opacity:.5;transform:rotate(5deg)}.column-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.column-type-icon{width:24px;height:24px;background-color:#f1f5f9;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:#3b82f6}.column-name{font-weight:600;color:#1e293b}.column-name.editable{cursor:pointer;padding:2px 6px;border-radius:4px;transition:background-color .2s ease}.column-name.editable:hover{background-color:#f1f5f9}.column-name-input{border:1px solid #3b82f6;border-radius:4px;padding:4px 8px;font-weight:600;color:#1e293b;background:#fff}.column-meta{display:flex;align-items:center;gap:8px;margin-bottom:5px}.column-type{font-size:.875rem;color:#64748b;text-transform:uppercase}.nullable{background-color:#fef3c7;color:#92400e;padding:2px 6px;border-radius:3px;font-size:.7rem;font-weight:600}.column-stats{font-size:.8rem;color:#64748b;display:flex;gap:10px}.target-column{background:#fff;border:2px dashed #cbd5e1;border-radius:6px;padding:15px;transition:all .2s ease;position:relative}.target-column.drag-over{border-color:#3b82f6;background-color:#dbeafe;border-style:solid}.target-column.mapped{border-color:#10b981;border-style:solid;background-color:#f0fdf4}.delete-column{background:none;border:none;color:#ef4444;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s ease}.delete-column:hover{background-color:#fef2f2}.column-type-selector{margin:10px 0}.type-select{width:100%;padding:6px 10px;border:1px solid #d1d5db;border-radius:4px;background:#fff;font-size:.875rem}.mapping-info{margin-top:10px}.mapped-source{display:flex;align-items:center;gap:8px;font-size:.875rem;color:#10b981;margin-bottom:5px}.mapping-arrow{color:#10b981}.mapping-transformation{font-size:.8rem;color:#64748b;font-style:italic}.drop-zone{text-align:center;color:#94a3b8;font-size:.875rem;padding:20px;background-color:#f8fafc;border-radius:4px;margin-top:10px}.mapping-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#64748b}.large-arrow{font-size:2rem;color:#3b82f6}.mapping-summary{background:#fff;border-radius:8px;border:2px solid #e2e8f0;padding:25px}.mapping-summary h3{margin:0 0 20px;color:#1e293b}.mappings-list{display:flex;flex-direction:column;gap:10px}.mapping-item{display:flex;align-items:center;gap:15px;padding:12px;background-color:#f8fafc;border-radius:6px;border:1px solid #e2e8f0}.source-col{font-weight:600;color:#3b82f6}.target-col{font-weight:600;color:#10b981}.transformation-type{font-size:.875rem;color:#64748b;background-color:#e2e8f0;padding:4px 8px;border-radius:4px}.target-schema-editor{padding:30px}.editor-header{margin-bottom:30px}.editor-header h2{margin:0 0 10px;color:#1e293b;font-size:1.5rem}.editor-header p{margin:0;color:#64748b;font-size:1rem}.editor-content{display:flex;flex-direction:column;gap:30px}.settings-section,.schema-section,.advanced-section,.sql-preview-section{background:#fff;border-radius:8px;border:2px solid #e2e8f0;padding:25px}.settings-section h3,.schema-section h3,.sql-preview-section h3{margin:0 0 20px;color:#1e293b;font-size:1.25rem;display:flex;align-items:center;gap:10px}.setting-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.setting-group{display:flex;flex-direction:column;gap:8px}.setting-group label{font-weight:600;color:#374151;font-size:.875rem}.setting-group input,.setting-group select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;transition:border-color .2s ease}.setting-group input:focus,.setting-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.setting-group small{color:#64748b;font-size:.8rem}.connection-specific-settings{margin-top:20px;padding:20px;background-color:#f8fafc;border-radius:6px;border:1px solid #e2e8f0}.connection-specific-settings h4{margin:0 0 15px;color:#1e293b;font-size:1rem}.schema-table{display:flex;flex-direction:column;gap:2px;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.schema-header{display:grid;grid-template-columns:2fr 1fr auto auto auto;gap:15px;padding:12px 15px;background-color:#f8fafc;font-weight:600;color:#374151;font-size:.875rem;border-bottom:1px solid #e2e8f0}.schema-row{display:grid;grid-template-columns:2fr 1fr auto auto auto;gap:15px;padding:12px 15px;background-color:#fff;align-items:center}.schema-row:not(:last-child){border-bottom:1px solid #f1f5f9}.column-name-input{border:1px solid #d1d5db;border-radius:4px;padding:6px 10px;font-size:.875rem}.column-type-select{border:1px solid #d1d5db;border-radius:4px;padding:6px 10px;font-size:.875rem;background:#fff}.advanced-settings{margin-top:20px;padding:20px;background-color:#f8fafc;border-radius:6px;border:1px solid #e2e8f0}.sql-preview{background-color:#1e293b;color:#e2e8f0;padding:20px;border-radius:6px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;line-height:1.5;overflow-x:auto;border:1px solid #374151}.sql-preview code{color:#e2e8f0;white-space:pre-wrap}.transform-executor{padding:30px}.executor-header{margin-bottom:30px}.executor-header h2{margin:0 0 10px;color:#1e293b;font-size:1.5rem}.executor-header p{margin:0;color:#64748b;font-size:1rem}.config-summary{background:#fff;border-radius:8px;border:2px solid #e2e8f0;padding:25px;margin-bottom:30px}.config-summary h3{margin:0 0 20px;color:#1e293b;font-size:1.25rem}.execution-controls{background:#fff;border-radius:8px;border:2px solid #e2e8f0;padding:25px;margin-bottom:30px;display:flex;align-items:center;justify-content:space-between}.status-display{display:flex;align-items:center;gap:12px}.status-icon{font-size:1.5rem}.status-icon.ready{color:#64748b}.status-icon.running{color:#3b82f6;animation:pulse 2s infinite}.status-icon.completed{color:#10b981}.status-icon.failed{color:#ef4444}.status-icon.paused{color:#f59e0b}.status-text{font-size:1.125rem;font-weight:600;color:#1e293b}.control-buttons{display:flex;gap:12px}.btn-lg{padding:15px 25px;font-size:1rem}.btn-warning{background-color:#f59e0b;color:#fff}.btn-warning:hover{background-color:#d97706}.btn-danger{background-color:#ef4444;color:#fff}.btn-danger:hover{background-color:#dc2626}.progress-section{background:#fff;border-radius:8px;border:2px solid #e2e8f0;padding:25px;margin-bottom:30px}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-weight:600;color:#374151}.progress-bar{width:100%;height:12px;background-color:#f1f5f9;border-radius:6px;overflow:hidden;margin-bottom:10px}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#1d4ed8);transition:width .3s ease;border-radius:6px}.throughput-info{text-align:center;font-size:.875rem;color:#64748b}.execution-stats{background:#fff;border-radius:8px;border:2px solid #e2e8f0;padding:25px;margin-bottom:30px}.execution-stats h4{margin:0 0 20px;color:#1e293b;font-size:1.125rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background-color:#f8fafc;border-radius:6px;border:1px solid #e2e8f0}.stat-item label{font-weight:600;color:#374151}.stat-item span{color:#1e293b}.execution-logs{background:#fff;border-radius:8px;border:2px solid #e2e8f0;padding:25px}.execution-logs h4{margin:0 0 20px;color:#1e293b;font-size:1.125rem}.logs-container{max-height:300px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:6px;background-color:#1e293b}.log-entry{display:flex;gap:15px;padding:8px 15px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.875rem;border-bottom:1px solid #374151}.log-entry:last-child{border-bottom:none}.log-entry.info{color:#e2e8f0}.log-entry.success{color:#34d399}.log-entry.warning{color:#fbbf24}.log-entry.error{color:#f87171}.log-timestamp{color:#9ca3af;min-width:80px}.log-message{flex:1}@media (max-width: 1200px){.mapping-workspace{grid-template-columns:1fr;gap:20px}.mapping-indicator{order:-1}.large-arrow{transform:rotate(90deg)}}@media (max-width: 768px){.connection-grid,.file-grid,.summary-grid,.setting-row{grid-template-columns:1fr}.schema-header,.schema-row{grid-template-columns:1fr;gap:10px}.execution-controls{flex-direction:column;gap:20px}.control-buttons{width:100%;justify-content:center}.stats-grid{grid-template-columns:1fr}}.transform-builder{padding:20px;max-width:1400px;margin:0 auto;background-color:#f8fafc;min-height:100vh}.transform-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.transform-title h1{margin:0;color:#1e293b;font-size:2rem;font-weight:600}.transform-title p{margin:5px 0 0;color:#64748b;font-size:1rem}.transform-actions{display:flex;gap:12px}.step-progress{display:flex;align-items:center;justify-content:center;margin-bottom:40px;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.step{display:flex;align-items:center;cursor:pointer;transition:all .3s ease;padding:10px;border-radius:8px;min-width:200px}.step:hover{background-color:#f1f5f9}.step.active{background-color:#dbeafe}.step.completed .step-number{background-color:#10b981;color:#fff}.step-number{width:40px;height:40px;border-radius:50%;background-color:#e2e8f0;color:#64748b;display:flex;align-items:center;justify-content:center;font-weight:600;margin-right:12px;transition:all .3s ease}.step.active .step-number{background-color:#3b82f6;color:#fff}.step-info{flex:1}.step-title{font-weight:600;color:#1e293b;margin-bottom:2px}.step-description{font-size:.875rem;color:#64748b}.step-arrow{margin:0 15px;color:#cbd5e1;font-size:1.2rem}.step-content{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;min-height:500px}.step-navigation{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.btn{display:flex;align-items:center;gap:8px;padding:12px 20px;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;font-size:.875rem}.btn-primary{background-color:#3b82f6;color:#fff}.btn-secondary{background-color:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.btn-secondary:hover:not(:disabled){background-color:#e2e8f0}@media (max-width: 768px){.transform-header{flex-direction:column;align-items:flex-start;gap:15px}.step-progress{flex-direction:column;gap:10px}.step{width:100%;justify-content:flex-start}.step-arrow{transform:rotate(90deg);margin:10px 0}.step-navigation{flex-direction:column;gap:15px}}.transformation-details-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.transformation-details-panel{background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000026;max-width:900px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;font-size:.8rem}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e6e6e6;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.panel-header h2{margin:0;font-size:1rem;font-weight:600}.close-btn{background:#fff3;border:none;border-radius:6px;padding:8px;cursor:pointer;color:#fff;transition:background .2s;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#ffffff4d}.panel-content{flex:1;overflow-y:auto;padding:16px}.section{margin-bottom:20px}.section:last-child{margin-bottom:0}.section h3{margin:0 0 10px;font-size:.9rem;font-weight:600;color:#2d3748;display:flex;align-items:center;gap:6px}.description-text{color:#4a5568;line-height:1.6;margin:0}.file-flow{display:flex;align-items:center;gap:12px;padding:8px;background:#f7fafc;border-radius:8px}@media (max-width: 768px){.file-flow{flex-direction:column}.arrow-connector{transform:rotate(90deg)}}.file-metadata-card{flex:1;background:#fff;border-radius:6px;padding:7px;box-shadow:0 2px 8px #00000014;text-align:left}.file-metadata-card.source{border-left:4px solid #48bb78}.file-metadata-card.target{border-left:4px solid #4299e1}.file-header{display:flex;align-items:center;gap:6px;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid #e6e6e6;text-align:left}.file-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:#718096}.file-name{font-weight:600;font-size:.75rem;color:#2d3748;margin-bottom:8px;word-break:break-word}.file-stats{display:flex;flex-direction:column;gap:3px;text-align:left}.stat{font-size:.7rem;color:#4a5568;text-align:left}.stat strong{color:#2d3748;font-weight:500;display:inline-block;min-width:70px}.arrow-connector{color:#a0aec0;flex-shrink:0}.derived-fields-list{display:flex;flex-direction:column;gap:12px}.derived-field-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:#f7fafc;border-radius:6px;border-left:3px solid #805ad5}.field-sequence{background:#805ad5;color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.field-info{flex:1;min-width:0}.field-name{font-weight:600;color:#805ad5;margin-bottom:4px;font-size:14px}.field-expression{margin-top:4px}.field-expression code{background:#2d3748;color:#68d391;padding:6px 10px;border-radius:4px;font-size:13px;font-family:Monaco,Menlo,Courier New,monospace;display:inline-block;word-break:break-word}.help-text{margin-top:12px;font-size:13px;color:#718096;font-style:italic}.field-mappings-list{display:flex;flex-direction:column;gap:8px}.field-mapping-item{display:flex;align-items:center;gap:12px;padding:12px;background:#f7fafc;border-radius:6px;border-left:3px solid #4299e1}.mapping-source,.mapping-target{flex:1;min-width:0}.mapping-arrow{color:#a0aec0;flex-shrink:0}.source-field,.target-field{display:inline-block;background:#fff;padding:4px 10px;border-radius:4px;font-size:13px;font-weight:500;margin-right:6px;margin-bottom:4px;color:#2d3748;border:1px solid #e6e6e6}.variable-ref{color:#805ad5;font-weight:600}.no-source{color:#a0aec0;font-style:italic;font-size:13px}.target-field{background:#4299e1;color:#fff;border-color:#4299e1}.transformation-badge{display:inline-flex;align-items:center;gap:4px;background:#805ad5;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;margin-left:8px;vertical-align:middle}.expression-preview{font-family:Monaco,Menlo,Courier New,monospace;font-size:11px}.pii-field-badge{display:inline-flex;align-items:center;gap:4px;background:#fc8181;color:#fff;padding:3px 8px;border-radius:4px;font-size:10px;margin-left:8px;font-weight:600;vertical-align:middle}.pii-shield-icon{font-size:12px}.panel-content::-webkit-scrollbar{width:8px}.panel-content::-webkit-scrollbar-track{background:#f1f1f1}.panel-content::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.panel-content::-webkit-scrollbar-thumb:hover{background:#a0aec0}.lineage-table-wrapper{overflow-x:auto;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;max-width:100%}.lineage-table{width:auto;border-collapse:collapse;min-width:900px;font-size:.75rem}.lineage-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.lineage-table th{padding:8px 10px;text-align:left;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.lineage-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s ease}.lineage-table tbody tr:hover{background-color:#f9fafb}.lineage-table tbody tr:last-child{border-bottom:none}.lineage-table td{padding:8px 10px;text-align:left;font-size:.75rem}.source-cell,.target-cell{max-width:250px;min-width:150px}.file-name-with-pii{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.file-name-compact{font-weight:500;color:#1f2937;word-break:break-word;font-size:.75rem;line-height:1.3}.pii-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .4rem;background:linear-gradient(135deg,#f59e0b,#dc2626);color:#fff;border-radius:12px;font-size:.65rem;font-weight:600;white-space:nowrap;box-shadow:0 1px 3px #f59e0b4d}.pii-icon{font-size:.7rem}.type-cell{font-weight:600;color:#4b5563;font-size:.7rem;white-space:nowrap;min-width:50px}.arrow-cell{width:30px;text-align:center!important;padding:4px!important}.flow-arrow{color:#9ca3af;font-size:16px}.owner-cell{min-width:80px;max-width:120px;color:#374151;font-size:.75rem}.contract-cell{min-width:100px;max-width:150px;color:#059669;font-weight:500;font-size:.75rem}.job-cell{min-width:120px;max-width:180px;color:#4f46e5;font-weight:500;font-size:.75rem}.date-cell{color:#6b7280;font-size:.7rem;white-space:nowrap;min-width:100px}.actions-cell{text-align:center!important;width:70px;padding:4px!important}.view-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:4px;font-size:.7rem;font-weight:500;cursor:pointer;transition:all .2s ease}.view-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #667eea66}.view-btn svg{font-size:12px}.empty-lineage-message{padding:60px 20px;text-align:center;background:#f9fafb;border-radius:8px;color:#6b7280;font-size:1rem}.bulk-actions-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:8px 8px 0 0;margin-bottom:-8px;box-shadow:0 2px 4px #0000001a}.selected-count{font-weight:600;font-size:.9rem}.bulk-delete-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#ef4444;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.bulk-delete-btn:hover:not(:disabled){background:#dc2626;transform:translateY(-1px);box-shadow:0 2px 8px #ef44444d}.bulk-delete-btn:disabled{opacity:.6;cursor:not-allowed}.bulk-delete-btn svg{font-size:14px}.checkbox-column{width:40px;text-align:center}.checkbox-cell{text-align:center;width:40px}.checkbox-cell input[type=checkbox],.checkbox-column input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#667eea}.lineage-table tbody tr.selected-row{background-color:#ede9fe}.lineage-table tbody tr.selected-row:hover{background-color:#ddd6fe}@media (max-width: 1024px){.lineage-table{font-size:.7rem}.lineage-table th,.lineage-table td{padding:6px 8px}.view-btn{padding:4px 6px;font-size:.65rem}.file-name-compact{font-size:.7rem}.bulk-actions-bar{padding:10px 12px}.selected-count{font-size:.8rem}.bulk-delete-btn{padding:6px 12px;font-size:.75rem}}.lineage-container{padding:20px}.page-header{margin-bottom:20px}.page-header h1{margin:0 0 10px}.header-description{color:#6c757d;margin:0}.lineage-content{display:flex;flex-direction:column;gap:20px}.lineage-mapping-section{width:100%}.mapping-card{margin-bottom:0}.section-description{color:#6c757d;margin-bottom:20px}.drop-zones-container{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:20px}.drop-zone{flex:1;min-width:250px;height:180px;border:2px dashed #dee2e6;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:20px;transition:all .2s ease-in-out;position:relative;background-color:#f8f9fa}.drop-zone.has-file{border-style:solid;border-color:#4dabf7;background-color:#e7f5ff}.empty-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#6c757d}.drop-zone-icon{font-size:32px;margin-bottom:12px;color:#adb5bd}.drop-zone-title{display:block;font-weight:500;margin-bottom:8px;color:#495057}.filled-drop-zone{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.drop-zone-content{width:100%}.clear-btn{position:absolute;top:10px;right:10px;background:none;border:none;color:#dc3545;cursor:pointer;padding:0;font-size:16px;z-index:5}.clear-btn:hover{color:#b02a37}.relationship-selector{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.relationship-select{padding:8px 12px;border:1px solid #dee2e6;border-radius:4px;background-color:#fff;color:#495057;min-width:150px;text-align:center;margin-bottom:15px}.arrow-icon{color:#6c757d;font-size:24px}.file-card{border:1px solid #dee2e6;border-radius:6px;padding:10px;background-color:#fff;display:flex;flex-direction:column;gap:5px;cursor:grab;position:relative;box-shadow:0 1px 3px #0000001a;transition:all .2s ease}.file-card:hover{border-color:#4dabf7;box-shadow:0 2px 5px #00000026}.file-card.dragging{box-shadow:0 4px 8px #0003;transform:scale(1.05);border-color:#4dabf7;z-index:1000}.file-type-badge{background-color:#e7f5ff;color:#339af0;border-radius:4px;padding:3px 6px;font-size:11px;text-transform:uppercase;font-weight:600;align-self:flex-start}.file-name{font-weight:500;color:#343a40;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{color:#6c757d;font-size:12px}.create-lineage-actions{display:flex;flex-direction:column;align-items:center;margin-top:20px}.create-btn{padding:8px 16px;font-weight:500}.create-btn:disabled{opacity:.6;cursor:not-allowed}.validation-message{color:#dc3545;margin-top:10px;font-size:14px}.files-and-lineages{display:grid;grid-template-columns:1fr 1fr;gap:20px}.available-files,.lineage-relationships{overflow:hidden}.file-list{max-height:300px;overflow-y:auto;border:1px solid #dee2e6;border-radius:4px;padding:10px;background-color:#f8f9fa;display:flex;flex-direction:column;gap:10px}.draggable-file{display:flex;align-items:center;gap:10px}.impact-btn{background:none;border:none;cursor:pointer;color:#339af0;padding:0;font-size:18px;display:flex;align-items:center;justify-content:center}.impact-btn:hover{color:#1c7ed6}.lineage-list{max-height:300px;overflow-y:auto;border:1px solid #dee2e6;border-radius:4px;padding:10px;background-color:#f8f9fa;display:flex;flex-direction:column;gap:10px}.lineage-item{display:flex;align-items:center;background-color:#fff;border:1px solid #dee2e6;border-radius:6px;padding:10px;gap:10px;font-size:14px}.lineage-source,.lineage-target{flex:1;display:flex;flex-direction:column;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.lineage-relation{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:90px}.relation-type{font-size:12px;color:#6c757d}.relation-arrow{color:#adb5bd}.file-type-pill{font-size:10px;color:#339af0;background-color:#e7f5ff;border-radius:10px;padding:2px 6px;align-self:flex-start;text-transform:uppercase}.lineage-actions{display:flex;gap:8px}.delete-btn{background:none;border:none;cursor:pointer;color:#dc3545;padding:0;font-size:16px}.delete-btn:hover{color:#b02a37}.empty-message{color:#6c757d;text-align:center;padding:20px}.lineage-visualization-card{margin-top:30px;margin-bottom:30px}.lineage-visualization-card .card-header{margin-bottom:20px}.lineage-visualization-card .header-title{display:flex;align-items:center;gap:10px;margin-bottom:10px}.lineage-visualization-card .header-icon{color:#339af0;font-size:24px}.lineage-visualization-card h2{margin:0}.empty-graph-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 0;color:#adb5bd;text-align:center}.empty-graph-message .empty-icon{font-size:48px;margin-bottom:20px;opacity:.5}.lineage-info-card{margin-top:30px}.info-header{display:flex;align-items:center;gap:10px;margin-bottom:15px}.info-icon{color:#339af0;font-size:20px}.info-header h3{margin:0}.relationship-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:15px;padding-left:20px}.success-message{background-color:#d4edda;color:#155724;padding:10px 15px;border-radius:4px;margin-bottom:20px;animation:fadeIn .3s ease-in-out}.error-message{background-color:#f8d7da;color:#721c24;padding:10px 15px;border-radius:4px;margin-bottom:20px;animation:fadeIn .3s ease-in-out}@media (max-width: 992px){.files-and-lineages,.relationship-types{grid-template-columns:1fr}}@media (max-width: 768px){.drop-zones-container{flex-direction:column}.drop-zone{min-width:100%}.relationship-selector{order:3;margin:10px 0}}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex-wrap:wrap;gap:15px}.header-title{display:flex;align-items:center;gap:10px}.header-actions{display:flex;gap:10px}.scan-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;font-size:.9rem;white-space:nowrap}.scan-btn:disabled{opacity:.6;cursor:not-allowed}.spinner-small{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.scan-results{background:linear-gradient(135deg,#e3f2fd,#f3e5f5);border-radius:8px;padding:20px;margin-bottom:20px;border:1px solid #90caf9}.scan-results h4{margin:0 0 15px;color:#1565c0;font-size:1rem}.scan-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:15px}.scan-stat{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fff;border-radius:6px;border-left:4px solid #64b5f6}.scan-stat.created{border-left-color:#66bb6a}.scan-stat.updated{border-left-color:#42a5f5}.scan-stat.skipped{border-left-color:#ffa726}.scan-stat.errors{border-left-color:#ef5350}.scan-stat .stat-label{font-size:.85rem;color:#666;font-weight:500}.scan-stat .stat-value{font-size:1.5rem;font-weight:700;color:#333}.lineage-features{list-style:none;padding-left:0;margin-top:15px}.lineage-features li{padding:8px 0;border-bottom:1px solid #f0f0f0}.lineage-features li:last-child{border-bottom:none}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.lineage-graph-wrapper{width:100%;height:500px;border:1px solid #e6e6e6;border-radius:8px;overflow:hidden;position:relative;background-color:#fafafa}.lineage-node{width:180px;background:#fff;border-radius:8px;box-shadow:0 4px 6px #00000014;font-family:inherit;transition:all .2s ease;overflow:hidden}.lineage-node:hover{box-shadow:0 6px 10px #0000001a;transform:translateY(-2px)}.lineage-node.root-node{background-color:#e7f5ff;border-color:#4dabf7;box-shadow:0 0 10px #4dabf733}.lineage-node.root-node:hover{box-shadow:0 0 15px #4dabf74d}.node-header{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid #f0f0f0;gap:8px}.node-header.file-type-csv{background-color:#e6f7ff;color:#0070f3}.node-header.file-type-json{background-color:#fff7e6;color:#fa8c16}.node-header.file-type-parquet{background-color:#f6ffed;color:#52c41a}.node-header.file-type-excel{background-color:#e6fffb;color:#13c2c2}.node-type{font-size:.7rem;font-weight:600;text-transform:uppercase}.node-content{padding:12px}.node-title{font-size:.85rem;font-weight:500;color:#333;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.node-size{font-size:.75rem;color:#777}.transformation-node{width:200px;background:linear-gradient(135deg,#667eea,#764ba2);border:2px solid #805ad5;cursor:pointer}.transformation-node:hover{box-shadow:0 8px 16px #805ad54d;transform:translateY(-3px) scale(1.02)}.transformation-header{background:#ffffff26;color:#fff;border-bottom-color:#fff3}.transformation-node .node-content{color:#fff}.transformation-node .node-title{color:#fff;font-weight:600;max-width:180px}.node-description{font-size:.7rem;color:#ffffffd9;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.transformation-stats{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.stat-badge{background:#ffffff40;color:#fff;padding:2px 8px;border-radius:12px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.lineage-graph-loading,.lineage-graph-error,.empty-graph{display:flex;flex-direction:column;align-items:center;justify-content:center;height:500px;background-color:#fafafa;border:1px solid #e6e6e6;border-radius:8px}.lineage-graph-error{color:#e53e3e}.empty-graph{color:#adb5bd;text-align:center;padding:20px}.empty-graph .empty-icon{font-size:48px;margin-bottom:20px;opacity:.5}.layout-controls{margin:10px;background:#fff;padding:8px;border-radius:6px;box-shadow:0 2px 4px #0000001a}.control-buttons{display:flex;gap:6px}.control-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #e6e6e6;border-radius:4px;background:#fff;color:#555;cursor:pointer;transition:all .2s ease}.control-btn:hover{background:#f5f5f5;color:#3182ce}.direction-icon{display:block;width:16px;height:16px;position:relative}.direction-icon.horizontal:before,.direction-icon.horizontal:after{content:"";position:absolute;background-color:currentColor}.direction-icon.horizontal:before{width:14px;height:2px;top:7px;left:1px}.direction-icon.horizontal:after{width:0;height:0;top:4px;right:1px;border-style:solid;border-width:4px 0 4px 4px;border-color:transparent transparent transparent currentColor}.direction-icon.vertical:before,.direction-icon.vertical:after{content:"";position:absolute;background-color:currentColor}.direction-icon.vertical:before{width:2px;height:14px;top:1px;left:7px}.direction-icon.vertical:after{width:0;height:0;bottom:1px;left:4px;border-style:solid;border-width:4px 4px 0 4px;border-color:currentColor transparent transparent transparent}.react-flow__edge-path{stroke-width:2;stroke:#3182ce}.react-flow__edge-text{font-size:12px;fill:#333}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__attribution{display:none}.react-flow__minimap{border-radius:6px;overflow:hidden}.react-flow__controls{border-radius:6px;box-shadow:0 2px 6px #0000001a;overflow:hidden}.react-flow__controls-button{border:none!important;background:#fff!important;border-bottom:1px solid #f0f0f0!important}.react-flow__controls-button:hover{background:#f5f5f5!important}.react-flow__controls-button svg{fill:#555}.react-flow__node{transition:opacity .3s ease;animation:nodeAppear .3s ease forwards;opacity:0}@keyframes nodeAppear{0%{opacity:0}to{opacity:1}}.react-flow__node:nth-child(1){animation-delay:.05s}.react-flow__node:nth-child(2){animation-delay:.1s}.react-flow__node:nth-child(3){animation-delay:.15s}.react-flow__node:nth-child(4){animation-delay:.2s}.react-flow__node:nth-child(5){animation-delay:.25s}.react-flow__node:nth-child(6){animation-delay:.3s}.react-flow__node:nth-child(7){animation-delay:.35s}.react-flow__node:nth-child(8){animation-delay:.4s}.react-flow__node:nth-child(9){animation-delay:.45s}.react-flow__node:nth-child(10){animation-delay:.5s}.lineage-impact-container{padding:20px}.page-header{display:flex;align-items:center;margin-bottom:20px}.back-button{display:flex;align-items:center;background:none;border:none;color:#3498db;cursor:pointer;font-size:14px;margin-right:20px;padding:0}.back-button svg{margin-right:5px}.page-header h1{margin:0}.file-info-card{margin-bottom:20px}.file-header{display:flex;align-items:center;margin-bottom:20px}.file-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background-color:#e7f5ff;border-radius:8px;margin-right:20px;color:#339af0}.file-details h2{margin:0 0 8px;font-size:18px}.file-meta{display:flex;flex-wrap:wrap;gap:16px;color:#6c757d;font-size:14px}.file-type{font-weight:500;color:#339af0}.impact-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #e9ecef;padding-top:15px}.direction-toggle{display:flex;align-items:center;gap:10px}.direction-toggle span{font-weight:500;color:#495057}.toggle-buttons{display:flex;gap:5px}.toggle-btn{display:flex;align-items:center;padding:6px 12px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;color:#495057;cursor:pointer;font-size:14px;transition:all .2s ease}.toggle-btn .btn-icon{margin-right:5px}.toggle-btn.active{background-color:#e7f5ff;border-color:#4dabf7;color:#1c7ed6}.toggle-btn:hover{background-color:#e9ecef}.depth-selector{display:flex;align-items:center}.depth-selector label{display:flex;align-items:center;gap:8px;color:#495057;font-weight:500}.depth-select{padding:6px 10px;border:1px solid #dee2e6;border-radius:4px;background-color:#fff;width:100px}.refresh-btn{display:flex;align-items:center}.btn-icon{margin-right:5px}.impact-graph-card{height:600px;display:flex;flex-direction:column}.impact-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.impact-title h3{margin:0;font-size:16px}.impact-legend{display:flex;gap:15px}.legend-item{display:flex;align-items:center;gap:5px;font-size:12px;color:#6c757d}.legend-color{width:16px;height:16px;border-radius:3px;border:1px solid #dee2e6}.legend-color.root{background-color:#e3faff;border-color:#4dabf7}.legend-color.related{background-color:#f8f9fa;border-color:#dee2e6}.lineage-graph-container{position:relative;flex:1;min-height:0;border:1px solid #e9ecef;border-radius:4px;overflow:hidden;background-color:#f8f9fa}.lineage-graph{width:100%;height:100%;cursor:grab}.graph-controls{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:5px;z-index:10}.control-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background-color:#fff;border:1px solid #dee2e6;border-radius:4px;color:#495057;cursor:pointer;transition:all .2s ease}.control-btn:hover{background-color:#e9ecef;color:#1c7ed6}.empty-graph{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-align:center;color:#adb5bd}.empty-icon{font-size:48px;margin-bottom:16px}.impact-summary{display:flex;align-items:center;padding:10px 15px;background-color:#e7f5ff;border-radius:4px;margin-top:15px;color:#1c7ed6}.info-icon{margin-right:10px}.impact-summary p{margin:0}.error-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}@media (max-width: 768px){.impact-controls{flex-direction:column;align-items:flex-start;gap:15px}.direction-toggle{flex-direction:column;align-items:flex-start;gap:10px;width:100%}.toggle-buttons{width:100%}.toggle-btn{flex:1;justify-content:center}}.lineage-page{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;height:100vh;display:flex;flex-direction:column;background:#f9fafb}.lineage-controls{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#fff;border-bottom:1px solid #E5E7EB}.lineage-controls-left h2{margin:0;font-size:16px;font-weight:600;color:#025043;display:flex;align-items:center;gap:8px}.lineage-controls-right{display:flex;gap:10px;align-items:center}.lineage-btn{font-family:Inter,sans-serif;font-size:12px;font-weight:500;padding:7px 14px;border-radius:4px;border:none;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.lineage-btn-primary{background:#025043;color:#fff}.lineage-btn-primary:hover:not(:disabled){background:#013830}.lineage-btn-primary:disabled{background:#d1d5db;cursor:not-allowed}.lineage-btn-secondary{background:#e5e7eb;color:#374151}.lineage-btn-secondary:hover{background:#d1d5db}.lineage-export-dropdown{position:relative}.lineage-export-dropdown:hover .lineage-export-menu{display:block}.lineage-export-menu{display:none;position:absolute;top:100%;right:0;margin-top:4px;background:#fff;border:1px solid #E5E7EB;border-radius:4px;box-shadow:0 4px 6px #0000001a;z-index:1000;min-width:140px}.lineage-export-menu button{font-family:Inter,sans-serif;font-size:12px;width:100%;text-align:left;padding:8px 12px;border:none;background:none;cursor:pointer;color:#374151;transition:background .2s}.lineage-export-menu button:hover{background:#f3f4f6}.lineage-filters{display:flex;gap:12px;padding:12px 20px;background:#fff;border-bottom:1px solid #E5E7EB;align-items:flex-end;flex-wrap:wrap}.lineage-filter-group{display:flex;flex-direction:column;gap:4px}.lineage-filter-group label{font-size:11px;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.3px}.lineage-filter-group select,.lineage-filter-group input{font-family:Inter,sans-serif;font-size:12px;padding:6px 10px;border:1px solid #D1D5DB;border-radius:4px;background:#fff;color:#374151;min-width:150px}.lineage-filter-group select:focus,.lineage-filter-group input:focus{outline:none;border-color:#025043;box-shadow:0 0 0 2px #0250431a}.lineage-filter-checkbox{flex-direction:row;align-items:center;gap:6px}.lineage-filter-checkbox label{font-size:12px;text-transform:none;display:flex;align-items:center;gap:6px;cursor:pointer}.lineage-filter-checkbox input[type=checkbox]{min-width:auto;width:14px;height:14px;cursor:pointer}.lineage-error{background:#fee2e2;color:#991b1b;padding:10px 20px;font-size:12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #FCA5A5}.lineage-canvas{flex:1;position:relative;background:#f9fafb}.lineage-canvas .react-flow{font-family:Inter,sans-serif}.lineage-legend{background:#fff;border:1px solid #E5E7EB;border-radius:6px;padding:10px;font-size:11px;box-shadow:0 2px 4px #0000000d;transition:all .3s ease;max-height:80vh;overflow:hidden}.lineage-legend.collapsed{max-height:40px}.lineage-legend-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.lineage-legend-title{font-weight:600;font-size:12px;color:#374151;text-transform:uppercase;letter-spacing:.3px}.lineage-legend-toggle{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:color .2s;font-size:12px}.lineage-legend-toggle:hover{color:#025043}.lineage-legend-content{transition:opacity .3s ease;opacity:1}.lineage-legend.collapsed .lineage-legend-content{opacity:0;height:0;overflow:hidden}.lineage-legend-item{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:#6b7280}.lineage-legend-color{width:12px;height:12px;border-radius:2px}.lineage-legend-section{font-size:10px;font-weight:600;color:#111827;text-transform:uppercase;letter-spacing:.5px;margin-top:8px;margin-bottom:6px}.lineage-legend-divider{height:1px;background:#e5e7eb;margin:8px 0}.lineage-legend-badge{font-size:8px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;background:#fff;color:#6b7280;min-width:50px;text-align:center;border:1.5px solid}.lineage-legend-badge-phi{border-color:#7c3aed}.lineage-legend-badge-confidential{border-color:#dc2626}.lineage-legend-badge-internal{border-color:#f59e0b}.lineage-legend-badge-public{border-color:#10b981}.lineage-legend-badge-pii{border-color:#7c3aed}.lineage-node{font-family:Inter,sans-serif;padding:10px 14px;border-radius:6px;border:2px solid;background:#fff;min-width:150px;max-width:250px;box-shadow:0 2px 4px #0000001a;cursor:pointer;transition:all .2s;position:relative}.lineage-node:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.lineage-node-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.lineage-node-icon{font-size:14px}.lineage-node-label{font-size:12px;font-weight:600;color:#111827;word-break:break-word}.lineage-node-meta{font-size:10px;color:#6b7280;margin-top:4px}.lineage-node-badges{display:flex;gap:4px;justify-content:center;flex-wrap:wrap;margin-top:6px}.lineage-node-version-badge{background:#fff;color:#6b7280;border:1.5px solid #3B82F6;border-radius:4px;padding:2px 6px;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:600;text-transform:lowercase;letter-spacing:.3px}.lineage-node-incident-badge{background:#fff;color:#6b7280;border:1.5px solid #DC2626;border-radius:4px;padding:2px 6px;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.lineage-node-pii-badge{background:#fff;color:#6b7280;border:1.5px solid #7C3AED;border-radius:4px;padding:2px 6px;display:flex;align-items:center;gap:3px;font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.lineage-node-pii-badge svg{font-size:8px}.lineage-node-classification-badge{background:#fff;color:#6b7280;border:1.5px solid;border-radius:4px;padding:2px 6px;display:flex;align-items:center;gap:3px;font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.lineage-node-classification-badge svg{font-size:8px}.lineage-node-derived-badge{display:inline-block;background:#8b5cf6;color:#fff;font-size:9px;font-weight:600;padding:2px 6px;border-radius:3px;margin-top:4px}.lineage-node-vendor{border-color:#6366f1}.lineage-node-file{border-color:#3b82f6}.lineage-node-transformation{border-color:#f59e0b}.lineage-node-derived{border-color:#8b5cf6;background:#f5f3ff}.lineage-node-target{border-color:#025043}.lineage-node-job{border-color:#10b981}.lineage-canvas .react-flow__node,.lineage-canvas .react-flow__node-default,.lineage-canvas .react-flow__node-input,.lineage-canvas .react-flow__node-output{position:absolute!important;border:none!important;background:transparent!important;box-shadow:none!important;padding:0!important;outline:none!important}.lineage-canvas .react-flow__node:hover,.lineage-canvas .react-flow__node.selected,.lineage-canvas .react-flow__node:active,.lineage-canvas .react-flow__node:focus{box-shadow:none!important;filter:none!important;background:transparent!important;outline:none!important}.lineage-canvas .react-flow__node.selected .lineage-node{box-shadow:0 0 0 3px #0250434d}.react-flow__edge-path{stroke-width:2}.react-flow__edge.animated .react-flow__edge-path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.node-detail-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;pointer-events:none}.node-detail-drawer.open{pointer-events:all}.drawer-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0000004d;opacity:0;transition:opacity .3s}.node-detail-drawer.open .drawer-overlay{opacity:1}.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:450px;background:#fff;box-shadow:-4px 0 12px #00000026;transform:translate(100%);transition:transform .3s;display:flex;flex-direction:column;font-family:Inter,sans-serif}.node-detail-drawer.open .drawer-panel{transform:translate(0)}.drawer-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #E5E7EB;background:#f9fafb}.drawer-title{display:flex;align-items:center;gap:12px}.drawer-title-main{font-size:14px;font-weight:600;color:#111827}.drawer-title-sub{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.3px}.drawer-close{background:none;border:none;font-size:18px;color:#6b7280;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.drawer-close:hover{background:#e5e7eb;color:#111827}.drawer-content{flex:1;overflow-y:auto;padding:20px}.drawer-loading,.drawer-error{padding:20px;text-align:center;font-size:12px;color:#6b7280}.drawer-error{color:#dc2626}.drawer-section{margin-bottom:24px}.drawer-section h3{font-size:12px;font-weight:600;color:#111827;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #E5E7EB}.drawer-metadata{display:flex;flex-direction:column;gap:10px}.drawer-metadata-item{display:flex;font-size:11px;line-height:1.5}.drawer-metadata-key{font-weight:500;color:#6b7280;min-width:140px;flex-shrink:0}.drawer-metadata-value{color:#111827;word-break:break-word}.drawer-governance{display:flex;flex-direction:column;gap:12px}.drawer-governance-item{display:flex;align-items:flex-start;font-size:11px;gap:8px}.drawer-governance-item.drawer-governance-columns{flex-direction:column;gap:8px}.drawer-governance-label{font-weight:500;color:#6b7280;display:flex;align-items:center;gap:6px;min-width:140px;flex-shrink:0}.drawer-governance-value{font-weight:600;padding:2px 8px;border-radius:3px}.drawer-governance-yes{color:#7c3aed;background:#f5f3ff}.drawer-governance-no{color:#6b7280;background:#f3f4f6}.drawer-governance-classification{font-weight:600;padding:3px 10px;border-radius:3px;color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:.5px}.drawer-governance-classification-confidential{background:#dc2626}.drawer-governance-classification-phi{background:#7c3aed}.drawer-governance-classification-internal{background:#f59e0b}.drawer-governance-classification-public{background:#10b981}.drawer-pii-columns-list{display:flex;flex-wrap:wrap;gap:6px;margin-left:0}.drawer-pii-column-badge{background:#f5f3ff;color:#7c3aed;font-size:10px;font-weight:600;padding:3px 8px;border-radius:3px;border:1px solid #DDD6FE}.drawer-derived-columns{display:flex;flex-direction:column;gap:12px}.drawer-derived-column{background:#f5f3ff;border:1px solid #DDD6FE;border-radius:6px;padding:10px}.drawer-derived-column-name{font-size:12px;font-weight:600;color:#5b21b6;display:flex;align-items:center;gap:6px;margin-bottom:6px}.drawer-derived-column-expression{font-size:10px;font-family:Courier New,monospace;background:#fff;padding:6px 8px;border-radius:4px;margin-bottom:6px;color:#374151;word-break:break-all}.drawer-derived-column-meta{font-size:9px;color:#6b7280}.drawer-incidents-summary{display:flex;gap:12px;margin-bottom:16px}.drawer-incident-stat{flex:1;background:#f9fafb;border:1px solid #E5E7EB;border-radius:6px;padding:10px;display:flex;align-items:center;gap:8px;font-size:11px}.drawer-incident-stat svg{font-size:16px;color:#6b7280}.drawer-incident-stat-value{font-size:18px;font-weight:600;color:#111827}.drawer-incident-stat-label{font-size:9px;color:#6b7280;text-transform:uppercase;letter-spacing:.3px}.drawer-incident-critical{border-color:#fca5a5;background:#fef2f2}.drawer-incident-critical svg{color:#dc2626}.drawer-incident-warning{border-color:#fde68a;background:#fffbeb}.drawer-incident-warning svg{color:#f59e0b}.drawer-incidents-list{display:flex;flex-direction:column;gap:8px}.drawer-incident-item{display:flex;gap:10px;padding:10px;background:#f9fafb;border-radius:6px;border:1px solid #E5E7EB}.drawer-incident-severity{font-size:9px;font-weight:600;text-transform:uppercase;padding:4px 8px;border-radius:4px;align-self:flex-start;letter-spacing:.3px}.drawer-incident-severity-critical,.drawer-incident-severity-error{background:#fee2e2;color:#991b1b}.drawer-incident-severity-warning{background:#fef3c7;color:#92400e}.drawer-incident-details{flex:1}.drawer-incident-rule{font-size:11px;font-weight:600;color:#111827;margin-bottom:3px}.drawer-incident-type{font-size:10px;color:#6b7280;margin-bottom:3px}.drawer-incident-count{font-size:10px;color:#dc2626;font-weight:500}.gps-tabs{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:2px solid #e2e8f0}.gps-tab{font-family:var(--gps-font-family, "Inter", sans-serif);font-size:12px;font-weight:500;padding:12px 20px;background:none;border:none;border-bottom:3px solid transparent;color:#6b7280;cursor:pointer;transition:all .2s ease;margin-bottom:-2px}.gps-tab:hover{color:#025043}.gps-tab--active{color:#025043;font-weight:600;border-bottom-color:#025043}.gps-pagination-container{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:12px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:6px}.gps-pagination-controls{display:flex;align-items:center;gap:24px}.gps-page-size-selector{display:flex;align-items:center;gap:8px;font-family:var(--gps-font-family, "Inter", sans-serif);font-size:10px;font-weight:500;color:#666}.gps-page-buttons{display:flex;align-items:center;gap:8px}.gps-page-indicator{font-family:var(--gps-font-family, "Inter", sans-serif);font-size:10px;font-weight:600;color:#333;padding:0 12px}.gps-subrow{background:#f9fafb}.gps-subrow td{padding:0!important}.expanded-row{background-color:#f9fafb}.expanded-row td{padding:0}.expanded-content,.expanded-content-with-logs{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:24px}.expanded-section{background:#fff;border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000001a}.expanded-section h3{font-size:1rem;color:#333;margin:0 0 16px;font-weight:600;border-bottom:2px solid #e5e7eb;padding-bottom:8px}.expanded-section h4{font-size:.9rem;color:#374151;margin:16px 0 12px;font-weight:600}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-item{display:flex;flex-direction:row;gap:8px;align-items:center}.detail-label{font-size:calc(.75rem - 2px);color:#6b7280;text-transform:uppercase;letter-spacing:.5px;font-weight:500;white-space:nowrap}.detail-value{font-size:calc(.85rem - 2px);color:#111827;font-weight:500;word-break:break-all}.load-steps,.error-details{margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.error-details pre{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:12px;font-size:.8rem;color:#991b1b;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word}.schema-details{display:flex;flex-direction:column;gap:16px}.schema-info{display:flex;flex-direction:column;gap:8px}.schema-meta{display:flex;gap:8px;align-items:center}.schema-label{font-size:calc(.75rem - 2px);color:#6b7280;font-weight:500;white-space:nowrap}.schema-value{font-size:calc(.85rem - 2px);color:#111827;font-family:monospace}.schema-columns h4{font-size:.9rem;margin-bottom:12px}.schema-table{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden}.schema-table-header{display:grid;grid-template-columns:2fr 1fr 1fr;background:#f3f4f6;padding:8px 12px;font-size:.75rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.5px}.schema-table-body{max-height:300px;overflow-y:auto}.schema-table-row{display:grid;grid-template-columns:2fr 1fr 1fr;padding:8px 12px;border-top:1px solid #e5e7eb;font-size:.85rem}.schema-table-row:nth-child(2n){background:#f9fafb}.schema-table-row .col{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schema-diff{margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.schema-diff pre{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;padding:12px;font-size:.8rem;color:#374151;overflow-x:auto;max-height:200px;overflow-y:auto}.no-schema,.schema-error{padding:16px;text-align:center;color:#6b7280;font-size:.85rem;font-style:italic}.schema-error{color:#dc2626}.pagination-container{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.pagination-info{font-size:.85rem;color:#6b7280}.pagination-controls{display:flex;align-items:center;gap:24px}.page-size-selector{display:flex;align-items:center;gap:8px;font-size:.85rem;color:#374151}.page-size-selector select{padding:6px 32px 6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;background-color:#fff;cursor:pointer;transition:all .2s ease}.page-size-selector select:hover{border-color:#2196f3}.page-size-selector select:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.page-buttons{display:flex;align-items:center;gap:8px}.pagination-btn{padding:8px 16px;border:1px solid #d1d5db;background:#fff;border-radius:6px;font-size:.85rem;font-weight:500;color:#374151;cursor:pointer;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background:#f3f4f6;border-color:#2196f3;color:#2196f3}.page-indicator{padding:8px 16px;font-size:.85rem;font-weight:500;color:#111827}.no-data{padding:48px 24px;text-align:center;color:#6b7280;font-size:.95rem;font-style:italic}.error{padding:24px;text-align:center;color:#dc2626;font-size:.95rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:20px 0}.logs-section{grid-column:1 / -1}.logs-container{max-height:400px;overflow-y:auto}.logs-display{background:#1e1e1e;border:1px solid #333;border-radius:6px;padding:16px;font-family:Courier New,Consolas,monospace;font-size:.8rem;line-height:1.5;color:#d4d4d4;margin:0;overflow-x:auto}.log-entry{display:flex;gap:8px;margin-bottom:2px;white-space:pre-wrap;word-break:break-word}.log-timestamp{color:#6b7280;white-space:nowrap}.log-level{font-weight:600;white-space:nowrap}.log-entry.log-info .log-level{color:#60a5fa}.log-entry.log-warn .log-level,.log-entry.log-warning .log-level{color:#fbbf24}.log-entry.log-error .log-level{color:#ef4444}.log-entry.log-success .log-level{color:#34d399}.log-message{flex:1;color:#d4d4d4}.no-logs{padding:24px;text-align:center;color:#6b7280;font-size:.85rem;font-style:italic;background:#f9fafb;border-radius:6px}@media (max-width: 1400px){.expanded-content,.expanded-content-with-logs{grid-template-columns:1fr}}@media (max-width: 768px){.monitor-header{flex-direction:column;align-items:flex-start;gap:12px}.pagination-container{flex-direction:column;gap:16px}.pagination-controls{flex-direction:column;gap:12px}}.animated-button{position:relative;display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;overflow:hidden;transition:all .2s ease;border:none;outline:none}.animated-button:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#ffffff80;opacity:0;border-radius:100%;transform:scale(1) translate(-50%);transform-origin:50% 50%}.animated-button.animate-click:after{animation:ripple .6s ease-out}.animated-button.primary{background-color:#2196f3;color:#fff}.animated-button.primary:hover{background-color:#1976d2}.animated-button.secondary{background-color:#f5f5f5;color:#333;border:1px solid #e0e0e0}.animated-button.secondary:hover{background-color:#e0e0e0}.animated-button.success{background-color:#4caf50;color:#fff}.animated-button.success:hover{background-color:#388e3c}.animated-button.danger{background-color:#f44336;color:#fff}.animated-button.danger:hover{background-color:#d32f2f}.animated-button.text{background-color:transparent;color:#2196f3;padding:8px 10px}.animated-button.text:hover{background-color:#2196f31a}.animated-button.icon{padding:6px;border-radius:50%;background-color:transparent;color:#555}.animated-button.icon:hover{background-color:#0000000d}.animated-button.loading{cursor:not-allowed;opacity:.8}.animated-button.disabled{cursor:not-allowed;opacity:.6}.animated-button .button-icon{font-size:16px}.animated-button .button-icon.spin{animation:spin 1.2s linear infinite}@keyframes ripple{0%{transform:scale(0);opacity:1}20%{transform:scale(25);opacity:1}to{opacity:0;transform:scale(40)}}.animation-container{opacity:0;transition:all var(--animation-duration) ease var(--animation-delay)}.animation-container.visible,.animation-container.fade.visible{opacity:1}.animation-container.slide-up{transform:translateY(20px)}.animation-container.slide-up.visible{transform:translateY(0)}.animation-container.slide-down{transform:translateY(-20px)}.animation-container.slide-down.visible{transform:translateY(0)}.animation-container.slide-left{transform:translate(20px)}.animation-container.slide-left.visible{transform:translate(0)}.animation-container.slide-right{transform:translate(-20px)}.animation-container.slide-right.visible{transform:translate(0)}.animation-container.zoom{transform:scale(.95)}.animation-container.zoom.visible{transform:scale(1)}.success-animation-container{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:#fffc;z-index:9999;animation:fadeIn .3s ease-in}.success-animation{display:flex;flex-direction:column;align-items:center;gap:20px}.checkmark-circle{position:relative;width:80px;height:80px;animation:scaleIn .3s ease-out}.checkmark-circle-bg{position:absolute;width:100%;height:100%;border-radius:50%;background-color:#4caf50;animation:circleIn .5s cubic-bezier(.22,.61,.36,1)}.checkmark-stem{position:absolute;top:43%;left:27%;width:25%;height:13%;background-color:#fff;opacity:0;transform:rotate(45deg);transform-origin:left;animation:stem .4s ease-out .4s forwards}.checkmark-kick{position:absolute;top:60%;left:28%;width:53%;height:13%;background-color:#fff;opacity:0;transform:rotate(-45deg);transform-origin:left;animation:kick .4s ease-out .4s forwards}.success-message{font-size:1.2rem;font-weight:500;color:#333;animation:messageIn .3s ease-out .5s both}@keyframes circleIn{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes stem{0%{opacity:0;transform:rotate(45deg) scaleX(0)}to{opacity:1;transform:rotate(45deg) scaleX(1)}}@keyframes kick{0%{opacity:0;transform:rotate(-45deg) scaleX(0)}to{opacity:1;transform:rotate(-45deg) scaleX(1)}}@keyframes scaleIn{0%{transform:scale(.5)}to{transform:scale(1)}}@keyframes messageIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.page-transition{width:100%}.page-header{margin-top:0;margin-bottom:.75rem;padding-top:0}.page-header-content{display:flex;justify-content:space-between;align-items:center}.page-header-title-row{display:flex;align-items:center;gap:1rem}.home-icon-button{display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:.5rem;font-size:1.4rem;color:#666;transition:all .2s ease;border-radius:6px}.home-icon-button:hover{color:#1890ff;background-color:#f0f0f0}.home-icon-button:active{transform:scale(.95)}.page-header-icon{font-size:1.6rem;color:#1890ff}.page-header-titles{display:flex;flex-direction:column}.page-title{margin:0;font-size:1.1rem;font-weight:600;color:#333}.page-subtitle{margin:.25rem 0 0;font-size:.8rem;color:#037c6e!important}.page-header-actions{display:flex;gap:.8rem}.catalog-file-count{display:flex;align-items:baseline;gap:.5rem}.catalog-file-count strong{font-size:1.35rem;color:var(--text-primary);font-weight:700}.catalog-file-count span{font-size:.75rem;color:var(--text-secondary)}@media (max-width: 768px){.page-header-content{flex-direction:column;gap:1rem}.page-header-actions{width:100%}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:modalOverlay .3s ease-out}.modal{background-color:var(--background-color-light);border-radius:8px;box-shadow:0 4px 20px #00000026;max-height:90vh;max-width:90vw;display:flex;flex-direction:column;animation:modalIn .3s ease-out;overflow:hidden;height:auto}.modal:focus{outline:none}.modal-small{width:400px;min-height:auto}.modal-small .modal-header{padding:.625rem 1rem}.modal-small .modal-content{padding:.75rem 1rem;min-height:auto}.modal-small .modal-footer{padding:.625rem 1rem}.modal-medium{width:600px}.modal-large{width:800px}.modal-header{padding:10px 16px;border-bottom:1px solid var(--border-color-light);display:flex;justify-content:space-between;align-items:center}.modal-title{margin:0;font-size:16px;font-weight:600;color:var(--text-color)}.modal-close-button{background:none;border:none;font-size:20px;cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary-color);transition:background-color .2s,color .2s}.modal-close-button:hover{background-color:#0000000d;color:var(--text-color)}.modal-close-button:focus{outline:none;box-shadow:0 0 0 2px #2196f366}.modal-content{padding:12px 16px;overflow-y:auto;flex:none;min-height:fit-content}.modal-footer{padding:10px 16px;border-top:1px solid var(--border-color-light);display:flex;justify-content:flex-end;gap:12px}@keyframes modalOverlay{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.execute-status-icon{text-align:center;margin-bottom:1rem}.execute-status-icon.success{color:#52c41a}.execute-status-icon.error{color:#f5222d}.execute-status-message{text-align:center}.group-name-text{font-size:.95rem;color:#666;margin-bottom:.5rem}.status-message{font-size:1rem;color:#333;margin:0}.modal-close-btn{background:none;border:none;font-size:20px;cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#666;transition:background-color .2s,color .2s}.modal-close-btn:hover{background-color:#0000000d;color:#333}@media (max-width: 768px){.modal-small,.modal-medium,.modal-large{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0}.modal-content{flex:1}}.scheduler-page{display:flex;flex-direction:column;height:100%}.scheduler-content{display:flex;flex-direction:column;flex:1;padding:0 20px 20px;overflow:hidden}.scheduler-filters{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px}.search-container{position:relative;flex:1;max-width:400px}.search-input{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:14px;background-color:var(--background-color-light);transition:border-color .2s,box-shadow .2s}.search-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #2196f333;outline:none}.schedules-grid{display:flex;flex-direction:column;flex:1;background-color:var(--background-color-light);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000000d}.schedules-header{display:grid;grid-template-columns:2fr 2fr 1.5fr 1.5fr 1fr 1fr;padding:12px 16px;font-weight:600;background-color:var(--background-color);border-bottom:1px solid var(--border-color)}.schedules-body{overflow-y:auto;max-height:calc(100vh - 300px)}.schedule-row{display:grid;grid-template-columns:2fr 2fr 1.5fr 1.5fr 1fr 1fr;padding:16px;border-bottom:1px solid var(--border-color-light);transition:background-color .2s}.schedule-row:hover{background-color:#2196f30d}.schedule-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center}.status-badge{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500}.status-active{background-color:#4caf5026;color:#2e7d32}.status-inactive{background-color:#9e9e9e26;color:#616161}.actions-cell{display:flex;gap:8px}.action-button{background:none;border:none;font-size:16px;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary-color);transition:background-color .2s,color .2s}.action-button:hover{background-color:#2196f31a;color:var(--primary-color)}.action-restricted{font-size:12px;color:var(--text-secondary-color);font-style:italic;opacity:.7}.loading-container{display:flex;justify-content:center;align-items:center;height:300px}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:20px}.error-message{color:var(--error-color);font-size:14px;margin-top:4px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;text-align:center;padding:0 20px}.empty-state-icon{font-size:48px;color:var(--text-secondary-color);opacity:.7;margin-bottom:16px}.empty-state-title{font-size:18px;font-weight:500;margin-bottom:10px}.empty-state-description{color:var(--text-secondary-color);margin-bottom:20px}.schedule-form{display:flex;flex-direction:column;gap:20px}.form-group label{font-weight:500;font-size:14px;color:var(--text-color)}.form-group input,.form-group select{padding:10px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:14px;background-color:var(--background-color-light);transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #2196f333;outline:none}.form-group input.error,.form-group select.error{border-color:var(--error-color)}.form-checkbox{flex-direction:row;align-items:center;gap:8px}.form-checkbox input{margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.delete-confirmation{padding:10px 0}.delete-item-details{margin:20px 0;display:flex;flex-direction:column;gap:4px;padding:15px;background-color:#00000008;border-radius:4px}.delete-item-title{font-weight:500}.delete-item-subtitle{color:var(--text-secondary-color);font-size:14px}.page-actions{display:flex;justify-content:flex-end;gap:.8rem;margin-bottom:1.5rem;padding:0 .5rem}@media (max-width: 768px){.page-actions{justify-content:stretch}.page-actions .btn{flex:1}}.action-icons{display:flex;gap:.5rem;align-items:center}.action-icon-btn{background:transparent;border:none;border-radius:6px;padding:6px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary, #6c757d);text-decoration:none}.achievement-badge{display:flex;padding:1rem;border-radius:10px;background-color:#fff;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;margin-bottom:1rem;cursor:pointer;width:100%;position:relative;overflow:hidden}.achievement-badge:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.achievement-badge.locked{opacity:.7;filter:grayscale(80%)}.achievement-badge.locked:hover{transform:none;box-shadow:0 2px 8px #0000001a}.badge-icon-container{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;margin-right:1rem;position:relative}.badge-icon{color:#fff;font-size:1.8rem}.badge-content{flex:1;display:flex;flex-direction:column;justify-content:center}.badge-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.badge-title{margin:0;font-size:1.1rem;font-weight:600}.badge-level{font-size:.8rem;font-weight:600;padding:.2rem .6rem;background-color:#f0f0f0;border-radius:12px}.badge-description{margin:0;color:#666;font-size:.9rem;line-height:1.4}.badge-score{position:absolute;bottom:-2px;right:-2px;background-color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#333;box-shadow:0 1px 3px #0003}@keyframes pulse{0%{box-shadow:0 0 #ffd70066}70%{box-shadow:0 0 0 15px #ffd70000}to{box-shadow:0 0 #ffd70000}}.achievement-badge.newly-unlocked{animation:pulse 2s infinite}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-top:1rem}@media (max-width: 768px){.badge-grid{grid-template-columns:1fr}}.badges-container{padding:1.5rem;max-width:1200px;margin:0 auto}.badge-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.badge-filters button{background-color:#f5f5f5;border:none;border-radius:20px;padding:.5rem 1rem;font-size:.9rem;cursor:pointer;transition:all .2s ease}.badge-filters button:hover{background-color:#e5e5e5}.badge-filters button.active{background-color:#4a6cf7;color:#fff}.badge-group{margin-bottom:2.5rem}.badge-group-title{margin-bottom:1rem;font-size:1.3rem;color:#333;border-bottom:1px solid #eee;padding-bottom:.5rem}.no-badges{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background-color:#f9f9f9;border-radius:10px;text-align:center}.no-badges svg{color:#ccc;margin-bottom:1rem}.no-badges h3{margin-bottom:.5rem;color:#666}.no-badges p{color:#888;max-width:400px}.badge-detail-modal{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.badge-detail-content{background-color:#fff;border-radius:10px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;position:relative;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.close-modal{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#777;z-index:10}.badge-detail-header{padding:1.5rem;border-bottom:1px solid #eee}.badge-detail-info{padding:1.5rem}.badge-detail-info h3{margin-bottom:1rem}.badge-tips{margin-top:1.5rem;padding:1rem;background-color:#f9f9f9;border-radius:8px}.badge-tips h4{display:flex;align-items:center;font-size:1rem;margin-bottom:.8rem}.badge-tips h4 svg{margin-right:.5rem;color:#4a6cf7}.badge-tips ul{margin-left:1.5rem}.badge-tips li{margin-bottom:.5rem;font-size:.95rem}.achievement-progress{margin-bottom:2rem;padding:1.5rem;border-radius:10px;background-color:#f7fafc;box-shadow:0 2px 8px #0000000d}.progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.progress-stats{display:flex;gap:1rem}.progress-stat{background-color:#fff;padding:1rem;border-radius:8px;box-shadow:0 2px 4px #0000000d;min-width:120px;text-align:center}.stat-value{font-size:1.8rem;font-weight:700;color:#4a6cf7;margin-bottom:.3rem}.stat-label{font-size:.8rem;color:#666}.progress-bar-container{height:12px;background-color:#e5e7eb;border-radius:6px;margin-top:1rem;overflow:hidden}.progress-bar{height:100%;background-color:#4a6cf7;border-radius:6px;transition:width .5s ease}@media (max-width: 768px){.badges-container{padding:1rem}.progress-stats{flex-direction:column;gap:.5rem}.badge-detail-content{width:95%}}.data-insights-container{padding:1.5rem;max-width:1200px;margin:0 auto}.page-header{margin-bottom:2rem}.page-header h1{display:flex;align-items:center;color:#025043;font-size:2rem;margin-bottom:.5rem}.page-header-icon{margin-right:.5rem;color:#4a6cf7}.page-header p{color:#666;max-width:600px}.chatbot-container{background-color:#fff;border-radius:10px;box-shadow:0 2px 12px #00000014;overflow:hidden}.message-form-container{padding:1rem;background-color:#f8f9fd;border-bottom:1px solid #eee}.message-form{display:flex;align-items:center;gap:1rem}.message-input{flex:1;padding:.8rem 1rem;border:1px solid #ddd;border-radius:24px;font-size:1rem;outline:none;transition:border-color .2s,box-shadow .2s}.message-input:focus{border-color:#4a6cf7;box-shadow:0 0 0 3px #4a6cf71a}.message-submit{background-color:#4a6cf7;color:#fff;border:none;border-radius:24px;padding:.8rem 1.5rem;font-weight:600;cursor:pointer;transition:background-color .2s}.message-submit:hover{background-color:#3a5be8}.message-submit:disabled{background-color:#a0adf9;cursor:not-allowed}.insights-controls{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:#f8f9fd;border-bottom:1px solid #eee;flex-wrap:wrap;gap:1rem}.insights-filters{display:flex;gap:.5rem;flex-wrap:wrap}.insights-filters button{background-color:#f0f2f5;border:none;border-radius:20px;padding:.5rem 1rem;font-size:.9rem;cursor:pointer;transition:all .2s ease}.insights-filters button:hover{background-color:#e5e8ec}.insights-filters button.active{background-color:#4a6cf7;color:#fff}.insights-search{flex:1;max-width:300px}.search-input{width:100%;padding:.5rem 1rem;border:1px solid #ddd;border-radius:20px;font-size:.9rem;outline:none}.insights-list{padding:1.5rem;display:flex;flex-direction:column;gap:1rem;max-height:600px;overflow-y:auto}.insight-card{background-color:#f9f9f9;border-radius:8px;padding:1.2rem;transition:all .2s ease;border-left:4px solid #ddd}.insight-card:hover{box-shadow:0 4px 12px #0000000d;transform:translateY(-2px)}.insight-card.severity-high{border-left-color:#ff4d4f}.insight-card.severity-medium{border-left-color:#faad14}.insight-card.severity-low{border-left-color:#52c41a}.insight-header{display:flex;align-items:center;margin-bottom:.8rem}.insight-icon{font-size:1.4rem;margin-right:.8rem;padding:8px;border-radius:50%;background-color:#f0f0f0}.insight-icon.anomaly{background-color:#fff1f0;color:#ff4d4f}.insight-icon.pattern{background-color:#e6f7ff;color:#1890ff}.insight-icon.correlation{background-color:#f6ffed;color:#52c41a}.insight-icon.quality{background-color:#fff7e6;color:#faad14}.insight-icon.custom{background-color:#f9f0ff;color:#722ed1}.insight-header h3{margin:0;font-size:1.1rem;font-weight:600}.insight-description{margin-bottom:1rem;color:#333;line-height:1.5}.insight-suggestion{background-color:#f0f2f5;padding:.8rem;border-radius:6px;margin-bottom:1rem;font-size:.95rem}.insight-meta{display:flex;justify-content:space-between;align-items:center;color:#666;font-size:.85rem}.insight-severity{font-weight:600;border-radius:12px;padding:.25rem .8rem;font-size:.8rem}.insight-severity.severity-high{background-color:#fff1f0;color:#ff4d4f}.insight-severity.severity-medium{background-color:#fff7e6;color:#faad14}.insight-severity.severity-low{background-color:#f6ffed;color:#52c41a}.no-insights{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:#666}.no-insights svg{color:#ddd;margin-bottom:1rem}.no-insights h3{margin-bottom:.5rem}.no-insights p{color:#888;max-width:400px}@media (max-width: 768px){.insights-controls{flex-direction:column;align-items:stretch}.insights-search{max-width:none}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.insight-card:first-child{animation:fadeIn .5s ease}.file-insights-page{padding:24px;background-color:#f5f5f5;min-height:100vh}.file-insights-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.file-insights-header h1{margin:0;font-size:2rem;color:#025043}.file-insights-header .subtitle{margin:4px 0 0;color:#5f6368;font-size:14px}.file-insights-container{display:flex;gap:20px;height:calc(100vh - 160px)}.pattern-selector{width:300px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;overflow:hidden}.pattern-selector h3{margin:0;padding:16px;background:#f8f9fa;border-bottom:1px solid #dadce0;font-size:16px;font-weight:500;color:#202124}.pattern-list{flex:1;overflow-y:auto;padding:8px}.pattern-item{padding:12px;margin-bottom:8px;border-radius:6px;border:1px solid #dadce0;cursor:pointer;transition:all .2s}.pattern-item:hover{background-color:#f8f9fa;border-color:#1a73e8}.pattern-item.selected{background-color:#e8f0fe;border-color:#1a73e8;box-shadow:0 1px 3px #1a73e84d}.pattern-item.has-alerts{border-left:4px solid #f9ab00}.pattern-item.selected.has-alerts{border-left:4px solid #d93025}.pattern-name{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-weight:500;color:#202124;font-size:14px;word-break:break-all}.pattern-name svg{flex-shrink:0;color:#5f6368}.pattern-stats{display:flex;align-items:center;gap:12px;font-size:12px;color:#5f6368}.stat-item{display:flex;align-items:center;gap:4px}.alert-badge{display:flex;align-items:center;gap:4px;padding:2px 6px;background-color:#fef7e0;color:#f9ab00;border-radius:4px;font-weight:500}.pattern-item.has-alerts .alert-badge{background-color:#fce8e6;color:#d93025}.metrics-dashboard{flex:1;display:flex;flex-direction:column;gap:20px;overflow:hidden}.dashboard-controls{background:#fff;border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.pattern-info h2{margin:0 0 8px;font-size:20px;color:#202124;word-break:break-all}.info-stats{display:flex;gap:20px;font-size:13px;color:#5f6368;flex-wrap:wrap}.info-stats span{display:flex;align-items:center;gap:4px}.time-controls{display:flex;gap:12px}.time-controls select{padding:8px 12px;border:1px solid #dadce0;border-radius:4px;background-color:#fff;color:#202124;font-size:14px;cursor:pointer;transition:border-color .2s}.time-controls select:hover{border-color:#1a73e8}.time-controls select:focus{outline:none;border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81a}.charts-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:20px;padding-bottom:20px}.chart-card{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column}.chart-card.full-width{grid-column:1 / -1}.chart-card h3{margin:0 0 16px;font-size:16px;font-weight:500;color:#202124;display:flex;align-items:center;gap:8px}.chart-container{flex:1;min-height:300px;position:relative}.alerts-section .alerts-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.alert-item{padding:12px;border-radius:6px;border-left:4px solid #dadce0;background-color:#f8f9fa}.alert-item.severity-high{border-left-color:#d93025;background-color:#fce8e6}.alert-item.severity-medium{border-left-color:#f9ab00;background-color:#fef7e0}.alert-item.severity-low{border-left-color:#1a73e8;background-color:#e8f0fe}.alert-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.alert-type{font-size:12px;font-weight:500;color:#5f6368;text-transform:uppercase}.alert-date{font-size:12px;color:#5f6368}.alert-title{font-weight:500;color:#202124;margin-bottom:4px}.alert-description{font-size:13px;color:#5f6368;margin-bottom:8px}.alert-values{display:flex;gap:16px;font-size:12px;color:#5f6368}.alert-values .deviation{color:#d93025;font-weight:500}.no-data-message{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#5f6368;text-align:center}.no-data-message svg{color:#dadce0;margin-bottom:16px}.no-data-message p{margin:8px 0;font-size:16px;color:#202124}.no-data-message .hint{font-size:14px;color:#5f6368}.error-message{background-color:#fce8e6;color:#d93025;padding:16px;border-radius:8px;border-left:4px solid #d93025;display:flex;align-items:center;gap:8px;font-size:14px}.btn-primary{display:flex;align-items:center;gap:8px;padding:10px 20px;background-color:#1a73e8;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-primary:hover:not(:disabled){background-color:#1765cc}.btn-primary:disabled{background-color:#dadce0;color:#5f6368;cursor:not-allowed}@media (max-width: 1400px){.charts-grid{grid-template-columns:1fr}}@media (max-width: 768px){.file-insights-container{flex-direction:column;height:auto}.pattern-selector{width:100%;max-height:300px}.dashboard-controls{flex-direction:column;align-items:flex-start}.time-controls{width:100%;flex-direction:column}.time-controls select{width:100%}}.recommendations-container{padding:var(--space-6);max-width:1200px;margin:0 auto}.page-header{margin-bottom:var(--space-8)}.page-header h1{display:flex;align-items:center;color:#025043;font-size:2rem;margin-bottom:var(--space-2)}.page-header-icon{margin-right:var(--space-2);color:var(--color-primary)}.page-header p{color:var(--text-secondary);max-width:600px}.recommendations-controls{background-color:var(--bg-surface);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.filter-group{display:flex;flex-direction:column;gap:var(--space-2)}.filter-group label{font-weight:var(--font-semibold);color:var(--text-secondary);font-size:.9rem}.button-filters{display:flex;flex-wrap:wrap;gap:var(--space-2)}.button-filters button{background-color:var(--color-gray-100);border:none;border-radius:var(--radius-full);padding:var(--space-2) var(--space-4);font-size:.9rem;cursor:pointer;transition:var(--transition-base)}.button-filters button:hover{background-color:var(--color-gray-200)}.button-filters button.active{background-color:var(--color-primary);color:var(--color-white)}.sort-select{padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border-light);font-size:.9rem;max-width:250px}.recommendations-list{display:flex;flex-direction:column;gap:var(--space-4)}.recommendation-card{background-color:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);cursor:pointer;transition:var(--transition-base);border-left:5px solid var(--border-light)}.recommendation-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.recommendation-card.implemented{border-left-color:var(--color-success);background-color:var(--color-success-light)}.recommendation-card.scheduled{border-left-color:var(--color-primary);background-color:var(--color-primary-50)}.recommendation-card.pending{border-left-color:var(--color-warning)}.recommendation-card.expanded{box-shadow:var(--shadow-lg)}.rec-header{display:flex;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-3)}.rec-icon{font-size:1.4rem;padding:var(--space-3);border-radius:var(--radius-full);background-color:var(--color-gray-100);color:var(--text-secondary);flex-shrink:0}.rec-icon.quality{background-color:var(--color-error-light);color:var(--color-error)}.rec-icon.format{background-color:var(--color-purple-light);color:var(--color-purple)}.rec-icon.structure{background-color:var(--color-primary-50);color:var(--color-primary)}.rec-icon.validation{background-color:var(--color-warning-light);color:var(--color-warning)}.rec-icon.integration{background-color:var(--color-success-light);color:var(--color-success)}.rec-title-area{flex:1}.rec-title{margin:0;margin-bottom:var(--space-2);font-size:1.1rem;font-weight:var(--font-semibold)}.rec-meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.rec-stats{display:flex;gap:var(--space-4)}.rec-effort,.rec-impact{font-size:.85rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-lg)}.effort-low{background-color:var(--color-success-light);color:var(--color-success)}.effort-medium{background-color:var(--color-warning-light);color:var(--color-warning)}.effort-high{background-color:var(--color-error-light);color:var(--color-error)}.impact-low{background-color:var(--color-gray-100);color:var(--text-secondary)}.impact-medium{background-color:var(--color-primary-50);color:var(--color-primary)}.impact-high{background-color:var(--color-success-light);color:var(--color-success)}.status-badge{display:flex;align-items:center;gap:var(--space-1);font-size:.85rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-lg);font-weight:var(--font-medium)}.status-badge.implemented{background-color:var(--color-success-light);color:var(--color-success)}.status-badge.scheduled{background-color:var(--color-primary-50);color:var(--color-primary)}.status-badge.pending{background-color:var(--color-warning-light);color:var(--color-warning)}.rec-description{color:var(--text-secondary);margin-bottom:var(--space-4);line-height:1.5}.rec-details{border-top:1px solid var(--border-light);padding-top:var(--space-4);animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.rec-benefit,.rec-actions{margin-bottom:var(--space-5)}.rec-benefit h4,.rec-actions h4{margin-bottom:var(--space-2);font-size:1rem;color:var(--text-primary)}.rec-actions ul{padding-left:var(--space-6)}.rec-actions li{margin-bottom:var(--space-2)}.rec-controls{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-6)}.mark-implemented{display:flex;align-items:center;gap:var(--space-2);background-color:var(--color-success);color:var(--color-white);border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-base)}.mark-implemented:hover{background-color:var(--color-success-dark)}.schedule-container{display:flex;gap:var(--space-2)}.schedule-date{padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--border-light)}.schedule-button{background-color:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-base)}.schedule-button:hover{background-color:var(--color-primary-dark)}.no-recommendations{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-8);text-align:center;background-color:var(--bg-surface);border-radius:var(--radius-lg);color:var(--text-secondary)}.no-recommendations svg{color:var(--border-light);margin-bottom:var(--space-4)}.no-recommendations h3{margin-bottom:var(--space-2)}.no-recommendations p{color:var(--text-tertiary);max-width:400px}@media (max-width: 768px){.recommendations-container{padding:var(--space-4)}.rec-meta{flex-direction:column;align-items:flex-start}.rec-controls{flex-direction:column}.schedule-container{width:100%}.schedule-date{flex:1}}.data-stories-container{padding:1.5rem;max-width:1200px;margin:0 auto}.stories-header{margin-bottom:2rem}.stories-header h1{display:flex;align-items:center;color:#025043;font-size:2rem;margin-bottom:.5rem}.header-icon{margin-right:.5rem;color:#4a6cf7}.stories-header p{color:#666;max-width:600px;margin-bottom:1.5rem}.new-story-btn{background-color:#4a6cf7;color:#fff;border:none;border-radius:6px;padding:.7rem 1.5rem;font-weight:600;cursor:pointer;transition:background-color .2s;display:inline-flex;align-items:center;gap:.5rem}.new-story-btn:hover{background-color:#3a5be8}.stories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.story-card{background-color:#fff;border-radius:10px;box-shadow:0 2px 12px #00000014;padding:1.5rem;transition:all .2s ease;cursor:pointer;display:flex;flex-direction:column}.story-card:hover{transform:translateY(-4px);box-shadow:0 6px 20px #0000001a}.story-header{margin-bottom:1rem}.story-header h3{margin:0;margin-bottom:.5rem;font-size:1.2rem;color:#333}.story-meta{display:flex;justify-content:space-between;color:#777;font-size:.85rem}.story-description{color:#555;margin-bottom:1.5rem;flex-grow:1;line-height:1.5}.story-preview{display:flex;gap:1rem;margin-bottom:1.5rem}.viz-preview{flex:1;background-color:#f8f9fd;border-radius:6px;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#555;font-size:.9rem}.viz-preview svg{font-size:1.5rem;color:#4a6cf7}.story-tags{display:flex;flex-wrap:wrap;gap:.5rem}.story-tag{background-color:#f0f2f5;border-radius:16px;padding:.3rem .8rem;font-size:.8rem;color:#555}.story-detail{padding:1rem;background-color:#fff;border-radius:10px;box-shadow:0 2px 12px #00000014}.story-detail-header{margin-bottom:2rem;border-bottom:1px solid #eee;padding-bottom:1.5rem}.back-button{margin-bottom:1rem;background:none;border:none;color:#4a6cf7;cursor:pointer;display:flex;align-items:center;gap:.3rem;padding:0;font-weight:500}.back-button:hover{text-decoration:underline}.story-detail h1{margin-bottom:.8rem;color:#333}.story-detail-description{color:#555;margin-bottom:1rem;max-width:800px;line-height:1.5}.story-detail-meta{display:flex;gap:1.5rem;color:#777;font-size:.9rem}.story-visualizations{display:grid;grid-template-columns:repeat(auto-fill,minmax(450px,1fr));gap:1.5rem;margin-bottom:2rem}.visualization-card{background-color:#f8f9fd;border-radius:8px;padding:1.5rem;display:flex;flex-direction:column}.viz-header{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}.viz-header svg{font-size:1.3rem;color:#4a6cf7}.viz-header h3{margin:0;font-size:1.1rem;color:#333}.viz-placeholder{background-color:#edf0f7;border-radius:6px;padding:3rem;margin-bottom:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#777;flex-grow:1}.viz-placeholder-icon{font-size:2.5rem;color:#bbc3d3;margin-bottom:1rem}.viz-controls{display:flex;gap:.5rem}.viz-control-btn{flex:1;background-color:#fff;border:1px solid #ddd;border-radius:4px;padding:.5rem;font-size:.9rem;cursor:pointer;transition:all .2s}.viz-control-btn:hover{background-color:#f0f2f5}.story-insights{background-color:#fff;border-radius:8px;padding:1.5rem;margin-bottom:2rem;border:1px solid #eee}.story-insights h2{margin-top:0;margin-bottom:1rem;color:#333;font-size:1.3rem}.insights-list{margin:0;padding-left:1.5rem}.insights-list li{margin-bottom:.8rem;line-height:1.5;color:#555}.story-actions{display:flex;gap:1rem;margin-bottom:1rem}.story-action-btn{padding:.7rem 1.5rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.story-action-btn.primary{background-color:#4a6cf7;color:#fff;border:none}.story-action-btn.primary:hover{background-color:#3a5be8}.story-action-btn:not(.primary){background-color:#fff;border:1px solid #ddd;color:#555}.story-action-btn:not(.primary):hover{background-color:#f5f5f5}.story-editor{background-color:#fff;border-radius:10px;box-shadow:0 2px 12px #00000014;padding:1.5rem}.editor-header{margin-bottom:2rem;border-bottom:1px solid #eee;padding-bottom:1rem}.editor-header h1{color:#333}.editor-form{max-width:800px}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.editor-input,.editor-textarea,.editor-select{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s}.editor-input:focus,.editor-textarea:focus,.editor-select:focus{border-color:#4a6cf7;outline:none}.editor-textarea{min-height:100px;resize:vertical}.file-selector{display:flex;gap:.5rem;margin-bottom:.5rem}.editor-select{flex:1}.add-file-btn,.add-viz-btn,.add-insight-btn,.add-tag-btn{background-color:#f0f2f5;border:1px solid #ddd;border-radius:6px;padding:.5rem 1rem;cursor:pointer;font-weight:500;transition:all .2s}.add-file-btn:hover,.add-viz-btn:hover,.add-insight-btn:hover,.add-tag-btn:hover{background-color:#e5e8ec}.add-viz-btn{margin-bottom:1rem}.selected-files,.insights-placeholder,.tags-placeholder{background-color:#f8f9fd;border-radius:6px;padding:1rem;color:#777}.editor-placeholder{min-height:200px}.insight-editor,.tag-editor{display:flex;gap:.5rem;margin-bottom:.5rem}.editor-actions{display:flex;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #eee}.editor-action-btn{padding:.7rem 1.5rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s}.editor-action-btn.primary{background-color:#4a6cf7;color:#fff;border:none}.editor-action-btn.primary:hover{background-color:#3a5be8}.editor-action-btn:not(.primary){background-color:#fff;border:1px solid #ddd;color:#555}.editor-action-btn:not(.primary):hover{background-color:#f5f5f5}@media (max-width: 768px){.stories-grid,.story-visualizations{grid-template-columns:1fr}.story-actions,.editor-actions{flex-direction:column}.story-action-btn,.editor-action-btn{width:100%}}.dashboard-layout-creator{display:flex;flex-direction:column;gap:20px;width:100%;position:relative}.layout-toolbar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;width:100%;min-height:500px;position:relative}.dashboard-widget{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s ease;border:1px solid #e0e0e0}.dashboard-widget:hover{box-shadow:0 4px 12px #00000026}.dashboard-widget.dragging{box-shadow:0 8px 16px #0003;opacity:.7}.widget-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#f5f5f5;border-bottom:1px solid #e0e0e0}.widget-header h3{margin:0;font-size:.9rem;font-weight:500;color:#333}.widget-controls{display:flex;gap:4px}.widget-control-button{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;color:#666;transition:background-color .2s,color .2s}.widget-control-button:hover{background-color:#0000000d;color:#333}.widget-control-button.drag-handle:hover{cursor:move;background-color:#0000001a}.widget-content{flex:1;padding:16px;overflow:auto}.widget-placeholder{width:100%;height:100%;min-height:100px;display:flex;align-items:center;justify-content:center;color:#999;font-size:.9rem;text-align:center;border:2px dashed #e0e0e0;border-radius:4px}.dashboard-widget.dragging-overlay{opacity:.8;pointer-events:none;box-shadow:0 8px 24px #0003;background:#fff;z-index:1000}.add-widget-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:600px;max-height:80vh;background-color:#fff;border-radius:8px;box-shadow:0 4px 32px #0003;z-index:1100;overflow:hidden;display:flex;flex-direction:column}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e0e0e0}.panel-header h2{margin:0;font-size:1.25rem;font-weight:500}.close-button{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:#666;transition:background-color .2s,color .2s}.close-button:hover{background-color:#0000000d;color:#333}.widget-options{padding:16px;overflow-y:auto;max-height:calc(80vh - 70px);display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.widget-option{height:100%}.widget-option-button{width:100%;text-align:left;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;align-items:flex-start;gap:12px}.widget-option-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:#bbdefb}.widget-option-icon{font-size:1.5rem;color:#2196f3;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:#e3f2fd;border-radius:8px;flex-shrink:0}.material-icon{font-size:1.5rem}.widget-option-info{flex:1}.widget-option-info h4{margin:0 0 6px;font-size:.95rem;font-weight:500;color:#333}.widget-option-info p{margin:0;font-size:.8rem;color:#666;line-height:1.3}@media (max-width: 768px){.dashboard-grid,.widget-options{grid-template-columns:1fr}.add-widget-panel{width:95%}}.tooltip-container{position:relative;display:inline-flex;vertical-align:middle}.tooltip-trigger{display:inline-flex;align-items:center;cursor:pointer}.tooltip-trigger.interactive{cursor:pointer}.tooltip-trigger .info-icon{color:#2196f3;font-size:16px;opacity:.8;transition:opacity .2s ease}.tooltip-trigger:hover .info-icon{opacity:1}.tooltip-content{position:absolute;z-index:1000;border-radius:6px;padding:12px 16px;box-shadow:0 2px 12px #0000001f;font-size:.875rem;line-height:1.5;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease,transform .2s ease}.tooltip-content.pinned{opacity:1!important;visibility:visible!important;transform:translate(0)!important}.tooltip-container:hover .tooltip-content,.tooltip-content.pinned{opacity:1;visibility:visible}.tooltip-content.top{bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);margin-bottom:8px}.tooltip-container:hover .tooltip-content.top,.tooltip-content.top.pinned{transform:translate(-50%) translateY(0)}.tooltip-content.bottom{top:100%;left:50%;transform:translate(-50%) translateY(8px);margin-top:8px}.tooltip-container:hover .tooltip-content.bottom,.tooltip-content.bottom.pinned{transform:translate(-50%) translateY(0)}.tooltip-content.left{right:100%;top:50%;transform:translateY(-50%) translate(-8px);margin-right:8px}.tooltip-container:hover .tooltip-content.left,.tooltip-content.left.pinned{transform:translateY(-50%) translate(0)}.tooltip-content.right{left:100%;top:50%;transform:translateY(-50%) translate(8px);margin-left:8px}.tooltip-container:hover .tooltip-content.right,.tooltip-content.right.pinned{transform:translateY(-50%) translate(0)}.tooltip-content:before{content:"";position:absolute;width:0;height:0;border:6px solid transparent}.tooltip-content.top:before{bottom:-12px;left:50%;transform:translate(-50%);border-top-color:inherit}.tooltip-content.bottom:before{top:-12px;left:50%;transform:translate(-50%);border-bottom-color:inherit}.tooltip-content.left:before{right:-12px;top:50%;transform:translateY(-50%);border-left-color:inherit}.tooltip-content.right:before{left:-12px;top:50%;transform:translateY(-50%);border-right-color:inherit}.tooltip-content.light{background-color:#fff;color:#333;border:1px solid #e0e0e0;border-color:#e0e0e0}.tooltip-content.light:before{border-top-color:#e0e0e0;border-bottom-color:#e0e0e0;border-left-color:#e0e0e0;border-right-color:#e0e0e0}.tooltip-content.dark{background-color:#323232;color:#fff;border-color:#323232}.tooltip-content.dark .tooltip-title{color:#fff}.tooltip-content.dark .tooltip-link{color:#90caf9}.tooltip-content.blue{background-color:#e3f2fd;color:#0d47a1;border:1px solid #bbdefb;border-color:#bbdefb}.tooltip-content.blue .tooltip-title{color:#1565c0}.tooltip-content.blue .tooltip-link{color:#1976d2}.tooltip-title{font-weight:600;margin-bottom:6px;color:#1565c0}.tooltip-description{margin-bottom:10px}.tooltip-section-title{font-weight:600;margin-bottom:4px;font-size:.8rem}.tooltip-examples{margin-top:8px;font-size:.8rem}.tooltip-examples ul{margin:0;padding-left:0;list-style:none}.tooltip-examples li{display:flex;align-items:flex-start;margin-bottom:4px;line-height:1.4}.tooltip-icon{font-size:.8rem;margin-right:6px;margin-top:3px;flex-shrink:0}.tooltip-links{margin-top:10px;border-top:1px solid rgba(0,0,0,.1);padding-top:8px;display:flex;flex-direction:column;gap:6px}.tooltip-link{display:flex;align-items:center;color:#1976d2;text-decoration:none;font-size:.8rem;transition:color .2s}.tooltip-link:hover{color:#0d47a1;text-decoration:underline}.tooltip-close{position:absolute;top:8px;right:8px;background:transparent;border:none;cursor:pointer;color:inherit;font-size:1rem;padding:2px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .2s}.tooltip-close:hover{opacity:1}@media (max-width: 768px){.tooltip-content{max-width:250px!important}}:root{--blue-50: #eff6ff;--blue-100: #dbeafe;--blue-200: #bfdbfe;--blue-300: #93c5fd;--blue-400: #60a5fa;--blue-500: #3b82f6;--blue-600: #2563eb;--blue-700: #1d4ed8;--blue-800: #1e40af;--blue-900: #1e3a8a;--indigo-600: #4f46e5;--indigo-700: #4338ca;--indigo-800: #3730a3;--cyan-400: #22d3ee;--cyan-500: #06b6d4;--cyan-600: #0891b2}.login-page{display:flex;min-height:100vh;background:linear-gradient(135deg,#f8fafc,#e0e7ff,#ddd6fe);position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 20%,rgba(139,92,246,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(59,130,246,.1) 0%,transparent 50%);pointer-events:none}.marketing-content{flex:1;overflow-y:auto;padding:4rem 2rem;position:relative;z-index:1}.marketing-scroll-container{max-width:800px;margin:0 auto}.hero-section{margin-bottom:6rem;opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.4,0,.2,1)}.hero-section.visible{opacity:1;transform:translateY(0)}.hero-badge{display:inline-block;padding:.5rem 1rem;background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);border-radius:2rem;color:#7c3aed;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:2rem}.hero-title{font-size:2.5rem;font-weight:700;color:#1e293b;line-height:1.2;margin-bottom:1.5rem;letter-spacing:-.02em}.hero-subtitle{font-size:1.125rem;color:#475569;line-height:1.7;margin-bottom:3rem;max-width:600px}.data-flow-animation{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:2rem;background:#fff9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1rem;border:1px solid rgba(139,92,246,.2)}.flow-item{display:flex;flex-direction:column;align-items:center;gap:.5rem;animation:float 3s ease-in-out infinite}.flow-item:nth-child(2){animation-delay:.5s}.flow-item:nth-child(4){animation-delay:1s}.flow-icon{font-size:2.5rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.flow-label{font-size:.875rem;color:#64748b;font-weight:500}.flow-arrow{font-size:1.5rem;color:#8b5cf6;animation:pulse 2s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.features-showcase{margin-bottom:6rem}.showcase-header{text-align:center;margin-bottom:3rem;opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.4,0,.2,1)}.showcase-header.visible{opacity:1;transform:translateY(0)}.showcase-header h2{font-size:2.5rem;font-weight:700;color:#1e293b;margin-bottom:1rem}.showcase-header p{font-size:1.125rem;color:#64748b}.features-grid{display:grid;gap:1.5rem}.feature-card{padding:2rem;background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1rem;border:1px solid rgba(139,92,246,.2);display:flex;align-items:flex-start;gap:1.5rem;opacity:0;transform:translate(-30px);transition:all .6s cubic-bezier(.4,0,.2,1)}.feature-card.visible{opacity:1;transform:translate(0)}.feature-card.active{background:#ffffffe6;border-color:#8b5cf6;box-shadow:0 0 30px #8b5cf64d}.feature-icon{width:4rem;height:4rem;border-radius:.75rem;display:flex;align-items:center;justify-content:center;font-size:1.75rem;flex-shrink:0}.feature-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.feature-bullet{color:#8b5cf6;font-size:1.5rem;line-height:1;margin-bottom:.25rem}.feature-title{font-size:1.25rem;font-weight:600;color:#1e293b;text-transform:uppercase;letter-spacing:.05em}.feature-description{font-size:.9375rem;color:#64748b;line-height:1.6}.stats-section{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-bottom:6rem;opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.4,0,.2,1)}.stats-section.visible{opacity:1;transform:translateY(0)}.stat-item{text-align:center;padding:2rem;background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1rem;border:1px solid rgba(139,92,246,.2);transition:all .3s ease}.stat-item:hover{transform:translateY(-5px);background:#ffffffe6;border-color:#8b5cf6}.stat-number{font-size:3rem;font-weight:700;color:#7c3aed;margin-bottom:.5rem}.stat-label{font-size:.875rem;color:#64748b;font-weight:500}.capabilities-section{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.4,0,.2,1);margin-bottom:4rem}.capabilities-section.visible{opacity:1;transform:translateY(0)}.capabilities-section h3{font-size:2rem;font-weight:700;color:#1e293b;text-align:center;margin-bottom:3rem}.capabilities-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}.capability-item{padding:2rem;background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1rem;border:1px solid rgba(139,92,246,.2);transition:all .3s ease}.capability-item:hover{transform:translateY(-5px);background:#ffffffe6;border-color:#8b5cf6}.capability-number{display:inline-block;padding:.5rem 1rem;background:#8b5cf6;color:#fff;border-radius:.5rem;font-size:.875rem;font-weight:600;margin-bottom:1rem}.capability-item h4{font-size:1.25rem;font-weight:600;color:#1e293b;margin-bottom:.75rem}.capability-item p{font-size:.9375rem;color:#64748b;line-height:1.6;margin:0}.login-panel{width:480px;padding:2rem;display:flex;align-items:center;justify-content:center;position:sticky;top:0;height:100vh;z-index:10}.login-card-glass{width:100%;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:1.5rem;box-shadow:0 20px 60px #0000004d;overflow:hidden;border:1px solid rgba(255,255,255,.2)}.login-header{background:linear-gradient(135deg,var(--blue-600) 0%,var(--indigo-700) 100%);color:#fff;text-align:center;padding:3rem 2rem 2.5rem}.login-header h2{color:#fff;margin-bottom:.5rem;font-size:1.5rem;font-weight:600}.login-header h3{font-size:1rem;color:#ffffffe6;margin:0;font-weight:400}.login-logo{margin-bottom:1.5rem;display:block;max-width:160px;margin-left:auto;margin-right:auto;filter:brightness(0) invert(1)}.login-form{padding:2.5rem 2rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#1e293b;font-size:.875rem}.form-group input{width:100%;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:.5rem;font-size:.9375rem;color:#1e293b;background-color:#fff;transition:all .2s ease;font-family:inherit}.form-group input:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 3px #3b82f61a}.form-group input::placeholder{color:#94a3b8}.form-group input:disabled{background-color:#f1f5f9;cursor:not-allowed;opacity:.6}.login-button{width:100%;background:linear-gradient(135deg,var(--blue-600) 0%,var(--indigo-700) 100%);color:#fff;border:none;border-radius:.5rem;padding:.875rem 1.5rem;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .3s ease;font-family:inherit;margin-top:.5rem;box-shadow:0 4px 12px #3b82f64d}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #3b82f666}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{background:#cbd5e1;color:#64748b;cursor:not-allowed;transform:none;box-shadow:none}.login-error{background-color:#fef2f2;color:#991b1b;padding:1rem;border-radius:.5rem;margin:0 2rem 1.5rem;font-size:.875rem;border-left:4px solid #dc2626}.forgot-password-link{margin-top:1rem;text-align:center}.text-link{background:none;border:none;color:var(--blue-600);font-size:.875rem;cursor:pointer;text-decoration:underline;padding:0;font-family:inherit;transition:color .2s ease}.text-link:hover{color:var(--blue-700)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:1rem;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid #e2e8f0}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#1e293b}.modal-close{background:none;border:none;font-size:1.5rem;color:#64748b;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s ease}.modal-close:hover{background:#f1f5f9;color:#1e293b}.modal-body{padding:2rem}.modal-description{color:#64748b;font-size:.9375rem;line-height:1.6;margin-bottom:1.5rem}.alert{padding:1rem;border-radius:.5rem;margin-bottom:1.5rem;font-size:.875rem}.alert-error{background-color:#fef2f2;color:#991b1b;border-left:4px solid #dc2626}.alert-success{background-color:#f0fdf4;color:#166534;border-left:4px solid #22c55e}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn-secondary{flex:1;padding:.75rem 1.5rem;background:#f1f5f9;color:#475569;border:none;border-radius:.5rem;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-secondary:hover:not(:disabled){background:#e2e8f0}.btn-primary{flex:1;padding:.75rem 1.5rem;background:linear-gradient(135deg,var(--blue-600) 0%,var(--indigo-700) 100%);color:#fff;border:none;border-radius:.5rem;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.animate-on-scroll{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.4,0,.2,1)}.animate-on-scroll.visible{opacity:1;transform:translateY(0)}@media (max-width: 1024px){.login-page{flex-direction:column}.marketing-content{padding:3rem 1.5rem}.login-panel{width:100%;height:auto;position:relative;padding:2rem 1.5rem 3rem}.hero-title{font-size:2.5rem}.stats-section,.capabilities-grid{grid-template-columns:1fr}}@media (max-width: 640px){.hero-title{font-size:2rem}.hero-subtitle{font-size:1rem}.data-flow-animation{flex-direction:column;gap:1rem}.flow-arrow{transform:rotate(90deg)}.login-form{padding:2rem 1.5rem}.showcase-header h2{font-size:2rem}.capabilities-section h3{font-size:1.5rem}}.password-strength-meter{margin-top:.75rem;margin-bottom:.5rem}.strength-bar-container{width:100%;height:6px;background-color:var(--input-border);border-radius:3px;overflow:hidden;margin-bottom:.5rem}.strength-bar{height:100%;transition:width .3s ease,background-color .3s ease;border-radius:3px}.strength-bar.strength-weak{background-color:#dc2626}.strength-bar.strength-fair{background-color:#f59e0b}.strength-bar.strength-good{background-color:#3b82f6}.strength-bar.strength-strong{background-color:#10b981}.strength-label{font-size:.875rem;color:var(--text-secondary);margin-bottom:.75rem}.strength-label span{font-weight:600}.strength-label .strength-weak{color:#dc2626}.strength-label .strength-fair{color:#f59e0b}.strength-label .strength-good{color:#3b82f6}.strength-label .strength-strong{color:#10b981}.password-requirements{background-color:var(--bg-secondary);border:1px solid var(--input-border);border-radius:6px;padding:.875rem;margin-top:.75rem}.requirements-title{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.625rem}.requirements-list{list-style:none;padding:0;margin:0}.requirements-list li{font-size:.813rem;padding:.375rem 0;display:flex;align-items:center;gap:.5rem;transition:color .2s ease}.requirement-icon{font-size:1rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}.requirement-passed,.requirement-passed .requirement-icon{color:#10b981}.requirement-failed,.requirement-failed .requirement-icon{color:var(--text-tertiary)}.user-management-container{padding:0 20px 20px;max-width:1200px;margin:0 auto}.user-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;margin-top:0}.user-management-container h1{margin-bottom:0;font-size:1.5rem;color:#025043}.role-management-link{display:inline-block;padding:8px 15px;background-color:#34a853;color:#fff;border-radius:4px;text-decoration:none;font-weight:500;transition:background-color .3s}.role-management-link:hover{background-color:#2d964a}.user-management-loading{display:flex;justify-content:center;align-items:center;height:200px;font-size:18px;color:#5f6368}.user-management-actions{margin-bottom:20px;display:flex;justify-content:flex-end}.create-user-btn{background-color:#1a73e8;color:#fff;border:none;border-radius:5px;padding:10px 16px;font-size:14px;cursor:pointer;transition:background-color .2s}.create-user-btn:hover{background-color:#0d62cb}.reset-requests-btn{background-color:#34a853;color:#fff;border:none;border-radius:5px;padding:10px 16px;font-size:14px;cursor:pointer;transition:background-color .2s;position:relative;display:inline-flex;align-items:center;gap:8px}.reset-requests-btn:hover{background-color:#2d964a}.reset-requests-btn .badge-count{background-color:#dc2626;color:#fff;border-radius:10px;padding:2px 6px;font-size:12px;font-weight:600;min-width:20px;text-align:center}.users-table-container{overflow-x:auto;margin-bottom:20px}.users-table{width:100%;border-collapse:collapse;border:1px solid #dadce0}.users-table th,.users-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #dadce0}.users-table th{background-color:#f8f9fa;font-weight:500;color:#5f6368}.users-table tbody tr:hover{background-color:#f8f9fa}.user-roles{display:flex;flex-wrap:wrap;gap:4px}.users-table .role-badge{background-color:#e8f0fe;color:#1a73e8;padding:2px 6px;border-radius:3px;font-size:9px;font-weight:500}.account-status{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.account-status.active{background-color:#e8f5e9;color:#2e7d32}.account-status.warning{background-color:#fff3e0;color:#ef6c00}.account-status.locked{background-color:#ffebee;color:#c62828}.user-actions{display:flex;gap:12px;align-items:center}.unlock-user-btn{background-color:#fff3e0;color:#ef6c00;font-weight:500;border:none;border-radius:4px;padding:6px 12px;font-size:12px;cursor:pointer;transition:background-color .2s}.unlock-user-btn:hover{background-color:#ffe0b2}.no-users-message{text-align:center;padding:30px;color:#5f6368}.user-modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;width:100%;max-width:700px;height:85vh;display:flex;flex-direction:column;overflow:hidden}.user-form{padding:24px;height:100%}.form-group input[type=text],.form-group input[type=password],.form-group input[type=email],.form-group input[type=tel],.form-group select{width:100%;padding:10px 12px;border:1px solid #dadce0;border-radius:4px;font-size:14px}.form-group input:focus,.form-group select:focus{outline:none;border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e833}.roles-info{margin-bottom:10px;color:#5f6368;font-size:13px}.no-roles-warning{margin-top:8px;color:#d93025;font-weight:500}.roles-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px}.role-checkbox{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:4px;background-color:#f8f9fa}.role-checkbox:hover{background-color:#e8f0fe}.role-checkbox input{margin-left:8px;cursor:pointer}.role-checkbox label{margin-bottom:0;font-weight:400;cursor:pointer}body.high-contrast .user-management-container h1,body.high-contrast .users-table .role-badge{color:#fff}body.high-contrast .users-table,body.high-contrast .users-table th,body.high-contrast .users-table td{border-color:#fff}body.high-contrast .users-table th{background-color:#000;color:#fff}body.high-contrast .users-table tbody tr:hover{background-color:#333}body.high-contrast .users-table .role-badge{background-color:#fff;color:#000}body.high-contrast .edit-user-icon-btn{color:#64b5f6}body.high-contrast .delete-user-icon-btn{color:#ff6b6b}body.high-contrast .user-modal{background-color:#000;border:2px solid #fff}body.high-contrast .form-group input{background-color:#000;color:#fff;border-color:#fff}.auth-provider-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.auth-provider-badge.local{background-color:#e8f5e9;color:#2e7d32;border:1px solid #2e7d32}.auth-provider-badge.okta{background-color:#e3f2fd;color:#1565c0;border:1px solid #1565c0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:0}.form-row .form-group{margin-bottom:15px}@media (max-width: 768px){.form-row{grid-template-columns:1fr}}body.high-contrast .auth-provider-badge.local,body.high-contrast .auth-provider-badge.okta{background-color:#fff;color:#000;border-color:#fff}.delete-confirmation-modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;width:100%;max-width:500px;display:flex;flex-direction:column}.delete-confirmation-modal .modal-body{padding:24px;text-align:center}.delete-warning-icon{font-size:48px;margin-bottom:16px}.delete-confirmation-text{font-size:16px;color:#202124;margin-bottom:16px;line-height:1.5}.delete-confirmation-text strong{color:#d93025}.user-detail{font-size:14px;color:#5f6368;margin:8px 0}.delete-warning-text{font-size:13px;color:#d93025;margin-top:16px;font-weight:500}.delete-confirm-btn{background-color:#d93025;color:#fff;border:none;padding:10px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:background-color .2s}.delete-confirm-btn:hover{background-color:#c5221f}body.high-contrast .delete-confirmation-modal{background-color:#000;border:2px solid #fff}body.high-contrast .delete-confirmation-text{color:#fff}body.high-contrast .delete-confirmation-text strong{color:#ff6b6b}body.high-contrast .user-detail{color:#fff}body.high-contrast .delete-warning-text{color:#ff6b6b}body.high-contrast .delete-confirm-btn{background-color:#ff6b6b;color:#000}.icon-button{background:transparent;border:none;padding:6px;font-size:16px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;border-radius:4px}.icon-button:hover{transform:translateY(-2px)}.edit-button{color:#1a73e8}.edit-button:hover{background-color:#e8f0fe}body.high-contrast .icon-button{border:1px solid #fff}body.high-contrast .edit-button{color:#64b5f6}.user-roles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.user-role-checkbox{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--gps-bg-page, #f7fafc);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:4px;transition:all .2s ease}.user-role-checkbox:hover{background:#e8f0fe;border-color:var(--gps-primary-teal, #025043)}.user-role-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--gps-primary-teal, #025043);cursor:pointer;flex-shrink:0}.user-role-checkbox label{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:500;color:var(--gps-text-dark, #333);cursor:pointer;margin:0}.role-management-container{padding:0 20px 20px;max-width:1200px;margin:0 auto}.role-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;margin-top:0}.role-management-container h1{margin-bottom:0;font-size:1.5rem;color:#025043}.user-management-link{display:inline-block;padding:8px 15px;background-color:#34a853;color:#fff;border-radius:4px;text-decoration:none;font-weight:500;transition:background-color .3s}.user-management-link:hover{background-color:#2d964a}.role-management-loading{display:flex;justify-content:center;align-items:center;height:200px;font-size:18px;color:#5f6368}.role-management-actions{margin-bottom:20px;display:flex;justify-content:flex-end}.create-role-btn{background-color:#1a73e8;color:#fff;border:none;border-radius:5px;padding:10px 16px;font-size:14px;cursor:pointer;transition:background-color .2s}.create-role-btn:hover{background-color:#0d62cb}.bulk-delete-btn{background-color:#dc2626;color:#fff;border:none;border-radius:5px;padding:10px 16px;font-size:14px;cursor:pointer;transition:background-color .2s}.bulk-delete-btn:hover{background-color:#b91c1c}.roles-table-container{overflow-x:auto;margin-bottom:20px}.roles-table{width:100%;border-collapse:collapse;border:1px solid #dadce0}.roles-table th,.roles-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #dadce0}.roles-table th{background-color:#f8f9fa;font-weight:500;color:#5f6368}.roles-table tbody tr:hover{background-color:#f8f9fa}.permission-tags{display:flex;flex-wrap:wrap;gap:4px;max-width:300px}.permission-tag{background-color:#e8f0fe;color:#1a73e8;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.permission-read{background-color:#e6f4ea;color:#34a853}.permission-write{background-color:#fce8e6;color:#ea4335}.role-actions{display:flex;gap:8px}.no-roles-message{text-align:center;padding:30px;color:#5f6368}.role-modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;width:100%;max-width:850px;height:85vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #dadce0;flex-shrink:0;height:10%;min-height:60px}.modal-content-scrollable{flex:1;overflow-y:auto;height:80%;padding:0}.role-form{padding:24px;height:100%}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #dadce0;flex-shrink:0;height:10%;min-height:60px;align-items:center;background-color:#f8f9fa}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#5f6368}.form-group input[type=text],.form-group textarea{width:100%;padding:10px 12px;border:1px solid #dadce0;border-radius:4px;font-size:14px}.form-group textarea{min-height:80px;resize:vertical}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e833}.required-field{color:#d93025;margin-left:4px}.permissions-section{border:1px solid #dadce0;border-radius:4px;padding:16px;margin-bottom:20px}.permissions-title{font-weight:500;margin-bottom:16px;color:#202124}.permissions-grid{display:grid;grid-template-columns:1fr repeat(2,auto);gap:12px;align-items:center}.permissions-grid-with-execute,.permissions-grid-with-approve{display:grid;grid-template-columns:1fr repeat(3,auto);gap:12px;align-items:center}.permissions-grid-with-execute-approve{display:grid;grid-template-columns:1fr repeat(4,auto);gap:12px;align-items:center}.feature-name{font-weight:500}.nested-feature{padding-left:20px;font-weight:400;color:#5f6368}.nested-indicator{color:#9aa0a6;font-weight:400;margin-right:4px}.permission-header{text-align:center;font-weight:500;color:#5f6368;font-size:14px}.permission-checkbox{display:flex;justify-content:center;align-items:center}.permission-checkbox input{width:18px;height:18px;cursor:pointer}.permission-na{color:#dadce0;font-size:16px;-webkit-user-select:none;user-select:none}.section-divider{height:1px;background-color:#dadce0;margin:16px 0;grid-column:1 / -1}body.high-contrast .role-management-container h1,body.high-contrast .permission-tag{color:#fff}body.high-contrast .roles-table,body.high-contrast .roles-table th,body.high-contrast .roles-table td{border-color:#fff}body.high-contrast .roles-table th{background-color:#000;color:#fff}body.high-contrast .roles-table tbody tr:hover{background-color:#333}body.high-contrast .permission-tag{background-color:#fff;color:#000}body.high-contrast .permission-read{background-color:#fff;color:#000;border:1px solid #34a853}body.high-contrast .permission-write{background-color:#fff;color:#000;border:1px solid #ea4335}body.high-contrast .edit-role-btn{background-color:#fff;color:#000}body.high-contrast .delete-role-btn{background-color:#ff6b6b;color:#000}body.high-contrast .role-modal{background-color:#000;border:2px solid #fff}body.high-contrast .form-group input,body.high-contrast .form-group textarea{background-color:#000;color:#fff;border-color:#fff}.tag-permissions-section{background-color:#f8f9fa;margin-top:20px}.tag-badge-inline{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.5px;margin-right:8px}.tag-sensitivity-hint{font-size:11px;color:#5f6368;font-style:italic;margin-left:4px}.notifications-page{padding:20px;max-width:1200px;margin:0 auto}.notifications-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.notifications-header .header-left{display:flex;align-items:center;gap:12px}.notifications-header .page-icon{font-size:28px;color:#1a73e8}.notifications-header h1{margin:0;font-size:28px;font-weight:600;color:#202124}.unread-badge{background:#d93025;color:#fff;padding:2px 8px;border-radius:12px;font-size:14px;font-weight:600;min-width:20px;text-align:center}.error-banner{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.loading-state{text-align:center;padding:60px 20px;color:#5f6368;font-size:16px}.notifications-filters{display:flex;gap:8px;margin-bottom:20px;border-bottom:2px solid #e8eaed}.filter-tab{padding:12px 20px;background:transparent;border:none;border-bottom:3px solid transparent;color:#5f6368;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-bottom:-2px}.filter-tab:hover{color:#1a73e8;background:#f1f3f4;border-radius:8px 8px 0 0}.filter-tab.active{color:#1a73e8;border-bottom-color:#1a73e8}.notifications-list{background:#fff;border-radius:8px;border:1px solid #e8eaed;overflow:hidden}.notification-item{display:flex;align-items:flex-start;padding:16px 20px;border-bottom:1px solid #e8eaed;transition:background-color .2s;cursor:pointer}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:#f8f9fa}.notification-item.unread{background:#f1f3f4}.notification-item.unread:hover{background:#e8eaed}.notification-content-wrapper{display:flex;flex:1;gap:12px;cursor:pointer}.notification-icon{font-size:24px;line-height:1;flex-shrink:0;margin-top:2px}.notification-details{flex:1;min-width:0}.notification-title{font-size:15px;font-weight:600;color:#202124;margin-bottom:4px;display:flex;align-items:center;gap:8px}.unread-dot{width:8px;height:8px;background:#1a73e8;border-radius:50%;flex-shrink:0}.notification-message{font-size:14px;color:#5f6368;margin-bottom:6px;line-height:1.5;word-wrap:break-word}.notification-timestamp{font-size:12px;color:#80868b}.notification-actions{display:flex;gap:8px;flex-shrink:0;margin-left:12px}.action-btn{padding:6px;background:transparent;border:1px solid #dadce0;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;color:#5f6368}.action-btn:hover{background:#f1f3f4;border-color:#5f6368;transform:translateY(-1px)}.action-btn.mark-read:hover{color:#137333;border-color:#137333}.action-btn.mark-unread:hover{color:#1a73e8;border-color:#1a73e8}.action-btn.delete:hover{color:#d93025;border-color:#d93025}.action-btn svg{width:16px;height:16px}.empty-state{text-align:center;padding:80px 20px;color:#5f6368}.empty-state .empty-icon{font-size:48px;color:#dadce0;margin-bottom:16px}.empty-state p{font-size:16px;margin:0}.vendor-management-container{padding:0 20px 20px;max-width:1200px;margin:0 auto}.vendor-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;margin-top:0}.vendor-management-container h1{margin-bottom:0;font-size:1.5rem;color:#025043}.vendor-management-loading{display:flex;justify-content:center;align-items:center;height:200px;font-size:18px;color:#5f6368}.vendor-management-actions{margin-bottom:20px;display:flex;justify-content:flex-end}.create-vendor-btn{background-color:#1a73e8;color:#fff;border:none;border-radius:5px;padding:10px 16px;font-size:14px;cursor:pointer;transition:background-color .2s}.create-vendor-btn:hover{background-color:#0d62cb}.vendors-table-container{overflow-x:auto;margin-bottom:20px}.vendors-table{width:100%;border-collapse:collapse;border:1px solid #dadce0}.vendors-table th,.vendors-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #dadce0}.vendors-table th{background-color:#f8f9fa;font-weight:500;color:#5f6368}.vendors-table tbody tr:hover{background-color:#f8f9fa}.vendor-actions{display:flex;gap:8px;align-items:center}.icon-btn{border:none;border-radius:4px;padding:8px;font-size:16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;background-color:transparent}.icon-btn:hover{transform:translateY(-2px)}.edit-icon-btn{color:#1a73e8}.edit-icon-btn:hover{background-color:#e8f0fe}.project-icon-btn{color:#137333}.project-icon-btn:hover{background-color:#e6f4ea}.delete-icon-btn{color:#d93025}.delete-icon-btn:hover{background-color:#feeceb}.edit-vendor-btn,.delete-vendor-btn{border:none;border-radius:4px;padding:6px 12px;font-size:12px;cursor:pointer;transition:background-color .2s}.edit-vendor-btn{background-color:#e8f0fe;color:#1a73e8}.edit-vendor-btn:hover{background-color:#d2e3fc}.delete-vendor-btn{background-color:#feeceb;color:#d93025}.form-group label{display:block;font-weight:500;color:#374151;margin-bottom:.25rem;font-size:13px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input:disabled,.form-group select:disabled{background-color:#f3f4f6;cursor:not-allowed}.delete-vendor-btn:hover{background-color:#fed7d7}.no-vendors-message{text-align:center;padding:30px;color:#5f6368}.status-suspended{background-color:#fef7e0;color:#ea8600}.vendor-modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #dadce0}.vendor-form{padding:0}.form-group textarea{resize:vertical;min-height:48px}.form-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}.form-row-2col:last-child{margin-bottom:0}@media (max-width: 768px){.form-row-2col{grid-template-columns:1fr;gap:.5rem}}body.high-contrast .vendor-management-container h1{color:#fff}body.high-contrast .vendors-table,body.high-contrast .vendors-table th,body.high-contrast .vendors-table td{border-color:#fff}body.high-contrast .vendors-table th{background-color:#000;color:#fff}body.high-contrast .vendors-table tbody tr:hover{background-color:#333}body.high-contrast .status-active,body.high-contrast .status-inactive,body.high-contrast .status-suspended{background-color:#fff;color:#000;border:2px solid #fff}body.high-contrast .icon-btn{border:1px solid #fff}body.high-contrast .edit-icon-btn,body.high-contrast .project-icon-btn{color:#fff}body.high-contrast .delete-icon-btn{color:#ff6b6b}body.high-contrast .edit-vendor-btn{background-color:#fff;color:#000}body.high-contrast .delete-vendor-btn{background-color:#ff6b6b;color:#000}body.high-contrast .vendor-modal{background-color:#000;border:2px solid #fff}body.high-contrast .save-btn{background-color:#fff;color:#000}@media (max-width: 768px){.vendor-management-header{flex-direction:column;align-items:flex-start;gap:15px}.vendors-table-container{overflow-x:scroll}.vendor-modal{max-width:95%;margin:10px}.vendor-actions{flex-direction:column}}.vendor-connection-form .form-group{margin-bottom:.875rem}.vendor-connection-form .form-group:last-child{margin-bottom:0}.vendor-connection-form .error-message{background:#fee2e2;color:#991b1b;padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.vendor-connection-form .test-result{padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.vendor-connection-form .test-result.success{background:#d1fae5;color:#065f46}.vendor-connection-form .test-result.error{background:#fee2e2;color:#991b1b}.contact-panels-container{display:flex!important;flex-direction:row!important;gap:16px;margin-top:16px;width:100%}.contact-panel{flex:1;min-width:0;background:#f8f9fa;border:1px solid #e5e7eb;border-radius:8px;padding:14px}.contact-panel-title{font-size:12px;font-weight:600;color:#374151;margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid #e5e7eb}.contact-panel .form-group{margin-bottom:10px}.contact-panel .form-group:last-child{margin-bottom:0}.contact-panel label{font-size:11px;font-weight:500;color:#4b5563;margin-bottom:3px;display:block}.contact-panel input,.contact-panel select{font-size:12px;padding:6px 8px}@media (max-width: 600px){.contact-panels-container{flex-direction:column!important}}.vendor-success-modal{max-width:480px;border-radius:8px;overflow:hidden}.vendor-success-modal .modal-header{background-color:#025043;padding:16px 20px}.vendor-success-modal .modal-header h2{color:#fff;font-size:16px;font-weight:600;margin:0}.vendor-success-modal .modal-header .close-btn{color:#fff;opacity:.8}.vendor-success-modal .modal-header .close-btn:hover{opacity:1}.vendor-success-modal .modal-body{padding:24px}.vendor-success-modal .success-content{text-align:center}.vendor-success-modal .success-icon{margin-bottom:16px}.vendor-success-modal .success-title{font-size:15px;font-weight:600;color:#1f2937;margin:0 0 8px}.vendor-success-modal .success-subtitle{font-size:13px;color:#6b7280;margin:0 0 16px}.vendor-success-modal .success-subtitle strong{color:#374151}.vendor-success-modal .success-info-box{background-color:#f0fdf4;border:1px solid #86efac;border-radius:6px;padding:12px 16px;margin-top:8px}.vendor-success-modal .success-info-box p{font-size:12px;color:#166534;margin:0;line-height:1.5}.vendor-success-modal .modal-actions{padding:16px 24px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:12px}.vendor-success-modal .btn-secondary{background:#fff;border:1px solid #d1d5db;color:#374151;padding:8px 16px;font-size:13px;border-radius:6px;cursor:pointer}.vendor-success-modal .btn-secondary:hover{background:#f9fafb}.vendor-success-modal .btn-primary{background:#025043;border:none;color:#fff;padding:8px 16px;font-size:13px;border-radius:6px;cursor:pointer}.vendor-success-modal .btn-primary:hover{background:#013d33}.notification-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:flex-start;justify-content:center;z-index:10000;padding-top:80px}.notification-modal-content{background:#fff;border-radius:8px;width:90%;max-width:500px;box-shadow:0 4px 12px #00000026;animation:slideDown .3s ease-out;border-left:4px solid}.notification-modal-content.success{border-left-color:#10b981}.notification-modal-content.error{border-left-color:#ef4444}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.notification-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e5e7eb}.notification-title-section{display:flex;align-items:center;gap:12px}.notification-title-section h3{margin:0;font-size:16px;font-weight:600;color:#111827}.notification-icon{font-size:24px}.notification-icon.success{color:#10b981}.notification-icon.error{color:#ef4444}.notification-close-btn{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:color .2s}.notification-close-btn:hover{color:#111827}.notification-close-btn svg{font-size:20px}.notification-modal-body{padding:20px}.notification-modal-body p{margin:0;color:#374151;font-size:14px;line-height:1.6}.vendor-user-select{position:relative;width:100%}.vendor-user-input-wrapper{position:relative;display:flex;align-items:center;border:1px solid #ddd;border-radius:4px;background-color:#fff;cursor:pointer;transition:border-color .2s}.vendor-user-input-wrapper:hover:not(.disabled){border-color:#007bff}.vendor-user-input-wrapper.open{border-color:#007bff;box-shadow:0 0 0 2px #007bff1a}.vendor-user-input-wrapper.disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.6}.vendor-user-input{flex:1;padding:10px 32px 10px 12px;border:none;background:transparent;outline:none;font-size:14px;cursor:inherit;color:#333}.vendor-user-input::placeholder{color:#999}.vendor-user-input:disabled{cursor:not-allowed}.clear-button{position:absolute;right:28px;background:none;border:none;font-size:20px;color:#999;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:color .2s}.clear-button:hover{color:#333}.dropdown-arrow{position:absolute;right:10px;font-size:10px;color:#666;pointer-events:none;transition:transform .2s}.dropdown-arrow.open{transform:rotate(180deg)}.vendor-user-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 4px 12px #00000026;max-height:300px;overflow-y:auto;z-index:1000}.dropdown-message{padding:12px;text-align:center;color:#666;font-size:14px}.dropdown-message.error{color:#dc3545}.vendor-user-list{padding:4px}.vendor-user-item{padding:10px 12px;cursor:pointer;border-radius:4px;transition:background-color .2s;margin-bottom:2px}.vendor-user-item:hover{background-color:#f8f9fa}.vendor-user-item.selected{background-color:#e7f3ff}.user-name{font-weight:500;color:#333;margin-bottom:4px;font-size:14px}.user-details{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#666;margin-bottom:2px}.user-email,.user-phone{display:inline-flex;align-items:center}.user-email:before{content:"✉";margin-right:4px;color:#999}.user-phone:before{content:"☎";margin-right:4px;color:#999}.user-designation{font-size:11px;color:#888;font-style:italic}.vendor-user-dropdown::-webkit-scrollbar{width:8px}.vendor-user-dropdown::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.vendor-user-dropdown::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.vendor-user-dropdown::-webkit-scrollbar-thumb:hover{background:#999}.three-stage-approval-panel{background:var(--gps-bg-page, #f7fafc);border-radius:6px;padding:12px;margin-top:12px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.three-stage-approval-panel h3{margin:0 0 12px;color:var(--gps-primary-teal, #025043);font-size:13px;font-weight:600;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.three-stage-approval-panel h4{margin:0 0 10px;color:var(--gps-text-dark, #333333);font-size:12px;font-weight:600;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.approval-stages{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;position:relative}.approval-stage{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;background:#fff;border:1px solid var(--gps-border-light, #e2e8f0);border-radius:6px;padding:10px;transition:all .3s ease}.approval-stage.active{border-color:var(--gps-primary-teal, #025043);background:#f0f9f7}.approval-stage.completed{border-color:var(--gps-success-green, #38a169);background:#f0fff4}.approval-stage.rejected{border-color:var(--gps-danger-red, #e53e3e);background:#fff5f5}.stage-header{display:flex;align-items:center;gap:8px;width:100%}.stage-icon{font-size:18px;flex-shrink:0}.stage-icon.approved{color:var(--gps-success-green, #38a169)}.stage-icon.rejected{color:var(--gps-danger-red, #e53e3e)}.stage-icon.pending{color:#9ca3af}.stage-icon.pending-active{color:var(--gps-primary-teal, #025043);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.stage-icon.disabled{color:#d1d5db}.stage-info{flex:1;text-align:left}.stage-title{font-weight:600;font-size:11px;color:var(--gps-text-dark, #333333);margin-bottom:2px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.stage-status{font-size:10px;color:var(--gps-text-muted, #666666);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.stage-connector{width:30px;height:2px;background:var(--gps-border-light, #e2e8f0);margin:0 6px;flex-shrink:0}.approval-action-panel{background:#fff;border:1px solid var(--gps-border-light, #e2e8f0);border-radius:6px;padding:12px;margin-top:12px}.three-stage-approval-panel .form-group{margin-bottom:12px}.three-stage-approval-panel .form-group label{display:block;margin-bottom:4px;color:var(--gps-text-muted, #666666);font-weight:500;font-size:10px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.three-stage-approval-panel .form-group textarea{width:100%;padding:6px 10px;border:1px solid var(--gps-border-light, #e2e8f0);border-radius:4px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;resize:vertical;transition:border-color .2s ease}.three-stage-approval-panel .form-group textarea:focus{outline:none;border-color:var(--gps-primary-teal, #025043);box-shadow:0 0 0 2px #0250431a}.file-upload-area{border:1px dashed var(--gps-border-light, #e2e8f0);border-radius:4px;padding:10px;text-align:center;transition:border-color .2s ease}.file-upload-area:hover{border-color:var(--gps-primary-teal, #025043)}.three-stage-approval-panel .form-group label.file-upload-button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background-color:var(--gps-primary-teal, #025043);color:#fff;border-radius:4px;cursor:pointer;font-size:11px;font-weight:500;transition:background-color .2s ease;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.three-stage-approval-panel .form-group label.file-upload-button:hover{background-color:var(--gps-primary-hover, #033830)}.attached-files{margin-top:8px;display:flex;flex-direction:column;gap:4px}.attached-file{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--gps-bg-page, #f7fafc);border-radius:4px;font-size:10px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.attached-file svg{color:var(--gps-text-muted, #666666)}.attached-file span{flex:1;text-align:left;color:var(--gps-text-dark, #333333)}.remove-file-btn{background:none;border:none;color:var(--gps-danger-red, #e53e3e);font-size:14px;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s ease}.remove-file-btn:hover{background-color:#fff5f5}.action-buttons{display:flex;gap:10px;margin-top:12px}.approve-btn-stage,.reject-btn-stage{flex:1;padding:6px 12px;border:1px solid transparent;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s ease;background:none;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.approve-btn-stage{color:var(--gps-success-green, #38a169);border-color:var(--gps-success-green, #38a169)}.approve-btn-stage:hover:not(:disabled){background-color:#38a1691a;color:#2f855a;border-color:#2f855a;transform:translateY(-1px)}.reject-btn-stage{color:var(--gps-danger-red, #e53e3e);border-color:var(--gps-danger-red, #e53e3e)}.reject-btn-stage:hover:not(:disabled){background-color:#e53e3e1a;color:#c53030;border-color:#c53030;transform:translateY(-1px)}.approve-btn-stage:disabled,.reject-btn-stage:disabled{opacity:.5;cursor:not-allowed}.approve-btn-stage.warning-action{color:#dd6b20;border-color:#dd6b20}.approve-btn-stage.warning-action:hover:not(:disabled){background-color:#dd6b201a;color:#c05621;border-color:#c05621}.locked-notice{background:#fffaf0;border:1px solid #fbd38d;border-radius:4px;padding:8px 12px;margin-top:10px;text-align:center;color:#c05621;font-size:11px;font-weight:500;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}@media (max-width: 768px){.approval-stages{flex-direction:column;gap:.5rem}.stage-connector{width:2px;height:30px;margin:.5rem 0}.action-buttons{flex-direction:column}}.file-schema-manager{background:#fff;border-radius:6px;padding:12px;margin-top:0;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.schema-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--gps-border-light, #e2e8f0)}.header-title{display:flex;align-items:center;gap:8px}.header-icon{font-size:16px;color:var(--gps-primary-teal, #025043)}.schema-header h3{margin:0;font-size:13px;font-weight:600;color:var(--gps-text-dark, #333333);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.btn-create-schema{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--gps-primary-teal, #025043);color:#fff;border:none;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.btn-create-schema:hover:not(:disabled){background:var(--gps-primary-hover, #033830);transform:translateY(-1px);box-shadow:0 2px 6px #0250434d}.btn-create-schema:disabled{opacity:.5;cursor:not-allowed}.schema-info-box{background:#eff6ff;border-left:3px solid #3b82f6;padding:10px 12px;margin-bottom:12px;border-radius:4px;display:flex;gap:8px}.info-icon{flex-shrink:0;color:#3b82f6;margin-top:1px;font-size:14px}.info-content{font-size:11px;color:#1e40af;line-height:1.5;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.info-content strong{color:#1e3a8a;font-weight:600}.info-content em{color:#3b82f6;font-style:normal;font-weight:500}.schema-form-container{background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.schema-form .form-header,.schema-edit-form .form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.schema-form h4{margin:0;font-size:1.1rem;color:#1f2937;display:flex;align-items:center;gap:.5rem}.btn-close{background:none;border:none;color:#6b7280;cursor:pointer;padding:.25rem;font-size:1.25rem;display:flex;align-items:center;transition:color .2s ease}.btn-close:hover{color:#dc2626}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-group label{font-size:11px;font-weight:500;color:var(--gps-text-muted, #666666);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.form-group input[type=text],.form-group input[type=number],.form-group textarea{padding:6px 10px;border:1px solid var(--gps-border-light, #e2e8f0);border-radius:4px;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);transition:border-color .2s ease}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group textarea{font-family:Courier New,monospace;resize:vertical}.form-group small{font-size:10px;color:var(--gps-text-muted, #666666);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:1.125rem;height:1.125rem;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;border-top:1px solid #e5e7eb}.btn-cancel,.btn-save,.btn-cancel-small,.btn-save-small{display:flex;align-items:center;gap:6px;padding:6px 12px;border:none;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.btn-cancel,.btn-cancel-small{background:#fff;color:#6b7280;border:1px solid #d1d5db}.btn-cancel:hover,.btn-cancel-small:hover{background:#f3f4f6;border-color:#9ca3af}.btn-save,.btn-save-small{background:#10b981;color:#fff}.btn-save:hover:not(:disabled),.btn-save-small:hover:not(:disabled){background:#059669;transform:translateY(-1px);box-shadow:0 4px 8px #10b9814d}.btn-save:disabled,.btn-save-small:disabled{opacity:.6;cursor:not-allowed}.schemas-list{display:flex;flex-direction:column;gap:10px}.empty-state{text-align:center;padding:24px 12px;color:var(--gps-text-muted, #666666)}.empty-icon{font-size:24px;color:#d1d5db;margin-bottom:8px}.empty-state p{font-size:11px;margin:4px 0;color:var(--gps-text-dark, #333333);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.empty-state small{font-size:10px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.schema-item{background:#fff;border:1px solid var(--gps-border-light, #e2e8f0);border-radius:6px;padding:10px 12px;transition:all .2s ease}.schema-item:hover{border-color:var(--gps-primary-teal, #025043);box-shadow:0 2px 6px #0250431a}.schema-item.editing{border-color:var(--gps-primary-teal, #025043);background:#f0f9f7}.schema-item.inactive{opacity:.6;background:#f9fafb}.schema-content{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.schema-main-info{flex:1}.schema-pattern{display:flex;align-items:center;gap:8px;margin-bottom:4px}.pattern-icon{color:var(--gps-primary-teal, #025043);font-size:14px}.schema-pattern strong{font-size:12px;font-weight:600;color:var(--gps-text-dark, #333333);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.priority-badge{background:#dbeafe;color:#1e40af;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:500;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.inactive-badge{background:#fef3c7;color:#92400e;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:500}.schema-description{font-size:11px;color:var(--gps-text-muted, #666666);margin-bottom:4px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.schema-preview{margin-top:8px}.schema-preview details{cursor:pointer}.schema-preview summary{font-size:11px;color:var(--gps-primary-teal, #025043);font-weight:500;padding:4px;-webkit-user-select:none;user-select:none;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.schema-preview summary:hover{background:#f0f9f7;border-radius:4px}.schema-preview pre{background:#f9fafb;border:1px solid var(--gps-border-light, #e2e8f0);border-radius:4px;padding:10px;margin-top:6px;font-size:10px;overflow-x:auto;max-height:300px}.schema-actions{display:flex;gap:6px}.btn-edit-schema,.btn-delete-schema{background:#fff;border:1px solid var(--gps-border-light, #e2e8f0);padding:6px;border-radius:4px;cursor:pointer;color:var(--gps-text-muted, #666666);transition:all .2s ease;display:flex;align-items:center}.btn-edit-schema:hover{background:#f0f9f7;color:var(--gps-primary-teal, #025043);border-color:var(--gps-primary-teal, #025043)}.btn-delete-schema:hover{background:#fef2f2;color:#dc2626;border-color:#dc2626}.loading-state,.error-message{text-align:center;padding:2rem}.spinner{border:3px solid #f3f4f6;border-top:3px solid #3b82f6;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto 1rem}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:1rem;border-radius:6px;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem}.column-governance-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:1rem;margin-top:.5rem}.column-table{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.column-table-header{display:grid;grid-template-columns:2fr 1fr 1.5fr 1fr 2fr .5fr;gap:.5rem;padding:.5rem;background:#e5e7eb;border-radius:4px;font-weight:600;font-size:.75rem;color:#374151;text-align:left}.column-table-row{display:grid;grid-template-columns:2fr 1fr 1.5fr 1fr 2fr .5fr;gap:.5rem;align-items:center;padding:.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:4px;transition:box-shadow .2s ease}.column-table-row:hover{box-shadow:0 2px 4px #0000000d}.column-input{padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.8rem;width:100%;box-sizing:border-box}.column-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.column-checkbox{width:18px;height:18px;cursor:pointer;justify-self:center}.column-select{padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.8rem;background:#fff;cursor:pointer;width:100%}.column-select:disabled{background:#f3f4f6;cursor:not-allowed;opacity:.6}.column-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.btn-add-column{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-add-column:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 2px 4px #3b82f64d}.btn-remove-column{display:flex;align-items:center;justify-content:center;padding:.375rem;background:#ef4444;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:all .2s ease;width:32px;height:32px;justify-self:center}.btn-remove-column:hover{background:#dc2626;transform:scale(1.05)}.btn-remove-column svg{font-size:.875rem}@media (max-width: 1200px){.column-table-header,.column-table-row{grid-template-columns:1.5fr .8fr 1.2fr .8fr 1.5fr .4fr;font-size:.7rem}.column-input,.column-select{font-size:.75rem;padding:.3rem .4rem}}.schema-field-editor{margin-top:var(--space-2)}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.editor-title-row{display:flex;align-items:center;gap:var(--space-2)}.editor-icon{color:var(--text-secondary);width:18px;height:18px}.editor-header label{font-weight:var(--font-semibold);color:var(--text-primary);margin:0;font-size:10px;font-family:Inter,sans-serif;text-transform:uppercase;letter-spacing:.5px}.header-toggle-row{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);background-color:var(--color-gray-50);border:1px solid var(--border-light);border-radius:var(--radius-sm);margin-bottom:var(--space-3)}.header-toggle-content{display:flex;align-items:center;justify-content:space-between}.header-toggle-label{font-size:10px;font-family:Inter,sans-serif;font-weight:600;color:var(--text-primary)}.header-toggle-help{font-size:10px;font-family:Inter,sans-serif;color:var(--text-secondary);margin:0}.schema-field-editor .header-toggle-row .toggle-switch{position:relative;display:inline-block;width:48px;height:24px;flex-shrink:0;cursor:pointer;background:transparent;border:none;padding:0;margin:0}.schema-field-editor .header-toggle-row .toggle-switch.disabled{opacity:.6;cursor:not-allowed}.schema-field-editor .header-toggle-row .toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:background-color .3s ease;border-radius:24px;z-index:1;pointer-events:none!important}.schema-field-editor .header-toggle-row .toggle-knob{position:absolute;height:18px;width:18px;left:3px;top:3px;background-color:#fff;transition:transform .3s ease;border-radius:50%;box-shadow:0 1px 3px #0000004d;z-index:2;pointer-events:none!important}.schema-field-editor .header-toggle-row .toggle-switch.on .toggle-slider{background-color:#0d6e6e}.schema-field-editor .header-toggle-row .toggle-switch.on .toggle-knob{transform:translate(24px)}.schema-field-editor .header-toggle-row .toggle-switch.off .toggle-slider{background-color:#ccc}.schema-field-editor .header-toggle-row .toggle-switch.off .toggle-knob{transform:translate(0)}.btn-add-field{display:flex;align-items:center;gap:var(--space-1);padding:6px 12px;background-color:#0d6e6e;color:#fff;border:none;border-radius:var(--radius-sm);font-size:10px;font-family:Inter,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:background-color .2s}.btn-add-field:hover{background-color:#0a5555}.btn-add-field svg{width:12px;height:12px}.schema-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);background-color:#fee2e2;border:1px solid #ef4444;border-radius:var(--radius-sm);color:#991b1b;margin-bottom:var(--space-3)}.schema-error svg{width:18px;height:18px}.empty-schema{padding:var(--space-6);text-align:center;background-color:var(--color-gray-50);border:2px dashed var(--border-light);border-radius:var(--radius-md);color:var(--text-secondary)}.empty-schema p{font-size:10px;font-family:Inter,sans-serif;margin:0 0 4px}.fields-table-container{position:relative;border:1px solid var(--border-light);border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.fields-table{overflow-x:auto;overflow-y:auto;max-height:300px}.fields-table table{width:100%;border-collapse:collapse}.fields-table thead{background-color:var(--color-gray-50);position:sticky;top:0;z-index:1}.fields-table th{padding:8px 6px;text-align:left;font-size:10px;font-family:Inter,sans-serif;font-weight:600;color:var(--text-secondary);border-bottom:2px solid var(--border-light);white-space:nowrap;text-transform:none;background-color:var(--color-gray-50)}.fields-table tbody tr{border-bottom:1px solid var(--border-light)}.fields-table tbody tr:last-child{border-bottom:none}.fields-table tbody tr:hover{background-color:var(--color-gray-50)}.fields-table td{padding:6px 4px}.field-input{width:100%;padding:6px 8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:10px;font-family:Inter,sans-serif}.field-input:focus{outline:none;border-color:#0d6e6e;box-shadow:0 0 0 2px #0d6e6e1a}.field-select{width:100%;padding:6px 8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:10px;font-family:Inter,sans-serif;background-color:#fff}.field-select:focus{outline:none;border-color:#0d6e6e;box-shadow:0 0 0 2px #0d6e6e1a}.pii-cell{text-align:center;width:80px}.pii-checkbox{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;justify-content:center}.pii-checkbox input[type=checkbox]{cursor:pointer}.pii-checkbox span{font-size:10px;font-family:Inter,sans-serif;font-weight:500;color:var(--text-secondary)}.pii-checkbox span.pii-active{color:#991b1b;font-weight:var(--font-semibold)}.actions-cell{text-align:center;width:60px}.btn-remove-field{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2);background-color:transparent;color:var(--color-danger, #dc2626);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .2s}.btn-remove-field:hover{background-color:#fee2e2}.btn-remove-field svg{width:16px;height:16px}.editor-hint{display:block;color:var(--text-secondary);font-size:10px;font-family:Inter,sans-serif;margin-top:var(--space-2)}.extended-fields-notice{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);background-color:#dbeafe;border:1px solid #3b82f6;border-radius:var(--radius-sm);color:#1e40af;margin-bottom:var(--space-3);font-size:10px;font-family:Inter,sans-serif}.extended-fields-notice svg{width:18px;height:18px;flex-shrink:0;margin-top:2px}.field-input-small{width:70px;text-align:center}.nullable-cell{text-align:center;width:80px}.nullable-checkbox{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;justify-content:center}.nullable-checkbox input[type=checkbox]{cursor:pointer}.nullable-checkbox span{font-size:10px;font-family:Inter,sans-serif;font-weight:500;color:var(--text-secondary)}.empty-schema small{display:block;margin-top:var(--space-2);color:var(--text-muted)}.th-field-name{min-width:120px}.th-type{min-width:80px}.th-width{min-width:60px}.th-start-pos,.th-precision{min-width:70px}.th-scale{min-width:60px}.th-nullable{min-width:70px}.th-pii{min-width:50px}.th-description{min-width:120px}.th-quality-rules{min-width:140px}.th-actions{min-width:40px}.quality-rules-cell{min-width:140px;max-width:180px}.quality-rules-cell .no-rules{color:var(--text-muted);font-size:10px;font-family:Inter,sans-serif}.field-quality-rules{display:flex;flex-wrap:wrap;gap:3px}.field-quality-rules .rule-tag{display:inline-block;padding:2px 6px;border-radius:8px;font-size:8px;font-family:Inter,sans-serif;font-weight:600;text-transform:uppercase;white-space:nowrap;cursor:help}.field-quality-rules .rule-tag.severity-critical{background:#e53e3e26;color:#dc2626}.field-quality-rules .rule-tag.severity-high{background:#fef3c7;color:#92400e}.field-quality-rules .rule-tag.severity-medium{background:#0250431a;color:#025043}.field-quality-rules .rule-tag.severity-warning{background:#fef3c7;color:#92400e}.field-quality-rules .rule-tag.severity-low{background:#38a1691a;color:#38a169}.fields-table table{min-width:1000px}.file-configurations-section{background:var(--gps-bg-page, #f7fafc);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-md, 6px);padding:var(--gps-spacing-xl, 16px);margin-top:0;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--gps-spacing-md, 8px)}.file-configurations-section .section-title{margin:0;font-size:13px;color:var(--gps-primary-teal, #025043);font-weight:var(--gps-font-weight-bold, 700)}.section-description{margin:0 0 var(--gps-spacing-lg, 12px) 0;font-size:11px;color:var(--gps-text-muted, #666666)}.btn-add-file-config{display:flex;align-items:center;gap:var(--gps-spacing-sm, 6px);padding:var(--gps-spacing-sm, 6px) var(--gps-spacing-lg, 12px);background:var(--gps-primary-teal, #025043);color:#fff;border:none;border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-semibold, 600);cursor:pointer;transition:all .2s ease}.btn-add-file-config:hover:not(:disabled){background:var(--gps-primary-hover, #033830)}.btn-add-file-config:disabled{opacity:.5;cursor:not-allowed}.file-config-form{background:var(--gps-bg-white, #ffffff);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-md, 6px);padding:var(--gps-spacing-xl, 16px);margin-bottom:var(--gps-spacing-lg, 12px)}.form-header-inline{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--gps-spacing-lg, 12px);padding-bottom:var(--gps-spacing-md, 8px);border-bottom:1px solid var(--gps-border-light, #e2e8f0)}.form-header-inline h4{margin:0;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-text-dark, #333333)}.btn-close-inline{background:none;border:none;color:#6b7280;cursor:pointer;padding:.25rem;font-size:1.125rem;display:flex;align-items:center;transition:color .2s ease}.btn-close-inline:hover{color:#dc2626}.form-grid-inline{display:grid;grid-template-columns:1fr 1fr;gap:var(--gps-spacing-lg, 12px)}.form-grid-inline .form-group{display:flex;flex-direction:column;gap:var(--gps-spacing-sm, 6px)}.form-grid-inline .form-group.full-width{grid-column:1 / -1}.form-grid-inline label{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-text-dark, #333333)}.form-grid-inline input[type=text],.form-grid-inline input[type=number],.form-grid-inline select,.form-grid-inline textarea{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);padding:6px 10px;border:1px solid var(--gps-border-input, #cbd5e0);border-radius:var(--gps-radius-sm, 4px);font-size:11px;height:32px;box-sizing:border-box;transition:border-color .2s ease}.form-grid-inline input:focus,.form-grid-inline select:focus,.form-grid-inline textarea:focus{outline:none;border-color:var(--gps-primary-teal, #025043);box-shadow:0 0 0 3px #0250431a}.form-grid-inline textarea{font-family:Courier New,monospace;resize:vertical;height:auto;min-height:60px}.form-grid-inline small{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px;color:var(--gps-text-muted, #666666);margin-top:-2px}.derived-pattern-display{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px}.derived-pattern-display svg{color:#3b82f6;flex-shrink:0}.derived-pattern-display code{font-size:.9rem;color:#1e40af;font-weight:500}.form-actions-inline{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.btn-cancel-inline,.btn-save-inline{display:flex;align-items:center;gap:var(--gps-spacing-sm, 6px);padding:var(--gps-spacing-sm, 6px) var(--gps-spacing-lg, 12px);border:none;border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-semibold, 600);cursor:pointer;transition:all .2s ease}.btn-cancel-inline{background:var(--gps-bg-white, #ffffff);color:var(--gps-text-dark, #333333);border:1px solid var(--gps-border-input, #cbd5e0)}.btn-cancel-inline:hover{background:var(--gps-bg-row-hover, #f7fafc);border-color:var(--gps-text-muted, #666666)}.btn-save-inline{background:var(--gps-primary-teal, #025043);color:#fff}.btn-save-inline:hover{background:var(--gps-primary-hover, #033830)}.empty-state-inline{text-align:center;padding:var(--gps-spacing-xl, 16px) var(--gps-spacing-lg, 12px);color:var(--gps-text-muted, #666666);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.empty-icon-inline{font-size:1.5rem;color:var(--gps-border-input, #cbd5e0);margin-bottom:var(--gps-spacing-md, 8px)}.empty-state-inline p{margin:var(--gps-spacing-sm, 6px) 0;color:var(--gps-text-dark, #333333);font-size:11px;font-weight:var(--gps-font-weight-medium, 500)}.empty-state-inline small{font-size:10px;color:var(--gps-text-muted, #666666)}.file-configs-list{display:flex;flex-direction:column;gap:var(--gps-spacing-md, 8px)}.file-config-item{background:var(--gps-bg-white, #ffffff);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-md, 6px);padding:var(--gps-spacing-lg, 12px);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--gps-spacing-lg, 12px);transition:all .2s ease;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.file-config-item:hover{border-color:var(--gps-primary-teal, #025043);box-shadow:0 2px 4px #0250431a}.file-config-item.editing{border-color:var(--gps-primary-teal, #025043);background:#02504308}.config-main-info{flex:1}.config-pattern{display:flex;align-items:center;gap:var(--gps-spacing-md, 8px);margin-bottom:var(--gps-spacing-sm, 6px)}.pattern-icon-inline{color:var(--gps-primary-teal, #025043);font-size:14px}.config-pattern strong{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-text-dark, #333333)}.priority-badge-inline{background:#0250431a;color:var(--gps-primary-teal, #025043);padding:2px 8px;border-radius:10px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px;font-weight:var(--gps-font-weight-medium, 500)}.config-description{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;color:var(--gps-text-muted, #666666);margin-bottom:var(--gps-spacing-sm, 6px)}.config-schema-preview{margin-top:var(--gps-spacing-md, 8px)}.config-schema-preview details{cursor:pointer}.config-schema-preview summary{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;color:var(--gps-primary-teal, #025043);font-weight:var(--gps-font-weight-medium, 500);padding:4px;-webkit-user-select:none;user-select:none}.config-schema-preview summary:hover{background:#0250430d;border-radius:var(--gps-radius-sm, 4px)}.config-schema-preview pre{background:var(--gps-bg-page, #f7fafc);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-sm, 4px);padding:var(--gps-spacing-md, 8px);margin-top:var(--gps-spacing-sm, 6px);font-family:Courier New,monospace;font-size:10px;overflow-x:auto;max-height:200px}.config-actions{display:flex;gap:var(--gps-spacing-sm, 6px)}.btn-edit-config,.btn-delete-config{background:var(--gps-bg-white, #ffffff);border:1px solid var(--gps-border-input, #cbd5e0);padding:var(--gps-spacing-sm, 6px);border-radius:var(--gps-radius-sm, 4px);cursor:pointer;color:var(--gps-text-muted, #666666);transition:all .2s ease;display:flex;align-items:center;font-size:14px}.btn-edit-config:hover:not(:disabled){background:#0250430d;color:var(--gps-primary-teal, #025043);border-color:var(--gps-primary-teal, #025043)}.btn-delete-config:hover:not(:disabled){background:#fef2f2;color:var(--gps-danger-red, #e53e3e);border-color:var(--gps-danger-red, #e53e3e)}.btn-edit-config:disabled,.btn-delete-config:disabled{opacity:.4;cursor:not-allowed}.governance-section{background:var(--gps-bg-page, #f7fafc);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-md, 6px);padding:var(--gps-spacing-lg, 12px);margin-top:var(--gps-spacing-md, 8px)}.governance-header{display:flex;align-items:center;gap:var(--gps-spacing-md, 8px);margin-bottom:var(--gps-spacing-lg, 12px);padding-bottom:var(--gps-spacing-md, 8px);border-bottom:1px solid var(--gps-border-light, #e2e8f0)}.governance-icon{color:var(--gps-primary-teal, #025043);font-size:14px}.governance-header h5{margin:0;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-text-dark, #333333)}.governance-controls{display:grid;grid-template-columns:1fr 1fr;gap:var(--gps-spacing-lg, 12px)}.governance-controls .form-group.full-width{grid-column:1 / -1}.checkbox-label{display:inline-flex;align-items:center;gap:var(--gps-spacing-sm, 6px);cursor:pointer;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-weight:var(--gps-font-weight-medium, 500);color:var(--gps-text-dark, #333333);-webkit-user-select:none;user-select:none;position:relative}.checkbox-label input[type=checkbox]{width:16px;height:16px;min-width:16px;min-height:16px;cursor:pointer;accent-color:var(--gps-primary-teal, #025043);margin:0;padding:0;flex-shrink:0;position:relative;z-index:1}.checkbox-label span{font-size:11px;cursor:pointer}.quality-rules-selector{background:var(--gps-bg-white, #ffffff);border:1px solid var(--gps-border-input, #cbd5e0);border-radius:var(--gps-radius-md, 6px);padding:var(--gps-spacing-md, 8px);max-height:200px;overflow-y:auto}.quality-rules-list{display:flex;flex-direction:column;gap:var(--gps-spacing-sm, 6px)}.quality-rule-item{display:flex;align-items:center;gap:var(--gps-spacing-md, 8px);padding:var(--gps-spacing-sm, 6px) var(--gps-spacing-md, 8px);background:var(--gps-bg-page, #f7fafc);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-sm, 4px);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.quality-rule-item:hover{background:#0250430d;border-color:var(--gps-primary-teal, #025043)}.quality-rule-item input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--gps-primary-teal, #025043)}.quality-rule-item .rule-name{flex:1;font-size:11px;color:var(--gps-text-dark, #333333);font-weight:var(--gps-font-weight-medium, 500)}.quality-rule-item .severity-badge{padding:2px 8px;border-radius:10px;font-size:9px;font-weight:var(--gps-font-weight-semibold, 600);text-transform:uppercase}.severity-badge.severity-critical{background:#e53e3e1a;color:var(--gps-danger-red, #e53e3e)}.severity-badge.severity-high{background:#fef3c7;color:#92400e}.severity-badge.severity-medium{background:#0250431a;color:var(--gps-primary-teal, #025043)}.severity-badge.severity-low{background:#38a1691a;color:var(--gps-success-green, #38a169)}.no-rules-message{color:var(--gps-text-muted, #666666);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px;font-style:italic;display:block;text-align:center;padding:var(--gps-spacing-sm, 6px)}.quality-rule-item-container{display:flex;flex-direction:row;align-items:stretch;gap:0;border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-sm, 4px);background:var(--gps-bg-page, #f7fafc);overflow:hidden;transition:all .2s ease}.quality-rule-item-container.checked{border-color:var(--gps-primary-teal, #025043);background:#02504305}.quality-rule-item-container .quality-rule-item{border:none;border-radius:0;background:transparent;flex:1;min-width:200px}.column-assignment-section{display:flex;flex-direction:column;justify-content:center;padding:var(--gps-spacing-sm, 6px) var(--gps-spacing-md, 8px);background:#02504308;border-left:1px solid rgba(2,80,67,.1);min-width:180px;max-width:220px}.column-multiselect{width:100%;min-height:40px;max-height:80px;padding:2px;font-size:9px;font-family:Inter,sans-serif;border:1px solid var(--gps-border-input, #cbd5e0);border-radius:var(--gps-radius-sm, 4px);background:var(--gps-bg-white, #ffffff)}.column-multiselect option{padding:2px 4px;font-size:9px;font-family:Inter,sans-serif}.column-multiselect option:checked{background:var(--gps-primary-teal, #025043);color:#fff}.multiselect-hint{display:block;margin-top:2px;font-size:8px;font-family:Inter,sans-serif;color:var(--gps-text-muted, #666666);font-style:italic}.no-columns-warning,.no-schema-warning{font-size:8px;font-family:Inter,sans-serif;color:#f59e0b;font-style:italic;display:block;margin:0;line-height:1.3}.severity-badge.severity-warning{background:#fef3c7;color:#92400e}.governance-badges{display:flex;flex-wrap:wrap;gap:var(--gps-spacing-sm, 6px);margin-top:var(--gps-spacing-md, 8px);margin-bottom:var(--gps-spacing-sm, 6px)}.governance-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px;font-weight:var(--gps-font-weight-semibold, 600);line-height:1.2}.governance-badge svg{font-size:12px}.pii-badge{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.classification-badge{border:1px solid transparent}.classification-public{background:#38a1691a;color:var(--gps-success-green, #38a169);border-color:#38a1694d}.classification-internal{background:#0250431a;color:var(--gps-primary-teal, #025043);border-color:#0250434d}.classification-confidential{background:#fed7aa;color:#9a3412;border-color:#fdba74}.classification-highly-confidential{background:#e53e3e1a;color:var(--gps-danger-red, #e53e3e);border-color:#e53e3e4d}.quality-badge{background:#0250431a;color:var(--gps-primary-teal, #025043);border:1px solid rgba(2,80,67,.3)}.password-badge{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{width:100%;padding-right:36px}.password-input-wrapper .password-toggle-btn{position:absolute;right:8px;background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:var(--gps-text-muted, #666666);transition:color .2s ease}.password-input-wrapper .password-toggle-btn:hover{color:var(--gps-primary-teal, #025043)}.password-configured-notice{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#dbeafe;border:1px solid #93c5fd;border-radius:4px;font-size:12px;color:#1e40af;margin-bottom:8px}.password-configured-notice svg{flex-shrink:0}.header-definition-section{background:var(--gps-bg-page, #f7fafc);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-md, 6px);padding:var(--gps-spacing-lg, 12px);margin-top:var(--gps-spacing-md, 8px)}.header-definition-header{display:flex;align-items:center;gap:var(--gps-spacing-md, 8px);margin-bottom:var(--gps-spacing-lg, 12px);padding-bottom:var(--gps-spacing-md, 8px);border-bottom:1px solid var(--gps-border-light, #e2e8f0)}.header-icon{color:var(--gps-primary-teal, #025043);font-size:14px}.header-definition-header h5{margin:0;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-text-dark, #333333)}.header-toggle-container{display:flex;align-items:center;justify-content:space-between;gap:var(--gps-spacing-md, 8px);padding:var(--gps-spacing-sm, 6px) 0}.header-toggle-label{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;font-weight:var(--gps-font-weight-medium, 500);color:var(--gps-text-dark, #333333)}.header-toggle-help{display:block;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px;color:var(--gps-text-muted, #666666);margin-top:4px}.header-toggle-container .toggle-switch{position:relative;width:44px;height:24px;background:#cbd5e0;border:none;border-radius:12px;cursor:pointer;padding:0;transition:background-color .2s ease;flex-shrink:0}.header-toggle-container .toggle-switch:hover:not(.disabled){background:#a0aec0}.header-toggle-container .toggle-switch.active{background:var(--gps-primary-teal, #025043)}.header-toggle-container .toggle-switch.active:hover:not(.disabled){background:#036b5a}.header-toggle-container .toggle-switch.disabled{opacity:.5;cursor:not-allowed}.header-toggle-container .toggle-slider{position:absolute!important;top:2px!important;left:2px!important;right:auto!important;bottom:auto!important;width:20px!important;height:20px!important;background:#fff!important;border-radius:50%!important;box-shadow:0 1px 3px #0003!important;transition:transform .2s ease!important;pointer-events:none;transform:translate(0)!important}.header-toggle-container .toggle-switch.active .toggle-slider{transform:translate(20px)!important}.header-schema-section{background:var(--gps-bg-white, #ffffff);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-sm, 4px);padding:var(--gps-spacing-lg, 12px)}.header-schema-upload{display:flex;align-items:center;gap:var(--gps-spacing-md, 8px);flex-wrap:wrap}.btn-upload-schema{display:flex;align-items:center;gap:var(--gps-spacing-sm, 6px);padding:var(--gps-spacing-sm, 6px) var(--gps-spacing-lg, 12px);background:var(--gps-bg-white, #ffffff);color:var(--gps-primary-teal, #025043);border:1px solid var(--gps-primary-teal, #025043);border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-semibold, 600);cursor:pointer;transition:all .2s ease}.btn-upload-schema:hover{background:#0250430d}.schema-file-name{display:flex;align-items:center;gap:var(--gps-spacing-sm, 6px);padding:var(--gps-spacing-sm, 6px) var(--gps-spacing-md, 8px);background:#dbeafe;color:#1e40af;border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-medium, 500)}.btn-clear-schema{background:none;border:none;color:#1e40af;cursor:pointer;padding:2px;display:flex;align-items:center;transition:color .2s ease}.btn-clear-schema:hover{color:#dc2626}.schema-error{display:flex;align-items:center;gap:var(--gps-spacing-sm, 6px);padding:var(--gps-spacing-sm, 6px) var(--gps-spacing-md, 8px);background:#fef2f2;border:1px solid #fecaca;border-radius:var(--gps-radius-sm, 4px);color:var(--gps-danger-red, #e53e3e);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;margin-top:var(--gps-spacing-sm, 6px)}.header-definition-preview{margin-top:var(--gps-spacing-md, 8px);background:var(--gps-bg-white, #ffffff);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-sm, 4px);overflow:hidden}.header-definition-preview details{cursor:pointer}.header-definition-preview summary{padding:var(--gps-spacing-md, 8px) var(--gps-spacing-lg, 12px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-primary-teal, #025043);background:var(--gps-bg-page, #f7fafc);-webkit-user-select:none;user-select:none}.header-definition-preview summary:hover{background:#0250430d}.header-fields-table{max-height:200px;overflow-y:auto}.header-fields-table table{width:100%;border-collapse:collapse;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px}.header-fields-table th,.header-fields-table td{padding:var(--gps-spacing-sm, 6px) var(--gps-spacing-md, 8px);text-align:left;border-bottom:1px solid var(--gps-border-light, #e2e8f0)}.header-fields-table th{background:var(--gps-bg-page, #f7fafc);font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-text-dark, #333333);text-transform:uppercase;font-size:9px;letter-spacing:.5px}.header-fields-table td{color:var(--gps-text-dark, #333333)}.header-fields-table td.missing-value{color:var(--gps-danger-red, #e53e3e);font-weight:var(--gps-font-weight-medium, 500)}.header-fields-table tbody tr:hover{background:#02504305}.header-badge{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.no-header-badge{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.schema-attachment-required{background:#fffbeb;border:1px solid #fcd34d;border-radius:var(--gps-radius-sm, 4px);padding:var(--gps-spacing-md, 8px) var(--gps-spacing-lg, 12px);margin-top:var(--gps-spacing-sm, 6px)}.schema-ref-notice{display:flex;align-items:center;gap:var(--gps-spacing-sm, 6px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;color:#92400e;font-weight:var(--gps-font-weight-medium, 500);margin-bottom:var(--gps-spacing-sm, 6px)}.schema-ref-notice .warning-icon{color:#d97706;flex-shrink:0}.schema-upload-controls{display:flex;align-items:center;gap:var(--gps-spacing-md, 8px)}.btn-attach-schema{display:inline-flex;align-items:center;gap:var(--gps-spacing-xs, 4px);padding:var(--gps-spacing-xs, 4px) var(--gps-spacing-md, 8px);background:var(--gps-primary-teal, #025043);color:#fff;border:none;border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px;font-weight:var(--gps-font-weight-semibold, 600);cursor:pointer;transition:all .2s ease}.btn-attach-schema:hover:not(:disabled){background:var(--gps-primary-hover, #033830)}.btn-attach-schema:disabled{opacity:.6;cursor:not-allowed}.schema-upload-error{display:flex;align-items:center;gap:var(--gps-spacing-xs, 4px);margin-top:var(--gps-spacing-sm, 6px);padding:var(--gps-spacing-xs, 4px) var(--gps-spacing-sm, 6px);background:#fef2f2;border:1px solid #fecaca;border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px;color:#dc2626}.schema-view-row{display:flex;flex-direction:column;gap:var(--gps-spacing-sm, 6px)}.schema-view-row>details{flex:1}.schema-view-row .schema-update-controls{display:flex;align-items:center;gap:var(--gps-spacing-md, 8px)}.btn-upload-schema{display:inline-flex;align-items:center;gap:var(--gps-spacing-xs, 4px);padding:var(--gps-spacing-xs, 4px) var(--gps-spacing-md, 8px);background:transparent;color:var(--gps-primary-teal, #025043);border:1px solid var(--gps-primary-teal, #025043);border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px;font-weight:var(--gps-font-weight-semibold, 600);cursor:pointer;transition:all .2s ease}.btn-upload-schema:hover:not(:disabled){background:var(--gps-primary-teal, #025043);color:#fff}.btn-upload-schema:disabled{opacity:.6;cursor:not-allowed}.vendor-agreements-container{padding:0 20px 20px;max-width:1400px;margin:0 auto}.vendor-agreements-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;margin-top:0}.vendor-agreements-container h1{margin-bottom:0;font-size:1.5rem;color:#025043}.error-message{background-color:#feeceb;color:#d93025;padding:12px 16px;border-radius:5px;margin-bottom:20px;font-size:14px}.success-message{background-color:#e6f4ea;color:#137333;padding:12px 16px;border-radius:5px;margin-bottom:20px;font-size:14px}.create-agreement-btn{background-color:#1a73e8;color:#fff;border:none;border-radius:5px;padding:10px 16px;font-size:14px;cursor:pointer;transition:background-color .2s}.create-agreement-btn:hover{background-color:#0d62cb}.agreements-table-container{overflow-x:auto;margin-bottom:20px}.agreements-table{width:100%;border-collapse:collapse;border:1px solid #dadce0}.agreements-table th,.agreements-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #dadce0}.agreements-table th{background-color:#f8f9fa;font-weight:500;color:#5f6368}.agreements-table tbody tr:hover{background-color:#f8f9fa}.agreement-actions{display:flex;gap:8px;flex-wrap:wrap}.view-agreement-btn,.edit-agreement-btn,.delete-agreement-btn{border:none;border-radius:4px;padding:6px 12px;font-size:12px;cursor:pointer;transition:background-color .2s}.view-agreement-btn{background-color:#e8f0fe;color:#1a73e8}.view-agreement-btn:hover{background-color:#d2e3fc}.edit-agreement-btn{background-color:#fef7e0;color:#ea8600}.edit-agreement-btn:hover{background-color:#fce8b2}.delete-agreement-btn{background-color:#feeceb;color:#d93025}.delete-agreement-btn:hover{background-color:#fed7d7}.action-icon-btn:hover{background-color:#0000000a;transform:translateY(-2px)}.action-icon-btn.project-btn{color:#137333}.action-icon-btn.project-btn:hover{background-color:#e6f4ea}.no-agreements-message{text-align:center;padding:30px;color:#5f6368}.status-badge{display:inline-block;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-active{background-color:#e6f4ea;color:#137333}.status-inactive{background-color:#f1f3f4;color:#5f6368}.approval-badge{display:inline-block;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:500;letter-spacing:.5px}.approval-locked{background-color:#fce8b2;color:#ea8600}.approval-approved{background-color:#e6f4ea;color:#137333}.approval-partial{background-color:#e8f0fe;color:#1a73e8}.approval-pending{background-color:#f1f3f4;color:#5f6368}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.agreement-modal,.detail-modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;width:100%;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.agreement-modal{max-width:700px}.detail-modal{max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #dadce0;position:sticky;top:0;background-color:#fff;z-index:10}.modal-header h2{margin:0;font-size:20px;color:#202124;font-weight:500}.close-modal-btn{background:none;border:none;font-size:24px;color:#5f6368;cursor:pointer}.modal-error-message{background-color:#feeceb;color:#d93025;padding:12px 24px;margin:0;font-size:14px}.agreement-form{padding:0}.form-section{margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.form-section:first-child{margin-top:0}.form-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.section-title{font-size:1rem;font-weight:600;color:#1f2937;margin-bottom:.625rem;padding-bottom:0;border-bottom:none}.form-group{margin-bottom:.75rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;margin-bottom:.375rem;font-weight:500;color:#374151;font-size:.875rem}.form-group input[type=text],.form-group input[type=email],.form-group textarea,.form-group select{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;font-family:inherit;transition:border-color .2s}.form-group textarea{resize:vertical;min-height:60px}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input:disabled,.form-group select:disabled{background-color:#f3f4f6;color:#5f6368;cursor:not-allowed}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:0}.form-row .form-group{margin-bottom:.75rem}.form-row-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.75rem}.form-row-grid .form-group{margin-bottom:0}.required-field{color:#dc2626}.schema-input-toggle{display:flex;gap:10px;margin-bottom:15px}.schema-input-toggle button{padding:8px 16px;border:1px solid #dadce0;border-radius:4px;background-color:#fff;cursor:pointer;transition:all .2s}.schema-input-toggle button.active{background-color:#1a73e8;color:#fff;border-color:#1a73e8}.file-input-container{margin-top:10px}.file-input-container input[type=file]{width:100%;padding:10px;border:2px dashed #dadce0;border-radius:4px;cursor:pointer}.file-selected{margin-top:10px;color:#137333;font-weight:500}.input-help{margin-top:5px;font-size:12px;color:#5f6368}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.cancel-btn,.save-btn{padding:10px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:background-color .2s}.cancel-btn{background-color:transparent;color:#5f6368;border:1px solid #dadce0}.cancel-btn:hover{background-color:#f8f9fa}.save-btn{background-color:#1a73e8;color:#fff;border:none}.save-btn:hover{background-color:#0d62cb}.detail-modal-wrapper{display:flex;flex-direction:column;width:100%;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.detail-tabs{display:flex;border-bottom:1px solid var(--gps-border-light, #e2e8f0);padding:0;background-color:var(--gps-bg-white, #ffffff);margin-bottom:0}.detail-tabs button{padding:8px 16px;border:none;background:none;cursor:pointer;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-medium, 500);color:var(--gps-text-muted, #666666);border-bottom:2px solid transparent;transition:all .2s}.detail-tabs button.active{color:var(--gps-primary-teal, #025043);border-bottom-color:var(--gps-primary-teal, #025043);font-weight:var(--gps-font-weight-semibold, 600)}.detail-tabs button:hover{background-color:var(--gps-bg-row-hover, #f7fafc)}.detail-content{padding:var(--gps-spacing-xl, 16px);text-align:left!important}.details-tab{text-align:left!important}.details-tab .locked-message{background-color:#fef7e0;color:#ea8600;padding:8px 12px;border-radius:var(--gps-radius-sm, 4px);margin-bottom:var(--gps-spacing-lg, 12px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)!important;font-size:11px!important;display:flex;align-items:center;gap:6px;text-align:left!important}.details-tab .detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gps-spacing-lg, 12px);margin-bottom:var(--gps-spacing-xl, 16px);text-align:left!important}.details-tab .detail-item{display:flex;flex-direction:column;gap:3px;text-align:left!important;align-items:flex-start!important}.details-tab .detail-item.full-width{grid-column:1 / -1}.details-tab .detail-item label{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)!important;font-weight:var(--gps-font-weight-semibold, 600)!important;color:var(--gps-text-muted, #666666)!important;font-size:10px!important;text-transform:none!important;letter-spacing:normal!important;text-align:left!important}.details-tab .detail-item span{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)!important;color:var(--gps-text-dark, #333333)!important;font-size:11px!important;font-weight:var(--gps-font-weight-medium, 500)!important;text-align:left!important}.details-tab .detail-section-header{margin-top:var(--gps-spacing-lg, 12px)!important;padding-top:var(--gps-spacing-lg, 12px)!important;border-top:1px solid var(--gps-border-light, #e2e8f0)!important}.details-tab .detail-section-header label{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)!important;font-size:12px!important;font-weight:var(--gps-font-weight-bold, 700)!important;color:var(--gps-primary-teal, #025043)!important;text-transform:none!important;letter-spacing:normal!important}.approvals-tab h3,.changes-tab h3{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:13px;font-weight:var(--gps-font-weight-bold, 700);color:var(--gps-primary-teal, #025043);margin:0 0 var(--gps-spacing-lg, 12px) 0}.schema-section,.approval-section{margin-top:var(--gps-spacing-xl, 16px)}.schema-section h3,.approval-section h3{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;font-weight:var(--gps-font-weight-bold, 700);color:var(--gps-primary-teal, #025043);margin-bottom:var(--gps-spacing-lg, 12px)}.schema-table,.history-table{width:100%;border-collapse:collapse;border:1px solid var(--gps-border-light, #e2e8f0);margin-top:var(--gps-spacing-md, 8px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.schema-table th,.schema-table td,.history-table th,.history-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--gps-border-light, #e2e8f0);font-size:11px}.schema-table th,.history-table th{background-color:var(--gps-bg-page, #f7fafc);font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-text-muted, #666666);font-size:10px;text-transform:uppercase;letter-spacing:.3px}.schema-table tbody tr:hover,.history-table tbody tr:hover{background-color:var(--gps-bg-row-hover, #f7fafc)}.no-data{text-align:center;padding:var(--gps-spacing-xl, 16px);color:var(--gps-text-muted, #666666);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px}.approval-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gps-spacing-lg, 12px);margin-bottom:var(--gps-spacing-lg, 12px)}.approval-status-item{display:flex;flex-direction:column;gap:3px}.approval-status-item label{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-text-muted, #666666);font-size:10px;text-transform:uppercase;letter-spacing:.3px}.approval-status-item span{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-medium, 500)}.approval-status-item span.approved{color:var(--gps-success-green, #38a169)}.approval-status-item span.pending{color:var(--gps-text-muted, #666666)}.approval-actions{margin-top:var(--gps-spacing-xl, 16px);padding:var(--gps-spacing-xl, 16px);background-color:var(--gps-bg-page, #f7fafc);border-radius:var(--gps-radius-md, 6px);border:1px solid var(--gps-border-light, #e2e8f0);display:flex;flex-direction:column;gap:var(--gps-spacing-lg, 12px)}.approve-btn{padding:8px 16px;border:none;border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;font-weight:var(--gps-font-weight-semibold, 600);cursor:pointer;transition:all .2s;box-shadow:0 1px 3px #0000001a}.document-list{display:flex;flex-direction:column;gap:4px}.document-item{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:10px}.document-link{color:var(--gps-primary-teal, #025043);text-decoration:underline;cursor:pointer}.document-link:hover{color:var(--gps-primary-hover, #033830)}.modal-success-message{margin-top:var(--gps-spacing-lg, 12px);padding:8px 12px;background-color:#38a1691a;color:var(--gps-success-green, #38a169);border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px}.modal-error-message{margin-top:var(--gps-spacing-lg, 12px);padding:8px 12px;background-color:#e53e3e1a;color:var(--gps-danger-red, #e53e3e);border-radius:var(--gps-radius-sm, 4px);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px}.file-schemas-tab{padding:var(--gps-spacing-lg, 12px)}.file-schemas-empty{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);color:var(--gps-text-muted, #666666);font-style:italic;font-size:11px}.file-schemas-list{display:flex;flex-direction:column;gap:var(--gps-spacing-lg, 12px)}.file-schema-card{background:var(--gps-bg-white, #ffffff);border:1px solid var(--gps-border-light, #e2e8f0);border-radius:var(--gps-radius-md, 6px);padding:var(--gps-spacing-lg, 12px)}.file-schema-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--gps-spacing-md, 8px)}.file-schema-title{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:12px;font-weight:var(--gps-font-weight-semibold, 600);color:var(--gps-text-dark, #333333)}.file-schema-description{font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:11px;color:var(--gps-text-muted, #666666);margin-bottom:var(--gps-spacing-md, 8px)}.file-schema-badges{display:flex;gap:var(--gps-spacing-sm, 6px);flex-wrap:wrap}.file-schema-toggle{margin-top:var(--gps-spacing-md, 8px)}.approve-btn:hover{box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.vendor-approve{background-color:#137333;color:#fff}.vendor-approve:hover{background-color:#0d5a28}.owner-approve{background-color:#1a73e8;color:#fff}.owner-approve:hover{background-color:#1557b0}.reject-section{margin-top:20px;padding-top:20px;border-top:1px solid #dadce0}.reject-section textarea{width:100%;padding:10px 12px;border:1px solid #dadce0;border-radius:4px;font-size:14px;font-family:inherit;resize:vertical;margin-bottom:10px}.reject-section textarea:focus{outline:none;border-color:#d93025;box-shadow:0 0 0 2px #d9302533}.reject-btn{padding:10px 20px;border:none;border-radius:4px;background-color:#feeceb;color:#d93025;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.reject-btn:hover{background-color:#fed7d7}.action-badge,.change-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:4px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;min-width:60px;text-align:center}.action-approved,.change-created,.change-CREATED{background-color:#e6ffed;color:var(--gps-success-green, #38a169)}.action-rejected{background-color:#fff5f5;color:var(--gps-danger-red, #e53e3e)}.change-updated,.change-UPDATED{background-color:#ebf8ff;color:#3182ce}.change-deleted,.change-DELETED{background-color:#f7fafc;color:var(--gps-text-muted, #666666)}.change-locked,.change-LOCKED{background-color:#f7fafc;color:var(--gps-text-dark, #333333)}body.high-contrast .vendor-agreements-container h1{color:#fff}body.high-contrast .agreements-table,body.high-contrast .agreements-table th,body.high-contrast .agreements-table td{border-color:#fff}body.high-contrast .agreements-table th{background-color:#000;color:#fff}body.high-contrast .agreements-table tbody tr:hover{background-color:#333}body.high-contrast .status-badge,body.high-contrast .approval-badge{background-color:#fff;color:#000;border:2px solid #fff}body.high-contrast .view-agreement-btn,body.high-contrast .edit-agreement-btn{background-color:#fff;color:#000}body.high-contrast .delete-agreement-btn{background-color:#ff6b6b;color:#000}body.high-contrast .agreement-modal,body.high-contrast .detail-modal{background-color:#000;border:2px solid #fff}body.high-contrast .modal-header{border-color:#fff}body.high-contrast .modal-header h2,body.high-contrast .form-group label{color:#fff}body.high-contrast .form-group input,body.high-contrast .form-group textarea,body.high-contrast .form-group select{background-color:#000;color:#fff;border-color:#fff}body.high-contrast .save-btn,body.high-contrast .approve-btn{background-color:#fff;color:#000}.agreement-files-modal-content{padding:16px}.no-files-message{color:#6b7280;font-style:italic;font-size:10px;font-family:Inter,sans-serif;text-align:center;padding:24px}.agreement-files-list{display:flex;flex-direction:column;gap:8px}.agreement-file-card{padding:12px 16px;border:1px solid #e2e8f0;border-radius:6px;background-color:#f8fafc;transition:border-color .2s ease}.agreement-file-card:hover{border-color:#025043}.file-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.file-pattern{font-size:11px;font-family:Inter,sans-serif;font-weight:600;color:#1f2937}.file-badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.file-badge{padding:3px 8px;border-radius:4px;font-size:9px;font-family:Inter,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.file-badge.badge-pii{background-color:#fef3c7;color:#92400e}.file-badge.badge-classification{background-color:#e0f2fe;color:#0369a1}.file-badge.badge-classification.badge-highly-confidential{background-color:#fecaca;color:#991b1b}.file-badge.badge-classification.badge-confidential{background-color:#fed7aa;color:#9a3412}.file-badge.badge-classification.badge-internal{background-color:#dbeafe;color:#1e40af}.file-badge.badge-classification.badge-public{background-color:#d1fae5;color:#065f46}.file-badge.badge-filetype{background-color:#e0e7ff;color:#3730a3}.file-description{margin:8px 0 0;color:#6b7280;font-size:10px;font-family:Inter,sans-serif;line-height:1.4}.file-quality-rules{margin-top:8px}.file-quality-rules span{font-size:9px;font-family:Inter,sans-serif;font-weight:500;color:#6b7280;background-color:#02504314;padding:3px 8px;border-radius:4px}@media (max-width: 768px){.vendor-agreements-header{flex-direction:column;align-items:flex-start;gap:15px}.agreements-table-container{overflow-x:scroll}.agreement-modal,.detail-modal{max-width:95%;margin:10px}.agreement-actions{flex-direction:column}.form-row,.form-row-grid,.detail-grid,.approval-status-grid{grid-template-columns:1fr}.detail-tabs{overflow-x:auto}}.toast-container{position:fixed;bottom:var(--space-5);right:var(--space-5);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);max-width:350px}.toast{display:flex;align-items:flex-start;background-color:var(--bg-card);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:var(--space-3);animation:toast-slide-in .3s ease-out forwards;opacity:0;transform:translate(100%);position:relative}@keyframes toast-slide-in{to{opacity:1;transform:translate(0)}}.toast-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);margin-right:var(--space-3);font-weight:var(--font-bold);flex-shrink:0}.toast-content{flex-grow:1;padding-right:var(--space-5)}.toast-title{font-weight:var(--font-semibold);margin-bottom:var(--space-1);color:var(--text-primary)}.toast-message{font-size:var(--text-sm);color:var(--text-secondary)}.toast-close{background:none;border:none;color:var(--text-tertiary);font-size:var(--text-lg);cursor:pointer;padding:0;line-height:1;position:absolute;top:var(--space-2);right:var(--space-2);opacity:.7;transition:var(--transition-base)}.toast-close:hover{opacity:1}.toast-success .toast-icon{background-color:var(--color-success-light);color:var(--color-success)}.toast-success{border-left:4px solid var(--color-success)}.toast-error .toast-icon{background-color:var(--color-error-light);color:var(--color-error)}.toast-error{border-left:4px solid var(--color-error)}.toast-warning .toast-icon{background-color:var(--color-warning-light);color:var(--color-warning)}.toast-warning{border-left:4px solid var(--color-warning)}.toast-info .toast-icon{background-color:var(--color-info-light);color:var(--color-info)}.toast-info{border-left:4px solid var(--color-info)}@media (max-width: 480px){.toast-container{bottom:0;right:0;left:0;padding:var(--space-2);max-width:100%}.toast{width:100%}}.vendor-file-upload-container{max-width:1200px;margin:0 auto;padding:0 2rem 2rem}.page-header{margin-bottom:12px;margin-top:0}.page-header h1{margin:0 0 .25rem;font-size:1.5rem;color:#14b8a6}.page-header .subtitle{margin:0;color:#6b7280;font-size:.875rem}.success-notification{background:#f0fdf4;border:2px solid #10b981;border-radius:8px;padding:1.5rem;margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center}.notification-content{display:flex;align-items:center;gap:1rem}.notification-icon{font-size:2rem;color:#10b981;flex-shrink:0}.notification-text strong{display:block;color:#065f46;font-size:1.1rem;margin-bottom:.25rem}.notification-text p{margin:0;color:#059669}.notification-link{background:#10b981;color:#fff;padding:.75rem 1.5rem;border-radius:6px;text-decoration:none;font-weight:500;transition:background .2s;white-space:nowrap}.notification-link:hover{background:#059669}.selection-panel{background:#f8f9fa;border:1px solid #ddd;border-radius:8px;padding:1.5rem;margin-bottom:2rem}.selection-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1rem}.label-row{display:flex;justify-content:space-between;align-items:center}.form-group label{font-weight:600;color:#374151;font-size:.95rem}.required{color:#e74c3c}.form-select{width:100%;padding:.75rem;border-radius:6px;border:1px solid #ccc;font-size:1rem;background:#fff;cursor:pointer;transition:border-color .2s}.form-select:hover{border-color:#999}.form-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-select:disabled{background:#f3f4f6;cursor:not-allowed;color:#9ca3af}.btn-link{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:.9rem;text-decoration:underline;padding:0}.btn-link:hover{color:#2563eb}.connection-details{background:#fff;padding:1rem;border-radius:6px;border:1px solid #e0e0e0;margin-top:1rem}.upload-path{font-size:.95rem;color:#666;margin-bottom:.75rem}.btn-sm{padding:.5rem 1rem;font-size:.9rem}.folder-browser{margin-top:1rem;max-height:250px;overflow-y:auto;border:1px solid #ddd;border-radius:6px;padding:.75rem;background:#fafafa}.folder-navigation{margin-bottom:.75rem;display:flex;align-items:center;gap:.75rem}.current-path{font-size:.9rem;color:#666}.empty-folder{padding:1.5rem;text-align:center;color:#999}.folder-list{display:flex;flex-direction:column}.folder-item{padding:.75rem;cursor:pointer;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;gap:.75rem;transition:background .2s}.folder-item:last-child{border-bottom:none}.folder-item:hover{background:#f0f0f0}.folder-icon{font-size:1.2rem;flex-shrink:0}.folder-name{color:#374151;font-size:.95rem}.placeholder-dropzone{padding:4rem;border:2px dashed #ccc;border-radius:8px;text-align:center;color:#999;background:#f9f9f9}.placeholder-dropzone svg{margin-bottom:1rem;opacity:.5}.placeholder-dropzone p{font-size:1.1rem;margin:0}.upload-actions{margin-top:1.5rem;text-align:center}.access-denied{padding:3rem;text-align:center;background:#fef2f2;border:2px solid #ef4444;border-radius:8px;color:#991b1b}.access-denied p{margin:0;font-size:1.1rem}.btn{padding:.75rem 1.5rem;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-primary:hover{background:#2563eb}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover{background:#4b5563}@media (max-width: 768px){.selection-row{grid-template-columns:1fr}.vendor-file-upload-container{padding:1rem}.success-notification{flex-direction:column;gap:1rem}}.vendor-file-catalog-container{max-width:1400px;margin:0 auto;padding:20px}.catalog-header{margin-bottom:16px}.header-content h1{margin:0 0 4px;font-size:14px;font-weight:600;color:#025043}.header-content .subtitle{margin:0;color:#6b7280;font-size:10px}.filters-container{background:#f8f9fa;border:1px solid #e2e8f0;border-radius:6px;padding:12px 16px;margin-bottom:12px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.search-box{flex:1;min-width:200px}.search-input{width:100%;padding:6px 12px;border:1px solid #e2e8f0;border-radius:4px;font-size:10px;transition:border-color .2s}.search-input:focus{outline:none;border-color:#025043;box-shadow:0 0 0 2px #0250431a}.filter-group{display:flex;align-items:center;gap:6px}.filter-group label{font-weight:600;font-size:10px;color:#374151;white-space:nowrap}.filter-select{padding:6px 10px;border:1px solid #e2e8f0;border-radius:4px;font-size:10px;background:#fff;cursor:pointer;min-width:100px}.filter-select:hover{border-color:#cbd5e1}.filter-select:focus{outline:none;border-color:#025043;box-shadow:0 0 0 2px #0250431a}.results-summary{margin-bottom:10px;color:#64748b;font-size:10px}.results-summary p{margin:0}.empty-state{padding:40px 20px;text-align:center;background:#f9fafb;border:2px dashed #d1d5db;border-radius:6px;color:#6b7280}.empty-state h3{margin:0 0 4px;font-size:12px;font-weight:600;color:#374151}.empty-state p{margin:0;font-size:10px}.file-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;box-shadow:0 1px 2px #0000000d}.file-table{width:100%;border-collapse:collapse}.file-table thead{background:#f8fafc;border-bottom:2px solid #e2e8f0}.file-table th{padding:10px 12px;text-align:left;font-weight:600;color:#334155;font-size:10px;text-transform:capitalize}.file-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background .2s}.file-table tbody tr:hover{background:#f9fafb}.file-table tbody tr:last-child{border-bottom:none}.file-table td{padding:10px 12px;color:#374151;font-size:10px}.filename-cell{min-width:200px}.filename{font-weight:500;font-size:10px;color:#1f2937;margin-bottom:2px;display:flex;align-items:center;gap:6px}.file-count-badge{display:inline-block;padding:2px 6px;margin-left:4px;background-color:#025043;color:#fff;font-size:9px;font-weight:600;border-radius:4px}.child-row{background-color:#f9fafb}.child-cell{padding-left:24px}.child-filename{display:flex;align-items:center;gap:4px}.child-indicator{color:#9ca3af;font-size:12px;font-weight:400}.file-id{font-size:9px;color:#9ca3af;font-family:monospace}.file-type-badge{display:inline-block;padding:2px 8px;background:#e0e7ff;color:#3730a3;border-radius:4px;font-size:9px;font-weight:500}.action-btn{padding:4px 10px;border:none;border-radius:4px;font-size:10px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .2s}.view-btn{background:#025043;color:#fff}.view-btn:hover{background:#033830;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.view-btn:active{transform:translateY(0)}.error-message{background:#fef2f2;border:1px solid #fee2e2;color:#991b1b;padding:12px;border-radius:6px;margin-bottom:12px;font-size:10px}@media (max-width: 1024px){.file-table-container{overflow-x:auto}.file-table{min-width:800px}}@media (max-width: 768px){.vendor-file-catalog-container{padding:1rem}.filters-container{flex-direction:column;align-items:stretch}.search-box{min-width:unset}.filter-group{justify-content:space-between}}.hooks-demo{font-family:var(--font-primary);color:var(--text-primary);line-height:1.6}.hooks-demo.dark{background-color:var(--color-gray-800);color:var(--color-gray-100)}.hooks-demo h1{margin-bottom:var(--space-8);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-light)}.hooks-demo h2{margin-top:var(--space-5);margin-bottom:var(--space-4);font-size:1.5rem}.hooks-demo button{padding:var(--space-2) var(--space-4);background-color:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm)}.hooks-demo button:hover{background-color:var(--color-primary-dark)}.hooks-demo button:disabled{background-color:var(--color-gray-300);cursor:not-allowed}.hooks-demo button.active{background-color:var(--color-primary-dark);font-weight:var(--font-bold)}.hooks-demo input,.hooks-demo textarea,.hooks-demo select{padding:var(--space-2);border:1px solid var(--border-light);border-radius:var(--radius-sm);width:100%;margin-top:var(--space-1)}.hooks-demo label{display:block;margin-bottom:var(--space-3);font-weight:var(--font-medium)}.hooks-demo .error{color:var(--color-error);font-size:var(--text-xs);margin-top:var(--space-1)}.hooks-demo table{width:100%;border-collapse:collapse;margin:var(--space-5) 0}.hooks-demo table th,.hooks-demo table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border-light)}.hooks-demo table th{background-color:var(--color-gray-100);font-weight:var(--font-semibold)}.hooks-demo table tr:nth-child(2n){background-color:var(--bg-surface)}.hooks-demo.dark table th{background-color:var(--text-primary)}.hooks-demo.dark table tr:nth-child(2n){background-color:var(--color-gray-700)}.hooks-demo .demo-section{border:1px solid var(--border-light);padding:var(--space-5);border-radius:var(--radius-md);margin-bottom:var(--space-5);background-color:var(--bg-card);box-shadow:var(--shadow-sm)}.hooks-demo.dark .demo-section{background-color:var(--text-primary);border-color:var(--color-gray-600)}.groups-container{padding:20px}.groups-actions{display:flex;justify-content:flex-end;margin-bottom:20px}.groups-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.group-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;padding:20px;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease;height:100%;position:relative;overflow:hidden}.group-card:hover{transform:translateY(-4px);box-shadow:0 6px 12px #0000001f}.group-card-header{display:flex;justify-content:space-between;margin-bottom:16px;align-items:flex-start}.group-card-title{margin:0;font-size:1.2rem;font-weight:600;color:var(--heading-color, #333)}.group-card-actions{display:flex;gap:8px}.group-card-description{margin:0 0 16px;color:var(--text-secondary-color, #666);font-size:.9rem;flex-grow:1}.group-card-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:.85rem;color:var(--text-secondary-color, #666)}.group-card-stats{display:flex;gap:16px}.group-card-stat{display:flex;align-items:center;gap:4px}.group-card-stat svg{color:var(--primary-color, #3498db)}.group-card-link{color:var(--primary-color, #3498db);text-decoration:none;display:flex;align-items:center;gap:4px;font-weight:500;font-size:.85rem}.group-card-link:hover{text-decoration:underline}.empty-state{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;padding:40px 20px;text-align:center;grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center}.group-form{display:grid;gap:16px}.business-processes-container{padding:20px}.business-processes-actions{display:flex;justify-content:flex-end;margin-bottom:20px}.business-processes-list{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;overflow:hidden}.business-processes-table-container{overflow-x:auto}.business-processes-table{width:100%;border-collapse:collapse}.business-processes-table th{background-color:#f8f9fa;text-align:left;padding:12px 16px;font-weight:600;color:var(--heading-color, #333);border-bottom:1px solid #e0e0e0;font-size:.9rem}.business-processes-table td{padding:12px 16px;border-bottom:1px solid #e0e0e0;color:var(--text-color, #444)}.business-processes-table tr:last-child td{border-bottom:none}.business-processes-table tr:hover{background-color:#f8f9fa}.process-name-link{color:var(--heading-color, #333);font-weight:500;text-decoration:none;display:block}.process-name-link:hover{color:var(--primary-color, #3498db)}.process-description{font-size:.85rem;color:var(--text-secondary-color, #666);margin-top:4px}.status-error{background-color:#feeaea;color:#e74c3c}.owner-badge{display:flex;align-items:center;gap:6px}.owner-badge img{width:24px;height:24px;border-radius:50%;object-fit:cover}.process-form{display:grid;gap:16px}.page-layout-container{padding:0 20px 20px;max-width:1200px;margin:0 auto}.page-layout-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-layout-title-section{display:flex;flex-direction:column}.page-layout-title{margin:0;font-size:14px;font-weight:600;color:#025043}.page-layout-subtitle{margin:2px 0 0;font-size:10px;color:#037c6e}.page-layout-header-actions{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}.page-layout-filters{margin-bottom:20px}.page-layout-filters-wrapper{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.page-layout-table-container{overflow-x:auto;background:var(--bg-primary, #ffffff);border-radius:var(--border-radius, 4px);border:1px solid #dadce0}table.page-layout-table{width:100%;border-collapse:collapse}table.page-layout-table th,table.page-layout-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #dadce0}table.page-layout-table th{background:#f8f9fa;font-weight:600;color:var(--text-primary, #333);position:sticky;top:0;z-index:10}table.page-layout-table tbody tr:hover{background:#f8f9fa}table.page-layout-table tbody tr:last-child td{border-bottom:none}@media (max-width: 768px){.page-layout-container{padding:0 15px 15px}.page-layout-header{flex-direction:column;align-items:flex-start;gap:1rem}.page-layout-header-actions{width:100%;justify-content:flex-start}.page-layout-title{font-size:12px}}.transformation-profiling-modal{width:90%;max-width:1200px;max-height:90vh;display:flex;flex-direction:column}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.modal-container{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e2e8f0}.modal-header h2{margin:0;font-size:14px;font-weight:600;color:#025043}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#94a3b8;padding:.5rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background-color:#f1f5f9;color:#475569}.modal-body{padding:16px 20px;overflow-y:auto;flex:1}.parent-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:2px solid #e2e8f0}.parent-tab{padding:8px 16px;background:none;border:none;border-bottom:2px solid transparent;font-size:10px;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s;margin-bottom:-2px}.parent-tab:hover{color:#025043;background-color:#f1f5f9}.parent-tab.active{color:#025043;border-bottom-color:#025043;font-weight:600}.child-tabs{display:flex;gap:4px;margin-bottom:12px;background-color:#f8fafc;padding:4px;border-radius:4px}.child-tab{padding:6px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:4px;font-size:10px;font-weight:500;color:#475569;cursor:pointer;transition:all .2s}.child-tab:hover{background-color:#f1f5f9;border-color:#cbd5e1}.child-tab.active{background-color:#025043;color:#fff;border-color:#025043}.tab-content{min-height:300px;max-height:400px;overflow-y:auto}.profile-attributes{background:#f8fafc;padding:16px;border-radius:6px}.attr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.attr-item label{display:block;font-size:9px;font-weight:600;text-transform:uppercase;color:#64748b;margin-bottom:4px;letter-spacing:.03em}.attr-item div{font-size:10px;color:#0f172a;font-weight:500}.profile-columns{overflow-x:auto}.profile-columns .data-table{width:100%;border-collapse:collapse}.profile-columns .data-table th{background-color:#f8fafc;padding:10px 12px;text-align:left;font-size:10px;font-weight:600;color:#334155;border-bottom:2px solid #e2e8f0;text-transform:capitalize}.profile-columns .data-table td{padding:10px 12px;border-bottom:1px solid #e2e8f0;font-size:10px;color:#374151}.profile-columns .data-table tr:hover{background-color:#f8fafc}.alert{padding:1rem;border-radius:6px;margin-bottom:1rem}.alert-danger{background-color:#fee2e2;color:#991b1b;border:1px solid #fecaca}.dual-list-selector{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;margin:20px 0;align-items:stretch}.list-panel{display:flex;flex-direction:column;border:1px solid #e0e0e0;border-radius:4px;background:#fff;min-height:300px;max-height:400px}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#fafafa;border-bottom:1px solid #e0e0e0}.panel-header h4{margin:0;font-size:14px;font-weight:600;color:#333}.item-count{font-size:12px;color:#666;background-color:#e0e0e0;padding:2px 8px;border-radius:10px}.panel-body{flex:1;overflow-y:auto;padding:8px}.list-item{display:flex;align-items:center;gap:8px;padding:10px 12px;margin-bottom:4px;border-radius:4px;cursor:pointer;transition:all .2s;background-color:#f5f5f5;border:1px solid transparent}.list-item:hover{background-color:#e6f7ff}.list-item.selected{background-color:#0079c1;color:#fff;border-color:#0079c1}.item-order{font-size:12px;font-weight:600;color:#999;min-width:20px}.list-item.selected .item-order{color:#fffc}.empty-panel{display:flex;align-items:center;justify-content:center;height:100%;color:#999;font-style:italic;font-size:14px}.control-buttons{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:8px}.control-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #e0e0e0;background-color:#fff;border-radius:4px;cursor:pointer;font-size:18px;color:#666;transition:all .2s}.control-btn:hover:not(:disabled){background-color:#0079c1;color:#fff;border-color:#0079c1}.control-btn:disabled{opacity:.4;cursor:not-allowed}.panel-body::-webkit-scrollbar{width:6px}.panel-body::-webkit-scrollbar-track{background:#f5f5f5;border-radius:3px}.panel-body::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:3px}.panel-body::-webkit-scrollbar-thumb:hover{background:#b0b0b0}.n-step-workflows-page{padding:0}.workflow-table-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin-bottom:1.5rem;overflow:hidden}.section-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e2e8f0}.section-header h2{margin:0;font-size:1.25rem;color:#1e293b}.workflow-table-container{overflow-x:auto}.workflow-table{width:100%;border-collapse:collapse}.workflow-table th{background:#f8fafc;padding:.75rem 1rem;text-align:left;font-weight:600;color:#475569;font-size:.6875rem;border-bottom:2px solid #e2e8f0}.workflow-table td{padding:.75rem 1rem;border-bottom:1px solid #f1f5f9;color:#334155;font-size:.8125rem;font-weight:400}.workflow-table tbody tr:hover{background:#f8fafc}.workflow-table .selected-row{background:#eff6ff}.workflow-table .selected-row:hover{background:#dbeafe}.workflow-table .empty-message{text-align:center;color:#94a3b8;padding:2rem}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500}.status-active{background:#dcfce7;color:#15803d}.status-inactive{background:#f1f5f9;color:#64748b}.action-icon-btn{background:transparent;border:none;border-radius:6px;padding:6px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary, #6c757d)}.action-icon-btn svg{width:16px;height:16px}.action-icon-btn:hover{transform:translateY(-2px)}.action-icon-btn.view-btn{color:#6c757d}.action-icon-btn.view-btn:hover{background-color:#e9ecef}.action-icon-btn.edit-btn{color:#1a73e8}.action-icon-btn.edit-btn:hover{background-color:#e8f0fe}.action-icon-btn.delete-btn{color:#d93025}.action-icon-btn.delete-btn:hover{background-color:#fce8e6}.action-icon-btn.execute-btn{color:#137333}.action-icon-btn.execute-btn:hover{background-color:#e6f4ea}.action-icon-btn:disabled{opacity:.5;cursor:not-allowed;color:var(--text-disabled, #9ca3af)!important}.action-icon-btn:disabled:hover{background-color:transparent!important;transform:none!important}.workflow-editor-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin-bottom:1.5rem}.workflow-editor-header h2{flex:1;margin:0;font-size:1.5rem;color:#1e293b}.workflow-editor-header .header-actions{display:flex;gap:.75rem}.step-column.clickable{cursor:pointer;transition:transform .2s,box-shadow .2s}.step-column.clickable:not(.active):hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.success-modal .modal-body{text-align:center;padding:2rem}.success-icon{width:64px;height:64px;background:#10b981;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;font-size:2rem;color:#fff;font-weight:700}.success-modal .modal-footer{justify-content:center}.confirmation-modal{max-width:450px!important;width:90%!important;height:auto!important;max-height:fit-content!important;min-height:auto!important;display:block!important}.confirmation-modal .modal-body{padding:1.5rem;flex:none!important;height:auto!important}.confirmation-modal .modal-body p{margin:0 0 .75rem}.confirmation-modal .modal-body p:last-child{margin-bottom:0}.confirmation-modal .modal-footer{padding:1rem 1.5rem;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:.75rem}.workflow-controls{background:#fff;padding:1.5rem;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1.5rem}.asset-selectors{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.5rem}.selector-group{flex:1;display:flex;flex-direction:column;gap:.5rem}.selector-add-btn{margin-top:.5rem;width:100%}.selector-group label{font-size:.875rem;font-weight:500;color:#475569}.step-navigation{display:flex;gap:.75rem;padding-top:1rem;border-top:1px solid #e2e8f0}.steps-grid{display:flex;align-items:flex-start;gap:0;padding:0 1.5rem 1.5rem;position:relative;min-height:400px}.step-column{background:#fff;border:2px solid #e2e8f0;border-radius:8px;padding:1rem;transition:all .2s;width:250px;position:relative;margin-right:60px}.step-column:last-child{margin-right:0}.step-column:not(:last-child):after{content:"";position:absolute;top:50%;right:-60px;width:50px;height:2px;background:#3b82f6;transform:translateY(-50%)}.step-column:not(:last-child):before{content:"";position:absolute;top:50%;right:-15px;width:0;height:0;border-left:10px solid #3b82f6;border-top:6px solid transparent;border-bottom:6px solid transparent;transform:translateY(-50%)}.step-column.active{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61a}.step-column.frozen{opacity:.7;background:#f8fafc}.step-column.frozen:not(:last-child):after{background:#cbd5e1}.step-column.frozen:not(:last-child):before{border-left-color:#cbd5e1}.step-header{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.step-title-row{display:flex;justify-content:space-between;align-items:center}.step-header h3{margin:0;font-size:1rem;color:#1e293b}.step-delete-btn{background:none;border:none;color:#ef4444;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.step-delete-btn:hover{background:#fee2e2}.step-status{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600}.active-badge{background:#dbeafe;color:#1d4ed8}.frozen-badge{background:#f1f5f9;color:#64748b}.step-count{font-size:.85rem;color:#64748b;margin-bottom:1rem;font-weight:500}.step-count .error-text{color:#ef4444;font-weight:600}.step-assets{display:flex;flex-direction:column;gap:.5rem}.asset-chip{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-size:.85rem}.asset-type-badge{padding:.125rem .5rem;background:#3b82f6;color:#fff;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase}.asset-chip .asset-type-badge{background:#10b981}.asset-chip[data-type=mapping_group] .asset-type-badge{background:#f59e0b}.asset-name{flex:1;color:#334155;font-weight:500}.asset-remove-btn{background:none;border:none;color:#ef4444;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.asset-remove-btn:hover{background:#fee2e2}.empty-step{text-align:center;padding:1.5rem .5rem;color:#94a3b8;font-size:.875rem}.empty-state{text-align:center;padding:4rem 2rem;color:#64748b}.empty-state p{font-size:1.1rem}.subproject-member-management{padding:1.5rem;max-width:1400px;margin:0 auto}.spmm-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.spmm-header .header-title{display:flex;align-items:center;gap:.75rem}.spmm-header .header-title h2{margin:0;font-size:.75rem;color:#1f2937;font-weight:600}.subproject-badge{background:#dbeafe;color:#1e40af;padding:.2rem .5rem;border-radius:12px;font-size:.7rem;font-weight:500}.spmm-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid #e5e7eb}.tab-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;color:#6b7280;font-size:.75rem;font-weight:500;transition:all .2s}.tab-button:hover{color:#3b82f6;background:#f9fafb}.tab-button.active{color:#3b82f6;font-weight:600}.error-banner{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;color:#991b1b;margin-bottom:1.5rem;font-size:.75rem}.loading-state p{font-size:.75rem}.tab-content{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.content-description{color:#6b7280;font-size:.75rem;margin:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;color:#6b7280;background:#f9fafb;border:2px dashed #d1d5db;border-radius:8px}.empty-state h3{color:#374151;margin:.5rem 0;font-size:.8rem;font-weight:600}.empty-state p{color:#6b7280;margin:.5rem 0 1.5rem;font-size:.75rem}.table-container{overflow-x:auto;border:1px solid #e5e7eb;border-radius:8px}.data-table{width:100%;border-collapse:collapse;font-size:.75rem}.data-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.data-table th{padding:.75rem 1rem;text-align:left;font-weight:600;color:#374151;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.data-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s}.data-table tbody tr:hover{background:#f9fafb}.data-table tbody tr:last-child{border-bottom:none}.data-table td{padding:.75rem 1rem;color:#1f2937}.user-cell,.group-cell{display:flex;align-items:center;gap:.5rem;font-weight:500}.user-cell svg{color:#3b82f6;flex-shrink:0}.group-cell svg{color:#8b5cf6;flex-shrink:0}.role-badge{display:inline-block;padding:.2rem .5rem;border-radius:12px;font-size:.7rem;font-weight:500;text-transform:capitalize}.role-badge.role-viewer{background:#dbeafe;color:#1e40af}.role-badge.role-editor{background:#fef3c7;color:#92400e}.role-badge.role-admin{background:#fce7f3;color:#9f1239}.actions-cell{text-align:center;white-space:nowrap}.btn-primary:hover:not(:disabled){background:#2563eb;box-shadow:0 2px 4px #3b82f64d}.btn-icon{background:none;border:none;padding:.5rem;cursor:pointer;color:#6b7280;border-radius:4px;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover:not(:disabled){background:#f3f4f6;color:#1f2937}.btn-icon-danger:hover:not(:disabled){background:#fee2e2;color:#dc2626}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h3{display:flex;align-items:center;gap:.5rem;margin:0;color:#1f2937;font-size:.8rem;font-weight:600}.modal-form{padding:1.5rem}.modal-form .form-group{margin-bottom:1.25rem}.modal-form label{display:block;margin-bottom:.4rem;font-weight:500;color:#374151;font-size:.7rem}.modal-form .required{color:#dc2626}.modal-form .form-input{width:100%;padding:.6rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.75rem;transition:all .2s}.modal-form .form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.modal-form .form-input:disabled{background:#f3f4f6;cursor:not-allowed}.modal-form select.form-input{cursor:pointer}.modal-form select.form-input:disabled{cursor:not-allowed}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}@media (max-width: 768px){.subproject-member-management{padding:1rem}.content-header{flex-direction:column;align-items:flex-start;gap:1rem}.content-header .btn{width:100%;justify-content:center}.spmm-tabs,.table-container{overflow-x:auto}.data-table{min-width:600px}.modal-content{margin:1rem}}.sub-project-management{padding:1.5rem;max-width:1400px;margin:0 auto}.sub-project-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.sub-project-header .btn{flex:0 0 auto;width:auto;min-width:fit-content;white-space:nowrap}.header-title{display:flex;align-items:center;gap:.75rem}.header-title h2{margin:0;font-size:.75rem;color:#1f2937;font-weight:600}.parent-project-badge{background:#dbeafe;color:#1e40af;padding:.2rem .5rem;border-radius:12px;font-size:.7rem;font-weight:500}.error-banner{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;color:#991b1b;margin-bottom:1.5rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:#6b7280}.loading-state .spinner{border:3px solid #e5e7eb;border-top:3px solid #3b82f6;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:1rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:#6b7280;background:#f9fafb;border:2px dashed #d1d5db;border-radius:12px}.empty-state svg{color:#9ca3af;margin-bottom:1rem}.empty-state h3{color:#374151;margin:.5rem 0;font-size:.75rem;font-weight:600}.empty-state p{color:#6b7280;margin:.5rem 0 1.5rem;font-size:.8rem}.sub-project-form-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.25rem;margin-bottom:1.5rem;max-width:500px;box-shadow:0 1px 3px #0000001a}.form-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.form-card-header h3{display:flex;align-items:center;gap:.5rem;margin:0;color:#1f2937;font-size:.75rem;font-weight:600}.sub-project-form .form-group{margin-bottom:1rem}.sub-project-form label{display:block;margin-bottom:.25rem;font-weight:600;color:#374151;font-size:10px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.sub-project-form .required{color:#dc2626}.sub-project-form .form-input{width:100%;max-width:400px;padding:.35rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:10px;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;transition:all .2s}.sub-project-form .form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.sub-project-form .form-input:disabled{background:#f3f4f6;cursor:not-allowed}.sub-project-form textarea.form-input{resize:vertical;min-height:60px;max-width:400px}.form-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.form-actions .btn{flex:none;width:auto}.sub-projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.sub-project-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem;transition:all .2s}.sub-project-card:hover{box-shadow:0 4px 6px #0000001a;transform:translateY(-2px)}.sub-project-card.inactive{opacity:.6;background:#f9fafb}.sub-project-card .card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.sub-project-card .card-title{display:flex;align-items:center;gap:.75rem;flex:1}.sub-project-card .folder-icon{color:#3b82f6;flex-shrink:0}.sub-project-card h3{margin:0;font-size:.75rem;color:#1f2937;word-break:break-word;font-weight:600}.sub-project-card .card-actions{display:flex;gap:.5rem}.sub-project-card .card-body{margin-top:1rem}.sub-project-card .description{color:#6b7280;font-size:.8rem;line-height:1.5;margin-bottom:1rem}.card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1rem 0;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.card-stats .stat{display:flex;flex-direction:column;gap:.25rem}.card-stats .stat-label{font-size:.7rem;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.card-stats .stat-value{font-size:.75rem;font-weight:600;color:#1f2937}.status-badge{display:inline-block;padding:.2rem .5rem;border-radius:12px;font-size:.7rem;font-weight:500}.status-badge.active{background:#d1fae5;color:#065f46}.status-badge.inactive{background:#fee2e2;color:#991b1b}.card-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb;font-size:.75rem;color:#6b7280}.card-footer .owner-label{font-weight:500;margin-right:.5rem}.card-footer .owner-name{color:#374151}.edit-form{padding:.5rem 0}.edit-form .form-group{margin-bottom:1rem}.edit-form label{display:block;margin-bottom:.35rem;font-weight:500;color:#374151;font-size:.7rem}.edit-form .form-input{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.75rem}.edit-form .form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group-checkbox{display:flex;align-items:center;margin-bottom:1rem}.form-group-checkbox label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.form-group-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:#025043;color:#fff}.btn-sm{padding:.35rem .75rem;font-size:.7rem;gap:.35rem}.btn-sm svg{width:14px;height:14px}.btn-primary:hover:not(:disabled){background:#013d33}.btn-icon{background:none;border:none;padding:.5rem;cursor:pointer;color:#6b7280;border-radius:4px;transition:all .2s}.btn-icon:hover{background:#f3f4f6;color:#1f2937}.btn-icon-danger:hover{background:#fee2e2;color:#dc2626}.sub-projects-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.sub-projects-table{width:100%;border-collapse:collapse;font-size:.75rem}.sub-projects-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.sub-projects-table th{padding:.75rem 1rem;text-align:left;font-weight:600;color:#374151;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.sub-projects-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background-color .2s}.sub-projects-table tbody tr:hover:not(.edit-row){background:#f9fafb}.sub-projects-table tbody tr.inactive-row{opacity:.6;background:#fafafa}.sub-projects-table td{padding:.75rem 1rem;color:#1f2937}.sub-projects-table .name-cell{display:flex;align-items:center;gap:.5rem;font-weight:500}.sub-projects-table .name-cell .folder-icon{color:#3b82f6;flex-shrink:0}.sub-projects-table .description-text{color:#6b7280;font-size:.7rem;margin-top:.25rem;font-style:italic}.sub-projects-table .text-center{text-align:center}.sub-projects-table .actions-cell{text-align:center;white-space:nowrap}.sub-projects-table .actions-cell .btn-icon{padding:.35rem;margin:0 .1rem}.sub-projects-table .edit-row td{padding:1rem;background:#f9fafb}.inline-edit-form{display:flex;flex-direction:column;gap:1rem}.edit-form-grid{display:grid;grid-template-columns:1fr 2fr auto;gap:1rem;align-items:start}.inline-edit-form .form-group{margin:0}.inline-edit-form .form-group label{display:block;margin-bottom:.35rem;font-weight:500;color:#374151;font-size:.7rem}.inline-edit-form .form-input{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.75rem}.inline-edit-form .form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.inline-edit-form .form-group-checkbox{display:flex;align-items:center;margin:0;padding-top:1.5rem}.inline-edit-form .form-group-checkbox label{display:flex;align-items:center;gap:.5rem;cursor:pointer;margin:0}.inline-edit-form .form-group-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.inline-edit-form .form-actions{display:flex;gap:.5rem;justify-content:flex-end;margin:0}.btn-icon-minimal{background:none;border:none;padding:.25rem;cursor:pointer;color:#6b7280;transition:color .2s;display:inline-flex;align-items:center}.btn-icon-minimal:hover{color:#3b82f6}.expanded-member-row{background:#f9fafb!important}.expanded-member-row td{padding:0!important}.member-management-container{padding:1.5rem;border-top:2px solid #e5e7eb}.modal{background:#fff;border-radius:6px;max-width:600px;width:90%;height:85vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003;overflow:hidden;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.modal-large{max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:0 20px;background:var(--gps-primary-teal, #025043);height:46px;flex-shrink:0;min-height:46px;max-height:46px}.modal-header h2{margin:0;font-size:13px;font-weight:600;color:#fff;line-height:1.2;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.close-btn{background:none;border:none;font-size:18px;color:#fff;cursor:pointer;line-height:1;padding:0;width:auto;height:auto;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:#fffc}.close-btn:disabled{opacity:.5;cursor:not-allowed}.modal-body{flex:1;overflow-y:auto;min-height:0}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:0 20px;border-top:1px solid var(--gps-border-light, #e2e8f0);height:46px;flex-shrink:0;min-height:46px;max-height:46px;background:#fff}.edit-subproject-tabs{display:flex;border-bottom:1px solid var(--gps-border-light, #e2e8f0);background:var(--gps-bg-page, #f7fafc);padding:0 20px}.tab-button{background:none;border:none;padding:10px 16px;cursor:pointer;font-size:11px;font-weight:500;color:var(--gps-text-muted, #666666);border-bottom:2px solid transparent;transition:all .2s;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.tab-button:hover{color:var(--gps-text-dark, #333333);background:#00000005}.tab-content{min-height:300px}.form-group{margin-bottom:12px}.form-group label{display:block;margin-bottom:4px;font-weight:500;color:var(--gps-text-muted, #666666);font-size:10px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.form-group input[type=text],.form-group textarea,.form-group select{width:100%;padding:8px 10px;border:1px solid var(--gps-border-light, #e2e8f0);border-radius:4px;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.form-group input[type=text]:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--gps-primary-teal, #025043);box-shadow:0 0 0 2px #0250431a}.form-group textarea{resize:vertical}.form-group input[type=text]:disabled,.form-group textarea:disabled{background-color:#f7fafc;cursor:not-allowed}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.checkbox-label input[type=checkbox]{width:auto}.btn-primary,.btn-secondary{padding:6px 14px;border:none;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.btn-primary{background:var(--gps-primary-teal, #025043);color:#fff}.btn-primary:hover:not(:disabled){background:var(--gps-primary-hover, #033830)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--gps-bg-page, #f7fafc);color:var(--gps-text-dark, #333333);border:1px solid var(--gps-border-light, #e2e8f0)}.btn-secondary:hover:not(:disabled){background:#edf2f7}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.alert{padding:10px 12px;border-radius:4px;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.alert-error{background:#fff5f5;color:#c53030;border:1px solid #feb2b2}.retention-policies-container{padding:var(--space-5);max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-6)}.page-description{color:var(--text-secondary);margin-top:var(--space-2);font-size:var(--text-base)}.policies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:var(--space-5);margin-top:var(--space-5)}.policy-card{background:var(--bg-card);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-md);transition:var(--transition-base);border:1px solid var(--border-light)}.policy-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.policy-card.disabled{opacity:.7;background:var(--bg-surface)}.policy-header{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-light)}.policy-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.policy-title-row h3{margin:0;font-size:var(--text-lg);color:var(--text-primary)}.policy-description{margin:var(--space-2) 0 0 0;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.5}.policy-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-3);background:var(--bg-surface);border-radius:var(--radius-sm)}.stat{display:flex;align-items:center;gap:var(--space-2)}.stat svg{color:var(--color-primary);font-size:var(--text-xl);flex-shrink:0}.stat-value{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary);line-height:1.2}.stat-label{font-size:var(--text-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.policy-rules{margin-bottom:var(--space-4)}.rule-item{padding:var(--space-2) 0;font-size:var(--text-sm);color:var(--text-secondary);border-bottom:1px solid var(--border-light)}.rule-item:last-child{border-bottom:none}.rule-item strong{color:var(--text-primary);margin-right:var(--space-2)}.policy-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.empty-state{grid-column:1 / -1;text-align:center;padding:var(--space-8) var(--space-5);background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.empty-state svg{color:var(--color-primary);opacity:.5;margin-bottom:var(--space-4)}.empty-state h3{color:var(--text-primary);margin-bottom:var(--space-2)}.empty-state p{color:var(--text-secondary);margin-bottom:var(--space-5)}.retention-modal{max-width:800px;max-height:85vh;overflow-y:auto}.section-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);margin:var(--space-5) 0 var(--space-3) 0;padding-top:var(--space-4);border-top:1px solid var(--border-light)}.section-title:first-of-type{margin-top:var(--space-4);border-top:none;padding-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.form-group{display:flex;flex-direction:column}.form-group.full-width{grid-column:1 / -1}.form-group label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);margin-bottom:var(--space-2)}.form-group input[type=text],.form-group input[type=number],.form-group select,.form-group textarea{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--text-base);font-family:inherit}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2196f31a}.form-group input[type=checkbox]{width:auto;margin-right:var(--space-2)}.text-warning{color:var(--color-warning-dark);font-weight:var(--font-medium)}@media (max-width: 768px){.policies-grid{grid-template-columns:1fr}.page-header{flex-direction:column;gap:var(--space-4)}.form-grid{grid-template-columns:1fr}.form-group.full-width{grid-column:1}.policy-stats{grid-template-columns:1fr}.policy-actions{flex-direction:column}.policy-actions button{width:100%}}.archived-files-container{padding:20px;max-width:1400px;margin:0 auto}.page-header{margin-bottom:30px}.page-header h1{font-size:28px;color:#2c3e50;margin-bottom:10px}.page-header p{color:#7f8c8d;font-size:14px}.filters-section{display:flex;gap:15px;margin-bottom:25px;padding:20px;background:#f8f9fa;border-radius:8px;flex-wrap:wrap;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:5px;min-width:150px}.filter-group select,.filter-group input{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;background:#fff}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:#4caf50}.archives-summary{margin-bottom:15px;padding:10px;background:#e8f5e9;border-radius:4px;color:#2e7d32;font-size:14px}.loading-state{text-align:center;padding:60px 20px;color:#7f8c8d}.error-message{padding:15px;background:#ffebee;color:#c62828;border-radius:4px;margin-bottom:20px;font-size:14px}.table-container{overflow-x:auto;border:1px solid #ddd;border-radius:8px;background:#fff}.archives-table{width:100%;border-collapse:collapse}.archives-table thead{background:#f5f5f5;border-bottom:2px solid #ddd}.archives-table th{padding:12px 15px;text-align:left;font-weight:600;color:#495057;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.archives-table td{padding:15px;border-bottom:1px solid #f0f0f0;font-size:14px;color:#495057}.archives-table tbody tr:hover{background:#f8f9fa}.file-info{display:flex;flex-direction:column;gap:4px}.file-info .filename{font-weight:500;color:#2c3e50}.file-info .file-id{font-size:12px;color:#95a5a6}.compression-ratio{font-size:12px;color:#7f8c8d}.no-data{text-align:center;padding:40px;color:#95a5a6;font-style:italic}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-archived{background:#e8f5e9;color:#2e7d32}.status-pending{background:#fff3e0;color:#ef6c00}.status-failed{background:#ffebee;color:#c62828}.btn-action{padding:6px 16px;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-restore{background:#4caf50;color:#fff}.btn-restore:hover:not(:disabled){background:#45a049;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.btn-restore:disabled{background:#ccc;cursor:not-allowed}.btn-primary{padding:10px 24px;background:#4caf50;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{padding:10px 24px;background:#f5f5f5;color:#495057;border:1px solid #ddd;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd}.btn-secondary:disabled{background:#e9ecef;color:#adb5bd;cursor:not-allowed}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:25px;padding:20px}.page-info{color:#495057;font-size:14px;font-weight:500}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:8px;padding:30px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #00000026}.modal-content h2{margin-top:0;margin-bottom:25px;color:#2c3e50;font-size:22px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#495057;font-size:14px}.form-group input,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#4caf50}.form-group input:disabled{background:#f5f5f5;color:#7f8c8d;cursor:not-allowed}.form-group small{display:block;margin-top:5px;color:#7f8c8d;font-size:12px}.modal-actions{display:flex;gap:15px;margin-top:30px;justify-content:flex-end}@media (max-width: 768px){.filters-section{flex-direction:column}.filter-group{width:100%}.archives-table{font-size:13px}.archives-table th,.archives-table td{padding:10px}.modal-content{padding:20px}}.anomalies-container{padding:24px;max-width:1400px;margin:0 auto}.anomalies-header{margin-bottom:24px}.anomalies-header h1{font-size:28px;font-weight:600;color:#1a1a1a;margin-bottom:8px}.anomalies-header p{color:#666;font-size:14px}.anomaly-statistics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;text-align:center}.stat-card.severity-critical{border-left:4px solid #dc2626}.stat-card.severity-high{border-left:4px solid #ea580c}.stat-card.severity-medium{border-left:4px solid #f59e0b}.stat-value{font-size:32px;font-weight:700;color:#1a1a1a;margin-bottom:8px}.stat-label{font-size:13px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.anomaly-filters{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;margin-bottom:24px;display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-group label{font-size:13px;font-weight:500;color:#374151}.filter-group select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;min-width:150px;background:#fff}.btn-refresh{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.btn-refresh:hover{background:#2563eb}.anomaly-list{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.anomaly-table{width:100%;border-collapse:collapse}.anomaly-table thead{background:#f9fafb}.anomaly-table th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e5e7eb}.anomaly-table td{padding:12px 16px;font-size:14px;color:#1f2937;border-bottom:1px solid #f3f4f6}.anomaly-table tbody tr:hover{background:#f9fafb}.badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.badge-critical{background:#fee2e2;color:#dc2626}.badge-high{background:#fed7aa;color:#ea580c}.badge-medium{background:#fef3c7;color:#d97706}.badge-low{background:#dbeafe;color:#2563eb}.badge-default{background:#e5e7eb;color:#6b7280}.badge-status-open{background:#fef3c7;color:#d97706}.badge-status-resolved{background:#d1fae5;color:#059669}.anomaly-type,.anomaly-title{font-weight:500}.anomaly-type{text-transform:capitalize}.file-name{font-family:Monaco,Menlo,Courier New,monospace;font-size:13px}.detected-date{font-size:13px;color:#6b7280}.btn-resolve{padding:6px 12px;background:#059669;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.btn-resolve:hover{background:#047857}.loading,.error-message,.no-data{padding:40px;text-align:center;color:#6b7280;font-size:14px}.error-message{color:#dc2626;background:#fee2e2;border-radius:8px;margin:20px 0}.modal-content{background:#fff;border-radius:12px;padding:24px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.modal-content h2{font-size:24px;font-weight:600;color:#1a1a1a;margin-bottom:20px}.anomaly-details{background:#f9fafb;border-radius:8px;padding:16px;margin-bottom:20px}.anomaly-details p{margin-bottom:8px;font-size:14px;color:#374151}.anomaly-details strong{font-weight:600;color:#1f2937}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:8px}.form-group textarea{width:100%;padding:10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:inherit;resize:vertical}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.btn-primary,.btn-secondary{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary{background:#f3f4f6;color:#374151}.modal-large{max-width:900px;width:90%}.alerts-config-container{padding:20px 0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.page-title{display:flex;align-items:center;gap:12px;font-size:28px;font-weight:600;color:var(--text-primary, #1a202c);margin:0 0 8px}.title-icon{color:var(--primary-color, #3b82f6)}.page-subtitle{color:var(--text-secondary, #718096);margin:0;font-size:14px}.btn-primary{background-color:var(--primary-color, #3b82f6);color:#fff;padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background-color .2s}.btn-primary:hover{background-color:var(--primary-hover, #2563eb)}.btn-primary:disabled{background-color:var(--gray-300, #cbd5e0);cursor:not-allowed}.btn-secondary{background-color:var(--gray-100, #f7fafc);color:var(--text-primary, #1a202c);padding:10px 16px;border:1px solid var(--gray-300, #cbd5e0);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-secondary:hover{background-color:var(--gray-200, #e2e8f0)}.btn-icon{background:none;border:none;padding:8px;cursor:pointer;border-radius:4px;color:var(--text-secondary, #718096);transition:all .2s}.btn-icon:hover{background-color:var(--gray-100, #f7fafc);color:var(--text-primary, #1a202c)}.btn-icon-blue:hover{background-color:#dbeafe;color:#3b82f6}.btn-icon-red:hover{background-color:#fee2e2;color:#ef4444}.error-banner{background-color:#fee2e2;border:1px solid: #fecaca;color:#991b1b;padding:12px 16px;border-radius:6px;margin-bottom:20px}.loading-state{text-align:center;padding:60px 20px;color:var(--text-secondary, #718096);font-size:16px}.empty-state{text-align:center;padding:60px 20px}.empty-state-icon{font-size:48px;color:var(--gray-400, #cbd5e0);margin-bottom:16px}.empty-state h3{font-size:18px;font-weight:600;color:var(--text-primary, #1a202c);margin:0 0 8px}.empty-state p{color:var(--text-secondary, #718096);margin:0 0 24px}.policies-grid{display:grid;gap:16px}.policy-card{display:flex;justify-content:space-between;align-items:flex-start}.policy-header{flex:1}.policy-title-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}.policy-name{font-size:18px;font-weight:600;color:var(--text-primary, #1a202c);margin:0}.policy-badges{display:flex;gap:6px}.trigger-badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;text-transform:capitalize}.bg-blue-100{background-color:#dbeafe}.text-blue-800{color:#1e40af}.bg-purple-100{background-color:#e9d5ff}.text-purple-800{color:#6b21a8}.bg-green-100{background-color:#d1fae5}.text-green-800{color:#065f46}.bg-orange-100{background-color:#fed7aa}.text-orange-800{color:#9a3412}.bg-red-100{background-color:#fee2e2}.text-red-800{color:#991b1b}.bg-yellow-100{background-color:#fef3c7}.text-yellow-800{color:#92400e}.bg-gray-100{background-color:#f7fafc}.text-gray-800{color:#1a202c}.text-gray-500{color:#718096}.policy-description{color:var(--text-secondary, #718096);font-size:14px;margin:0 0 12px}.policy-meta{display:flex;gap:24px}.meta-item{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-secondary, #718096)}.policy-actions{display:flex;gap:4px}.modal-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:14px;font-weight:500;color:var(--text-primary, #1a202c)}.form-input,.form-select,.form-textarea{padding:8px 12px;border:1px solid var(--gray-300, #cbd5e0);border-radius:6px;font-size:14px;font-family:inherit;color:var(--text-primary, #1a202c);background-color:#fff}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.form-textarea{resize:vertical;min-height:80px}.form-hint{font-size:12px;color:var(--text-secondary, #718096);margin:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-checkbox{display:flex;align-items:center;gap:8px}.form-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.form-checkbox label{font-size:14px;color:var(--text-primary, #1a202c);cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;margin-top:8px;border-top:1px solid var(--gray-200, #e2e8f0)}.recipients-modal{display:flex;flex-direction:column;gap:24px}.add-recipient-section,.recipients-list-section{display:flex;flex-direction:column;gap:12px}.section-title{font-size:14px;font-weight:600;color:var(--text-primary, #1a202c);margin:0}.recipient-type-tabs{display:flex;gap:8px}.type-tab{flex:1;padding:8px 16px;border:1px solid var(--gray-300, #cbd5e0);background-color:var(--gray-100, #f7fafc);color:var(--text-secondary, #718096);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.type-tab.active{background-color:var(--primary-color, #3b82f6);color:#fff;border-color:var(--primary-color, #3b82f6)}.type-tab:hover:not(.active){background-color:var(--gray-200, #e2e8f0)}.recipient-input-row{display:flex;gap:8px}.recipient-input-row .form-input,.recipient-input-row .form-select{flex:1}.recipient-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background-color:var(--gray-50, #f9fafb);border-radius:6px}.recipient-info{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-primary, #1a202c)}.recipient-icon{color:var(--text-secondary, #718096)}.empty-recipients{text-align:center;padding:24px;color:var(--text-secondary, #718096);font-size:14px}@media (max-width: 768px){.page-header{flex-direction:column;gap:16px}.form-row{grid-template-columns:1fr}.policy-card{flex-direction:column;gap:16px}.policy-actions{justify-content:flex-start}}.email-providers-container{padding:2rem;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.page-title{display:flex;align-items:center;gap:.75rem;font-size:1.875rem;font-weight:700;color:#111827;margin:0 0 .5rem}.title-icon{width:2rem;height:2rem;color:#3b82f6}.page-subtitle{color:#6b7280;font-size:1rem;margin:0}.btn-primary{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background-color:#3b82f6;color:#fff;border:none;border-radius:.5rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-primary:hover:not(:disabled){background-color:#2563eb}.btn-secondary{padding:.625rem 1.25rem;background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{background-color:#e5e7eb}.error-banner{padding:1rem;margin-bottom:1.5rem;background-color:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#991b1b}.loading-state{padding:3rem;text-align:center;color:#6b7280;font-size:1.125rem}.empty-state{text-align:center;padding:3rem 2rem}.empty-state-icon{width:4rem;height:4rem;color:#9ca3af;margin:0 auto 1rem}.empty-state h3{font-size:1.25rem;font-weight:600;color:#111827;margin:0 0 .5rem}.empty-state p{color:#6b7280;margin:0 0 1.5rem}.providers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.provider-card{display:flex;flex-direction:column;gap:1rem}.provider-header{display:flex;gap:1rem;align-items:flex-start}.provider-icon{font-size:2.5rem;flex-shrink:0}.provider-info{flex:1;min-width:0}.provider-name{font-size:1.125rem;font-weight:600;color:#111827;margin:0 0 .25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provider-type{display:inline-block;padding:.25rem .75rem;background-color:#eff6ff;color:#1e40af;border-radius:9999px;font-size:.875rem;font-weight:500}.provider-details{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background-color:#f9fafb;border-radius:.5rem}.detail-item{display:flex;justify-content:space-between;font-size:.875rem}.detail-label{color:#6b7280;font-weight:500}.detail-value{color:#111827;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provider-actions{display:flex;gap:.5rem;padding-top:.75rem;border-top:1px solid #e5e7eb}.btn-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:.5rem;cursor:pointer;transition:all .2s}.btn-icon:hover{background-color:#e5e7eb}.btn-icon-blue{background-color:#eff6ff;color:#2563eb;border-color:#bfdbfe}.btn-icon-blue:hover{background-color:#dbeafe}.btn-icon-red{background-color:#fef2f2;color:#dc2626;border-color:#fecaca}.btn-icon-red:hover{background-color:#fee2e2}.modal-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-weight:500;color:#374151;font-size:.875rem}.form-input,.form-select{padding:.625rem .875rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;transition:all .2s}.form-input:focus,.form-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-checkbox{display:flex;align-items:center;gap:.5rem}.form-checkbox input[type=checkbox]{width:1.125rem;height:1.125rem;cursor:pointer}.form-checkbox label{font-size:.875rem;color:#374151;cursor:pointer}.oauth2-section{display:flex;flex-direction:column;gap:1rem;padding:1.5rem;background-color:#f9fafb;border-radius:.5rem}.info-box{display:flex;gap:.75rem;padding:1rem;background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:.5rem;color:#1e40af}.info-box svg{flex-shrink:0;width:1.25rem;height:1.25rem;margin-top:.125rem}.info-box p{margin:0;font-size:.875rem}.test-description{font-family:var(--gps-font-family, "Inter", sans-serif);font-size:var(--gps-font-size-content, 11px);color:#6b7280;margin:0 0 1rem}.test-result{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:.5rem;font-size:.875rem;font-weight:500}.test-result.success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#15803d}.test-result.error{background-color:#fef2f2;border:1px solid #fecaca;color:#991b1b}.test-result svg{flex-shrink:0;width:1.25rem;height:1.25rem}.provider-name-cell{font-family:var(--gps-font-family, "Inter", sans-serif);font-size:var(--gps-font-size-content, 11px);font-weight:600;color:var(--gps-text-dark, #111827)}.provider-type-badge{display:inline-block;padding:4px 10px;background-color:#eff6ff;color:#1e40af;border-radius:4px;font-family:var(--gps-font-family, "Inter", sans-serif);font-size:var(--gps-font-size-content, 11px);font-weight:500}.from-email-cell{font-family:var(--gps-font-family, "Inter", sans-serif);font-size:var(--gps-font-size-content, 11px);color:var(--gps-text-dark, #374151)}.table-actions{display:flex;align-items:center;gap:8px}.gps-action-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-family:var(--gps-font-family, "Inter", sans-serif);font-size:var(--gps-font-size-content, 11px);font-weight:500;border:1px solid transparent;border-radius:4px;cursor:pointer;transition:all .15s ease}.gps-action-btn--primary{background-color:#eff6ff;color:#2563eb;border-color:#bfdbfe}.gps-action-btn--primary:hover{background-color:#dbeafe;border-color:#93c5fd}.gps-action-btn--danger{background-color:#fef2f2;color:#dc2626;border-color:#fecaca;padding:6px 8px}.gps-action-btn--danger:hover{background-color:#fee2e2;border-color:#fca5a5}.gps-action-btn--secondary{background-color:#f3f4f6;color:#374151;border-color:#d1d5db}.gps-action-btn--secondary:hover{background-color:#e5e7eb;border-color:#9ca3af}.confirmation-body{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center}.confirmation-body>svg{flex-shrink:0}.confirmation-body p{font-size:.875rem;color:#374151;margin:0}.confirmation-body p strong{color:#111827}.confirmation-body .warning-text{font-size:.75rem;color:#9ca3af}.btn-danger{padding:.625rem 1.25rem;background-color:#dc2626;color:#fff;border:none;border-radius:.5rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-danger:hover{background-color:#b91c1c}.alert-history-container{width:100%}.alert-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.btn-filter{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:background .2s}.btn-filter:hover{background:#0056b3}.filters-panel{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:20px;margin-bottom:20px}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:15px}.filter-group{display:flex;flex-direction:column;gap:5px}.filter-group label{font-size:13px;font-weight:500;color:#495057}.filter-group select,.filter-group input{padding:8px 12px;border:1px solid #ced4da;border-radius:4px;font-size:14px}.btn-clear-filters{padding:8px 16px;background:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.btn-clear-filters:hover{background:#5a6268}.runs-list{display:flex;flex-direction:column;gap:15px}.run-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;transition:box-shadow .2s}.run-card:hover{box-shadow:0 4px 12px #0000001a}.run-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px;cursor:pointer;gap:20px}.run-info-main{display:flex;align-items:center;gap:15px;flex:1}.run-status{display:flex;align-items:center;gap:8px}.status-icon{font-size:18px}.status-icon.success{color:#28a745}.status-icon.error{color:#dc3545}.status-icon.pending{color:#ffc107}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-transform:capitalize}.status-badge.success{background:#d4edda;color:#155724}.status-badge.error{background:#f8d7da;color:#721c24}.status-badge.pending{background:#fff3cd;color:#856404}.run-policy{display:flex;flex-direction:column;gap:4px}.run-policy strong{font-size:15px;color:#212529}.project-name{font-size:13px;color:#6c757d}.run-info-secondary{display:flex;flex-direction:column;gap:8px;flex:2}.run-events{display:flex;flex-direction:column;gap:4px}.events-summary{display:flex;gap:12px;align-items:center}.entity-types{font-size:13px;color:#495057;text-transform:capitalize}.event-counts{display:flex;gap:8px;font-size:12px}.success-count{color:#28a745;font-weight:500}.failure-count{color:#dc3545;font-weight:500}.run-meta{display:flex;gap:15px;align-items:center;font-size:13px;color:#6c757d}.run-recipients{display:flex;align-items:center;gap:4px}.run-expand-icon{color:#6c757d;font-size:16px}.run-card-body{border-top:1px solid #dee2e6;padding:20px;background:#f8f9fa}.loading-details{text-align:center;padding:20px;color:#6c757d}.run-details-expanded{display:flex;flex-direction:column;gap:20px}.details-section{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:15px}.details-section h4{margin:0 0 15px;font-size:14px;font-weight:600;color:#495057;border-bottom:1px solid #dee2e6;padding-bottom:8px}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-item label{font-size:12px;font-weight:500;color:#6c757d}.detail-item span{font-size:14px;color:#212529}.error-message-box{background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;padding:12px;margin-top:10px;color:#721c24;font-size:13px}.metadata-box{margin-top:10px}.metadata-box strong{font-size:13px;color:#495057}.metadata-box pre{background:#f1f3f5;border:1px solid #dee2e6;border-radius:4px;padding:10px;margin-top:8px;font-size:12px;overflow-x:auto;max-height:200px;overflow-y:auto}.recipients-list{display:flex;flex-direction:column;gap:8px}.recipient-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8f9fa;border-radius:4px;font-size:13px}.recipient-icon{color:#007bff}.attachments-list{display:flex;flex-direction:column;gap:8px}.attachment-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#f8f9fa;border-radius:4px;font-size:13px}.attachment-name{font-weight:500;color:#212529}.attachment-size{color:#6c757d;font-size:12px}.attachment-link{color:#007bff;text-decoration:none;font-weight:500}.attachment-link:hover{text-decoration:underline}.events-list{display:flex;flex-direction:column;gap:10px}.event-item{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:12px}.event-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.event-type{font-weight:500;color:#495057;text-transform:capitalize}.event-id{color:#6c757d;font-size:12px}.event-status{margin-left:auto;padding:2px 8px;background:#e9ecef;border-radius:10px;font-size:11px;font-weight:500;text-transform:capitalize}.event-meta{display:flex;gap:12px;font-size:12px;color:#6c757d;margin-bottom:8px}.event-metadata{margin-top:8px}.event-metadata pre{background:#fff;border:1px solid #dee2e6;border-radius:4px;padding:8px;font-size:11px;overflow-x:auto;max-height:150px;overflow-y:auto}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:30px;padding:20px}.pagination button{padding:8px 16px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.pagination button:disabled{background:#6c757d;cursor:not-allowed;opacity:.5}.pagination button:not(:disabled):hover{background:#0056b3}.pagination span{color:#495057;font-size:14px}.loading-spinner,.error-message,.no-data{text-align:center;padding:40px;color:#6c757d;font-size:14px}.error-message{color:#dc3545;background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px}.text-muted{color:#6c757d;font-style:italic;font-size:13px}.api-docs-container{max-width:1200px;margin:0 auto;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.api-docs-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid var(--gps-border-light, #e2e8f0);padding-bottom:0}.tab-button{padding:10px 16px;background:none;border:none;color:var(--gps-text-muted, #666666);font-size:11px;font-weight:500;cursor:pointer;transition:all .2s;border-radius:0;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.tab-button:focus,.tab-button:focus-visible{outline:none!important}.tab-button:hover{color:var(--gps-primary-teal, #025043);background-color:#0250430a}.tab-button.active{color:var(--gps-primary-teal, #025043);font-weight:600;border-bottom-color:var(--gps-primary-teal, #025043)}.api-docs-content{background:#fff;border-radius:6px;padding:20px 24px;box-shadow:0 1px 3px #00000014;border:1px solid var(--gps-border-light, #e2e8f0)}.docs-section h2{margin-top:0;margin-bottom:16px;color:var(--gps-primary-teal, #025043);font-size:15px;font-weight:600;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.docs-section h3{margin-top:14px;margin-bottom:10px;color:var(--gps-text-dark, #333333);font-size:12px;font-weight:600;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.docs-section p{font-size:11px;line-height:1.6;color:var(--gps-text-muted, #666666);margin:8px 0;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.docs-section ul,.docs-section ol{font-size:11px;line-height:1.7;color:var(--gps-text-muted, #666666);padding-left:20px;margin:8px 0;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.docs-section li{margin-bottom:6px}.docs-section strong{color:var(--gps-text-dark, #333333);font-weight:600}.info-card{background:#f0faf8;border-left:3px solid var(--gps-primary-teal, #025043);padding:14px 16px;margin-bottom:14px;border-radius:4px}.info-card h3{margin-top:0;margin-bottom:10px;color:var(--gps-primary-teal, #025043);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.info-card p{font-size:11px;color:var(--gps-text-muted, #666666)}.info-card ul,.info-card ol{margin:8px 0;padding-left:18px}.info-card li{font-size:11px;margin-bottom:6px}.warning-card{background:#fffaf0;border-left:3px solid #dd6b20;padding:14px 16px;margin-bottom:14px;border-radius:4px}.warning-card h3{margin-top:0;margin-bottom:10px;color:#c05621;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.warning-card ul{margin:8px 0;padding-left:18px}.warning-card li{font-size:11px;color:#744210;margin-bottom:6px}.api-architecture-flow{display:flex;flex-direction:row;align-items:center;gap:10px;margin-top:12px;overflow-x:auto;padding:4px 0}.api-flow-step{display:flex;flex-direction:row;align-items:center;gap:10px;background:#fff;padding:10px 12px;border-radius:6px;min-width:160px;max-width:200px;box-shadow:0 1px 3px #00000014;border:1px solid var(--gps-border-light, #e2e8f0);flex-shrink:0}.api-step-number{width:26px;height:26px;min-width:26px;min-height:26px;background:var(--gps-primary-teal, #025043);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:11px;flex-shrink:0;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.api-step-content{flex:1}.api-step-content h4{margin:0 0 2px;color:var(--gps-text-dark, #333333);font-size:11px;font-weight:600;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.api-step-content p{margin:0;font-size:10px;color:var(--gps-text-muted, #666666);line-height:1.3}.api-flow-arrow{color:var(--gps-text-muted, #666666);font-size:16px;flex-shrink:0;opacity:.6}.endpoint-selector{margin-bottom:16px}.endpoint-dropdown{width:100%;padding:8px 12px;border:1px solid var(--gps-border-light, #e2e8f0);border-radius:4px;font-size:11px;background:#fff;cursor:pointer;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);color:var(--gps-text-dark, #333333)}.endpoint-dropdown:focus{outline:none;border-color:var(--gps-primary-teal, #025043);box-shadow:0 0 0 2px #0250431a}.endpoint-details{margin-top:16px}.endpoint-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--gps-border-light, #e2e8f0)}.method-badge{padding:4px 10px;border-radius:4px;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.3px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.method-badge.post{background:var(--gps-primary-teal, #025043);color:#fff}.method-badge.get{background:#0e7490;color:#fff}.method-badge.put{background:#dd6b20;color:#fff}.method-badge.delete{background:var(--gps-danger-red, #e53e3e);color:#fff}.endpoint-path{font-family:SF Mono,Monaco,Inconsolata,Fira Mono,Droid Sans Mono,monospace;font-size:12px;color:var(--gps-text-dark, #333333);font-weight:500}.endpoint-description{margin:10px 0;color:var(--gps-text-muted, #666666);line-height:1.6;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.auth-info{background:#f0faf8;padding:10px 14px;border-radius:4px;margin:12px 0;color:var(--gps-primary-teal, #025043);font-size:11px;border:1px solid rgba(2,80,67,.15);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.auth-info strong{font-weight:600}.params-section{margin:16px 0}.params-section h3{margin-bottom:10px;font-size:11px;font-weight:600;color:var(--gps-text-dark, #333333);text-transform:uppercase;letter-spacing:.3px}.params-table{width:100%;border-collapse:collapse;margin-top:8px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.params-table th{background:var(--gps-bg-page, #f7fafc);padding:8px 12px;text-align:left;font-weight:600;font-size:10px;color:var(--gps-text-muted, #666666);border-bottom:1px solid var(--gps-border-light, #e2e8f0);text-transform:uppercase;letter-spacing:.3px}.params-table td{padding:10px 12px;border-bottom:1px solid var(--gps-border-light, #e2e8f0);color:var(--gps-text-muted, #666666);font-size:11px}.params-table tr:last-child td{border-bottom:none}.params-table code{background:#f0faf8;padding:2px 6px;border-radius:3px;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,monospace;font-size:10px;color:var(--gps-primary-teal, #025043);font-weight:500}.formats-section{margin:16px 0}.formats-section h3{margin-bottom:10px;font-size:11px;font-weight:600;color:var(--gps-text-dark, #333333);text-transform:uppercase;letter-spacing:.3px}.format-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.format-tag{background:#f0faf8;color:var(--gps-primary-teal, #025043);padding:4px 10px;border-radius:12px;font-size:10px;font-weight:500;border:1px solid rgba(2,80,67,.15);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.response-section{margin:16px 0}.response-section h3{margin-bottom:10px;font-size:11px;font-weight:600;color:var(--gps-text-dark, #333333);text-transform:uppercase;letter-spacing:.3px}.code-block{position:relative;background:#1a2332;color:#e2e8f0;padding:14px 16px;border-radius:6px;margin:10px 0;overflow-x:auto}.code-block pre{margin:0;font-family:SF Mono,Monaco,Inconsolata,Fira Mono,Droid Sans Mono,monospace;font-size:11px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.copy-button{position:absolute;top:8px;right:8px;padding:4px 10px;background:var(--gps-primary-teal, #025043);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:10px;font-weight:500;transition:background .2s;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.copy-button:hover{background:var(--gps-primary-hover, #033830)}.example-section{margin:16px 0}.example-section h3{margin-bottom:10px;color:var(--gps-text-dark, #333333);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.language-tabs{display:flex;gap:4px;margin-bottom:0;background:#2d3748;border-radius:6px 6px 0 0;padding:6px 8px 0}.language-tab{padding:6px 12px;background:transparent;border:none;color:#a0aec0;font-size:10px;font-weight:500;cursor:pointer;border-radius:4px 4px 0 0;transition:all .2s;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.language-tab:hover{color:#fff;background:#ffffff1a}.language-tab.active{color:#fff;background:#1a2332}@media (max-width: 768px){.api-docs-container{padding:0 12px}.api-docs-tabs{overflow-x:auto;gap:4px;-webkit-overflow-scrolling:touch}.tab-button{white-space:nowrap;padding:8px 12px;font-size:10px}.api-docs-content{padding:16px}.api-architecture-flow{flex-direction:column;align-items:stretch}.api-flow-step{min-width:auto;max-width:none}.api-flow-arrow{transform:rotate(90deg);align-self:center}.params-table{font-size:10px}.params-table th,.params-table td{padding:8px 10px}.endpoint-header{flex-direction:column;align-items:flex-start;gap:8px}.code-block{padding:12px}.code-block pre{font-size:10px}.copy-button{position:static;margin-bottom:10px;display:block}}@media (max-width: 480px){.docs-section h2{font-size:14px}.info-card,.warning-card{padding:12px 14px}.format-tags{gap:4px}.format-tag{font-size:9px;padding:3px 8px}}.failed-jobs-container{padding:0}.filters-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.filter-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:.5rem;min-width:150px}.filter-group label{font-weight:500;font-size:.875rem;color:#374151}.filter-group select,.filter-group input{padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem}.jobs-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto;margin-bottom:1.5rem}.jobs-table th{background:#f9fafb;padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.875rem;color:#374151;border-bottom:2px solid #e5e7eb}.jobs-table td{padding:1rem;border-bottom:1px solid #e5e7eb;font-size:.875rem}.jobs-table tbody tr:hover{background:#f9fafb}.error-message-cell{max-width:400px}.remediation-hint{margin-top:.5rem;padding:.5rem;background:#fef3c7;border-left:3px solid #f59e0b;border-radius:4px}.remediation-hint small{color:#92400e;font-size:.75rem}.status-badge,.error-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.badge-success{background:#d1fae5;color:#065f46}.badge-secondary{background:#e5e7eb;color:#374151}.badge-password{background:#dbeafe;color:#1e40af}.action-buttons{display:flex;gap:.5rem}.btn-icon{padding:.5rem;border:none;background:transparent;cursor:pointer;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-icon:hover{background:#f3f4f6}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.btn-password{color:#3b82f6}.btn-password:hover{background:#dbeafe}.btn-retry{color:#10b981}.btn-retry:hover{background:#d1fae5}.btn-delete{color:#ef4444}.btn-delete:hover{background:#fee2e2}.modal-content{background:#fff;padding:2rem;border-radius:8px;max-width:500px;width:90%;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-content h3{margin-top:0;margin-bottom:1rem;color:#111827}.modal-content p{margin-bottom:1rem;color:#6b7280;font-size:.875rem}.remediation-text{padding:.75rem;background:#fef3c7;border-left:3px solid #f59e0b;border-radius:4px;color:#92400e!important}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.875rem;color:#374151}.form-group input{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:4px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.error-message{padding:1rem;background:#fee2e2;border:1px solid #fecaca;border-radius:4px;color:#991b1b;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem}.workflow-canvas-container{display:flex;flex-direction:column;height:100vh;background:#f5f5f5}.workflow-canvas-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000001a}.workflow-canvas-header h1{margin:0;font-size:1.5rem;color:#333}.workflow-controls{display:flex;gap:.5rem;align-items:center}.workflow-select{padding:.5rem 1rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;min-width:200px}.workflow-canvas-body{display:flex;flex:1;overflow:hidden}.reactflow-wrapper{flex:1;height:100%;position:relative!important}.reactflow-wrapper *{box-sizing:border-box!important}.reactflow-wrapper .react-flow{position:relative!important;width:100%!important;height:100%!important}.reactflow-wrapper .react-flow__renderer{position:absolute!important;width:100%!important;height:100%!important}.reactflow-wrapper .react-flow__viewport{position:relative!important;transform-origin:0 0!important;z-index:1!important;pointer-events:none!important}.reactflow-wrapper .react-flow__nodes{position:absolute!important;width:1px!important;height:1px!important;pointer-events:none!important}.reactflow-wrapper .react-flow__node{position:absolute!important;-webkit-user-select:none!important;user-select:none!important;pointer-events:all!important;transform-origin:0 0!important;box-sizing:border-box!important;z-index:10!important}.reactflow-wrapper .react-flow__edges{position:absolute!important;width:1px!important;height:1px!important;pointer-events:none!important}.reactflow-wrapper .react-flow__edge{position:absolute!important;pointer-events:visibleStroke!important;z-index:5!important}.reactflow-wrapper .react-flow__controls,.reactflow-wrapper .react-flow__minimap{position:absolute!important;z-index:1000!important}.reactflow-wrapper .react-flow__node-custom{background:#fff!important;border:2px solid #888!important;border-radius:8px!important;padding:10px!important;min-width:150px!important}.workflow-info{background:#fff;padding:1rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.workflow-info strong{display:block;margin-bottom:.5rem;font-size:1rem;color:#333}.workflow-stats{font-size:.85rem;color:#666}.execution-result{position:fixed;bottom:2rem;right:2rem;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:250px}.execution-result h3{margin:0 0 1rem;font-size:1.1rem;color:#333}.execution-result div{padding:.3rem 0;font-size:.9rem;color:#555}.btn-primary,.btn-secondary,.btn-success,.btn-danger{padding:.5rem 1.25rem;border:none;border-radius:4px;font-size:.9rem;cursor:pointer;transition:all .2s}.btn-primary{background:#4caf50;color:#fff}.btn-primary:hover:not(:disabled){background:#45a049}.btn-secondary{background:#888;color:#fff}.btn-secondary:hover:not(:disabled){background:#777}.btn-success{background:#2196f3;color:#fff}.btn-success:hover:not(:disabled){background:#0b7dda}.btn-danger{background:#f44336;color:#fff}.btn-danger:hover:not(:disabled){background:#da190b}button:disabled{opacity:.5;cursor:not-allowed}.asset-palette{width:300px;background:#fff;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;height:100%}.palette-header{padding:1rem;border-bottom:1px solid #e0e0e0}.palette-header h3{margin:0 0 .75rem;font-size:1.1rem;color:#333}.search-input{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.search-input:focus{outline:none;border-color:#4caf50}.palette-tabs{display:flex;border-bottom:1px solid #e0e0e0}.palette-tabs .tab{flex:1;padding:.75rem .5rem;border:none;background:none;cursor:pointer;font-size:.85rem;color:#666;transition:all .2s;border-bottom:2px solid transparent}.palette-tabs .tab:hover{background:#f5f5f5}.palette-tabs .tab.active{color:#4caf50;border-bottom-color:#4caf50;font-weight:600}.palette-content{flex:1;overflow-y:auto;padding:.5rem}.asset-list{display:flex;flex-direction:column;gap:.5rem}.asset-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;cursor:grab;transition:all .2s}.asset-item:hover{background:#f0f0f0;border-color:#4caf50;box-shadow:0 2px 4px #0000001a}.asset-item:active{cursor:grabbing}.asset-icon{font-size:1.5rem;flex-shrink:0}.asset-info{flex:1;min-width:0}.asset-name{font-weight:600;font-size:.9rem;color:#333;margin-bottom:.25rem;word-wrap:break-word}.asset-description{font-size:.75rem;color:#666;line-height:1.3;word-wrap:break-word}.no-assets{padding:2rem 1rem;text-align:center;color:#999;font-size:.9rem}.palette-footer{padding:.75rem 1rem;border-top:1px solid #e0e0e0;background:#f9f9f9;text-align:center}.palette-footer small{color:#666;font-size:.75rem}.workflow-node{background:#fff;border:2px solid #ddd;border-radius:8px;min-width:200px;box-shadow:0 2px 8px #0000001a;transition:all .2s}.workflow-node:hover{box-shadow:0 4px 12px #00000026}.workflow-node.selected{border-color:#4caf50;box-shadow:0 4px 12px #4caf504d}.node-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#f5f5f5;border-bottom:1px solid #e0e0e0;border-radius:6px 6px 0 0}.node-icon{font-size:1.25rem}.node-type{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#666}.node-body{padding:1rem}.node-title{font-weight:600;font-size:.95rem;color:#333;margin-bottom:.5rem;word-wrap:break-word}.node-description{font-size:.75rem;color:#666;margin-bottom:.5rem;line-height:1.4}.node-id{font-size:.7rem;color:#999;font-family:monospace}.node-handle{width:12px;height:12px;background:#4caf50;border:2px solid white}.node-handle:hover{background:#45a049}.mapping-node{border-color:#2196f3}.mapping-node .node-header{background:linear-gradient(135deg,#e3f2fd,#bbdefb)}.mapping-node.selected{border-color:#2196f3;box-shadow:0 4px 12px #2196f34d}.mapping-group-node{border-color:#ff9800}.mapping-group-node .node-header{background:linear-gradient(135deg,#fff3e0,#ffe0b2)}.mapping-group-node.selected{border-color:#ff9800;box-shadow:0 4px 12px #ff98004d}.workflow-node-type{border-color:#9c27b0}.workflow-node-type .node-header{background:linear-gradient(135deg,#f3e5f5,#e1bee7)}.workflow-node-type.selected{border-color:#9c27b0;box-shadow:0 4px 12px #9c27b04d}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:6px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0003;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--gps-border-light, #e2e8f0)}.modal-header h2{margin:0;font-size:13px;font-weight:600;color:var(--gps-primary-teal, #025043);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.modal-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--gps-text-muted, #666666);padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px}.modal-close:hover{background:var(--gps-bg-page, #f7fafc);color:var(--gps-text-dark, #333333)}.modal-content form{padding:16px 20px}.form-group{margin-bottom:14px}.form-group label{display:block;margin-bottom:4px;font-weight:600;font-size:10px;color:var(--gps-text-muted, #666666);font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:8px 10px;border:1px solid var(--gps-border-light, #e2e8f0);border-radius:4px;font-size:11px;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--gps-primary-teal, #025043);box-shadow:0 0 0 2px #0250431a}.form-group textarea{resize:vertical;min-height:70px}.help-text{display:block;margin-top:4px;font-size:10px;color:var(--gps-text-muted, #666666);line-height:1.4;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:12px;border-top:1px solid var(--gps-border-light, #e2e8f0)}.modal-actions .btn-primary,.modal-actions .btn-secondary{padding:6px 14px;font-size:11px;font-weight:500;border-radius:4px;cursor:pointer;transition:all .2s;font-family:var(--gps-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)}.modal-actions .btn-primary{background:var(--gps-primary-teal, #025043);color:#fff;border:none}.modal-actions .btn-primary:hover:not(:disabled){background:var(--gps-primary-hover, #033830)}.modal-actions .btn-secondary{background:#fff;color:var(--gps-text-dark, #333333);border:1px solid var(--gps-border-light, #e2e8f0)}.modal-actions .btn-secondary:hover:not(:disabled){background:var(--gps-bg-page, #f7fafc)}.workflow-canvas-standalone{position:fixed;top:60px;left:0;right:0;bottom:0;display:flex;flex-direction:column;background:#f5f5f5}.workflow-header-bar{height:60px;background:#fff;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;align-items:center;padding:0 20px;box-shadow:0 2px 4px #0000001a}.workflow-header-bar h2{margin:0;font-size:1.5rem;color:#333}.workflow-actions{display:flex;gap:10px}.workflow-main-area{flex:1;display:flex;position:relative;width:100%;height:100%}.workflow-sidebar{width:250px;background:#fff;border-right:1px solid #ddd;padding:20px;overflow-y:auto}.workflow-sidebar h3{margin:0 0 20px;font-size:1.1rem;color:#555}.workflow-components{display:flex;flex-direction:column;gap:10px}.workflow-component{display:flex;align-items:center;gap:10px;padding:12px;background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;cursor:move;transition:all .2s ease}.workflow-component:hover{background:#e9ecef;border-color:#adb5bd;transform:translate(5px)}.workflow-component:active{cursor:grabbing}.component-icon{font-size:1.5rem}.workflow-canvas-wrapper{flex:1;position:relative;width:100%;height:100%}.workflow-canvas-wrapper .react-flow{width:100%;height:100%}.workflow-canvas-wrapper .react-flow__node{cursor:grab}.workflow-canvas-wrapper .react-flow__node:active{cursor:grabbing}.workflow-canvas-wrapper .react-flow__node-default{background:#fff;border:2px solid #555;border-radius:5px;padding:10px;font-size:12px;text-align:center}.workflow-canvas-wrapper .react-flow__handle{width:10px;height:10px;background:#555;border:2px solid #fff}.workflow-canvas-standalone *{box-sizing:border-box}.workflow-canvas-wrapper .react-flow__minimap,.workflow-canvas-wrapper .react-flow__controls{z-index:10}.workflow-builder{display:flex;flex-direction:column;height:100vh;background:#f5f5f5;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.workflow-builder-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 1px 3px #0000000d}.workflow-builder-header-left h1{margin:0;font-size:20px;font-weight:600;color:#025043}.workflow-builder-header-left p{margin:4px 0 0;font-size:12px;color:#666}.workflow-builder-header-actions{display:flex;gap:8px}.workflow-builder-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;font-size:11px;font-weight:500;border:none;border-radius:4px;cursor:pointer;transition:all .2s}.workflow-builder-btn:disabled{opacity:.5;cursor:not-allowed}.workflow-builder-btn-primary{background:#025043;color:#fff}.workflow-builder-btn-primary:hover:not(:disabled){background:#013d33}.workflow-builder-btn-secondary{background:#fff;color:#025043;border:1px solid #025043}.workflow-builder-btn-secondary:hover:not(:disabled){background:#f0f9f7}.workflow-builder-btn-close{background:#6b7280;color:#fff}.workflow-builder-btn-close:hover:not(:disabled){background:#4b5563}.workflow-builder-alert{padding:12px 24px;font-size:12px;font-weight:500}.workflow-builder-alert-error{background:#fee;color:#c00;border-bottom:1px solid #fcc}.workflow-builder-alert-success{background:#efe;color:#060;border-bottom:1px solid #cfc}.workflow-builder-content{display:flex;flex:1;overflow:hidden;position:relative}.workflow-builder-palette{width:200px;background:#fff;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;overflow:hidden}.workflow-builder-palette-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #e0e0e0}.workflow-builder-palette-header h3{margin:0;font-size:14px;font-weight:600;color:#025043}.workflow-builder-close-btn{background:none;border:none;font-size:24px;color:#999;cursor:pointer;line-height:1;padding:0;width:24px;height:24px}.workflow-builder-close-btn:hover{color:#333}.workflow-builder-search{position:relative;padding:12px 16px;border-bottom:1px solid #e0e0e0}.workflow-builder-search-icon{position:absolute;left:28px;top:50%;transform:translateY(-50%);color:#999;font-size:12px}.workflow-builder-search-input{width:100%;padding:8px 8px 8px 28px;border:1px solid #ddd;border-radius:4px;font-size:12px;font-family:Inter,sans-serif}.workflow-builder-search-input:focus{outline:none;border-color:#025043}.workflow-builder-palette-content{flex:1;overflow-y:auto}.workflow-builder-palette-section{border-bottom:1px solid #e0e0e0}.workflow-builder-palette-section-header{display:flex;align-items:center;padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;background:#f9f9f9;transition:background .2s}.workflow-builder-palette-section-header:hover{background:#f0f0f0}.workflow-builder-palette-section-toggle{font-size:8px;color:#666;margin-right:8px;width:12px;display:inline-block}.workflow-builder-palette-section-title{font-family:Inter,sans-serif;font-size:10px;font-weight:600;color:#555}.workflow-builder-palette-section-items{padding:4px 0}.workflow-builder-palette-item{font-family:Inter,sans-serif;font-size:8px;font-weight:500;color:#025043;padding:6px 12px 6px 28px;cursor:grab;transition:all .15s;border-left:2px solid transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-builder-palette-item:hover{background:#f0f9f7;border-left-color:#025043}.workflow-builder-palette-item:active{cursor:grabbing;background:#e0f2ef}.workflow-builder-palette-empty{padding:16px 12px;text-align:center;font-family:Inter,sans-serif;font-size:8px;font-weight:500;color:#999}.workflow-builder-canvas-wrapper{flex:1;position:relative;background:#fafafa}.workflow-builder-show-palette-btn{position:absolute;top:16px;left:16px;z-index:5;background:#fff;border:1px solid #025043;color:#025043;padding:8px 16px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;box-shadow:0 2px 4px #0000001a}.workflow-builder-show-palette-btn:hover{background:#f0f9f7}.workflow-builder-config{width:215px;background:#fff;border-left:1px solid #e0e0e0;display:flex;flex-direction:column;overflow:hidden}.workflow-builder-config-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #e0e0e0}.workflow-builder-config-header h3{margin:0;font-size:14px;font-weight:600;color:#025043}.workflow-builder-config-content{flex:1;overflow-y:auto;padding:16px}.workflow-builder-form-group{margin-bottom:20px}.workflow-builder-form-group label{display:block;font-size:11px;font-weight:600;color:#555;margin-bottom:6px}.workflow-builder-input,.workflow-builder-textarea,.workflow-builder-select{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;font-size:12px;font-family:Inter,sans-serif}.workflow-builder-input:focus,.workflow-builder-textarea:focus,.workflow-builder-select:focus{outline:none;border-color:#025043}.workflow-builder-textarea{resize:vertical}.workflow-builder-help-text{font-size:10px;color:#666;margin-top:4px;line-height:1.4}.workflow-builder-info-box{display:flex;gap:12px;padding:12px;background:#e8f5f3;border:1px solid #b3ddd6;border-radius:6px;margin-bottom:16px}.workflow-builder-info-icon{font-size:18px;flex-shrink:0}.workflow-builder-info-box strong{display:block;font-size:11px;font-weight:600;color:#025043;margin-bottom:4px}.workflow-builder-info-box p{font-size:10px;color:#333;margin:0;line-height:1.5}.workflow-builder-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;padding-top:16px;border-top:1px solid #e0e0e0}.workflow-builder-stat{text-align:center}.workflow-builder-stat-label{display:block;font-size:10px;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.workflow-builder-stat-value{display:block;font-size:24px;font-weight:600;color:#025043}.workflow-builder-show-config-btn{position:absolute;top:16px;right:16px;z-index:5;background:#fff;border:1px solid #025043;color:#025043;padding:8px 16px;border-radius:4px;font-size:12px;cursor:pointer;box-shadow:0 2px 4px #0000001a}.workflow-builder-show-config-btn:hover{background:#f0f9f7}.workflow-job-node{background:#fff;border:2px solid #025043;border-radius:6px;padding:12px;min-width:200px;box-shadow:0 2px 8px #0000001a;font-family:Inter,sans-serif}.workflow-job-node-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.workflow-job-node-icon{font-size:16px}.workflow-job-node-title{font-size:12px;font-weight:600;color:#025043;flex:1}.workflow-job-node-description{font-size:10px;color:#666;margin-bottom:8px;line-height:1.4}.workflow-job-node-footer{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid #e0e0e0}.workflow-job-node-id{font-size:10px;color:#999;font-family:Courier New,monospace}.workflow-job-node-success{border-color:#28a745;background:#f0fff4}.workflow-job-node-error{border-color:#dc3545;background:#fff5f5}.workflow-job-node-status-badge{font-size:14px;font-weight:700;margin-left:auto}.workflow-job-node-status-success{color:#28a745}.workflow-job-node-status-error{color:#dc3545;cursor:help}.workflow-job-node-error-message{font-size:10px;color:#dc3545;background:#fff5f5;padding:6px;border-radius:3px;margin-top:6px;margin-bottom:6px;border-left:2px solid #dc3545;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:help}.workflow-builder .react-flow__node{outline:none!important}.workflow-builder .react-flow__node.selected .workflow-job-node{border-color:#025043;box-shadow:0 0 0 3px #02504333}.workflow-builder .react-flow__edge.selected path{stroke:#025043;stroke-width:2}.workflow-builder .react-flow__edge path{stroke:#666;stroke-width:2}.workflow-builder .react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}@keyframes dashdraw{to{stroke-dashoffset:-10}}.workflow-builder-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.workflow-builder-modal{background:#fff;border-radius:8px;width:90%;max-width:500px;box-shadow:0 10px 40px #0003;font-family:Inter,sans-serif}.workflow-builder-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e0e0e0}.workflow-builder-modal-header h3{margin:0;font-size:18px;font-weight:600;color:#025043}.workflow-builder-modal-close{background:none;border:none;font-size:32px;color:#999;cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.workflow-builder-modal-close:hover{color:#333}.workflow-builder-modal-content{padding:24px}.workflow-builder-modal-message{font-size:14px;color:#333;margin:0 0 12px;line-height:1.5}.workflow-builder-modal-subtitle{font-size:13px;color:#666;margin:0 0 24px;line-height:1.5}.workflow-builder-modal-actions{display:flex;gap:12px;justify-content:flex-end}.workflow-builder-modal-actions .workflow-builder-btn{min-width:140px;justify-content:center}.workflow-start-node{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#22c55e,#16a34a);border:3px solid #15803d;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #22c55e4d;font-family:Inter,sans-serif;position:relative}.workflow-start-node-label{color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.workflow-start-node-handle{width:10px;height:10px;background:#15803d;border:2px solid white}.workflow-stop-node{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#ef4444,#dc2626);border:3px solid #b91c1c;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #ef44444d;font-family:Inter,sans-serif;position:relative}.workflow-stop-node-label{color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.workflow-stop-node-handle{width:10px;height:10px;background:#b91c1c;border:2px solid white}.workflow-builder-palette-control-start,.workflow-builder-palette-control-stop{display:flex;align-items:center;gap:8px}.workflow-builder-palette-control-icon{font-size:16px}.workflow-builder-palette-start-icon{color:#22c55e}.workflow-builder-palette-stop-icon{color:#ef4444}.workflow-builder-console{position:fixed;bottom:0;left:0;right:0;background:#1e1e1e;border-top:2px solid #333;z-index:1000;height:40px;font-family:Consolas,Monaco,Courier New,monospace;display:flex;flex-direction:column}.workflow-builder-console-open{height:auto}.workflow-builder-console-resize-handle{position:absolute;top:-4px;left:0;right:0;height:8px;cursor:ns-resize;background:transparent;z-index:10}.workflow-builder-console-resize-handle:hover,.workflow-builder-console-resize-handle:active{background:linear-gradient(to bottom,rgba(59,130,246,.5),transparent)}.workflow-builder-console-resize-handle:before{content:"";position:absolute;top:3px;left:50%;transform:translate(-50%);width:40px;height:4px;background:#555;border-radius:2px;opacity:0;transition:opacity .2s}.workflow-builder-console-resize-handle:hover:before{opacity:1}.workflow-builder-console-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:#2d2d2d;cursor:pointer;border-bottom:1px solid #333}.workflow-builder-console-header:hover{background:#363636}.workflow-builder-console-title{display:flex;align-items:center;gap:8px;color:#ccc;font-size:12px;font-weight:500}.workflow-builder-console-executing{color:#fbbf24;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.workflow-builder-console-actions{display:flex;align-items:center;gap:12px;color:#888}.workflow-builder-console-clear-btn{background:transparent;border:1px solid #555;color:#888;padding:2px 8px;font-size:10px;border-radius:3px;cursor:pointer;transition:all .2s}.workflow-builder-console-clear-btn:hover{background:#444;color:#fff}.workflow-builder-console-content{flex:1;overflow-y:auto;padding:8px 16px;background:#1e1e1e}.workflow-builder-console-empty{color:#666;font-size:12px;padding:20px 0;text-align:center}.workflow-builder-console-line{display:flex;gap:8px;padding:2px 0;font-size:11px;line-height:1.5}.workflow-builder-console-timestamp{color:#666;flex-shrink:0}.workflow-builder-console-message{word-break:break-word}.workflow-builder-console-info .workflow-builder-console-message{color:#9cdcfe}.workflow-builder-console-success .workflow-builder-console-message{color:#4ec9b0}.workflow-builder-console-error .workflow-builder-console-message{color:#f14c4c}.workflow-builder-console-warn .workflow-builder-console-message{color:#fbbf24}.workflow-builder-btn-console{background:#2d2d2d;color:#ccc;border:1px solid #444}.workflow-builder-btn-console:hover{background:#3d3d3d;color:#fff}.workflow-builder-btn-console.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.workflow-builder-console-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;font-size:10px;font-weight:600;background:#ef4444;color:#fff;border-radius:9px}.workflow-builder-console-run{margin-bottom:8px}.workflow-builder-console-run-header{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#2a2a2a;border-radius:4px;margin-bottom:4px;font-size:11px}.workflow-builder-console-run-running{border-left:3px solid #fbbf24}.workflow-builder-console-run-success{border-left:3px solid #4ec9b0}.workflow-builder-console-run-failed{border-left:3px solid #f14c4c}.workflow-builder-console-run-indicator{font-size:12px}.workflow-builder-console-run-name{font-weight:600;color:#ddd;flex:1}.workflow-builder-console-run-time{color:#888;font-size:10px}.workflow-builder-console-run-logs{padding-left:12px;border-left:1px solid #333;margin-left:8px}.workflow-builder-console-run-separator{height:1px;background:#333;margin:12px 0}.workflow-manager-page{padding:0}.workflow-manager-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}.workflow-manager-filters{display:flex;gap:.75rem;align-items:center}.filter-select{padding:.375rem .625rem;border:1px solid #d1d5db;border-radius:.25rem;font-size:10px;font-weight:500;color:#374151;background:#fff;min-width:180px;font-family:Inter,sans-serif;cursor:pointer}.filter-select:hover{border-color:#025043}.filter-select:focus{outline:none;border-color:#025043;box-shadow:0 0 0 1px #025043}.btn-create-workflow{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#025043;color:#fff;border:none;border-radius:.375rem;font-size:10px;font-weight:600;font-family:Inter,sans-serif;cursor:pointer;transition:background-color .15s ease;white-space:nowrap}.btn-create-workflow:hover{background:#014037}.btn-create-workflow svg{font-size:12px}.workflow-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:.25rem;overflow:hidden}.workflow-table{width:100%;border-collapse:collapse;font-family:Inter,sans-serif}.workflow-table thead{background:#f9fafb;border-bottom:1px solid #e5e7eb}.workflow-table th{padding:.5rem .75rem;text-align:left;font-weight:500;font-size:10px;color:#6b7280;font-family:Inter,sans-serif;text-transform:none!important}.workflow-table tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .1s ease}.workflow-table tbody tr:last-child{border-bottom:none}.workflow-table tbody tr:hover{background:#f9fafb}.workflow-table td{padding:.5rem .75rem;font-size:10px;font-weight:500;color:#374151;vertical-align:middle;font-family:Inter,sans-serif}.workflow-name{color:#111827;font-weight:600}.workflow-type{color:#6b7280}.workflow-schedule{color:#374151;font-family:Courier New,monospace;font-size:10px}.status-badge{display:inline-block;padding:.125rem .25rem!important;border-radius:.125rem;font-size:10px!important;font-weight:500;font-family:Inter,sans-serif}.status-active{background:#d1fae5;color:#065f46}.status-inactive{background:#fee2e2;color:#991b1b}.status-no-schedule{background:#f3f4f6;color:#6b7280}.workflow-datetime{color:#6b7280;font-size:10px}.workflow-actions{display:flex;gap:.25rem;align-items:center}.action-icon{background:none;border:none;padding:.25rem;cursor:pointer;border-radius:.25rem;transition:background-color .15s ease;display:inline-flex;align-items:center;justify-content:center;color:#6b7280}.action-icon:hover:not(:disabled){background:#f3f4f6}.action-icon:disabled{cursor:not-allowed;opacity:.5}.icon-active{color:#059669}.icon-inactive{color:#9ca3af}.icon-disabled{color:#d1d5db}.icon-edit{color:#3b82f6}.icon-edit:hover{color:#2563eb}.icon-execute{color:#025043}.icon-execute:hover{color:#014037}.icon-delete{color:#dc2626}.icon-delete:hover{color:#991b1b}.action-icon:hover .icon-active{color:#047857}.action-icon:hover .icon-inactive{color:#6b7280}.empty-state{text-align:center;padding:2rem 1.5rem;background:#fff;border-radius:.25rem;border:1px solid #e5e7eb}.empty-state p{color:#6b7280;font-size:10px;font-weight:500;font-family:Inter,sans-serif}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.visual-mapping-canvas-container{width:100%;height:calc(100vh - 60px);display:flex;flex-direction:column;font-family:Inter,sans-serif;font-size:10px;font-weight:500;color:#333}.visual-mapping-toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:#fff;border-bottom:1px solid #e2e8f0;min-height:48px}.visual-mapping-toolbar-left{display:flex;align-items:center;gap:8px}.visual-mapping-title{font-family:Inter,sans-serif;font-size:12px;font-weight:700;color:#025043;margin:0}.visual-mapping-name-display{font-family:Inter,sans-serif;font-size:10px;font-weight:500;color:#666}.visual-mapping-toolbar-right{display:flex;gap:8px}.visual-mapping-toolbar-btn{font-family:Inter,sans-serif;font-size:10px;font-weight:600;padding:6px 12px;border:1px solid #cbd5e0;background:#fff;color:#333;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .2s}.visual-mapping-toolbar-btn:hover{background:#f7fafc;border-color:#025043}.visual-mapping-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.visual-mapping-toolbar-btn-primary{background:#025043;color:#fff;border-color:#025043}.visual-mapping-toolbar-btn-primary:hover{background:#033830}.visual-mapping-toolbar-btn-success{background:#38a169;color:#fff;border-color:#38a169}.visual-mapping-toolbar-btn-success:hover{background:#2f855a}.visual-mapping-toolbar-btn-danger{color:#e53e3e;border-color:#e53e3e}.visual-mapping-toolbar-btn-danger:hover{background:#fff5f5}.visual-mapping-toolbar-btn-info{background:#3182ce;color:#fff;border-color:#3182ce}.visual-mapping-toolbar-btn-info:hover{background:#2c5aa0}.visual-mapping-error{background:#fed7d7;color:#9b2c2c;padding:8px 16px;font-family:Inter,sans-serif;font-size:10px;font-weight:500;border-left:3px solid #e53e3e}.visual-mapping-success{background:#c6f6d5;color:#22543d;padding:8px 16px;font-family:Inter,sans-serif;font-size:10px;font-weight:500;border-left:3px solid #38a169}.visual-mapping-connection-error{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#fed7d7;color:#9b2c2c;padding:12px 20px;border-radius:6px;font-family:Inter,sans-serif;font-size:12px;font-weight:500;box-shadow:0 4px 12px #00000026;z-index:10000;display:flex;align-items:center;animation:slideUp .3s ease-out;border:1px solid #fc8181}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.visual-mapping-validation-panel{background:#fff5f5;border:1px solid #fc8181;border-radius:4px;margin:8px 16px;box-shadow:0 2px 4px #0000001a}.visual-mapping-validation-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#fed7d7;border-bottom:1px solid #fc8181;cursor:pointer}.visual-mapping-validation-header h3{font-family:Inter,sans-serif;font-size:10px;font-weight:600;color:#9b2c2c;margin:0;text-transform:uppercase}.visual-mapping-validation-close{background:none;border:none;color:#9b2c2c;font-size:18px;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.visual-mapping-validation-close:hover{color:#742a2a}.visual-mapping-validation-errors{padding:12px;max-height:200px;overflow-y:auto}.visual-mapping-validation-errors ul{list-style:none;padding:0;margin:0}.visual-mapping-validation-errors li{font-family:Inter,sans-serif;font-size:10px;color:#742a2a;padding:4px 0 4px 16px;position:relative}.visual-mapping-validation-errors li:before{content:"•";position:absolute;left:4px;color:#e53e3e;font-weight:700}.visual-mapping-content{display:flex;flex:1;overflow:hidden}.visual-mapping-palette{width:220px;background:#f7fafc;border-right:1px solid #e2e8f0;overflow-y:auto;padding:12px;position:relative;transition:width .3s ease}.visual-mapping-palette-header h3{font-family:Inter,sans-serif;font-size:12px;font-weight:700;color:#025043;margin:0 0 12px;text-transform:none}.visual-mapping-palette-section{margin-bottom:16px}.visual-mapping-palette-section h4{font-family:Inter,sans-serif;font-size:10px;font-weight:700;color:#4a5568;margin:0 0 8px;text-transform:none}.visual-mapping-palette-item{width:100%;font-family:Inter,sans-serif;font-size:10px;font-weight:500;padding:8px 12px;margin-bottom:6px;background:#fff;border:1px solid #cbd5e0;border-radius:4px;cursor:pointer;text-align:left;display:flex;align-items:center;gap:8px;color:#333;transition:all .2s}.visual-mapping-palette-item:hover{background:#025043;color:#fff;border-color:#025043;transform:translate(2px)}.visual-mapping-palette-item svg{font-size:12px}.visual-mapping-sidebar-section{margin-bottom:16px;background:#fff;border:1px solid #e2e8f0;border-radius:4px}.visual-mapping-sidebar-header{font-family:Inter,sans-serif;font-size:12px;font-weight:700;color:#025043;padding:10px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;background:#f7fafc;border-bottom:1px solid #e2e8f0;transition:background .2s}.visual-mapping-sidebar-header:hover{background:#edf2f7}.visual-mapping-sidebar-header h3{margin:0;font-size:12px;font-weight:700}.visual-mapping-sidebar-header svg{font-size:10px;color:#025043}.visual-mapping-sidebar-content{padding:12px}.visual-mapping-sidebar-toggle{position:absolute;top:12px;right:-12px;width:24px;height:24px;background:#025043;color:#fff;border:1px solid #e2e8f0;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;z-index:10;transition:all .2s;box-shadow:0 2px 4px #0000001a}.visual-mapping-sidebar-toggle:hover{background:#033830;transform:scale(1.1)}.visual-mapping-palette.collapsed{width:40px;padding:12px 4px;overflow:visible}.visual-mapping-palette.collapsed .visual-mapping-sidebar-toggle{right:8px}.visual-mapping-canvas-wrapper{flex:1;position:relative;background:#fafafa}.visual-mapping-panel{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:12px;box-shadow:0 2px 8px #0000001a;min-width:250px}.visual-mapping-config-panel{display:flex;flex-direction:column;gap:10px}.visual-mapping-form-group{display:flex;flex-direction:column;gap:4px}.visual-mapping-form-group label{font-family:Inter,sans-serif;font-size:10px;font-weight:700;color:#025043;text-transform:none}.visual-mapping-input,.visual-mapping-textarea,.visual-mapping-select{font-family:Inter,sans-serif;font-size:10px;font-weight:500;padding:6px 8px;border:1px solid #cbd5e0;border-radius:4px;background:#fff;color:#333}.visual-mapping-input:focus,.visual-mapping-textarea:focus,.visual-mapping-select:focus{outline:none;border-color:#025043;box-shadow:0 0 0 2px #0250431a}.visual-mapping-textarea{resize:vertical;min-height:50px}.visual-mapping-node{font-family:Inter,sans-serif;padding:12px;border-radius:6px;border:2px solid #cbd5e0;background:#fff;min-width:180px;box-shadow:0 2px 6px #0000001a;transition:all .2s}.visual-mapping-node:hover{box-shadow:0 4px 12px #00000026}.visual-mapping-node.selected{border-color:#025043;box-shadow:0 0 0 3px #02504333}.visual-mapping-node-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.visual-mapping-node-icon{font-size:14px;color:#025043}.visual-mapping-node-title{font-family:Inter,sans-serif;font-size:12px;font-weight:700;color:#025043;text-transform:none}.visual-mapping-node-description{font-family:Inter,sans-serif;font-size:10px;font-weight:500;color:#666;margin-bottom:8px}.visual-mapping-node-detail{font-family:Inter,sans-serif;font-size:10px;font-weight:500;color:#4a5568;margin-bottom:4px}.visual-mapping-node-detail strong{font-weight:700;color:#025043}.visual-mapping-node-button{font-family:Inter,sans-serif;font-size:10px;font-weight:600;width:100%;padding:6px;margin-top:8px;background:#025043;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:all .2s}.visual-mapping-node-button:hover{background:#033830}.visual-mapping-node-config{border-color:#805ad5}.visual-mapping-node-config .visual-mapping-node-icon,.visual-mapping-node-config .visual-mapping-node-title{color:#805ad5}.visual-mapping-node-config .visual-mapping-node-button{background:#805ad5}.visual-mapping-node-config .visual-mapping-node-button:hover{background:#6b46c1}.visual-mapping-node-source{border-color:#3182ce}.visual-mapping-node-source .visual-mapping-node-icon,.visual-mapping-node-source .visual-mapping-node-title{color:#3182ce}.visual-mapping-node-source .visual-mapping-node-button{background:#3182ce}.visual-mapping-node-source .visual-mapping-node-button:hover{background:#2c5282}.visual-mapping-node-expression{border-color:#dd6b20}.visual-mapping-node-expression .visual-mapping-node-icon,.visual-mapping-node-expression .visual-mapping-node-title{color:#dd6b20}.visual-mapping-node-expression .visual-mapping-node-button{background:#dd6b20}.visual-mapping-node-expression .visual-mapping-node-button:hover{background:#c05621}.visual-mapping-node-rdm-lookup{border-color:#38a169}.visual-mapping-node-rdm-lookup .visual-mapping-node-icon,.visual-mapping-node-rdm-lookup .visual-mapping-node-title{color:#38a169}.visual-mapping-node-rdm-lookup .visual-mapping-node-button{background:#38a169}.visual-mapping-node-rdm-lookup .visual-mapping-node-button:hover{background:#2f855a}.visual-mapping-node-target{border-color:#025043}.visual-mapping-node-target .visual-mapping-node-icon,.visual-mapping-node-target .visual-mapping-node-title{color:#025043}.visual-mapping-node-target .visual-mapping-node-button{background:#025043}.visual-mapping-node-target .visual-mapping-node-button:hover{background:#033830}.visual-mapping-node-handle{width:10px;height:10px;background:#025043;border:2px solid white}.visual-mapping-node-handle:hover{background:#033830;transform:scale(1.2)}.react-flow__node{visibility:visible!important;opacity:1!important;pointer-events:all!important}.react-flow__node .visual-mapping-node{visibility:visible!important;opacity:1!important}.react-flow__node.selected .visual-mapping-node{border-color:#025043}.react-flow__edge.selected .react-flow__edge-path{stroke:#025043;stroke-width:2px}.react-flow__controls-button{font-family:Inter,sans-serif;font-size:10px}.react-flow__minimap{border:1px solid #e2e8f0}.node-status-pending{border:2px solid #cbd5e0!important;opacity:.7}.node-status-running{border:2px solid #025043!important;animation:pulse-border 1.5s ease-in-out infinite}@keyframes pulse-border{0%,to{box-shadow:0 0 #02504366}50%{box-shadow:0 0 0 8px #02504300}}.node-status-completed{border:2px solid #0f9960!important}.node-status-failed{border:2px solid #d32f2f!important}.node-status-skipped{border:2px solid #999!important;opacity:.5}.visual-mapping-node-status-badge{position:absolute;top:-8px;right:-8px;font-family:Inter,sans-serif;font-size:9px;font-weight:600;padding:2px 6px;border-radius:10px;background:#fff;border:1px solid currentColor;display:flex;align-items:center;gap:2px;z-index:10}.visual-mapping-node-status-badge.status-running{color:#025043;animation:spin 2s linear infinite}.visual-mapping-node-status-badge.status-completed{color:#0f9960}.visual-mapping-node-status-badge.status-failed{color:#d32f2f}.visual-mapping-node-status-badge.status-pending{color:#666}.visual-mapping-node-status-badge.status-skipped{color:#999}.react-flow__edge-label{font-family:Inter,sans-serif;font-size:10px;font-weight:600;background:#025043;color:#fff;padding:2px 8px;border-radius:10px;animation:fade-in .3s ease-in}@keyframes fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.edge-row-count-updating .react-flow__edge-label{animation:pulse-count .5s ease-in-out}@keyframes pulse-count{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.visual-mapping-execution-progress{position:absolute;bottom:0;left:0;right:0;height:4px;background:#e2e8f0;z-index:1000}.visual-mapping-execution-progress-bar{height:100%;background:linear-gradient(90deg,#025043,#0f9960);transition:width .3s ease-out}.visual-mapping-connection-status{position:fixed;bottom:20px;right:20px;font-family:Inter,sans-serif;font-size:10px;font-weight:600;padding:6px 12px;border-radius:6px;display:flex;align-items:center;gap:6px;z-index:1000;box-shadow:0 2px 8px #00000026}.visual-mapping-connection-status.connected{background:#e8f5e9;color:#0f9960;border:1px solid #0f9960}.visual-mapping-connection-status.disconnected{background:#ffebee;color:#d32f2f;border:1px solid #d32f2f}.visual-mapping-connection-status-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.visual-mapping-connection-status.connected .visual-mapping-connection-status-dot{animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.visual-mapping-toolbar-btn-secondary{background:#f7fafc;color:#4a5568;border-color:#a0aec0}.visual-mapping-toolbar-btn-secondary:hover{background:#edf2f7;color:#2d3748;border-color:#718096}.visual-mapping-toolbar-btn-active{background:#025043;color:#fff;border-color:#025043}.visual-mapping-console-panel{position:absolute;bottom:0;left:0;right:0;min-height:100px;max-height:600px;background:#1a202c;border-top:2px solid #025043;display:flex;flex-direction:column;z-index:1001;font-family:Inter,monospace}.visual-mapping-console-panel.resizing{-webkit-user-select:none;user-select:none}.visual-mapping-console-resize-handle{position:absolute;top:-4px;left:0;right:0;height:8px;cursor:ns-resize;background:transparent;z-index:10;transition:background .2s}.visual-mapping-console-resize-handle:hover,.visual-mapping-console-panel.resizing .visual-mapping-console-resize-handle{background:#02504380}.visual-mapping-console-resize-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:4px;background:#4a5568;border-radius:2px;opacity:0;transition:opacity .2s}.visual-mapping-console-resize-handle:hover:after,.visual-mapping-console-panel.resizing .visual-mapping-console-resize-handle:after{opacity:1}.visual-mapping-console-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:#2d3748;border-bottom:1px solid #4a5568;min-height:36px}.visual-mapping-console-title{display:flex;align-items:center;gap:8px;font-family:Inter,sans-serif;font-size:12px;font-weight:700;color:#e2e8f0;text-transform:uppercase;letter-spacing:.5px}.visual-mapping-console-icon{color:#025043;font-size:14px}.visual-mapping-console-count{font-size:10px;font-weight:600;color:#a0aec0}.visual-mapping-console-actions{display:flex;gap:8px;align-items:center}.visual-mapping-console-btn{font-family:Inter,sans-serif;font-size:10px;font-weight:600;padding:4px 10px;background:transparent;color:#a0aec0;border:1px solid #4a5568;border-radius:4px;cursor:pointer;transition:all .2s}.visual-mapping-console-btn:hover{background:#4a5568;color:#e2e8f0}.visual-mapping-console-close{font-size:16px;font-weight:700;padding:2px 8px;line-height:1}.visual-mapping-console-body{flex:1;overflow-y:auto;padding:8px 16px;font-size:10px;line-height:1.6}.visual-mapping-console-empty{color:#718096;font-style:italic;text-align:center;padding:40px 20px}.visual-mapping-console-log{display:flex;gap:8px;padding:2px 0;color:#e2e8f0}.visual-mapping-console-timestamp{color:#718096;flex-shrink:0}.visual-mapping-console-level{flex-shrink:0;font-weight:600}.visual-mapping-console-level.level-info{color:#63b3ed}.visual-mapping-console-level.level-warn,.visual-mapping-console-level.level-warning{color:#fbd38d}.visual-mapping-console-level.level-error{color:#fc8181}.visual-mapping-console-level.level-debug{color:#b794f4}.visual-mapping-console-message{color:#e2e8f0;word-break:break-word}.visual-mapping-console-log.log-error{background:#fc81811a}.visual-mapping-console-log.log-warn,.visual-mapping-console-log.log-warning{background:#fbd38d1a}.visual-mapping-console-run{margin-bottom:8px}.visual-mapping-console-run-header{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#2a2a2a;border-radius:4px;margin-bottom:4px;font-size:11px}.visual-mapping-console-run-running{border-left:3px solid #fbbf24}.visual-mapping-console-run-success{border-left:3px solid #4ec9b0}.visual-mapping-console-run-failed{border-left:3px solid #f14c4c}.visual-mapping-console-run-indicator{font-size:12px}.visual-mapping-console-run-name{font-weight:600;color:#ddd;flex:1}.visual-mapping-console-run-time{color:#888;font-size:10px}.visual-mapping-console-run-logs{padding-left:12px;border-left:1px solid #333;margin-left:8px}.visual-mapping-console-run-separator{height:1px;background:#333;margin:12px 0}.visual-mapping-content.console-visible{height:calc(100% - 248px)}.vm-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.vm-modal{background:#fff;border-radius:8px;max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0003;font-family:Inter,sans-serif}.vm-modal-large{max-width:900px}.vm-modal-fullscreen{max-width:95vw;max-height:95vh}.vm-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e2e8f0;background:#f8f9fa}.vm-modal-header h2{font-family:Inter,sans-serif;font-size:12px;font-weight:700;color:#025043;margin:0;text-transform:none}.vm-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#666;line-height:1;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.vm-modal-close:hover{background:#e2e8f0;color:#333}.vm-modal-body{padding:20px;overflow-y:auto;flex:1}.vm-modal-body-scroll{max-height:calc(95vh - 140px)}.vm-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid #e2e8f0;background:#f8f9fa}.vm-form-group{margin-bottom:16px}.vm-form-group label{display:block;font-family:Inter,sans-serif;font-size:10px;font-weight:700;color:#025043;margin-bottom:6px;text-transform:none}.vm-input,.vm-textarea,.vm-select{width:100%;font-family:Inter,sans-serif;font-size:10px;font-weight:500;padding:8px 10px;border:1px solid #cbd5e0;border-radius:4px;background:#fff;color:#333;transition:all .2s}.vm-input:focus,.vm-textarea:focus,.vm-select:focus{outline:none;border-color:#025043;box-shadow:0 0 0 3px #0250431a}.vm-textarea{resize:vertical;min-height:60px}.vm-help-text{display:block;font-family:Inter,sans-serif;font-size:9px;font-weight:500;color:#666;margin-top:4px;font-style:italic}.vm-btn{font-family:Inter,sans-serif;font-size:10px;font-weight:600;padding:8px 16px;border-radius:4px;border:none;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px}.vm-btn:disabled{opacity:.5;cursor:not-allowed}.vm-btn-primary{background:#025043;color:#fff}.vm-btn-primary:hover:not(:disabled){background:#033830;transform:translateY(-1px);box-shadow:0 2px 6px #0250434d}.vm-btn-secondary{background:#fff;color:#333;border:1px solid #cbd5e0}.vm-btn-secondary:hover:not(:disabled){background:#f7fafc;border-color:#025043}.vm-info-box{background:#e6f7ff;border-left:3px solid #1890ff;padding:12px;margin-bottom:16px;font-family:Inter,sans-serif;font-size:10px;font-weight:500;color:#333;border-radius:4px}.vm-info-box p{margin:0}.vm-section-title{font-family:Inter,sans-serif;font-size:11px;font-weight:700;color:#025043;margin:20px 0 12px;padding-bottom:6px;border-bottom:2px solid #e2e8f0;text-transform:none}.vm-form-row-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.vm-form-row-file-path{display:grid;grid-template-columns:2fr 1fr auto auto;gap:12px;margin-bottom:16px;align-items:end}.vm-form-group-no-margin{margin-bottom:0}.vm-form-group-browse{display:flex;flex-direction:column;width:fit-content}.vm-btn-browse{flex-shrink:0;width:fit-content;background:#025043;color:#fff;font-family:Inter,sans-serif;font-size:10px;font-weight:600;padding:8px 16px;border-radius:4px;border:none;cursor:pointer;transition:all .2s;white-space:nowrap;margin-top:auto}.vm-btn-browse:hover:not(:disabled){background:#033830;transform:translateY(-1px);box-shadow:0 2px 6px #0250434d}.vm-btn-browse:disabled{opacity:.5;cursor:not-allowed}.vm-form-actions{display:flex;align-items:center;gap:12px;margin-top:12px}.vm-validation-success{font-family:Inter,sans-serif;font-size:10px;font-weight:600;color:#38a169}.vm-matching-files{background:#f7fafc;border:1px solid #e2e8f0;border-radius:4px;padding:12px;margin-top:12px;font-family:Inter,sans-serif;font-size:10px}.vm-matching-files strong{font-weight:700;color:#025043;display:block;margin-bottom:8px}.vm-matching-files ul{margin:0;padding-left:20px}.vm-matching-files li{margin-bottom:4px;color:#333;font-weight:500}.vm-quality-rules-list{max-height:250px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:4px;padding:10px;background:#f7fafc}.vm-quality-rules-list>label{display:block;font-family:Inter,sans-serif;font-size:10px;font-weight:700;color:#025043;margin-bottom:10px}.vm-quality-rule-item{display:flex;align-items:flex-start;gap:8px;padding:8px;margin-bottom:6px;background:#fff;border-radius:4px;border:1px solid #e2e8f0;transition:all .2s}.vm-quality-rule-item:hover{border-color:#025043;background:#f8f9fa}.vm-quality-rule-item input[type=checkbox]{margin-top:2px;flex-shrink:0}.vm-quality-rule-item label{font-family:Inter,sans-serif;font-size:10px;font-weight:500;color:#333;cursor:pointer;margin:0}.vm-quality-rule-item label strong{font-weight:700;color:#025043}.vm-checkbox-label{display:flex;align-items:center;gap:8px;font-family:Inter,sans-serif;font-size:10px;font-weight:500;color:#333;cursor:pointer}.vm-checkbox-label input[type=checkbox]{cursor:pointer}.vm-form-row-four-cols{display:grid;grid-template-columns:2fr 2fr auto 1.5fr;gap:12px;margin-bottom:16px}.vm-select-multiple{min-height:120px;padding:4px}.vm-select-multiple option{padding:6px 8px;margin-bottom:2px;border-radius:3px;cursor:pointer}.vm-select-multiple option:checked{background:linear-gradient(0deg,#025043,#025043);color:#fff}.vm-file-browser-modal{max-width:800px}.vm-breadcrumb{display:flex;align-items:center;gap:6px;padding:10px;background:#f8f9fa;border-radius:4px;margin-bottom:12px;font-family:Inter,sans-serif;font-size:10px}.vm-breadcrumb-item{background:none;border:none;color:#025043;cursor:pointer;padding:4px 8px;border-radius:3px;font-family:Inter,sans-serif;font-size:10px;font-weight:500;transition:all .2s}.vm-breadcrumb-item:hover{background:#e2e8f0}.vm-breadcrumb-separator{color:#94a3b8}.vm-current-path{font-family:Inter,sans-serif;font-size:10px;color:#64748b;margin-bottom:16px;padding:8px;background:#f1f5f9;border-radius:4px}.vm-file-list{max-height:400px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:4px}.vm-file-table{width:100%;border-collapse:collapse;font-family:Inter,sans-serif;font-size:10px}.vm-file-table thead{position:sticky;top:0;background:#f8f9fa;z-index:1}.vm-file-table th{text-align:left;padding:10px 12px;font-weight:700;color:#025043;border-bottom:2px solid #e2e8f0;text-transform:uppercase;font-size:9px;letter-spacing:.5px}.vm-file-row{cursor:pointer;transition:background .15s}.vm-file-row:hover{background:#f8fafc}.vm-file-row td{padding:10px 12px;border-bottom:1px solid #f1f5f9}.vm-folder-row{font-weight:600}.vm-icon{margin-right:8px;vertical-align:middle}.vm-icon-folder{color:#3b82f6}.vm-icon-file{color:#64748b}.vm-file-name{vertical-align:middle}.vm-loading{text-align:center;padding:40px;font-family:Inter,sans-serif;font-size:10px;color:#64748b}.vm-empty-state{text-align:center;padding:40px;font-family:Inter,sans-serif;font-size:10px;color:#94a3b8}.vm-error-message{background:#fef2f2;border:1px solid #fca5a5;color:#dc2626;padding:12px;border-radius:4px;margin-bottom:16px;font-family:Inter,sans-serif;font-size:10px}.vm-tabs{display:flex;gap:4px;padding:0 20px;border-bottom:2px solid #e2e8f0;background:#f8f9fa}.vm-tab{background:none;border:none;padding:12px 20px;font-family:Inter,sans-serif;font-size:10px;font-weight:600;text-transform:uppercase;color:#64748b;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .2s;letter-spacing:.5px}.vm-tab:hover{color:#025043;background:#f1f5f9}.vm-tab-active{color:#025043;border-bottom-color:#025043;background:#fff}.vm-schema-container{padding:20px}.vm-schema-meta{background:#f8f9fa;border:1px solid #e2e8f0;border-radius:4px;padding:16px;margin-bottom:20px}.vm-schema-meta-row{display:flex;gap:12px;margin-bottom:8px;font-family:Inter,sans-serif;font-size:10px}.vm-schema-meta-row:last-child{margin-bottom:0}.vm-schema-label{font-weight:700;color:#025043;min-width:140px;text-transform:uppercase;letter-spacing:.5px}.vm-schema-value{color:#1e293b;font-weight:500}.vm-schema-table-container{max-height:400px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:4px;margin-bottom:16px}.vm-schema-table{width:100%;border-collapse:collapse;font-family:Inter,sans-serif;font-size:10px}.vm-schema-table thead{position:sticky;top:0;background:#fff;z-index:1}.vm-schema-table th{text-align:left;padding:12px;font-weight:700;color:#025043;background:#fff;border-bottom:2px solid #e2e8f0;text-transform:uppercase;font-size:9px;letter-spacing:.5px}.vm-schema-table tbody tr{border-bottom:1px solid #f1f5f9;transition:background .15s}.vm-schema-table tbody tr:hover{background:#f8fafc}.vm-schema-table tbody tr:last-child{border-bottom:none}.vm-schema-table td{padding:10px 12px;color:#1e293b}.vm-schema-col-name{font-weight:600;color:#025043}.vm-schema-col-type{font-family:Courier New,monospace;color:#059669;font-size:9px}.vm-schema-col-desc{color:#64748b;font-style:italic}.vm-schema-col-pii{text-align:center}.vm-pii-indicator{display:inline-block;padding:2px 8px;border-radius:3px;font-weight:600;font-size:9px;text-transform:uppercase;letter-spacing:.5px}.vm-pii-yes{background:#fef2f2;color:#dc2626;border:1px solid #fca5a5}.vm-pii-no{background:#f0fdf4;color:#16a34a;border:1px solid #86efac}.vm-schema-note{background:#eff6ff;border:1px solid #bfdbfe;border-radius:4px;padding:12px;font-family:Inter,sans-serif;font-size:10px;color:#1e40af}.vm-schema-note strong{font-weight:700}.visual-mapping-manager{padding:16px 20px;font-family:Inter,sans-serif;font-size:10px;font-weight:500;background:#f7fafc;min-height:calc(100vh - 60px)}.visual-mapping-manager-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #e2e8f0}.visual-mapping-manager-header-left h1.visual-mapping-manager-title{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:#025043;margin:0 0 4px;text-transform:none}.visual-mapping-manager-subtitle{font-family:Inter,sans-serif;font-size:10px;font-weight:500;color:#666;margin:0}.visual-mapping-manager-btn-primary{font-family:Inter,sans-serif;font-size:10px;font-weight:600;padding:8px 14px;background:#025043;color:#fff;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.visual-mapping-manager-btn-primary:hover{background:#033830;transform:translateY(-1px);box-shadow:0 2px 6px #02504333}.visual-mapping-manager-alert{position:relative;padding:10px 40px 10px 12px;margin-bottom:12px;border-radius:4px;font-family:Inter,sans-serif;font-size:10px;font-weight:500}.visual-mapping-manager-alert-error{background:#fed7d7;color:#9b2c2c;border-left:3px solid #e53e3e}.visual-mapping-manager-alert-success{background:#c6f6d5;color:#22543d;border-left:3px solid #38a169}.visual-mapping-manager-alert-close{position:absolute;right:8px;top:8px;background:none;border:none;font-size:18px;cursor:pointer;color:inherit;opacity:.6;line-height:1}.visual-mapping-manager-alert-close:hover{opacity:1}.visual-mapping-manager-filters{display:flex;gap:12px;align-items:center;margin-bottom:16px;padding:12px;background:#fff;border-radius:6px;border:1px solid #e2e8f0}.visual-mapping-manager-filter-group{display:flex;align-items:center;gap:8px;flex:1}.visual-mapping-manager-filter-icon{color:#025043;font-size:12px}.visual-mapping-manager-search-input,.visual-mapping-manager-filter-select{font-family:Inter,sans-serif;font-size:10px;font-weight:500;padding:6px 10px;border:1px solid #cbd5e0;border-radius:4px;flex:1;background:#fff}.visual-mapping-manager-search-input:focus,.visual-mapping-manager-filter-select:focus{outline:none;border-color:#025043;box-shadow:0 0 0 2px #0250431a}.visual-mapping-manager-bulk-actions{display:flex;align-items:center;gap:8px;margin-left:auto;padding-left:12px;border-left:1px solid #e2e8f0}.visual-mapping-manager-bulk-count{font-family:Inter,sans-serif;font-size:10px;font-weight:700;color:#025043}.visual-mapping-manager-bulk-btn{font-family:Inter,sans-serif;font-size:10px;font-weight:600;padding:6px 10px;background:#025043;color:#fff;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .2s}.visual-mapping-manager-bulk-btn:hover{background:#033830}.visual-mapping-manager-bulk-btn-danger{background:#e53e3e}.visual-mapping-manager-bulk-btn-danger:hover{background:#c53030}.visual-mapping-manager-loading{text-align:center;padding:40px;font-family:Inter,sans-serif;font-size:10px;color:#666}.visual-mapping-manager-table-container{background:#fff;border-radius:6px;border:1px solid #e2e8f0;overflow-x:auto}.visual-mapping-manager-table{width:100%;border-collapse:collapse;font-family:Inter,sans-serif;font-size:10px}.visual-mapping-manager-table thead tr{background:#f8f9fa;border-bottom:1px solid #e2e8f0}.visual-mapping-manager-table th{font-family:Inter,sans-serif;font-size:12px;font-weight:700;color:#025043;text-align:left;padding:10px 12px;text-transform:none}.visual-mapping-manager-table td{padding:8px 12px;border-bottom:1px solid #f1f5f9;color:#333;font-family:Inter,sans-serif;font-size:10px;font-weight:500}.visual-mapping-manager-table tbody tr:hover{background:#f7fafc}.visual-mapping-manager-empty{text-align:center;padding:40px!important;color:#666}.visual-mapping-manager-name-cell{font-weight:600}.visual-mapping-manager-link{background:none;border:none;color:#025043;font-family:Inter,sans-serif;font-size:10px;font-weight:600;cursor:pointer;text-decoration:underline;padding:0}.visual-mapping-manager-link:hover{color:#033830}.visual-mapping-manager-actions{display:flex;gap:4px;justify-content:flex-start}.visual-mapping-manager-action-btn{background:transparent;border:none;border-radius:6px;padding:6px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;color:#6c757d}.visual-mapping-manager-action-btn svg{width:14px;height:14px}.visual-mapping-manager-action-btn:hover{background-color:#0000000a;transform:translateY(-1px)}.visual-mapping-manager-action-btn-edit{color:#1a73e8}.visual-mapping-manager-action-btn-edit:hover{background-color:#e8f0fe}.visual-mapping-manager-action-btn-run{color:#137333}.visual-mapping-manager-action-btn-run:hover{background-color:#e6f4ea}.visual-mapping-manager-action-btn-history{color:#6c757d}.visual-mapping-manager-action-btn-history:hover{background-color:#e9ecef}.visual-mapping-manager-action-btn-clone{color:#025043}.visual-mapping-manager-action-btn-clone:hover{background-color:#e0f2ef}.visual-mapping-manager-action-btn-danger{color:#d93025}.visual-mapping-manager-action-btn-danger:hover{background-color:#fce8e6}.visual-mapping-manager-action-btn:disabled{opacity:.5;cursor:not-allowed;color:#9ca3af!important}.visual-mapping-manager-action-btn:disabled:hover{background-color:transparent!important;transform:none!important}.visual-mapping-manager-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.visual-mapping-manager-modal{background:#fff;border-radius:8px;max-width:900px;max-height:80vh;width:90%;box-shadow:0 4px 20px #0003;display:flex;flex-direction:column}.visual-mapping-manager-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e2e8f0}.visual-mapping-manager-modal-header h2{font-family:Inter,sans-serif;font-size:12px;font-weight:700;color:#025043;margin:0;text-transform:none}.visual-mapping-manager-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#666;line-height:1}.visual-mapping-manager-modal-close:hover{color:#333}.visual-mapping-manager-modal-body{padding:20px;overflow-y:auto;font-family:Inter,sans-serif;font-size:10px}.visual-mapping-manager-history-table{width:100%;border-collapse:collapse;font-family:Inter,sans-serif;font-size:10px}.visual-mapping-manager-history-table th{background:#f8f9fa;font-family:Inter,sans-serif;font-size:10px;font-weight:700;color:#025043;text-align:left;padding:8px 10px;border-bottom:1px solid #e2e8f0;text-transform:none}.visual-mapping-manager-history-table td{padding:8px 10px;border-bottom:1px solid #f1f5f9;font-family:Inter,sans-serif;font-size:10px;font-weight:500}.visual-mapping-manager-exec-id{font-family:monospace;font-size:9px;color:#666}.visual-mapping-manager-badge{font-family:Inter,sans-serif;font-size:9px;font-weight:600;padding:3px 8px;border-radius:10px;display:inline-block;text-transform:uppercase}.badge-pending{background:#fef3c7;color:#92400e}.badge-running{background:#bfdbfe;color:#1e40af}.badge-completed{background:#d1fae5;color:#065f46}.badge-failed{background:#fee2e2;color:#991b1b}.badge-cancelled{background:#e5e7eb;color:#374151}.badge-default{background:#f3f4f6;color:#4b5563}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{display:flex;align-items:center;justify-content:space-between;min-width:300px;max-width:500px;padding:12px 16px;border-radius:8px;box-shadow:0 4px 12px #00000026;background-color:#fff;pointer-events:auto;animation:slideIn .3s ease-out}.toast-content{display:flex;align-items:center;gap:12px;flex:1}.toast-icon{font-size:20px;flex-shrink:0}.toast-message{font-size:14px;color:#202124;line-height:1.4}.toast-close{background:none;border:none;padding:4px;margin-left:12px;cursor:pointer;color:#5f6368;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s;flex-shrink:0}.toast-close:hover{background-color:#0000000d}.toast-success{border-left:4px solid #34a853}.toast-success .toast-icon{color:#34a853}.toast-error{border-left:4px solid #ea4335}.toast-error .toast-icon{color:#ea4335}.toast-info{border-left:4px solid #4285f4}.toast-info .toast-icon{color:#4285f4}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){.toast-container{top:10px;right:10px;left:10px}.toast{min-width:auto;max-width:100%}}.app{display:flex;flex-direction:column;min-height:100vh}.main-container{display:flex;margin-top:0;height:100vh;overflow:hidden}.content{flex:1;padding:var(--space-5);overflow-y:auto;margin-left:250px;width:calc(100% - 250px);height:100%;transition:margin-left .3s ease,width .3s ease}.content.sidebar-collapsed{margin-left:70px;width:calc(100% - 70px)}.content.full-width{margin-left:250px;width:calc(100% - 250px)}.content.full-width.sidebar-collapsed{margin-left:70px;width:calc(100% - 70px)}.btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:none;cursor:pointer;font-weight:var(--font-medium);transition:var(--transition-base)}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-secondary);color:var(--text-on-primary)}.btn-secondary:hover{background-color:var(--color-secondary-light)}.btn-success:hover{background-color:var(--color-success-dark)}.btn-danger:hover{background-color:var(--color-error-dark)}.btn-outline:hover{background-color:var(--color-primary-50)}button.btn-primary.header-action-btn,button.btn.header-action-btn,.header-action-btn.btn-primary,.header-action-btn.btn,.header-action-btn{padding:8px 16px!important;font-size:.875rem!important;height:36px!important;min-height:36px!important;max-height:36px!important;line-height:1.25!important;display:inline-flex!important;align-items:center!important;gap:8px!important;box-sizing:border-box!important}.card{background-color:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-5);margin-bottom:var(--space-5)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-medium)}.form-control{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--text-base)}.form-control:focus{border-color:var(--color-primary);outline:none}.badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium)}.badge-success{background-color:var(--color-success);color:var(--text-on-primary)}.badge-warning{background-color:var(--color-warning);color:var(--text-on-primary)}.badge-error{background-color:var(--color-error);color:var(--text-on-primary)}.badge-info{background-color:var(--color-info);color:var(--text-on-primary)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);margin-bottom:var(--space-4)}.alert-success{background-color:var(--color-success-light);border:1px solid var(--color-success);color:var(--color-success-dark)}.alert-warning{background-color:var(--color-warning-light);border:1px solid var(--color-warning);color:var(--color-warning-dark)}.alert-error{background-color:var(--color-error-light);border:1px solid var(--color-error);color:var(--color-error-dark)}.alert-info{background-color:var(--color-info-light);border:1px solid var(--color-info);color:var(--color-info-dark)}.table{width:100%;border-collapse:collapse;margin-bottom:var(--space-5)}.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border-light)}.table th{font-weight:var(--font-semibold);background-color:var(--bg-surface)}.table tbody tr:hover{background-color:var(--bg-surface)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5)}.high-contrast{--bg-color: #000000;--text-color: #ffffff;--primary-color: #ffff00;--secondary-color: #00ffff;--border-color: #ffffff;--hover-bg-color: #333333;--card-bg-color: #111111;--danger-color: #ff0000;--success-color: #00ff00;--warning-color: #ffcc00;--info-color: #00ccff;--bg-light-color: #222222;--text-light-color: #dddddd;--focus-outline: 3px solid var(--primary-color)}:root:not(.high-contrast){--bg-color: #f5f7fa;--text-color: #333333;--primary-color: #4a6cf7;--secondary-color: #6c757d;--border-color: #e9ecef;--hover-bg-color: #f1f3f5;--card-bg-color: #ffffff;--danger-color: #dc3545;--success-color: #28a745;--warning-color: #ffc107;--info-color: #17a2b8;--bg-light-color: #f8f9fa;--text-light-color: #6c757d}.large-text{font-size:125%!important}.large-text h1{font-size:2.5rem!important}.large-text h2{font-size:2rem!important}.large-text h3{font-size:1.75rem!important}.large-text p,.large-text li,.large-text label,.large-text input,.large-text button,.large-text a,.large-text span{font-size:1.2rem!important;line-height:1.5!important}.large-text button,.large-text a.btn,.large-text input[type=button]{padding:.75rem 1rem!important}.screen-reader-optimized .sr-only{position:static!important;width:auto!important;height:auto!important;padding:.25rem .5rem!important;margin:.25rem 0!important;overflow:visible!important;clip:auto!important;white-space:normal!important;border:1px solid var(--border-color)!important;clip-path:none!important;display:block!important;background-color:var(--bg-light-color)!important;color:var(--text-color)!important}.screen-reader-optimized .chart-container{border:2px solid var(--border-color);padding:1rem}.screen-reader-optimized .chart-container:before{content:"Chart: ";font-weight:700;display:block;margin-bottom:.5rem}.reduced-motion *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}:focus{outline:var(--focus-outline, 2px solid var(--primary-color))!important;outline-offset:2px!important}.skip-to-content{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden;z-index:9999;background:var(--primary-color);color:var(--bg-color);padding:.5rem 1rem;text-decoration:none;font-weight:700;text-align:center}.skip-to-content:focus{left:0;width:auto;height:auto;outline:none}.accessibility-widget{position:fixed;bottom:1.5rem;right:1.5rem;z-index:1000;background-color:var(--card-bg-color);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 4px 8px #0000001a;width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.accessibility-widget:hover{transform:scale(1.05)}.accessibility-widget__icon{color:var(--primary-color);font-size:1.5rem}.accessibility-menu{position:fixed;bottom:5rem;right:1.5rem;z-index:1000;background-color:var(--card-bg-color);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 4px 12px #00000026;width:300px;padding:1.5rem;overflow:hidden;transform-origin:bottom right}.accessibility-menu__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.accessibility-menu__header h2{margin:0;font-size:1.25rem;color:var(--text-color)}.accessibility-menu__close{background:none;border:none;color:var(--text-color);cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center;padding:.25rem;border-radius:.25rem}.accessibility-menu__close:hover{background-color:var(--hover-bg-color)}.accessibility-menu__option{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.5rem 0}.accessibility-menu__option-label{font-weight:500;color:var(--text-color)}.accessibility-menu__option-description{font-size:.875rem;color:var(--text-light-color);margin-top:.25rem}.accessibility-menu__toggle{position:relative;display:inline-block;width:3.5rem;height:2rem}.accessibility-menu__toggle input{opacity:0;width:0;height:0}.accessibility-menu__toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--secondary-color);transition:.4s;border-radius:34px}.accessibility-menu__toggle-slider:before{position:absolute;content:"";height:1.5rem;width:1.5rem;left:.25rem;bottom:.25rem;background-color:#fff;transition:.4s;border-radius:50%}.accessibility-menu__toggle input:checked+.accessibility-menu__toggle-slider{background-color:var(--primary-color)}.accessibility-menu__toggle input:focus+.accessibility-menu__toggle-slider{box-shadow:0 0 1px var(--primary-color)}.accessibility-menu__toggle input:checked+.accessibility-menu__toggle-slider:before{transform:translate(1.5rem)}.accessibility-menu__reset{width:100%;padding:.75rem 1rem;background-color:var(--bg-light-color);color:var(--text-color);border:1px solid var(--border-color);border-radius:.25rem;font-weight:500;cursor:pointer;margin-top:.5rem;transition:all .2s ease}.accessibility-menu__reset:hover{background-color:var(--hover-bg-color)}@keyframes slideIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.accessibility-menu.open{animation:slideIn .3s forwards}.accessibility-menu.closing{animation:slideOut .3s forwards}.accessibility-menu{display:none}.accessibility-menu.open{display:block}.skip-link{position:absolute;top:-40px;left:0;background:var(--primary-color);color:#fff;padding:8px;z-index:100}.skip-link:focus{top:0}.ai-insights-sidebar{position:fixed;top:0;right:0;width:380px;height:100vh;background-color:#fff;box-shadow:-2px 0 10px #0000001a;z-index:1000;display:flex;flex-direction:column;transition:transform .3s ease-in-out;overflow:hidden}.insights-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background-color:#1a73e8;color:#fff;border-bottom:1px solid #dadce0}.insights-header h3{margin:0;font-size:18px;font-weight:500;display:flex;align-items:center;gap:8px}.close-insights-btn{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:50%;width:28px;height:28px}.close-insights-btn:hover{background-color:#ffffff1a}.insights-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;color:#5f6368}.loading-spinner{border:1px solid rgba(0,0,0,.1)!important;border-radius:50%;border-top:1px solid #1a73e8!important;width:5px!important;height:5px!important;animation:spin 1s linear infinite;margin-bottom:16px}.insights-error{padding:20px;color:#d93025;background-color:#feeceb;text-align:center;margin:20px;border-radius:8px}.no-insights{padding:40px 20px;text-align:center;color:#5f6368}.insights-tabs{display:flex;border-bottom:1px solid #dadce0;background-color:#f8f9fa;overflow-x:auto}.tab-btn{padding:12px 16px;flex:1;border:none;background-color:transparent;cursor:pointer;font-size:14px;font-weight:500;color:#5f6368;white-space:nowrap}.tab-btn.active{color:#1a73e8;border-bottom:3px solid #1a73e8}.tab-btn:hover:not(.active){background-color:#f1f3f4}.insights-content{flex:1;overflow-y:auto;padding:16px 20px}.insights-summary{display:flex;flex-direction:column;gap:12px}.insight-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f1f3f4}.insight-item .label{color:#5f6368;font-weight:500}.insight-item .value{font-weight:500;color:#202124}.quality-score{color:#188038;font-weight:600}.column-insights{display:flex;flex-direction:column;gap:16px}.column-insight-item{padding:12px;border:1px solid #dadce0;border-radius:8px;background-color:#f8f9fa}.column-insight-item h4{margin:0 0 8px;color:#1a73e8;font-size:16px;font-weight:500}.column-metadata{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.column-type{background-color:#e8f0fe;color:#1a73e8;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.column-stat{background-color:#f1f3f4;color:#5f6368;padding:2px 8px;border-radius:4px;font-size:12px}.column-recommendations h5{margin:8px 0 4px;font-size:14px;color:#5f6368}.column-recommendations ul{margin:0;padding-left:20px;font-size:13px;color:#5f6368}.quality-insights{display:flex;flex-direction:column;gap:20px}.quality-scores{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quality-score-item{display:flex;flex-direction:column;padding:12px;border-radius:8px;background-color:#f8f9fa;border:1px solid #dadce0}.score-label{font-size:13px;color:#5f6368;margin-bottom:4px}.score-value{font-size:18px;font-weight:600;color:#188038}.quality-issues h4{margin:0 0 12px;font-size:16px;color:#5f6368}.quality-issues ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}.quality-issues li{padding:12px;border-radius:8px;background-color:#f8f9fa;border-left:4px solid #dadce0}.issue-severity-high{border-left-color:#d93025!important}.issue-severity-medium{border-left-color:#f9ab00!important}.issue-severity-low{border-left-color:#1a73e8!important}.issue-header{display:flex;align-items:center;gap:8px;font-weight:500;margin-bottom:4px}.issue-header svg{color:#d93025}.issue-severity-medium .issue-header svg{color:#f9ab00}.issue-severity-low .issue-header svg{color:#1a73e8}.issue-header span{font-size:14px;color:#202124}.quality-issues li p{margin:4px 0 0;font-size:13px;color:#5f6368}.insights-recommendations{display:flex;flex-direction:column;gap:16px}.recommendation-item{padding:16px;border-radius:8px;background-color:#f8f9fa;border-left:4px solid #dadce0}.priority-high{border-left-color:#d93025}.priority-medium{border-left-color:#f9ab00}.priority-low{border-left-color:#34a853}.recommendation-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.recommendation-icon{color:#f9ab00;font-size:16px}.recommendation-header h4{margin:0;font-size:16px;color:#202124;font-weight:500}.recommendation-item p{margin:0 0 12px;font-size:14px;color:#5f6368;line-height:1.4}.recommendation-actions{display:flex;justify-content:flex-end}.action-button{background-color:#1a73e8;color:#fff;border:none;border-radius:4px;padding:8px 12px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:background-color .2s}.action-button:hover{background-color:#0d62cb}body.high-contrast .ai-insights-sidebar{background-color:#000;border-left:2px solid #fff;box-shadow:none}body.high-contrast .insights-header,body.high-contrast .insights-tabs{background-color:#000;border-bottom:1px solid #fff}body.high-contrast .tab-btn{color:#fff}body.high-contrast .tab-btn.active{color:#fff;border-bottom:3px solid #fff;background-color:#333}body.high-contrast .tab-btn:hover:not(.active){background-color:#333}body.high-contrast .insight-item{border-bottom:1px solid #444}body.high-contrast .insight-item .label,body.high-contrast .insight-item .value,body.high-contrast .quality-score{color:#fff}body.high-contrast .column-insight-item,body.high-contrast .quality-score-item,body.high-contrast .quality-issues li,body.high-contrast .recommendation-item{background-color:#000;border-color:#fff}body.high-contrast .column-insight-item h4,body.high-contrast .column-type{color:#fff;background-color:#333}body.high-contrast .column-stat{background-color:#333;color:#fff}body.high-contrast .score-value,body.high-contrast .recommendation-icon,body.high-contrast .recommendation-header h4,body.high-contrast .quality-issues li p,body.high-contrast .recommendation-item p{color:#fff}body.high-contrast .action-button{background-color:#fff;color:#000}.jobs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;margin-top:0}.jobs-title{font-size:1.5rem;font-weight:600;color:#025043}.jobs-subtitle{margin:.25rem 0 0;font-size:.8rem;color:#037c6e}.jobs-actions{display:flex;justify-content:flex-end;margin-bottom:20px}.jobs-list{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #00000014;overflow:hidden}.jobs-table-container{overflow-x:auto}.jobs-table{width:100%;border-collapse:collapse}.jobs-table th{background-color:#f8f9fa;text-align:left;padding:8px!important;font-family:Inter,sans-serif!important;font-weight:700!important;font-size:12px!important;text-transform:none!important;color:var(--heading-color, #333);border-bottom:1px solid #e2e8f0}.jobs-table td{padding:6px 8px!important;border-bottom:1px solid #f1f5f9;font-family:Inter,sans-serif!important;font-size:10px!important;font-weight:500!important;color:var(--text-color, #444)}.jobs-table tr:last-child td{border-bottom:none}.jobs-table tr:hover{background-color:#f8f9fa}.job-name-link{color:var(--heading-color, #333);font-weight:500;text-decoration:none;display:block}.job-name-link:hover{color:var(--primary-color, #3498db)}.job-description{font-size:.85rem;color:var(--text-secondary-color, #666);margin-top:4px}.status-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:capitalize}.status-active{background-color:#e6f7f2;color:#27ae60}.status-inactive{background-color:#f1f3f4;color:#7f8c8d}.status-pending{background-color:#fff8e1;color:#f39c12}.status-running{background-color:#e3f2fd;color:#2196f3}.status-completed{background-color:#e8f5e9;color:#43a047}.status-failed{background-color:#feeaea;color:#e74c3c}.icon-button{background:none;border:none;color:var(--text-secondary-color, #666);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:6px;border-radius:4px;transition:all .2s ease}.icon-button:hover{color:var(--primary-color, #3498db);background-color:#3498db1a}.icon-button:disabled{color:#ccc;cursor:not-allowed;background-color:transparent}.table-actions{display:flex;gap:8px;justify-content:flex-end}.empty-state{padding:60px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-state svg{color:var(--text-secondary-color, #666);margin-bottom:16px}.empty-state h3{margin:0 0 8px;font-size:1.3rem;color:var(--heading-color, #333)}.empty-state p{margin:0 0 24px;color:var(--text-secondary-color, #666);max-width:500px}.job-form{display:grid;gap:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:500;font-size:.9rem;color:var(--heading-color, #333)}.form-group input,.form-group textarea,.form-group select{padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:.95rem;font-family:inherit;transition:border-color .15s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-color, #3498db)}.form-group textarea{resize:vertical;min-height:100px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}.alert{padding:12px 16px;border-radius:4px;margin-bottom:20px;font-size:.9rem}.alert-error{background-color:#feeaea;border-left:4px solid #e74c3c;color:#c0392b}.alert-warning{background-color:#fff8e1;border-left:4px solid #f39c12;color:#e67e22}.alert-success{background-color:#eafaf1;border-left:4px solid #2ecc71;color:#27ae60}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{box-sizing:border-box}.transformations-page{padding:20px;height:100%;display:flex;flex-direction:column}.transformations-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.transformations-title{margin:0;color:var(--primary-color)}.transformations-actions{display:flex;gap:10px}.transformations-container{flex:1;background-color:#f9f9f9;border-radius:8px;overflow:hidden;display:flex;flex-direction:column;border:1px solid #e0e0e0}.transformations-main{flex:1;display:flex;height:calc(100vh - 120px);min-height:600px}.transformation-sidebar{width:220px;background-color:#f0f0f0;border-right:1px solid #ddd;padding:15px;overflow-y:auto;height:100%}.palette-header{font-size:16px;font-weight:600;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #ddd;position:sticky;top:0;background-color:#f0f0f0;z-index:10}.component-group{margin-bottom:20px}.component-group-title{font-size:14px;font-weight:600;margin-bottom:10px;color:#555;position:sticky;top:43px;background-color:#f0f0f0;padding:5px 0;z-index:10}.component-list{display:flex;flex-direction:column;gap:10px}.component-item{background-color:#fff;border:1px solid #ddd;border-radius:4px;padding:10px;display:flex;flex-direction:column;align-items:center;cursor:move;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.component-item.dragging{opacity:.5}.component-item:hover{background-color:#f5f5f5;transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.component-item:focus{outline:2px solid var(--primary-color);outline-offset:2px}.component-icon{font-size:20px;margin-bottom:5px;color:var(--primary-color)}.component-name{font-size:12px;text-align:center}.canvas-container{flex:1;background-color:#fff;position:relative;height:100%;display:flex;flex-direction:column}.flow-wrapper{width:100%;height:100%;flex:1;min-height:500px}.react-flow__node{padding:0;border-radius:5px;box-shadow:0 2px 5px #0000001a;transition:box-shadow .2s,transform .2s}.react-flow__node:hover{box-shadow:0 5px 10px #00000026}.react-flow__node.selected{box-shadow:0 0 0 2px var(--primary-color)}.node-header{padding:8px 12px;border-radius:5px 5px 0 0;display:flex;align-items:center;justify-content:space-between}.node-header .node-title{font-weight:600;font-size:14px;margin:0;display:flex;align-items:center}.node-header .node-icon{margin-right:8px}.node-content{padding:10px;font-size:12px}.node-config-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;justify-content:center;align-items:center}.node-config-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#00000080}.node-config-content{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 5px 15px #0000004d;width:600px;max-width:90%;max-height:90vh;display:flex;flex-direction:column;z-index:1010}.node-config-header{padding:15px 20px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.node-config-header h3{margin:0;font-size:18px;color:var(--primary-color)}.node-config-close{background:none;border:none;font-size:20px;cursor:pointer;color:#777;padding:5px;border-radius:4px;transition:background-color .2s ease,color .2s ease}.node-config-close:hover{background-color:#0000000d;color:#333}.node-config-close:focus{outline:2px solid var(--primary-color);outline-offset:2px}.node-config-body{padding:20px;overflow-y:auto;max-height:calc(90vh - 130px)}.node-config-footer{padding:15px 20px;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:10px}.flow-buttons{display:flex;gap:10px;z-index:10}.config-form-row{margin-bottom:15px}.config-label{display:block;margin-bottom:5px;font-weight:500}.config-input{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.config-select{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;background-color:#fff}.condition-preview{margin-top:15px;padding:10px;background-color:#f5f5f5;border-radius:4px;font-family:monospace;font-size:14px}.node-source .node-header{background-color:#e3f2fd;color:#0d47a1}.node-target .node-header{background-color:#e8f5e9;color:#1b5e20}.node-filter .node-header{background-color:#fff3e0;color:#e65100}.node-join .node-header{background-color:#e0f7fa;color:#006064}.node-aggregate .node-header{background-color:#f3e5f5;color:#4a148c}.node-transform .node-header{background-color:#fce4ec;color:#880e4f}.transformation-info-panel{padding:15px;background-color:#f8f9fa;border-top:1px solid #ddd}.canvas-controls{position:absolute;bottom:20px;right:20px;display:flex;gap:10px;z-index:20}.control-button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:#fff;border:1px solid #ddd;border-radius:50%;box-shadow:0 2px 5px #0000001a;cursor:pointer;transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}.control-button:hover{background-color:#f0f0f0;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.control-button:focus{outline:2px solid var(--primary-color);outline-offset:2px}.minimap{position:absolute;bottom:20px;left:20px;border:1px solid #ddd;border-radius:4px;overflow:hidden;background-color:#fff;box-shadow:0 2px 5px #0000001a;z-index:20}@media (max-width: 768px){.transformations-main{flex-direction:column;height:auto}.transformation-sidebar{width:100%;border-right:none;border-bottom:1px solid #ddd}.component-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.canvas-container{height:700px}@media (max-width: 480px){.component-list{grid-template-columns:repeat(2,1fr)}}}.mapping-groups-page,.workflows-page,.etl-scheduler-page{padding:20px}.groups-grid,.workflows-grid,.schedules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px;margin-top:20px}.group-card,.workflow-card,.schedule-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;transition:transform .2s,box-shadow .2s}.group-card:hover,.workflow-card:hover,.schedule-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.schedule-card.disabled{opacity:.6}.group-card h3,.workflow-card h3,.schedule-card h3,.schedule-header h3{margin:0 0 12px;color:#333;font-size:18px}.description{color:#fff;margin:0 0 12px;font-size:14px}.group-meta,.workflow-meta,.schedule-meta{display:flex;gap:16px;margin-bottom:16px;font-size:14px;color:#666}.meta-item{display:flex;align-items:center}.workflow-steps,.schedule-times{margin:12px 0;font-size:13px;color:#888}.step-item{padding:4px 0}.group-actions,.workflow-actions,.schedule-actions{display:flex;gap:8px;margin-top:16px}.schedule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.status-badge{padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;text-transform:uppercase}.status-badge.active{background-color:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}.status-badge.inactive{background-color:#f5f5f5;color:#999;border:1px solid #d9d9d9}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s,opacity .2s}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-sm{padding:6px 12px;font-size:13px}.btn-primary{background-color:#0079c1;color:#fff}.btn-primary:hover:not(:disabled){background-color:#006ba8}.btn-success{background-color:#52c41a;color:#fff}.btn-success:hover:not(:disabled){background-color:#3ca80f}.btn-warning{background-color:#faad14;color:#fff}.btn-warning:hover:not(:disabled){background-color:#d48806}.btn-danger{background-color:#ff4d4f;color:#fff}.btn-danger:hover:not(:disabled){background-color:#d4373a}.empty-state{text-align:center;padding:60px 20px;color:#999;font-size:16px}.alert{padding:12px 16px;border-radius:4px;margin-bottom:20px}.alert-danger{background-color:#fff1f0;border:1px solid #ffa39e;color:#cf1322}.alert-success{background-color:#f6ffed;border:1px solid #b7eb8f;color:#389e0d}.form-container{max-width:900px;margin:20px auto;background:#fff;padding:30px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.data-form .form-group{margin-bottom:20px}.data-form label{display:block;margin-bottom:8px;font-weight:600;color:#333}.form-input,.form-select,.form-textarea{width:100%;padding:10px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px;transition:border-color .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#0079c1}.form-slider{width:100%}.slider-labels{display:flex;justify-content:space-between;font-size:12px;color:#666;margin-top:4px}.radio-group{display:flex;gap:20px}.radio-label,.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.form-help{display:block;margin-top:4px;font-size:13px;color:#666}.cron-presets{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.form-actions{display:flex;gap:12px;margin-top:30px;padding-top:20px;border-top:1px solid #e0e0e0}.btn-secondary{background-color:#f0f0f0;color:#333}.btn-secondary:hover:not(:disabled){background-color:#e0e0e0}.members-section{margin-top:24px;padding:20px;background-color:#f5f5f5;border-radius:4px}.members-section h3{margin-top:0;margin-bottom:16px}.member-controls{display:flex;gap:12px;margin-bottom:16px}.member-controls .form-select{flex:1}.members-list{display:grid;gap:8px}.member-item{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#fff;border-radius:4px}.no-members{color:#666;font-style:italic;margin:0}.workflow-steps-section{margin-top:20px}.workflow-steps-section h3{margin-bottom:16px}.steps-list{margin-bottom:20px}.step-card{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#fff;border:1px solid #e0e0e0;border-radius:4px;margin-bottom:12px}.step-info strong{display:block;margin-bottom:6px;color:#333}.step-meta{font-size:13px;color:#666}.add-step-form{background:#f5f5f5;padding:20px;border-radius:4px;margin-top:16px}.add-step-form h4{display:flex;align-items:center;gap:8px;margin-top:0;margin-bottom:16px}.dependency-chips{display:flex;gap:8px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;padding:6px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;font-size:13px;transition:all .2s}.chip.selected{background-color:#0079c1;color:#fff;border-color:#0079c1}.chip input[type=checkbox]{margin-right:6px}.table-container{margin-top:20px;overflow-x:auto;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table thead{background-color:#fafafa;border-bottom:2px solid #e0e0e0}.data-table th{padding:12px 16px;text-align:left;font-weight:600;color:#333;white-space:nowrap}.data-table tbody tr{border-bottom:1px solid #f0f0f0;transition:background-color .2s}.data-table tbody tr:hover{background-color:#fafafa}.data-table td{padding:14px 16px;color:#666}.data-table td.font-weight-bold{color:#333;font-weight:600}.data-table td.text-center{text-align:center}.data-table td.description-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge.status-active{background-color:#f6ffed;color:#389e0d;border:1px solid #b7eb8f}.status-badge.status-inactive{background-color:#f5f5f5;color:#999;border:1px solid #d9d9d9}.status-badge.status-draft{background-color:#e6f7ff;color:#0079c1;border:1px solid #91d5ff}.action-icons{display:flex;gap:8px;align-items:center}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:4px;font-size:16px;cursor:pointer;transition:all .2s;text-decoration:none}.icon-btn:disabled{cursor:not-allowed;opacity:.5}.icon-btn-success{background-color:#f6ffed;color:#52c41a}.icon-btn-success:hover:not(:disabled){background-color:#52c41a;color:#fff}.icon-btn-primary{background-color:#e6f7ff;color:#0079c1}.icon-btn-primary:hover:not(:disabled){background-color:#0079c1;color:#fff}.icon-btn-danger{background-color:#fff1f0;color:#ff4d4f}.icon-btn-danger:hover:not(:disabled){background-color:#ff4d4f;color:#fff}:root{--color-primary: hsl(var(--primary));--color-primary-dark: hsl(var(--primary));--color-primary-light: hsl(var(--accent));--color-primary-50: hsl(var(--muted));--color-primary-100: hsl(var(--accent));--color-secondary: hsl(var(--secondary));--color-secondary-light: hsl(var(--secondary-foreground));--color-white: hsl(var(--card));--color-gray-50: hsl(var(--muted));--color-gray-100: hsl(var(--accent));--color-gray-200: hsl(var(--border));--color-gray-300: hsl(var(--border));--color-gray-400: hsl(var(--muted-foreground));--color-gray-500: hsl(var(--muted-foreground));--color-gray-600: hsl(var(--foreground));--color-gray-700: hsl(var(--foreground));--color-gray-800: hsl(var(--card-foreground));--color-gray-900: hsl(var(--foreground));--color-teal: hsl(var(--primary));--color-teal-light: hsl(var(--accent));--color-teal-dark: hsl(var(--primary));--color-amber: hsl(var(--accent-foreground));--color-amber-light: hsl(var(--accent));--color-amber-dark: hsl(var(--accent-foreground));--color-purple: hsl(var(--primary));--color-purple-light: hsl(var(--accent));--color-purple-dark: hsl(var(--accent-foreground));--color-success: hsl(var(--primary));--color-success-light: hsl(var(--accent));--color-success-dark: hsl(var(--primary));--color-warning: hsl(var(--accent-foreground));--color-warning-light: hsl(var(--accent));--color-warning-dark: hsl(var(--accent-foreground));--color-error: hsl(var(--destructive));--color-error-light: hsl(var(--accent));--color-error-dark: hsl(var(--destructive));--color-info: hsl(var(--primary));--color-info-light: hsl(var(--accent));--color-info-dark: hsl(var(--primary));--text-primary: hsl(var(--foreground));--text-secondary: hsl(var(--muted-foreground));--text-tertiary: hsl(var(--muted-foreground));--text-on-primary: hsl(var(--primary-foreground));--bg-page: hsl(var(--background));--bg-surface: hsl(var(--card));--bg-header: hsl(var(--primary));--bg-sidebar: hsl(var(--sidebar));--bg-card: hsl(var(--card));--bg-secondary: hsl(var(--muted));--bg-hover: #fafafa;--border-light: hsl(var(--border));--border-medium: hsl(var(--border));--border-dark: hsl(var(--border));--border-color: hsl(var(--border));--font-primary: var(--font-sans);--font-mono: var(--font-mono);--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.75rem;--text-4xl: 2rem;--font-light: 300;--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: var(--radius-sm);--radius-md: var(--radius-md);--radius-lg: var(--radius-lg);--radius-xl: var(--radius-xl);--radius-full: 9999px;--shadow-sm: var(--shadow-sm);--shadow-md: var(--shadow-md);--shadow-lg: var(--shadow-lg);--shadow-xl: var(--shadow-xl);--container-max-width: 1200px;--header-height: 64px;--sidebar-width: 260px;--overlay-backdrop: rgba(0, 0, 0, .4);--overlay-dark: rgba(0, 0, 0, .6);--white-alpha-10: rgba(255, 255, 255, .1);--white-alpha-15: rgba(255, 255, 255, .15);--white-alpha-20: rgba(255, 255, 255, .2);--white-alpha-30: rgba(255, 255, 255, .3);--white-alpha-50: rgba(255, 255, 255, .5);--white-alpha-90: rgba(255, 255, 255, .9);--black-alpha-05: rgba(0, 0, 0, .05);--black-alpha-10: rgba(0, 0, 0, .1);--slate-alpha-10: rgba(109, 129, 150, .1);--slate-alpha-20: rgba(109, 129, 150, .2);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-base: 1;--z-dropdown: 100;--z-sticky: 200;--z-modal-backdrop: 300;--z-modal: 400;--z-toast: 500}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-primary);background-color:var(--bg-page);color:var(--text-primary);line-height:var(--leading-normal);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--text-primary)}h1{font-size:var(--text-4xl);margin-bottom:var(--space-6)}h2{font-size:var(--text-3xl);margin-bottom:var(--space-5)}h3{font-size:var(--text-2xl);margin-bottom:var(--space-4)}h4{font-size:var(--text-xl);margin-bottom:var(--space-3)}p{margin-bottom:var(--space-4);color:var(--text-secondary)}small{font-size:var(--text-sm);color:var(--text-tertiary)}a{text-decoration:none;color:var(--color-primary);transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark)}.page-container{background-color:var(--bg-page);min-height:100vh;padding:0 var(--space-6) var(--space-6) var(--space-6)}.page-header{padding:0;margin-top:0;margin-bottom:12px}.page-header h1{color:#025043;font-size:1.1rem;margin-bottom:0;font-weight:var(--font-semibold)}.page-header h2,.page-header h3{color:var(--text-primary);margin-bottom:0}.page-content{max-width:var(--container-max-width);margin:0 auto}.card{background-color:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-6);margin-bottom:var(--space-6);border:1px solid var(--border-light)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-light)}.card-title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}.card-body{color:var(--text-secondary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-weight:var(--font-medium);text-align:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);font-family:var(--font-primary);font-size:var(--text-base);border:none;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--text-on-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-gray-600);color:var(--text-on-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--color-gray-700)}.btn-success{background-color:var(--color-success);color:var(--text-on-primary)}.btn-success:hover:not(:disabled){background-color:var(--color-success-dark)}.btn-danger{background-color:var(--color-error);color:var(--text-on-primary)}.btn-danger:hover:not(:disabled){background-color:var(--color-error-dark)}.btn-outline{background-color:transparent;border:1px solid var(--color-primary);color:var(--color-primary)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary);color:var(--text-on-primary)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.btn-lg{padding:var(--space-4) var(--space-6);font-size:var(--text-lg)}.alert{padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);border-left:4px solid}.alert-info{background-color:var(--color-info-light);border-color:var(--color-info);color:var(--color-info-dark)}.alert-success{background-color:var(--color-success-light);border-color:var(--color-success);color:var(--color-success-dark)}.alert-warning{background-color:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.alert-error{background-color:var(--color-error-light);border-color:var(--color-error);color:var(--color-error-dark)}.form-group{margin-bottom:var(--space-5)}.form-label{display:block;font-weight:var(--font-medium);margin-bottom:var(--space-2);color:var(--text-primary);font-size:var(--text-sm)}.form-control{width:100%;padding:var(--space-3);border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--text-primary);background-color:var(--bg-card);transition:all var(--transition-fast);font-family:var(--font-primary)}.form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-100)}.form-control::placeholder{color:var(--text-tertiary)}.form-control:disabled{background-color:var(--color-gray-100);cursor:not-allowed;opacity:.6}select.form-control{cursor:pointer}textarea.form-control{resize:vertical;min-height:100px}table{width:100%;border-collapse:collapse;background-color:var(--bg-card)}th{text-align:left;padding:var(--space-3) var(--space-4);background-color:var(--color-gray-50);color:var(--text-secondary);font-weight:var(--font-semibold);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--border-light)}td{padding:var(--space-4);border-bottom:1px solid var(--border-light);color:var(--text-primary)}tr:last-child td{border-bottom:none}tr:hover{background-color:var(--color-gray-50)}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--text-tertiary)}.text-primary{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.mt-0{margin-top:0}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.spinner,div.spinner{width:5px!important;height:5px!important;min-width:5px!important;min-height:5px!important;max-width:5px!important;max-height:5px!important;border:.5px solid var(--color-gray-200)!important;border-top-color:var(--color-primary)!important;border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 960px){.page-container{padding:0 var(--space-4) var(--space-4) var(--space-4)}.page-header{margin:0 0 12px;padding:0}.card{padding:var(--space-4)}}@media (max-width: 640px){h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}.btn{font-size:var(--text-sm)}}.table-container{background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:var(--space-6)}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:var(--bg-secondary)}.data-table th{padding:var(--space-2);text-align:left;font-weight:600;color:var(--text-primary);font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--border-color)}.data-table td{padding:var(--space-2);border-bottom:1px solid var(--border-color);color:var(--text-secondary);font-size:.75rem;font-weight:400}.data-table tbody tr{transition:background-color var(--transition-fast)}.data-table tbody tr:hover{background-color:var(--bg-hover)}.data-table tbody tr.disabled-row{opacity:.6}.table-actions{display:flex;gap:var(--space-2);align-items:center}.entity-type-badge{display:inline-block;padding:.25rem .75rem;background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-medium);text-transform:capitalize}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.pagination-info{color:var(--text-secondary);font-size:var(--text-sm)}.pagination-controls{display:flex;gap:var(--space-2);align-items:center}.pagination-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.pagination-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-numbers{display:flex;gap:var(--space-1)}.pagination-number{min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast)}.pagination-number:hover{background:var(--bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.pagination-number.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pagination-ellipsis{min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:var(--text-sm)}@media (max-width: 768px){.table-container{overflow-x:auto}.data-table{min-width:800px}.pagination-container{flex-direction:column;gap:var(--space-3)}.pagination-info{order:2}}:root{--background: 0 0% 100%;--foreground: 0 0% 20%;--card: 0 0% 100%;--card-foreground: 0 0% 20%;--popover: 0 0% 100%;--popover-foreground: 0 0% 20%;--primary: 200 87.3418% 30.9804%;--primary-foreground: 0 0% 100%;--secondary: 220 14.2857% 95.8824%;--secondary-foreground: 215 13.7931% 34.1176%;--muted: 210 20% 98.0392%;--muted-foreground: 220 8.9362% 46.0784%;--accent: 192.5 11.7647% 40%;--accent-foreground: 228 20% 95.098%;--destructive: 0 28.0423% 62.9412%;--destructive-foreground: 0 0% 100%;--border: 220 13.0435% 90.9804%;--input: 220 13.0435% 90.9804%;--ring: 217.2193 91.2195% 59.8039%;--chart-1: 217.2193 91.2195% 59.8039%;--chart-2: 221.2121 83.1933% 53.3333%;--chart-3: 224.2781 76.3265% 48.0392%;--chart-4: 225.931 70.7317% 40.1961%;--chart-5: 224.4444 64.2857% 32.9412%;--sidebar: 210 20% 98.0392%;--sidebar-foreground: 0 0% 20%;--sidebar-primary: 217.2193 91.2195% 59.8039%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 204 93.75% 93.7255%;--sidebar-accent-foreground: 224.4444 64.2857% 32.9412%;--sidebar-border: 220 13.0435% 90.9804%;--sidebar-ring: 217.2193 91.2195% 59.8039%;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", sans-serif;--font-serif: "Source Serif 4", Georgia, serif;--font-mono: "JetBrains Mono", "Courier New", monospace;--radius: .375rem;--radius-sm: calc(var(--radius) - 4px);--radius-md: calc(var(--radius) - 2px);--radius-lg: var(--radius);--radius-xl: calc(var(--radius) + 4px);--shadow-x: 0;--shadow-y: 1px;--shadow-blur: 3px;--shadow-spread: 0px;--shadow-opacity: .1;--shadow-color: oklch(0 0 0);--shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / .05);--shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / .05);--shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / .1), 0 1px 2px -1px hsl(0 0% 0% / .1);--shadow: 0 1px 3px 0px hsl(0 0% 0% / .1), 0 1px 2px -1px hsl(0 0% 0% / .1);--shadow-md: 0 1px 3px 0px hsl(0 0% 0% / .1), 0 2px 4px -1px hsl(0 0% 0% / .1);--shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / .1), 0 4px 6px -1px hsl(0 0% 0% / .1);--shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / .1), 0 8px 10px -1px hsl(0 0% 0% / .1);--shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / .25);--tracking-normal: 0em;--spacing: .25rem}.dark{--background: 0 0% 9.0196%;--foreground: 0 0% 89.8039%;--card: 0 0% 14.902%;--card-foreground: 0 0% 89.8039%;--popover: 0 0% 14.902%;--popover-foreground: 0 0% 89.8039%;--primary: 217.2193 91.2195% 59.8039%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 14.902%;--secondary-foreground: 0 0% 89.8039%;--muted: 0 0% 12.1569%;--muted-foreground: 0 0% 63.9216%;--accent: 224.4444 64.2857% 32.9412%;--accent-foreground: 213.3333 96.9231% 87.2549%;--destructive: 0 84.2365% 60.1961%;--destructive-foreground: 0 0% 100%;--border: 0 0% 25.098%;--input: 0 0% 25.098%;--ring: 217.2193 91.2195% 59.8039%;--chart-1: 213.1169 93.9024% 67.8431%;--chart-2: 217.2193 91.2195% 59.8039%;--chart-3: 221.2121 83.1933% 53.3333%;--chart-4: 224.2781 76.3265% 48.0392%;--chart-5: 225.931 70.7317% 40.1961%;--sidebar: 0 0% 9.0196%;--sidebar-foreground: 0 0% 89.8039%;--sidebar-primary: 217.2193 91.2195% 59.8039%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 224.4444 64.2857% 32.9412%;--sidebar-accent-foreground: 213.3333 96.9231% 87.2549%;--sidebar-border: 0 0% 25.098%;--sidebar-ring: 217.2193 91.2195% 59.8039%;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", sans-serif;--font-serif: "Source Serif 4", Georgia, serif;--font-mono: "JetBrains Mono", "Courier New", monospace;--radius: .375rem;--shadow-x: 0;--shadow-y: 1px;--shadow-blur: 3px;--shadow-spread: 0px;--shadow-opacity: .1;--shadow-color: oklch(0 0 0);--shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / .05);--shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / .05);--shadow-sm: 0 1px 3px 0px hsl(0 0% 0% / .1), 0 1px 2px -1px hsl(0 0% 0% / .1);--shadow: 0 1px 3px 0px hsl(0 0% 0% / .1), 0 1px 2px -1px hsl(0 0% 0% / .1);--shadow-md: 0 1px 3px 0px hsl(0 0% 0% / .1), 0 2px 4px -1px hsl(0 0% 0% / .1);--shadow-lg: 0 1px 3px 0px hsl(0 0% 0% / .1), 0 4px 6px -1px hsl(0 0% 0% / .1);--shadow-xl: 0 1px 3px 0px hsl(0 0% 0% / .1), 0 8px 10px -1px hsl(0 0% 0% / .1);--shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / .25)}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);transition:background-color .3s ease,color .3s ease}.dark,.dark *{transition:background-color .3s ease,color .3s ease,border-color .3s ease}body{font-size:.875rem;line-height:1.4}h1{font-size:1.3rem;margin-bottom:.75rem;font-weight:600}h2{font-size:1.15rem;margin-bottom:.65rem;font-weight:600}h3{font-size:1rem;margin-bottom:.5rem;font-weight:500}h4,h5,h6{font-size:.875rem;margin-bottom:.4rem;font-weight:500}input,select,textarea,button{font-size:.8rem}.btn{font-size:.8rem;padding:.375rem .75rem}table{font-size:.8rem}th{font-size:.75rem;font-weight:600}.card-title{font-size:1rem}.card-text{font-size:.8rem}.label,.meta-text,.small-text,small{font-size:.75rem}.nav-link,.sidebar-item{font-size:.85rem}.badge{font-size:.7rem;padding:.25em .5em}
