:root{
  --pape-blue:#2563EB;
  --pape-green:#16A34A;
  --pape-bg:#F8FAFC;
  --pape-muted:#6B7280;
}
body{ background: var(--pape-bg); }
.navbar-brand{ font-weight:700; letter-spacing:.2px; }
.badge-soft{ background:#E5E7EB; color:#111827; border:1px solid #D1D5DB; }
.card{ border:1px solid #E5E7EB; border-radius:16px; }
.card.shadow-soft{ box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.section-title{ font-weight:700; }
.btn-icon{ display:inline-flex; gap:.5rem; align-items:center; }
.small-muted{ color: var(--pape-muted); font-size:.9rem; }
.hr-soft{ border-top:1px solid #E5E7EB; opacity:1; }
textarea{ resize: vertical; }
.table td, .table th{ vertical-align: middle; }
.kbd-like{ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size:.85rem; }
#studentPhoto{ background:#fff; }

/* Barra flutuante (ações em lote) */
.bulk-bar{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 16px;
  z-index: 1056;
  pointer-events: none;
  padding: 0 12px;
}

/* Simple calendar */
.calendar-grid{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap:4px; /* compacto */
}
.cal-cell{
  border:1px solid rgba(0,0,0,.08);
  border-radius:8px;
  padding:5px 4px;
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 0.8rem;
  cursor:pointer;
  user-select:none;
}
.cal-cell.muted{ opacity:.35; cursor:default; }
.cal-cell.active{ outline:2px solid rgba(13,110,253,.35); }
.cal-cell.has-plan{ background: rgba(25,135,84,.10); border-color: rgba(25,135,84,.25); }
.cal-cell.has-plan.sent{ background: rgba(13,110,253,.10); border-color: rgba(13,110,253,.25); }
.cal-cell.has-plan.reviewed{ background: rgba(13,202,240,.12); border-color: rgba(13,202,240,.25); }
.cal-cell.has-plan.finalized{ background: rgba(25,135,84,.14); border-color: rgba(25,135,84,.35); }
.bulk-bar-inner{
  max-width: 980px;
  margin: 0 auto;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 16px 40px rgba(0,0,0,.16);
  border-radius: 16px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  pointer-events: auto;
}
body{ padding-bottom: 90px; } /* espaço para a barra */


/* UX: skeleton loading */
.skeleton{position:relative; overflow:hidden; background:#E5E7EB; border-radius:10px;}
.skeleton::after{content:''; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg, transparent, rgba(255,255,255,.65), transparent); animation:skeleton 1.1s infinite;}
@keyframes skeleton{100%{transform:translateX(100%);}}

/* UX: empty states */
.empty-state{border:1px dashed #D1D5DB; border-radius:14px; padding:18px; background:#fff;}
.empty-state .empty-emoji{font-size:28px; line-height:1;}
.file-chip{background:#EEF2FF; color:#1E3A8A; border:1px solid #E0E7FF;}
mark{padding:0 .2rem; border-radius:.35rem;}



/* Premium PEI: botão destacado quando habilidade já foi aplicada no componente */
.btn-pei-pick.pei-picked::before{
  content: "✓ ";
  font-weight: 700;
}

/* === Premium Planning UI (v36.7) === */

/* Planning sections (used in plan.html modules) */
.plane-section{
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 16px;
  padding: 18px;
}
.plane-section + .plane-section{ margin-top: 14px; }
.plane-section h6{
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 10px;
}

/* Tabs (plan pills) */
#planTabs.nav{
  gap: 8px;
}
#planTabs .nav-link{
  border-radius: 999px;
  padding: 8px 12px;
  border: 1px solid var(--bs-border-color);
  background: var(--bs-tertiary-bg);
  color: var(--bs-body-color);
  font-weight: 500;
}
#planTabs .nav-link:hover{
  filter: brightness(0.98);
}
#planTabs .nav-link.active{
  background: color-mix(in srgb, var(--bs-primary) 14%, var(--bs-tertiary-bg));
  border-color: color-mix(in srgb, var(--bs-primary) 35%, var(--bs-border-color));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--bs-primary) 20%, transparent) inset;
}

/* Component/Activity cards */
.component-card{ border-radius: 16px; }
.activity-card{
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 14px;
}
.activity-card label{ font-weight: 500; font-size: 13px; }

/* Planning topbar chips */
.chip{
  border-color: var(--bs-border-color) !important;
  background: var(--bs-body-bg) !important;
  color: var(--bs-body-color) !important;
}

/* Calendar + empty states should respect theme */
.cal-cell{ border-color: var(--bs-border-color) !important; }
.cal-cell.has-plan{ background: color-mix(in srgb, var(--bs-success) 14%, transparent) !important; border-color: color-mix(in srgb, var(--bs-success) 35%, var(--bs-border-color)) !important; }
.cal-cell.has-plan.sent{ background: color-mix(in srgb, var(--bs-primary) 14%, transparent) !important; border-color: color-mix(in srgb, var(--bs-primary) 35%, var(--bs-border-color)) !important; }
.cal-cell.has-plan.reviewed{ background: color-mix(in srgb, var(--bs-info) 16%, transparent) !important; border-color: color-mix(in srgb, var(--bs-info) 35%, var(--bs-border-color)) !important; }
.cal-cell.has-plan.finalized{ background: color-mix(in srgb, var(--bs-success) 18%, transparent) !important; border-color: color-mix(in srgb, var(--bs-success) 40%, var(--bs-border-color)) !important; }
.bulk-bar-inner{ background: var(--bs-body-bg) !important; border-color: var(--bs-border-color) !important; }
.empty-state{ background: var(--bs-body-bg) !important; border-color: var(--bs-border-color) !important; }

/* Dark-mode table refinements */
[data-bs-theme="dark"] .table-light{
  --bs-table-bg: #1f2937;
  --bs-table-color: #e5e7eb;
}
[data-bs-theme="dark"] .table{ --bs-table-border-color: rgba(255,255,255,.10); }
[data-bs-theme="dark"] .table tbody tr:hover{ background: rgba(255,255,255,.03); }


/* Theme-friendly surfaces */
.topbar-theme{ background: var(--bs-body-bg); border-bottom: 1px solid var(--bs-border-color); }
.card-theme{ background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); }
