.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);padding:2rem}.login-card{background:var(--surface);border-radius:1rem;padding:3rem;width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.login-header{text-align:center;margin-bottom:2rem}.login-logo{width:80px;height:80px;margin:0 auto 1rem;display:block}.login-header h1{font-size:1.75rem;color:var(--text-primary);margin-bottom:.5rem}.login-header p{color:var(--text-secondary);font-size:.95rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group input{padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;transition:border-color .2s}.form-group input:focus{border-color:var(--primary-color)}.form-group input:disabled{background-color:var(--background);cursor:not-allowed}.login-button{padding:.75rem;background:var(--primary-color);color:#fff;border-radius:.5rem;font-size:1rem;font-weight:600;transition:background .2s;margin-top:.5rem}.login-button:hover:not(:disabled){background:var(--primary-dark)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-error{padding:.75rem;background:#fee2e2;color:var(--error);border-radius:.5rem;font-size:.9rem;text-align:center}.login-footer{margin-top:1rem;text-align:center}.forgot-password-link{color:var(--primary-color);text-decoration:none;font-size:.9rem;font-weight:500;transition:color .2s}.forgot-password-link:hover{color:var(--primary-dark);text-decoration:underline}.recovery-success{padding:2rem;text-align:center;background:#d1fae5;border-radius:.5rem;border-left:4px solid #10b981}.recovery-success p{margin:.75rem 0;color:#047857;font-size:1rem}.recovery-success .login-link{display:inline-block;margin-top:1rem;padding:.75rem 1.5rem;background:var(--primary-color);color:#fff;text-decoration:none;border-radius:.5rem;font-weight:500;transition:background .2s}.recovery-success .login-link:hover{background:var(--primary-dark)}.recovery-error{padding:2rem;text-align:center;background:#fee2e2;border-radius:.5rem;border-left:4px solid #dc2626}.recovery-error p{margin:.75rem 0;color:#991b1b;font-size:1rem}.recovery-error .login-link{display:inline-block;margin-top:1rem;padding:.75rem 1.5rem;background:var(--primary-color);color:#fff;text-decoration:none;border-radius:.5rem;font-weight:500;transition:background .2s}.recovery-error .login-link:hover{background:var(--primary-dark)}.reset-link{display:block;margin:1rem 0;padding:1rem;background:var(--background);border:1px solid var(--border-color);border-radius:.5rem;color:var(--primary-color);text-decoration:none;word-break:break-all;font-size:.9rem;transition:background .2s}.reset-link:hover{background:var(--surface);text-decoration:underline}@media (max-width: 768px){.login-container{padding:1rem}.login-card{padding:2rem 1.5rem}.login-header h1{font-size:1.5rem}}.reset-note{margin-top:1rem!important;padding:.75rem;background:#fff7ed;border-left:4px solid #f59e0b;border-radius:.375rem;color:#92400e;font-size:.9rem;font-style:italic}.dashboard{width:100%}.dashboard-title{font-size:2rem;font-weight:600;color:var(--text-primary);margin-bottom:2rem}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.stat-card{background:var(--surface);border-radius:.75rem;padding:1.5rem;display:flex;align-items:center;gap:1.5rem;box-shadow:var(--shadow);transition:transform .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.stat-icon{font-size:2.5rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:var(--background);border-radius:.5rem;color:var(--primary-color)}.stat-content{flex:1}.stat-label{font-size:.9rem;color:var(--text-secondary);margin-bottom:.5rem;font-weight:500}.stat-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.dashboard-loading{display:flex;align-items:center;justify-content:center;min-height:400px;font-size:1.25rem;color:var(--text-secondary)}@media (max-width: 768px){.dashboard-title{font-size:1.5rem;margin-bottom:1.5rem}.dashboard-stats{grid-template-columns:1fr;gap:1rem}.stat-card{padding:1.25rem;gap:1rem}.stat-icon{width:48px;height:48px;font-size:2rem}.stat-value{font-size:1.5rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--surface);border-radius:1rem;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);position:relative;z-index:10000}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:1.5rem;font-weight:600;color:var(--text-primary)}.modal-close{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.aluno-form{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.form-group input,.form-group select,.form-group textarea{padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-color);outline:none}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.7}.form-actions{display:flex;justify-content:flex-end;gap:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.btn-cancel{padding:.75rem 1.5rem;background:var(--background);color:var(--text-primary);border-radius:.5rem;font-weight:500;transition:background .2s}.btn-cancel:hover{background:var(--border-color)}.btn-submit{padding:.75rem 1.5rem;background:var(--primary-color);color:#fff;border-radius:.5rem;font-weight:600;transition:background .2s}.btn-submit:hover:not(:disabled){background:var(--primary-dark)}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-weight:500;color:var(--text-primary);font-size:.9rem}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--primary-color)}.checkbox-label span{flex:1}@media (max-width: 768px){.modal-content{width:100%;max-width:100%;max-height:100vh;border-radius:.75rem}.modal-header{padding:1rem}.aluno-form{padding:1rem;gap:1rem}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column;align-items:stretch}}.detalhes-content{max-width:700px;max-height:90vh}.detalhes-body{padding:1.5rem;display:flex;flex-direction:column;gap:2rem;overflow-y:auto}.detalhes-section{display:flex;flex-direction:column;gap:1rem}.detalhes-section h3{font-size:1.25rem;font-weight:600;color:var(--primary-color);margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary-color)}.detalhes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.detalhes-item{display:flex;flex-direction:column;gap:.25rem}.detalhes-label{font-size:.85rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.detalhes-value{font-size:1rem;color:var(--text-primary);font-weight:500;padding:.5rem;background:var(--background);border-radius:.5rem}.detalhes-actions{padding:1rem 1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end}.btn-close-detalhes{padding:.75rem 1.5rem;background:var(--primary-color);color:#fff;border-radius:.5rem;font-weight:600;transition:background .2s}.btn-close-detalhes:hover{background:var(--primary-dark)}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color .2s}.modal-close:hover{color:var(--text-primary)}@media (max-width: 768px){.detalhes-content{max-width:100%;max-height:100vh}.detalhes-body{padding:1rem;gap:1.5rem}.detalhes-grid{grid-template-columns:1fr}.detalhes-actions{padding:1rem}.btn-close-detalhes{width:100%}}.alunos{width:100%}.alunos-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.alunos-title{font-size:2rem;font-weight:600;color:var(--text-primary)}.alunos-filters{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.search-input{flex:1;min-width:300px;max-width:400px;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem}.status-filter{display:flex;gap:.5rem;background:var(--background);padding:.25rem;border-radius:.5rem}.filter-btn{padding:.5rem 1rem;background:transparent;border:none;border-radius:.375rem;cursor:pointer;font-size:.9rem;color:var(--text-secondary);transition:all .2s;font-weight:500}.filter-btn:hover{background:var(--surface);color:var(--text-primary)}.filter-btn.active{background:var(--primary-color);color:#fff}.alunos-table-container{background:var(--surface);border-radius:.75rem;box-shadow:var(--shadow);overflow:visible}.alunos-table{width:100%;border-collapse:collapse}.alunos-table thead{background:var(--background)}.alunos-table th{padding:1rem;text-align:left;font-weight:600;color:var(--text-primary);font-size:.9rem;border-bottom:1px solid var(--border-color)}.alunos-table td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-secondary);position:relative;vertical-align:middle}.alunos-table tbody tr:hover{background:var(--background)}.alunos-table tbody tr:hover .btn-detalhes{background:var(--primary-color)!important;color:#fff!important}.alunos-table tbody tr:hover .btn-detalhes:hover{background:var(--primary-dark)!important;color:#fff!important}.empty-state{text-align:center;padding:2rem;color:var(--text-secondary)}.btn-primary{padding:.75rem 1.5rem;background:var(--primary-color)!important;color:#fff!important;border-radius:.5rem;font-weight:600;transition:background .2s;border:none;cursor:pointer}.btn-edit{padding:.5rem 1rem;background:var(--secondary-color);color:#fff;border-radius:.5rem;font-size:.9rem;margin-right:.5rem;transition:background .2s}.btn-edit:hover{background:#4f46e5}.btn-delete{padding:.5rem 1rem;background:var(--error);color:#fff;border-radius:.5rem;font-size:.9rem;transition:background .2s}.btn-delete:hover{background:#dc2626}.btn-detalhes{padding:.5rem 1rem;background:var(--primary-color);color:#fff;border-radius:.5rem;font-size:.9rem;transition:background .2s;border:none;cursor:pointer;white-space:nowrap}.btn-detalhes:hover{background:var(--primary-dark)!important;color:#fff!important}.table-actions{display:flex;align-items:center;gap:.5rem}.actions-menu-dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;background:#fff;border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 4px 12px #00000026;min-width:140px;z-index:1000;overflow:hidden}.actions-menu-item{width:100%;padding:.75rem 1rem;background:none;border:none;text-align:left;font-size:.9rem;color:var(--text-primary);cursor:pointer;transition:background .2s;display:block}.actions-menu-item-baixa{color:#f59e0b;border-top:1px solid var(--border-color)}.actions-menu-item-baixa:hover{background:#fef3c7}.aluno-inativo{opacity:.6;background:#f9fafb!important}.aluno-inativo:hover{background:#f3f4f6!important}.badge-inativo{display:inline-block;margin-left:.5rem;padding:.25rem .5rem;background:#ef4444;color:#fff;border-radius:.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase}.baixa-info{padding:1rem;background:var(--background);border-radius:.5rem;margin-bottom:1.5rem}.baixa-info p{margin:.5rem 0;color:var(--text-primary)}.baixa-warning{color:#f59e0b!important;font-weight:500;padding:.75rem;background:#fef3c7;border-left:4px solid #f59e0b;border-radius:.375rem;margin-top:1rem!important}.baixa-form{padding:0}.baixa-resultado{padding:1rem}.baixa-success{padding:1.5rem;background:#d1fae5;border-radius:.5rem;border-left:4px solid #10b981;margin-bottom:1.5rem}.baixa-success h3{margin:0 0 .5rem;color:#065f46;font-size:1.25rem}.baixa-success p{margin:0;color:#047857}.mensalidades-pendentes-info{padding:1.5rem;background:#fef3c7;border-radius:.5rem;border-left:4px solid #f59e0b}.mensalidades-pendentes-info h4{margin:0 0 1rem;color:#d97706;font-size:1.1rem}.pendentes-resumo{margin-bottom:1.5rem;padding:1rem;background:#fff;border-radius:.375rem}.pendentes-resumo p{margin:.5rem 0;color:var(--text-primary);font-size:1rem}.pendentes-detalhes h5{margin:0 0 .75rem;color:var(--text-primary);font-size:.95rem;font-weight:600}.pendente-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#fff;border-radius:.375rem;margin-bottom:.5rem;gap:1rem}.pendente-vencimento{color:var(--text-primary);font-weight:500;min-width:100px}.pendente-status{padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;font-weight:500}.pendente-status.atrasada{background:#fee2e2;color:#dc2626}.pendente-status.em_aberto{background:#dbeafe;color:#2563eb}.pendente-status.pendente{background:#fef3c7;color:#f59e0b}.pendente-valor{color:var(--text-primary);font-weight:600;min-width:100px;text-align:right}.pendentes-nota{margin-top:1rem;padding:.75rem;background:#fff;border-radius:.375rem;color:var(--text-secondary);font-size:.9rem;font-style:italic}.sem-pendencias{padding:1.5rem;background:#d1fae5;border-radius:.5rem;text-align:center}.sem-pendencias p{margin:0;color:#047857;font-weight:500;font-size:1.05rem}.modal-content{background:var(--surface);border-radius:.75rem;padding:2rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}@media (max-width: 900px){.alunos-table-container{overflow-x:auto}.alunos-table{min-width:720px}}@media (max-width: 768px){.alunos-header{flex-direction:column;align-items:flex-start;gap:1rem}.alunos-title{font-size:1.5rem}.alunos-filters{flex-direction:column;align-items:stretch}.search-input{min-width:100%;max-width:none}.status-filter{width:100%;justify-content:space-between}.alunos-table th,.alunos-table td{padding:.75rem;font-size:.9rem}.table-actions{flex-wrap:wrap;justify-content:flex-start}.modal-content{padding:1.5rem}.form-actions{flex-direction:column;align-items:stretch}}.turmas{width:100%}.turmas-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.turmas-title{font-size:2rem;font-weight:600;color:var(--text-primary)}.turmas-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.filtro-select{padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:.5rem;background:var(--surface);color:var(--text-primary);font-size:.95rem;cursor:pointer}.filtro-select:focus{outline:none;border-color:var(--primary-color)}.turma-form-card{background:var(--surface);border-radius:.75rem;padding:1.5rem;margin-bottom:2rem;box-shadow:var(--shadow)}.turma-form-card h2{font-size:1.5rem;margin-bottom:1.5rem;color:var(--text-primary)}.turmas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.turma-card{background:var(--surface);border-radius:.75rem;padding:1.5rem;box-shadow:var(--shadow);transition:transform .2s;display:flex;flex-direction:column}.turma-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.turma-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.turma-card h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.modalidade-badge{background:var(--primary-color);color:#fff;padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;font-weight:500}.turma-info{flex:1;margin-bottom:1rem}.turma-info p{margin-bottom:.5rem;color:var(--text-secondary);font-size:.95rem}.turma-info strong{color:var(--text-primary);font-weight:600}.turma-actions{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border-color)}.btn-detalhes{background:var(--primary-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:.5rem;cursor:pointer;font-size:.9rem;transition:background .2s;width:100%}.btn-detalhes:hover{background:var(--primary-color-dark)}.alunos-sem-turma-section{background:var(--surface);border-radius:.75rem;padding:1.5rem;margin-bottom:2rem;box-shadow:var(--shadow)}.alunos-sem-turma-section h2{font-size:1.5rem;margin-bottom:1.5rem;color:var(--text-primary)}.modalidade-group{margin-bottom:2rem}.modalidade-group:last-child{margin-bottom:0}.modalidade-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary-color)}.alunos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.aluno-card{background:var(--background);border:1px solid var(--border-color);border-radius:.5rem;padding:1rem;display:flex;flex-direction:column;gap:.5rem}.aluno-info{display:flex;flex-direction:column;gap:.5rem}.aluno-info strong{color:var(--text-primary);font-size:.95rem}.pacote-badge{background:var(--secondary-color);color:#fff;padding:.25rem .5rem;border-radius:.5rem;font-size:.8rem;align-self:flex-start}.pacote-badge-small{background:var(--secondary-color);color:#fff;padding:.2rem .5rem;border-radius:.5rem;font-size:.75rem}.pacote-badge-small.incompativel{background:#f59e0b;opacity:.7}.pacote-badge-small.sem-pacote{background:#6b7280}.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:2rem}.turma-detalhes-modal{background:var(--surface);border-radius:.75rem;padding:2rem;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--border-color)}.modal-header h2{font-size:1.75rem;color:var(--text-primary);margin:0}.modal-close{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:.5rem;transition:background .2s}.modal-close:hover{background:var(--background)}.turma-detalhes-info{margin-bottom:2rem}.turma-detalhes-info p{margin-bottom:.75rem;color:var(--text-secondary);font-size:1rem}.turma-detalhes-info strong{color:var(--text-primary);font-weight:600}.turma-alunos-section,.adicionar-aluno-section{margin-bottom:2rem}.turma-alunos-section h3,.adicionar-aluno-section h3{font-size:1.25rem;color:var(--text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.alunos-lista,.alunos-disponiveis{display:flex;flex-direction:column;gap:.75rem}.aluno-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--background);border-radius:.5rem;border:1px solid var(--border-color)}.aluno-item span:first-child{flex:1;color:var(--text-primary);font-weight:500}.aluno-info-flex{display:flex;flex-direction:column;gap:.5rem;flex:1}.modalidade-info{background:#eff6ff;padding:.75rem;border-radius:.5rem;color:#1e40af;font-size:.9rem;margin-bottom:1rem;border-left:3px solid var(--primary-color)}.btn-add{background:var(--primary-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:.5rem;cursor:pointer;font-size:.85rem;transition:background .2s}.btn-add:hover{background:var(--primary-dark)}.btn-add:disabled{background:#d1d5db;cursor:not-allowed}.btn-remove{background:#dc2626;color:#fff;border:none;padding:.5rem 1rem;border-radius:.5rem;cursor:pointer;font-size:.85rem;transition:background .2s}.btn-remove:hover{background:#b91c1c}.empty-state{grid-column:1 / -1;text-align:center;padding:3rem;color:var(--text-secondary);font-size:1.1rem}.empty-state-small{text-align:center;padding:1rem;color:var(--text-secondary);font-size:.9rem;font-style:italic}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1rem}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.5rem;color:var(--text-primary);font-weight:500;font-size:.9rem}.form-group input,.form-group select{padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;background:var(--background);color:var(--text-primary);font-size:.95rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color)}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.btn-submit{background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;cursor:pointer;font-size:.95rem;font-weight:500;transition:background .2s}.btn-submit:hover{background:var(--primary-color-dark)}.btn-cancel{background:var(--background);color:var(--text-primary);border:1px solid var(--border-color);padding:.75rem 1.5rem;border-radius:.5rem;cursor:pointer;font-size:.95rem;font-weight:500;transition:background .2s}.btn-primary{background:var(--primary-color)!important;color:#fff!important;border:none;padding:.75rem 1.5rem;border-radius:.5rem;cursor:pointer;font-size:.95rem;font-weight:500;transition:background .2s}.btn-primary:hover{background:var(--primary-dark)!important;color:#fff!important}.btn-secondary{background:var(--surface);color:var(--text-primary);border:1px solid var(--border-color);padding:.75rem 1.5rem;border-radius:.5rem;cursor:pointer;font-size:.95rem;font-weight:500;transition:background .2s}.btn-secondary:hover{background:var(--background)}@media (max-width: 768px){.turmas-title{font-size:1.5rem}.turmas-header{flex-direction:column;align-items:flex-start}.turmas-actions{width:100%}.turmas-grid,.alunos-grid{grid-template-columns:1fr}.turma-form-card,.alunos-sem-turma-section{padding:1.25rem}.turma-detalhes-modal{padding:1.5rem}.aluno-item{flex-direction:column;align-items:flex-start}.form-actions{flex-direction:column;align-items:stretch}}.search-input{flex:1;min-width:300px;max-width:400px;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;transition:border-color .2s}.search-input:focus{border-color:var(--primary-color);outline:none}@media (max-width: 768px){.search-input{min-width:100%;max-width:none}}.aniversarios{width:100%}.aniversarios-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.aniversarios-title{font-size:2rem;font-weight:600;color:var(--text-primary)}.mes-select{padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;background:var(--surface);color:var(--text-primary)}.aniversarios-calendar{width:100%}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}.calendar-day{background:var(--surface);border-radius:.75rem;padding:1.5rem;box-shadow:var(--shadow);transition:transform .2s}.calendar-day:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.day-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.day-number{font-size:2rem;font-weight:700;color:var(--primary-color)}.day-label{font-size:.9rem;color:var(--text-secondary);font-weight:500}.day-birthdays{display:flex;flex-direction:column;gap:.75rem}.birthday-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--background);border-radius:.5rem}.birthday-name{font-weight:500;color:var(--text-primary)}.birthday-age{font-size:.85rem;color:var(--text-secondary)}@media (max-width: 768px){.aniversarios-header{flex-direction:column;align-items:flex-start;gap:1rem}.aniversarios-title{font-size:1.5rem}.mes-select{width:100%}.calendar-grid{grid-template-columns:1fr}.calendar-day{padding:1.25rem}}.mensalidades{width:100%}.mensalidades-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.mensalidades-header .header-actions{display:flex;align-items:center;gap:1rem}.view-toggle{display:flex;gap:.5rem;background:var(--background);padding:.25rem;border-radius:.5rem}.view-toggle-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:none;border-radius:.375rem;cursor:pointer;font-size:.9rem;color:var(--text-secondary);transition:all .2s}.view-toggle-btn:hover{background:var(--surface);color:var(--text-primary)}.view-toggle-btn.active{background:var(--primary-color);color:#fff}.view-toggle-btn svg{font-size:1.1rem}.mensalidades-title{font-size:2rem;font-weight:600;color:var(--text-primary)}.total-badge{background:var(--primary-color);color:#fff;padding:.5rem 1rem;border-radius:.5rem;font-weight:600;font-size:.95rem}.status-groups-container{display:flex;flex-direction:column;gap:1rem}.status-group{background:var(--surface);border-radius:.75rem;box-shadow:var(--shadow);overflow:visible}.status-group-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;cursor:pointer;transition:background .2s;border-left:4px solid}.status-group-header:hover{background:#00000005}.status-group-title{display:flex;align-items:center;gap:.75rem;flex:1}.status-icon{font-size:1.5rem;display:flex;align-items:center;justify-content:center}.status-label{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.status-count{background:#fffc;padding:.25rem .75rem;border-radius:1rem;font-size:.9rem;font-weight:600;margin-left:.5rem}.toggle-btn{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:.5rem;transition:color .2s;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:.5rem}.toggle-btn:hover{background:#0000000d;color:var(--text-primary)}.toggle-btn svg{width:100%;height:100%}.status-group-content{padding:0;border-top:1px solid var(--border-color);overflow:visible}.status-group-nested{margin-left:1rem;margin-top:.5rem}.mes-groups-container{display:flex;flex-direction:column;gap:1.5rem}.mes-group{background:var(--surface);border-radius:.75rem;box-shadow:var(--shadow);overflow:visible}.mes-group-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;cursor:pointer;transition:background .2s;background:var(--background);border-bottom:2px solid var(--border-color)}.mes-group-header:hover{background:#00000005}.mes-group-title{display:flex;align-items:center;gap:1rem;flex:1;flex-wrap:wrap}.mes-icon{font-size:1.75rem;color:var(--primary-color);display:flex;align-items:center;justify-content:center}.mes-label{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.mes-status-badges{display:flex;gap:.5rem;align-items:center;margin-left:1rem}.mes-badge{padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;font-weight:600}.mes-badge.atrasada{background:#fee2e2;color:#dc2626}.mes-badge.em_aberto{background:#fef3c7;color:#f59e0b}.mes-badge.pendente{background:#dbeafe;color:#3b82f6}.mes-badge.paga{background:#d1fae5;color:#10b981}.mes-count{font-size:.95rem;font-weight:600;color:var(--text-secondary);margin-left:auto;padding-left:1rem}.mes-group-content{padding:1rem;display:flex;flex-direction:column;gap:.75rem;overflow:visible}.mensalidades-table-container{background:var(--surface)}.mensalidades-table{width:100%;border-collapse:collapse;overflow:visible}.mensalidades-table thead{background:var(--background)}.mensalidades-table th{padding:1rem;text-align:left;font-weight:600;color:var(--text-primary);font-size:.9rem;border-bottom:1px solid var(--border-color)}.mensalidades-table td{padding:1rem;border-bottom:1px solid var(--border-color);color:var(--text-secondary);position:relative;overflow:visible}.mensalidades-table td:last-child{overflow:visible}.mensalidades-table tbody tr{position:relative}.mensalidades-table tbody tr:hover{background:var(--background)}.status-badge{padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;font-weight:500}.status-badge.atrasada{background:#fee2e2;color:#dc2626}.status-badge.paga{background:#d1fae5;color:#10b981}.status-badge.pendente{background:#fef3c7;color:#f59e0b}.status-badge.em_aberto{background:#dbeafe;color:#1e40af}.btn-baixa{padding:.5rem 1rem;background:var(--success);color:#fff;border:none;border-radius:.5rem;font-size:.9rem;cursor:pointer;transition:background .2s}.btn-baixa:hover{background:#059669}.pagamento-info{display:flex;flex-direction:column;gap:.25rem}.metodo-pagamento{font-weight:500;color:var(--text-primary);font-size:.9rem}.data-pagamento{font-size:.85rem;color:var(--text-secondary)}.baixa-form{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.empty-state-full{text-align:center;padding:3rem;color:var(--text-secondary);font-size:1.1rem;background:var(--surface);border-radius:.75rem;box-shadow:var(--shadow)}.loading{text-align:center;padding:3rem;color:var(--text-secondary);font-size:1.1rem}.modal-content{background:var(--surface);border-radius:.75rem;padding:2rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.form-group select,.form-group textarea{padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;font-family:inherit;transition:border-color .2s}.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-color);outline:none}.table-actions{display:flex;align-items:center;gap:.5rem;justify-content:flex-end}.actions-menu-wrapper{position:relative}.actions-menu-btn{background:none;border:1px solid var(--border-color);color:var(--text-secondary);border-radius:.375rem;cursor:pointer;font-size:1.25rem;line-height:1;padding:.25rem .5rem;transition:all .2s}.actions-menu-btn:hover{background:var(--background);border-color:var(--primary-color);color:var(--text-primary)}.actions-menu-dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;background:#fff;border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 4px 12px #00000026;min-width:140px;z-index:9999;overflow:hidden}.actions-menu-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;text-align:left;font-size:.9rem;color:var(--text-primary);cursor:pointer;transition:background .2s}.actions-menu-item:hover{background:var(--background)}.actions-menu-item svg{font-size:1.1rem;color:var(--text-secondary)}.actions-menu-item:hover svg{color:var(--primary-color)}.actions-menu-item-delete{color:var(--error);border-top:1px solid var(--border-color)}.actions-menu-item-delete:hover{background:#fee2e2}.actions-menu-item-delete:hover svg{color:#dc2626}.confirm-content{padding:1.5rem}.confirm-content p{margin-bottom:1rem;color:var(--text-primary);font-size:1rem}.confirm-warning{color:#dc2626!important;font-weight:600!important;font-size:1.1rem!important;background:#fee2e2;padding:.75rem;border-radius:.5rem;border-left:4px solid #dc2626;margin-bottom:1rem!important}.change-info{padding:.75rem;background:var(--background);border-radius:.5rem;margin-bottom:.5rem;font-size:.9rem;color:var(--text-primary)}.change-info strong{color:var(--text-primary);margin-right:.5rem}.delete-warning{padding:1.5rem;background:#fee2e2;border-radius:.5rem;border-left:4px solid #dc2626;margin-bottom:1.5rem}.delete-warning-title{color:#dc2626!important;font-weight:700!important;font-size:1.1rem!important;margin-bottom:.75rem!important}.delete-warning p{margin:.5rem 0;color:#991b1b;font-size:1rem}.delete-info{padding:1rem;background:var(--background);border-radius:.5rem;margin-bottom:1.5rem}.delete-info p{margin:.75rem 0;color:var(--text-primary);font-size:1rem}.delete-info strong{color:var(--text-primary);font-weight:600;margin-right:.5rem}.delete-confirm{padding:1.5rem;background:#fff7ed;border-radius:.5rem;border-left:4px solid #f59e0b;margin-bottom:1rem}.delete-confirm p{margin:.75rem 0;color:#92400e;font-size:1.05rem}.delete-confirm strong{color:#92400e;font-weight:700;font-size:1.1rem}.delete-confirm-subtitle{font-size:.95rem!important;color:#78350f!important;font-style:italic}.btn-delete{padding:.75rem 1.5rem;background:#dc2626;color:#fff;border:none;border-radius:.5rem;cursor:pointer;font-size:.95rem;font-weight:600;transition:background .2s}.btn-delete:hover{background:#b91c1c}@media (max-width: 900px){.mensalidades-table-container{overflow-x:auto}.mensalidades-table{min-width:760px}}@media (max-width: 768px){.mensalidades-title{font-size:1.5rem}.mensalidades-header{flex-direction:column;align-items:flex-start}.mensalidades-header .header-actions{width:100%;flex-wrap:wrap;gap:.75rem}.view-toggle{width:100%;justify-content:space-between}.status-group-header,.mes-group-header{padding:1rem}.status-label,.mes-label{font-size:1rem}.mensalidades-table th,.mensalidades-table td{padding:.75rem;font-size:.9rem}.table-actions{justify-content:flex-start;flex-wrap:wrap}.modal-content{padding:1.5rem}.form-actions{flex-direction:column;align-items:stretch}}.mensalidades-search{margin-bottom:1.5rem;display:flex}.mensalidades-search .search-input{flex:1;min-width:300px;max-width:400px;padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;transition:border-color .2s}.mensalidades-search .search-input:focus{border-color:var(--primary-color);outline:none}@media (max-width: 768px){.mensalidades-search .search-input{min-width:100%;max-width:none}}.sidebar{position:fixed;left:0;top:0;width:260px;height:100vh;background:var(--surface);border-right:1px solid var(--border-color);display:flex;flex-direction:column;z-index:100;box-shadow:var(--shadow)}.sidebar-header{padding:1.5rem;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.sidebar-logo{width:100%;max-width:180px;height:80px;display:flex;align-items:center;justify-content:center}.sidebar-logo img{width:100%;height:100%;object-fit:contain}.sidebar-close{position:absolute;right:.75rem;top:.5rem;background:var(--background);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:.5rem;width:32px;height:32px;font-size:1.5rem;line-height:1;display:none;align-items:center;justify-content:center;cursor:pointer}.sidebar-nav{flex:1;padding:1rem;display:flex;flex-direction:column;gap:.5rem}.sidebar-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:.5rem;text-decoration:none;color:var(--text-secondary);transition:all .2s;font-weight:500}.sidebar-item:hover{background-color:var(--background);color:var(--text-primary)}.sidebar-item.active{background-color:var(--primary-color);color:#fff}.sidebar-item.active .sidebar-icon{color:#fff}.sidebar-icon{font-size:1.5rem;display:flex;align-items:center;justify-content:center}.sidebar-label{font-size:.95rem}@media (max-width: 768px){.sidebar{width:240px;transform:translate(-100%);transition:transform .3s}.sidebar.open{transform:translate(0)}.sidebar-close{display:flex}}.header{background:var(--surface);border-bottom:1px solid var(--border-color);padding:1rem 2rem;box-shadow:var(--shadow)}.header-content{display:flex;align-items:center;justify-content:space-between}.header-left{flex:1;display:flex;align-items:center;gap:.75rem}.header-menu-button{background:var(--background);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:.5rem;width:40px;height:40px;display:none;align-items:center;justify-content:center;font-size:1.5rem}.header-menu-button:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.header-title{font-size:1.5rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.header-saudacao{font-weight:500;color:var(--text-secondary)}.header-company{color:var(--primary-color);font-weight:600}.header-actions{display:flex;align-items:center;gap:.75rem}.header-change-password{padding:.5rem;background:var(--background);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:.5rem;font-size:1.25rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;width:40px;height:40px}.header-change-password:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.header-logout{padding:.5rem 1rem;background:var(--error);color:#fff;border-radius:.5rem;font-weight:500;transition:background .2s;border:none;cursor:pointer}.header-logout:hover{background:#dc2626}@media (max-width: 768px){.header{padding:.75rem 1rem}.header-menu-button{display:inline-flex}.header-title{font-size:1.1rem;flex-wrap:wrap}.header-actions{gap:.5rem}.header-logout{padding:.4rem .75rem;font-size:.85rem}.header-change-password{width:36px;height:36px;font-size:1.1rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;padding:2rem}.modal-content{background:var(--surface);border-radius:.75rem;padding:2rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:1.5rem;color:var(--text-primary);margin:0}.modal-close{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:.5rem;transition:background .2s}.modal-close:hover{background:var(--background);color:var(--text-primary)}.change-password-form{display:flex;flex-direction:column;gap:1.5rem}.password-success{padding:2rem;text-align:center;background:#d1fae5;border-radius:.5rem;border-left:4px solid #10b981}.password-success p{margin:0;color:#047857;font-weight:600;font-size:1.1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--text-primary);font-size:.9rem}.form-group input{padding:.75rem;border:1px solid var(--border-color);border-radius:.5rem;font-size:1rem;font-family:inherit;transition:border-color .2s}.form-group input:focus{border-color:var(--primary-color);outline:none}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem}.btn-cancel{padding:.75rem 1.5rem;background:var(--background);color:var(--text-primary);border:1px solid var(--border-color);border-radius:.5rem;cursor:pointer;font-size:.95rem;font-weight:500;transition:background .2s}.btn-cancel:hover{background:var(--surface)}.btn-submit{padding:.75rem 1.5rem;background:var(--primary-color);color:#fff;border:none;border-radius:.5rem;cursor:pointer;font-size:.95rem;font-weight:500;transition:background .2s}.btn-submit:hover{background:var(--primary-dark)}.login-error{padding:.75rem;background:#fee2e2;color:#dc2626;border-radius:.5rem;font-size:.9rem;margin-bottom:1rem}@media (max-width: 768px){.modal-overlay{padding:1rem}.modal-content{padding:1.5rem;max-width:100%}.form-actions{flex-direction:column;align-items:stretch}}.layout{display:flex;min-height:100vh;background-color:var(--background)}.layout-main{flex:1;display:flex;flex-direction:column;margin-left:260px}.layout-content{flex:1;padding:2rem;overflow-y:auto}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:90}.sidebar-overlay.show{opacity:1;pointer-events:auto}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.25rem;color:var(--text-secondary)}@media (max-width: 768px){.layout-main{margin-left:0}.layout-content{padding:1rem}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #f6a5c3;--primary-dark: #e891b2;--secondary-color: #6366f1;--background: #f8fafc;--surface: #ffffff;--text-primary: #1e293b;--text-secondary: #64748b;--border-color: #e2e8f0;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--text-primary)}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,select,textarea{font-family:inherit;outline:none}
