﻿/* Login principal */
#login-screen { min-height:100vh; background:linear-gradient(135deg,var(--navy-dark) 0%,var(--navy) 55%,var(--navy-mid) 100%); align-items:center; justify-content:center; padding:20px; }
.superadmin-tab { background: linear-gradient(135deg, #4f46e5, #7c3aed) !important; color:white !important; }
.superadmin-tab.active { background: linear-gradient(135deg, #4338ca, #6d28d9) !important; }
.login-actions { margin-top:14px; text-align:center; display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }
.login-actions button { border:0; background:transparent; color:var(--teal); font:inherit; font-weight:700; cursor:pointer; padding:4px 6px; }
.login-actions button:hover { color:#fff; }
.login-help-text { margin:4px 0 14px; color:var(--text-muted); font-size:13px; line-height:1.45; }
.login-remember {
  display:flex;
  align-items:center;
  gap:8px;
  margin:-4px 0 16px;
  color:var(--text-secondary);
  font-size:13px;
  cursor:pointer;
  user-select:none;
}

.login-remember input {
  width:17px;
  height:17px;
  accent-color:var(--teal);
}
.password-meter { height:7px; background:rgba(154,170,196,.25); border-radius:20px; overflow:hidden; margin:-8px 0 14px; }
.password-meter span { display:block; height:100%; width:0; border-radius:inherit; transition:width .2s ease, background .2s ease; }
.password-meter.fraca span { width:33%; background:#ef4444; }
.password-meter.media span { width:66%; background:#f59e0b; }
.password-meter.forte span { width:100%; background:#16a34a; }
.password-hint { color:var(--text-muted); font-size:12px; margin-top:6px; }
.password-rules { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 10px; margin:-6px 0 14px; font-size:12px; color:var(--text-muted); }
.password-rules div { display:flex; align-items:center; gap:6px; min-width:0; }
.password-rules div::before { content:""; width:8px; height:8px; border-radius:50%; background:#9aaac4; flex:0 0 auto; }
.password-rules div.ok { color:#16a34a; font-weight:700; }
.password-rules div.ok::before { background:#16a34a; }
@media(max-width:560px){ .password-rules { grid-template-columns:1fr; } }

/* Turmas prof */
.turma-table-card { margin-bottom:20px; }

/* Escola config card */
.config-section { margin-bottom:28px; }
.config-section h3 { font-size:16px; font-weight:600; color:var(--text-primary); margin-bottom:16px; padding-bottom:10px; border-bottom:1px solid var(--border); }
.security-option {
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg-card);
  color:var(--text-primary);
  cursor:pointer;
}
.security-option input { width:18px; height:18px; margin-top:2px; accent-color:var(--teal); flex:0 0 auto; }
.security-option span { display:grid; gap:4px; min-width:0; }
.security-option strong { font-size:14px; font-weight:700; }
.security-option small { color:var(--text-muted); line-height:1.35; }
.grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start; }
.card-body { padding:16px; }
.card-subtitle { color:var(--text-muted); font-size:13px; margin-top:3px; }
.btn-sm { min-height:34px; padding:7px 12px; font-size:13px; }
.sidebar { padding:18px 12px !important; }
.sidebar .nav-group { margin:0 0 6px; padding:0; border-bottom:0; }
.sidebar .nav-standalone { margin-bottom:8px; min-height:44px; color:#1684ff; font-weight:600; padding-left:10px; }
.sidebar .nav-standalone + .nav-group { border-top:0; padding-top:0; }
.sidebar .nav-item { min-height:40px; border-radius:9px; }
.sidebar .nav-item span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sidebar .nav-item svg { width:24px; height:24px; stroke-width:1.9; }
.sidebar .nav-item.active { background:transparent; color:#1684ff; }
.sidebar .nav-item.active svg { stroke:#1684ff; }
.nav-group-toggle {
  width:100%; min-height:44px; padding:0 8px 0 10px; border:0; background:transparent;
  color:var(--text-primary); display:flex; align-items:center; justify-content:space-between;
  gap:10px; font:inherit; font-size:15px; font-weight:600; letter-spacing:0;
  cursor:pointer; border-radius:9px;
}
.nav-group-toggle:hover { background:var(--bg-hover); color:#1684ff; }
.nav-group-title { min-width:0; display:flex; align-items:center; gap:12px; }
.nav-group-title svg { width:26px; height:26px; flex:0 0 26px; fill:none; stroke:currentColor; stroke-width:1.8; overflow:visible; }
.nav-caret { width:17px !important; height:17px !important; flex:0 0 17px; fill:none; stroke:currentColor; stroke-width:2; transition:transform .18s ease; }
.nav-group.open .nav-caret { transform:rotate(90deg); }
.nav-group.open .nav-group-toggle { color:#1684ff; }
.nav-group-items { display:none; padding:4px 0 8px 44px; }
.nav-group.open .nav-group-items { display:grid; gap:2px; }
.nav-group-items .nav-item { min-height:36px; padding:7px 8px; color:var(--text-primary); font-size:14px; font-weight:500; }
.nav-group-items .nav-item svg { display:none; }
.nav-group-items .nav-item:hover { color:#1684ff; background:transparent; }
.nav-group-items .nav-item.active { color:#1684ff; background:transparent; font-weight:700; }

[data-theme="dark"] .topbar-logo-text,
[data-theme="dark"] .login-logo-text h1 {
  color:#F3F7FF;
}
[data-theme="dark"] .topbar-logo-icon,
[data-theme="dark"] .login-logo-icon {
  background:linear-gradient(135deg,#223A78,#1B2D6B);
  box-shadow:0 6px 18px rgba(0,0,0,.32);
}
[data-theme="dark"] .school-badge,
[data-theme="dark"] .tag-teal {
  background:rgba(46,203,161,.14);
  color:#77F0D0;
  border-color:rgba(46,203,161,.32);
}
[data-theme="dark"] .sidebar .nav-standalone,
[data-theme="dark"] .sidebar .nav-item.active,
[data-theme="dark"] .sidebar .nav-item.active svg,
[data-theme="dark"] .nav-group-toggle:hover,
[data-theme="dark"] .nav-group.open .nav-group-toggle,
[data-theme="dark"] .nav-group-items .nav-item:hover,
[data-theme="dark"] .nav-group-items .nav-item.active {
  color:#69D7FF;
}
[data-theme="dark"] .sidebar .nav-item,
[data-theme="dark"] .nav-group-title,
[data-theme="dark"] .nav-group-items .nav-item {
  color:var(--text-secondary);
}
[data-theme="dark"] .nav-group-toggle {
  color:var(--text-primary);
}
[data-theme="dark"] .nav-group-toggle:hover,
[data-theme="dark"] .nav-item:hover {
  background:rgba(105,215,255,.08);
}
[data-theme="dark"] #page-dashboard .stat-icon {
  background:#162238 !important;
  color:#77F0D0 !important;
  border:1px solid #30415F;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
[data-theme="dark"] #page-dashboard .stat-icon svg {
  stroke:#DDEBFF;
}
[data-theme="dark"] .btn-outline,
[data-theme="dark"] .finance-tab,
[data-theme="dark"] .topbar-message-btn,
[data-theme="dark"] .theme-toggle,
[data-theme="dark"] .password-toggle {
  background:#18243A;
  color:var(--text-secondary);
  border-color:var(--border);
}
[data-theme="dark"] .btn-outline:hover,
[data-theme="dark"] .finance-tab:hover,
[data-theme="dark"] .topbar-message-btn:hover,
[data-theme="dark"] .topbar-message-btn.has-unread,
[data-theme="dark"] .theme-toggle:hover,
[data-theme="dark"] .password-toggle:hover {
  background:#22304A;
  color:#F3F7FF;
  border-color:rgba(46,203,161,.45);
}
[data-theme="dark"] .form-control,
[data-theme="dark"] .filter-select,
[data-theme="dark"] .search-bar,
[data-theme="dark"] .topbar-search input,
[data-theme="dark"] .chat-search-box input,
[data-theme="dark"] .chat-compose textarea {
  background:#101A2D;
  color:#F3F7FF;
  border-color:var(--border);
}
[data-theme="dark"] .form-control::placeholder,
[data-theme="dark"] .topbar-search input::placeholder,
[data-theme="dark"] .chat-search-box input::placeholder,
[data-theme="dark"] .chat-compose textarea::placeholder {
  color:#8296BA;
}
[data-theme="dark"] .top-search-results,
[data-theme="dark"] .inline-search-results,
[data-theme="dark"] .chat-confirm-box {
  background:#121C31;
  border-color:var(--border);
  box-shadow:0 18px 46px rgba(0,0,0,.48);
}
[data-theme="dark"] .top-search-item:hover,
[data-theme="dark"] .inline-search-results button:hover {
  background:#1B2942;
}
[data-theme="dark"] .card,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .dashboard-alert-card,
[data-theme="dark"] .dashboard-birthday-card,
[data-theme="dark"] .aluno-resumo-card,
[data-theme="dark"] .notas-aluno-card,
[data-theme="dark"] .notas-materia-card,
[data-theme="dark"] .chat-list-panel,
[data-theme="dark"] .chat-main-panel,
[data-theme="dark"] .chat-info-panel {
  background:#121C31;
  border-color:var(--border);
}
[data-theme="dark"] .dashboard-birthday-list span,
[data-theme="dark"] .dashboard-birthday-list small {
  background:#1B2942;
  border-color:var(--border);
}
[data-theme="dark"] thead tr,
[data-theme="dark"] .card-header,
[data-theme="dark"] .notas-aluno-head,
[data-theme="dark"] .media-row,
[data-theme="dark"] .chat-main-header,
[data-theme="dark"] .chat-compose,
[data-theme="dark"] .chat-info-list div {
  background:#162238;
}
[data-theme="dark"] tbody tr:hover,
[data-theme="dark"] .chat-conversation-item:hover {
  background:#1B2942;
}
[data-theme="dark"] .chat-conversation-item.active {
  background:#193557;
  border-color:#2B5685;
}
[data-theme="dark"] .chat-conversation-item.unread strong {
  color:#77F0D0;
}
[data-theme="dark"] .chat-thread-console {
  background:#0D1728;
}
[data-theme="dark"] .chat-bubble,
[data-theme="dark"] .chat-bubble.theirs {
  background:#17243A;
  color:#F3F7FF;
  border-color:#2A3A56;
}
[data-theme="dark"] .chat-bubble.mine,
[data-theme="dark"] .chat-thread-console .chat-bubble.mine {
  background:#123C45;
  color:#F3F7FF;
  border-color:rgba(46,203,161,.42);
}
[data-theme="dark"] .alert-danger {
  background:#33151A;
  color:#FDA4AF;
  border-color:#7F1D1D;
}
[data-theme="dark"] .alert-success {
  background:#0F2A1D;
  color:#86EFAC;
  border-color:#166534;
}
[data-theme="dark"] .alert-info {
  background:#0C2738;
  color:#7DD3FC;
  border-color:#0369A1;
}
.finance-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:4px 0 18px; border-bottom:1px solid var(--border); padding-bottom:10px; }
.finance-tab { border:1px solid var(--border); background:var(--bg-card); color:var(--text-secondary); border-radius:8px; min-height:38px; padding:0 14px; font:inherit; font-weight:600; cursor:pointer; }
.finance-tab:hover { color:var(--text-primary); background:var(--bg-hover); }
.finance-tab.active { background:var(--navy); border-color:var(--navy); color:#fff; }
.finance-tab-panel { width:100%; }
.aluno-profile-body { padding-top:0 !important; }
.aluno-profile-tabs {
  position: sticky;
  top: 0;
  z-index: 25;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 -24px 18px;
  padding: 14px 24px 12px;
  background: var(--bg-card);
  border-bottom: 1px solid var(--border);
}
.aluno-resumo-pedagogico {
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  box-shadow:var(--shadow-sm);
  padding:16px;
  margin-bottom:16px;
}
.aluno-resumo-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.aluno-resumo-head h3 {
  margin:0;
  color:var(--text-primary);
  font-size:17px;
}
.aluno-resumo-head p {
  margin:4px 0 0;
  color:var(--text-muted);
  font-size:13px;
}
.aluno-resumo-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.aluno-resumo-card {
  min-height:92px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg-stripe);
  padding:12px;
  display:grid;
  align-content:center;
  gap:4px;
}
.aluno-resumo-card span {
  color:var(--text-muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.35px;
}
.aluno-resumo-card strong {
  color:var(--text-primary);
  font-size:24px;
  line-height:1.1;
}
.aluno-resumo-card small {
  color:var(--text-secondary);
  font-size:12px;
}
.dashboard-pedagogico { margin:18px 0; }
.dashboard-kpi-strip {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:14px;
}
.dashboard-kpi {
  min-height:82px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  padding:15px 16px;
  box-shadow:var(--shadow-sm);
  display:grid;
  align-content:center;
  gap:6px;
}
.dashboard-kpi span {
  color:var(--text-muted);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
}
.dashboard-kpi strong {
  color:var(--primary);
  font-size:28px;
  line-height:1;
}
.dashboard-home {
  display:grid;
  gap:16px;
}
.dashboard-hero-polished {
  min-height:150px;
  border-radius:14px;
  padding:22px;
  background:linear-gradient(135deg,#13255d 0%,#253f92 58%,#1fae93 100%);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  box-shadow:0 18px 42px rgba(27,45,107,.18);
}
.dashboard-hero-copy span,
.dash-panel-head span,
.dash-focus-card span {
  display:block;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.4px;
}
.dashboard-hero-copy span {
  color:rgba(255,255,255,.72);
}
.dashboard-hero-copy h2 {
  margin:6px 0;
  color:#fff;
  font-size:28px;
  line-height:1.08;
}
.dashboard-hero-copy p {
  max-width:620px;
  margin:0;
  color:rgba(255,255,255,.82);
  font-size:14px;
}
.dashboard-hero-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.dashboard-hero-actions .btn-outline {
  border-color:rgba(255,255,255,.45);
  color:#fff;
  background:rgba(255,255,255,.08);
}
.dashboard-focus-grid.polished {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.dash-focus-card {
  min-height:124px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  padding:16px;
  box-shadow:var(--shadow-sm);
  display:grid;
  align-content:start;
  gap:8px;
}
.dash-focus-card.primary {
  border-color:rgba(46,203,161,.5);
  background:linear-gradient(135deg,rgba(46,203,161,.15),rgba(255,255,255,.88));
}
.dash-focus-card span {
  color:var(--text-muted);
}
.dash-focus-card strong {
  color:var(--primary);
  font-size:32px;
  line-height:1;
}
.dash-focus-card p {
  margin:0;
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.35;
}
.dashboard-workspace {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);
  gap:16px;
  align-items:start;
}
.dash-panel {
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  box-shadow:var(--shadow-sm);
  padding:16px;
}
.dash-panel.priority {
  min-height:298px;
}
.dash-side-stack {
  display:grid;
  gap:16px;
}
.dash-panel-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.dash-panel-head span {
  color:var(--text-muted);
}
.dash-panel-head h3 {
  margin:4px 0 0;
  color:var(--text-primary);
  font-size:17px;
}
.dash-priority-list {
  display:grid;
  gap:10px;
}
.dash-priority-item {
  width:100%;
  min-height:62px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg-secondary);
  padding:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  text-align:left;
  cursor:pointer;
}
.dash-priority-item:hover {
  border-color:rgba(46,203,161,.55);
  background:rgba(46,203,161,.08);
}
.dash-priority-item span {
  min-width:0;
  display:grid;
  gap:3px;
}
.dash-priority-item strong {
  color:var(--text-primary);
  font-size:14px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dash-priority-item small {
  color:var(--text-muted);
  font-size:12px;
}
.dash-priority-item em {
  flex:0 0 auto;
  border-radius:999px;
  background:rgba(27,45,107,.08);
  color:var(--primary);
  padding:6px 9px;
  font-style:normal;
  font-size:12px;
  font-weight:800;
}
.dash-empty-good {
  border:1px dashed var(--border);
  border-radius:10px;
  background:var(--bg-secondary);
  padding:16px;
  display:grid;
  gap:5px;
}
.dash-empty-good strong {
  color:var(--text-primary);
}
.dash-empty-good span {
  color:var(--text-secondary);
  font-size:13px;
}
.dash-birthday-list {
  display:grid;
  gap:8px;
}
.dash-birthday-list div {
  border:1px solid rgba(46,203,161,.26);
  border-radius:10px;
  background:rgba(46,203,161,.08);
  padding:10px;
  display:grid;
  gap:2px;
}
.dash-birthday-list span {
  color:var(--text-primary);
  font-weight:800;
}
.dash-birthday-list small,
.dash-birthday-list em {
  color:var(--text-muted);
  font-size:12px;
  font-style:normal;
}
.dash-shortcut-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.dash-shortcut-grid button {
  min-height:64px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg-secondary);
  color:var(--text-primary);
  display:grid;
  place-items:center;
  gap:5px;
  cursor:pointer;
  font-weight:800;
}
.dash-shortcut-grid button svg {
  width:22px;
  height:22px;
  color:var(--teal);
}
.dash-shortcut-grid button:hover {
  border-color:rgba(46,203,161,.55);
  background:rgba(46,203,161,.08);
}
.dashboard-kpi-hidden {
  display:none !important;
}
.dash-card-title span,
.dash-task-card > span:not(.dash-task-icon) {
  display:block;
  color:var(--text-muted);
  font-size:11px;
  font-weight:900;
  letter-spacing:.35px;
  text-transform:uppercase;
}
.dash-task-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.dash-task-card {
  min-height:132px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  padding:14px;
  text-align:left;
  cursor:pointer;
  display:grid;
  align-content:start;
  gap:7px;
  box-shadow:var(--shadow-sm);
}
.dash-task-card:hover,
.dash-action-row:hover {
  border-color:rgba(46,203,161,.55);
  background:rgba(46,203,161,.07);
}
.dash-task-card.warn {
  border-color:rgba(245,158,11,.34);
  background:linear-gradient(180deg,rgba(245,158,11,.09),#fff 72%);
}
.dash-task-card.danger {
  border-color:rgba(239,68,68,.34);
  background:linear-gradient(180deg,rgba(239,68,68,.09),#fff 72%);
}
.dash-task-card.ok {
  border-color:rgba(46,203,161,.3);
}
.dash-task-icon {
  width:38px;
  height:38px;
  border-radius:10px;
  background:rgba(46,203,161,.12);
  color:var(--teal);
  display:grid;
  place-items:center;
}
.dash-task-icon svg {
  width:21px;
  height:21px;
}
.dash-task-card strong {
  color:var(--primary);
  font-size:28px;
  line-height:1;
}
.dash-task-card p {
  margin:0;
  color:var(--text-secondary);
  font-size:12px;
  line-height:1.35;
}
.dash-operation-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);
  gap:14px;
  align-items:start;
  grid-auto-flow:dense;
}
.dash-work-card {
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  padding:15px;
  box-shadow:var(--shadow-sm);
  min-width:0;
}
.dash-main-actions {
  grid-row:span 2;
}
.dash-card-title {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.dash-card-title h3 {
  margin:4px 0 0;
  color:var(--text-primary);
  font-size:16px;
}
.dash-action-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.dash-action-row {
  min-height:82px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg-secondary);
  padding:12px;
  text-align:left;
  cursor:pointer;
  display:grid;
  grid-template-columns:34px 1fr;
  gap:3px 10px;
  align-items:center;
}
.dash-action-row span {
  grid-row:1/3;
  width:34px;
  height:34px;
  border-radius:9px;
  display:grid;
  place-items:center;
  color:var(--teal);
  background:rgba(46,203,161,.12);
}
.dash-action-row svg {
  width:19px;
  height:19px;
}
.dash-action-row strong {
  color:var(--text-primary);
  font-size:14px;
  line-height:1.2;
}
.dash-action-row small {
  color:var(--text-secondary);
  font-size:12px;
  line-height:1.25;
}
.dash-simple-metrics {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.dash-simple-metrics div {
  border:1px solid rgba(27,45,107,.1);
  border-radius:10px;
  background:var(--bg-secondary);
  padding:12px;
  min-height:70px;
  display:grid;
  align-content:center;
  gap:4px;
}
.dash-simple-metrics span {
  color:var(--text-muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.dash-simple-metrics strong {
  color:var(--primary);
  font-size:22px;
  line-height:1;
}
.dash-compact-info .dash-empty-good {
  min-height:96px;
  align-content:center;
}
.dash-birthday-today {
  border-color:rgba(46,203,161,.36);
  background:linear-gradient(135deg,rgba(46,203,161,.12),var(--bg-card) 62%);
}
.dashboard-exec {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px;
  margin-bottom:14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  box-shadow:var(--shadow-sm);
}
.dashboard-exec h2 {
  margin:0 0 4px;
  font-size:20px;
  color:var(--text-primary);
}
.dashboard-exec p {
  margin:0;
  color:var(--text-secondary);
  font-size:13px;
}
.dashboard-alert-grid.compact .dashboard-alert-card {
  min-height:92px;
}
.report-toolbar {
  margin-bottom:16px;
}
.report-metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px;
}
.report-metric {
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  padding:16px;
  box-shadow:var(--shadow-sm);
}
.report-metric span {
  display:block;
  color:var(--text-muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.35px;
}
.report-metric strong {
  display:block;
  margin-top:8px;
  color:var(--primary);
  font-size:26px;
  line-height:1;
}
.report-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-bottom:16px;
}
.report-chart-card {
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  padding:16px;
  box-shadow:var(--shadow-sm);
}
.report-chart-card h3 {
  margin:0 0 14px;
  color:var(--text-primary);
  font-size:16px;
}
.report-bars {
  display:grid;
  gap:12px;
}
.report-bar-row {
  display:grid;
  grid-template-columns:minmax(96px,.75fr) minmax(120px,1.5fr) minmax(54px,.35fr);
  align-items:center;
  gap:10px;
  font-size:13px;
}
.report-bar-label {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text-secondary);
}
.report-bar-track {
  height:12px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(27,45,107,.08);
}
.report-bar-track span {
  display:block;
  height:100%;
  min-width:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--teal),var(--primary));
}
.report-bar-row strong {
  color:var(--text-primary);
  font-size:12px;
  text-align:right;
}
.reports-page {
  display:grid;
  gap:16px;
}
.reports-hero {
  border:1px solid rgba(27,45,107,.12);
  border-radius:14px;
  background:linear-gradient(135deg,#ffffff 0%,#eef6ff 55%,rgba(46,203,161,.12) 100%);
  padding:22px;
  box-shadow:var(--shadow-sm);
}
.reports-hero span {
  display:block;
  color:var(--teal);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.35px;
  margin-bottom:6px;
}
.reports-hero h2 {
  margin:0 0 6px;
  color:var(--primary);
  font-size:26px;
  line-height:1.12;
}
.reports-hero p {
  margin:0;
  color:var(--text-secondary);
  max-width:760px;
  line-height:1.5;
}
.report-choice-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.report-choice {
  appearance:none;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  padding:15px;
  min-height:122px;
  text-align:left;
  cursor:pointer;
  display:grid;
  align-content:start;
  gap:8px;
  box-shadow:var(--shadow-sm);
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.report-choice:hover {
  transform:translateY(-1px);
  border-color:rgba(46,203,161,.5);
}
.report-choice.active {
  border-color:rgba(46,203,161,.75);
  background:linear-gradient(135deg,rgba(46,203,161,.14),#ffffff 72%);
  box-shadow:0 14px 28px rgba(27,45,107,.12);
}
.report-choice-icon {
  width:38px;
  height:38px;
  border-radius:10px;
  display:grid;
  place-items:center;
  color:var(--teal);
  background:rgba(46,203,161,.12);
}
.report-choice-icon svg {
  width:21px;
  height:21px;
}
.report-choice strong {
  color:var(--text-primary);
  font-size:15px;
  line-height:1.2;
}
.report-choice small {
  color:var(--text-secondary);
  font-size:12px;
  line-height:1.35;
}
.reports-filter-panel {
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  padding:14px;
  box-shadow:var(--shadow-sm);
  display:grid;
  gap:12px;
}
.report-filter-title {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
}
.report-filter-title strong {
  color:var(--text-primary);
  font-size:15px;
}
.report-filter-title span {
  color:var(--text-muted);
  font-size:12px;
}
.report-filter-grid {
  display:grid;
  grid-template-columns:220px minmax(240px,1fr) 200px;
  gap:10px;
}
.report-filter-grid label {
  display:grid;
  gap:6px;
  color:var(--text-secondary);
  font-size:12px;
  font-weight:800;
}
.school-report {
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}
.school-report-head {
  padding:18px 18px 12px;
  border-bottom:1px solid rgba(27,45,107,.08);
}
.school-report-head h3 {
  margin:0 0 4px;
  color:var(--primary);
  font-size:22px;
}
.school-report-head p {
  margin:0;
  color:var(--text-secondary);
  line-height:1.45;
}
.school-report-pills {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  padding:14px 18px;
  background:var(--bg-secondary);
  border-bottom:1px solid rgba(27,45,107,.08);
}
.school-pill {
  border:1px solid rgba(27,45,107,.1);
  border-radius:10px;
  background:#fff;
  padding:12px;
  display:grid;
  gap:4px;
  min-height:72px;
}
.school-pill span {
  color:var(--text-muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.school-pill strong {
  color:var(--primary);
  font-size:22px;
  line-height:1.05;
}
.school-pill.ok {
  border-color:rgba(46,203,161,.35);
  background:rgba(46,203,161,.08);
}
.school-pill.warn {
  border-color:rgba(245,158,11,.36);
  background:rgba(245,158,11,.09);
}
.school-pill.danger {
  border-color:rgba(239,68,68,.35);
  background:rgba(239,68,68,.08);
}
.school-report-body {
  display:grid;
  grid-template-columns:minmax(0,1fr) 280px;
  gap:16px;
  padding:18px;
}
.school-report-main {
  display:grid;
  gap:16px;
  min-width:0;
}
.school-report-card,
.school-report-aside {
  border:1px solid rgba(27,45,107,.1);
  border-radius:12px;
  background:#fff;
  padding:15px;
}
.school-report-card h4,
.school-report-aside h4 {
  margin:0 0 12px;
  color:var(--text-primary);
  font-size:15px;
}
.school-report-aside {
  background:linear-gradient(180deg,#ffffff,rgba(46,203,161,.07));
  align-self:start;
  display:grid;
  gap:10px;
}
.school-insight {
  border-left:3px solid var(--teal);
  padding:3px 0 3px 10px;
  display:grid;
  gap:3px;
}
.school-insight strong {
  color:var(--primary);
  font-size:13px;
}
.school-insight span {
  color:var(--text-secondary);
  font-size:12px;
  line-height:1.35;
}
.school-bars {
  display:grid;
  gap:10px;
}
.school-bar {
  display:grid;
  gap:6px;
}
.school-bar > div {
  display:flex;
  justify-content:space-between;
  gap:10px;
  color:var(--text-secondary);
  font-size:13px;
}
.school-bar strong {
  color:var(--primary);
}
.school-bar em {
  display:block;
  height:11px;
  border-radius:999px;
  background:rgba(27,45,107,.08);
  overflow:hidden;
}
.school-bar b {
  display:block;
  height:100%;
  min-width:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--teal),var(--primary));
}
.school-table-wrap {
  overflow:auto;
  max-height:430px;
}
.school-table-wrap table {
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}
.school-table-wrap th {
  position:sticky;
  top:0;
  z-index:1;
  background:#f8fafc;
  color:var(--text-muted);
  font-size:11px;
  text-align:left;
  text-transform:uppercase;
  letter-spacing:.25px;
  padding:10px;
  border-bottom:1px solid var(--border);
}
.school-table-wrap td {
  color:var(--text-secondary);
  font-size:13px;
  padding:10px;
  border-bottom:1px solid rgba(27,45,107,.07);
  vertical-align:middle;
}
.report-empty,
.report-loading {
  border:1px dashed rgba(27,45,107,.2);
  border-radius:12px;
  background:#fff;
  padding:22px;
  color:var(--text-secondary);
  display:grid;
  gap:4px;
}
.report-empty strong {
  color:var(--primary);
}
.report-empty.small {
  padding:12px;
  font-size:13px;
}
.access-page {
  display:grid;
  gap:16px;
}
.access-summary {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.access-summary div {
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  padding:15px;
  box-shadow:var(--shadow-sm);
  display:grid;
  gap:5px;
}
.access-summary span {
  color:var(--text-muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.access-summary strong {
  color:var(--primary);
  font-size:28px;
  line-height:1;
}
.access-summary small,
.muted-text {
  color:var(--text-secondary);
  font-size:13px;
}
.access-connection {
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  box-shadow:var(--shadow-sm);
  padding:16px;
  display:grid;
  gap:14px;
}
.access-connection.online {
  border-color:rgba(46,203,161,.42);
  background:linear-gradient(135deg,rgba(46,203,161,.10),var(--bg-card) 45%);
}
.access-connection.warn {
  border-color:rgba(245,158,11,.38);
  background:linear-gradient(135deg,rgba(245,158,11,.10),var(--bg-card) 45%);
}
.access-connection.off,
.access-connection.never,
.access-connection.empty {
  border-color:rgba(239,68,68,.24);
  background:linear-gradient(135deg,rgba(239,68,68,.07),var(--bg-card) 45%);
}
.access-connection-main {
  display:flex;
  align-items:center;
  gap:12px;
}
.access-connection-main strong {
  color:var(--primary);
  font-size:18px;
}
.access-connection-main small {
  display:block;
  margin-top:3px;
  color:var(--text-secondary);
  font-size:13px;
}
.access-dot {
  width:14px;
  height:14px;
  border-radius:50%;
  flex:0 0 14px;
  background:#94a3b8;
  box-shadow:0 0 0 5px rgba(148,163,184,.12);
}
.access-dot.online {
  background:#2ecba1;
  box-shadow:0 0 0 5px rgba(46,203,161,.18);
}
.access-dot.warn {
  background:#f59e0b;
  box-shadow:0 0 0 5px rgba(245,158,11,.16);
}
.access-dot.off,
.access-dot.never {
  background:#ef4444;
  box-shadow:0 0 0 5px rgba(239,68,68,.14);
}
.access-connection-meta {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.access-connection-meta span {
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(255,255,255,.72);
  padding:10px;
  color:var(--primary);
  font-size:13px;
  font-weight:800;
}
.access-connection-meta b {
  display:block;
  margin-bottom:3px;
  color:var(--text-muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.access-diagnostic {
  border-top:1px solid var(--border);
  padding-top:12px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.access-diagnostic div {
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(255,255,255,.58);
  padding:10px;
  display:grid;
  gap:7px;
  min-width:0;
}
.access-diagnostic small {
  color:var(--text-secondary);
  font-size:12px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.access-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:16px;
  align-items:start;
}
.access-setup-card {
  border-color:rgba(46,203,161,.28);
}
.access-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.access-status {
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 10px;
  font-size:12px;
  font-weight:800;
  background:rgba(148,163,184,.14);
  color:var(--text-secondary);
}
.access-status.online {
  background:rgba(46,203,161,.16);
  color:#0f9f7a;
}
.access-status.warn {
  background:rgba(245,158,11,.16);
  color:#b45309;
}
.access-status.off,
.access-status.never {
  background:rgba(239,68,68,.12);
  color:#dc2626;
}
.access-token-box {
  border:1px solid rgba(46,203,161,.35);
  border-radius:10px;
  background:rgba(46,203,161,.08);
  padding:12px;
  gap:6px;
}
.access-token-box strong {
  color:var(--primary);
}
.access-token-box span {
  color:var(--text-secondary);
  font-size:13px;
}
.access-token-box code,
.access-code {
  display:block;
  border:1px solid var(--border);
  border-radius:10px;
  background:#0f172a;
  color:#e2e8f0;
  padding:12px;
  white-space:pre-wrap;
  overflow:auto;
  font-size:12px;
  line-height:1.5;
}
.access-token-box code {
  background:#fff;
  color:var(--primary);
}
@media(max-width:1180px) {
  .report-choice-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .school-report-body {
    grid-template-columns:1fr;
  }
  .school-report-aside {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .school-report-aside h4 {
    grid-column:1/-1;
  }
}
@media(max-width:820px) {
  .reports-hero {
    padding:18px;
  }
  .reports-hero h2 {
    font-size:22px;
  }
  .report-filter-title {
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
  .report-filter-grid {
    grid-template-columns:1fr;
  }
  .access-grid,
  .access-summary,
  .access-connection-meta,
  .access-diagnostic {
    grid-template-columns:1fr;
  }
  .school-report-pills {
    grid-template-columns:1fr;
  }
  .school-report-body {
    padding:14px;
  }
  .school-report-aside {
    grid-template-columns:1fr;
  }
}
@media(max-width:560px) {
  .reports-page {
    gap:12px;
  }
  .reports-hero {
    border-radius:12px;
    padding:16px;
  }
  .reports-hero h2 {
    font-size:20px;
  }
  .reports-hero p {
    font-size:13px;
  }
  .report-choice-grid {
    grid-template-columns:1fr;
    gap:10px;
  }
  .report-choice {
    min-height:86px;
    grid-template-columns:42px 1fr;
    align-items:center;
    align-content:center;
    gap:4px 10px;
    padding:12px;
  }
  .report-choice-icon {
    grid-row:1/3;
  }
  .report-choice small {
    font-size:12px;
  }
  .school-report-head,
  .school-report-pills {
    padding-left:14px;
    padding-right:14px;
  }
  .school-report-head h3 {
    font-size:19px;
  }
  .school-table-wrap {
    max-height:360px;
  }
  .school-table-wrap table {
    min-width:560px;
  }
}
.turma-check-toolbar {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.turma-check-grid {
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--bg-card);
  padding:8px;
  max-height:240px;
  overflow:auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:8px;
}
.turma-check-card {
  min-height:58px;
  border:1px solid var(--border);
  border-radius:8px;
  padding:10px;
  display:flex;
  align-items:center;
  gap:9px;
  cursor:pointer;
  background:var(--bg-secondary);
}
.turma-check-card:has(input:checked) {
  border-color:rgba(46,203,161,.65);
  background:rgba(46,203,161,.12);
}
.turma-check-card input {
  width:18px;
  height:18px;
  flex:0 0 auto;
  accent-color:var(--teal);
}
.turma-check-card span {
  min-width:0;
  display:grid;
  gap:2px;
}
.turma-check-card strong {
  color:var(--text-primary);
  font-size:13px;
  line-height:1.2;
}
.turma-check-card small {
  color:var(--text-muted);
  font-size:12px;
}
.dashboard-birthday-card {
  border:1px solid rgba(46,203,161,.32);
  border-radius:12px;
  background:linear-gradient(135deg,rgba(46,203,161,.14),rgba(27,45,107,.08));
  box-shadow:var(--shadow-sm);
  padding:16px;
  margin-bottom:14px;
  display:flex;
  align-items:center;
  gap:14px;
}
.dashboard-birthday-card.birthday-live {
  position:relative;
  overflow:hidden;
  border-color:rgba(46,203,161,.62);
  background:linear-gradient(135deg,rgba(46,203,161,.22),rgba(255,214,102,.18) 52%,rgba(27,45,107,.08));
  box-shadow:0 14px 34px rgba(27,45,107,.12);
}
.dashboard-birthday-card.birthday-live:before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,var(--teal),#F4B740);
}
.dashboard-birthday-card.birthday-empty {
  border-color:var(--border);
  background:var(--bg-card);
  box-shadow:none;
}
.dashboard-birthday-icon {
  width:46px;
  height:46px;
  border-radius:12px;
  background:var(--teal);
  color:#fff;
  display:grid;
  place-items:center;
  flex:0 0 auto;
}
.dashboard-birthday-card > div:last-child {
  min-width:0;
  display:grid;
  gap:4px;
}
.dashboard-birthday-card span:first-child {
  color:var(--text-muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.35px;
}
.dashboard-birthday-card span:first-child b {
  display:inline-flex;
  align-items:center;
  margin-left:8px;
  padding:2px 7px;
  border-radius:999px;
  background:var(--teal);
  color:#fff;
  font-size:10px;
  letter-spacing:0;
}
.dashboard-birthday-card strong {
  color:var(--primary);
  font-size:18px;
  line-height:1.15;
}
.dashboard-birthday-card.birthday-live strong {
  font-size:20px;
}
.dashboard-birthday-list {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  color:var(--text-secondary);
  font-size:13px;
}
.dashboard-birthday-list span,
.dashboard-birthday-list small {
  border:1px solid rgba(46,203,161,.26);
  border-radius:999px;
  background:rgba(255,255,255,.68);
  padding:4px 8px;
  color:var(--text-primary);
}
.birthday-live .dashboard-birthday-list span,
.birthday-live .dashboard-birthday-list small {
  border-color:rgba(46,203,161,.38);
  background:#fff;
  box-shadow:0 8px 18px rgba(27,45,107,.08);
}
.dashboard-birthday-list span {
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.dashboard-birthday-list span strong {
  font-size:13px;
  color:var(--text-primary);
}
.dashboard-birthday-list span em {
  font-style:normal;
  color:var(--text-muted);
  font-size:11px;
}
.dashboard-alert-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}
.dashboard-alert-card {
  min-height:104px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  box-shadow:var(--shadow-sm);
  padding:16px;
  display:grid;
  align-content:center;
  gap:5px;
}
.dashboard-alert-card span {
  color:var(--text-muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.35px;
}
.dashboard-alert-card strong {
  color:var(--text-primary);
  font-size:28px;
  line-height:1.05;
}
.dashboard-alert-card small {
  color:var(--text-secondary);
  font-size:12px;
}
.dashboard-grid-2 {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:18px;
  align-items:start;
}
.freq-toolbar {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.freq-toolbar strong {
  display:block;
  color:var(--text-primary);
  font-size:17px;
}
.freq-toolbar p {
  margin:4px 0 0;
  color:var(--text-muted);
  font-size:13px;
}
.freq-toolbar-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.freq-summary {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:0 0 12px;
}
.freq-pill {
  min-height:30px;
  border-radius:999px;
  padding:6px 11px;
  display:inline-flex;
  align-items:center;
  font-size:12px;
  font-weight:800;
}
.freq-pill.ok { background:var(--ok-bg); color:var(--ok); }
.freq-pill.danger { background:var(--danger-bg); color:var(--danger); }
.freq-pill.warn { background:var(--warn-bg); color:var(--warn); }
.freq-feedback {
  border-radius:10px;
  padding:10px 12px;
  margin:0 0 12px;
  font-size:13px;
  font-weight:800;
}
.freq-feedback.success {
  background:var(--ok-bg);
  color:var(--ok);
  border:1px solid rgba(22,163,74,.25);
}
.freq-feedback.danger {
  background:var(--danger-bg);
  color:var(--danger);
  border:1px solid rgba(239,68,68,.25);
}
.freq-table small {
  color:var(--text-muted);
}
.nota-feedback {
  border-radius:10px;
  padding:10px 12px;
  margin:0 0 12px;
  font-size:13px;
  font-weight:800;
}
.nota-feedback.success {
  background:var(--ok-bg);
  color:var(--ok);
  border:1px solid rgba(22,163,74,.25);
}
.nota-feedback.danger {
  background:var(--danger-bg);
  color:var(--danger);
  border:1px solid rgba(239,68,68,.25);
}
.perm-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; }
.perm-item { border:1px solid var(--border); border-radius:8px; padding:10px 12px; display:flex; align-items:center; gap:9px; background:var(--bg-card); font-size:13px; color:var(--text-primary); }
.perm-item input { width:16px; height:16px; accent-color:var(--teal); }
.user-password-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:18px; align-items:end; }
.user-password-row .password-rules { grid-column:1 / span 2; margin-top:-8px; }
@media(max-width:900px){ .user-password-row { grid-template-columns:1fr; } .user-password-row .password-rules { grid-column:auto; } }

/* Log rows */
.log-alert-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0 0 16px; }
.log-alert-card { min-height:94px; border:1px solid var(--border); border-radius:10px; background:var(--bg-card); box-shadow:var(--shadow-sm); padding:14px; display:grid; align-content:center; gap:4px; }
.log-alert-card span { color:var(--text-muted); font-size:11px; font-weight:800; text-transform:uppercase; }
.log-alert-card strong { color:var(--text-primary); font-size:28px; line-height:1.05; }
.log-alert-card small { color:var(--text-secondary); font-size:12px; }
.log-alert-card.warning { border-color:rgba(245,158,11,.42); background:var(--warn-bg); }
.log-alert-card.warning strong { color:var(--warn); }
.log-alert-card.danger { border-color:rgba(239,68,68,.42); background:var(--danger-bg); }
.log-alert-card.danger strong { color:var(--danger); }
.log-filters { padding:12px 16px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.log-filters .filter-select { min-width:145px; }
.log-search { max-width:240px; min-height:38px; }
.log-row { padding:12px 16px; border-bottom:1px solid var(--border); font-size:13px; display:flex; align-items:center; gap:10px; min-height:58px; }
.log-row:last-child { border-bottom:none; }
.log-role { font-size:10px; font-weight:700; padding:2px 7px; border-radius:10px; text-transform:uppercase; }
.log-role.superadmin { background:linear-gradient(135deg,#7c3aed,#4f46e5); color:white; }
.log-role.gestor { background:var(--navy); color:white; }
.log-role.professor { background:var(--teal); color:var(--navy-dark); }
.log-role.aluno { background:var(--ok-bg); color:var(--ok); }
.log-role.security, .log-role.unknown { background:var(--danger-bg); color:var(--danger); }
.log-category { font-size:10px; font-weight:800; padding:3px 8px; border-radius:999px; text-transform:uppercase; background:var(--bg-stripe); color:var(--text-secondary); border:1px solid var(--border); white-space:nowrap; }
.log-category.auth { color:#1d4ed8; border-color:rgba(29,78,216,.24); background:rgba(29,78,216,.08); }
.log-category.security, .log-category.exclusao { color:var(--danger); border-color:rgba(239,68,68,.25); background:var(--danger-bg); }
.log-category.financeiro { color:var(--warn); border-color:rgba(245,158,11,.28); background:var(--warn-bg); }
.log-category.academico, .log-category.atendimento { color:var(--ok); border-color:rgba(22,163,74,.25); background:var(--ok-bg); }
.log-user { font-weight:800; color:var(--text-primary); min-width:120px; }
.log-action { font-weight:500; color:var(--text-primary); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.log-ip { color:var(--text-muted); font-size:12px; white-space:nowrap; }
.log-row-warning { background:linear-gradient(90deg,rgba(245,158,11,.08),transparent 45%); }
.log-row-danger { background:linear-gradient(90deg,rgba(239,68,68,.09),transparent 45%); }
.log-time { color:var(--text-muted); font-size:12px; margin-left:auto; white-space:nowrap; }
.activity-timeline {
  position:relative;
  padding:18px 22px 22px;
  background:var(--bg-card);
}
.activity-item {
  position:relative;
  border-bottom:0;
  min-height:92px;
  padding:8px 0 18px 74px;
  display:block;
}
.activity-item::before {
  content:"";
  position:absolute;
  left:25px;
  top:58px;
  bottom:-26px;
  width:1px;
  background:var(--border);
}
.activity-item:last-child::before {
  display:none;
}
.activity-icon {
  position:absolute;
  left:2px;
  top:4px;
  width:50px;
  height:50px;
  border-radius:50%;
  border:1.5px solid #31d483;
  background:#fff;
  color:#31c77b;
  display:grid;
  place-items:center;
  z-index:1;
}
.activity-icon svg {
  width:28px;
  height:28px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.activity-icon.warning {
  border-color:#f4b740;
  color:#d58912;
}
.activity-icon.danger,
.activity-icon.security,
.activity-icon.exclusao {
  border-color:#ef7b7b;
  color:#d94444;
}
.activity-icon.financeiro {
  border-color:#f4b740;
  color:#d58912;
}
.activity-icon.academico,
.activity-icon.atendimento {
  border-color:#31d483;
  color:#16a34a;
}
.activity-content {
  display:grid;
  gap:2px;
  min-width:0;
}
.activity-content .log-user {
  min-width:0;
  color:var(--text-primary);
  font-size:16px;
  line-height:1.2;
  font-weight:800;
}
.activity-content .log-action {
  color:var(--text-primary);
  font-size:16px;
  line-height:1.2;
  font-weight:500;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}
.activity-content .log-time {
  margin-left:0;
  color:var(--text-muted);
  font-size:14px;
  line-height:1.25;
}
.activity-meta {
  display:none;
  margin-top:5px;
  color:var(--text-muted);
  font-size:12px;
}
[data-theme="saas"] .activity-timeline {
  border-radius:0 0 20px 20px;
}
[data-theme="saas"] .activity-icon {
  box-shadow:0 8px 18px rgba(16,42,86,.06);
}
@media(max-width:900px){
  .log-alert-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .log-filters { align-items:stretch; }
  .log-filters .filter-select,
  .log-search { flex:1 1 180px; max-width:none; }
  .log-row { align-items:flex-start; flex-wrap:wrap; }
  .log-action { flex:1 1 100%; white-space:normal; }
  .log-time { margin-left:0; }
  .activity-item { flex-wrap:nowrap; }
}
@media(max-width:560px){
  .log-alert-grid { grid-template-columns:1fr; }
  .log-filters .filter-select,
  .log-search { flex-basis:100%; width:100%; }
  .log-user { min-width:0; }
  .log-ip,
  .log-time { flex:1 1 100%; }
  .activity-timeline { padding:14px 14px 18px; }
  .activity-item {
    min-height:82px;
    padding-left:62px;
  }
  .activity-icon {
    width:44px;
    height:44px;
  }
  .activity-icon svg {
    width:24px;
    height:24px;
  }
  .activity-item::before {
    left:22px;
    top:52px;
  }
  .activity-content .log-user,
  .activity-content .log-action {
    font-size:15px;
  }
  .activity-content .log-time {
    font-size:13px;
  }
}
.topbar-search { position:relative; flex:1; max-width:460px; min-width:220px; }
.topbar-search svg { position:absolute; left:12px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--text-muted); fill:none; stroke:currentColor; stroke-width:2; z-index:1; }
.topbar-search input { width:100%; height:40px; border:1px solid var(--border); border-radius:10px; background:var(--bg-card); color:var(--text-primary); padding:0 14px 0 38px; outline:none; font:inherit; }
.top-search-results { display:none; position:absolute; left:0; right:0; top:46px; z-index:130; background:var(--bg-card); border:1px solid var(--border); border-radius:10px; box-shadow:var(--shadow-lg); overflow:hidden; }
.top-search-results.active { display:block; }
.top-search-item { width:100%; border:0; background:transparent; padding:11px 13px; text-align:left; cursor:pointer; display:flex; justify-content:space-between; gap:10px; color:var(--text-primary); border-bottom:1px solid var(--border); }
.top-search-item:last-child { border-bottom:0; }
.top-search-item:hover { background:var(--bg-stripe); }
.topbar-message-btn {
  position:relative;
  width:44px;
  height:44px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  color:var(--text-secondary);
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:var(--shadow-sm);
}
.topbar-message-btn:hover,
.topbar-message-btn.has-unread {
  color:var(--navy);
  border-color:rgba(46,203,161,.45);
  background:var(--teal-light);
}
.topbar-message-btn svg {
  width:20px;
  height:20px;
}
.topbar-message-count {
  position:absolute;
  top:-7px;
  right:-7px;
  min-width:21px;
  height:21px;
  padding:0 6px;
  border-radius:999px;
  background:#ef4444;
  color:#fff;
  border:2px solid var(--bg-card);
  font-size:11px;
  font-weight:900;
  line-height:1;
  place-items:center;
  box-shadow:0 6px 14px rgba(239,68,68,.25);
}
.inline-search { position:relative; }
.inline-search-results { display:none; position:absolute; z-index:150; left:0; right:0; top:calc(100% + 6px); max-height:260px; overflow-y:auto; background:var(--bg-card); border:1px solid var(--border); border-radius:10px; box-shadow:var(--shadow-lg); }
.inline-search-results.active { display:block; }
.inline-search-results button { width:100%; border:0; background:transparent; color:var(--text-primary); padding:11px 12px; text-align:left; display:grid; gap:3px; cursor:pointer; border-bottom:1px solid var(--border); }
.inline-search-results button:last-child { border-bottom:0; }
.inline-search-results button:hover { background:var(--bg-stripe); }
.inline-search-results small,
.inline-search-empty { color:var(--text-muted); font-size:12px; }
.inline-search-empty { padding:12px; }
.chat-thread { min-height:260px; max-height:460px; overflow-y:auto; border:1px solid var(--border); border-radius:12px; background:var(--bg-stripe); padding:14px; display:flex; flex-direction:column; gap:10px; }
.chat-bubble { max-width:min(78%,620px); border:1px solid var(--border); border-radius:14px; padding:10px 12px; background:var(--bg-card); color:var(--text-primary); box-shadow:var(--shadow-sm); }
.chat-bubble.mine { align-self:flex-end; background:var(--teal-light); border-color:rgba(46,203,161,.35); }
.chat-bubble.theirs { align-self:flex-start; }
.chat-bubble p { margin:4px 0 0; white-space:pre-wrap; line-height:1.45; overflow-wrap:anywhere; }
.chat-meta { color:var(--text-muted); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.35px; }
.main-content:has(#page-mensagens.active) {
  overflow:hidden;
  padding:14px;
}
.chat-page { padding:0 !important; height:100%; overflow:hidden; }
.chat-shell { display:grid; grid-template-columns:330px minmax(0,1fr) 290px; gap:14px; height:calc(100dvh - 92px); min-height:0; overflow:hidden; }
.chat-list-panel,
.chat-main-panel,
.chat-info-panel { min-width:0; background:var(--bg-card); border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow-sm); overflow:hidden; }
.chat-list-panel { display:flex; flex-direction:column; min-height:0; }
.chat-list-header { padding:18px 18px 12px; }
.chat-list-header h2 { margin:0; color:var(--text-primary); font-size:22px; line-height:1.15; }
.chat-list-header p { margin:5px 0 0; color:var(--text-muted); font-size:13px; }
.chat-search-box { position:relative; display:block; margin:0 12px 12px; }
.chat-search-box svg { position:absolute; left:12px; top:50%; width:18px; height:18px; transform:translateY(-50%); color:var(--text-muted); fill:none; stroke:currentColor; stroke-width:2; }
.chat-search-box input { width:100%; height:44px; border:1px solid var(--border); border-radius:10px; background:var(--bg-stripe); color:var(--text-primary); padding:0 12px 0 40px; outline:none; font:inherit; }
.chat-filter-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 14px 12px; color:var(--text-secondary); font-size:13px; font-weight:700; }
.chat-filter-row button { border:0; background:transparent; color:var(--teal); font:inherit; font-size:13px; font-weight:800; cursor:pointer; }
.chat-conversation-list { flex:1; min-height:0; overflow-y:auto; padding:0 10px 10px; scrollbar-width:thin; scrollbar-color:rgba(27,45,107,.26) transparent; }
.chat-conversation-list::-webkit-scrollbar,
.chat-thread-console::-webkit-scrollbar,
.chat-info-panel::-webkit-scrollbar { width:8px; }
.chat-conversation-list::-webkit-scrollbar-track,
.chat-thread-console::-webkit-scrollbar-track,
.chat-info-panel::-webkit-scrollbar-track { background:transparent; }
.chat-conversation-list::-webkit-scrollbar-thumb,
.chat-thread-console::-webkit-scrollbar-thumb,
.chat-info-panel::-webkit-scrollbar-thumb { background:rgba(27,45,107,.24); border-radius:999px; border:2px solid transparent; background-clip:content-box; }
.chat-conversation-list::-webkit-scrollbar-thumb:hover,
.chat-thread-console::-webkit-scrollbar-thumb:hover,
.chat-info-panel::-webkit-scrollbar-thumb:hover { background:rgba(27,45,107,.42); border:2px solid transparent; background-clip:content-box; }
.chat-conversation-item { position:relative; width:100%; border:1px solid transparent; background:transparent; color:var(--text-primary); border-radius:10px; padding:10px 34px 10px 10px; display:flex; align-items:flex-start; gap:10px; text-align:left; cursor:pointer; }
.chat-conversation-item:hover { background:var(--bg-hover); }
.chat-conversation-item.active { background:#eaf2ff; border-color:#cfe0ff; }
.chat-conversation-item.unread strong { color:var(--navy); }
.chat-avatar { width:42px; height:42px; flex:0 0 42px; border-radius:50%; display:grid; place-items:center; background:var(--navy); color:#fff; font-size:13px; font-weight:800; overflow:hidden; }
.chat-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.chat-conversation-main { min-width:0; flex:1; display:block; }
.chat-conversation-top { display:flex; justify-content:space-between; gap:8px; align-items:center; }
.chat-conversation-top strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.chat-conversation-top small { color:var(--text-muted); font-size:11px; white-space:nowrap; }
.chat-conversation-sub,
.chat-conversation-last { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chat-conversation-sub { color:var(--text-muted); font-size:12px; margin-top:2px; }
.chat-conversation-last { color:var(--text-secondary); font-size:13px; margin-top:5px; }
.chat-unread { position:absolute; right:8px; top:36px; min-width:20px; height:20px; border-radius:999px; background:var(--teal); color:var(--navy-dark); display:grid; place-items:center; font-size:11px; font-weight:900; padding:0 6px; }
.chat-empty-list { padding:18px 10px; color:var(--text-muted); font-size:13px; text-align:center; }
.chat-main-panel { display:flex; flex-direction:column; min-height:0; }
.chat-main-header { min-height:74px; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--border); background:var(--bg-card); }
.chat-main-header h3 { margin:0; color:var(--text-primary); font-size:18px; }
.chat-main-header p { margin:4px 0 0; color:var(--text-muted); font-size:13px; }
.chat-current { display:flex; align-items:center; gap:12px; min-width:0; }
.chat-current > div { min-width:0; }
.chat-mobile-back { display:none; width:36px; height:36px; flex:0 0 36px; border:1px solid var(--border); border-radius:50%; background:var(--bg-card); color:var(--primary); font-size:26px; line-height:1; align-items:center; justify-content:center; cursor:pointer; }
.chat-thread-console { flex:1; min-height:0; max-height:none; overflow-y:auto; border:0; border-radius:0; background:#eef5ff; padding:18px; scrollbar-width:thin; scrollbar-color:rgba(27,45,107,.26) transparent; }
.chat-thread-console .chat-bubble.mine { background:#cfe4ff; border-color:#b8d6ff; }
.chat-compose { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; padding:12px; border-top:1px solid var(--border); background:var(--bg-card); align-items:end; }
.chat-compose textarea { min-height:48px; max-height:96px; resize:none; border-radius:18px; padding:13px 16px; line-height:1.35; }
.chat-compose .btn { min-height:48px; min-width:54px; align-self:end; border-radius:16px; }
.chat-main-panel #msg-err { margin:10px 12px 0; }
.chat-info-panel { padding:18px; overflow-y:auto; scrollbar-width:thin; scrollbar-color:rgba(27,45,107,.26) transparent; }
.chat-info-head { text-align:center; padding-bottom:16px; border-bottom:1px solid var(--border); }
.chat-info-head .chat-avatar { width:62px; height:62px; margin:0 auto 10px; font-size:18px; }
.chat-info-head h3 { margin:0; color:var(--text-primary); font-size:17px; }
.chat-info-head p,
.chat-info-muted { margin:6px 0 0; color:var(--text-muted); font-size:13px; line-height:1.45; }
.chat-info-list { display:grid; gap:10px; padding:16px 0; }
.chat-info-list div { border:1px solid var(--border); border-radius:10px; padding:10px 12px; background:var(--bg-stripe); }
.chat-info-list span { display:block; color:var(--text-muted); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.45px; }
.chat-info-list strong { display:block; margin-top:3px; color:var(--text-primary); font-size:14px; overflow-wrap:anywhere; }
.chat-info-actions { display:grid; gap:10px; }
.chat-conversation-item.closed .chat-conversation-last,
.chat-conversation-item.closed .chat-conversation-sub { color:var(--text-muted); }
.chat-compose textarea:disabled { opacity:.75; cursor:not-allowed; background:var(--bg-stripe); }
.chat-compose .btn:disabled,
.chat-info-actions .btn:disabled { opacity:.65; cursor:not-allowed; box-shadow:none; }
.chat-confirm-overlay { position:fixed; inset:0; z-index:5000; background:rgba(12,22,44,.45); display:grid; place-items:center; padding:18px; }
.chat-confirm-box { width:min(430px,100%); background:var(--bg-card); color:var(--text-primary); border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow-lg); padding:22px; }
.chat-confirm-box h3 { margin:0 0 8px; font-size:19px; color:var(--text-primary); }
.chat-confirm-box p { margin:0; color:var(--text-secondary); line-height:1.45; }
.chat-confirm-actions { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; margin-top:18px; }
.btn-full { width:100%; justify-content:center; }

/* Super admin escola cards */
.escolas-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:16px; }
@media print {
  @page { margin: 10mm; }
  body * { visibility: hidden !important; }
  .boletim-wrap, .boletim-wrap * { visibility: visible !important; }
  .boletim-wrap {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }
  .boletim-card {
    box-shadow: none !important;
    border-radius: 0 !important;
    border: 1px solid #d7dfed !important;
  }
  .boletim-header,
  .boletim-table th,
  .nota-badge,
  .sit-badge {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}
@media(max-width:900px) {
  .grid-2 { grid-template-columns:1fr; }
  .aluno-resumo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-alert-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-grid-2 { grid-template-columns:1fr; }
  .dashboard-kpi-strip,
  .dashboard-focus-grid.polished,
  .dash-task-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-hero-polished { align-items:flex-start; flex-direction:column; }
  .dashboard-workspace,
  .dash-operation-grid { grid-template-columns:1fr; }
  .dashboard-exec { align-items:flex-start; flex-direction:column; }
  .report-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .report-grid { grid-template-columns:1fr; }
  .freq-toolbar-actions { width:100%; justify-content:flex-start; }
  .aluno-profile-tabs { margin-left:-16px; margin-right:-16px; padding:12px 16px 10px; overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; }
  .aluno-profile-tabs .aluno-tab { white-space:nowrap; flex:0 0 auto; }
  .school-badge { display: none !important; }
  .topbar-search { order:3; flex-basis:100%; max-width:none; }
  .topbar { height:auto !important; min-height:58px; flex-wrap:wrap; padding:8px 10px !important; }
  .topbar { height: 58px !important; padding: 0 10px !important; gap: 8px !important; }
  .topbar-left, .topbar-right { gap: 7px !important; min-width: 0 !important; }
  .topbar-logo-icon { width: 32px !important; height: 32px !important; }
  .topbar-logo-text { font-size: 16px !important; }
  .main-content { padding: 12px !important; }
  .boletim-wrap { width: 100% !important; max-width: 100% !important; overflow: visible !important; }
  .boletim-card { width: 100% !important; min-width: 0 !important; border-radius: 12px !important; }
  .boletim-header { padding: 18px !important; align-items: flex-start !important; }
  .boletim-header-left { align-items: flex-start !important; }
  .boletim-logo-box { width: 42px !important; height: 42px !important; border-radius: 10px !important; }
  .boletim-escola h2 { font-size: 17px !important; line-height: 1.2 !important; }
  .boletim-aluno-info { text-align: left !important; width: 100% !important; }
  .boletim-aluno-info h3 { font-size: 18px !important; }
  .boletim-body { padding: 14px !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; }
  .boletim-table { min-width: 620px !important; margin-top: 0 !important; }
  .boletim-table th { padding: 9px 10px !important; font-size: 10px !important; }
  .boletim-table td { padding: 11px 10px !important; font-size: 13px !important; }
  .boletim-footer { padding: 14px !important; align-items: flex-start !important; }
}
@media(max-width:420px) {
  .topbar-logo-text { display: none !important; }
  .aluno-resumo-grid { grid-template-columns:1fr; }
  .dashboard-alert-grid { grid-template-columns:1fr; }
  .dashboard-kpi-strip,
  .dashboard-focus-grid.polished,
  .dash-shortcut-grid,
  .dash-task-grid,
  .dash-action-list,
  .dash-simple-metrics { grid-template-columns:1fr; }
  .dashboard-hero-polished { padding:18px; }
  .dashboard-hero-copy h2 { font-size:23px; }
  .dash-task-card { min-height:104px; grid-template-columns:42px 1fr; align-content:center; gap:4px 10px; }
  .dash-task-icon { grid-row:1/4; }
  .dash-task-card strong { font-size:24px; }
  .dash-action-row { min-height:74px; }
  .report-metrics { grid-template-columns:1fr; }
  .report-bar-row { grid-template-columns:1fr; gap:6px; }
  .report-bar-row strong { text-align:left; }
  .aluno-resumo-head { display:grid; }
  .freq-toolbar-actions .btn { flex:1; justify-content:center; }
}

@media(max-width:768px) {
  body:not(:has(#aluno-app.active)) .topbar {
    height: auto !important;
    min-height: 58px !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    padding: 8px 10px 10px !important;
    overflow: visible !important;
    z-index: 3000 !important;
  }
  body:not(:has(#aluno-app.active)) .topbar-left {
    flex: 1 1 auto !important;
  }
  body:not(:has(#aluno-app.active)) .topbar-right {
    flex: 0 0 auto !important;
  }
  .topbar-message-btn {
    width:38px;
    height:38px;
    border-radius:10px;
  }
  body:not(:has(#aluno-app.active)) .topbar-search {
    order: 5 !important;
    flex: 0 0 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    position: relative !important;
    overflow: visible !important;
    z-index: 3100 !important;
  }
  body:not(:has(#aluno-app.active)) .topbar-search input {
    height: 44px !important;
    border-radius: 14px !important;
    font-size: 15px !important;
  }
  body:not(:has(#aluno-app.active)) .top-search-results {
    position: fixed !important;
    left: 10px !important;
    right: 10px !important;
    top: 112px !important;
    max-height: min(52vh,360px) !important;
    overflow-y: auto !important;
    z-index: 6000 !important;
    border-radius: 14px !important;
  }
  body:not(:has(#aluno-app.active)) .main-content {
    padding-top: 16px !important;
  }
  #table-alunos,
  #table-dash-alunos {
    min-width: 0 !important;
  }
  #table-alunos thead,
  #table-dash-alunos thead {
    display: none !important;
  }
  #table-alunos tbody,
  #table-dash-alunos tbody,
  #table-alunos tr,
  #table-dash-alunos tr,
  #table-alunos td,
  #table-dash-alunos td {
    display: block !important;
    width: 100% !important;
  }
  #table-alunos tr,
  #table-dash-alunos tr {
    border: 1px solid var(--border) !important;
    border-radius: 14px !important;
    background: var(--bg-card) !important;
    box-shadow: var(--shadow-sm) !important;
    margin-bottom: 12px !important;
    padding: 12px !important;
  }
  #table-alunos td,
  #table-dash-alunos td {
    border: 0 !important;
    padding: 7px 0 !important;
    color: var(--text-primary) !important;
    white-space: normal !important;
  }
  #table-alunos td:nth-child(1)::before { content: "Nome"; }
  #table-alunos td:nth-child(2)::before { content: "Matrícula"; }
  #table-alunos td:nth-child(3)::before { content: "Turma"; }
  #table-alunos td:nth-child(4)::before { content: "Turno"; }
  #table-alunos td:nth-child(5)::before { content: "CPF"; }
  #table-alunos td:nth-child(6)::before { content: "Nascimento"; }
  #table-dash-alunos td:nth-child(1)::before { content: "Aluno"; }
  #table-dash-alunos td:nth-child(2)::before { content: "Turma"; }
  #table-dash-alunos td:nth-child(3)::before { content: "Matrícula"; }
  #table-dash-alunos td:nth-child(4)::before { content: "Notas"; }
  #table-alunos td:not(:last-child),
  #table-dash-alunos td {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 14px !important;
  }
  #table-alunos td::before,
  #table-dash-alunos td::before {
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .5px;
    flex: 0 0 auto;
  }
  #table-alunos td:last-child {
    display: flex !important;
    gap: 8px !important;
    padding-top: 12px !important;
  }
  #table-alunos td:last-child::before {
    content: "";
    display: none;
  }
  #table-alunos td:last-child .btn {
    flex: 1 1 0;
  }
  .aluno-profile-page-header {
    display: grid !important;
    grid-template-columns: 42px minmax(0,1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    margin-bottom: 10px !important;
  }
  .aluno-profile-page-header .aluno-back-btn {
    grid-column: 1;
    grid-row: 1;
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    padding: 0 !important;
    font-size: 0 !important;
  }
  .aluno-profile-page-header .aluno-back-btn::before {
    content: "←";
    font-size: 20px;
    line-height: 1;
  }
  .aluno-profile-page-header > div {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
  }
  .aluno-profile-page-header h2 {
    font-size: 19px !important;
    line-height: 1.15 !important;
  }
  .aluno-profile-page-header p {
    display: none !important;
  }
  #aluno-perfil-meta {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }
  #btn-edit-aluno-perfil {
    grid-column: 1 / -1;
    width: 100% !important;
  }
  .main-content:has(#page-mensagens.active) {
    padding:0 !important;
    min-height:calc(100dvh - 58px);
  }
  .chat-thread { min-height:0; max-height:none; padding:10px; }
  .chat-bubble { max-width:92%; }
  .chat-shell {
    grid-template-columns:1fr;
    grid-template-rows:1fr;
    height:calc(100dvh - 58px);
    min-height:0;
    gap:0;
    overflow:hidden;
    border-radius:0;
  }
  .chat-list-panel,
  .chat-main-panel {
    border:0;
    border-radius:0;
    box-shadow:none;
    min-height:0;
  }
  .chat-list-panel { max-height:none; }
  .chat-shell.chat-mobile-open .chat-list-panel { display:none; }
  .chat-shell:not(.chat-mobile-open) .chat-main-panel { display:none; }
  .chat-list-header { padding:16px 16px 10px; }
  .chat-list-header h2 { font-size:19px; }
  .chat-search-box { margin:0 12px 10px; }
  .chat-search-box input { height:46px; font-size:16px; }
  .chat-filter-row { padding:0 14px 10px; }
  .chat-conversation-list { padding:0 10px 12px; }
  .chat-conversation-item { min-height:76px; border-color:var(--border); background:var(--bg-card); margin-bottom:8px; box-shadow:var(--shadow-sm); }
  .chat-conversation-last { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
  .chat-info-panel { display:none; }
  .chat-main-header { min-height:62px; padding:10px 12px; }
  .chat-mobile-back { display:flex; }
  .chat-current .chat-avatar { width:36px; height:36px; flex-basis:36px; }
  .chat-main-header h3 { font-size:16px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:42vw; }
  .chat-main-header p { font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:42vw; }
  .chat-main-header .btn { min-height:36px; width:auto; flex:0 0 auto; padding:7px 10px; }
  .chat-thread-console { min-height:0; max-height:none; padding:12px; }
  .chat-compose {
    grid-template-columns:1fr;
    padding:10px 10px calc(10px + env(safe-area-inset-bottom));
    gap:8px;
  }
  .chat-compose textarea { min-height:58px; max-height:112px; font-size:16px; border-radius:14px; }
  .chat-compose .btn { min-height:44px; width:100%; min-width:0; padding-left:13px; padding-right:13px; border-radius:12px; }
  #page-protocolos .card-padded { padding:14px !important; }
  #page-protocolos .form-row { grid-template-columns:1fr; gap:0; }
  #page-protocolos #prot-doc-box {
    align-items:flex-start !important;
    line-height:1.35;
  }
  #page-protocolos #prot-doc-box input { margin-top:3px; }
  #page-protocolos #prot-err { align-items:flex-start; }
  #page-protocolos #btn-prot-save,
  #page-protocolos #btn-prot-cancel { width:100%; }
  table.protocolos-table.mobile-card-table tr { padding:12px; }
  table.protocolos-table.mobile-card-table td.protocolos-title strong {
    color:var(--primary);
    overflow-wrap:anywhere;
  }
  table.protocolos-table.mobile-card-table td.protocolos-student small {
    display:block;
    color:var(--text-muted);
    margin-top:3px;
    overflow-wrap:anywhere;
  }
  table.protocolos-table.mobile-card-table td.protocolos-actions {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  table.protocolos-table.mobile-card-table td.protocolos-actions::before { grid-column:1 / -1; }
  table.protocolos-table.mobile-card-table td.protocolos-actions .btn {
    width:100%;
    min-width:0;
    flex:none;
  }
}

@media(max-width:768px) {
  body:not(:has(#aluno-app.active)) #page-dashboard .page-header {
    margin-bottom:14px !important;
  }
  body:not(:has(#aluno-app.active)) #page-dashboard .stats-grid,
  body:not(:has(#aluno-app.active)) #page-dashboard .dashboard-alert-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
    margin-bottom:12px !important;
  }
  body:not(:has(#aluno-app.active)) #page-dashboard .stat-card,
  body:not(:has(#aluno-app.active)) #page-dashboard .dashboard-alert-card {
    min-height:88px !important;
    padding:12px !important;
    border-radius:12px !important;
    gap:8px !important;
  }
  body:not(:has(#aluno-app.active)) #page-dashboard .stat-icon {
    width:42px !important;
    height:42px !important;
    border-radius:12px !important;
  }
  body:not(:has(#aluno-app.active)) #page-dashboard .stat-info h3,
  body:not(:has(#aluno-app.active)) #page-dashboard .dashboard-alert-card strong {
    font-size:24px !important;
    line-height:1.05 !important;
  }
  body:not(:has(#aluno-app.active)) #page-dashboard .stat-info p,
  body:not(:has(#aluno-app.active)) #page-dashboard .dashboard-alert-card small {
    font-size:12px !important;
    line-height:1.25 !important;
  }
  body:not(:has(#aluno-app.active)) #page-dashboard .dashboard-table-card {
    margin-top:10px !important;
  }
  body:not(:has(#aluno-app.active)) #page-aluno-perfil,
  body:not(:has(#aluno-app.active)) #page-aluno-perfil * {
    box-sizing:border-box;
  }
  body:not(:has(#aluno-app.active)) #page-aluno-perfil {
    max-width:100%;
    overflow-x:hidden;
  }
  body:not(:has(#aluno-app.active)) #page-aluno-perfil > .card {
    width:100% !important;
    max-width:100% !important;
    overflow:hidden !important;
    border-radius:14px !important;
  }
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .card-header {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
    padding:16px !important;
  }
  body:not(:has(#aluno-app.active)) #aluno-perfil-nome {
    font-size:20px !important;
    line-height:1.2 !important;
    overflow-wrap:anywhere;
  }
  body:not(:has(#aluno-app.active)) #aluno-perfil-meta {
    line-height:1.35 !important;
    overflow-wrap:anywhere;
  }
  body:not(:has(#aluno-app.active)) #btn-edit-aluno-perfil {
    width:100% !important;
    min-width:0 !important;
    min-height:46px !important;
    justify-content:center !important;
    padding:11px 14px !important;
  }
  body:not(:has(#aluno-app.active)) .aluno-profile-body {
    padding:0 12px 14px !important;
    overflow:hidden !important;
  }
  body:not(:has(#aluno-app.active)) .aluno-profile-tabs {
    max-width:calc(100% + 24px) !important;
    margin:0 -12px 14px !important;
    padding:10px 12px !important;
    overflow-x:auto !important;
    flex-wrap:nowrap !important;
    -webkit-overflow-scrolling:touch;
  }
  body:not(:has(#aluno-app.active)) .aluno-profile-tabs .aluno-tab {
    flex:0 0 auto !important;
    min-width:max-content !important;
    min-height:36px !important;
    padding:8px 12px !important;
  }
  body:not(:has(#aluno-app.active)) #aluno-tab-dados,
  body:not(:has(#aluno-app.active)) .aluno-tab-panel {
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden !important;
  }
  body:not(:has(#aluno-app.active)) .aluno-resumo-pedagogico {
    width:100% !important;
    max-width:100% !important;
    padding:12px !important;
    margin-bottom:12px !important;
    overflow:hidden !important;
  }
  body:not(:has(#aluno-app.active)) .aluno-resumo-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }
  body:not(:has(#aluno-app.active)) .aluno-resumo-card {
    min-width:0 !important;
    min-height:84px !important;
    padding:11px !important;
  }
  body:not(:has(#aluno-app.active)) .aluno-resumo-card strong {
    font-size:22px !important;
  }
  body:not(:has(#aluno-app.active)) .aluno-resumo-card small {
    line-height:1.25 !important;
    overflow-wrap:anywhere;
  }
}

@media(max-width:420px) {
  body:not(:has(#aluno-app.active)) #page-dashboard .stats-grid,
  body:not(:has(#aluno-app.active)) #page-dashboard .dashboard-alert-grid,
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-resumo-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:768px) {
  html,
  body,
  #app-screen,
  body:not(:has(#aluno-app.active)) .app-layout,
  body:not(:has(#aluno-app.active)) .topbar,
  body:not(:has(#aluno-app.active)) .app-body,
  body:not(:has(#aluno-app.active)) .main-content {
    width:100% !important;
    max-width:100vw !important;
    overflow-x:hidden !important;
  }
  html,
  body {
    position:relative;
  }
  body:not(:has(#aluno-app.active)) .app-body {
    display:block !important;
    min-width:0 !important;
  }
  body:not(:has(#aluno-app.active)) .main-content {
    min-width:0 !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }
  body:not(:has(#aluno-app.active)) .page,
  body:not(:has(#aluno-app.active)) .page.active,
  body:not(:has(#aluno-app.active)) .card,
  body:not(:has(#aluno-app.active)) .card-padded,
  body:not(:has(#aluno-app.active)) .card-header {
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }
  body:not(:has(#aluno-app.active)) .sidebar {
    position:fixed !important;
    top:58px !important;
    left:0 !important;
    width:min(84vw,280px) !important;
    max-width:calc(100vw - 18px) !important;
    height:calc(100dvh - 58px) !important;
    min-height:0 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain !important;
    -webkit-overflow-scrolling:touch !important;
    transform:translateX(calc(-100% - 12px)) !important;
  }
  body:not(:has(#aluno-app.active)) .sidebar.open {
    transform:translateX(0) !important;
  }
  body:not(:has(#aluno-app.active)) .sidebar .nav-item,
  body:not(:has(#aluno-app.active)) .sidebar .nav-group-title {
    min-width:0 !important;
    max-width:100% !important;
  }
  body:not(:has(#aluno-app.active)) .sidebar .nav-item span,
  body:not(:has(#aluno-app.active)) .sidebar .nav-group-title span {
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
  body:not(:has(#aluno-app.active)) #page-aluno-perfil {
    width:100% !important;
    max-width:100% !important;
    overflow-x:hidden !important;
  }
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs {
    width:100% !important;
    max-width:100% !important;
    margin:0 0 14px !important;
    padding:10px 0 !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
  }
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab {
    width:auto !important;
    max-width:none !important;
    flex:0 0 auto !important;
  }
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel > *,
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-resumo-pedagogico,
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-resumo-grid,
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .grid,
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .grid-2 {
    max-width:100% !important;
    min-width:0 !important;
  }
}

/* Typography polish for admin modules. */
.page,
.page *,
.modal,
.modal *,
.table,
.table *,
.chat-panel,
.chat-panel *,
.access-connection,
.access-connection *,
.access-diagnostic,
.access-diagnostic *,
.report-card,
.report-card *,
.dashboard-alert-card,
.dashboard-alert-card *,
.stat-card,
.stat-card * {
  font-family: var(--font-sans) !important;
}

.page-title,
.page-header h2,
.card-header h3,
.modal-header h3,
.section-title,
.stat-info h3,
.dashboard-alert-card strong,
.access-summary strong,
.access-summary span,
.access-diagnostic strong,
.report-card strong,
.chat-contact-name,
.log-user {
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

.stat-info p,
.dashboard-alert-card small,
.access-summary small,
.access-diagnostic span,
.chat-meta,
.chat-info-list span,
.log-alert-card span,
.log-category,
.table th,
.form-help,
.muted {
  font-weight: 600 !important;
  letter-spacing: .01em !important;
}

.stat-info h3,
.dashboard-alert-card strong,
.access-summary span,
.metric-value,
.report-number {
  font-variant-numeric: tabular-nums;
}

/* SaaS school theme for the management panel. */
[data-theme="saas"] .main-content {
  background:transparent;
  padding:24px 30px;
}

[data-theme="saas"] .page-header {
  background:transparent;
  border:0;
  box-shadow:none;
  padding:0 0 4px;
}

[data-theme="saas"] .dashboard-home {
  gap:14px;
}

[data-theme="saas"] .app-body {
  background:transparent;
}

[data-theme="saas"] .topbar {
  height:72px;
  padding:0 28px;
}

[data-theme="saas"] .sidebar {
  width:286px;
  padding:18px 16px;
}

[data-theme="saas"] .nav-group {
  margin:0 0 10px;
  border:1px solid rgba(24,87,215,.1);
  border-radius:14px;
  background:rgba(255,255,255,.7);
  overflow:hidden;
}

[data-theme="saas"] .nav-group-toggle {
  min-height:48px;
  padding:0 12px;
  border-radius:0;
}

[data-theme="saas"] .nav-group-title {
  gap:10px;
}

[data-theme="saas"] .nav-group-title svg {
  width:22px;
  height:22px;
  color:#1857D7;
}

[data-theme="saas"] .nav-group-items {
  padding:0 8px 10px 44px;
}

[data-theme="saas"] .nav-group-items .nav-item {
  min-height:34px;
  border-radius:9px;
}

[data-theme="saas"] .sidebar .nav-standalone {
  min-height:52px;
  border-radius:14px;
  margin-bottom:12px;
  background:linear-gradient(135deg,#1857D7,#19B89A);
  color:#fff;
  box-shadow:0 12px 24px rgba(24,87,215,.18);
}

[data-theme="saas"] .sidebar .nav-standalone svg {
  stroke:#fff;
}

[data-theme="saas"] .topbar-search {
  max-width:560px;
}

[data-theme="saas"] .topbar-search input {
  height:44px;
  border-radius:14px;
  box-shadow:0 8px 18px rgba(16,42,86,.04);
}

[data-theme="saas"] .user-chip {
  background:#fff;
  border-color:#D7E4F5;
  box-shadow:0 8px 18px rgba(16,42,86,.04);
}

[data-theme="saas"] .dashboard-saas-home {
  display:grid;
  gap:16px;
}

[data-theme="saas"] .saas-command-center {
  min-height:220px;
  border:1px solid rgba(24,87,215,.13);
  border-radius:24px;
  padding:26px;
  color:#fff;
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  gap:22px;
  align-items:end;
  background:
    radial-gradient(circle at 84% 18%, rgba(25,184,154,.34), transparent 28%),
    linear-gradient(135deg,#102A56 0%,#1857D7 58%,#19B89A 100%);
  box-shadow:0 22px 48px rgba(16,42,86,.18);
  overflow:hidden;
  position:relative;
}

[data-theme="saas"] .saas-command-copy {
  position:relative;
  z-index:1;
  display:grid;
  gap:10px;
  max-width:740px;
}

[data-theme="saas"] .saas-eyebrow,
[data-theme="saas"] .saas-section-head span {
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}

[data-theme="saas"] .saas-command-copy h2 {
  color:#fff;
  font-size:34px;
  line-height:1.05;
  margin:0;
}

[data-theme="saas"] .saas-command-copy p {
  color:rgba(255,255,255,.82);
  margin:0;
  max-width:620px;
}

[data-theme="saas"] .saas-command-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:8px;
}

[data-theme="saas"] .saas-command-actions .btn {
  width:auto;
  min-height:42px;
}

[data-theme="saas"] .saas-command-actions .btn-primary {
  background:#fff;
  color:#1857D7;
  box-shadow:0 14px 28px rgba(0,0,0,.14);
}

[data-theme="saas"] .saas-command-actions .btn-outline {
  background:rgba(255,255,255,.12);
  color:#fff;
  border-color:rgba(255,255,255,.34);
}

[data-theme="saas"] .saas-today-panel {
  position:relative;
  z-index:1;
  border:1px solid rgba(255,255,255,.2);
  border-radius:18px;
  background:rgba(255,255,255,.13);
  backdrop-filter:blur(14px);
  padding:18px;
  display:grid;
  gap:4px;
}

[data-theme="saas"] .saas-today-panel span,
[data-theme="saas"] .saas-today-panel small {
  color:rgba(255,255,255,.72);
  font-size:12px;
}

[data-theme="saas"] .saas-today-panel strong {
  color:#fff;
  font-size:18px;
  line-height:1.2;
  text-transform:capitalize;
}

[data-theme="saas"] .saas-kpi-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}

[data-theme="saas"] .saas-kpi-card {
  min-height:142px;
  border:1px solid rgba(24,87,215,.12);
  border-radius:18px;
  background:#fff;
  padding:16px;
  text-align:left;
  display:grid;
  align-content:start;
  gap:7px;
  box-shadow:0 12px 28px rgba(16,42,86,.06);
  cursor:pointer;
}

[data-theme="saas"] .saas-kpi-card:hover,
[data-theme="saas"] .saas-module-card:hover {
  transform:translateY(-2px);
  border-color:rgba(25,184,154,.35);
  box-shadow:0 18px 36px rgba(16,42,86,.1);
}

[data-theme="saas"] .saas-kpi-icon {
  width:42px;
  height:42px;
  border-radius:14px;
  background:#EAF2FF;
  color:#1857D7;
  display:grid;
  place-items:center;
}

[data-theme="saas"] .saas-kpi-icon svg {
  width:21px;
  height:21px;
}

[data-theme="saas"] .saas-kpi-card small {
  color:#58708F;
  font-size:12px;
  font-weight:700;
}

[data-theme="saas"] .saas-kpi-card strong {
  color:#102A56;
  font-size:32px;
  line-height:1;
}

[data-theme="saas"] .saas-kpi-card em {
  color:#7A8EA6;
  font-size:12px;
  font-style:normal;
}

[data-theme="saas"] .saas-kpi-card.success .saas-kpi-icon { background:#E8F8F4; color:#0E9279; }
[data-theme="saas"] .saas-kpi-card.warning .saas-kpi-icon { background:#FFF4D8; color:#B7790D; }
[data-theme="saas"] .saas-kpi-card.danger .saas-kpi-icon { background:#FFE8E8; color:#D94444; }

[data-theme="saas"] .saas-birthday-strip {
  border:1px solid rgba(25,184,154,.22);
  border-radius:16px;
  background:#E8F8F4;
  padding:12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

[data-theme="saas"] .saas-birthday-strip span,
[data-theme="saas"] .saas-birthday-strip em {
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(25,184,154,.2);
  color:#102A56;
  padding:7px 11px;
  font-style:normal;
  font-size:12px;
  box-shadow:0 8px 18px rgba(16,42,86,.05);
}

[data-theme="saas"] .saas-birthday-strip small {
  color:#0E9279;
  margin-left:4px;
}

[data-theme="saas"] .saas-school-grid {
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(340px,.72fr);
  gap:16px;
  align-items:start;
}

[data-theme="saas"] .saas-module-board,
[data-theme="saas"] .saas-insight-card {
  border:1px solid rgba(24,87,215,.12);
  border-radius:20px;
  background:rgba(255,255,255,.95);
  padding:18px;
  box-shadow:0 12px 28px rgba(16,42,86,.06);
}

[data-theme="saas"] .saas-insight-stack {
  display:grid;
  gap:16px;
}

[data-theme="saas"] .saas-section-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

[data-theme="saas"] .saas-section-head span {
  color:#94A5B8;
}

[data-theme="saas"] .saas-section-head h3 {
  margin:4px 0 0;
  color:#102A56;
  font-size:18px;
}

[data-theme="saas"] .saas-module-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

[data-theme="saas"] .saas-module-card {
  min-height:158px;
  border:1px solid #DCE6F3;
  border-radius:18px;
  background:#F8FAFE;
  padding:16px;
  text-align:left;
  display:grid;
  align-content:start;
  gap:10px;
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

[data-theme="saas"] .saas-module-card > span {
  width:46px;
  height:46px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:#EAF2FF;
  color:#1857D7;
}

[data-theme="saas"] .saas-module-card svg {
  width:22px;
  height:22px;
}

[data-theme="saas"] .saas-module-card strong {
  color:#102A56;
  font-size:17px;
}

[data-theme="saas"] .saas-module-card small {
  color:#58708F;
  line-height:1.35;
}

[data-theme="saas"] .saas-module-card.green > span { background:#E8F8F4; color:#0E9279; }
[data-theme="saas"] .saas-module-card.cyan > span { background:#E6F7FF; color:#0F7BAE; }
[data-theme="saas"] .saas-module-card.gold > span { background:#FFF4D8; color:#B7790D; }
[data-theme="saas"] .saas-module-card.purple > span { background:#F0E9FF; color:#7254C9; }
[data-theme="saas"] .saas-module-card.slate > span { background:#ECF1F7; color:#475569; }

[data-theme="saas"] .saas-health-list {
  display:grid;
  gap:10px;
}

[data-theme="saas"] .saas-health-list div {
  border:1px solid #DCE6F3;
  border-radius:14px;
  background:#F8FAFE;
  padding:12px;
  display:grid;
  gap:3px;
}

[data-theme="saas"] .saas-health-list span {
  color:#94A5B8;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
}

[data-theme="saas"] .saas-health-list strong {
  color:#1857D7;
  font-size:22px;
}

[data-theme="saas"] .saas-health-list small {
  color:#58708F;
}

[data-theme="saas"] .dash-task-card,
[data-theme="saas"] .dash-work-card,
[data-theme="saas"] .dashboard-alert-card,
[data-theme="saas"] .dashboard-birthday-card,
[data-theme="saas"] .report-card,
[data-theme="saas"] .access-connection,
[data-theme="saas"] .access-diagnostic,
[data-theme="saas"] .chat-list-panel,
[data-theme="saas"] .chat-main-panel,
[data-theme="saas"] .chat-info-panel,
[data-theme="saas"] .finance-card,
[data-theme="saas"] .notas-aluno-card,
[data-theme="saas"] .notas-materia-card {
  background:rgba(255,255,255,.94);
  border-color:rgba(24,87,215,.12);
  box-shadow:0 10px 28px rgba(16,42,86,.06);
}

[data-theme="saas"] .dash-task-card.ok,
[data-theme="saas"] .dash-birthday-today {
  background:linear-gradient(135deg,rgba(25,184,154,.13),rgba(255,255,255,.96) 58%);
  border-color:rgba(25,184,154,.28);
}

[data-theme="saas"] .dash-task-card.warn {
  background:linear-gradient(135deg,rgba(255,212,97,.18),rgba(255,255,255,.96) 62%);
  border-color:rgba(213,137,18,.24);
}

[data-theme="saas"] .dash-task-card.danger {
  background:linear-gradient(135deg,rgba(217,68,68,.12),rgba(255,255,255,.96) 62%);
  border-color:rgba(217,68,68,.22);
}

[data-theme="saas"] .dash-task-icon,
[data-theme="saas"] .dash-action-row span,
[data-theme="saas"] .stat-icon {
  background:#E8F8F4;
  color:#0E9279;
}

[data-theme="saas"] .dash-action-row,
[data-theme="saas"] .dash-simple-metrics div,
[data-theme="saas"] .dash-priority-item,
[data-theme="saas"] .dash-empty-good {
  background:#F7FAFF;
  border-color:#DCE6F3;
}

[data-theme="saas"] .dash-action-row:hover,
[data-theme="saas"] .dash-priority-item:hover,
[data-theme="saas"] .chat-conversation-item:hover,
[data-theme="saas"] tbody tr:hover {
  background:#EDF5FF;
  border-color:#BFD5F7;
}

[data-theme="saas"] thead tr,
[data-theme="saas"] .card-header,
[data-theme="saas"] .chat-main-header,
[data-theme="saas"] .chat-compose {
  background:#F7FAFF;
}

[data-theme="saas"] .dashboard-alert-card strong,
[data-theme="saas"] .dash-task-card strong,
[data-theme="saas"] .dash-simple-metrics strong,
[data-theme="saas"] .report-card strong {
  color:#1857D7;
}

@media(max-width:1100px) {
  [data-theme="saas"] .saas-command-center,
  [data-theme="saas"] .saas-school-grid {
    grid-template-columns:1fr;
  }
  [data-theme="saas"] .saas-kpi-grid,
  [data-theme="saas"] .saas-module-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:768px) {
  [data-theme="saas"] .main-content {
    padding:14px;
  }
  [data-theme="saas"] .sidebar {
    width:min(86vw,310px) !important;
    top:72px !important;
    height:calc(100dvh - 72px) !important;
  }
  [data-theme="saas"] .saas-command-center {
    min-height:auto;
    padding:20px;
    border-radius:20px;
  }
  [data-theme="saas"] .saas-command-copy h2 {
    font-size:26px;
  }
}

@media(max-width:520px) {
  [data-theme="saas"] .saas-kpi-grid,
  [data-theme="saas"] .saas-module-grid {
    grid-template-columns:1fr;
  }
  [data-theme="saas"] .saas-kpi-card,
  [data-theme="saas"] .saas-module-card {
    min-height:118px;
  }
}

/* SaaS layout scroll cleanup: one app viewport, no visible duplicate bars. */
[data-theme="saas"],
[data-theme="saas"] body {
  height:100%;
  overflow:hidden;
}

[data-theme="saas"] #app-screen.app-layout,
[data-theme="saas"] .app-layout {
  height:100dvh;
  min-height:0;
  overflow:hidden;
}

[data-theme="saas"] .app-body {
  height:calc(100dvh - 72px);
  min-height:0;
  overflow:hidden;
}

[data-theme="saas"] .main-content {
  height:100%;
  max-height:none;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
  overscroll-behavior:contain;
}

[data-theme="saas"] .main-content::-webkit-scrollbar,
[data-theme="saas"] .sidebar::-webkit-scrollbar {
  width:0;
  height:0;
}

[data-theme="saas"] .sidebar {
  height:100%;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
  overscroll-behavior:contain;
}

@media(min-width:1101px) and (min-height:820px) {
  [data-theme="saas"] .dashboard-saas-home {
    gap:12px;
  }
  [data-theme="saas"] .saas-command-center {
    min-height:184px;
    padding:22px;
  }
  [data-theme="saas"] .saas-kpi-card {
    min-height:118px;
    padding:14px;
  }
  [data-theme="saas"] .saas-module-card {
    min-height:132px;
  }
}

/* Dashboard principal limpa: tela inicial mais objetiva para rotina escolar. */
.dashboard-clean {
  display:grid;
  gap:16px;
  max-width:1280px;
}
.dash-clean-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:112px;
  border:1px solid var(--border);
  border-radius:14px;
  background:linear-gradient(135deg,var(--bg-card),rgba(46,203,161,.08));
  padding:20px;
  box-shadow:var(--shadow);
}
.dash-clean-head span,
.dash-clean-title span {
  display:block;
  color:var(--text-muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:0;
}
.dash-clean-head h2 {
  margin:4px 0;
  color:var(--text-primary);
  font-size:24px;
  line-height:1.15;
}
.dash-clean-head p {
  margin:0;
  color:var(--text-secondary);
  font-size:14px;
}
.dash-clean-actions {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.dash-clean-actions.compact {
  gap:8px;
}
.dash-clean-actions .btn {
  min-height:42px;
}
.dash-clean-actions.compact .btn {
  min-height:34px;
}
.dash-clean-actions svg,
.dash-clean-shortcut svg,
.dash-clean-kpi svg,
.dash-clean-birthday svg {
  width:18px;
  height:18px;
}
.dash-clean-birthday {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border:1px solid rgba(46,203,161,.28);
  border-radius:12px;
  background:rgba(46,203,161,.08);
  padding:12px 14px;
}
.dash-clean-birthday b {
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--primary);
  font-size:13px;
}
.dash-clean-birthday div {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.dash-clean-birthday span,
.dash-clean-birthday em {
  display:inline-flex;
  align-items:center;
  gap:5px;
  border:1px solid rgba(46,203,161,.22);
  border-radius:999px;
  background:var(--bg-card);
  padding:7px 10px;
  color:var(--text-primary);
  font-style:normal;
  font-size:12px;
}
.dash-clean-birthday small {
  color:var(--text-muted);
}
.dash-clean-kpis {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.dash-clean-kpi {
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  grid-template-rows:auto auto auto;
  align-items:center;
  gap:2px 12px;
  min-height:104px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  padding:14px;
  text-align:left;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(15,23,42,.05);
  transition:.18s ease;
}
.dash-clean-kpi:hover,
.dash-clean-shortcut:hover {
  transform:translateY(-1px);
  border-color:rgba(46,203,161,.38);
}
.dash-clean-kpi > span {
  grid-row:1/4;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:12px;
  background:rgba(27,45,107,.08);
  color:var(--primary);
}
.dash-clean-kpi.green > span { background:rgba(46,203,161,.13); color:var(--teal); }
.dash-clean-kpi.amber > span { background:rgba(245,158,11,.14); color:#B7790D; }
.dash-clean-kpi.red > span { background:rgba(239,68,68,.12); color:#DC2626; }
.dash-clean-kpi small {
  color:var(--text-muted);
  font-size:12px;
  font-weight:800;
}
.dash-clean-kpi strong {
  color:var(--text-primary);
  font-size:26px;
  line-height:1;
}
.dash-clean-kpi em {
  color:var(--text-secondary);
  font-size:12px;
  font-style:normal;
}
.dash-clean-grid {
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  gap:14px;
  align-items:start;
}
.dash-clean-card {
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-card);
  padding:16px;
  box-shadow:var(--shadow);
}
.dash-clean-summary {
  grid-column:1/-1;
}
.dash-clean-title {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.dash-clean-title h3 {
  margin:3px 0 0;
  color:var(--text-primary);
  font-size:17px;
}
.dash-clean-shortcuts {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.dash-clean-shortcut {
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:2px 10px;
  align-items:center;
  min-height:76px;
  border:1px solid var(--border);
  border-radius:10px;
  background:linear-gradient(135deg,var(--bg-card),rgba(27,45,107,.025));
  padding:12px;
  text-align:left;
  cursor:pointer;
}
.dash-clean-shortcut span {
  grid-row:1/3;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:10px;
  background:rgba(46,203,161,.11);
  color:var(--teal);
}
.dash-clean-shortcut strong {
  color:var(--text-primary);
  font-size:14px;
}
.dash-clean-shortcut small {
  color:var(--text-secondary);
  font-size:12px;
}
.dash-priority-clean {
  gap:9px;
}
.dash-priority-clean .dash-priority-item {
  min-height:58px;
  border-radius:10px;
}
.dash-clean-summary-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.dash-clean-summary-grid > div {
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(15,23,42,.025);
  padding:12px;
}
.dash-clean-summary-grid span {
  display:block;
  color:var(--text-muted);
  font-size:12px;
  font-weight:800;
}
.dash-clean-summary-grid strong {
  display:block;
  margin-top:6px;
  color:var(--text-primary);
  font-size:24px;
  line-height:1;
}
[data-theme="saas"] .dash-clean-head,
[data-theme="saas"] .dash-clean-card,
[data-theme="saas"] .dash-clean-kpi {
  border-color:rgba(24,87,215,.12);
  box-shadow:0 10px 26px rgba(15,52,96,.06);
}
[data-theme="saas"] .dash-clean-head {
  background:linear-gradient(135deg,#fff,#F2FBF8);
}
[data-theme="dark"] .dash-clean-summary-grid > div,
[data-theme="dark"] .dash-clean-shortcut {
  background:rgba(255,255,255,.03);
}
@media(max-width:1100px) {
  .dash-clean-grid { grid-template-columns:1fr; }
}
@media(max-width:820px) {
  .dash-clean-head {
    align-items:flex-start;
    flex-direction:column;
  }
  .dash-clean-actions {
    width:100%;
    justify-content:flex-start;
  }
  .dash-clean-kpis,
  .dash-clean-summary-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:560px) {
  .dashboard-clean { gap:12px; }
  .dash-clean-head,
  .dash-clean-card {
    border-radius:12px;
    padding:14px;
  }
  .dash-clean-head h2 { font-size:21px; }
  .dash-clean-kpis,
  .dash-clean-shortcuts,
  .dash-clean-summary-grid {
    grid-template-columns:1fr;
  }
  .dash-clean-kpi { min-height:88px; }
  .dash-clean-birthday {
    align-items:flex-start;
    flex-direction:column;
  }
  .dash-clean-birthday div {
    justify-content:flex-start;
  }
}

/* Oculta barras visuais de rolagem do painel sem travar a rolagem quando o conteudo passar da tela. */
body:not(:has(#aluno-app.active)) .main-content,
body:not(:has(#aluno-app.active)) .sidebar,
body:not(:has(#aluno-app.active)) .school-table-wrap,
body:not(:has(#aluno-app.active)) .table-wrap {
  scrollbar-width:none;
  -ms-overflow-style:none;
}
body:not(:has(#aluno-app.active)) .main-content::-webkit-scrollbar,
body:not(:has(#aluno-app.active)) .sidebar::-webkit-scrollbar,
body:not(:has(#aluno-app.active)) .school-table-wrap::-webkit-scrollbar,
body:not(:has(#aluno-app.active)) .table-wrap::-webkit-scrollbar {
  width:0;
  height:0;
}

/* Relatorios limpos: leitura guiada por area, filtro simples e resultado acionavel. */
.reports-clean {
  display:grid;
  gap:14px;
  max-width:1280px;
}
.reports-clean-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:1px solid var(--border);
  border-radius:14px;
  background:linear-gradient(135deg,var(--bg-card),rgba(27,45,107,.04));
  padding:18px;
  box-shadow:var(--shadow);
}
.reports-clean-head span {
  display:block;
  color:var(--text-muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
}
.reports-clean-head h2 {
  margin:4px 0;
  color:var(--text-primary);
  font-size:23px;
}
.reports-clean-head p {
  margin:0;
  color:var(--text-secondary);
  font-size:14px;
}
.report-tabbar {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.report-tab {
  min-height:82px;
  grid-template-columns:40px minmax(0,1fr);
  align-content:center;
  gap:2px 10px;
  border-radius:12px;
  padding:12px;
}
.report-tab .report-choice-icon {
  grid-row:1/3;
}
.report-tab.active {
  background:linear-gradient(135deg,rgba(46,203,161,.14),var(--bg-card) 72%);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
}
.reports-clean-filter {
  border-radius:12px;
  box-shadow:none;
}
.school-report-clean {
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--bg-card);
  box-shadow:var(--shadow);
}
.school-report-clean .school-report-head {
  padding:16px 18px 10px;
}
.school-report-clean .school-report-head h3 {
  color:var(--text-primary);
  font-size:21px;
}
.school-report-clean .school-report-pills {
  padding:12px 18px;
}
.school-report-clean .school-pill {
  min-height:72px;
  border-radius:12px;
}
.school-report-clean .school-report-card,
.school-report-clean .school-report-aside {
  background:var(--bg-card);
  border-color:var(--border);
  box-shadow:none;
}
.school-report-clean .school-report-aside {
  background:linear-gradient(180deg,rgba(46,203,161,.08),rgba(255,255,255,0));
}
[data-theme="saas"] .reports-clean-head,
[data-theme="saas"] .school-report-clean,
[data-theme="saas"] .school-report-clean .school-report-card,
[data-theme="saas"] .school-report-clean .school-report-aside {
  border-color:rgba(24,87,215,.12);
}
[data-theme="saas"] .reports-clean-head {
  background:linear-gradient(135deg,#fff,#F2FBF8);
}
[data-theme="dark"] .school-report-clean .school-report-aside {
  background:rgba(255,255,255,.03);
}
@media(max-width:900px) {
  .report-tabbar {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .reports-clean-head {
    align-items:flex-start;
    flex-direction:column;
  }
}
@media(max-width:520px) {
  .report-tabbar {
    grid-template-columns:1fr;
  }
  .reports-clean-head,
  .school-report-clean .school-report-head,
  .school-report-clean .school-report-pills {
    padding-left:14px;
    padding-right:14px;
  }
}

/* Acabamento final do painel: dashboard, relatorios e logs no mesmo padrao SaaS escolar. */
body:not(:has(#aluno-app.active)) .main-content {
  background:
    linear-gradient(180deg, rgba(234,242,255,.72) 0, rgba(246,249,253,1) 280px),
    var(--bg);
}

body:not(:has(#aluno-app.active)) .page.active {
  animation: panelFadeIn .16s ease-out;
}

@keyframes panelFadeIn {
  from { opacity:.86; transform:translateY(4px); }
  to { opacity:1; transform:none; }
}

body:not(:has(#aluno-app.active)) .dashboard-clean,
body:not(:has(#aluno-app.active)) .reports-clean,
body:not(:has(#aluno-app.active)) #page-logs > .card,
body:not(:has(#aluno-app.active)) #page-sa-logs > .card {
  width:100%;
  max-width:1280px;
  margin-inline:auto;
}

body:not(:has(#aluno-app.active)) #page-dashboard > .stats-grid,
body:not(:has(#aluno-app.active)) #page-dashboard > .card:not(:has(#dashboard-pedagogico)),
body:not(:has(#aluno-app.active)) #page-dashboard .dashboard-kpi-hidden {
  display:none !important;
}

body:not(:has(#aluno-app.active)) .dashboard-clean {
  gap:14px;
}

body:not(:has(#aluno-app.active)) .dash-clean-birthday {
  margin:0;
  border-radius:14px;
  background:linear-gradient(135deg,rgba(46,203,161,.14),rgba(255,255,255,.95));
}

body:not(:has(#aluno-app.active)) .dash-clean-kpis {
  gap:14px;
}

body:not(:has(#aluno-app.active)) .dash-clean-kpi,
body:not(:has(#aluno-app.active)) .dash-clean-card,
body:not(:has(#aluno-app.active)) .reports-clean-head,
body:not(:has(#aluno-app.active)) .reports-clean-filter,
body:not(:has(#aluno-app.active)) .school-report-clean,
body:not(:has(#aluno-app.active)) #page-logs > .card,
body:not(:has(#aluno-app.active)) #page-sa-logs > .card {
  border-color:rgba(24,87,215,.12);
  box-shadow:0 12px 30px rgba(16,42,86,.06);
}

body:not(:has(#aluno-app.active)) .dash-clean-kpi {
  min-height:98px;
  border-radius:14px;
}

body:not(:has(#aluno-app.active)) .dash-clean-card {
  border-radius:14px;
}

body:not(:has(#aluno-app.active)) .dash-clean-shortcut {
  min-height:72px;
  border-radius:12px;
  border-color:rgba(24,87,215,.10);
  background:#fff;
}

body:not(:has(#aluno-app.active)) .dash-clean-summary-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

body:not(:has(#aluno-app.active)) .dash-clean-summary-grid > div {
  border-radius:12px;
  background:linear-gradient(135deg,#fff,rgba(234,242,255,.7));
}

body:not(:has(#aluno-app.active)) .reports-clean-head {
  min-height:104px;
  border-radius:16px;
  background:linear-gradient(135deg,#fff,#F2FBF8);
}

body:not(:has(#aluno-app.active)) .report-tabbar {
  gap:12px;
}

body:not(:has(#aluno-app.active)) .report-tab {
  border-color:rgba(24,87,215,.12);
  background:#fff;
  box-shadow:0 10px 24px rgba(16,42,86,.05);
}

body:not(:has(#aluno-app.active)) .report-tab.active {
  border-color:rgba(46,203,161,.45);
  background:linear-gradient(135deg,rgba(46,203,161,.16),#fff 68%);
}

body:not(:has(#aluno-app.active)) .reports-clean-filter {
  padding:14px;
  border:1px solid rgba(24,87,215,.12);
  border-radius:14px;
  background:#fff;
}

body:not(:has(#aluno-app.active)) .school-report-clean {
  border-radius:16px;
}

body:not(:has(#aluno-app.active)) .school-report-clean .school-report-body {
  padding:0 16px 16px;
}

body:not(:has(#aluno-app.active)) .school-report-clean .school-report-card,
body:not(:has(#aluno-app.active)) .school-report-clean .school-report-aside {
  border-radius:14px;
}

body:not(:has(#aluno-app.active)) .school-table-wrap {
  border-radius:12px;
  overflow:auto;
}

body:not(:has(#aluno-app.active)) #page-logs > .page-header,
body:not(:has(#aluno-app.active)) #page-sa-logs > .page-header {
  max-width:1280px;
  margin:0 auto 14px;
}

body:not(:has(#aluno-app.active)) #page-logs > .card,
body:not(:has(#aluno-app.active)) #page-sa-logs > .card {
  overflow:hidden;
  border:1px solid rgba(24,87,215,.12);
  border-radius:16px;
  background:#fff;
}

body:not(:has(#aluno-app.active)) #page-logs .card-header,
body:not(:has(#aluno-app.active)) #page-sa-logs .card-header {
  min-height:64px;
  padding:16px 20px;
  background:linear-gradient(135deg,#fff,#F2FBF8);
  border-bottom:1px solid rgba(24,87,215,.10);
}

body:not(:has(#aluno-app.active)) #page-logs .card-header h3,
body:not(:has(#aluno-app.active)) #page-sa-logs .card-header h3 {
  font-size:18px;
}

body:not(:has(#aluno-app.active)) .log-alert-grid {
  padding:14px 16px 0;
  margin:0;
}

body:not(:has(#aluno-app.active)) .log-alert-card {
  min-height:82px;
  border-radius:14px;
  border-color:rgba(24,87,215,.12);
  box-shadow:none;
}

body:not(:has(#aluno-app.active)) .log-filters {
  margin:14px 16px 0;
  padding:12px;
  border:1px solid rgba(24,87,215,.10);
  border-radius:14px;
  background:rgba(246,249,253,.82);
}

body:not(:has(#aluno-app.active)) .activity-timeline {
  margin:14px 16px 18px;
  padding:18px 10px 18px 26px;
  border:1px solid rgba(24,87,215,.10);
  border-radius:16px;
  background:#fff;
}

body:not(:has(#aluno-app.active)) .activity-item {
  min-height:74px;
  padding:0 0 18px;
  border-bottom:0;
  background:transparent !important;
}

body:not(:has(#aluno-app.active)) .activity-item:last-child {
  padding-bottom:0;
}

body:not(:has(#aluno-app.active)) .activity-item::before {
  left:24px;
  top:50px;
  bottom:-2px;
  background:rgba(24,87,215,.12);
}

body:not(:has(#aluno-app.active)) .activity-icon {
  width:50px;
  height:50px;
  border-radius:50%;
  background:#E8F8F4;
  color:#0E9279;
  box-shadow:0 0 0 8px #fff;
}

body:not(:has(#aluno-app.active)) .activity-icon svg {
  width:22px;
  height:22px;
}

body:not(:has(#aluno-app.active)) .activity-content {
  padding:2px 0 0 12px;
}

body:not(:has(#aluno-app.active)) .activity-content .log-user {
  font-size:14px;
}

body:not(:has(#aluno-app.active)) .activity-content .log-action {
  margin-top:2px;
  color:var(--text-primary);
  font-size:14px;
  white-space:normal;
}

body:not(:has(#aluno-app.active)) .activity-content .log-time,
body:not(:has(#aluno-app.active)) .activity-content .log-ip,
body:not(:has(#aluno-app.active)) .activity-meta {
  margin-top:4px;
  font-size:12px;
}

body:not(:has(#aluno-app.active)) .activity-content .log-ip {
  display:inline-flex;
  width:auto;
  margin-right:8px;
}

body:not(:has(#aluno-app.active)) .activity-meta {
  display:inline-flex;
  width:auto;
}

@media(max-width:900px) {
  body:not(:has(#aluno-app.active)) .dash-clean-kpis,
  body:not(:has(#aluno-app.active)) .dash-clean-summary-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  body:not(:has(#aluno-app.active)) .school-report-clean .school-report-body {
    padding-inline:14px;
  }
}

@media(max-width:560px) {
  body:not(:has(#aluno-app.active)) .main-content {
    padding:14px;
  }

  body:not(:has(#aluno-app.active)) .dash-clean-kpis,
  body:not(:has(#aluno-app.active)) .dash-clean-shortcuts,
  body:not(:has(#aluno-app.active)) .dash-clean-summary-grid,
  body:not(:has(#aluno-app.active)) .report-tabbar {
    grid-template-columns:1fr;
  }

  body:not(:has(#aluno-app.active)) .dash-clean-kpi {
    min-height:86px;
  }

  body:not(:has(#aluno-app.active)) .reports-clean-head,
  body:not(:has(#aluno-app.active)) .dash-clean-card,
  body:not(:has(#aluno-app.active)) #page-logs > .card,
  body:not(:has(#aluno-app.active)) #page-sa-logs > .card {
    border-radius:14px;
  }

  body:not(:has(#aluno-app.active)) .log-alert-grid {
    grid-template-columns:1fr;
  }

  body:not(:has(#aluno-app.active)) .log-filters {
    margin-inline:12px;
  }

  body:not(:has(#aluno-app.active)) .activity-timeline {
    margin:12px;
    padding:14px 8px 14px 18px;
  }

  body:not(:has(#aluno-app.active)) .activity-icon {
    width:42px;
    height:42px;
  }

  body:not(:has(#aluno-app.active)) .activity-item::before {
    left:20px;
    top:44px;
  }
}

/* Tema SaaS em janelas: todo modulo do painel passa a parecer um app com paineis. */
[data-theme="saas"] body:not(:has(#aluno-app.active)) .main-content {
  padding:18px;
  background:
    linear-gradient(180deg, rgba(229,239,255,.88) 0, rgba(246,249,253,1) 300px),
    #F6F9FD;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .page.active {
  position:relative;
  width:100%;
  max-width:1360px;
  min-height:calc(100dvh - 104px);
  margin:0 auto;
  padding:18px;
  border:1px solid rgba(24,87,215,.13);
  border-radius:18px;
  background:rgba(255,255,255,.82);
  box-shadow:0 18px 46px rgba(16,42,86,.09);
  overflow:hidden;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .page.active::before {
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:42px;
  border-bottom:1px solid rgba(24,87,215,.10);
  background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(246,249,253,.82));
  pointer-events:none;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .page.active::after {
  content:"";
  position:absolute;
  top:16px;
  left:18px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#19B89A;
  box-shadow:16px 0 0 #F4BE4F,32px 0 0 #F26D6D;
  pointer-events:none;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .page.active > * {
  position:relative;
  z-index:1;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .page-header {
  min-height:66px;
  margin:0 0 14px;
  padding:32px 6px 0;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .page-header h2 {
  font-size:20px;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .page-header p {
  max-width:720px;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .card,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .card-padded,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .stat-card,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .dash-clean-card,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .dash-clean-kpi,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .dash-clean-birthday,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .reports-clean-head,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .reports-clean-filter,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .school-report-clean,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .chat-list-panel,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .chat-main-panel,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .chat-info-panel,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .finance-card,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .notas-aluno-card,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .notas-materia-card,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .access-connection,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .access-diagnostic {
  border:1px solid rgba(24,87,215,.12);
  border-radius:16px;
  background:#fff;
  box-shadow:0 12px 30px rgba(16,42,86,.055);
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .card,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .card-padded {
  margin-bottom:14px;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .card-header,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .chat-main-header,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .chat-compose,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .notas-aluno-head {
  min-height:54px;
  border-bottom:1px solid rgba(24,87,215,.10);
  background:linear-gradient(180deg,#fff,#F7FAFE);
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .card-header h3,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .config-section h3,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .notas-aluno-head h3 {
  font-size:15px;
  font-weight:760;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .config-section {
  margin:0 0 14px;
  padding:14px;
  border:1px solid rgba(24,87,215,.10);
  border-radius:14px;
  background:linear-gradient(180deg,#fff,#F8FBFF);
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .config-section h3 {
  margin-bottom:14px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(24,87,215,.10);
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .table-wrap,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .school-table-wrap {
  border:1px solid rgba(24,87,215,.10);
  border-radius:14px;
  background:#fff;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) thead tr {
  background:#F3F7FD;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) th {
  border-bottom-color:rgba(24,87,215,.10);
  letter-spacing:.02em;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) td {
  border-bottom-color:rgba(24,87,215,.08);
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .form-control,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .filter-select,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .search-bar,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .topbar-search input {
  border-color:rgba(24,87,215,.14);
  border-radius:12px;
  background:#F8FBFF;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .form-control:focus,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .filter-select:focus,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .search-bar:focus-within,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .topbar-search:focus-within {
  background:#fff;
  border-color:rgba(25,184,154,.55);
  box-shadow:0 0 0 4px rgba(25,184,154,.10);
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .btn,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .btn-primary,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .btn-outline,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .btn-teal {
  border-radius:12px;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .finance-tabs,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .report-tabbar {
  padding:10px;
  border:1px solid rgba(24,87,215,.10);
  border-radius:16px;
  background:rgba(255,255,255,.72);
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .finance-tab,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .report-tab {
  border-radius:12px;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .modal {
  border:1px solid rgba(24,87,215,.14);
  border-radius:18px;
  box-shadow:0 24px 70px rgba(16,42,86,.20);
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .modal-header {
  min-height:58px;
  background:linear-gradient(180deg,#fff,#F7FAFE);
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .modal-body {
  background:#fff;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) .dashboard-clean,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .reports-clean,
[data-theme="saas"] body:not(:has(#aluno-app.active)) .chat-shell {
  max-width:none;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) #page-dashboard.page.active {
  padding-top:54px;
}

[data-theme="saas"] body:not(:has(#aluno-app.active)) #page-dashboard .dashboard-pedagogico {
  margin:0;
}

/* Perfil do aluno em abas reais, com dados separados por area. */
body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs {
  display:flex;
  gap:8px;
  align-items:center;
  padding:10px;
  margin:0 0 16px;
  border:1px solid rgba(24,87,215,.10);
  border-radius:16px;
  background:rgba(246,249,253,.88);
  overflow-x:auto;
  scrollbar-width:none;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs::-webkit-scrollbar {
  display:none;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab {
  flex:0 0 auto;
  min-height:40px;
  border-radius:12px;
  font-weight:750;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab.active {
  background:linear-gradient(135deg,#1857D7,#103C9E);
  border-color:#1857D7;
  color:#fff;
  box-shadow:0 10px 24px rgba(24,87,215,.18);
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel {
  min-height:320px;
}

body:not(:has(#aluno-app.active)) .aluno-profile-data-grid {
  display:grid;
  grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);
  gap:14px;
  align-items:start;
}

body:not(:has(#aluno-app.active)) .aluno-profile-identity {
  min-height:180px;
  display:flex;
  align-items:center;
  gap:16px;
  padding:18px;
  border:1px solid rgba(24,87,215,.12);
  border-radius:16px;
  background:linear-gradient(135deg,#1857D7,#103C9E 62%,#19B89A);
  color:#fff;
  box-shadow:0 14px 34px rgba(16,42,86,.12);
}

body:not(:has(#aluno-app.active)) .aluno-profile-photo {
  width:76px;
  height:76px;
  flex:0 0 76px;
  display:grid;
  place-items:center;
  border:2px solid rgba(255,255,255,.36);
  border-radius:18px;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:24px;
  font-weight:800;
  overflow:hidden;
}

body:not(:has(#aluno-app.active)) .aluno-profile-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
}

body:not(:has(#aluno-app.active)) .aluno-profile-identity span {
  display:block;
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
}

body:not(:has(#aluno-app.active)) .aluno-profile-identity h3 {
  margin:4px 0;
  color:#fff;
  font-size:22px;
  line-height:1.12;
}

body:not(:has(#aluno-app.active)) .aluno-profile-identity p {
  margin:0;
  color:rgba(255,255,255,.78);
  overflow-wrap:anywhere;
}

body:not(:has(#aluno-app.active)) .aluno-window-panel {
  margin:0;
}

body:not(:has(#aluno-app.active)) .aluno-window-panel h3 {
  margin:0 0 12px;
  color:var(--text-primary);
  font-size:15px;
}

body:not(:has(#aluno-app.active)) .aluno-info-list {
  display:grid;
  gap:9px;
}

body:not(:has(#aluno-app.active)) .aluno-info-list p {
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:10px;
  margin:0;
  padding:9px 0;
  border-bottom:1px solid rgba(24,87,215,.08);
}

body:not(:has(#aluno-app.active)) .aluno-info-list p:last-child {
  border-bottom:0;
}

body:not(:has(#aluno-app.active)) .aluno-info-list strong {
  color:var(--text-muted);
  font-size:12px;
}

body:not(:has(#aluno-app.active)) .aluno-info-list span {
  color:var(--text-primary);
  font-weight:650;
  overflow-wrap:anywhere;
}

@media(max-width:900px) {
  body:not(:has(#aluno-app.active)) .aluno-profile-data-grid {
    grid-template-columns:1fr;
  }

  body:not(:has(#aluno-app.active)) .aluno-profile-identity {
    grid-row:auto;
  }
}

@media(max-width:560px) {
  body:not(:has(#aluno-app.active)) .aluno-profile-identity {
    align-items:flex-start;
    flex-direction:column;
    min-height:0;
  }

  body:not(:has(#aluno-app.active)) .aluno-info-list p {
    grid-template-columns:1fr;
    gap:3px;
  }
}

/* Perfil do aluno v2: abas visiveis como navegação lateral e dados sem card gigante. */
body:not(:has(#aluno-app.active)) #page-aluno-perfil > .card {
  background:#fff;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil > .card > .card-header {
  min-height:72px;
  padding:18px 20px !important;
  border-bottom:1px solid rgba(24,87,215,.10);
  background:linear-gradient(180deg,#fff,#F7FAFE);
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-body {
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  gap:16px;
  padding:16px !important;
  background:#F6F9FD;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs {
  position:sticky;
  top:12px;
  align-self:start;
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:0 !important;
  padding:10px !important;
  border:1px solid rgba(24,87,215,.12);
  border-radius:16px;
  background:#fff;
  box-shadow:0 12px 28px rgba(16,42,86,.06);
  overflow:visible;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs::before {
  content:"Abas do perfil";
  display:block;
  margin:2px 4px 8px;
  color:var(--text-muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab {
  width:100% !important;
  min-height:42px !important;
  justify-content:flex-start !important;
  padding:0 12px !important;
  border:1px solid transparent !important;
  border-radius:12px !important;
  background:transparent !important;
  color:var(--text-secondary) !important;
  box-shadow:none !important;
  text-align:left;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab:hover {
  background:#F3F7FD !important;
  color:var(--text-primary) !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab.active {
  background:linear-gradient(135deg,#1857D7,#103C9E) !important;
  border-color:#1857D7 !important;
  color:#fff !important;
  box-shadow:0 10px 22px rgba(24,87,215,.18) !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel {
  grid-column:2;
  min-width:0;
  min-height:360px;
  padding:0;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-data-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-identity {
  min-height:124px;
  padding:16px;
  border-radius:15px;
  box-shadow:0 10px 24px rgba(16,42,86,.10);
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-photo {
  width:60px;
  height:60px;
  flex-basis:60px;
  border-radius:15px;
  font-size:20px;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-identity h3 {
  font-size:18px;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-window-panel {
  min-height:124px;
  border-radius:15px;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-info-list p {
  padding:7px 0;
}

@media(max-width:980px) {
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-body {
    grid-template-columns:1fr;
  }

  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs {
    position:static;
    flex-direction:row;
    overflow-x:auto;
    scrollbar-width:none;
  }

  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs::-webkit-scrollbar {
    display:none;
  }

  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs::before {
    display:none;
  }

  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab {
    width:auto !important;
    flex:0 0 auto !important;
  }

  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel {
    grid-column:1;
  }
}

@media(max-width:680px) {
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-data-grid {
    grid-template-columns:1fr;
  }
}

/* Perfil do aluno v3: abas ficam no topo, e nao como menu lateral. */
body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-body {
  display:block !important;
  padding:16px !important;
  background:#F6F9FD;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs {
  position:static !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:8px !important;
  width:100% !important;
  margin:0 0 16px !important;
  padding:10px !important;
  border:1px solid rgba(24,87,215,.12) !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:0 10px 24px rgba(16,42,86,.055) !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scrollbar-width:none;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs::before {
  display:none !important;
  content:none !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs::-webkit-scrollbar {
  display:none;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab {
  width:auto !important;
  flex:0 0 auto !important;
  min-height:42px !important;
  justify-content:center !important;
  padding:0 16px !important;
  border:1px solid rgba(24,87,215,.14) !important;
  border-radius:12px !important;
  background:#fff !important;
  color:var(--text-secondary) !important;
  box-shadow:none !important;
  text-align:center !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab.active {
  background:linear-gradient(135deg,#1857D7,#103C9E) !important;
  border-color:#1857D7 !important;
  color:#fff !important;
  box-shadow:0 8px 18px rgba(24,87,215,.18) !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel {
  grid-column:auto !important;
  min-height:0 !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-data-grid {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:stretch !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-window-panel {
  min-height:0 !important;
  height:100%;
  padding:18px !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:0 10px 24px rgba(16,42,86,.055) !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-window-panel h3 {
  margin:0 0 14px !important;
  font-size:16px !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-info-list p {
  grid-template-columns:120px minmax(0,1fr) !important;
  padding:8px 0 !important;
}

@media(max-width:1180px) {
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-data-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:720px) {
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-data-grid {
    grid-template-columns:1fr !important;
  }
}

/* Perfil do aluno v4: abas conectadas ao painel, no estilo menu em aba. */
body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-body {
  display:block !important;
  padding:16px !important;
  background:#F6F9FD !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs {
  position:relative !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:flex-end !important;
  gap:0 !important;
  width:100% !important;
  margin:0 !important;
  padding:0 10px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scrollbar-width:none;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs::before {
  display:none !important;
  content:none !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:rgba(24,87,215,.18);
  pointer-events:none;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs::-webkit-scrollbar {
  display:none;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab {
  position:relative !important;
  z-index:1;
  width:auto !important;
  min-width:112px !important;
  flex:0 0 auto !important;
  min-height:42px !important;
  margin:0 -1px 0 0 !important;
  justify-content:center !important;
  padding:0 16px !important;
  border:1px solid rgba(24,87,215,.16) !important;
  border-bottom-color:rgba(24,87,215,.18) !important;
  border-radius:12px 12px 0 0 !important;
  background:linear-gradient(180deg,#fff,#EEF5FF) !important;
  color:var(--text-secondary) !important;
  box-shadow:none !important;
  font-size:13px !important;
  font-weight:800 !important;
  text-align:center !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab:hover {
  background:linear-gradient(180deg,#fff,#E8F8F4) !important;
  color:var(--text-primary) !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab.active {
  z-index:2;
  min-height:48px !important;
  margin-top:0 !important;
  border-color:rgba(24,87,215,.22) !important;
  border-bottom-color:#fff !important;
  background:#fff !important;
  color:#103C9E !important;
  box-shadow:0 -8px 18px rgba(16,42,86,.07) !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel {
  grid-column:auto !important;
  min-height:0 !important;
  margin-top:-1px !important;
  padding:18px !important;
  border:1px solid rgba(24,87,215,.18);
  border-radius:16px;
  background:#fff;
  box-shadow:0 14px 32px rgba(16,42,86,.06);
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-data-grid {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:stretch !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-window-panel {
  margin:0 !important;
  padding:18px !important;
  border:1px solid rgba(24,87,215,.12) !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 8px 18px rgba(16,42,86,.045) !important;
}

@media(max-width:1180px) {
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-data-grid {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:720px) {
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs {
    padding-inline:4px !important;
  }

  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-tabs .aluno-tab {
    min-width:104px !important;
    padding-inline:13px !important;
  }

  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel {
    padding:12px !important;
  }

  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-profile-data-grid {
    grid-template-columns:1fr !important;
  }
}

/* Perfil do aluno v5: acabamento interno das abas depois do menu em aba. */
body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel .stats-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:12px;
  margin:0 0 14px;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel .stat-card {
  min-height:88px;
  border-radius:14px;
  box-shadow:0 8px 18px rgba(16,42,86,.045);
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel > .card,
body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel > div > section,
body:not(:has(#aluno-app.active)) #page-aluno-perfil #aluno-tab-notas section {
  border-color:rgba(24,87,215,.12) !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 8px 20px rgba(16,42,86,.045) !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil #aluno-tab-notas > div {
  gap:12px !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil #aluno-tab-notas section {
  padding:16px !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil #aluno-tab-notas section h3 {
  color:var(--text-primary) !important;
  font-size:16px !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil #aluno-tab-notas section > div:last-child > div,
body:not(:has(#aluno-app.active)) #page-aluno-perfil #aluno-tab-notas section > div:last-child > button {
  border-color:rgba(24,87,215,.12) !important;
  border-radius:12px !important;
  background:#F8FBFF !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil #aluno-tab-notas .form-control {
  min-height:38px;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .nota-feedback {
  margin-bottom:12px;
  border-radius:12px;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-resumo-pedagogico {
  margin:0 0 14px !important;
  border-color:rgba(24,87,215,.12);
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 20px rgba(16,42,86,.045);
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-resumo-grid {
  gap:12px;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-resumo-card {
  border-color:rgba(24,87,215,.10);
  border-radius:12px;
  background:#F8FBFF;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .table-wrap {
  margin:0 !important;
  border:1px solid rgba(24,87,215,.10);
  border-radius:13px;
  background:#fff;
  overflow:auto;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .card-header {
  min-height:52px;
  padding:14px 16px;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .card-header h3 {
  font-size:15px;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil #aluno-tab-documentos > .card {
  margin-bottom:14px !important;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil #aluno-tab-documentos .form-row {
  gap:12px;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .boletim-wrap {
  max-width:100%;
}

body:not(:has(#aluno-app.active)) #page-aluno-perfil .boletim-card {
  border-color:rgba(24,87,215,.12);
  border-radius:14px;
  box-shadow:0 8px 20px rgba(16,42,86,.045);
  overflow:hidden;
}

/* Usuarios: formulario e lista em paineis separados para manutencao diaria. */
body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-workspace {
  display:grid;
  grid-template-columns:minmax(360px,.78fr) minmax(0,1.22fr);
  gap:16px;
  align-items:start;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-form-card,
body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-list-card {
  border-color:rgba(24,87,215,.12);
  border-radius:16px;
  box-shadow:0 12px 28px rgba(16,42,86,.055);
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-panel-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(24,87,215,.10);
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-panel-head span {
  display:block;
  color:var(--text-muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.35px;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-panel-head h3 {
  margin:4px 0 0;
  color:var(--text-primary);
  font-size:18px;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-media-grid {
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(260px,1fr);
  gap:14px;
  align-items:start;
  margin:4px 0 16px;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-facial-box {
  margin:0;
  padding:14px;
  border:1px solid rgba(24,87,215,.12);
  border-radius:14px;
  background:#F8FBFF;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-facial-box h3 {
  margin:0 0 10px;
  padding:0;
  border:0;
  font-size:14px;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-facial-box small {
  display:block;
  margin-top:8px;
  color:var(--text-muted);
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-foto-preview {
  min-height:82px;
  margin-top:10px;
  display:flex;
  align-items:center;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-actions {
  display:flex;
  align-items:end;
  gap:8px;
  flex-wrap:wrap;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-actions .btn {
  flex:1 1 150px;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-list-card .card-header {
  min-height:58px;
  background:linear-gradient(180deg,#fff,#F8FBFF);
}

body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table td:first-child strong {
  color:var(--primary);
}

body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table td:last-child {
  min-width:150px;
}

body:not(:has(#aluno-app.active)) #page-usuarios .table-wrap {
  max-height:calc(100dvh - 260px);
  overflow:auto;
}

@media(max-width:1180px) {
  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-workspace {
    grid-template-columns:1fr;
  }

  body:not(:has(#aluno-app.active)) #page-usuarios .table-wrap {
    max-height:none;
  }
}

@media(max-width:760px) {
  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-media-grid {
    grid-template-columns:1fr;
  }

  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-actions .btn {
    flex-basis:100%;
  }
}

@media(max-width:720px) {
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-tab-panel .stats-grid,
  body:not(:has(#aluno-app.active)) #page-aluno-perfil .aluno-resumo-grid {
    grid-template-columns:1fr;
  }
}

@media(max-width:768px) {
  [data-theme="saas"] body:not(:has(#aluno-app.active)) .main-content {
    padding:12px;
  }

  [data-theme="saas"] body:not(:has(#aluno-app.active)) .page.active {
    min-height:calc(100dvh - 88px);
    padding:14px;
    border-radius:16px;
  }

  [data-theme="saas"] body:not(:has(#aluno-app.active)) .page.active::before {
    height:36px;
  }

  [data-theme="saas"] body:not(:has(#aluno-app.active)) .page.active::after {
    top:14px;
    left:16px;
  }

  [data-theme="saas"] body:not(:has(#aluno-app.active)) .page-header {
    min-height:58px;
    padding-top:26px;
  }

  [data-theme="saas"] body:not(:has(#aluno-app.active)) .card,
  [data-theme="saas"] body:not(:has(#aluno-app.active)) .card-padded,
  [data-theme="saas"] body:not(:has(#aluno-app.active)) .config-section {
    border-radius:14px;
  }
}

/* Logs: corrige sobreposicao do icone com o texto da atividade. */
body:not(:has(#aluno-app.active)) .activity-timeline {
  padding:18px 20px 18px 18px !important;
}

body:not(:has(#aluno-app.active)) .activity-item {
  position:relative !important;
  display:grid !important;
  grid-template-columns:58px minmax(0,1fr) !important;
  align-items:start !important;
  gap:12px !important;
  min-width:0 !important;
  padding:0 0 22px !important;
  overflow:visible !important;
}

body:not(:has(#aluno-app.active)) .activity-item::before {
  left:29px !important;
  top:50px !important;
  bottom:0 !important;
  transform:none !important;
}

body:not(:has(#aluno-app.active)) .activity-icon {
  position:relative !important;
  left:auto !important;
  top:auto !important;
  transform:none !important;
  grid-column:1 !important;
  grid-row:1 !important;
  width:50px !important;
  height:50px !important;
  margin:0 auto !important;
  z-index:2 !important;
}

body:not(:has(#aluno-app.active)) .activity-content {
  grid-column:2 !important;
  min-width:0 !important;
  padding-top:2px !important;
  display:grid !important;
  gap:4px !important;
}

body:not(:has(#aluno-app.active)) .activity-content .log-user,
body:not(:has(#aluno-app.active)) .activity-content .log-action {
  display:block !important;
  min-width:0 !important;
  max-width:100% !important;
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
}

body:not(:has(#aluno-app.active)) .activity-content .log-time,
body:not(:has(#aluno-app.active)) .activity-content .log-ip,
body:not(:has(#aluno-app.active)) .activity-content .activity-meta {
  display:block !important;
  margin-left:0 !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
}

@media(max-width:560px) {
  body:not(:has(#aluno-app.active)) .activity-timeline {
    padding:14px 12px !important;
  }

  body:not(:has(#aluno-app.active)) .activity-item {
    grid-template-columns:46px minmax(0,1fr) !important;
    gap:10px !important;
  }

  body:not(:has(#aluno-app.active)) .activity-item::before {
    left:23px !important;
    top:44px !important;
  }

  body:not(:has(#aluno-app.active)) .activity-icon {
    width:42px !important;
    height:42px !important;
  }
}

/* Usuarios v2: layout simples, sem colunas espremidas e sem acoes cortadas. */
body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-workspace {
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:16px !important;
  align-items:stretch !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-form-card {
  width:100% !important;
  max-width:none !important;
  padding:24px !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-form-card > .form-row {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(220px,1fr)) !important;
  gap:16px 18px !important;
  align-items:end !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-form-card > .form-row:first-of-type {
  grid-template-columns:minmax(260px,1fr) minmax(260px,1fr) !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-media-grid {
  display:grid !important;
  grid-template-columns:minmax(260px,.42fr) minmax(360px,.58fr) !important;
  gap:18px !important;
  align-items:start !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-facial-box {
  min-height:132px !important;
  display:grid !important;
  align-content:start !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-facial-box .security-option {
  min-height:74px !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .user-password-row {
  display:grid !important;
  grid-template-columns:minmax(240px,1fr) minmax(240px,1fr) minmax(260px,auto) !important;
  gap:16px 18px !important;
  align-items:end !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-actions {
  justify-content:flex-end !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-actions .btn {
  flex:0 0 auto !important;
  min-width:130px !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-list-card {
  width:100% !important;
  max-width:none !important;
  overflow:hidden !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-list-card .table-wrap {
  width:100% !important;
  max-height:none !important;
  overflow-x:auto !important;
  overflow-y:visible !important;
  padding-bottom:4px !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table {
  width:100% !important;
  min-width:980px !important;
  table-layout:fixed !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table th,
body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table td {
  vertical-align:middle !important;
  overflow:visible !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table th:nth-child(1),
body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table td:nth-child(1) {
  width:16% !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table th:nth-child(2),
body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table td:nth-child(2) {
  width:24% !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table th:nth-child(6),
body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table td:nth-child(6) {
  width:180px !important;
  min-width:180px !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table td:nth-child(6) {
  display:flex !important;
  gap:8px !important;
  justify-content:flex-end !important;
  flex-wrap:nowrap !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios #cfg-users-table td:nth-child(6) .btn {
  flex:0 0 auto !important;
  min-width:82px !important;
  padding-inline:12px !important;
}

@media(max-width:1180px) {
  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-form-card > .form-row,
  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-form-card > .form-row:first-of-type,
  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-media-grid,
  body:not(:has(#aluno-app.active)) #page-usuarios .user-password-row {
    grid-template-columns:1fr 1fr !important;
  }

  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-actions {
    grid-column:1 / -1 !important;
    justify-content:flex-start !important;
  }
}

@media(max-width:720px) {
  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-form-card {
    padding:16px !important;
  }

  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-form-card > .form-row,
  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-form-card > .form-row:first-of-type,
  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-media-grid,
  body:not(:has(#aluno-app.active)) #page-usuarios .user-password-row {
    grid-template-columns:1fr !important;
  }

  body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-actions .btn {
    width:100% !important;
  }
}

/* Usuarios v3: remove espaco vazio quando nao ha foto selecionada. */
body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-media-grid {
  margin-bottom:8px !important;
  align-items:start !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-foto-preview {
  min-height:0 !important;
  height:auto !important;
  margin-top:8px !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-foto-preview:empty {
  display:none !important;
  margin:0 !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-facial-box {
  min-height:0 !important;
  padding:16px 18px !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-facial-box .security-option {
  min-height:0 !important;
  padding:14px 16px !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .user-password-row {
  margin-top:8px !important;
}

/* Cadastros em formato de janela: padrao unico para alunos, professores, materias, usuarios e financeiro. */
body:not(:has(#aluno-app.active)) .modal-overlay {
  align-items:center !important;
  justify-content:center !important;
  padding:24px !important;
  background:rgba(7,18,44,.46) !important;
  backdrop-filter:blur(4px);
}

body:not(:has(#aluno-app.active)) .modal {
  width:min(860px,calc(100vw - 48px)) !important;
  max-width:860px !important;
  max-height:calc(100vh - 48px) !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
  border:1px solid rgba(148,163,184,.32) !important;
  border-radius:10px !important;
  background:#fff !important;
  box-shadow:0 26px 80px rgba(15,23,42,.28) !important;
}

body:not(:has(#aluno-app.active)) .modal-header,
body:not(:has(#aluno-app.active)) .modal .usuarios-panel-head {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
  min-height:64px !important;
  padding:18px 22px !important;
  border-bottom:1px solid rgba(226,232,240,.95) !important;
  background:#fff !important;
}

body:not(:has(#aluno-app.active)) .modal-header h3,
body:not(:has(#aluno-app.active)) .modal .usuarios-panel-head h3 {
  margin:0 !important;
  color:#25324B !important;
  font-size:20px !important;
  font-weight:650 !important;
}

body:not(:has(#aluno-app.active)) .modal .usuarios-panel-head span {
  display:none !important;
}

body:not(:has(#aluno-app.active)) .modal-close {
  width:34px !important;
  height:34px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:0 !important;
  border-radius:999px !important;
  background:transparent !important;
  color:#64748B !important;
  font-size:18px !important;
}

body:not(:has(#aluno-app.active)) .modal-close:hover {
  background:#F1F5F9 !important;
  color:#0F172A !important;
}

body:not(:has(#aluno-app.active)) .modal-body {
  flex:1 1 auto !important;
  padding:22px !important;
  overflow:auto !important;
  background:#fff !important;
}

body:not(:has(#aluno-app.active)) .modal-body .form-row,
body:not(:has(#aluno-app.active)) .modal .user-password-row,
body:not(:has(#aluno-app.active)) .modal .usuarios-media-grid {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:16px 18px !important;
  align-items:start !important;
}

body:not(:has(#aluno-app.active)) .modal-body .form-group {
  margin:0 0 14px !important;
}

body:not(:has(#aluno-app.active)) .modal-body .form-group label {
  color:#51607A !important;
  font-size:13px !important;
  font-weight:600 !important;
}

body:not(:has(#aluno-app.active)) .modal-body .form-control {
  min-height:46px !important;
  border-radius:8px !important;
  border:1px solid #D7E0EC !important;
  background:#F8FAFD !important;
  color:#0B2464 !important;
}

body:not(:has(#aluno-app.active)) .modal-body .form-control:focus {
  border-color:var(--teal) !important;
  background:#fff !important;
  box-shadow:0 0 0 3px rgba(25,184,154,.14) !important;
}

body:not(:has(#aluno-app.active)) .modal-footer {
  flex:0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  padding:16px 22px !important;
  border-top:1px solid rgba(226,232,240,.95) !important;
  background:#F8FAFD !important;
}

body:not(:has(#aluno-app.active)) .modal-footer .btn {
  min-height:40px !important;
  border-radius:8px !important;
  font-weight:650 !important;
}

body:not(:has(#aluno-app.active)) .modal .facial-form-section {
  margin:0 !important;
  border-radius:10px !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .page-header {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-workspace {
  display:block !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .modal-cadastro-window.usuarios-form-card {
  padding:0 !important;
}

body:not(:has(#aluno-app.active)) #page-usuarios .usuarios-foto-preview:empty {
  display:none !important;
}

@media (max-width:720px) {
  body:not(:has(#aluno-app.active)) .modal-overlay {
    padding:12px !important;
  }

  body:not(:has(#aluno-app.active)) .modal {
    width:calc(100vw - 24px) !important;
    max-height:calc(100vh - 24px) !important;
  }

  body:not(:has(#aluno-app.active)) .modal-body .form-row,
  body:not(:has(#aluno-app.active)) .modal .user-password-row,
  body:not(:has(#aluno-app.active)) .modal .usuarios-media-grid {
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  body:not(:has(#aluno-app.active)) .modal-header,
  body:not(:has(#aluno-app.active)) .modal .usuarios-panel-head,
  body:not(:has(#aluno-app.active)) .modal-body,
  body:not(:has(#aluno-app.active)) .modal-footer {
    padding-left:16px !important;
    padding-right:16px !important;
  }

  body:not(:has(#aluno-app.active)) #page-usuarios .page-header {
    align-items:flex-start !important;
    flex-direction:column !important;
  }
}

/* GesClass V2: layout inspirado em dashboards escolares modernos. */
[data-theme="v2"],
[data-theme="v2"] body {
  height:100%;
  overflow:hidden;
  background:#F6F4FF !important;
}

[data-theme="v2"] #app-screen.app-layout,
[data-theme="v2"] .app-layout {
  height:100dvh;
  min-height:0;
  overflow:hidden;
  background:#F6F4FF;
}

[data-theme="v2"] .topbar {
  height:74px;
  border:0;
  border-bottom:1px solid rgba(228,223,245,.75);
  background:#fff;
  box-shadow:0 10px 30px rgba(72,58,180,.08);
  padding:0 24px;
}

[data-theme="v2"] .topbar-logo-icon,
[data-theme="v2"] .login-logo-icon {
  border-radius:16px;
  background:linear-gradient(145deg,#705CF5,#4031B8);
  box-shadow:0 12px 26px rgba(91,75,219,.26);
}

[data-theme="v2"] .topbar-logo-text,
[data-theme="v2"] .login-logo-text h1 {
  color:#2B255F;
  font-weight:800;
}

[data-theme="v2"] .school-badge {
  border:0;
  background:#F1EEFF;
  color:#5B4BDB;
  font-weight:800;
}

[data-theme="v2"] .app-body {
  height:calc(100dvh - 74px);
  min-height:0;
  overflow:hidden;
}

[data-theme="v2"] .sidebar {
  width:270px;
  height:100%;
  min-height:0;
  margin:18px 0 18px 18px;
  padding:18px 14px;
  border:0;
  border-radius:28px;
  color:#fff;
  background:linear-gradient(180deg,#6C58F2 0%,#4732B7 58%,#342681 100%);
  box-shadow:0 24px 50px rgba(64,49,184,.28);
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
}

[data-theme="v2"] .sidebar::-webkit-scrollbar,
[data-theme="v2"] .main-content::-webkit-scrollbar {
  width:0;
  height:0;
}

[data-theme="v2"] .nav-group {
  margin-bottom:16px;
}

[data-theme="v2"] .nav-group-label,
[data-theme="v2"] .nav-group-title {
  color:rgba(255,255,255,.58) !important;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
}

[data-theme="v2"] .nav-item,
[data-theme="v2"] .nav-group-toggle,
[data-theme="v2"] .sidebar .nav-standalone,
[data-theme="v2"] .nav-group-items .nav-item {
  min-height:44px;
  border-radius:16px;
  color:rgba(255,255,255,.78) !important;
  background:transparent;
  font-weight:700;
}

[data-theme="v2"] .nav-item svg,
[data-theme="v2"] .nav-group-toggle svg {
  stroke:currentColor;
}

[data-theme="v2"] .nav-item:hover,
[data-theme="v2"] .nav-group-toggle:hover,
[data-theme="v2"] .nav-group.open .nav-group-toggle,
[data-theme="v2"] .nav-group-items .nav-item:hover {
  background:rgba(255,255,255,.12) !important;
  color:#fff !important;
}

[data-theme="v2"] .nav-item.active,
[data-theme="v2"] .sidebar .nav-standalone.active,
[data-theme="v2"] .nav-group-items .nav-item.active {
  background:#fff !important;
  color:#4B3AC8 !important;
  box-shadow:0 14px 30px rgba(26,16,88,.20);
}

[data-theme="v2"] .nav-item.active svg,
[data-theme="v2"] .nav-group-items .nav-item.active svg {
  stroke:#4B3AC8 !important;
}

[data-theme="v2"] .main-content {
  height:100%;
  max-height:none;
  padding:24px 28px 28px;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
}

[data-theme="v2"] .page-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:20px;
}

[data-theme="v2"] .page-header h2 {
  color:#282051;
  font-size:26px;
  font-weight:850;
}

[data-theme="v2"] .page-header p {
  color:#7C759B;
  font-size:14px;
}

[data-theme="v2"] .card,
[data-theme="v2"] .card-padded,
[data-theme="v2"] .stat-card,
[data-theme="v2"] .dash-clean-card,
[data-theme="v2"] .dash-clean-kpi,
[data-theme="v2"] .reports-clean-head,
[data-theme="v2"] .school-report-clean,
[data-theme="v2"] .finance-card,
[data-theme="v2"] .notas-aluno-card,
[data-theme="v2"] .notas-materia-card,
[data-theme="v2"] .chat-list-panel,
[data-theme="v2"] .chat-main-panel,
[data-theme="v2"] .chat-info-panel,
[data-theme="v2"] .access-connection,
[data-theme="v2"] .access-diagnostic {
  border:0 !important;
  border-radius:24px !important;
  background:#fff !important;
  box-shadow:0 16px 42px rgba(72,58,180,.10) !important;
}

[data-theme="v2"] .card-header,
[data-theme="v2"] .chat-main-header,
[data-theme="v2"] .chat-compose,
[data-theme="v2"] .notas-aluno-head {
  border-color:#EFEAFB !important;
  background:#fff !important;
}

[data-theme="v2"] .form-control,
[data-theme="v2"] .filter-select,
[data-theme="v2"] .search-bar,
[data-theme="v2"] .topbar-search input {
  border:0 !important;
  border-radius:16px !important;
  background:#F4F2FF !important;
  color:#29224F !important;
  font-weight:650;
}

[data-theme="v2"] .form-control:focus,
[data-theme="v2"] .filter-select:focus,
[data-theme="v2"] .search-bar:focus-within,
[data-theme="v2"] .topbar-search:focus-within {
  box-shadow:0 0 0 3px rgba(91,75,219,.14) !important;
  background:#fff !important;
}

[data-theme="v2"] .btn,
[data-theme="v2"] .btn-primary,
[data-theme="v2"] .btn-teal,
[data-theme="v2"] .btn-outline {
  border-radius:14px !important;
  font-weight:800 !important;
}

[data-theme="v2"] .btn-primary,
[data-theme="v2"] .btn-teal {
  border:0 !important;
  color:#fff !important;
  background:linear-gradient(135deg,#6C58F2,#4B3AC8) !important;
  box-shadow:0 14px 28px rgba(91,75,219,.24) !important;
}

[data-theme="v2"] .btn-outline,
[data-theme="v2"] .theme-toggle,
[data-theme="v2"] .topbar-message-btn {
  border:0 !important;
  color:#5B4BDB !important;
  background:#F1EEFF !important;
}

[data-theme="v2"] .user-chip {
  border:0;
  background:#F1EEFF;
  border-radius:999px;
}

[data-theme="v2"] .role-pill {
  background:#E8FBF6 !important;
  color:#12A987 !important;
}

[data-theme="v2"] table {
  border-collapse:separate;
  border-spacing:0 8px;
}

[data-theme="v2"] thead tr {
  background:transparent !important;
}

[data-theme="v2"] th {
  border:0 !important;
  color:#A49EBD !important;
}

[data-theme="v2"] td {
  border:0 !important;
  background:#fff;
  box-shadow:0 10px 26px rgba(72,58,180,.06);
}

[data-theme="v2"] tbody tr td:first-child {
  border-radius:16px 0 0 16px;
}

[data-theme="v2"] tbody tr td:last-child {
  border-radius:0 16px 16px 0;
}

[data-theme="v2"] .modal-overlay {
  background:rgba(32,24,78,.48) !important;
}

[data-theme="v2"] .modal {
  border:0 !important;
  border-radius:26px !important;
  box-shadow:0 30px 90px rgba(32,24,78,.30) !important;
}

[data-theme="v2"] .modal-header,
[data-theme="v2"] .modal .usuarios-panel-head,
[data-theme="v2"] .modal-footer,
[data-theme="v2"] .modal-body {
  background:#fff !important;
}

[data-theme="v2"] .modal-footer {
  border-color:#EFEAFB !important;
}

.dashboard-v2 {
  display:grid;
  gap:22px;
  max-width:1480px;
}

.v2-hero {
  min-height:190px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
  padding:28px;
  border-radius:32px;
  color:#fff;
  background:
    radial-gradient(circle at 78% 20%,rgba(255,255,255,.26),transparent 24%),
    linear-gradient(135deg,#7563F6 0%,#5642D7 55%,#342681 100%);
  box-shadow:0 24px 56px rgba(71,50,183,.28);
  overflow:hidden;
  position:relative;
}

.v2-hero::after {
  content:'';
  position:absolute;
  right:36px;
  top:24px;
  width:170px;
  height:170px;
  border-radius:999px;
  border:34px solid rgba(255,255,255,.13);
}

.v2-hero > * {
  position:relative;
  z-index:1;
}

.v2-hero span,
.v2-panel-head span {
  display:block;
  color:inherit;
  opacity:.68;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.v2-hero h2 {
  margin:8px 0;
  font-size:34px;
  line-height:1.05;
  font-weight:900;
  color:#fff;
}

.v2-hero p {
  max-width:620px;
  margin:0;
  color:rgba(255,255,255,.78);
  font-size:15px;
}

.v2-hero-actions {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.v2-hero .btn-outline {
  background:rgba(255,255,255,.18) !important;
  color:#fff !important;
}

.v2-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:22px;
  align-items:start;
}

.v2-main,
.v2-aside {
  display:grid;
  gap:22px;
  min-width:0;
}

.v2-kpis {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.v2-kpi,
.v2-module,
.v2-panel,
.v2-calendar-card {
  border:0;
  background:#fff;
  box-shadow:0 16px 42px rgba(72,58,180,.10);
}

.v2-kpi {
  min-height:142px;
  display:grid;
  gap:5px;
  justify-items:start;
  padding:20px;
  border-radius:28px;
  text-align:left;
  color:#29224F;
}

.v2-kpi > span,
.v2-module > span {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:#F1EEFF;
  color:#5B4BDB;
}

.v2-kpi svg,
.v2-module svg {
  width:22px;
  height:22px;
}

.v2-kpi strong {
  margin-top:8px;
  font-size:28px;
  font-weight:900;
}

.v2-kpi small,
.v2-module strong {
  color:#29224F;
  font-size:15px;
  font-weight:850;
}

.v2-kpi em,
.v2-module small {
  color:#8A84A6;
  font-size:12px;
  font-style:normal;
  font-weight:650;
}

.v2-kpi.orange > span,
.v2-module.orange > span { background:#FFF2E4; color:#F28C28; }
.v2-kpi.green > span,
.v2-module.green > span { background:#E8FBF6; color:#12A987; }
.v2-kpi.red > span,
.v2-module.pink > span { background:#FFEAF2; color:#EF476F; }
.v2-module.blue > span { background:#EAF2FF; color:#4A8DFF; }
.v2-module.slate > span { background:#EEF1F8; color:#64748B; }

.v2-panel {
  padding:22px;
  border-radius:30px;
}

.v2-panel.compact {
  padding:20px;
}

.v2-panel-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:18px;
}

.v2-panel-head span {
  color:#9A93B4;
}

.v2-panel-head h3 {
  margin:4px 0 0;
  color:#29224F;
  font-size:20px;
  font-weight:900;
}

.v2-module-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.v2-module {
  min-height:148px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  padding:18px;
  border-radius:24px;
  text-align:left;
}

.v2-module:hover,
.v2-kpi:hover {
  transform:translateY(-2px);
  box-shadow:0 20px 48px rgba(72,58,180,.16);
}

.v2-calendar-card {
  min-height:210px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:4px;
  border-radius:32px;
  color:#fff;
  background:linear-gradient(145deg,#31D0AA,#17A7D8);
}

.v2-calendar-card span,
.v2-calendar-card small {
  font-weight:800;
  opacity:.78;
  text-transform:capitalize;
}

.v2-calendar-card strong {
  font-size:70px;
  line-height:1;
  font-weight:950;
}

.v2-birthday-list,
.v2-mini-list {
  display:grid;
  gap:12px;
}

.v2-birthday-list span,
.v2-mini-list div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border-radius:18px;
  background:#F8F6FF;
}

.v2-birthday-list strong,
.v2-mini-list strong {
  color:#29224F;
  font-weight:900;
}

.v2-birthday-list small,
.v2-mini-list span,
.v2-birthday-list p {
  color:#8A84A6;
  font-weight:650;
}

.v2-priority-list .dash-priority-item,
.v2-priority-list .dash-empty-good {
  border:0 !important;
  border-radius:18px !important;
  background:#F8F6FF !important;
}

@media(max-width:1180px) {
  [data-theme="v2"] .sidebar {
    margin:0;
    border-radius:0 24px 24px 0;
  }

  .v2-layout {
    grid-template-columns:1fr;
  }

  .v2-aside {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:840px) {
  [data-theme="v2"] .topbar {
    height:66px;
    padding:0 14px;
  }

  [data-theme="v2"] .app-body {
    height:calc(100dvh - 66px);
  }

  [data-theme="v2"] .main-content {
    padding:16px;
  }

  .v2-hero {
    min-height:170px;
    align-items:flex-start;
    flex-direction:column;
    padding:22px;
  }

  .v2-hero h2 {
    font-size:28px;
  }

  .v2-kpis,
  .v2-module-grid,
  .v2-aside {
    grid-template-columns:1fr;
  }
}

/* GesClass V2: estrutura, menu, fonte, dashboard, cards e paginas no mesmo sistema visual. */
[data-theme="v2"],
[data-theme="v2"] body,
[data-theme="v2"] button,
[data-theme="v2"] input,
[data-theme="v2"] select,
[data-theme="v2"] textarea {
  font-family:'Poppins',var(--font-sans),system-ui,sans-serif !important;
}

[data-theme="v2"] body {
  background:
    radial-gradient(circle at 4% 14%,rgba(111,88,242,.12),transparent 26%),
    radial-gradient(circle at 96% 4%,rgba(45,212,191,.12),transparent 24%),
    #F8F7FF !important;
}

[data-theme="v2"] .topbar {
  height:68px !important;
  margin:18px 18px 0 306px !important;
  width:auto !important;
  border-radius:26px !important;
  border:0 !important;
  box-shadow:0 16px 45px rgba(60,45,150,.10) !important;
  background:rgba(255,255,255,.96) !important;
}

[data-theme="v2"] .topbar-left {
  gap:18px !important;
}

[data-theme="v2"] .topbar-logo,
[data-theme="v2"] .topbar-logo-text,
[data-theme="v2"] .topbar-logo-icon {
  display:none !important;
}

[data-theme="v2"] .topbar-search {
  width:min(430px,42vw) !important;
  border:0 !important;
  background:#F5F3FF !important;
  border-radius:12px !important;
}

[data-theme="v2"] .topbar-search input {
  min-height:42px !important;
  font-size:13px !important;
}

[data-theme="v2"] .app-body {
  height:calc(100dvh - 86px) !important;
}

[data-theme="v2"] .sidebar {
  position:fixed !important;
  left:70px !important;
  top:50px !important;
  z-index:80 !important;
  width:210px !important;
  height:calc(100dvh - 100px) !important;
  max-height:calc(100dvh - 100px) !important;
  margin:0 !important;
  padding:18px 14px !important;
  border-radius:30px !important;
  background:linear-gradient(180deg,#6A52F5 0%,#6045EA 52%,#5138D2 100%) !important;
  box-shadow:0 28px 60px rgba(64,44,185,.32) !important;
  overflow:hidden !important;
}

[data-theme="v2"] .main-content {
  margin-left:288px !important;
  height:calc(100dvh - 86px) !important;
  padding:20px 18px 24px !important;
}

.v2-sidebar-brand {
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  color:#fff;
  margin-bottom:18px;
}

.v2-brand-mark {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#fff;
  color:#6045EA;
}

.v2-brand-mark svg {
  width:20px;
  height:20px;
}

.v2-sidebar-brand strong {
  display:block;
  font-size:14px;
  font-weight:900;
  line-height:1;
}

.v2-sidebar-brand small {
  color:rgba(255,255,255,.62);
  font-size:10px;
  font-weight:700;
}

.v2-sidebar-section {
  display:grid;
  gap:4px;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:none;
  padding-right:1px;
}

.v2-sidebar-section::-webkit-scrollbar {
  width:0;
  height:0;
}

.v2-sidebar-section > span {
  color:rgba(255,255,255,.62);
  font-size:10px;
  font-weight:800;
  margin:0 0 4px 8px;
}

.v2-menu-group {
  display:grid;
  gap:3px;
  padding:7px 0 5px;
  border-top:1px solid rgba(255,255,255,.10);
}

.v2-menu-group:first-of-type {
  border-top:0;
  padding-top:0;
}

.v2-menu-group > span {
  color:rgba(255,255,255,.50);
  font-size:8.5px;
  font-weight:900;
  letter-spacing:.08em;
  margin:0 0 2px 8px;
  text-transform:uppercase;
}

[data-theme="v2"] .v2-nav-link {
  min-height:28px !important;
  padding:5px 8px !important;
  border-radius:8px !important;
  gap:8px !important;
  color:rgba(255,255,255,.78) !important;
  font-size:10.5px !important;
  font-weight:700 !important;
  box-shadow:none !important;
}

[data-theme="v2"] .v2-nav-link svg {
  width:14px !important;
  height:14px !important;
}

[data-theme="v2"] .v2-nav-link.active {
  background:#fff !important;
  color:#6045EA !important;
  box-shadow:0 12px 26px rgba(44,26,130,.22) !important;
}

.v2-sidebar-user {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:8px;
  color:#fff;
}

.v2-sidebar-user > span {
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#2DD4BF;
  font-size:10px;
  font-weight:900;
}

.v2-sidebar-user strong,
.v2-sidebar-user small {
  display:block;
  max-width:124px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.v2-sidebar-user strong {
  font-size:11px;
}

.v2-sidebar-user small {
  color:rgba(255,255,255,.65);
  font-size:9px;
  text-transform:capitalize;
}

.edu-dashboard {
  display:grid;
  gap:16px;
  max-width:1180px;
  margin:0 auto;
}

.edu-page-title {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.edu-page-title h2 {
  margin:0;
  color:#171235;
  font-size:24px;
  font-weight:900;
}

.edu-page-title p {
  margin:4px 0 0;
  color:#9B95B8;
  font-size:12px;
  font-weight:600;
}

.edu-actions {
  display:flex;
  gap:9px;
}

.edu-top-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr)) 1.35fr;
  gap:14px;
}

.edu-stat,
.edu-knowledge-card,
.edu-panel {
  border:0;
  border-radius:14px;
  background:#fff;
  box-shadow:0 14px 38px rgba(66,53,150,.08);
}

.edu-stat {
  min-height:96px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px;
  text-align:left;
}

.edu-stat > span {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#F0EDFF;
  color:#6045EA;
}

.edu-stat svg {
  width:19px;
  height:19px;
}

.edu-stat strong,
.edu-stat small,
.edu-stat em {
  display:block;
}

.edu-stat strong {
  color:#171235;
  font-size:18px;
  font-weight:900;
}

.edu-stat small {
  color:#171235;
  font-size:10px;
  font-weight:800;
}

.edu-stat em {
  margin-top:4px;
  color:#2DD4BF;
  font-size:9px;
  font-style:normal;
  font-weight:800;
}

.edu-stat.orange > span { background:#FFF3E3; color:#FF9F43; }
.edu-stat.green > span { background:#E9FBF6; color:#20C997; }
.edu-stat.blue > span { background:#EEF6FF; color:#4A8DFF; }

.edu-knowledge-card {
  min-height:96px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 16px;
  overflow:hidden;
  background:linear-gradient(135deg,#fff,#FAF8FF);
}

.edu-knowledge-card span {
  color:#171235;
  font-size:11px;
  font-weight:900;
}

.edu-knowledge-card h3 {
  margin:2px 0;
  color:#171235;
  font-size:17px;
  font-weight:900;
}

.edu-knowledge-card p {
  max-width:230px;
  margin:0;
  color:#9B95B8;
  font-size:10px;
  font-weight:600;
}

.edu-knowledge-card button,
.edu-small-action {
  margin-top:8px;
  border:0;
  border-radius:8px;
  background:#6045EA;
  color:#fff;
  padding:7px 11px;
  font-size:10px;
  font-weight:900;
}

.edu-illustration {
  width:76px;
  height:76px;
  display:grid;
  place-items:center;
  border-radius:24px;
  color:#6045EA;
  background:radial-gradient(circle,#FFE277 0 32%,#31D0AA 33% 58%,#F0EDFF 59%);
}

.edu-main-grid {
  display:grid;
  grid-template-columns:minmax(0,1.55fr) 290px;
  gap:14px;
}

.edu-panel {
  padding:16px;
}

.edu-panel-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.edu-panel-head h3 {
  margin:0;
  color:#171235;
  font-size:14px;
  font-weight:900;
}

.edu-panel-head p,
.edu-panel-head span {
  color:#A39DBB;
  font-size:10px;
  font-weight:700;
}

.edu-line-chart,
.edu-finance-chart {
  height:230px;
  border-radius:14px;
  background:linear-gradient(180deg,#FBFAFF,#fff);
  overflow:hidden;
}

.edu-line-chart svg,
.edu-finance-chart svg {
  width:100%;
  height:calc(100% - 30px);
}

.edu-chart-labels {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  color:#B5B0C8;
  font-size:10px;
  font-weight:700;
  padding:0 12px 10px;
}

.edu-side-stack {
  display:grid;
  gap:14px;
}

.edu-events {
  min-height:260px;
}

.edu-event {
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid #F0EDFF;
}

.edu-event > span {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#E9FBF6;
  color:#20C997;
  font-size:11px;
  font-weight:900;
}

.edu-event strong,
.edu-event small {
  display:block;
}

.edu-event strong {
  color:#171235;
  font-size:11px;
  font-weight:900;
}

.edu-event small {
  color:#A39DBB;
  font-size:10px;
  font-weight:600;
}

.edu-calendar,
.edu-finance {
  min-height:260px;
}

.edu-calendar-grid {
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:7px;
}

.edu-calendar-grid b,
.edu-calendar-grid span {
  min-height:24px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#A39DBB;
  font-size:10px;
  font-weight:800;
}

.edu-calendar-grid span.today {
  background:#6045EA;
  color:#fff;
}

.edu-finance .edu-panel-head strong {
  color:#20C997;
  font-size:18px;
  font-weight:900;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active:not(#page-dashboard) {
  max-width:1180px !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active:not(#page-dashboard) > .page-header {
  min-height:70px;
  align-items:center !important;
  padding:0 2px;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active:not(#page-dashboard) > .page-header h2 {
  font-size:22px !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active:not(#page-dashboard) > .card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active:not(#page-dashboard) > .card-padded,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active:not(#page-dashboard) .card {
  border-radius:14px !important;
  box-shadow:0 14px 38px rgba(66,53,150,.08) !important;
}

@media(max-width:1220px) {
  [data-theme="v2"] .sidebar {
    left:16px !important;
    top:16px !important;
  }
  [data-theme="v2"] .topbar {
    margin-left:244px !important;
  }
  [data-theme="v2"] .main-content {
    margin-left:226px !important;
  }
  .edu-top-grid,
  .edu-main-grid {
    grid-template-columns:1fr;
  }
}

/* GesClass V2: modulos internos de alunos, professores, financeiro, eventos, chat e relatorios. */
[data-theme="v2"] .edu-page .page-header {
  margin-bottom:14px !important;
}

[data-theme="v2"] .edu-database-page > .card,
[data-theme="v2"] .edu-finance-page > .card,
[data-theme="v2"] .edu-events-page > .card,
[data-theme="v2"] .edu-reports-page .reports-clean-head,
[data-theme="v2"] .edu-reports-page .school-report-clean {
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:0 14px 38px rgba(66,53,150,.08) !important;
}

[data-theme="v2"] .edu-database-page > .card {
  position:relative;
  padding-right:274px;
  min-height:560px;
}

[data-theme="v2"] .edu-database-page > .card::after {
  content:'Perfil do cadastro';
  position:absolute;
  right:16px;
  top:84px;
  bottom:16px;
  width:236px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:190px;
  border-radius:16px;
  color:#171235;
  font-size:13px;
  font-weight:900;
  background:
    radial-gradient(circle at 50% 62px,#fff 0 42px,transparent 43px),
    radial-gradient(circle at 50% 62px,#6045EA 0 54px,transparent 55px),
    linear-gradient(180deg,#F8F6FF 0%,#fff 100%);
  box-shadow:inset 0 0 0 1px #F0EDFF;
}

[data-theme="v2"] .edu-database-page > .card::before {
  content:'Resumo do cadastro\ASelecione um registro na tabela para abrir detalhes, editar ou remover.';
  white-space:pre-line;
  position:absolute;
  right:34px;
  top:318px;
  z-index:1;
  width:200px;
  color:#9B95B8;
  font-size:11px;
  font-weight:600;
  line-height:1.65;
  text-align:center;
}

[data-theme="v2"] .edu-database-page .card-header {
  min-height:72px !important;
  border-bottom:1px solid #F0EDFF !important;
}

[data-theme="v2"] .edu-database-page .search-bar {
  max-width:360px !important;
  background:#F7F5FF !important;
}

[data-theme="v2"] .edu-db-table {
  border-spacing:0 9px !important;
}

[data-theme="v2"] .edu-db-table th {
  padding:10px 16px !important;
  color:#A39DBB !important;
  font-size:10px !important;
}

[data-theme="v2"] .edu-db-table td {
  padding:13px 16px !important;
  color:#302A5F !important;
  font-size:12px !important;
}

[data-theme="v2"] .edu-db-table td:first-child strong,
[data-theme="v2"] .edu-db-table .btn-ghost {
  color:#171235 !important;
  font-weight:900 !important;
}

[data-theme="v2"] .edu-db-table .tag,
[data-theme="v2"] .tag-teal {
  border-radius:999px !important;
  background:#E9FBF6 !important;
  color:#20C997 !important;
}

[data-theme="v2"] .edu-finance-page .stats-grid {
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
}

[data-theme="v2"] .edu-finance-page .stat-card {
  min-height:104px !important;
  border-radius:14px !important;
}

[data-theme="v2"] .edu-finance-page .finance-tabs {
  width:max-content;
  max-width:100%;
  margin:0 0 14px;
}

[data-theme="v2"] .edu-finance-page .finance-tab-panel .card::after {
  content:'';
  display:block;
  height:150px;
  margin:0 20px 20px;
  border-radius:16px;
  background:
    linear-gradient(180deg,rgba(96,69,234,.08),transparent),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 180'%3E%3Cpath d='M0 120 C80 40 130 150 210 95 S340 40 420 105 520 150 600 55' fill='none' stroke='%2320C997' stroke-width='8' stroke-linecap='round'/%3E%3Cpath d='M0 85 C70 135 150 45 230 120 S360 165 430 70 520 50 600 110' fill='none' stroke='%23FF9F43' stroke-width='8' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;
}

[data-theme="v2"] .edu-events-page .card-padded {
  padding:18px !important;
}

[data-theme="v2"] .edu-events-page .cal-grid-layout {
  grid-template-columns:minmax(0,1fr) 280px !important;
  gap:18px !important;
}

[data-theme="v2"] .edu-events-page .calendar-grid-7 {
  gap:8px !important;
}

[data-theme="v2"] .edu-events-page .cal-day,
[data-theme="v2"] .edu-events-page .cal-header-day {
  min-height:54px !important;
  border:0 !important;
  border-radius:14px !important;
  background:#F8F6FF !important;
}

[data-theme="v2"] .edu-chat-page .chat-shell {
  height:calc(100dvh - 118px) !important;
  grid-template-columns:300px minmax(0,1fr) 260px !important;
  gap:14px !important;
}

[data-theme="v2"] .edu-chat-page .chat-list-panel,
[data-theme="v2"] .edu-chat-page .chat-main-panel,
[data-theme="v2"] .edu-chat-page .chat-info-panel {
  border-radius:16px !important;
  box-shadow:0 14px 38px rgba(66,53,150,.08) !important;
}

[data-theme="v2"] .edu-chat-page .chat-main-header {
  min-height:70px !important;
}

[data-theme="v2"] .edu-chat-page .chat-thread-console {
  background:#FBFAFF !important;
}

[data-theme="v2"] .edu-chat-page .chat-bubble {
  border:0 !important;
  border-radius:16px !important;
}

[data-theme="v2"] .edu-chat-page .chat-bubble.mine {
  background:#6045EA !important;
  color:#fff !important;
}

[data-theme="v2"] .edu-reports-page .reports-clean {
  max-width:1180px !important;
}

[data-theme="v2"] .edu-reports-page .reports-clean-head {
  min-height:138px;
  background:
    radial-gradient(circle at 86% 28%,rgba(49,208,170,.18),transparent 24%),
    linear-gradient(135deg,#fff,#F8F6FF) !important;
}

[data-theme="v2"] .edu-reports-page .report-choice,
[data-theme="v2"] .edu-reports-page .school-report-card {
  border:0 !important;
  border-radius:16px !important;
  box-shadow:0 12px 30px rgba(66,53,150,.08) !important;
}

@media(max-width:1180px) {
  [data-theme="v2"] .edu-database-page > .card {
    padding-right:0;
  }
  [data-theme="v2"] .edu-database-page > .card::before,
  [data-theme="v2"] .edu-database-page > .card::after {
    display:none;
  }
  [data-theme="v2"] .edu-finance-page .stats-grid,
  [data-theme="v2"] .edu-events-page .cal-grid-layout,
  [data-theme="v2"] .edu-chat-page .chat-shell {
    grid-template-columns:1fr !important;
  }
}

/* V2 refinement: menu compacto sem rolagem e paginas internas com o mesmo desenho. */
[data-theme="v2"] .sidebar {
  display:flex !important;
  flex-direction:column !important;
  gap:5px !important;
  height:calc(100dvh - 110px) !important;
  max-height:calc(100dvh - 110px) !important;
  overflow:hidden !important;
  padding:14px 12px !important;
}

[data-theme="v2"] .sidebar .nav-standalone {
  flex:0 0 auto !important;
  min-height:38px !important;
  margin:0 0 6px !important;
  padding:8px 11px !important;
  border-radius:14px !important;
  font-size:13px !important;
}

[data-theme="v2"] .nav-group {
  flex:0 0 auto !important;
  margin:0 !important;
  padding:0 !important;
}

[data-theme="v2"] .nav-group-toggle {
  min-height:34px !important;
  padding:7px 10px !important;
  border-radius:14px !important;
  font-size:12px !important;
}

[data-theme="v2"] .nav-group-title {
  gap:9px !important;
}

[data-theme="v2"] .nav-group-title svg,
[data-theme="v2"] .nav-group-toggle svg:not(.nav-caret) {
  width:17px !important;
  height:17px !important;
}

[data-theme="v2"] .nav-caret {
  width:14px !important;
  height:14px !important;
}

[data-theme="v2"] .nav-group-items {
  display:none !important;
  grid-template-columns:1fr !important;
  gap:3px !important;
  padding:4px 0 5px 26px !important;
}

[data-theme="v2"] .nav-group.open .nav-group-items {
  display:grid !important;
}

[data-theme="v2"] .nav-group-items .nav-item {
  min-height:29px !important;
  padding:5px 8px !important;
  border-radius:11px !important;
  font-size:12px !important;
  font-weight:750 !important;
}

[data-theme="v2"] .nav-group-items .nav-item svg {
  display:none !important;
}

[data-theme="v2"] .nav-group.open .nav-group-toggle {
  background:rgba(255,255,255,.14) !important;
  color:#fff !important;
}

[data-theme="v2"] .nav-group.open .nav-caret {
  transform:rotate(90deg) !important;
}

[data-theme="v2"] .main-content > .page.active {
  max-width:1480px;
  margin:0 auto;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active > .card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active > .card-padded,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active > .grid > .card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active > .grid-2 > .card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .config-section,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .turma-table-card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .school-report-card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .report-card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .access-setup-card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .turma-check-card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .obs-card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .subject-card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .boletim-card {
  border:0 !important;
  border-radius:26px !important;
  background:#fff !important;
  box-shadow:0 16px 42px rgba(72,58,180,.10) !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .config-section {
  padding:20px !important;
  margin-bottom:18px !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .config-section h3,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .card-header h3,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .reports-clean-head h2,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .school-report-card h4 {
  color:#29224F !important;
  font-weight:900 !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .config-section h3 {
  margin-bottom:14px !important;
  padding-bottom:12px !important;
  border-bottom:1px solid #EFEAFB !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .card-header {
  min-height:62px !important;
  padding:18px 22px !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .card-body,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .card-padded {
  padding:20px !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .stats-grid {
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr)) !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .stat-card {
  min-height:116px !important;
  align-items:flex-start !important;
  border-radius:24px !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .stat-icon {
  border-radius:18px !important;
  background:#F1EEFF !important;
  color:#5B4BDB !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .table-wrap,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .school-table-wrap {
  border:0 !important;
  border-radius:24px !important;
  background:transparent !important;
  box-shadow:none !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) tbody tr:hover td {
  background:#FBFAFF !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .finance-tabs,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .report-tabbar,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .aluno-profile-tabs {
  border:0 !important;
  border-radius:999px !important;
  background:#EEEAFE !important;
  padding:6px !important;
  box-shadow:none !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .finance-tab,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .report-tab,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .aluno-tab {
  border:0 !important;
  border-radius:999px !important;
  color:#6F6A8F !important;
  background:transparent !important;
  font-weight:850 !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .finance-tab.active,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .report-tab.active,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .aluno-tab.active {
  background:#fff !important;
  color:#5B4BDB !important;
  box-shadow:0 10px 24px rgba(72,58,180,.12) !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .chat-shell {
  gap:18px !important;
}

[data-theme="v2"] body:not(:has(#aluno-app.active)) .chat-conversation-item,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .dash-priority-item,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .dash-empty-good,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .media-row,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .grade-slot {
  border:0 !important;
  border-radius:18px !important;
  background:#F8F6FF !important;
}

@media(max-width:1180px) {
  [data-theme="v2"] .sidebar {
    height:calc(100dvh - 66px) !important;
    max-height:calc(100dvh - 66px) !important;
    overflow:hidden !important;
    scrollbar-width:none !important;
  }
}

@media(max-width:840px) {
  [data-theme="v2"] body:not(:has(#aluno-app.active)) .page-header {
    align-items:flex-start !important;
    flex-direction:column !important;
  }

  [data-theme="v2"] body:not(:has(#aluno-app.active)) .card,
  [data-theme="v2"] body:not(:has(#aluno-app.active)) .card-padded,
  [data-theme="v2"] body:not(:has(#aluno-app.active)) .config-section {
    border-radius:22px !important;
  }
}

/* GesClass V2 Edu Center: camada final baseada nas referencias enviadas. */
[data-theme="v2"] body {
  background:#F7F5FF !important;
}

[data-theme="v2"] .app-layout {
  background:#F7F5FF !important;
}

[data-theme="v2"] .sidebar {
  left:0 !important;
  top:0 !important;
  width:176px !important;
  height:100dvh !important;
  max-height:100dvh !important;
  padding:22px 14px 18px !important;
  border-radius:0 0 34px 0 !important;
  background:linear-gradient(180deg,#8B4CFF 0%,#6F4DF5 48%,#5C44EA 100%) !important;
  box-shadow:18px 0 42px rgba(93,68,234,.20) !important;
}

[data-theme="v2"] .topbar {
  height:72px !important;
  margin:0 0 0 176px !important;
  padding:0 28px !important;
  border-radius:0 !important;
  box-shadow:none !important;
  border-bottom:1px solid rgba(235,231,250,.9) !important;
  background:#fff !important;
}

[data-theme="v2"] .app-body {
  height:calc(100dvh - 72px) !important;
}

[data-theme="v2"] .main-content {
  margin-left:176px !important;
  height:calc(100dvh - 72px) !important;
  padding:18px 24px 26px !important;
  background:#F7F5FF !important;
}

[data-theme="v2"] .topbar-search {
  width:min(420px,38vw) !important;
  height:44px !important;
  display:flex !important;
  align-items:center !important;
  border-radius:10px !important;
  background:#F8F7FD !important;
}

[data-theme="v2"] .topbar-search input {
  min-height:44px !important;
  color:#302B46 !important;
  font-size:12px !important;
}

[data-theme="v2"] .topbar-right {
  gap:14px !important;
}

[data-theme="v2"] .theme-toggle,
[data-theme="v2"] .topbar-message-btn {
  width:38px !important;
  height:38px !important;
  border-radius:999px !important;
  background:#F8F7FD !important;
  color:#7465EE !important;
}

[data-theme="v2"] .user-chip {
  min-height:44px !important;
  padding:5px 12px 5px 5px !important;
  background:#fff !important;
  border-radius:999px !important;
  box-shadow:none !important;
}

[data-theme="v2"] .v2-sidebar-brand {
  min-height:44px !important;
  margin-bottom:24px !important;
}

[data-theme="v2"] .v2-brand-mark {
  width:34px !important;
  height:34px !important;
  border-radius:999px !important;
}

[data-theme="v2"] .v2-sidebar-brand strong {
  font-size:15px !important;
  line-height:1 !important;
}

[data-theme="v2"] .v2-sidebar-brand small {
  font-size:8.5px !important;
  opacity:.78 !important;
}

[data-theme="v2"] .v2-sidebar-section {
  height:calc(100dvh - 124px) !important;
  align-content:start !important;
  gap:6px !important;
  overflow-y:auto !important;
}

[data-theme="v2"] .v2-sidebar-section > span {
  margin:0 0 8px 4px !important;
  color:rgba(255,255,255,.78) !important;
  font-size:10px !important;
  text-transform:none !important;
  letter-spacing:0 !important;
}

[data-theme="v2"] .v2-menu-group {
  gap:4px !important;
  padding:0 0 8px !important;
  border-top:0 !important;
}

[data-theme="v2"] .v2-menu-group > span {
  margin:8px 0 2px 4px !important;
  color:rgba(255,255,255,.54) !important;
  font-size:8px !important;
  letter-spacing:.04em !important;
}

[data-theme="v2"] .v2-nav-link {
  min-height:34px !important;
  padding:7px 9px !important;
  border-radius:8px !important;
  gap:9px !important;
  color:rgba(255,255,255,.86) !important;
  font-size:10.5px !important;
  font-weight:750 !important;
}

[data-theme="v2"] .v2-nav-link svg {
  width:14px !important;
  height:14px !important;
}

[data-theme="v2"] .v2-nav-link:hover {
  background:rgba(255,255,255,.12) !important;
  color:#fff !important;
}

[data-theme="v2"] .v2-nav-link.active {
  background:#fff !important;
  color:#6B4DF2 !important;
  box-shadow:0 12px 24px rgba(51,35,149,.18) !important;
}

[data-theme="v2"] .v2-sidebar-user {
  display:none !important;
}

[data-theme="v2"] .edu-dashboard,
[data-theme="v2"] .main-content > .page.active {
  max-width:1240px !important;
}

[data-theme="v2"] .edu-page-title,
[data-theme="v2"] .page-header {
  min-height:48px !important;
  margin-bottom:16px !important;
  align-items:center !important;
}

[data-theme="v2"] .edu-page-title h2,
[data-theme="v2"] .page-header h2 {
  color:#232033 !important;
  font-size:21px !important;
  font-weight:850 !important;
  letter-spacing:0 !important;
}

[data-theme="v2"] .edu-page-title p,
[data-theme="v2"] .page-header p {
  color:#8F8AA6 !important;
  font-size:11px !important;
  font-weight:650 !important;
}

[data-theme="v2"] .edu-top-grid {
  grid-template-columns:repeat(2,minmax(0,1fr)) minmax(300px,2.15fr) !important;
  gap:14px !important;
}

[data-theme="v2"] .edu-stat,
[data-theme="v2"] .edu-panel,
[data-theme="v2"] .edu-knowledge-card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active > .card,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .page.active > .card-padded,
[data-theme="v2"] body:not(:has(#aluno-app.active)) .config-section,
[data-theme="v2"] .chat-list-panel,
[data-theme="v2"] .chat-main-panel,
[data-theme="v2"] .chat-info-panel {
  border:0 !important;
  border-radius:10px !important;
  background:#fff !important;
  box-shadow:0 12px 34px rgba(82,70,150,.07) !important;
}

[data-theme="v2"] .edu-stat {
  min-height:84px !important;
  padding:14px !important;
  display:grid !important;
  grid-template-columns:1fr 46px !important;
  align-items:center !important;
}

[data-theme="v2"] .edu-stat > span {
  grid-column:2 !important;
  grid-row:1 !important;
  width:42px !important;
  height:42px !important;
  border-radius:12px !important;
}

[data-theme="v2"] .edu-stat strong {
  color:#232033 !important;
  font-size:24px !important;
}

[data-theme="v2"] .edu-stat small {
  color:#514B6E !important;
  font-size:10px !important;
}

[data-theme="v2"] .edu-stat em {
  font-size:9px !important;
}

[data-theme="v2"] .edu-knowledge-card {
  min-height:182px !important;
  grid-column:3 !important;
  grid-row:1 / span 2 !important;
  padding:22px !important;
}

[data-theme="v2"] .edu-knowledge-card h3 {
  font-size:21px !important;
  line-height:1.16 !important;
}

[data-theme="v2"] .edu-illustration {
  width:116px !important;
  height:98px !important;
  border-radius:22px !important;
}

[data-theme="v2"] .edu-main-grid {
  grid-template-columns:minmax(0,1.7fr) 280px !important;
  gap:14px !important;
}

[data-theme="v2"] .edu-panel {
  padding:18px !important;
}

[data-theme="v2"] .edu-panel-head h3 {
  color:#232033 !important;
  font-size:13px !important;
}

[data-theme="v2"] .edu-panel-head p,
[data-theme="v2"] .edu-panel-head span {
  color:#9E98B8 !important;
  font-size:10px !important;
}

[data-theme="v2"] .edu-line-chart,
[data-theme="v2"] .edu-finance-chart {
  height:214px !important;
  border-radius:8px !important;
}

[data-theme="v2"] .edu-events {
  min-height:214px !important;
}

[data-theme="v2"] .edu-calendar-grid {
  gap:7px !important;
}

[data-theme="v2"] .edu-calendar-grid span {
  min-height:34px !important;
  border-radius:8px !important;
  background:#FCFBFF !important;
}

[data-theme="v2"] .edu-calendar-grid span.today {
  background:#6C58F2 !important;
  color:#fff !important;
}

[data-theme="v2"] table {
  border-spacing:0 !important;
}

[data-theme="v2"] th {
  height:46px !important;
  background:#fff !important;
  color:#8F8AA6 !important;
  font-size:10px !important;
  font-weight:850 !important;
  text-transform:none !important;
}

[data-theme="v2"] td {
  height:54px !important;
  background:#fff !important;
  box-shadow:none !important;
  border-top:1px solid #F0EEF8 !important;
  color:#2B2842 !important;
}

[data-theme="v2"] tbody tr td:first-child,
[data-theme="v2"] tbody tr td:last-child {
  border-radius:0 !important;
}

[data-theme="v2"] .table-wrap,
[data-theme="v2"] .school-table-wrap {
  border-radius:10px !important;
  background:#fff !important;
  box-shadow:0 12px 34px rgba(82,70,150,.07) !important;
}

[data-theme="v2"] .chat-shell {
  grid-template-columns:300px minmax(0,1fr) !important;
  min-height:calc(100dvh - 150px) !important;
  gap:0 !important;
  border-radius:10px !important;
  overflow:hidden !important;
  background:#fff !important;
  box-shadow:0 12px 34px rgba(82,70,150,.07) !important;
}

[data-theme="v2"] .chat-list-panel,
[data-theme="v2"] .chat-main-panel,
[data-theme="v2"] .chat-info-panel {
  border-radius:0 !important;
  box-shadow:none !important;
}

[data-theme="v2"] .chat-list-panel {
  border-right:1px solid #F0EEF8 !important;
}

[data-theme="v2"] .chat-message.out .chat-bubble,
[data-theme="v2"] .message-bubble.out {
  background:#6C58F2 !important;
  color:#fff !important;
  border-radius:14px 14px 4px 14px !important;
}

[data-theme="v2"] .chat-message.in .chat-bubble,
[data-theme="v2"] .message-bubble.in {
  background:#F8F7FD !important;
  color:#302B46 !important;
  border-radius:14px 14px 14px 4px !important;
}

@media(max-width:1180px) {
  [data-theme="v2"] .sidebar {
    left:0 !important;
    top:0 !important;
    border-radius:0 0 28px 0 !important;
    transform:translateX(-100%) !important;
  }

  [data-theme="v2"] .sidebar.open {
    transform:translateX(0) !important;
  }

  [data-theme="v2"] .topbar,
  [data-theme="v2"] .main-content {
    margin-left:0 !important;
  }

  [data-theme="v2"] .edu-top-grid,
  [data-theme="v2"] .edu-main-grid {
    grid-template-columns:1fr !important;
  }

  [data-theme="v2"] .edu-knowledge-card {
    grid-column:auto !important;
    grid-row:auto !important;
  }
}

/* GesClass V2: menu mais usavel, maior e com grupos expansíveis. */
[data-theme="v2"] .sidebar {
  width:246px !important;
}

[data-theme="v2"] .topbar {
  margin-left:246px !important;
}

[data-theme="v2"] .main-content {
  margin-left:246px !important;
}

[data-theme="v2"] .v2-sidebar-brand {
  margin-bottom:18px !important;
}

[data-theme="v2"] .v2-brand-mark {
  width:40px !important;
  height:40px !important;
  border-radius:13px !important;
}

[data-theme="v2"] .v2-sidebar-brand strong {
  font-size:18px !important;
}

[data-theme="v2"] .v2-sidebar-brand small {
  font-size:10px !important;
}

[data-theme="v2"] .v2-sidebar-section {
  height:calc(100dvh - 104px) !important;
  gap:8px !important;
}

[data-theme="v2"] .v2-sidebar-section > span {
  margin:0 0 6px 4px !important;
  font-size:12px !important;
  font-weight:850 !important;
}

[data-theme="v2"] .v2-menu-group {
  display:block !important;
  padding:4px !important;
  border-radius:15px !important;
  background:rgba(255,255,255,.08) !important;
}

[data-theme="v2"] .v2-menu-toggle {
  width:100% !important;
  min-height:46px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  border:0 !important;
  border-radius:12px !important;
  padding:10px 11px !important;
  color:#fff !important;
  background:transparent !important;
  cursor:pointer !important;
  text-align:left !important;
}

[data-theme="v2"] .v2-menu-toggle > span {
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  min-width:0 !important;
}

[data-theme="v2"] .v2-menu-toggle svg:not(.v2-menu-caret) {
  width:18px !important;
  height:18px !important;
  flex:0 0 auto !important;
}

[data-theme="v2"] .v2-menu-toggle strong {
  font-size:13.5px !important;
  font-weight:850 !important;
  line-height:1.1 !important;
}

[data-theme="v2"] .v2-menu-caret {
  width:16px !important;
  height:16px !important;
  flex:0 0 auto !important;
  transition:transform .18s ease !important;
}

[data-theme="v2"] .v2-menu-group.open .v2-menu-caret {
  transform:rotate(90deg) !important;
}

[data-theme="v2"] .v2-menu-items {
  display:none !important;
  gap:5px !important;
  padding:3px 0 8px 8px !important;
}

[data-theme="v2"] .v2-menu-group.open .v2-menu-items {
  display:grid !important;
}

[data-theme="v2"] .v2-nav-link {
  min-height:40px !important;
  padding:9px 10px !important;
  border-radius:11px !important;
  gap:10px !important;
  font-size:12.5px !important;
  font-weight:760 !important;
}

[data-theme="v2"] .v2-nav-link svg {
  width:16px !important;
  height:16px !important;
}

[data-theme="v2"] .v2-menu-group.open .v2-menu-toggle {
  background:rgba(255,255,255,.12) !important;
}

@media(max-width:1180px) {
  [data-theme="v2"] .topbar,
  [data-theme="v2"] .main-content {
    margin-left:0 !important;
  }
}

/* Correcao final de troca de tema: o menu nunca pode herdar SVG gigante. */
.sidebar .v2-nav-link,
.sidebar .v2-menu-toggle {
  align-items:center !important;
}

.sidebar .v2-nav-link svg,
.sidebar .v2-menu-toggle svg:not(.v2-menu-caret),
.sidebar .v2-brand-mark svg {
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  height:18px !important;
  min-height:18px !important;
  max-height:18px !important;
  flex:0 0 18px !important;
}

.sidebar .v2-menu-caret {
  width:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  height:16px !important;
  min-height:16px !important;
  max-height:16px !important;
  flex:0 0 16px !important;
}

/* Correcao de troca de tema: impede que SVGs do menu V2 estourem no tema classico. */
.sidebar .v2-nav-link,
.sidebar .v2-menu-toggle {
  align-items:center !important;
}

.sidebar .v2-nav-link svg,
.sidebar .v2-menu-toggle svg:not(.v2-menu-caret),
.sidebar .v2-brand-mark svg {
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  height:18px !important;
  min-height:18px !important;
  max-height:18px !important;
  flex:0 0 18px !important;
}

.sidebar .v2-menu-caret {
  width:16px !important;
  min-width:16px !important;
  max-width:16px !important;
  height:16px !important;
  min-height:16px !important;
  max-height:16px !important;
  flex:0 0 16px !important;
}

/* Menu SaaS: Dashboard direto no topo e demais areas em sanfona. */
[data-theme="v2"] .v2-sidebar-section,
[data-theme="saas"] .v2-sidebar-section {
  display:grid !important;
  gap:10px !important;
  padding:0 18px !important;
}

[data-theme="v2"] .v2-sidebar-section > span,
[data-theme="saas"] .v2-sidebar-section > span,
[data-theme="v2"] .v2-menu-search,
[data-theme="saas"] .v2-menu-search {
  display:none !important;
}

[data-theme="v2"] .v2-sidebar-section > .v2-nav-link,
[data-theme="saas"] .v2-sidebar-section > .v2-nav-link {
  width:100% !important;
  min-height:48px !important;
  padding:12px 14px !important;
  border:1px solid rgba(255,255,255,.24) !important;
  border-radius:14px !important;
  color:#fff !important;
  background:rgba(255,255,255,.14) !important;
  font-size:15px !important;
  font-weight:700 !important;
}

[data-theme="v2"] .v2-sidebar-section > .v2-nav-link.active,
[data-theme="saas"] .v2-sidebar-section > .v2-nav-link.active {
  color:#6246EA !important;
  background:#fff !important;
  box-shadow:0 12px 26px rgba(50,34,145,.18) !important;
}

[data-theme="v2"] .v2-menu-group,
[data-theme="saas"] .v2-menu-group {
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:14px !important;
  background:rgba(255,255,255,.10) !important;
}

[data-theme="v2"] .v2-menu-toggle,
[data-theme="saas"] .v2-menu-toggle {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  width:100% !important;
  min-height:48px !important;
  padding:12px 14px !important;
  border:0 !important;
  border-radius:14px !important;
  color:#fff !important;
  background:transparent !important;
  font-size:15px !important;
  font-weight:700 !important;
  text-align:left !important;
}

[data-theme="v2"] .v2-menu-toggle span,
[data-theme="saas"] .v2-menu-toggle span {
  display:flex !important;
  align-items:center !important;
  gap:11px !important;
}

[data-theme="v2"] .v2-menu-toggle strong,
[data-theme="saas"] .v2-menu-toggle strong {
  font-size:15px !important;
  font-weight:700 !important;
}

[data-theme="v2"] .v2-menu-caret,
[data-theme="saas"] .v2-menu-caret {
  display:block !important;
  width:17px !important;
  height:17px !important;
  transition:transform .18s ease !important;
}

[data-theme="v2"] .v2-menu-group.open .v2-menu-caret,
[data-theme="saas"] .v2-menu-group.open .v2-menu-caret {
  transform:rotate(90deg) !important;
}

[data-theme="v2"] .v2-menu-items,
[data-theme="saas"] .v2-menu-items {
  display:none !important;
  gap:4px !important;
  padding:0 10px 10px !important;
}

[data-theme="v2"] .v2-menu-group.open .v2-menu-items,
[data-theme="saas"] .v2-menu-group.open .v2-menu-items {
  display:grid !important;
}

[data-theme="v2"] .v2-menu-items .v2-nav-link,
[data-theme="saas"] .v2-menu-items .v2-nav-link {
  min-height:40px !important;
  padding:9px 12px 9px 38px !important;
  border-radius:10px !important;
  color:rgba(255,255,255,.84) !important;
  background:transparent !important;
  font-size:14px !important;
  font-weight:620 !important;
}

[data-theme="v2"] .v2-menu-items .v2-nav-link.active,
[data-theme="saas"] .v2-menu-items .v2-nav-link.active {
  color:#6246EA !important;
  background:#fff !important;
}

/* FINAL ABSOLUTO: sanfona clara e perfil sem vazamento horizontal. */
:root[data-theme="v2"] .sidebar,
:root[data-theme="saas"] .sidebar {
  position:fixed !important;
  inset:0 auto 0 0 !important;
  width:292px !important;
  height:100dvh !important;
  max-height:100dvh !important;
  display:flex !important;
  flex-direction:column !important;
  padding:20px 18px !important;
  border:0 !important;
  border-right:1px solid #E6EAF2 !important;
  border-radius:0 !important;
  color:#263148 !important;
  background:#FFFFFF !important;
  box-shadow:10px 0 30px rgba(25,39,80,.06) !important;
  overflow:hidden !important;
}

:root[data-theme="v2"] .topbar,
:root[data-theme="saas"] .topbar {
  margin-left:292px !important;
  width:auto !important;
}

:root[data-theme="v2"] .main-content,
:root[data-theme="saas"] .main-content {
  margin-left:292px !important;
  width:auto !important;
  max-width:none !important;
  overflow-x:hidden !important;
}

:root[data-theme="v2"] .v2-menu-title,
:root[data-theme="saas"] .v2-menu-title {
  display:none !important;
}

:root[data-theme="v2"] .v2-menu-group,
:root[data-theme="saas"] .v2-menu-group {
  margin:0 0 8px !important;
  border:1px solid #E8ECF4 !important;
  border-radius:12px !important;
  background:#FFFFFF !important;
  overflow:hidden !important;
}

:root[data-theme="v2"] .v2-menu-toggle,
:root[data-theme="saas"] .v2-menu-toggle {
  width:100% !important;
  min-height:48px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  border:0 !important;
  padding:0 12px !important;
  color:#25314A !important;
  background:#FFFFFF !important;
  cursor:pointer !important;
  text-align:left !important;
}

:root[data-theme="v2"] .v2-menu-toggle > span,
:root[data-theme="saas"] .v2-menu-toggle > span {
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  min-width:0 !important;
}

:root[data-theme="v2"] .v2-menu-toggle strong,
:root[data-theme="saas"] .v2-menu-toggle strong {
  color:#25314A !important;
  font-size:15px !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
}

:root[data-theme="v2"] .v2-menu-toggle svg:not(.v2-menu-caret),
:root[data-theme="saas"] .v2-menu-toggle svg:not(.v2-menu-caret) {
  width:18px !important;
  height:18px !important;
  color:#71809A !important;
}

:root[data-theme="v2"] .v2-menu-caret,
:root[data-theme="saas"] .v2-menu-caret {
  width:16px !important;
  height:16px !important;
  display:block !important;
  color:#8D97AA !important;
  transition:transform .18s ease !important;
}

:root[data-theme="v2"] .v2-menu-group.open .v2-menu-caret,
:root[data-theme="saas"] .v2-menu-group.open .v2-menu-caret {
  transform:rotate(90deg) !important;
}

:root[data-theme="v2"] .v2-menu-group.open .v2-menu-toggle,
:root[data-theme="saas"] .v2-menu-group.open .v2-menu-toggle {
  background:#F7F9FC !important;
}

:root[data-theme="v2"] .v2-menu-items,
:root[data-theme="saas"] .v2-menu-items {
  display:none !important;
  gap:2px !important;
  padding:6px 8px 8px !important;
  border-top:1px solid #EEF2F7 !important;
  background:#FFFFFF !important;
}

:root[data-theme="v2"] .v2-menu-group.open .v2-menu-items,
:root[data-theme="saas"] .v2-menu-group.open .v2-menu-items {
  display:grid !important;
}

:root[data-theme="v2"] .v2-nav-link,
:root[data-theme="saas"] .v2-nav-link {
  min-height:38px !important;
  padding:8px 9px !important;
  border-radius:8px !important;
  color:#32405A !important;
  background:transparent !important;
  font-size:14.5px !important;
  font-weight:500 !important;
  box-shadow:none !important;
}

:root[data-theme="v2"] .v2-nav-link.active,
:root[data-theme="saas"] .v2-nav-link.active {
  background:#EEF3FF !important;
  color:#1E3A8A !important;
  font-weight:650 !important;
}

:root[data-theme="v2"] #page-aluno-perfil,
:root[data-theme="saas"] #page-aluno-perfil {
  width:100% !important;
  max-width:100% !important;
  overflow-x:hidden !important;
}

:root[data-theme="v2"] #page-aluno-perfil .card-padded,
:root[data-theme="saas"] #page-aluno-perfil .card-padded,
:root[data-theme="v2"] #page-aluno-perfil .aluno-profile-body,
:root[data-theme="saas"] #page-aluno-perfil .aluno-profile-body {
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  overflow:hidden !important;
}

:root[data-theme="v2"] #page-aluno-perfil .aluno-profile-tabs,
:root[data-theme="saas"] #page-aluno-perfil .aluno-profile-tabs {
  width:100% !important;
  max-width:100% !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  flex-wrap:nowrap !important;
}

:root[data-theme="v2"] #page-aluno-perfil .aluno-tab-panel,
:root[data-theme="saas"] #page-aluno-perfil .aluno-tab-panel {
  width:100% !important;
  max-width:100% !important;
  overflow-x:hidden !important;
}

:root[data-theme="v2"] #page-aluno-perfil .aluno-profile-data-grid,
:root[data-theme="saas"] #page-aluno-perfil .aluno-profile-data-grid {
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)) !important;
  gap:16px !important;
  overflow:hidden !important;
}

:root[data-theme="v2"] #page-aluno-perfil .aluno-window-panel,
:root[data-theme="saas"] #page-aluno-perfil .aluno-window-panel {
  min-width:0 !important;
  max-width:100% !important;
}

@media(max-width:1180px) {
  :root[data-theme="v2"] .topbar,
  :root[data-theme="v2"] .main-content,
  :root[data-theme="saas"] .topbar,
  :root[data-theme="saas"] .main-content {
    margin-left:0 !important;
  }
}

/* FINAL: legibilidade do menu e dashboard moderno. Esta camada fica por ultimo para bloquear estilos antigos. */
:root[data-theme="v2"],
:root[data-theme="saas"],
:root[data-theme="v2"] body,
:root[data-theme="saas"] body,
:root[data-theme="v2"] button,
:root[data-theme="saas"] button,
:root[data-theme="v2"] input,
:root[data-theme="saas"] input,
:root[data-theme="v2"] select,
:root[data-theme="saas"] select,
:root[data-theme="v2"] textarea,
:root[data-theme="saas"] textarea {
  font-family:Inter,var(--font-sans),Arial,sans-serif !important;
  letter-spacing:0 !important;
  -webkit-font-smoothing:antialiased !important;
  text-rendering:optimizeLegibility !important;
}

:root[data-theme="v2"] .sidebar,
:root[data-theme="saas"] .sidebar {
  position:fixed !important;
  left:0 !important;
  top:0 !important;
  z-index:80 !important;
  width:292px !important;
  height:100dvh !important;
  max-height:100dvh !important;
  display:flex !important;
  flex-direction:column !important;
  padding:20px 18px !important;
  border:0 !important;
  border-right:1px solid #E6EAF2 !important;
  border-radius:0 !important;
  color:#263148 !important;
  background:#FFFFFF !important;
  box-shadow:10px 0 30px rgba(25,39,80,.06) !important;
  overflow:hidden !important;
}

:root[data-theme="v2"] .topbar,
:root[data-theme="saas"] .topbar {
  margin-left:292px !important;
  height:72px !important;
}

:root[data-theme="v2"] .main-content,
:root[data-theme="saas"] .main-content {
  margin-left:292px !important;
  height:calc(100dvh - 72px) !important;
}

:root[data-theme="v2"] .v2-sidebar-brand,
:root[data-theme="saas"] .v2-sidebar-brand {
  flex:0 0 auto !important;
  min-height:46px !important;
  margin:0 0 16px !important;
  color:#17213B !important;
}

:root[data-theme="v2"] .v2-brand-mark,
:root[data-theme="saas"] .v2-brand-mark {
  width:42px !important;
  height:42px !important;
  border-radius:12px !important;
  color:#FFFFFF !important;
  background:#1E3A8A !important;
  box-shadow:none !important;
}

:root[data-theme="v2"] .v2-sidebar-brand strong,
:root[data-theme="saas"] .v2-sidebar-brand strong {
  color:#17213B !important;
  font-size:20px !important;
  font-weight:700 !important;
  line-height:1 !important;
}

:root[data-theme="v2"] .v2-sidebar-brand small,
:root[data-theme="saas"] .v2-sidebar-brand small {
  color:#7C879B !important;
  font-size:12px !important;
  font-weight:500 !important;
}

:root[data-theme="v2"] .v2-menu-search,
:root[data-theme="saas"] .v2-menu-search {
  flex:0 0 auto !important;
  height:42px !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  margin:0 0 18px !important;
  padding:0 12px !important;
  border:1px solid #E8ECF4 !important;
  border-radius:10px !important;
  color:#8D97AA !important;
  background:#F7F9FC !important;
}

:root[data-theme="v2"] .v2-menu-search svg,
:root[data-theme="saas"] .v2-menu-search svg {
  width:17px !important;
  height:17px !important;
}

:root[data-theme="v2"] .v2-menu-search input,
:root[data-theme="saas"] .v2-menu-search input {
  width:100% !important;
  border:0 !important;
  outline:0 !important;
  background:transparent !important;
  color:#263148 !important;
  font-size:14px !important;
  font-weight:450 !important;
}

:root[data-theme="v2"] .v2-sidebar-section,
:root[data-theme="saas"] .v2-sidebar-section {
  flex:1 1 auto !important;
  min-height:0 !important;
  height:auto !important;
  display:block !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:0 4px 10px 0 !important;
  scrollbar-width:none !important;
}

:root[data-theme="v2"] .v2-sidebar-section > span,
:root[data-theme="saas"] .v2-sidebar-section > span {
  display:block !important;
  margin:0 0 12px 4px !important;
  color:#8D97AA !important;
  font-size:12px !important;
  font-weight:650 !important;
  text-transform:none !important;
}

:root[data-theme="v2"] .v2-menu-group,
:root[data-theme="saas"] .v2-menu-group {
  display:block !important;
  margin:0 0 16px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}

:root[data-theme="v2"] .v2-menu-title,
:root[data-theme="saas"] .v2-menu-title {
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  height:24px !important;
  margin:0 0 5px 4px !important;
  color:#8D97AA !important;
  font-size:12px !important;
  font-weight:600 !important;
  text-transform:none !important;
}

:root[data-theme="v2"] .v2-menu-title svg,
:root[data-theme="saas"] .v2-menu-title svg {
  width:14px !important;
  height:14px !important;
}

:root[data-theme="v2"] .v2-menu-items,
:root[data-theme="saas"] .v2-menu-items {
  display:grid !important;
  gap:2px !important;
  padding:0 !important;
}

:root[data-theme="v2"] .v2-nav-link,
:root[data-theme="saas"] .v2-nav-link {
  width:100% !important;
  min-height:40px !important;
  display:flex !important;
  align-items:center !important;
  padding:9px 11px !important;
  border-radius:9px !important;
  gap:11px !important;
  color:#32405A !important;
  background:transparent !important;
  font-size:15px !important;
  font-weight:500 !important;
  line-height:1.2 !important;
  text-align:left !important;
  box-shadow:none !important;
}

:root[data-theme="v2"] .v2-nav-link svg,
:root[data-theme="saas"] .v2-nav-link svg {
  width:17px !important;
  height:17px !important;
  color:#7D879B !important;
  stroke-width:2 !important;
}

:root[data-theme="v2"] .v2-nav-link:hover,
:root[data-theme="saas"] .v2-nav-link:hover {
  background:#F4F6FA !important;
  color:#17213B !important;
}

:root[data-theme="v2"] .v2-nav-link.active,
:root[data-theme="saas"] .v2-nav-link.active {
  background:#EEF3FF !important;
  color:#1E3A8A !important;
  font-weight:650 !important;
  box-shadow:none !important;
}

:root[data-theme="v2"] .v2-nav-link.active svg,
:root[data-theme="saas"] .v2-nav-link.active svg {
  color:#1E3A8A !important;
  stroke:#1E3A8A !important;
}

:root[data-theme="v2"] .v2-sidebar-user,
:root[data-theme="saas"] .v2-sidebar-user {
  flex:0 0 auto !important;
  min-height:50px !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  margin:12px 0 0 !important;
  padding:10px !important;
  border:1px solid #E8ECF4 !important;
  border-radius:12px !important;
  color:#263148 !important;
  background:#F8FAFD !important;
}

:root[data-theme="v2"] .dashboard-v2,
:root[data-theme="v2"] .edu-dashboard,
:root[data-theme="saas"] .dashboard-v2,
:root[data-theme="saas"] .edu-dashboard {
  font-family:Inter,var(--font-sans),Arial,sans-serif !important;
  letter-spacing:0 !important;
}

:root[data-theme="v2"] .dashboard-v2 *,
:root[data-theme="v2"] .edu-dashboard *,
:root[data-theme="saas"] .dashboard-v2 *,
:root[data-theme="saas"] .edu-dashboard * {
  letter-spacing:0 !important;
}

:root[data-theme="v2"] .edu-page-title h2,
:root[data-theme="saas"] .edu-page-title h2,
:root[data-theme="v2"] .page-header h2,
:root[data-theme="saas"] .page-header h2 {
  font-size:24px !important;
  font-weight:700 !important;
  color:#17213B !important;
}

:root[data-theme="v2"] .edu-stat strong,
:root[data-theme="saas"] .edu-stat strong {
  font-size:26px !important;
  font-weight:700 !important;
}

:root[data-theme="v2"] .edu-stat small,
:root[data-theme="saas"] .edu-stat small,
:root[data-theme="v2"] .edu-panel-head p,
:root[data-theme="saas"] .edu-panel-head p {
  font-size:12px !important;
  font-weight:500 !important;
}

@media(max-width:1180px) {
  :root[data-theme="v2"] .topbar,
  :root[data-theme="v2"] .main-content,
  :root[data-theme="saas"] .topbar,
  :root[data-theme="saas"] .main-content {
    margin-left:0 !important;
  }
}

/* FINAL: menu sanfona legivel. */
:root[data-theme="v2"] .v2-menu-title,
:root[data-theme="saas"] .v2-menu-title {
  display:none !important;
}

:root[data-theme="v2"] .v2-menu-group,
:root[data-theme="saas"] .v2-menu-group {
  margin:0 0 8px !important;
  padding:0 !important;
  border:1px solid #E8ECF4 !important;
  border-radius:12px !important;
  background:#FFFFFF !important;
  overflow:hidden !important;
}

:root[data-theme="v2"] .v2-menu-toggle,
:root[data-theme="saas"] .v2-menu-toggle {
  width:100% !important;
  min-height:48px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  border:0 !important;
  padding:0 12px !important;
  color:#25314A !important;
  background:#FFFFFF !important;
  cursor:pointer !important;
  text-align:left !important;
}

:root[data-theme="v2"] .v2-menu-toggle > span,
:root[data-theme="saas"] .v2-menu-toggle > span {
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  min-width:0 !important;
}

:root[data-theme="v2"] .v2-menu-toggle svg:not(.v2-menu-caret),
:root[data-theme="saas"] .v2-menu-toggle svg:not(.v2-menu-caret) {
  width:18px !important;
  height:18px !important;
  color:#71809A !important;
  stroke-width:2 !important;
}

:root[data-theme="v2"] .v2-menu-toggle strong,
:root[data-theme="saas"] .v2-menu-toggle strong {
  color:#25314A !important;
  font-size:15px !important;
  font-weight:650 !important;
  line-height:1.2 !important;
  letter-spacing:0 !important;
}

:root[data-theme="v2"] .v2-menu-caret,
:root[data-theme="saas"] .v2-menu-caret {
  width:16px !important;
  height:16px !important;
  color:#8D97AA !important;
  flex:0 0 auto !important;
  transition:transform .18s ease !important;
}

:root[data-theme="v2"] .v2-menu-group.open .v2-menu-caret,
:root[data-theme="saas"] .v2-menu-group.open .v2-menu-caret {
  transform:rotate(90deg) !important;
}

:root[data-theme="v2"] .v2-menu-group.open .v2-menu-toggle,
:root[data-theme="saas"] .v2-menu-group.open .v2-menu-toggle {
  background:#F7F9FC !important;
}

:root[data-theme="v2"] .v2-menu-items,
:root[data-theme="saas"] .v2-menu-items {
  display:none !important;
  gap:2px !important;
  padding:6px 8px 8px !important;
  border-top:1px solid #EEF2F7 !important;
  background:#FFFFFF !important;
}

:root[data-theme="v2"] .v2-menu-group.open .v2-menu-items,
:root[data-theme="saas"] .v2-menu-group.open .v2-menu-items {
  display:grid !important;
}

:root[data-theme="v2"] .v2-nav-link,
:root[data-theme="saas"] .v2-nav-link {
  min-height:38px !important;
  padding:8px 9px !important;
  border-radius:8px !important;
  font-size:14.5px !important;
}

/* GesClass V2: sidebar final baseada nas referencias SaaS limpas. */
[data-theme="v2"],
[data-theme="v2"] body,
[data-theme="v2"] button,
[data-theme="v2"] input,
[data-theme="v2"] select,
[data-theme="v2"] textarea {
  font-family:Inter,var(--font-sans),system-ui,sans-serif !important;
}

[data-theme="v2"] .sidebar {
  display:flex !important;
  flex-direction:column !important;
  width:286px !important;
  height:100dvh !important;
  max-height:100dvh !important;
  padding:18px 16px !important;
  border-right:1px solid #E6EAF2 !important;
  border-radius:0 !important;
  color:#263148 !important;
  background:#FFFFFF !important;
  box-shadow:10px 0 30px rgba(25,39,80,.06) !important;
}

[data-theme="v2"] .topbar {
  margin-left:286px !important;
}

[data-theme="v2"] .main-content {
  margin-left:286px !important;
}

[data-theme="v2"] .v2-sidebar-brand {
  flex:0 0 auto !important;
  min-height:46px !important;
  margin:0 0 16px !important;
  color:#18233A !important;
}

[data-theme="v2"] .v2-brand-mark {
  width:42px !important;
  height:42px !important;
  border-radius:12px !important;
  color:#FFFFFF !important;
  background:#233A8B !important;
  box-shadow:none !important;
}

[data-theme="v2"] .v2-sidebar-brand strong {
  color:#18233A !important;
  font-size:20px !important;
  font-weight:720 !important;
  letter-spacing:0 !important;
}

[data-theme="v2"] .v2-sidebar-brand small {
  margin-top:3px !important;
  color:#7C879B !important;
  font-size:11px !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
}

[data-theme="v2"] .v2-menu-search {
  flex:0 0 auto !important;
  height:40px !important;
  display:flex !important;
  align-items:center !important;
  gap:9px !important;
  margin:0 0 16px !important;
  padding:0 11px !important;
  border:1px solid #E8ECF4 !important;
  border-radius:9px !important;
  color:#8D97AA !important;
  background:#F7F9FC !important;
}

[data-theme="v2"] .v2-menu-search svg {
  width:16px !important;
  height:16px !important;
  flex:0 0 auto !important;
}

[data-theme="v2"] .v2-menu-search input {
  width:100% !important;
  min-width:0 !important;
  border:0 !important;
  outline:0 !important;
  background:transparent !important;
  color:#263148 !important;
  font-size:13px !important;
  font-weight:450 !important;
}

[data-theme="v2"] .v2-sidebar-section {
  flex:1 1 auto !important;
  min-height:0 !important;
  height:auto !important;
  display:block !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:0 4px 10px 0 !important;
  scrollbar-width:none !important;
}

[data-theme="v2"] .v2-sidebar-section > span {
  display:block !important;
  margin:0 0 12px 4px !important;
  color:#9AA3B5 !important;
  font-size:11px !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

[data-theme="v2"] .v2-menu-group {
  display:block !important;
  margin:0 0 15px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}

[data-theme="v2"] .v2-menu-title {
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  height:22px !important;
  margin:0 0 5px 4px !important;
  color:#9AA3B5 !important;
  font-size:11px !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

[data-theme="v2"] .v2-menu-title svg {
  width:13px !important;
  height:13px !important;
  stroke-width:2 !important;
}

[data-theme="v2"] .v2-menu-items,
[data-theme="v2"] .v2-menu-group.open .v2-menu-items {
  display:grid !important;
  gap:1px !important;
  padding:0 !important;
}

[data-theme="v2"] .v2-nav-link {
  width:100% !important;
  min-height:36px !important;
  display:flex !important;
  align-items:center !important;
  padding:8px 10px !important;
  border-radius:8px !important;
  gap:10px !important;
  color:#354258 !important;
  background:transparent !important;
  font-size:13.5px !important;
  font-weight:480 !important;
  line-height:1.2 !important;
  text-align:left !important;
  box-shadow:none !important;
}

[data-theme="v2"] .v2-nav-link svg {
  width:16px !important;
  height:16px !important;
  color:#8A94A8 !important;
  stroke-width:2 !important;
}

[data-theme="v2"] .v2-nav-link:hover {
  background:#F4F6FA !important;
  color:#1E2B44 !important;
}

[data-theme="v2"] .v2-nav-link.active {
  background:#EEF3FF !important;
  color:#2346A0 !important;
  box-shadow:none !important;
  font-weight:650 !important;
}

[data-theme="v2"] .v2-nav-link.active svg {
  color:#2346A0 !important;
  stroke:#2346A0 !important;
}

[data-theme="v2"] .v2-menu-toggle,
[data-theme="v2"] .v2-menu-caret,
[data-theme="v2"] .v2-menu-group > span {
  display:none !important;
}

[data-theme="v2"] .v2-sidebar-user {
  flex:0 0 auto !important;
  min-height:48px !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  margin:12px 0 0 !important;
  padding:9px !important;
  border:1px solid #E8ECF4 !important;
  border-radius:12px !important;
  color:#263148 !important;
  background:#F8FAFD !important;
}

[data-theme="v2"] .v2-sidebar-user > span {
  width:30px !important;
  height:30px !important;
  background:#DCEBFF !important;
  color:#2346A0 !important;
}

[data-theme="v2"] .v2-sidebar-user strong {
  color:#263148 !important;
  font-size:12px !important;
  font-weight:650 !important;
}

[data-theme="v2"] .v2-sidebar-user small {
  color:#7C879B !important;
  font-size:10px !important;
  font-weight:500 !important;
}

@media(max-width:1180px) {
  [data-theme="v2"] .topbar,
  [data-theme="v2"] .main-content {
    margin-left:0 !important;
  }
}

/* GesClass V2: menu claro, legivel e orientado a rotina escolar. */
[data-theme="v2"],
[data-theme="v2"] body,
[data-theme="v2"] button,
[data-theme="v2"] input,
[data-theme="v2"] select,
[data-theme="v2"] textarea {
  font-family:Inter,var(--font-sans),system-ui,sans-serif !important;
}

[data-theme="v2"] .sidebar {
  width:276px !important;
  padding:20px 16px 16px !important;
  border-right:1px solid #E8EAF2 !important;
  border-radius:0 !important;
  color:#24304A !important;
  background:#FFFFFF !important;
  box-shadow:8px 0 28px rgba(32,45,82,.06) !important;
}

[data-theme="v2"] .topbar {
  margin-left:276px !important;
}

[data-theme="v2"] .main-content {
  margin-left:276px !important;
}

[data-theme="v2"] .v2-sidebar-brand {
  min-height:44px !important;
  margin-bottom:20px !important;
  color:#19233C !important;
}

[data-theme="v2"] .v2-brand-mark {
  width:40px !important;
  height:40px !important;
  border-radius:12px !important;
  color:#FFFFFF !important;
  background:#2643A2 !important;
}

[data-theme="v2"] .v2-sidebar-brand strong {
  color:#17213B !important;
  font-size:20px !important;
  font-weight:720 !important;
  letter-spacing:0 !important;
}

[data-theme="v2"] .v2-sidebar-brand small {
  margin-top:3px !important;
  color:#7D879B !important;
  font-size:11px !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
}

[data-theme="v2"] .v2-sidebar-section {
  height:calc(100dvh - 92px) !important;
  display:block !important;
  overflow-y:auto !important;
  padding:0 4px 16px 0 !important;
  scrollbar-width:none !important;
}

[data-theme="v2"] .v2-sidebar-section > span {
  display:block !important;
  margin:0 0 14px 4px !important;
  color:#8B95AA !important;
  font-size:12px !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

[data-theme="v2"] .v2-menu-group {
  display:block !important;
  margin:0 0 18px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}

[data-theme="v2"] .v2-menu-title {
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  height:22px !important;
  margin:0 0 5px 4px !important;
  color:#9AA3B6 !important;
  font-size:11px !important;
  font-weight:680 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

[data-theme="v2"] .v2-menu-title svg {
  width:13px !important;
  height:13px !important;
  stroke-width:2 !important;
}

[data-theme="v2"] .v2-menu-items,
[data-theme="v2"] .v2-menu-group.open .v2-menu-items {
  display:grid !important;
  gap:2px !important;
  padding:0 !important;
}

[data-theme="v2"] .v2-nav-link {
  width:100% !important;
  min-height:38px !important;
  padding:9px 10px !important;
  border-radius:9px !important;
  gap:10px !important;
  color:#394761 !important;
  background:transparent !important;
  font-size:14px !important;
  font-weight:520 !important;
  line-height:1.2 !important;
  text-align:left !important;
  box-shadow:none !important;
}

[data-theme="v2"] .v2-nav-link svg {
  width:17px !important;
  height:17px !important;
  color:#7F8BA3 !important;
  stroke-width:2 !important;
}

[data-theme="v2"] .v2-nav-link:hover {
  background:#F3F6FB !important;
  color:#1B2B4A !important;
}

[data-theme="v2"] .v2-nav-link.active {
  background:#EAF0FF !important;
  color:#1D3F9F !important;
  box-shadow:none !important;
  font-weight:680 !important;
}

[data-theme="v2"] .v2-nav-link.active svg {
  color:#1D3F9F !important;
  stroke:#1D3F9F !important;
}

[data-theme="v2"] .v2-menu-toggle,
[data-theme="v2"] .v2-menu-caret,
[data-theme="v2"] .v2-menu-group > span {
  display:none !important;
}

@media(max-width:1180px) {
  [data-theme="v2"] .topbar,
  [data-theme="v2"] .main-content {
    margin-left:0 !important;
  }
}

/* GesClass V2: menu profissional simples, sem blocos pesados. */
[data-theme="v2"] .sidebar {
  width:258px !important;
  padding:22px 16px 16px !important;
  background:linear-gradient(180deg,#7C4DFF 0%,#6848EF 54%,#5740D7 100%) !important;
}

[data-theme="v2"] .topbar {
  margin-left:258px !important;
}

[data-theme="v2"] .main-content {
  margin-left:258px !important;
}

[data-theme="v2"] .v2-sidebar-brand {
  min-height:42px !important;
  margin-bottom:22px !important;
}

[data-theme="v2"] .v2-brand-mark {
  width:42px !important;
  height:42px !important;
  border-radius:14px !important;
}

[data-theme="v2"] .v2-sidebar-brand strong {
  font-size:18px !important;
}

[data-theme="v2"] .v2-sidebar-brand small {
  font-size:10px !important;
  color:rgba(255,255,255,.72) !important;
}

[data-theme="v2"] .v2-sidebar-section {
  height:calc(100dvh - 92px) !important;
  display:block !important;
  overflow-y:auto !important;
  padding:0 2px 8px 0 !important;
}

[data-theme="v2"] .v2-sidebar-section > span {
  display:block !important;
  margin:0 0 12px 6px !important;
  color:rgba(255,255,255,.72) !important;
  font-size:11px !important;
  font-weight:850 !important;
}

[data-theme="v2"] .v2-menu-group {
  display:block !important;
  margin:0 0 15px !important;
  padding:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}

[data-theme="v2"] .v2-menu-title {
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  height:26px !important;
  margin:0 0 5px 6px !important;
  color:rgba(255,255,255,.58) !important;
  font-size:10px !important;
  font-weight:900 !important;
  letter-spacing:.05em !important;
  text-transform:uppercase !important;
}

[data-theme="v2"] .v2-menu-title svg {
  width:13px !important;
  height:13px !important;
}

[data-theme="v2"] .v2-menu-toggle,
[data-theme="v2"] .v2-menu-caret,
[data-theme="v2"] .v2-menu-group > span {
  display:none !important;
}

[data-theme="v2"] .v2-menu-items,
[data-theme="v2"] .v2-menu-group.open .v2-menu-items {
  display:grid !important;
  gap:3px !important;
  padding:0 !important;
}

[data-theme="v2"] .v2-nav-link {
  width:100% !important;
  min-height:38px !important;
  padding:9px 11px !important;
  border-radius:10px !important;
  gap:10px !important;
  color:rgba(255,255,255,.88) !important;
  background:transparent !important;
  font-size:12.5px !important;
  font-weight:760 !important;
  text-align:left !important;
}

[data-theme="v2"] .v2-nav-link svg {
  width:16px !important;
  height:16px !important;
}

[data-theme="v2"] .v2-nav-link:hover {
  background:rgba(255,255,255,.12) !important;
  color:#fff !important;
}

[data-theme="v2"] .v2-nav-link.active {
  background:#fff !important;
  color:#6246EA !important;
  box-shadow:0 10px 22px rgba(50,34,145,.18) !important;
}

@media(max-width:1180px) {
  [data-theme="v2"] .topbar,
  [data-theme="v2"] .main-content {
    margin-left:0 !important;
  }
}
