/* Vectra Phase 11A - Portal do Aluno responsivo
   Escopo: só aplica quando o JS marca <html class="vectra-portal-aluno">.
*/

html.vectra-portal-aluno,
html.vectra-portal-aluno body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

html.vectra-portal-aluno * {
  box-sizing: border-box;
}

html.vectra-portal-aluno img,
html.vectra-portal-aluno svg,
html.vectra-portal-aluno video,
html.vectra-portal-aluno canvas {
  max-width: 100%;
  height: auto;
}

html.vectra-portal-aluno main,
html.vectra-portal-aluno .content,
html.vectra-portal-aluno .main-content,
html.vectra-portal-aluno .page-content,
html.vectra-portal-aluno .container,
html.vectra-portal-aluno .portal-container,
html.vectra-portal-aluno .portal-shell,
html.vectra-portal-aluno .dashboard,
html.vectra-portal-aluno .dashboard-content {
  max-width: 100%;
  min-width: 0;
}

html.vectra-portal-aluno .card,
html.vectra-portal-aluno .panel,
html.vectra-portal-aluno .box,
html.vectra-portal-aluno .widget,
html.vectra-portal-aluno .portal-card,
html.vectra-portal-aluno .dashboard-card {
  min-width: 0;
  overflow-wrap: anywhere;
}

html.vectra-portal-aluno .vectra-scroll-x {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

html.vectra-portal-aluno table {
  max-width: 100%;
}

html.vectra-portal-aluno input,
html.vectra-portal-aluno select,
html.vectra-portal-aluno textarea,
html.vectra-portal-aluno button {
  max-width: 100%;
}

@media (max-width: 1024px) {
  html.vectra-portal-aluno .grid,
  html.vectra-portal-aluno .cards-grid,
  html.vectra-portal-aluno .dashboard-grid,
  html.vectra-portal-aluno .portal-grid,
  html.vectra-portal-aluno .student-grid,
  html.vectra-portal-aluno .aluno-grid,
  html.vectra-portal-aluno .modules-grid,
  html.vectra-portal-aluno .quick-actions,
  html.vectra-portal-aluno .summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  html.vectra-portal-aluno .row,
  html.vectra-portal-aluno .toolbar,
  html.vectra-portal-aluno .actions,
  html.vectra-portal-aluno .button-row,
  html.vectra-portal-aluno .filters {
    flex-wrap: wrap;
  }
}

@media (max-width: 768px) {
  html.vectra-portal-aluno body {
    font-size: 15px;
  }

  html.vectra-portal-aluno main,
  html.vectra-portal-aluno .content,
  html.vectra-portal-aluno .main-content,
  html.vectra-portal-aluno .page-content,
  html.vectra-portal-aluno .container,
  html.vectra-portal-aluno .portal-container,
  html.vectra-portal-aluno .portal-shell,
  html.vectra-portal-aluno .dashboard,
  html.vectra-portal-aluno .dashboard-content {
    width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  html.vectra-portal-aluno .grid,
  html.vectra-portal-aluno .cards-grid,
  html.vectra-portal-aluno .dashboard-grid,
  html.vectra-portal-aluno .portal-grid,
  html.vectra-portal-aluno .student-grid,
  html.vectra-portal-aluno .aluno-grid,
  html.vectra-portal-aluno .modules-grid,
  html.vectra-portal-aluno .quick-actions,
  html.vectra-portal-aluno .summary-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  html.vectra-portal-aluno .card,
  html.vectra-portal-aluno .panel,
  html.vectra-portal-aluno .box,
  html.vectra-portal-aluno .widget,
  html.vectra-portal-aluno .portal-card,
  html.vectra-portal-aluno .dashboard-card {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 14px !important;
    border-radius: 16px !important;
  }

  html.vectra-portal-aluno h1 {
    font-size: clamp(24px, 8vw, 36px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.03em !important;
  }

  html.vectra-portal-aluno h2 {
    font-size: clamp(20px, 6vw, 28px) !important;
    line-height: 1.12 !important;
  }

  html.vectra-portal-aluno h3 {
    font-size: clamp(17px, 5vw, 22px) !important;
  }

  html.vectra-portal-aluno .row,
  html.vectra-portal-aluno .toolbar,
  html.vectra-portal-aluno .actions,
  html.vectra-portal-aluno .button-row,
  html.vectra-portal-aluno .filters,
  html.vectra-portal-aluno .nav-actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    width: 100% !important;
  }

  html.vectra-portal-aluno .btn,
  html.vectra-portal-aluno button,
  html.vectra-portal-aluno input[type="submit"],
  html.vectra-portal-aluno input[type="button"],
  html.vectra-portal-aluno a.button,
  html.vectra-portal-aluno .action-btn {
    width: 100%;
    min-height: 42px;
    white-space: normal !important;
    text-align: center;
  }

  html.vectra-portal-aluno form {
    width: 100%;
    max-width: 100%;
  }

  html.vectra-portal-aluno input,
  html.vectra-portal-aluno select,
  html.vectra-portal-aluno textarea {
    width: 100% !important;
    min-height: 42px;
    font-size: 16px;
  }

  html.vectra-portal-aluno table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
  }

  html.vectra-portal-aluno th,
  html.vectra-portal-aluno td {
    white-space: nowrap;
  }

  html.vectra-portal-aluno .table,
  html.vectra-portal-aluno .table-responsive,
  html.vectra-portal-aluno .responsive-table {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  html.vectra-portal-aluno .sidebar,
  html.vectra-portal-aluno aside {
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  html.vectra-portal-aluno main,
  html.vectra-portal-aluno .content,
  html.vectra-portal-aluno .main-content,
  html.vectra-portal-aluno .page-content,
  html.vectra-portal-aluno .container,
  html.vectra-portal-aluno .portal-container {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  html.vectra-portal-aluno .card,
  html.vectra-portal-aluno .panel,
  html.vectra-portal-aluno .box,
  html.vectra-portal-aluno .widget {
    padding: 12px !important;
  }

  html.vectra-portal-aluno .hide-mobile,
  html.vectra-portal-aluno .desktop-only {
    display: none !important;
  }

  html.vectra-portal-aluno .mobile-stack > * {
    width: 100% !important;
  }
}
