.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);padding:1rem}.login-container{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:420px;padding:2rem}.login-header{text-align:center;margin-bottom:2rem}.login-logo{margin-bottom:1.5rem}.logo-icon{width:80px;height:80px;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto;color:#fff}.login-header h1{font-size:1.75rem;font-weight:700;color:var(--primary);margin:0 0 .5rem}.login-header p{color:var(--gray-600);margin:0;font-size:1rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.login-error{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fee2e2;border:1px solid #FCA5A5;border-radius:8px;color:var(--danger);font-size:.875rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:var(--gray-700);font-size:.875rem}.input-group{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:1rem;color:var(--gray-400);pointer-events:none}.input-group input{width:100%;padding:.875rem 1rem .875rem 3rem;border:2px solid var(--gray-200);border-radius:8px;font-size:1rem;transition:all .2s ease;background:#fff}.input-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #313b641a}.input-group input:disabled{background:var(--gray-100);cursor:not-allowed}.login-button{padding:1rem;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #313b644d}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--gray-200);text-align:center}.login-footer p{color:var(--gray-600);font-size:.875rem;margin:.25rem 0}.form-info{background:#f0f7ff;border-left:4px solid var(--primary);border-radius:4px;padding:.875rem 1rem}.form-info p{margin:0;color:var(--gray-700);font-size:.875rem;line-height:1.5}.toggle-password{position:absolute;right:.875rem;background:transparent;border:none;cursor:pointer;color:var(--gray-400);display:flex;align-items:center;justify-content:center;padding:.25rem;border-radius:4px;transition:color .15s ease}.toggle-password:hover{color:var(--primary)}.toggle-password:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.link-btn{background:none;border:none;color:var(--primary);text-decoration:underline;cursor:pointer;padding:0;font-size:inherit;font-family:inherit;font-weight:600}.link-btn:hover{color:var(--primary-dark)}.gate-bloqueio{text-align:center;padding:1rem 0}.gate-bloqueio-icon{width:64px;height:64px;background:#fef3c7;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;color:#d97706}.gate-bloqueio h2{font-size:1.25rem;font-weight:700;color:#1e293b;margin:0 0 .75rem}.gate-bloqueio p{color:#475569;font-size:.9375rem;line-height:1.6;margin:0 0 1.5rem}.gate-bloqueio-actions{display:flex;flex-direction:column;align-items:center;gap:.5rem}@media (max-width: 480px){.login-container{padding:1.5rem}.login-header h1{font-size:1.5rem}.logo-icon{width:64px;height:64px}.logo-icon svg{width:24px;height:24px}}.acompanhamento-form-page{min-height:calc(100vh - 92px);background:#f8fafc;padding:0}.page-container{max-width:100%;margin:0;padding:2rem}.page-header{background:#fff;border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:1.5rem;box-shadow:0 2px 8px #00000014;display:flex;justify-content:space-between;align-items:center}.header-content{display:flex;align-items:center;gap:1rem}.header-icon{width:48px;height:48px;background:#313b64;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.header-text h1{margin:0;font-size:1.375rem;font-weight:700;color:#1e293b}.header-text p{margin:.125rem 0 0;font-size:.875rem;color:#64748b}.header-actions{display:flex;gap:.75rem}.btn-primary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#313b64;border:none;border-radius:8px;color:#fff;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-primary:hover:not(:disabled){background:#252e4d;transform:translateY(-2px);box-shadow:0 4px 12px #313b6466}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#fff;border:2px solid #E2E8F0;border-radius:8px;color:#64748b;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-secondary:hover{border-color:#313b64;color:#313b64}.btn-add{width:100%;padding:.75rem 1.5rem;background:#f8fafc;border:2px dashed #CBD5E1;border-radius:8px;color:#64748b;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.btn-add:hover{background:#fff;border-color:#313b64;color:#313b64}.btn-icon-danger{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #E2E8F0;border-radius:8px;color:#ef4444;cursor:pointer;transition:all .2s ease;flex-shrink:0}.btn-icon-danger:hover{background:#fee2e2;border-color:#ef4444}.alert-error{background:#fee2e2;border:2px solid #EF4444;color:#991b1b;padding:1rem 1.25rem;border-radius:12px;margin-bottom:1.5rem;font-weight:600;font-size:.9375rem}.alert-warning{background:#fef3c7;border:2px solid #F59E0B;color:#92400e;padding:1rem 1.25rem;border-radius:12px;margin-bottom:1.5rem;display:flex;align-items:flex-start;gap:.75rem}.alert-warning svg{flex-shrink:0;margin-top:2px}.alert-warning strong{display:block;font-weight:700;margin-bottom:.25rem}.alert-warning p{margin:0;font-size:.875rem}.form-section{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 2px 8px #00000014}.section-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #F1F5F9}.section-header svg{color:#313b64;flex-shrink:0}.section-header h2{margin:0;font-size:1.125rem;font-weight:700;color:#1e293b}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.form-field{display:flex;flex-direction:column;gap:.5rem}.form-field.col-span-2{grid-column:span 2}.form-field.col-span-3{grid-column:span 3}.form-field label{font-size:.875rem;font-weight:600;color:#475569}.form-field input,.form-field select,.form-field textarea{padding:.75rem 1rem;border:2px solid #E2E8F0;border-radius:8px;font-size:.9375rem;color:#1e293b;background:#fff;transition:all .2s ease;font-family:inherit}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:#313b64;background:#fff}.form-field input::placeholder,.form-field textarea::placeholder{color:#94a3b8}.form-field textarea{resize:vertical;min-height:100px;line-height:1.6}.form-field input:disabled,.form-field select:disabled,.form-field textarea:disabled{background:#f8fafc;cursor:not-allowed;opacity:.7}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#64748b;white-space:nowrap;padding:0 .5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;padding:0;border:2px solid #E2E8F0}.dynamic-row{display:flex;gap:.75rem;margin-bottom:.875rem;align-items:center}.dynamic-field{flex:1}.dynamic-field input,.dynamic-field select{width:100%;padding:.75rem 1rem;border:2px solid #E2E8F0;border-radius:8px;font-size:.9375rem;color:#1e293b;transition:all .2s ease}.dynamic-field input:focus,.dynamic-field select:focus{outline:none;border-color:#313b64}.dynamic-field input:read-only{background:#f8fafc}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;background:#fff;border-radius:12px;padding:3rem}.spinner{width:48px;height:48px;border:4px solid #E2E8F0;border-top-color:#313b64;border-radius:50%;animation:spin 1s linear infinite}.loading-state p{margin:0;color:#64748b;font-size:.9375rem}@media (max-width: 1024px){.form-grid{grid-template-columns:repeat(2,1fr)}.form-field.col-span-3{grid-column:span 2}}@media (max-width: 768px){.page-container{padding:1rem}.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.header-actions{width:100%}.btn-primary,.btn-secondary{flex:1;justify-content:center}.form-grid{grid-template-columns:1fr}.form-field.col-span-2,.form-field.col-span-3{grid-column:span 1}.dynamic-row{flex-wrap:wrap}.dynamic-field{width:100%!important;min-width:100%!important}.checkbox-label{padding:.75rem 1rem;background:#f8fafc;border-radius:8px}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #313b64;--primary-dark: #252e4d;--secondary: #60A5FA;--success: #10B981;--warning: #F59E0B;--danger: #EF4444;--gray-50: #F8FAFC;--gray-100: #F1F5F9;--gray-200: #E2E8F0;--gray-300: #CBD5E1;--gray-400: #94A3B8;--gray-500: #64748B;--gray-600: #475569;--gray-700: #334155;--gray-800: #1E293B;--gray-900: #0F172A}body{font-family:"Exo 2",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--gray-50);color:var(--gray-800)}#root{min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.container{max-width:1200px;margin:0 auto;padding:0 1rem}@media (max-width: 768px){.container{padding:0 .75rem}}.loading-alunos,.empty-alunos{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:var(--gray-500)}.loading-alunos .spinner{width:40px;height:40px;border:4px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.loading-alunos p,.empty-alunos p{font-size:.95rem;margin-top:.5rem}.empty-alunos svg{color:var(--gray-300);margin-bottom:1rem}
