:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e5eefc;background:#0b1220}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#0f172a,#111827)}button,input,select,textarea{font:inherit}.app-shell{max-width:1300px;margin:0 auto;padding:24px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;margin:0 0 8px;font-size:11px;color:#8ab4ff}.feedback{background:#3b82f61f;border:1px solid rgba(96,165,250,.3);border-radius:10px;color:#dbeafe;padding:10px 12px;margin-bottom:20px}.install-prompt{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;padding:12px 14px;border:1px solid rgba(96,165,250,.35);border-radius:10px;background:#1e40af38;color:#dbeafe}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.panel{background:#0f172acc;border:1px solid rgba(148,163,184,.2);border-radius:16px;padding:18px;box-shadow:0 10px 25px #00000026}.panel.wide{grid-column:1 / -1}form{display:grid;gap:12px;margin-bottom:18px}.inline-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}input,select,textarea{width:100%;background:#111827;border:1px solid #334155;border-radius:10px;color:#e2e8f0;padding:10px 12px}textarea{min-height:90px;resize:vertical}button{background:linear-gradient(135deg,#8b5cf6,#3b82f6);border:0;border-radius:10px;color:#fff;padding:10px 14px;cursor:pointer;font-weight:600}ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}li{background:#1e293bb3;border-radius:8px;padding:10px 12px}.recorrencia-box{background:#111827bf;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:12px}.dias-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:8px;margin-bottom:10px}.checkbox-item{display:flex;align-items:center;gap:8px;background:#1e293bb3;border-radius:8px;padding:8px 10px}.checkbox-item input{width:auto}.aulas-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.aula-card{display:grid;gap:6px;background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:12px}.student-login{display:grid;grid-template-columns:1.2fr 1fr auto;gap:12px;align-items:center}.portal-box{margin-top:18px;background:#1e293bb3;border-radius:12px;padding:18px}.portal-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin-top:16px}.helper-text{color:#94a3b8;margin-top:8px}.aluno-busca-box{display:grid;gap:10px;margin-top:12px}.save-success{margin:0;padding:10px 12px;border:1px solid rgba(74,222,128,.45);border-radius:10px;background:#1665344d;color:#bbf7d0}.aluno-search-results{display:grid;gap:8px;margin-top:8px}.aluno-search-item{display:grid;gap:4px;text-align:left;background:#111827e6;border:1px solid rgba(148,163,184,.2);border-radius:10px;padding:10px 12px;color:#e2e8f0}.aluno-search-item strong,.aluno-search-item span,.aluno-search-item small{display:block}.aluno-search-item small{color:#93c5fd}.aluno-detalhes-box{background:#0f172ae6;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:14px;margin-top:12px;display:grid;gap:8px}.aluno-detalhes-box h3,.portal-inline-box h4{margin:0}.aluno-edicao-form{margin:4px 0 8px;padding:12px;background:#1e293b8c;border-radius:10px}.aluno-edicao-form h4{margin:0}.portal-inline-box{background:#111827b3;border:1px solid rgba(148,163,184,.16);border-radius:10px;padding:10px 12px}.student-monthly-summary{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 10px;color:#bfdbfe;font-size:.85rem}.alunos-professor-list{display:grid;gap:16px;margin-bottom:22px}.aluno-card-professor{background:#0f172ae6;border:1px solid rgba(148,163,184,.2);border-radius:14px;padding:16px}.aluno-card-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.aluno-card-header strong,.aluno-card-header small{display:block}.aluno-card-header small{color:#93c5fd;margin-top:4px}.aluno-card-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.professor-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.invite-link{word-break:break-all;color:#bfdbfe;margin:0 0 12px}.single-column{grid-template-columns:1fr}.aluno-cronograma-editor{display:grid;gap:14px}.aluno-cronograma-form{display:grid;gap:12px}.inline-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.aluno-cronograma-form label{display:grid;gap:6px;color:#dbeafe;font-size:.82rem}.aluno-cronograma-form input,.aluno-cronograma-form select,.aluno-cronograma-form textarea{width:100%;background:#0f172ad9;border:1px solid rgba(148,163,184,.25);border-radius:10px;color:#f8fafc;padding:9px 10px}.aluno-cronograma-form textarea{min-height:92px;resize:vertical}.small-button{width:fit-content}.cronograma-list{margin:0;padding-left:18px;color:#dfe7ff}.danger{background:#ef44442e;border:1px solid rgba(248,113,113,.5);color:#fecaca}.professor-panel .button-row{display:flex;gap:8px;margin-top:8px}.professor-panel .secondary{background:#94a3b833}.calendar-box{margin:20px 0;padding:16px;background:#0f172ae6;border:1px solid rgba(148,163,184,.2);border-radius:14px}.calendar-box{margin:20px 0;padding:18px;background:linear-gradient(180deg,#0f172af5,#0f172ad1);border:1px solid rgba(148,163,184,.2);border-radius:18px;box-shadow:0 18px 35px #0f172a73}.calendar-layout,.student-month-layout{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:start}.time-rail{display:grid;gap:10px;margin-top:42px;color:#93c5fd;font-size:.66rem;text-align:right;padding-right:8px;border-right:1px solid rgba(148,163,184,.15)}.time-rail span{height:18px;display:flex;align-items:center;justify-content:flex-end}.week-view-shell{display:grid;grid-template-columns:64px repeat(7,minmax(120px,1fr));gap:10px;align-items:start;margin-top:10px}.week-time-rail{display:grid;grid-template-rows:repeat(14,46px);color:#93c5fd;font-size:.66rem;text-align:right;padding-right:8px;border-right:1px solid rgba(148,163,184,.15);margin-top:54px}.week-time-rail span{display:flex;align-items:flex-start;justify-content:flex-end;transform:translateY(-8px)}.week-day-column{position:relative;border:1px solid rgba(148,163,184,.2);border-radius:12px;background:#0f172abd;overflow:hidden}.week-day-column.selected{border-color:#60a5fab3;box-shadow:inset 0 0 0 1px #60a5fa59}.week-day-header{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:54px;background:#0f172aeb;border-bottom:1px solid rgba(148,163,184,.18);color:#dbeafe}.week-day-header span{font-size:.67rem;letter-spacing:.08em;opacity:.8}.week-day-header strong{font-size:1rem}.week-day-body{position:relative;height:644px;background-image:linear-gradient(to bottom,rgba(148,163,184,.08) 1px,transparent 1px);background-size:100% 46px}.week-hour-slot{height:46px;border-top:1px solid rgba(148,163,184,.1)}.week-event{position:absolute;left:6px;right:6px;display:grid;gap:3px;border-radius:8px;padding:5px 7px;color:#e0f2fe;border:1px solid transparent;overflow:hidden;box-shadow:0 10px 18px #0f172a2e}.week-event strong{font-size:.62rem;line-height:1.2;display:block}.week-event span{font-size:.6rem;opacity:.9}.week-event-cancel{background:#7f1d1dd9;border:1px solid rgba(254,202,202,.35);border-radius:5px;color:#fee2e2;font-size:.55rem;padding:2px 4px;width:fit-content}.week-event.agendada{background:linear-gradient(135deg,#3b82f64d,#6366f13d);border-color:#93c5fd40}.week-event.remarcada{background:linear-gradient(135deg,#f59e0b47,#eab30838);border-color:#fbbf2433;color:#fef3c7}.week-event.cancelada{background:linear-gradient(135deg,#ef44443d,#7f1d1d3d);border-color:#f871714d;color:#fee2e2}.calendar-main,.student-month-grid-wrapper{min-width:0}.calendar-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.calendar-nav-group{display:flex;align-items:center;gap:8px}.calendar-nav-group.month-group{min-width:180px;justify-content:flex-end}.calendar-topbar button,.student-monthly-header button{width:38px;height:38px;border-radius:10px;padding:0;display:grid;place-items:center}.nav-mini{width:auto!important;min-width:38px;padding:0 10px!important;font-size:.85rem}.calendar-topbar h3,.calendar-topbar strong{margin:0;font-size:1.1rem;text-transform:capitalize;color:#e2e8f0}.calendar-header-grid,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:8px}.calendar-day-name,.calendar-cell{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:10px 8px}.calendar-day-name{text-align:center;font-weight:700;color:#bfdbfe;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#0f172ab8;cursor:pointer;transition:all .2s ease}.calendar-day-name span{font-size:.7rem;letter-spacing:.08em;opacity:.8}.calendar-day-name strong{font-size:1rem}.calendar-day-selected{border-color:#60a5fab3;background:#3b82f61f;color:#eff6ff}.calendar-cell{min-height:120px;display:flex;flex-direction:column;gap:6px;position:relative;background:#0f172ac2;border:1px solid rgba(148,163,184,.2);border-radius:12px;text-align:left;cursor:pointer;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.calendar-cell:hover{border-color:#60a5fa80;transform:translateY(-1px)}.calendar-selected{border-color:#60a5fab3;box-shadow:inset 0 0 0 1px #60a5fa59}.calendar-date{font-weight:700;font-size:.95rem;color:#f8fafc}.calendar-event{background:linear-gradient(135deg,#3b82f638,#6366f142);color:#dbeafe;border:1px solid rgba(147,197,253,.2);border-radius:7px;padding:5px 7px;font-size:11px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.cancelada{background:#ef44442e;border-color:#f8717159;color:#fecaca}.calendar-muted{opacity:.58}.calendar-total{color:#cbd5e1;font-size:11px}.remarcacao-negada-box{margin-top:16px;padding:12px 14px;border-radius:10px;background:#7f1d1d2e;border:1px solid rgba(248,113,113,.45);color:#fecaca}.remarcacao-negada-box strong{display:block;margin-bottom:4px;color:#fca5a5}.remarcacao-negada-box p{margin:0}.historico-box{margin-top:18px;display:grid;gap:12px}.historico-metrics{display:flex;flex-wrap:wrap;gap:8px;color:#cbd5e1;font-size:.85rem}.historico-metrics span{background:#1e293bb3;border:1px solid rgba(148,163,184,.2);border-radius:999px;padding:6px 10px}.progress-box{background:#0f172ab3;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:12px}.student-monthly-agenda{background:#0f172ae6;border-radius:16px;border:1px solid rgba(148,163,184,.18);padding:14px;color:#e2e8f0}.student-month-grid-wrapper{min-width:0}.student-monthly-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.student-monthly-header h2{margin:0;font-size:1.1rem;font-weight:700;text-transform:capitalize;color:#f8fafc}.student-monthly-header button{width:32px;height:32px;border-radius:10px;padding:0;display:grid;place-items:center}.student-month-grid-header,.student-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.student-month-grid-header{margin-bottom:8px}.student-week-day-label{background:#0f172ac7;border:1px solid rgba(148,163,184,.2);border-radius:10px;padding:8px 6px;color:#dbeafe;display:grid;gap:2px;text-align:center}.student-week-day-label.active{border-color:#60a5fab3;background:#3b82f61f}.student-week-day-label span{font-size:.68rem;letter-spacing:.06em;opacity:.8}.student-week-day-label strong{font-size:1rem}.student-week-day-column{background:#0f172ab8;border:1px solid rgba(148,163,184,.18);border-radius:10px;min-height:120px;padding:8px 6px;display:grid;align-content:start;gap:6px}.student-week-day-column.selected{border-color:#60a5fab3;box-shadow:inset 0 0 0 1px #60a5fa59}.student-week-empty{color:#94a3b8;font-size:.7rem;padding-top:14px;text-align:center}.student-week-event{display:grid;gap:4px;border-radius:8px;padding:6px 7px;font-size:.62rem;border:1px solid transparent}.student-week-event.agendada{background:#60a5fa2e;color:#dbeafe;border-color:#93c5fd33}.student-week-event.remarcada{background:#f59e0b2e;color:#fef3c7;border-color:#fbbf2433}.student-week-event.cancelada{background:#ef44442e;color:#fecaca;border-color:#f8717140}.student-week-event span{opacity:.9}.student-week-event strong{font-size:.68rem}.student-month-cell{background:#1e293bcc;border:1px solid rgba(148,163,184,.15);border-radius:10px;min-height:110px;padding:6px 7px 8px;text-align:left;color:#e2e8f0;display:flex;flex-direction:column;gap:6px;transition:border-color .2s ease,transform .2s ease}.student-month-cell:hover{border-color:#60a5fa80}.student-month-cell.is-muted{opacity:.52}.student-month-cell.is-selected{border-color:#60a5fab3;box-shadow:inset 0 0 0 1px #60a5fa80}.student-month-day{font-size:.8rem;font-weight:700;color:#f8fafc}.student-month-events{display:grid;gap:4px}.student-month-event,.student-month-more{display:inline-flex;align-items:center;justify-content:center;min-height:22px;border-radius:999px;font-size:.6rem;font-weight:700;padding:2px 6px;line-height:1;letter-spacing:.02em}.student-month-event.agendada{background:#60a5fa2e;color:#dbeafe}.student-month-event.remarcada{background:#f59e0b2e;color:#fef3c7}.student-month-event.cancelada{background:#ef44442e;color:#fecaca;border:1px solid rgba(248,113,113,.4)}.student-month-more{background:#94a3b82e;color:#cbd5e1}.agenda-compacta{display:grid;gap:10px}.agenda-item{display:grid;grid-template-columns:68px 1fr;gap:12px;background:#0f172ac7;border:1px solid rgba(148,163,184,.2);border-radius:10px;padding:10px 12px;align-items:center}.agenda-date-box{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#3b82f61f;border-radius:8px;padding:6px 0;color:#dbeafe}.agenda-date-box span{font-weight:700;font-size:1rem}.agenda-date-box small{text-transform:capitalize;color:#bfdbfe}.agenda-info{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#e2e8f0}.agenda-status-agendada{border-left:4px solid #3b82f6}.agenda-status-remarcada{border-left:4px solid #f59e0b}.agenda-status-cancelada{border-left:4px solid #ef4444}.professor-mobile-agenda{background:#f5f5f5;color:#111827;border-radius:22px;padding:18px 18px 14px;box-shadow:0 12px 28px #0f172a2e;margin-bottom:18px}.professor-agenda-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.agenda-arrow{width:34px;height:34px;border-radius:10px;background:#f59e0b;color:#fff;display:grid;place-items:center;font-size:28px;line-height:1;padding:0}.professor-agenda-header h2{margin:0;font-size:2rem;font-weight:800;color:#111827}.professor-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-bottom:14px}.week-day-pill{border:1px solid #d1d5db;background:transparent;color:#4b5563;border-radius:999px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;min-height:68px;font-weight:600}.week-day-pill span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.week-day-pill strong{font-size:1.05rem}.week-day-pill.selected{background:#f97316;border-color:#f97316;color:#fff;box-shadow:0 8px 18px #f973164d}.professor-agenda-date{font-weight:700;font-size:1.6rem;color:#111827;margin-bottom:12px;text-transform:capitalize}.professor-agenda-events{display:grid;gap:14px}.agenda-item-professor{display:grid;grid-template-columns:1fr;gap:10px;background:transparent;border-left:4px solid #22c55e;padding-left:12px}.agenda-item-professor.realizada{border-left-color:#22c55e}.agenda-item-professor.cancelada{border-left-color:#ef4444}.agenda-item-professor.remarcada{border-left-color:#f59e0b}.agenda-item-top{display:flex;align-items:center}.agenda-time{color:#111827;font-size:1.25rem;font-weight:700}.agenda-main-card{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:68px}.agenda-student-line{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:1.2rem}.agenda-student-name{font-weight:800;color:#111827}.agenda-instrument{color:#4b5563;font-weight:600}.agenda-lesson-meta{color:#374151;font-size:.9rem;font-weight:600}.agenda-meta-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.agenda-room{color:#374151;font-size:.95rem;font-weight:700}.agenda-status-tag{display:inline-flex;align-items:center;justify-content:center;min-height:30px;border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:700;border:1px solid transparent}.agenda-status-tag.realizada{background:#22c55e1f;border-color:#22c55e4d;color:#166534}.agenda-status-tag.cancelada{background:#ef44441f;border-color:#ef444459;color:#991b1b}.agenda-status-tag.remarcada{background:#f59e0b1f;border-color:#f59e0b59;color:#92400e}.professor-bottom-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px;padding-top:12px;border-top:1px solid rgba(148,163,184,.25)}.nav-item{background:transparent;color:#374151;border:0;border-radius:12px;padding:10px 8px;font-size:.82rem;font-weight:700}.nav-item.active{color:#111827}@media (max-width: 640px){.install-prompt{align-items:stretch;flex-direction:column}.app-shell{padding:16px}.topbar{flex-direction:column;align-items:flex-start;gap:14px}.topbar-actions{width:100%;flex-wrap:wrap;justify-content:flex-start;gap:10px}.topbar-actions>span{flex:1 1 100%;line-height:1.4}.inline-fields,.student-login{grid-template-columns:1fr}.calendar-topbar,.student-monthly-header{flex-direction:column;align-items:flex-start;gap:10px}.calendar-nav-group,.calendar-nav-group.month-group{width:100%;justify-content:flex-start;min-width:0}.week-view-shell{grid-template-columns:52px repeat(7,minmax(96px,1fr));overflow-x:auto;padding-bottom:6px}.week-time-rail{grid-template-rows:repeat(14,40px);margin-top:48px;font-size:.58rem}.week-day-header{min-height:48px}.week-day-body{height:560px;background-size:100% 40px}.week-hour-slot{height:40px}.week-event{left:4px;right:4px;padding:4px 5px}.week-event strong{font-size:.56rem}.week-event span{font-size:.54rem}}
