:root{--bg-primary-light: #f0f2f5;--bg-secondary-light: #ffffff;--text-primary-light: #333;--text-secondary-light: #6c757d;--border-color-light: #dee2e6;--table-header-light: #f8f9fa;--table-row-hover-light: #f1f3f5;--bg-primary-dark: #121212;--bg-secondary-dark: #1e1e1e;--text-primary-dark: #e0e0e0;--text-secondary-dark: #888;--border-color-dark: #3a3a3a;--table-header-dark: #2a2a2a;--table-row-hover-dark: #2c2c2c;--brand-primary: #0062cc;--brand-primary-hover: #0056b3;--brand-accent: #007bff;--text-on-brand: #ffffff;--sidebar-bg: #0d1a2e;--sidebar-bg-header: #051020;--sidebar-text: #a6b0cf;--sidebar-text-category: #4b5a76;--sidebar-text-hover: #ffffff;--sidebar-link-hover: #12213a;--sidebar-link-active: #1a2942;--sidebar-border: #12213a}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--bg-primary-light);color:var(--text-primary-light);transition:background-color .2s,color .2s}.app-layout{display:flex;min-height:100vh}.sidebar{width:260px;background-color:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;flex-shrink:0}.sidebar-header{padding:20px;text-align:center;background-color:var(--sidebar-bg-header)}.sidebar-logo{max-width:150px}.sidebar-nav{flex-grow:1;padding-top:20px}.nav-category{padding:0 25px;font-size:.75rem;text-transform:uppercase;letter-spacing:1px;font-weight:700;color:var(--sidebar-text-category)}.nav-link{display:flex;align-items:center;padding:12px 25px;text-decoration:none;color:var(--sidebar-text);transition:background-color .2s,color .2s;border-left:3px solid transparent}.nav-link i{width:20px;margin-right:15px;text-align:center}.nav-link:hover{background-color:var(--sidebar-link-hover);color:var(--sidebar-text-hover)}.nav-link.active{background-color:var(--sidebar-link-active);color:var(--sidebar-text-hover);border-left-color:var(--brand-accent)}.disabled-link{color:var(--sidebar-text-category);cursor:not-allowed;pointer-events:none}.disabled-link:hover{background-color:transparent;color:var(--sidebar-text-category)}.sidebar-footer{padding:20px;border-top:1px solid var(--sidebar-border);display:flex;align-items:center;justify-content:space-between}.sidebar-footer .logout-btn{width:auto;background:none;border:none;color:var(--sidebar-text);font-size:1rem;cursor:pointer;display:flex;align-items:center;gap:8px;transition:color .2s}.sidebar-footer .logout-btn:hover{color:var(--sidebar-text-hover)}.content-area{flex-grow:1;background-color:var(--bg-primary-light);overflow-y:auto}.module-main{padding:2rem}.module-main h1{font-size:1.75rem;margin-bottom:2rem}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.login-card{background:var(--bg-secondary-light);padding:40px 30px;border-radius:8px;box-shadow:0 4px 12px #0000001a;width:100%;max-width:400px;text-align:center}.login-logo{max-width:200px;margin-bottom:2rem}.login-card h1{font-size:1.5rem;margin-top:0;margin-bottom:.5rem}.login-card h2{font-size:1rem;color:var(--text-secondary-light);font-weight:400;margin-top:0;margin-bottom:2rem}.input-group{position:relative;margin-bottom:1.5rem}.input-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--text-secondary-light)}.input-group input{width:100%;padding:12px 15px 12px 45px;border:1px solid var(--border-color-light);border-radius:5px;font-size:1rem;box-sizing:border-box;transition:border-color .2s;background-color:var(--bg-secondary-light);color:var(--text-primary-light)}.input-group input:focus{outline:none;border-color:var(--brand-accent)}.login-card button{width:100%;padding:12px;background-color:var(--brand-primary);color:var(--text-on-brand);border:none;border-radius:5px;font-size:1rem;font-weight:700;text-transform:uppercase;cursor:pointer;transition:background-color .2s}.login-card button:hover{background-color:var(--brand-primary-hover)}.login-card button:disabled{background-color:var(--text-secondary-light);cursor:not-allowed}.card{background:var(--bg-secondary-light);border-radius:8px;box-shadow:0 2px 4px #0000000d;padding:20px;margin-bottom:20px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.card-header h2{margin:0;font-size:1.25rem;display:flex;align-items:center;gap:10px}.upload-section{display:flex;gap:1rem;align-items:center}input[type=file]{display:none}.file-upload-label{border:1px dashed var(--border-color-light);border-radius:5px;padding:10px 15px;display:inline-block;cursor:pointer;background-color:var(--table-header-light);flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color .2s}.file-upload-label:hover{border-color:var(--brand-accent)}.upload-section button{background-color:var(--brand-primary);color:var(--text-on-brand);border:none;border-radius:5px;padding:11px 20px;font-weight:700;cursor:pointer;transition:background-color .2s}.upload-section button:disabled{background-color:var(--text-secondary-light);cursor:not-allowed}.table-container{overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:100%}th,td{padding:15px;text-align:left;border-bottom:1px solid var(--border-color-light)}thead th{background-color:var(--table-header-light);font-weight:600;color:var(--text-secondary-light);text-transform:uppercase;font-size:.85rem;letter-spacing:.5px}tbody tr:hover{background-color:var(--table-row-hover-light)}.status-badge{padding:5px 12px;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-on-brand)}.status-concluido{background-color:#28a745}.status-pendente{background-color:#ffc107;color:#212529}.status-processando{background-color:#17a2b8}.status-erro{background-color:#dc3545}.status-desconhecido{background-color:#6c757d}.empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary-light)}.empty-state i{font-size:3rem;margin-bottom:1rem;color:var(--border-color-light)}.empty-state p{font-size:1.25rem;margin:0}.empty-state span{font-size:1rem}.refresh-btn{background:none;border:1px solid var(--border-color-light);padding:8px 12px;border-radius:5px;cursor:pointer;transition:all .2s;color:var(--text-primary-light)}.refresh-btn:hover:not(:disabled){background-color:var(--table-row-hover-light);border-color:var(--text-secondary-light)}.dark-mode-toggle{background:none;border:1px solid var(--sidebar-text-category);color:var(--sidebar-text);width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.2rem;display:flex;justify-content:center;align-items:center;transition:all .2s}.dark-mode-toggle:hover{background-color:var(--sidebar-link-active);color:var(--sidebar-text-hover)}body.dark-theme{--bg-primary-light: var(--bg-primary-dark);--bg-secondary-light: var(--bg-secondary-dark);--text-primary-light: var(--text-primary-dark);--text-secondary-light: var(--text-secondary-dark);--border-color-light: var(--border-color-dark);--table-header-light: var(--table-header-dark);--table-row-hover-light: var(--table-row-hover-dark)}.dark-theme .login-card{box-shadow:0 4px 12px #00000080}.dark-theme .card{box-shadow:0 2px 4px #0000004d}.modelo-download-section{border-top:1px solid var(--border-color-light);margin-top:1.5rem;padding-top:1.5rem;text-align:center}.modelo-download-section p{margin-top:0;margin-bottom:1rem;color:var(--text-secondary-light)}.secondary-btn{background-color:transparent;border:1px solid var(--brand-primary);color:var(--brand-primary);padding:10px 20px;border-radius:5px;cursor:pointer;font-weight:700;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.secondary-btn:hover{background-color:var(--brand-primary);color:var(--text-on-brand)}.action-btn{background:none;border:1px solid transparent;color:var(--text-secondary-light);cursor:pointer;padding:8px;width:36px;height:36px;border-radius:50%;font-size:1rem;line-height:1;transition:all .2s}.action-btn:hover:not(:disabled){background-color:var(--table-row-hover-light);color:var(--text-primary-light)}.action-btn:disabled{cursor:not-allowed;color:var(--border-color-light)}.header-actions{display:flex;align-items:center;gap:.75rem}.audit-btn{padding:8px 12px;text-decoration:none;font-size:.9rem}
