@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:400px}.toast-item{color:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 4px 6px #0000001a;cursor:pointer;display:flex;align-items:center;gap:10px;animation:toastSlideIn .3s ease-out;min-width:300px}.toast-success{background-color:#10b981}.toast-error{background-color:#ef4444}.toast-info{background-color:#3b82f6}.toast-message{flex:1;font-size:14px;font-weight:500}.toast-close{background:transparent;border:none;color:#fff;cursor:pointer;font-size:18px;font-weight:700;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.auth-input{display:flex;flex-direction:column;gap:.25rem}.auth-input__error{font-size:.75rem;color:#ef4444}.google-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.google-modal-card{max-width:520px;width:100%;padding:2rem;position:relative}.google-modal-title{margin-bottom:1rem;font-size:1.5rem;font-weight:600}.google-modal-description{margin-bottom:1.5rem;color:#475569;line-height:1.6}.google-modal-fields{gap:.75rem;margin-bottom:1.5rem}.google-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.google-modal-cancel{background:#0f172a14;color:#0f172a;border:none;padding:.75rem 1.5rem;border-radius:8px}.google-modal-submit{padding:.75rem 1.5rem;border-radius:8px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-page{min-height:100vh;display:grid;place-items:center;padding:2rem;background:linear-gradient(145deg,#0ea5e926,#0f172ae6),url(https://images.unsplash.com/photo-1526402463812-749d48bd5f86?auto=format&fit=crop&w=1200&q=80);background-size:cover;background-position:center}.login-card{width:100%;max-width:520px;position:relative}.login-header{margin-bottom:1.5rem}.login-title{font-size:1.75rem;font-weight:700}.login-subtitle{color:#475569}.login-tabs{display:flex;margin-bottom:1.5rem;gap:.5rem}.login-tab{flex:1;background:#0f172a14;color:#0f172a;border:none;border-radius:12px;padding:.75rem 1rem;font-weight:600;transition:all .2s ease}.login-tab.is-active{background:linear-gradient(135deg,#38bdf8,#0ea5e9);color:#fff;box-shadow:0 18px 24px -18px #0ea5e9cc}.login-form{display:grid;gap:1rem}.login-error-summary{background:#ef44441f;color:#991b1b;padding:.75rem 1rem;border-radius:10px;border:1px solid rgba(239,68,68,.3);font-size:.85rem;line-height:1.5}.login-error-summary-title{display:block;margin-bottom:.35rem}.login-field-grid{display:grid;gap:.75rem}.login-field{display:flex;flex-direction:column;gap:.25rem}.login-field-error{font-size:.75rem;color:#ef4444}.login-password-wrapper{position:relative;display:flex;align-items:center}.login-password-input{padding-right:2.5rem;margin-bottom:0}.login-password-toggle{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#64748b;padding:0;margin:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.login-password-icon{display:block;margin:0;padding:0;vertical-align:middle}.login-password-hint{font-size:.75rem;color:#94a3b8}.login-forgot{text-align:center;margin-top:-.5rem}.login-forgot-link{color:#0ea5e9;text-decoration:none;font-size:.875rem;font-weight:500}.login-divider{display:flex;align-items:center;gap:1rem;margin:1rem 0 .75rem}.login-divider-line{flex:1;height:1px;background:#0f172a1a}.login-divider-text{color:#64748b;font-size:.875rem}.login-social{display:grid;gap:.75rem}.login-google-button{width:100%;padding:.75rem 1rem;border-radius:12px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;font-weight:500;transition:all .2s ease}.login-google-button:disabled{cursor:not-allowed;opacity:.8}.login-google-button:not(:disabled):hover{background:#f1f5f9}.login-message{padding:1rem 1.25rem;border-radius:12px;color:#fff;margin-bottom:1rem;font-size:.95rem;font-weight:600;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;display:flex;align-items:center;gap:.75rem;animation:slideIn .3s ease-out}.login-message--sucesso{background-color:#10b981}.login-message--info{background-color:#0ea5e9}.login-message--erro{background-color:#ef4444}.login-message-text{display:flex;flex-direction:column;gap:.25rem}.login-message-link{color:#fff;text-decoration:underline;font-size:.85rem;font-weight:500}.login-spinner{width:20px;height:20px;border-radius:999px;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .8s linear infinite}.login-error-banner{background:#fee2e2;color:#991b1b;padding:1rem 1.25rem;border-radius:12px;margin-bottom:1rem;font-size:.95rem;font-weight:600;box-shadow:0 4px 6px -1px #94a3b84d;display:flex;align-items:center;gap:.75rem;animation:slideIn .3s ease-out;border:1px solid rgba(239,68,68,.35)}.login-error-banner-link{color:#b91c1c;text-decoration:underline;font-size:.85rem;font-weight:500}.login-submit{width:100%}.login-submit.is-loading{opacity:.8}.login-submit-content{display:inline-flex;align-items:center;gap:.5rem}.login-submit-spinner{width:16px;height:16px;border-radius:999px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .8s linear infinite}.verifique-email-page{display:flex;min-height:100vh;align-items:center;justify-content:center;background-color:#f5f5f5}.verifique-email-card{background-color:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;max-width:500px;width:100%;text-align:center}.verifique-email-emoji{font-size:4rem;margin-bottom:1rem}.verifique-email-title{margin-bottom:1rem;color:#333}.verifique-email-text{margin-bottom:1.5rem;color:#666;line-height:1.6}.verifique-email-actions{display:grid;gap:.75rem;margin-bottom:1.5rem}.verifique-email-input{padding:.75rem 1rem;border-radius:6px;border:1px solid #e2e8f0;font-size:.95rem}.verifique-email-submit{padding:.75rem 1rem;background-color:#0ea5e9;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600}.verifique-email-submit:disabled{background-color:#94a3b8;cursor:not-allowed}.verifique-email-message{color:#475569;font-size:.85rem}.verifique-email-back{padding:.75rem 2rem;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500}.confirmar-email-page{display:flex;min-height:100vh;align-items:center;justify-content:center;background-color:#f5f5f5;padding:1rem}.confirmar-email-card{background-color:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;max-width:520px;width:100%;text-align:center}.confirmar-email-emoji{font-size:3.5rem;margin-bottom:1rem}.confirmar-email-title{margin-bottom:1rem;color:#333}.confirmar-email-text{margin-bottom:1.5rem;color:#666;line-height:1.6}.confirmar-email-back{padding:.75rem 2rem;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500}.confirmar-email-error{margin-top:1rem;color:#ef4444;font-size:.9rem}.redefinir-page{min-height:100vh;display:grid;place-items:center;padding:2rem;background:linear-gradient(145deg,#0ea5e926,#0f172ae6),url(https://images.unsplash.com/photo-1526402463812-749d48bd5f86?auto=format&fit=crop&w=1200&q=80);background-size:cover;background-position:center}.redefinir-card{width:100%;max-width:420px}.redefinir-header{margin-bottom:1.5rem}.redefinir-title{font-size:1.75rem;font-weight:700}.redefinir-subtitle{color:#475569}.redefinir-success{display:flex;flex-direction:column;gap:1rem}.redefinir-success-banner{padding:1rem;border-radius:12px;background-color:#10b981;color:#fff;display:flex;align-items:center;gap:.75rem}.redefinir-success-text{color:#64748b;font-size:.875rem;line-height:1.6}.redefinir-success-hint{color:#64748b;font-size:.75rem;line-height:1.6;margin-top:.5rem;font-style:italic}.redefinir-success-link{width:100%;text-align:center;text-decoration:none;display:block}.redefinir-form{display:flex;flex-direction:column;gap:1rem}.redefinir-field{display:flex;flex-direction:column;gap:.25rem}.redefinir-error{font-size:.75rem;color:#ef4444}.redefinir-submit{width:100%}.redefinir-back-link{text-align:center;color:#0ea5e9;text-decoration:none;font-size:.875rem}.professor-sidebar{width:280px;background:linear-gradient(180deg,#0f172a,#1e293b);color:#fff;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem}.professor-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.professor-subtitle{opacity:.8;font-size:.9rem}.professor-nav{display:flex;flex-direction:column;gap:.75rem}.professor-nav-link{text-decoration:none;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;display:block;color:#ffffffb3;font-weight:400;cursor:pointer}.professor-nav-link.is-active{background-color:#38bdf840;color:#fff;font-weight:700}.professor-footer{margin-top:auto}.professor-email{font-size:.85rem;opacity:.75;margin-bottom:.5rem}.professor-logout{width:100%}.aluno-layout{flex-direction:column}.aluno-header{background:linear-gradient(135deg,#0ea5e9,#38bdf8);padding:1.5rem 2rem;color:#fff;display:flex;justify-content:space-between;align-items:center}.aluno-title{font-size:1.5rem;font-weight:700}.aluno-email{opacity:.85}.aluno-nav{display:flex;gap:1rem;align-items:center}.aluno-nav-link{color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;background-color:transparent;font-weight:400;cursor:pointer}.aluno-nav-link.is-active{background-color:#ffffff40;font-weight:700}.dashboard-grid{gap:2rem}.dashboard-card-title{font-size:.95rem;color:#64748b;margin-bottom:.5rem}.dashboard-card-value{font-size:2.25rem;font-weight:700}.dashboard-chart-card{height:320px}.dashboard-chart-title{margin-bottom:1rem}.turmas-grid{gap:1.5rem}.turmas-card-title{margin-bottom:1rem}.turmas-error{color:#b91c1c;margin-top:.75rem}.turmas-remove-btn{padding:.35rem .75rem}.alunos-grid{display:grid;gap:1.5rem}.alunos-card-title{margin-bottom:1rem}.alunos-message{padding:.75rem 1rem;border-radius:.5rem;margin-bottom:1rem;border:1px solid transparent}.alunos-message--sucesso{background-color:#d1fae5;color:#065f46;border-color:#10b981}.alunos-message--erro{background-color:#fee2e2;color:#991b1b;border-color:#ef4444}.alunos-form{gap:1rem}.alunos-field{display:flex;flex-direction:column;gap:.25rem}.alunos-input-row{display:flex;align-items:center;gap:.5rem}.alunos-input-flex{flex:1}.alunos-hint{font-size:.75rem;color:#64748b;white-space:nowrap}.alunos-error-text{font-size:.75rem;color:#ef4444}.alunos-submit.is-disabled{opacity:.6;cursor:not-allowed}.alunos-list-header{display:flex;justify-content:space-between;margin-bottom:1rem}.alunos-filter{max-width:240px}.alunos-cpf{font-size:.85rem;color:#64748b}.alunos-contact{display:flex;flex-direction:column;gap:.25rem}.mensalidades-header{display:flex;justify-content:space-between;margin-bottom:1rem}.mensalidades-filter{max-width:200px}.mensalidades-email{font-size:.85rem;color:#64748b}.mensalidades-actions{display:flex;gap:.5rem}.mensalidades-action{padding:.35rem .75rem}.mensalidades-action--cancel{background:#e11d48}.assinatura-grid{display:grid;gap:1.5rem}.assinatura-card-title{margin-bottom:1rem}.assinatura-status-details{display:flex;flex-direction:column;gap:.75rem}.assinatura-plan-title{font-size:1.15rem;font-weight:600}.assinatura-plan-value{color:#64748b}.assinatura-plan-info{color:#64748b;font-size:.9rem}.assinatura-status-tag{align-self:flex-start}.assinatura-mp-status{color:#0ea5e9;font-size:.9rem}.assinatura-payments-title{margin-bottom:.5rem}.assinatura-actions{display:flex;gap:.75rem;flex-wrap:wrap}.assinatura-action--renew{background:#0ea5e9}.assinatura-action--cancel{background:#f97316}.assinatura-planos-form{gap:1.5rem}.assinatura-payment-card{grid-column:1 / -1;background:#f8fafc;border:1px solid rgba(15,23,42,.06)}.assinatura-payment-title{margin-bottom:.75rem;font-weight:600}.assinatura-payment-options{display:flex;gap:1rem;flex-wrap:wrap}.assinatura-payment-option{display:flex;align-items:center;gap:.5rem;cursor:pointer}.assinatura-plan-card{border:1px solid rgba(15,23,42,.08);cursor:pointer}.assinatura-plan-card.is-selected{border:2px solid rgba(14,165,233,.6)}.assinatura-plan-radio{margin-bottom:.75rem}.assinatura-plan-price{color:#0ea5e9;font-weight:600}.assinatura-plan-description{color:#64748b}.assinatura-checkout-message{color:#0ea5e9}.assinatura-checkout-error{color:#ef4444}.assinatura-checkout-info{color:#64748b;font-size:.9rem;margin-top:.75rem}.assinatura-pix-box{margin-top:1rem;padding:1rem;border:1px solid rgba(15,23,42,.12);border-radius:.75rem;display:grid;gap:.75rem;background:#f8fafc}.assinatura-pix-qr{width:220px;max-width:100%;border-radius:.5rem;border:1px solid rgba(15,23,42,.1)}.assinatura-pix-copy{display:grid;gap:.35rem}.assinatura-pix-copy textarea{width:100%;resize:vertical;padding:.6rem .75rem;border:1px solid rgba(15,23,42,.18);border-radius:.5rem}.assinatura-pix-copy-button{width:fit-content}.assinatura-conta-grid{display:grid;gap:1rem}.assinatura-warning{color:#f97316;font-size:.95rem}.assinatura-conta-form{display:grid;gap:.75rem;max-width:540px}.assinatura-conta-field{display:grid;gap:.25rem}.assinatura-conta-hint{color:#64748b}.assinatura-linked-card{background:#f8fafc}.assinatura-linked-title{margin-bottom:.75rem}.assinatura-linked-details{display:grid;gap:.35rem;font-size:.95rem;color:#1e293b}.assinatura-remove-btn{background:#ef4444;margin-top:1rem}.assinatura-observability-grid{display:grid;gap:1rem}.assinatura-observability-metrics{display:grid;gap:.35rem;color:#1e293b;font-size:.95rem}.assinatura-observability-actions{display:flex;gap:.75rem;flex-wrap:wrap}.assinatura-audit-form{display:grid;gap:.5rem;max-width:420px}.assinatura-audit-form input{padding:.6rem .75rem;border:1px solid rgba(15,23,42,.18);border-radius:.5rem}.assinatura-audit-result{display:grid;gap:.35rem;background:#f8fafc;border:1px solid rgba(15,23,42,.08);border-radius:.6rem;padding:.9rem}.config-page{padding:2rem;max-width:800px;margin:0 auto}.config-title{font-size:2rem;font-weight:700;margin-bottom:2rem;text-align:center}.config-section{margin-bottom:2rem}.config-section-title{font-size:1.5rem;font-weight:600;margin-bottom:1rem;text-align:center}.config-section-text{color:#64748b;margin-bottom:1.5rem}.config-section-text--center{text-align:center;margin-bottom:1rem}.config-form{display:flex;flex-direction:column;gap:1rem}.config-field{display:flex;flex-direction:column;gap:.25rem}.config-label{font-size:.875rem;font-weight:500;color:#475569}.config-input-disabled{background-color:#f1f5f9;cursor:not-allowed}.config-helper{font-size:.75rem;color:#64748b;text-align:center;display:block}.config-alert{padding:.75rem;border-radius:8px;font-size:.875rem}.config-alert--error{background-color:#fee2e2;color:#dc2626}.config-alert--success{background-color:#d1fae5;color:#065f46}.config-submit{width:100%;max-width:300px;margin:0 auto}.config-center{display:flex;justify-content:center}.aluno-home-grid{gap:1.5rem}.aluno-home-title{margin-bottom:1rem}.aluno-home-data{display:grid;gap:.5rem}.aluno-home-action{padding:.35rem .75rem}.aluno-home-message{color:#0ea5e9;margin-bottom:.75rem}.aluno-home-error{color:#ef4444;margin-bottom:.75rem}.aluno-home-pix-box{margin-bottom:1rem;padding:1rem;border:1px solid rgba(15,23,42,.12);border-radius:.75rem;display:grid;gap:.75rem;background:#f8fafc}.aluno-home-pix-qr{width:220px;max-width:100%;border-radius:.5rem;border:1px solid rgba(15,23,42,.1)}.aluno-home-pix-code{width:100%;resize:vertical;padding:.6rem .75rem;border:1px solid rgba(15,23,42,.18);border-radius:.5rem}.aluno-home-pix-copy{display:grid;gap:.5rem}.aluno-home-pix-copy-button{width:fit-content}.app-loading{display:flex;min-height:100vh;align-items:center;justify-content:center}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#0f172a;background-color:#f8fafc}*{margin:0;padding:0;box-sizing:border-box}body{min-height:100vh;background:radial-gradient(circle at top,rgba(56,189,248,.2),transparent 60%),#f8fafc}a{color:inherit;text-decoration:none}button{cursor:pointer}.app-shell{display:flex;min-height:100vh}.app-content{flex:1;padding:2rem}.card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 20px 40px -24px #0f172a73;border:1px solid rgba(15,23,42,.05)}.btn-primary{background:linear-gradient(135deg,#38bdf8,#0ea5e9);color:#fff;border:none;border-radius:12px;padding:.75rem 1.5rem;font-weight:600;transition:transform .2s ease,box-shadow .2s ease}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 18px 24px -18px #0ea5e9cc}.input{width:100%;padding:.75rem 1rem;border-radius:12px;border:1px solid rgba(15,23,42,.1);background:#ffffffe6;margin-bottom:1rem}.input.input-error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441f;background-color:#fee2e226}.grid{display:grid;gap:1.5rem}.grid-cols-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.table{width:100%;border-collapse:collapse}.table thead{background:#0f172a;color:#fff}.table th,.table td{padding:.75rem 1rem;border-bottom:1px solid rgba(15,23,42,.1);text-align:left}.status-tag{display:inline-flex;align-items:center;padding:.35rem .75rem;border-radius:999px;font-size:.85rem;font-weight:600}.status-tag.pago{background:#22c55e26;color:#166534}.status-tag.pendente{background:#facc1533;color:#854d0e}.status-tag.atrasado{background:#f8717133;color:#991b1b}.badge{display:inline-block;padding:.25rem .75rem;border-radius:999px;background:#38bdf826;color:#0c4a6e;font-weight:500}@media(max-width:768px){.app-content{padding:1rem}}.react-datepicker-wrapper{width:100%}.date-picker-wrapper .react-datepicker__input-container{position:relative}.date-picker-wrapper .react-datepicker__input-container input{width:100%;padding:.75rem 2.5rem .75rem 1rem;border-radius:12px;border:1px solid rgba(15,23,42,.1);background:#ffffffe6;font-family:inherit;font-size:inherit;color:inherit;margin-bottom:0;cursor:pointer}.date-picker-wrapper .react-datepicker__input-container input:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf81a}.date-picker-error .react-datepicker__input-container input{border-color:#ef4444}.date-picker-error .react-datepicker__input-container input:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.react-datepicker{font-family:inherit;border-radius:12px;border:1px solid rgba(15,23,42,.1);box-shadow:0 20px 40px -24px #0f172a73;z-index:9999!important}.date-picker-popper,.react-datepicker-popper,.react-datepicker__portal{z-index:9999!important}.react-datepicker__header{background:linear-gradient(135deg,#38bdf8,#0ea5e9);border-bottom:none;border-radius:12px 12px 0 0;padding-top:.75rem}.react-datepicker__current-month{color:#fff;font-weight:600;padding-bottom:.5rem}.react-datepicker__day-name{color:#ffffffe6;font-weight:600}.react-datepicker__day--selected,.react-datepicker__day--keyboard-selected{background:linear-gradient(135deg,#38bdf8,#0ea5e9);border-radius:8px}.react-datepicker__day:hover{border-radius:8px;background:#38bdf833}.react-datepicker__day--today{font-weight:600;border:2px solid #38bdf8;border-radius:8px}.react-datepicker__navigation{top:1rem}.react-datepicker__navigation-icon:before{border-color:#fff}.react-datepicker__month-dropdown,.react-datepicker__year-dropdown{background:#fff;border-radius:8px;border:1px solid rgba(15,23,42,.1)}.react-datepicker__month-option:hover,.react-datepicker__year-option:hover{background:#38bdf81a}.app-shell aside nav a{text-decoration:none;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;display:block}.app-shell aside nav a:not(.active):hover{background-color:#38bdf826!important;color:#fff!important}.aluno-header nav a{text-decoration:none;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease}.aluno-header nav a:not(.active):hover{background-color:#ffffff26!important;color:#fff!important}
