/* Estrutura da aplicação escolar. Não altera a identidade nem os formulários. */
.workspace {
  --sidebar-width: 260px;
  display: grid;
  grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
}
.workspace .sidebar {
  position: relative;
  inset: auto;
  width: auto;
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  padding: 0;
  overflow: hidden;
  background: var(--surface, #fff);
}
.sidebar-brand {
  position: relative;
  padding: 24px 22px 20px;
  border-bottom: 1px solid var(--border);
}
.sidebar .sidebar-brand .brand-line {
  display: flex;
  justify-content: center;
  min-width: 0;
  padding: 0;
  margin: 0;
  line-height: 1.3;
}
.sidebar-brand .sidebar-logo {
  width: 100%;
  max-width: 184px;
  height: clamp(90px, 18vh, 164px);
  height: clamp(90px, 18dvh, 164px);
  object-fit: contain;
}
.sidebar-brand .institution-name { font-size: 19px; text-align: center; }
.sidebar-close { display: none; }
.sidebar-scroll {
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 16px 12px 12px;
  scroll-padding-block: 12px;
}
.sidebar .sidebar-label {
  margin: 8px 12px 10px;
  padding: 0;
  font-size: 10px;
  letter-spacing: 1.3px;
  font-weight: 700;
  color: var(--muted);
}
.sidebar nav { gap: 4px; margin-bottom: 22px; }
.sidebar nav a, .sidebar .nav-group-toggle {
  min-height: 44px;
  padding: 11px 12px;
  gap: 12px;
  border-radius: 9px;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 550;
  color: var(--ink);
  text-align: left;
  overflow-wrap: anywhere;
  transition: background-color .15s, color .15s;
}
.sidebar .nav-group-toggle { font-weight: 650; margin: 0; }
.sidebar .nav-group { margin: 0; }
.sidebar nav a:hover, .sidebar .nav-group-toggle:hover { background: var(--background); }
.sidebar .nav-group.selected > .nav-group-toggle { color: var(--primary); background: transparent; }
.sidebar nav a.active {
  background: var(--teal-soft);
  background: color-mix(in srgb, var(--primary) 9%, var(--surface, #fff));
  color: var(--ink);
  font-weight: 700;
}
.sidebar nav a.active::after { display: none; }
.sidebar nav a.active::before {
  content: '';
  position: absolute;
  inset: 10px auto 10px 0;
  width: 3px;
  border-radius: 3px;
  background: var(--primary);
}
.sidebar .nav-group-items {
  margin: 5px 0 9px 22px;
  padding-left: 8px;
  border-left: 1px solid var(--border);
}
.sidebar .nav-group-items a { font-size: 12px; padding: 10px; gap: 10px; }
.ui-icon, .nav-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  vertical-align: middle;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.sidebar .nav-icon { color: var(--muted); }
.sidebar a.active .nav-icon, .nav-group.selected > .nav-group-toggle .nav-icon { color: var(--primary); }
.sidebar .nav-group-items .nav-icon { width: 17px; height: 17px; flex-basis: 17px; }
.nav-chevron { width: 16px; height: 16px; flex-basis: 16px; margin-left: auto; transition: transform .15s; }
.nav-chevron.expanded { transform: rotate(90deg); }
.sidebar .sidebar-footer { margin: 0; padding: 14px 22px; font-size: 12px; border-top: 1px solid var(--border); }
.sidebar .sidebar-footer > span { color: var(--ink); font-weight: 600; }
.sidebar .sidebar-footer small { margin: 3px 0 0; font-size: 10px; }
.workspace .main-column {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  min-width: 0;
  margin: 0;
  width: auto;
  overflow: hidden;
}
.workspace .topbar {
  position: relative;
  top: auto;
  flex: 0 0 auto;
  height: auto;
  min-height: 80px;
  padding: 14px 32px;
  background: var(--surface, #fff);
}
.topbar .icon-button, .topbar .user-avatar { width: 44px; height: 44px; flex-shrink: 0; }
.topbar .icon-button { color: var(--muted); border-radius: 10px; }
.topbar .icon-button:hover { color: var(--ink); background: var(--background); }
.topbar .school-switch { flex: 1 1 auto; min-width: 0; }
.topbar .school-switch select { width: 100%; max-width: 380px; min-width: 0; min-height: 28px; color: var(--ink); }
.topbar .topbar-actions { flex: 0 0 auto; }
.topbar .user-caption strong { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workspace .main-content {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 30px 32px 22px;
  overflow: auto;
  overscroll-behavior: contain;
  scroll-padding-block: 24px;
}
/* Quase imperceptível em repouso, identificável com mouse/teclado.
   A área segue rolável por roda, toque, teclado e arraste do indicador. */
.sidebar-scroll, .main-content, .modal-body, .form-section-nav {
  scrollbar-width: thin;
  scrollbar-color: #c5cdd54d transparent;
}
:is(.sidebar-scroll, .main-content, .modal-body, .form-section-nav):is(:hover, :focus-within) {
  scrollbar-color: #8998a5b3 transparent;
}
:is(.sidebar-scroll, .main-content, .modal-body, .form-section-nav)::-webkit-scrollbar { width: 6px; height: 6px; }
:is(.sidebar-scroll, .main-content, .modal-body, .form-section-nav)::-webkit-scrollbar-track { background: transparent; }
:is(.sidebar-scroll, .main-content, .modal-body, .form-section-nav)::-webkit-scrollbar-thumb { background: #c5cdd54d; border-radius: 8px; }
:is(.sidebar-scroll, .main-content, .modal-body, .form-section-nav):is(:hover, :focus-within)::-webkit-scrollbar-thumb { background: #8998a5b3; }
.sidebar-scroll:focus-visible { outline: 2px solid var(--primary); outline-offset: -3px; }
.main-content:focus { outline: none; }
.main-content:focus-visible { outline: 2px solid var(--primary); outline-offset: -3px; }
.skip-content { position: fixed; top: -100px; left: 12px; z-index: 120; padding: 12px 18px; border: 2px solid var(--primary); background: var(--surface, #fff); border-radius: 8px; }
.skip-content:focus { top: 12px; }
@media (max-width: 1150px) and (min-width: 801px) {
  .workspace { --sidebar-width: 240px; }
  .workspace .main-content { padding: 24px; }
  .workspace .topbar { padding-inline: 24px; }
}
@media (max-width: 800px) {
  .workspace { grid-template-columns: minmax(0, 1fr); }
  .workspace .sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: min(290px, calc(100vw - 44px));
    height: 100vh;
    height: 100dvh;
    z-index: 50;
    transform: translateX(-105%);
    visibility: hidden;
    pointer-events: none;
    transition: transform .2s;
  }
  .workspace .sidebar.visible { transform: translateX(0); visibility: visible; pointer-events: auto; }
  .workspace .sidebar-shade { z-index: 49; }
  .sidebar-brand { padding: 16px 22px; }
  .sidebar-brand .brand-line { padding-inline: 22px; }
  .sidebar-brand .sidebar-logo { height: clamp(64px, 14dvh, 110px); }
  .sidebar-close { display: grid; position: absolute; right: 8px; top: 8px; width: 44px; height: 44px; z-index: 1; }
  .sidebar .sidebar-footer { padding: 10px 22px max(10px, env(safe-area-inset-bottom)); }
  .workspace .topbar { min-height: 72px; padding: 10px 12px; gap: 8px; }
  .topbar .school-switch select { max-width: 100%; font-size: 13px; }
  .topbar .topbar-actions { gap: 4px; }
  .workspace .main-content { padding: 22px 18px max(18px, env(safe-area-inset-bottom)); }
}
@media (max-height: 560px) {
  .sidebar-brand { padding-block: 10px; }
  .sidebar-brand .sidebar-logo { height: 60px; }
  .sidebar .sidebar-footer { padding-block: 8px; }
  .workspace .topbar { min-height: 64px; padding-block: 8px; }
}
@media (forced-colors: active) {
  .sidebar-scroll, .main-content, .modal-body, .form-section-nav { scrollbar-color: auto; scrollbar-width: auto; }
  .sidebar nav a.active { outline: 1px solid Highlight; }
  .nav-icon { color: LinkText; }
}
@media (prefers-reduced-motion: reduce) { .workspace *, .workspace .sidebar { transition: none; scroll-behavior: auto; } }

.diagnostic-pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:65ch;max-height:24rem;overflow:auto;font-size:.8rem}.table-wrap td small{display:block}
