:root{
  --pape-surface:#ffffff;
  --pape-surface-soft:#f8fafc;
  --pape-border:#e5e7eb;
  --pape-border-strong:#dbe3ee;
  --pape-text:#0f172a;
  --pape-muted:#64748b;
  --pape-primary:#2563eb;
  --pape-primary-soft:rgba(37,99,235,.08);
  --pape-shadow:0 10px 30px rgba(15,23,42,.06);
  --pape-radius:18px;
  --pape-radius-sm:14px;
}
body{
  background:var(--bs-body-bg, #f8fafc);
  color:var(--pape-text);
}
.topbar,
.navbar.bg-white,
.navbar.bg-primary,
body .topbar{
  backdrop-filter:blur(8px);
  box-shadow:0 4px 18px rgba(15,23,42,.04);
}
.page-shell,
main.container.app-shell,
.container.app-shell{
  max-width:1200px;
}
body > .app-shell{
  max-width:none;
}
.card,
.kpiCard,
.hero-card,
.report-card,
.preview-card{
  border:1px solid var(--pape-border) !important;
  border-radius:var(--pape-radius) !important;
  box-shadow:var(--pape-shadow);
  background:var(--bs-body-bg, #fff);
}
.card .card-body,
.report-card,
.preview-card{
  padding:20px;
}
.section-title,
.hero-title,
.student-title,
.page-title{
  color:var(--pape-text);
  font-weight:800;
  letter-spacing:-.02em;
}
.section-sub,
.small-muted,
.info-note,
.text-muted{
  color:var(--pape-muted) !important;
}
.btn{
  border-radius:12px;
  font-weight:600;
}
.btn-lg{
  border-radius:14px;
}
.btn-primary,
.btn-success{
  box-shadow:0 10px 20px rgba(37,99,235,.15);
}
.btn-outline-secondary,
.btn-outline-primary,
.btn-outline-dark,
.btn-outline-danger{
  background:var(--bs-body-bg);
}
.badge,
.badge-soft,
.chip,
.chip-soft{
  border-radius:999px !important;
}
.badge-soft,
.chip-soft{
  background:linear-gradient(180deg,#ffffff,#f8fafc) !important;
  color:#475569 !important;
  border:1px solid var(--pape-border) !important;
}
.kpi,
.kpiCard{
  border:1px solid var(--pape-border) !important;
  border-radius:16px !important;
  background:linear-gradient(180deg,#ffffff,#fbfdff);
}
.kpi .label,.kpiCard .muted2,.student-meta,.edit-hint{
  color:var(--pape-muted) !important;
}
.topbar .navbar-brand,
.navbar-brand{
  font-weight:800;
  letter-spacing:.01em;
}
.table,
.table-bordered,
.tbl{
  --bs-table-bg:transparent;
}
.table td,.table th,.tbl td,.tbl th{
  vertical-align:middle;
}
.form-control,.form-select{
  border-radius:12px;
  border-color:var(--pape-border-strong);
  min-height:44px;
}
.form-control:focus,.form-select:focus{
  border-color:#93c5fd;
  box-shadow:0 0 0 .2rem rgba(37,99,235,.12);
}
.option-box,
.preview-item,
.history-item,
.empty-state{
  border-radius:14px !important;
}
.sidebar,
.sideNav{
  border-right:1px solid var(--pape-border);
}
.nav-pills .nav-link{
  border-radius:999px;
  font-weight:600;
}
.nav-pills .nav-link.active{
  box-shadow:0 8px 18px rgba(37,99,235,.14);
}
.student-hero,
.config-compact,
.shadow-soft{
  box-shadow:var(--pape-shadow) !important;
}
.avatar{
  border-radius:18px !important;
}
.page-header-official{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:16px;
}
.page-header-official .eyebrow{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--pape-muted);
  font-weight:700;
}
.page-header-official .title{
  font-size:1.55rem;
  line-height:1.05;
  margin:0;
  font-weight:800;
}
.page-header-official .sub{
  color:var(--pape-muted);
  margin-top:6px;
}
.panel-note{
  font-size:.88rem;
  color:var(--pape-muted);
}
.table thead th{
  background:linear-gradient(180deg,#f8fafc,#f1f5f9);
}
@media (max-width: 768px){
  .card .card-body,
  .report-card,
  .preview-card{
    padding:16px;
  }
  .page-header-official .title{
    font-size:1.3rem;
  }
}

/* v37.31.1 dashboard stabilization */
.kpiCard,.hero-card,.report-card,.preview-card,.card{background-clip:padding-box;}
.hero-card::before,.hero-card::after,.kpiCard::before,.kpiCard::after,.card::before,.card::after{content:none !important;display:none !important;}
.kpiCard,.hero-card,.report-card,.preview-card{overflow:hidden;}
.searchBox,.kpiCard,.card,.report-card,.preview-card{position:relative;z-index:1;}
.row.g-3 > [class*="col-"]{min-width:0;}
.container.app-shell,.container.page-shell,main.container.app-shell,main.container{overflow-x:clip;}
.page-header-official{position:relative;z-index:2;}
#students .kpiCard{padding:18px !important;}
#students .searchBox{border:1px solid var(--pape-border);border-radius:16px;background:#fff;min-height:54px;box-shadow:var(--pape-shadow);}
#students .searchBox input{border:0 !important;box-shadow:none !important;background:transparent !important;}
#students .btnRound{border-radius:14px;box-shadow:0 10px 22px rgba(22,163,74,.16);}
#students .kpiClickable{cursor:pointer;}


/* v38.1 unified surface */
:root{
  --pape-success:#16a34a;
  --pape-warning:#d97706;
  --pape-danger:#dc2626;
  --pape-info:#0ea5e9;
}
body{
  min-height:100vh;
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.07), transparent 24%),
    linear-gradient(180deg,#f8fafc 0%,#f5f7fb 100%);
}
[data-bs-theme="dark"] body,
html[data-bs-theme="dark"] body{
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.14), transparent 26%),
    linear-gradient(180deg,#0b1220 0%,#0f172a 100%);
}
.topbar,
.navbar.topbar,
nav.topbar{
  position:sticky;
  top:0;
  z-index:1020;
  background:rgba(255,255,255,.88) !important;
  border-bottom:1px solid rgba(148,163,184,.18) !important;
  backdrop-filter:blur(12px);
}
html[data-bs-theme="dark"] .topbar,
html[data-bs-theme="dark"] .navbar.topbar,
html[data-bs-theme="dark"] nav.topbar{
  background:rgba(15,23,42,.84) !important;
}
.page-hero,
.hero-card{
  background:linear-gradient(135deg, rgba(255,255,255,.98), rgba(248,250,252,.96));
}
html[data-bs-theme="dark"] .page-hero,
html[data-bs-theme="dark"] .hero-card{
  background:linear-gradient(135deg, rgba(15,23,42,.94), rgba(30,41,59,.92));
}
.page-hero{
  border:1px solid var(--pape-border) !important;
  border-radius:24px;
  box-shadow:var(--pape-shadow);
  padding:22px;
}
.hero-actions{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
  align-items:center;
}
.filter-card,
.section-card,
.stat-card,
.empty-state,
.soft-panel{
  border:1px solid var(--pape-border);
  border-radius:18px;
  background:var(--bs-body-bg, #fff);
  box-shadow:var(--pape-shadow);
}
.filter-card,.section-card,.soft-panel{padding:18px;}
.stat-grid{
  display:grid;
  gap:12px;
  grid-template-columns:repeat(6,minmax(0,1fr));
}
.stat-card{
  padding:16px;
  position:relative;
  overflow:hidden;
}
.stat-card .label{
  font-size:.84rem;
  color:var(--pape-muted);
  margin-bottom:6px;
}
.stat-card .value{
  font-size:1.55rem;
  font-weight:800;
  line-height:1.05;
}
.stat-card .meta{
  margin-top:8px;
  font-size:.82rem;
  color:var(--pape-muted);
}
.stat-card.primary{background:linear-gradient(180deg,rgba(37,99,235,.10),rgba(255,255,255,.98));}
.stat-card.success{background:linear-gradient(180deg,rgba(22,163,74,.10),rgba(255,255,255,.98));}
.stat-card.warning{background:linear-gradient(180deg,rgba(217,119,6,.10),rgba(255,255,255,.98));}
.stat-card.danger{background:linear-gradient(180deg,rgba(220,38,38,.10),rgba(255,255,255,.98));}
.stat-card.info{background:linear-gradient(180deg,rgba(14,165,233,.10),rgba(255,255,255,.98));}
html[data-bs-theme="dark"] .stat-card.primary{background:linear-gradient(180deg,rgba(37,99,235,.18),rgba(15,23,42,.94));}
html[data-bs-theme="dark"] .stat-card.success{background:linear-gradient(180deg,rgba(22,163,74,.18),rgba(15,23,42,.94));}
html[data-bs-theme="dark"] .stat-card.warning{background:linear-gradient(180deg,rgba(217,119,6,.18),rgba(15,23,42,.94));}
html[data-bs-theme="dark"] .stat-card.danger{background:linear-gradient(180deg,rgba(220,38,38,.18),rgba(15,23,42,.94));}
html[data-bs-theme="dark"] .stat-card.info{background:linear-gradient(180deg,rgba(14,165,233,.18),rgba(15,23,42,.94));}
.progress-compact{
  height:10px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(148,163,184,.18);
}
.section-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.section-title-row .section-title{margin:0;}
.inline-kpis{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.inline-kpis .chip-soft{font-weight:700;}
.table-clean thead th{
  white-space:nowrap;
  font-size:.82rem;
  color:#475569;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.group-card{
  border:1px solid var(--pape-border);
  border-radius:20px;
  overflow:hidden;
  background:var(--bs-body-bg,#fff);
}
.group-card + .group-card{margin-top:14px;}
.group-head{
  padding:16px 18px;
  background:linear-gradient(180deg,#f8fafc,#f1f5f9);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
html[data-bs-theme="dark"] .group-head{background:linear-gradient(180deg,rgba(30,41,59,.9),rgba(15,23,42,.92));}
.group-head h3{font-size:1rem;margin:0;font-weight:800;}
.group-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--pape-muted);font-size:.85rem;}
.group-body{padding:16px 18px;display:grid;gap:12px;}
.check-item{
  border:1px solid var(--pape-border);
  border-radius:16px;
  padding:14px;
  display:grid;
  grid-template-columns:auto 1fr minmax(220px,280px) minmax(180px,240px);
  gap:12px;
  align-items:start;
  background:linear-gradient(180deg,#fff,#fbfdff);
}
html[data-bs-theme="dark"] .check-item{background:linear-gradient(180deg,rgba(15,23,42,.92),rgba(15,23,42,.84));}
.check-item.is-sim{border-color:rgba(22,163,74,.24);box-shadow:0 0 0 1px rgba(22,163,74,.05) inset;}
.check-item.is-parcial{border-color:rgba(217,119,6,.24);box-shadow:0 0 0 1px rgba(217,119,6,.05) inset;}
.check-item.is-nao{border-color:rgba(220,38,38,.22);box-shadow:0 0 0 1px rgba(220,38,38,.05) inset;}
.check-main{min-width:0;}
.check-code{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.check-text{font-weight:600;line-height:1.4;}
.check-sub{font-size:.84rem;color:var(--pape-muted);margin-top:6px;}
.notes-box textarea{min-height:84px;resize:vertical;}
.bulk-bar{
  position:sticky;
  bottom:16px;
  z-index:1000;
  border:1px solid var(--pape-border);
  border-radius:18px;
  padding:12px 14px;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
  box-shadow:0 16px 36px rgba(15,23,42,.14);
}
html[data-bs-theme="dark"] .bulk-bar{background:rgba(15,23,42,.94);}
.status-pill{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  border-radius:999px;
  padding:.35rem .72rem;
  font-size:.78rem;
  font-weight:800;
  border:1px solid transparent;
}
.status-pill::before{content:"";width:8px;height:8px;border-radius:999px;display:inline-block;}
.status-pill.status-nao_avaliado{background:#eef2f7;color:#5b6470;border-color:#dbe3eb;}
.status-pill.status-nao_avaliado::before{background:#94a3b8;}
.status-pill.status-sim{background:#e7f7ee;color:#18794e;border-color:#b9e6c9;}
.status-pill.status-sim::before{background:#16a34a;}
.status-pill.status-parcial{background:#fff5db;color:#946200;border-color:#f5dc9a;}
.status-pill.status-parcial::before{background:#d97706;}
.status-pill.status-nao{background:#fdecec;color:#b42318;border-color:#f4c6c4;}
.status-pill.status-nao::before{background:#dc2626;}
.toggle-group{display:inline-flex;border:1px solid var(--pape-border);border-radius:999px;padding:4px;background:rgba(148,163,184,.08);}
.toggle-group button{border:0;background:transparent;border-radius:999px;padding:.45rem .8rem;font-weight:700;color:#475569;}
.toggle-group button.active{background:#fff;box-shadow:0 6px 16px rgba(15,23,42,.08);color:#0f172a;}
html[data-bs-theme="dark"] .toggle-group button.active{background:rgba(15,23,42,.98);color:#fff;}
.helper-line{font-size:.84rem;color:var(--pape-muted);}
@media (max-width: 1200px){
  .stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .check-item{grid-template-columns:auto 1fr;}
}
@media (max-width: 768px){
  .page-hero{padding:18px;}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .check-item{grid-template-columns:1fr;}
  .bulk-bar{bottom:8px;}
}
@media print{
  .topbar,.hero-actions,.bulk-bar,.no-print{display:none !important;}
  .page-hero,.filter-card,.section-card,.group-card,.stat-card{box-shadow:none !important;}
  body{background:#fff !important;}
}
