:root{
  --navy:#053C5E;
  --teal:#01B1B1;
  --paper:#F4F1F9;
  --purple:#63489B;
  --purple-light:#9A7BC2;
  --ink:#183042;
  --muted:#6B7C87;
  --white:#FFFFFF;
  --border:#DEE7EB;
  --danger:#B54747;
  --shadow:0 12px 34px rgba(5,60,94,.08);
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#F7FAFB;color:var(--ink)}
a{color:var(--navy);text-decoration:none}
button,.button{border:0;border-radius:10px;padding:11px 16px;background:var(--navy);color:white;font-weight:700;cursor:pointer;display:inline-block}
button:hover,.button:hover{opacity:.92}
button.secondary,.button.secondary{background:#E8F0F3;color:var(--navy)}
button.danger,.danger{background:var(--danger)}
button.small{padding:7px 10px;font-size:.82rem}
.button.full,button.full{width:100%;text-align:center}

.layout{min-height:100vh;display:grid;grid-template-columns:245px 1fr}
.sidebar{background:var(--navy);color:white;padding:28px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:12px}
.brand-icon{width:43px;height:43px;border-radius:14px;background:linear-gradient(135deg,var(--teal),var(--purple-light));display:grid;place-items:center;font-size:1.25rem;font-weight:900;color:white}
.brand strong,.brand span{display:block}
.brand strong{font-size:1.15rem}
.brand span{font-size:.84rem;opacity:.76}
.sidebar nav{margin-top:38px;display:grid;gap:8px}
.sidebar nav a{color:#D9EDF4;padding:12px 14px;border-radius:10px}
.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.14);color:white}
.logout{margin-top:auto;color:#D9EDF4;padding:12px 14px}

.content{padding:28px 34px}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.topbar h1{margin:0;font-size:1.9rem}
.topbar p{margin:5px 0 0;color:var(--muted)}
.user{background:white;border:1px solid var(--border);padding:9px 13px;border-radius:999px;font-weight:700}

.flash{padding:12px 14px;background:#E5F5F3;border-radius:10px;margin-bottom:18px}
.flash.error{background:#FDE8E8;color:#8C3030}

.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px;margin-bottom:22px}
.metric,.panel{background:white;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}
.metric{padding:20px}
.metric span,.metric small{display:block;color:var(--muted)}
.metric strong{display:block;font-size:1.72rem;margin:12px 0 4px;color:var(--navy)}

.panel{padding:22px;margin-bottom:22px}
.panel h2{margin:0 0 6px}
.panel p{margin:0;color:var(--muted)}
.panel-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}

.columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:20px;align-items:start}
.classes-layout{grid-template-columns:1fr}
.classes-layout .form-panel{max-width:none}
.class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.class-card{border:1px solid var(--border);border-radius:14px;padding:16px;display:grid;gap:9px}
.class-card h3{margin:0}
.class-card p{margin:4px 0 0}
.class-card>strong{font-size:1.3rem;color:var(--navy)}
.progress{height:9px;background:#E9F0F3;border-radius:999px;overflow:hidden}
.progress.large{height:13px}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--purple-light))}

.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;border-bottom:1px solid var(--border);padding:13px 10px;vertical-align:middle}
th{font-size:.8rem;text-transform:uppercase;color:var(--muted)}
td small{display:block;color:var(--muted);margin-top:4px}

.status{display:inline-block;padding:6px 9px;border-radius:999px;font-size:.8rem;font-weight:800}
.status.ativa,.status.pago{background:#DFF5EF;color:#15725F}
.status.pausa,.status.pendente{background:#FFF3D6;color:#896316}
.status.inativa{background:#EDF0F2;color:#5F6C73}

label{display:grid;gap:7px;font-weight:700;font-size:.9rem;margin-bottom:14px}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid #CAD7DC;border-radius:10px;background:white;color:var(--ink);font:inherit}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(1,177,177,.16);border-color:var(--teal)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.delete-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}
.actions{display:flex;gap:7px;flex-wrap:wrap}
.actions form{margin:0}
.inline-form{display:flex;gap:8px;align-items:center}
.inline-form input{min-width:165px}
.empty{text-align:center;padding:30px;color:var(--muted)}

.goal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.goal-card{border:1px solid var(--border);border-radius:14px;padding:18px}
.goal-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}
.goal-top h3{margin:0}
.goal-top strong{color:var(--navy);font-size:1.3rem}
.goal-card small{display:block;color:var(--muted);margin-top:10px}

.auth-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--navy),#0A587E);padding:24px}
.auth-card{width:min(450px,94vw);background:white;border-radius:22px;padding:34px;box-shadow:0 20px 70px rgba(0,0,0,.25)}
.install-card{width:min(590px,94vw)}
.auth-card h1{margin:28px 0 7px}
.auth-card h2{font-size:1rem;margin:24px 0 12px;color:var(--purple)}
.auth-card>p{color:var(--muted);margin-top:0}

@media(max-width:1150px){
  .cards{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .columns{grid-template-columns:1fr}
  .class-grid{grid-template-columns:1fr}
  .goal-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .layout{display:block}
  .sidebar{height:auto;position:static;padding:18px}
  .sidebar nav{margin-top:18px;grid-template-columns:repeat(3,minmax(130px,1fr));overflow:auto}
  .logout{display:block;margin-top:10px}
  .content{padding:20px 14px}
  .topbar{align-items:flex-start}
  .user{display:none}
  .cards{grid-template-columns:1fr}
  .panel{padding:16px}
  .form-row{grid-template-columns:1fr}
}

.instructions{border:1px solid var(--border);border-radius:14px;padding:18px;margin-bottom:18px;background:#FAFCFD}
.instructions h3{margin-top:0}
.instructions ol{padding-left:20px;line-height:1.65}
.upload-box{border:2px dashed #BFD1D8;border-radius:14px;padding:20px}
.import-report{background:#EAF7F5;border:1px solid #BFE6DE;border-radius:14px;padding:18px;margin-bottom:18px}
.import-report h3{margin-top:0}
.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:15px 0}
.report-grid div{background:white;border-radius:12px;padding:14px;text-align:center}
.report-grid strong,.report-grid span{display:block}
.report-grid strong{font-size:1.6rem;color:var(--navy)}
.report-grid span{color:var(--muted);margin-top:4px}
.simple-list{padding-left:20px;line-height:1.75}


.attendance-filter{display:grid;grid-template-columns:minmax(280px,2fr) minmax(180px,1fr) auto;gap:14px;align-items:end}
.attendance-filter label{margin-bottom:0}
.attendance-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}
.attendance-heading h2{margin-bottom:5px}
.attendance-summary{text-align:right}
.attendance-summary strong,.attendance-summary span{display:block}
.attendance-summary strong{font-size:1.8rem;color:var(--navy)}
.attendance-summary span{color:var(--muted);margin-top:4px}
.attendance-progress{margin-bottom:18px}
.attendance-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.attendance-table select{min-width:180px}
.weekly-usage{display:inline-block;background:#EAF7F5;color:#176B5E;border-radius:999px;padding:6px 10px;font-weight:800}
.weekly-usage.over{background:#FFF0DD;color:#975A16}
.save-bar{display:flex;justify-content:flex-end;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}

@media(max-width:800px){
  .attendance-filter{grid-template-columns:1fr}
  .attendance-heading{align-items:flex-start}
  .attendance-summary{min-width:110px}
}

.student-filters{display:grid;grid-template-columns:minmax(280px,2fr) minmax(160px,1fr) auto auto;gap:10px;margin-bottom:18px}
.student-page-header{margin-bottom:18px}.student-page-header h2{margin:10px 0 5px;font-size:1.8rem}
.student-detail-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:20px;align-items:start}
.student-detail-grid h3{margin:24px 0 12px;color:var(--purple);font-size:1rem}
.student-summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.student-summary-cards article{border:1px solid var(--border);border-radius:13px;padding:14px;text-align:center;background:#FAFCFD}
.student-summary-cards strong,.student-summary-cards span{display:block}.student-summary-cards strong{font-size:1.35rem;color:var(--navy)}
.student-summary-cards span{font-size:.82rem;color:var(--muted);margin-top:4px}
.compact-list{display:grid;gap:8px}.compact-list>div{display:grid;grid-template-columns:90px 1fr auto;gap:10px;align-items:center;border-bottom:1px solid var(--border);padding:10px 0}
.status.presente{background:#DFF5EF;color:#15725F}.status.falta{background:#FDE8E8;color:#8C3030}.status.justificada{background:#FFF3D6;color:#896316}
@media(max-width:980px){.student-detail-grid{grid-template-columns:1fr}.student-filters{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.student-filters{grid-template-columns:1fr}.student-summary-cards{grid-template-columns:1fr}}

.week-grid{display:grid;grid-template-columns:repeat(7,minmax(160px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}.day-column{border:1px solid var(--border);border-radius:16px;background:#FAFCFD;min-height:280px}.day-column.today{border:2px solid var(--teal)}.day-column>header{display:flex;justify-content:space-between;padding:14px;border-bottom:1px solid var(--border)}.day-classes{display:grid;gap:10px;padding:10px}.no-classes{text-align:center;color:var(--muted);padding:25px 5px}.agenda-class{background:white;border:1px solid var(--border);border-radius:13px;padding:12px;display:grid;gap:9px}.agenda-time{font-size:.82rem;color:var(--purple);font-weight:800}.agenda-nav{display:flex;gap:8px;flex-wrap:wrap}.dashboard-cards{grid-template-columns:repeat(6,minmax(0,1fr))}.dashboard-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:20px;align-items:start}.payment-generator{margin-bottom:20px}@media(max-width:1300px){.dashboard-cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:980px){.dashboard-grid{grid-template-columns:1fr}}@media(max-width:720px){.dashboard-cards{grid-template-columns:1fr}}


.import-report{background:#E7F8F5;border:1px solid #8FD8CF;border-radius:12px;padding:14px 16px;margin:16px 0}.notice{background:#F4F1F9;border-left:4px solid var(--purple);padding:12px 14px;margin-top:14px;border-radius:8px}.check-line{display:flex!important;align-items:center;gap:10px}.check-line input{width:auto!important}.privacy-banner{display:flex;justify-content:space-between;gap:12px;background:#FFF5E8;border:1px solid #E7C38E;padding:14px;border-radius:12px;margin-bottom:18px}.privacy-banner span{color:var(--muted)}.clinical-panel textarea{min-height:80px}.consent-box{background:#F7FAFC;border:1px solid var(--border);padding:14px;border-radius:12px;margin:16px 0;display:grid;gap:10px}


.agenda-summary-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.agenda-class.recorded{border-color:rgba(1,177,177,.45)}
.agenda-class-top{display:flex;justify-content:space-between;gap:8px;align-items:center}
.session-state{font-size:.72rem;font-weight:800;padding:4px 7px;border-radius:999px;background:#edf3f5;color:var(--muted)}
.agenda-class.recorded .session-state{background:rgba(1,177,177,.12);color:#087d7d}
.attendance-mini{display:flex;justify-content:space-between;gap:6px;color:var(--muted);font-size:.74rem}
.session-nav{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:.86rem}
.attendance-counters{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.counter{padding:7px 11px;border-radius:999px;font-size:.82rem;font-weight:800;background:#eef2f4}
.counter.present{background:rgba(1,177,177,.13);color:#087d7d}
.counter.absent{background:rgba(154,123,194,.13);color:#63489B}
.counter.justified{background:#f4f1f9;color:#63489B}
.attendance-buttons{display:flex;gap:8px;flex-wrap:wrap}
.student-search{min-width:260px}
.session-notes{display:block;margin-top:18px}
.session-notes textarea{width:100%;margin-top:7px}

@media(max-width:720px){
  .agenda-summary-cards{grid-template-columns:1fr}
  .student-search{min-width:100%}
}


/* UniSer Manager 3.1 — Financeiro */
.status.recebido{background:#DFF5EF;color:#15725F}
.finance-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.finance-filters{display:grid;grid-template-columns:150px minmax(190px,1fr) 150px minmax(190px,1fr) auto;gap:10px;align-items:end;margin-bottom:18px}
.finance-filters label{margin-bottom:0}
.finance-category-list>div{grid-template-columns:1fr auto}
.finance-category-list span{font-weight:800;color:var(--navy)}
.insurance-generator{margin-top:16px}
@media(max-width:1050px){.finance-filters{grid-template-columns:1fr 1fr}.finance-filters button{align-self:end}}
@media(max-width:650px){.finance-cards,.finance-filters{grid-template-columns:1fr}}

/* UniSer Manager 3.2 — receitas totais e repartição 25/75 */
.finance-cards-v32{grid-template-columns:repeat(4,minmax(0,1fr))}
.finance-filters-v32{display:grid;grid-template-columns:150px minmax(190px,1fr) 180px minmax(170px,1fr) auto;gap:10px;align-items:end;margin-bottom:18px}
.finance-filters-v32 label{margin-bottom:0}
.status.liquidado{background:#DFF5EF;color:#15725F}.status.pendente{background:#FFF3D6;color:#896316}
@media(max-width:1100px){.finance-cards-v32{grid-template-columns:repeat(2,1fr)}.finance-filters-v32{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.finance-cards-v32,.finance-filters-v32{grid-template-columns:1fr}}

/* UniSer Manager 3.2.3 — profissionais e polimento */
.panel-actions,.quick-actions,.page-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.page-actions{justify-content:flex-end;margin-bottom:16px}
.professional-identity{display:flex;justify-content:space-between;gap:20px;align-items:center}
.professional-identity h2{margin:0 0 6px}.professional-identity p{margin:0;color:var(--muted)}
.professional-identity>div:last-child{text-align:center;min-width:150px;padding:14px;border-radius:14px;background:#F4F1F9}
.professional-identity>div:last-child strong,.professional-identity>div:last-child span{display:block}
.professional-identity>div:last-child strong{font-size:1.8rem;color:var(--purple)}
.professional-identity>div:last-child span{color:var(--muted);font-size:.85rem}
.month-selector{display:flex;gap:10px;align-items:end;margin-bottom:18px;max-width:420px}
.month-selector label{margin:0;flex:1}
.finance-filters-v32{grid-template-columns:150px minmax(170px,1fr) 170px minmax(170px,1fr) minmax(170px,1fr) auto}
.professionals-list table,.professional-table table{min-width:1180px}
@media(max-width:1100px){.finance-filters-v32{grid-template-columns:1fr 1fr 1fr}.professional-identity{align-items:flex-start}}
@media(max-width:720px){.professional-identity{display:grid}.page-actions{justify-content:flex-start}.month-selector{display:grid;max-width:none}.finance-filters-v32{grid-template-columns:1fr}}
/* Consolidação 3.2.5 */
.compact-dashboard{grid-template-columns:repeat(4,minmax(0,1fr))}
.finance-filters-v32{grid-template-columns:140px minmax(160px,1fr) 150px minmax(160px,1fr) 150px minmax(160px,1fr) auto}
.table-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.table-actions form{margin:0}
.totals-row th{background:#F4F7F8;color:var(--navy);font-weight:900;border-top:2px solid var(--navy)}
.calendar-head,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr))}.calendar-head{gap:8px;margin-bottom:8px}.calendar-head strong{text-align:center;color:var(--muted)}.calendar-grid{border-left:1px solid var(--border);border-top:1px solid var(--border)}.calendar-day{min-height:150px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:8px;background:white}.calendar-day.outside{background:#F7F9FA;opacity:.65}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--teal)}.calendar-day>header{text-align:right;color:var(--muted)}.calendar-events{display:grid;gap:6px;margin-top:6px}.calendar-event{display:grid;gap:2px;padding:7px;border-radius:8px;background:#EEF4F6;font-size:.78rem}.calendar-event.recorded{background:#E4F7F4}.calendar-event span,.calendar-event small{color:var(--muted)}
.package-grid{display:grid;gap:14px}.package-card{border:1px solid var(--border);border-radius:14px;padding:16px}.package-card h3{margin:0}.package-balance{display:block;font-size:1.2rem;margin:10px 0}.session-use-form{display:grid;grid-template-columns:150px 1fr auto;gap:10px;align-items:end;margin:14px 0}.status.ativo{background:#DFF5EF;color:#15725F}.status.terminado{background:#EEF0F2;color:#5E6970}.status.expirado{background:#FDE8E8;color:#8C3030}
@media(max-width:1100px){.compact-dashboard{grid-template-columns:repeat(2,1fr)}.finance-filters-v32{grid-template-columns:1fr 1fr 1fr}.calendar-head,.calendar-grid{min-width:980px}.panel:has(.calendar-grid){overflow-x:auto}}
@media(max-width:720px){.compact-dashboard,.finance-filters-v32{grid-template-columns:1fr}.session-use-form{grid-template-columns:1fr}}

/* UniSer Manager 3.2.7 — calendário dos pacotes individuais */
.individual-layout{display:grid;grid-template-columns:250px minmax(0,1fr) 340px;gap:18px;align-items:start}
.package-sidebar,.new-package-panel{position:sticky;top:20px}
.package-selector-list{display:grid;gap:8px}.package-selector{display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#FAFCFD}.package-selector:hover,.package-selector.active{border-color:var(--teal);background:#EAF7F5}.package-selector strong{color:var(--navy)}.package-selector span,.package-selector small{color:var(--muted);font-size:.82rem}
.package-detail-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.package-detail-head h2{margin:0 0 5px}.package-detail-head p{margin:0;color:var(--muted)}
.package-detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 10px}.package-detail-metrics article{padding:12px;border:1px solid var(--border);border-radius:12px;text-align:center;background:#FAFCFD}.package-detail-metrics span,.package-detail-metrics strong{display:block}.package-detail-metrics span{font-size:.8rem;color:var(--muted)}.package-detail-metrics strong{font-size:1.5rem;color:var(--navy)}
.calendar-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:24px 0 12px}.calendar-toolbar h3{margin:0 0 4px}.calendar-toolbar p{margin:0;color:var(--muted)}
.session-calendar-wrap{overflow-x:auto}.session-calendar{min-width:820px}.session-calendar .calendar-day{min-height:135px;display:flex;flex-direction:column}.session-calendar .calendar-day>header a{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;font-weight:800}.session-calendar .calendar-day.today>header a{background:var(--teal);color:white}.session-calendar-event{display:grid;gap:2px;padding:7px 8px;border-radius:8px;background:#E8F7F5;border:1px solid rgba(1,177,177,.25)}.session-calendar-event strong{font-size:.78rem}.session-calendar-event small{color:var(--muted);font-size:.7rem}.add-session-day{margin-top:auto;padding-top:8px;font-size:.74rem;font-weight:800;color:var(--teal)}
.session-editor{margin-top:22px;padding:16px;border:1px solid var(--border);border-radius:14px;background:#FAFCFD}.session-editor h3{margin:0 0 4px}.session-editor p{margin:0;color:var(--muted)}.session-editor-form{display:grid;grid-template-columns:180px minmax(220px,1fr) auto;gap:10px;align-items:end;margin-top:14px}.session-editor-form label{margin:0}.session-editor-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.session-history{margin-top:24px}.session-history h3{margin:0}.delete-package-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}
@media(max-width:1380px){.individual-layout{grid-template-columns:220px minmax(0,1fr)}.new-package-panel{grid-column:1/-1;position:static}.new-package-panel form{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.new-package-panel form button{align-self:end}}
@media(max-width:900px){.individual-layout{grid-template-columns:1fr}.package-sidebar{position:static}.package-selector-list{grid-template-columns:repeat(2,minmax(0,1fr))}.session-editor-form{grid-template-columns:1fr}.calendar-toolbar{align-items:flex-start;display:grid}.new-package-panel form{grid-template-columns:1fr}}
@media(max-width:560px){.package-selector-list,.package-detail-metrics{grid-template-columns:1fr}.package-detail-head{display:grid}}

/* v3.2.9 — seguros anuais */
.insurance-mini-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.insurance-mini-cards>div{border:1px solid var(--border);border-radius:14px;padding:14px;background:#f8fbfc}.insurance-mini-cards strong{display:block;font-size:1.6rem;color:var(--navy)}.insurance-mini-cards span{color:var(--muted)}.insurance-year-filter{display:flex;gap:10px;align-items:end}.insurance-year-filter label{flex:1}.insurance-generator{margin-top:14px}.insurance-list-panel{margin-top:24px}.dashboard-alert-panel{margin-top:20px}.status.por_pagar{background:#fff1d6;color:#875d08}.status.pago{background:#e2f4ec;color:#17664e}@media(max-width:780px){.insurance-mini-cards{grid-template-columns:1fr}.insurance-year-filter{display:block}.insurance-year-filter button{margin-top:10px}}

/* Correção final dos filtros do Financeiro */
.finance-filters-v32{
  display:grid;
  grid-template-columns:
    170px
    minmax(220px,1.2fr)
    minmax(180px,1fr)
    minmax(180px,1fr)
    minmax(190px,1fr)
    auto;
  column-gap:18px;
  row-gap:14px;
  align-items:end;
  margin-bottom:18px;
}

.finance-filters-v32 label{
  margin-bottom:0;
}

.finance-filters-v32 button{
  width:auto;
  min-width:110px;
}

@media(max-width:1100px){
  .finance-filters-v32{
    grid-template-columns:1fr 1fr 1fr;
  }
}

@media(max-width:720px){
  .finance-filters-v32{
    grid-template-columns:1fr;
  }
}
/* Espaço entre Mês e Categoria no Financeiro */
.finance-filters-v32 > label:first-child{
  padding-right:24px;
}
.finance-filters-v32{
    display:grid !important;
    grid-template-columns: 170px 270px 190px 190px 1fr 95px;
    gap:20px !important;
    align-items:end;
    margin-bottom:20px;
}

.finance-filters-v32 label{
    display:flex;
    flex-direction:column;
    margin:0;
}

.finance-filters-v32 input,
.finance-filters-v32 select{
    width:100%;
}

.finance-filters-v32 button{
    height:48px;
    align-self:end;
}
/* Financeiro por aluna */
.student-revenue-filters{
  display:grid;
  grid-template-columns:190px minmax(260px,1fr) auto;
  gap:16px;
  align-items:end;
  margin-bottom:20px;
}

.student-revenue-filters label,
.year-inline-filter label{
  margin:0;
}

.student-payment-plan{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.student-payment-plan>div{
  border:1px solid var(--border);
  border-radius:14px;
  padding:16px;
  background:#FAFCFD;
}

.student-payment-plan span,
.student-payment-plan strong{
  display:block;
}

.student-payment-plan span{
  color:var(--muted);
  font-size:.82rem;
  margin-bottom:6px;
}

.student-payment-plan strong{
  color:var(--navy);
  font-size:1.15rem;
}

.year-inline-filter{
  display:flex;
  gap:10px;
  align-items:end;
}

.year-inline-filter input{
  width:120px;
}

@media(max-width:850px){
  .student-revenue-filters{
    grid-template-columns:1fr 1fr;
  }

  .student-revenue-filters button{
    grid-column:1/-1;
  }

  .student-payment-plan{
    grid-template-columns:1fr;
  }
}

@media(max-width:600px){
  .student-revenue-filters{
    grid-template-columns:1fr;
  }

  .year-inline-filter{
    display:grid;
  }

  .year-inline-filter input{
    width:100%;
  }
}

/* UniSer Manager 3.3.1 — Pacotes de aulas de grupo */
.class-package-layout{grid-template-columns:minmax(0,2fr) minmax(330px,1fr)}
.class-package-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.class-package-card{border:1px solid var(--border);border-radius:16px;padding:16px;background:#FAFCFD}
.class-package-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.class-package-head h3{margin:0 0 5px;color:var(--navy)}
.class-package-head p{margin:0}
.class-package-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}
.class-package-numbers>div{text-align:center;border:1px solid var(--border);border-radius:12px;padding:10px;background:white}
.class-package-numbers strong,.class-package-numbers span{display:block}
.class-package-numbers strong{font-size:1.35rem;color:var(--navy)}
.class-package-numbers span{font-size:.72rem;color:var(--muted);margin-top:3px}
.class-package-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:.78rem}
.class-package-history{margin-top:14px}
.class-package-history summary{cursor:pointer;color:var(--purple);font-weight:800}
.class-package-history .compact-list>div{grid-template-columns:90px 1fr auto}
.inline-package-action{display:inline-block;margin:14px 7px 0 0}
.class-package-filter label{margin:0;min-width:150px}
.class-package-badge{display:inline-block;padding:6px 9px;border-radius:999px;background:#F4F1F9;color:#63489B;font-size:.78rem;font-weight:800}
.status.cancelado{background:#FDE8E8;color:#8C3030}
@media(max-width:1100px){.class-package-grid{grid-template-columns:1fr}}
@media(max-width:900px){.class-package-layout{grid-template-columns:1fr}}

/* UniSer Manager 3.3 — alunas fixas por horário */
.fixed-students-summary{border-top:1px solid var(--border);padding-top:12px;margin-top:5px;display:grid;gap:8px}
.fixed-students-summary>span{font-size:.78rem;font-weight:800;color:var(--navy);text-transform:uppercase;letter-spacing:.03em}
.fixed-students-summary em{font-size:.86rem;color:var(--muted);font-style:normal}
.fixed-student-tags{display:flex;flex-wrap:wrap;gap:8px}
.fixed-student-tag{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#F4F1F9;color:#63489B;border:1px solid #E3D9F2;font-size:.82rem;font-weight:700;line-height:1.25}
.fixed-students-fieldset{border:1px solid var(--border);border-radius:14px;padding:15px;margin:18px 0}
.fixed-students-fieldset legend{padding:0 7px;font-weight:800;color:var(--navy)}
.fixed-students-fieldset>p{margin:0 0 12px;color:var(--muted);font-size:.86rem;line-height:1.45}
.fixed-student-search{margin-bottom:10px}
.fixed-students-list{max-height:320px;overflow:auto;border:1px solid var(--border);border-radius:12px;padding:8px;background:#FAFCFD;display:grid;gap:6px}
.fixed-student-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:0;padding:10px 12px;border:1px solid #EEF3F5;border-radius:10px;background:white;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.fixed-student-option:hover{background:#F8FBFC;border-color:#D8E5EA}
.fixed-student-option-name{font-weight:600;line-height:1.35}
.fixed-students-list input[type="checkbox"]{width:18px;height:18px;margin:0;padding:0;accent-color:var(--teal);justify-self:end}


/* UniSer Manager — impressão do financeiro */
.finance-print-header{display:none}
@media print{
  @page{size:A4 landscape;margin:12mm}
  body{background:white;color:#111;font-size:10pt}
  .layout{display:block;min-height:auto}
  .sidebar,.topbar,.flash,.finance-screen-actions,.finance-filters-v32,.finance-management-section,.insurance-list-panel{display:none!important}
  .content{padding:0}
  .finance-print-header{display:block;margin-bottom:14px;border-bottom:2px solid #053C5E;padding-bottom:8px}
  .finance-print-header h1{margin:0 0 4px;font-size:18pt;color:#053C5E}
  .finance-print-header p{margin:0;color:#555}
  .panel,.metric{box-shadow:none;border:1px solid #bbb}
  .metric{break-inside:avoid;page-break-inside:avoid}
  .print-list-section,.print-summary-section.panel{break-inside:auto!important;page-break-inside:auto!important}
  .panel{padding:14px;margin-bottom:14px}
  .cards{gap:8px;margin-bottom:14px}
  .finance-cards-v32{grid-template-columns:repeat(5,1fr)}
  .metric{padding:10px}
  .metric strong{font-size:14pt;margin:6px 0 2px}
  .metric span,.metric small{font-size:8pt}
  table{font-size:8.5pt}
  th,td{padding:7px 6px}
  .table-wrap{overflow:visible}
  thead{display:table-header-group} tfoot{display:table-footer-group} tr{break-inside:avoid;page-break-inside:avoid}
  .table-actions,.print-list-section td:last-child,.print-list-section th:last-child{display:none!important}
  .print-list-section table{table-layout:auto}
  .print-list-section .panel-header{margin-bottom:10px}
  body.print-list .print-summary-section{display:none!important}
  body.print-summary .print-list-section{display:none!important}
  body.print-summary .finance-management-section,
  body.print-list .finance-management-section{display:none!important}
  body.print-summary .print-summary-section{display:block!important}
  body.print-summary section.cards.print-summary-section{display:grid!important}
  body.print-list .print-list-section{display:block!important}
}

/* UniSer Manager 3.6 — Eventos pontuais */
.events-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(360px,.9fr);gap:20px;align-items:start}
.events-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.event-card{display:grid;grid-template-columns:64px 1fr;gap:14px;border:1px solid var(--border);border-radius:14px;padding:14px;background:#fff}
.event-date-badge{align-self:start;text-align:center;border-radius:12px;background:#EEF6F7;border:1px solid #D8E7EA;padding:9px 5px;color:var(--navy)}
.event-date-badge strong,.event-date-badge span{display:block}.event-date-badge strong{font-size:1.45rem}.event-date-badge span{margin-top:3px;font-size:.72rem;font-weight:800}
.event-card-main h3{margin:0 0 4px}.event-card-main p{margin:0 0 8px;color:var(--muted)}
.event-type{display:inline-block;padding:5px 8px;border-radius:999px;background:#F4F1F9;color:var(--purple);font-size:.78rem;font-weight:800;margin-bottom:9px}
.event-count{display:block;color:var(--navy);margin:2px 0 11px}
.event-form-panel>p{margin-bottom:18px}.event-participants-fieldset{border:1px solid var(--border);border-radius:14px;padding:14px;margin:18px 0}.event-participants-fieldset legend{padding:0 6px;font-weight:800;color:var(--navy)}
.event-student-search{margin:4px 0 10px}.event-students-list{max-height:300px;overflow:auto;display:grid;gap:5px;background:#FAFCFD;border:1px solid var(--border);border-radius:11px;padding:7px}
.event-student-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin:0;padding:9px 10px;border-radius:9px;background:#fff;border:1px solid #EDF2F4;cursor:pointer}
.event-student-option:hover{border-color:#D4E3E8}.event-student-option input[type="checkbox"]{width:18px;height:18px;margin:0;padding:0;accent-color:var(--teal)}
.event-form label>small{font-weight:400;color:var(--muted)}
.event-detail-panel{position:relative}.event-detail-count{display:inline-flex;align-items:baseline;gap:7px;margin:4px 0 16px;padding:8px 12px;border-radius:999px;background:#EEF6F7;color:var(--navy)}.event-detail-count strong{font-size:1.25rem}.event-detail-count span{font-size:.85rem}
.event-participant-chips{display:flex;flex-wrap:wrap;gap:8px}.event-participant-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--border);border-radius:999px;background:#FAFCFD;font-weight:700}.event-participant-chip.external{color:var(--ink)}.event-participant-chip small{color:var(--muted);font-weight:500}
.event-notes{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.event-notes p{margin-top:6px}
@media(max-width:1150px){.events-layout{grid-template-columns:1fr}.events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.events-grid{grid-template-columns:1fr}.event-card{grid-template-columns:56px 1fr}}


/* Pacotes de aulas — edição pontual da validade */
.package-expiry-editor{margin-top:10px;border-top:1px solid var(--border);padding-top:10px}
.package-expiry-editor summary{cursor:pointer;color:var(--navy);font-weight:800;font-size:.86rem}
.package-expiry-form{display:grid;grid-template-columns:minmax(180px,260px) auto;gap:10px;align-items:end;margin-top:10px}
.package-expiry-form label{margin:0}
.package-expiry-form button{margin-bottom:0}
@media(max-width:650px){.package-expiry-form{grid-template-columns:1fr}}
