﻿:root {
  --primary:#0b2c5f; --primary2:#1d4e89; --accent:#d4af37; --bg:#eef3f9;
  --panel:rgba(255,255,255,.96); --text:#183153; --muted:#5c6f87; --line:#d5dfeb;
  --shadow:0 14px 34px rgba(10,29,60,.14);
}
* { box-sizing:border-box; }
body.sigae-login,
body.sigae-app,
body:has(.shell),
body:has(.page-wrap) {
  margin:0; font-family:Arial,Helvetica,sans-serif; color:var(--text);
  background:linear-gradient(rgba(248,250,252,.92),rgba(238,243,249,.94)),
  url('https://images.unsplash.com/photo-1509062522246-3755977927d7?auto=format&fit=crop&w=1400&q=80') center/cover fixed;
}
.shell {
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
}
.card {
  width:100%; max-width:460px; background:var(--panel); border-radius:20px; box-shadow:var(--shadow); overflow:hidden;
  border:1px solid rgba(213,223,235,.85);
}
.hero {
  background:linear-gradient(145deg,#0e3468 0%,#163d72 48%,#1a4a82 100%); color:#fff; padding:30px 28px 26px; text-align:center;
}
.badge {
  display:inline-block; padding:6px 14px; border-radius:999px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22);
  font-size:11px; letter-spacing:.06em; text-transform:uppercase; margin-bottom:14px; font-weight:600;
}
.hero h1 { margin:0; font-size:32px; letter-spacing:.02em; font-weight:700; }
.hero p { margin:12px 0 0; color:rgba(236,242,251,.92); font-size:15px; }
.content { padding:28px; }
.field { margin-bottom:18px; }
.field label { display:block; margin-bottom:7px; font-weight:bold; }
.field input,.field select,.field textarea {
  width:100%; padding:12px 14px; border-radius:10px; border:1px solid #c8d4e3; font-size:15px; background:#fff;
}
.btn {
  display:inline-block; width:100%; border:none; border-radius:10px; padding:13px 16px; font-size:15px; font-weight:bold;
  color:#fff; background:linear-gradient(135deg,var(--primary),var(--primary2)); cursor:pointer; text-decoration:none; text-align:center;
}
.btn.secondary { background:#e8edf5; color:var(--text); }
.btn.gold { background:#a47148; color:#fff; }
.btn.btn-auto { width:auto; min-width:0; display:inline-block; }
.quick .btn, td .btn, .header-actions .btn { width:auto; min-width:0; display:inline-flex; align-items:center; justify-content:center; }
.error { background:#ffe6e6; color:#a11f1f; padding:12px 14px; border-radius:10px; margin-bottom:18px; border:1px solid #f4bcbc; }
.mini { font-size:13px; color:var(--muted); margin-top:12px; text-align:center; }
.page-wrap {
  min-height:100vh; padding:24px;
  background:linear-gradient(rgba(238,243,249,.95), rgba(238,243,249,.96)),
  url('https://images.unsplash.com/photo-1497633762265-9d179a990aa6?auto=format&fit=crop&w=1400&q=80') center/cover fixed;
}
.topbar {
  max-width:1180px; margin:0 auto 24px; background:#fff; border-radius:18px; box-shadow:var(--shadow);
  padding:18px 22px; display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.brand h2 { margin:0; color:var(--primary); }
.brand p { margin:4px 0 0; color:var(--muted); }
.brand-link { display:block; text-decoration:none; color:inherit; cursor:pointer; border-radius:12px; padding:2px 4px 2px 0; margin:-2px 0 0 -4px; }
.brand-link:hover { background:rgba(11,44,95,.06); }
.brand-link:hover h2 { text-decoration:underline; text-underline-offset:4px; }
.brand .brand-sub { font-size:13px; color:var(--muted); margin:6px 0 0; font-weight:400; }
.brand-escuela { margin:10px 0 0; font-size:14px; font-weight:800; color:var(--primary2); letter-spacing:.01em; line-height:1.35; max-width:520px; }
.topbar-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; justify-content:flex-end; }
.topbar-actions .navbtn { text-decoration:none; background:#f3f6fb; color:var(--text); padding:10px 14px; border-radius:10px; border:1px solid var(--line); font-weight:bold; }
.topbar-actions .navbtn.primary { background:linear-gradient(135deg,var(--primary),var(--primary2)); color:#fff; border-color:transparent; }
.topbar-actions .navbtn.back-nav { background:#fff; border-color:#c8d4e3; color:var(--primary); }
.topbar-actions .navbtn:hover { filter:brightness(.98); }
.logout { text-decoration:none; background:#f3f6fb; color:var(--text); padding:10px 14px; border-radius:10px; border:1px solid var(--line); font-weight:bold; }
.topbar-actions .logout { font-size:12px; padding:8px 10px; font-weight:600; }
.entry-card {
  max-width:760px;
  margin:0 auto;
  background:linear-gradient(180deg,#ffffff,#f7f9fd);
  border:1px solid var(--line);
  border-radius:20px;
  padding:30px 28px;
  box-shadow:0 10px 24px rgba(10,29,60,.08);
}
.welcome-title {
  margin:0;
  font-size:42px;
  letter-spacing:.02em;
  color:var(--primary);
}
.welcome-name {
  margin:10px 0 0;
  font-size:22px;
  font-weight:800;
  color:#0f2746;
}
.welcome-subtitle {
  margin:10px auto 0;
  max-width:640px;
  font-size:14px;
  color:var(--muted);
  line-height:1.55;
}
.welcome-actions { margin-top:22px; display:flex; justify-content:center; }
.welcome-actions .btn { width:auto; min-width:220px; }

.school-select-box { max-width:980px; margin:0 auto; }
.school-head { text-align:center; margin:0 auto 18px; }
.school-head h3 { margin:0; font-size:30px; color:var(--primary); }
.school-head p { margin:10px auto 0; color:var(--muted); max-width:760px; line-height:1.55; }

.school-cards { display:flex; gap:14px; justify-content:center; align-items:stretch; flex-wrap:wrap; }
.school-card {
  flex:1 1 260px;
  max-width:320px;
  background:linear-gradient(180deg,#fff,#f7faff);
  border:1px solid var(--line);
  border-radius:18px;
  padding:18px 18px 16px;
  box-shadow:0 10px 24px rgba(10,29,60,.06);
  text-align:left;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.school-card .sc-icon {
  width:46px; height:46px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--primary),var(--primary2));
  color:#fff;
  font-size:22px;
}
.school-card .sc-title { margin:0; font-size:18px; font-weight:900; color:#0f2746; }
.school-card .sc-desc { margin:0; font-size:13px; color:var(--muted); line-height:1.45; }
.school-card .sc-meta { margin:0; font-size:13px; color:#1f3b63; font-weight:700; }
.school-card .sc-actions { margin-top:auto; display:flex; }
.school-card .sc-actions .btn { width:100%; }
.school-back { margin-top:18px; text-align:center; }
.school-back a { color:var(--primary); font-weight:700; text-decoration:none; font-size:14px; }
.school-back a:hover { text-decoration:underline; }
.panel { max-width:1180px; margin:0 auto; background:rgba(255,255,255,.97); border-radius:22px; box-shadow:var(--shadow); padding:30px; }
.welcome-box { text-align:center; padding:10px; }
.welcome-box h3 { font-size:34px; margin:0 0 8px; color:var(--primary); }
.welcome-box p { margin:8px auto; color:var(--muted); max-width:760px; line-height:1.55; }
.welcome-meta { margin:24px auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; max-width:900px; }
.meta-card { background:#f5f8fc; border:1px solid var(--line); padding:16px; border-radius:14px; text-align:left; }
.meta-card strong { display:block; color:var(--primary); margin-bottom:6px; }
.center-btn { max-width:280px; margin:18px auto 0; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:18px; margin-top:24px; }
.module {
  display:block; text-decoration:none; color:var(--text); background:linear-gradient(180deg,#fff,#f7faff);
  border:1px solid var(--line); border-radius:18px; padding:22px; box-shadow:0 10px 24px rgba(10,29,60,.08);
}
.module .icon {
  width:58px; height:58px; border-radius:14px; background:linear-gradient(135deg,var(--primary),var(--primary2));
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:28px; margin-bottom:14px;
}
.module h4 { margin:0 0 8px; font-size:20px; }
.module p { margin:0; color:var(--muted); font-size:14px; line-height:1.45; }
.notice { margin-top:26px; padding:14px 16px; background:#fff8df; border:1px solid #ecd98b; border-radius:14px; color:#6a5810; }
.selector-box { max-width:650px; margin:0 auto; background:#f9fbfe; border:1px solid var(--line); border-radius:18px; padding:24px; }
.selector-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.table-wrap { overflow:auto; margin-top:24px; border:1px solid var(--line); border-radius:18px; }
table { width:100%; border-collapse:collapse; min-width:920px; background:#fff; }
thead th {
  background:linear-gradient(135deg,var(--primary),var(--primary2)); color:#fff; padding:14px 12px; text-align:left; font-size:14px;
}
tbody td { border-bottom:1px solid #e8eef5; padding:12px; vertical-align:middle; font-size:14px; }
tbody tr:hover { background:#f7faff; }
.avatar {
  width:46px; height:46px; border-radius:50%; background:linear-gradient(135deg,#d6e4f7,#eef4fc);
  color:var(--primary); display:flex; align-items:center; justify-content:center; font-weight:bold; border:1px solid #cbd8e8;
}
.sigae-admin-foto-thumb {
  width:48px; height:48px; object-fit:cover; border-radius:10px; border:1px solid #cbd8e8;
  display:block; vertical-align:middle;
}
.quick a {
  display:inline-block; padding:8px 10px; margin:3px 4px 3px 0; border-radius:8px; text-decoration:none; font-size:12px; font-weight:bold;
}
.a1 { background:#edf4ff; color:#0d4ea3; border:1px solid #c8dcfb; }
.a2 { background:#f5edff; color:#6c2fb3; border:1px solid #deccff; }
.header-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.tag { display:inline-block; padding:7px 10px; background:#eef4fb; color:var(--primary); border-radius:999px; font-size:12px; font-weight:bold; margin-right:8px; }
.back-link { text-decoration:none; color:var(--primary); font-weight:bold; }
.form-card { max-width:860px; margin:0 auto; background:#fbfcff; border:1px solid var(--line); border-radius:18px; padding:24px; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
textarea { min-height:120px; resize:vertical; }
.success { background:#e8fff0; color:#176535; padding:12px 14px; border-radius:10px; border:1px solid #bde6cc; margin-bottom:18px; }
.history { margin-top:24px; }
.history-item { background:#fff; border:1px solid var(--line); border-left:5px solid var(--primary2); border-radius:12px; padding:14px; margin-bottom:12px; }
.history-item strong { color:var(--primary); }
@media (max-width:780px) {
  .selector-grid,.form-grid { grid-template-columns:1fr; }
  .panel { padding:18px; }
  .topbar { flex-direction:column; align-items:flex-start; }
}
.panel.panel-fluid { max-width:100%; }
.grade-grid-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:16px 0; }
.grade-grid-toolbar .btn { width:auto; min-width:140px; }
.grade-grid-scroll {
  overflow-x:auto; overflow-y:auto; max-height:min(70vh, 720px);
  border:1px solid var(--line); border-radius:14px; background:#fff;
  -webkit-overflow-scrolling:touch;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
}
.grade-grid-table {
  min-width:2800px; border-collapse:separate; border-spacing:0; font-size:12px;
  font-family:Segoe UI,Arial,Helvetica,sans-serif;
  table-layout:auto;
}
.grade-grid-table thead th {
  background:#1f4e79; color:#fff; padding:8px 6px; text-align:center; font-weight:700;
  border:1px solid #1a3d5c; position:relative;
}
.grade-grid-table thead th.gg-period {
  background:linear-gradient(180deg,#203a58,var(--primary)); font-size:13px; letter-spacing:.02em;
}
.grade-grid-table thead th.gg-head-programatico { background:#2e75b6!important; border-color:#256bab; }
.grade-grid-table thead th.gg-head-desempeno { background:#548235!important; border-color:#41692a; }
.grade-grid-table thead th.gg-head-estadisticas { background:#c65911!important; border-color:#a74a0e; }
.grade-grid-table thead tr.subheaders th {
  background:#d6dce5; color:#1e293b; font-size:11px; font-weight:600; border:1px solid #b6c0ce;
  vertical-align:bottom;
}
.grade-grid-table thead th.gg-th-act {
  min-width:92px; max-width:120px; padding:6px 4px!important; background:#cfe2f3!important;
}
.header-cell-input {
  width:100%; min-width:76px; max-width:112px; box-sizing:border-box;
  font-size:11px; font-weight:600; padding:8px 6px; border:1px solid #5b7fa3; border-radius:6px;
  background:#fff; color:#1e3a5f; text-align:center;
}
.header-cell-input:focus { outline:2px solid var(--primary2); border-color:var(--primary2); }
.grade-grid-table .gg-td-act {
  min-width:84px; width:92px; max-width:120px;
}
.grade-grid-table .gg-head-prom {
  background:#1f4e79!important; min-width:72px;
}
.gg-prom-cell {
  min-width:72px; text-align:center; vertical-align:middle!important;
  background:#e8f2fc!important; font-weight:800; font-size:13px; color:var(--primary);
  border-left:2px solid var(--primary2)!important;
}
.prom-display { display:block; padding:10px 6px; }
.grade-grid-table tbody td {
  border:1px solid #c7d2e0; padding:0; vertical-align:middle; background:#fff;
}
.grade-grid-table tbody tr:nth-child(even) td { background:#f7fafc; }
.grade-grid-table tbody tr:hover td { background:#eef4ff; }
.grade-grid-table .sticky-name {
  position:sticky; left:0; z-index:3; min-width:200px; max-width:260px; text-align:left!important;
  padding:8px 10px!important; background:#f0f4fa!important; font-weight:600; color:var(--text);
  border-right:2px solid var(--primary2)!important; box-shadow:4px 0 8px rgba(11,44,95,.12);
}
.grade-grid-table thead th.sticky-name {
  z-index:5; background:linear-gradient(135deg,var(--primary),var(--primary2))!important;
  color:#fff!important; border-right:2px solid #fff!important; vertical-align:middle;
}
.cell-input {
  width:100%; min-width:52px; border:0; margin:0; padding:8px 6px; font-size:12px; text-align:center;
  background:transparent; color:var(--text); border-radius:0;
}
.cell-input.cell-act {
  min-width:76px; padding:10px 8px; font-size:13px;
}
.cell-input:focus {
  outline:2px solid var(--primary2); outline-offset:-2px; background:#fff;
}
.grade-hint { font-size:13px; color:var(--muted); margin-top:8px; line-height:1.45; }
.expediente-root { margin-bottom:24px; }
.expediente-app-welcome.expediente-no-print {
  padding:14px 16px !important; border-radius:14px; margin-bottom:12px;
}
.expediente-app-welcome h3 { margin:0 0 4px; font-size:1.1rem; }
.expediente-app-welcome p { margin:0; font-size:13px; color:var(--muted); line-height:1.4; }
.expediente-header-card {
  display:flex; flex-wrap:wrap; gap:16px; align-items:flex-start;
  padding:14px 16px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);
  margin-bottom:10px; box-shadow:0 1px 3px rgba(15,23,42,.06);
}
.expediente-photo-block { flex-shrink:0; }
.expediente-photo-wrap {
  position:relative; width:96px; height:96px; border-radius:50%; padding:3px;
  background:linear-gradient(135deg,#0b2c5f 0%,#3b6cb5 50%,#94a3b8 100%);
  box-shadow:0 4px 14px rgba(11,44,95,.2);
}
.expediente-photo {
  width:100%; height:100%; object-fit:cover; border-radius:50%; border:2px solid #fff;
  display:block; background:#f1f5f9;
}
.expediente-photo-placeholder {
  width:100%; height:100%; border-radius:50%; border:2px solid #fff;
  display:flex; align-items:center; justify-content:center; font-size:1.5rem; font-weight:800;
  color:var(--primary2); background:linear-gradient(145deg,#e8eef7,#f8fafc);
}
.expediente-header-text { flex:1; min-width:180px; }
.expediente-alumno-nombre { margin:0 0 6px; font-size:1.2rem; color:var(--primary); line-height:1.25; }
.expediente-meta-line { margin:2px 0; font-size:13px; color:var(--text); line-height:1.35; }
.expediente-meta-line strong { color:#334155; font-weight:600; }
.expediente-trim-row { margin-top:10px; display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.expediente-trim-label { font-size:12px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.expediente-trim-pills { display:flex; flex-wrap:wrap; gap:6px; }
.expediente-trim-pill {
  display:inline-flex; align-items:center; justify-content:center; min-width:40px; padding:6px 12px;
  font-size:13px; font-weight:700; border-radius:999px; text-decoration:none; border:1px solid #c8d4e3;
  background:#fff; color:#475569;
}
.expediente-trim-pill:hover { border-color:#0b2c5f; color:#0b2c5f; background:#f1f5f9; }
.expediente-trim-pill.is-active {
  background:#0b2c5f; color:#fff; border-color:#0b2c5f;
}
.expediente-stat-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin:12px 0;
}
.expediente-stat-card {
  margin:0; padding:12px 14px; border-radius:12px; border:1px solid var(--line);
  background:#fff; box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.expediente-stat-card strong {
  display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--muted);
}
.expediente-stat-val { font-size:1.45rem; font-weight:800; color:var(--primary); margin-top:6px; line-height:1; }
.expediente-stat-hint { font-size:11px; color:var(--muted); margin-top:6px; line-height:1.35; }
.expediente-bar-track {
  height:8px; border-radius:999px; background:#e2e8f0; overflow:hidden;
  border:1px solid #cbd5e1; margin-top:8px;
}
.expediente-bar-fill {
  height:100%; border-radius:999px; background:linear-gradient(90deg,#b45309,#f59e0b);
  max-width:100%;
}
.expediente-bar-fill.asist {
  background:linear-gradient(90deg,#047857,#10b981);
}
.expediente-badge-faltas {
  font-weight:800; color:#b45309; background:#fff7ed; padding:2px 8px; border-radius:8px; border:1px solid #fed7aa; font-size:12px;
}
.expediente-badge-asist {
  font-weight:800; color:#047857; background:#ecfdf5; padding:2px 8px; border-radius:8px; border:1px solid #a7f3d0; font-size:12px;
}
.expediente-kpi-row.expediente-no-print {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:8px; margin:10px 0 0;
}
.expediente-kpi-row .meta-card { margin:0; padding:10px 12px; font-size:13px; border-radius:10px; }
.expediente-kpi-row .meta-card strong { font-size:11px; }
.expediente-medical.expediente-section {
  margin-top:14px; padding:14px 16px; border-radius:12px; border:1px solid #e2e8f0; background:#fafbfc;
}
.expediente-medical h4 { margin:0 0 6px; font-size:0.95rem; }
.expediente-medical .grade-hint { margin-top:0; margin-bottom:10px; font-size:12px; }
.expediente-medical textarea.field { min-height:88px !important; font-size:14px; }
.expediente-hist-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:10px; margin-top:10px;
}
.expediente-hist-card {
  border:1px solid var(--line); border-radius:12px; padding:12px 14px; background:#fff;
  display:flex; flex-direction:column; gap:8px; min-height:0;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.expediente-hist-top { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:8px; }
.expediente-hist-date { font-size:12px; font-weight:700; color:#64748b; }
.expediente-hist-folio { font-size:11px; color:var(--muted); }
.expediente-hist-chips { display:flex; flex-wrap:wrap; gap:4px; }
.expediente-chip {
  font-size:11px; font-weight:600; padding:3px 8px; border-radius:999px; background:#f1f5f9; color:#475569; border:1px solid #e2e8f0;
  max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.expediente-chip.accent { background:#eff6ff; color:#1e40af; border-color:#bfdbfe; }
.expediente-hist-snippet {
  font-size:13px; color:#334155; line-height:1.4; margin:0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}
.expediente-hist-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; padding-top:4px; }
.expediente-hist-actions .btn { padding:8px 12px; font-size:12px; border-radius:10px; width:auto; }
.expediente-hist-actions a.btn { text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
.expediente-hist-detail-src { display:none !important; }
.expediente-modal-overlay {
  display:none; position:fixed; inset:0; z-index:100050; background:rgba(15,23,42,.55);
  align-items:center; justify-content:center; padding:16px; box-sizing:border-box;
}
.expediente-modal-overlay.is-open { display:flex; }
.expediente-modal-box {
  background:#fff; border-radius:16px; max-width:520px; width:100%; max-height:min(88vh,640px); overflow:auto;
  box-shadow:0 24px 48px rgba(0,0,0,.2); position:relative;
}
.expediente-modal-head {
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:14px 16px; border-bottom:1px solid #e2e8f0; position:sticky; top:0; background:#fff; z-index:1;
}
.expediente-modal-head h4 { margin:0; font-size:1rem; color:#0b2c5f; }
.expediente-modal-close {
  border:none; background:#f1f5f9; width:36px; height:36px; border-radius:10px; cursor:pointer; font-size:1.2rem; line-height:1; color:#64748b;
}
.expediente-modal-close:hover { background:#e2e8f0; color:#0f172a; }
button.expediente-modal-close.btn.secondary {
  width:36px; min-width:36px; height:36px; padding:0; line-height:1; display:inline-flex; align-items:center; justify-content:center;
}
.expediente-modal-body { padding:16px; font-size:14px; color:#334155; line-height:1.45; }
.expediente-modal-body dt { font-weight:700; color:#64748b; font-size:12px; margin-top:10px; }
.expediente-modal-body dt:first-child { margin-top:0; }
.expediente-modal-body dd { margin:4px 0 0; }
.expediente-print-only { display:none !important; }
@media (max-width:780px) {
  .grade-grid-table .sticky-name { min-width:160px; max-width:200px; font-size:11px; }
  .cell-input { min-width:44px; padding:7px 4px; font-size:11px; }
}
@media print {
  @page { size: letter; margin: 12mm; }
  body.expediente-print-mode {
    background:#fff !important;
  }
  body.expediente-print-mode .page-wrap {
    background:#fff !important; padding:0 !important;
  }
  body.expediente-print-mode .topbar,
  body.expediente-print-mode .expediente-no-print {
    display:none !important;
  }
  body.expediente-print-mode .expediente-print-only {
    display:block !important;
  }
  body.expediente-print-mode .expediente-print-logo-wrap {
    text-align:center; margin-bottom:10px;
  }
  body.expediente-print-mode .expediente-print-logo {
    max-height:64px; max-width:220px; object-fit:contain;
  }
  body.expediente-print-mode .expediente-print-title {
    font-size:18px; margin:0 0 4px; text-align:center; color:#0b2c5f;
  }
  body.expediente-print-mode .expediente-print-sub {
    text-align:center; font-size:12px; color:#475569; margin:0 0 12px;
  }
  body.expediente-print-mode .expediente-print-sheet {
    border:none !important; box-shadow:none !important;
  }
  body.expediente-print-mode .expediente-header-card {
    break-inside:avoid; border:1px solid #94a3b8 !important;
  }
  body.expediente-print-mode .expediente-section {
    break-inside:avoid;
  }
}

/* Listados alumnos/reportes: clase grade-grid-table sin forzar ancho de malla de calificaciones */
.table-wrap table.grade-grid-table {
  min-width:920px;
  width:100%;
  border-collapse:collapse;
  font-size:14px;
  font-family:Arial,Helvetica,sans-serif;
  table-layout:auto;
}
.table-wrap table.grade-grid-table thead th {
  position:static;
  background:linear-gradient(135deg,var(--primary),var(--primary2));
  color:#fff;
  padding:14px 12px;
  text-align:left;
  font-size:14px;
  border:1px solid rgba(255,255,255,.2);
}
.table-wrap table.grade-grid-table tbody td {
  border-bottom:1px solid #e8eef5;
  padding:12px;
  vertical-align:middle;
  font-size:14px;
  background:#fff;
}
.table-wrap table.grade-grid-table tbody tr:hover td {
  background:#f7faff;
}
