/* SAVELIA Académico v1 · interfaz de planillas y boletines. */

.module-kicker { display:block; margin-bottom:5px; color:var(--color-cta); font-family:var(--font-mono); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.build-badge { width:fit-content; margin:-4px auto 10px; padding:3px 8px; border-radius:999px; background:var(--color-paper-alt); color:var(--color-cta); font-family:var(--font-mono); font-size:.64rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.build-version { margin-top:5px; color:#e7b5a6 !important; font-family:var(--font-mono); font-weight:700 !important; letter-spacing:.04em; }
.login-institution { display:grid; gap:2px; margin:12px 0 10px; padding:10px 12px; border-left:3px solid var(--color-accent); background:var(--color-paper-alt); color:var(--color-primary-dark); font-size:.86rem; font-weight:700; }
.login-institution small { color:var(--color-ink-soft); font-weight:500; }
.academic-login-shell { background:radial-gradient(circle at 85% 15%, rgba(217,108,74,.11), transparent 32%), var(--color-paper); }
.main-wide { max-width:1600px; }
.main-gradebook { max-width:none; overflow:hidden; }

.academic-alert { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; margin-bottom:18px; padding:14px 16px; border:1px solid #e8c3b7; border-left:5px solid var(--color-accent); border-radius:var(--radius-md); background:#fff8f5; color:var(--color-ink); }
.academic-alert strong { color:var(--color-cta); }
.academic-stat-text { font-size:1.05rem !important; }
.academic-home-grid,.academic-two-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.academic-panel { padding:20px; border:1px solid var(--color-line); border-radius:var(--radius-lg); background:var(--color-card); box-shadow:var(--shadow-card); }
.academic-panel + .academic-panel { margin-top:18px; }
.academic-two-column .academic-panel + .academic-panel { margin-top:0; }
.academic-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:16px; }
.academic-panel-heading h2 { margin:0 0 4px; font-size:1.25rem; }
.academic-panel-heading p { margin:0; color:var(--color-ink-soft); font-size:.84rem; }
.academic-list { display:grid; gap:9px; }
.academic-list-item { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; border:1px solid var(--color-line); border-radius:var(--radius-md); background:var(--color-paper-alt); }
.academic-list-item > div:first-child { display:grid; gap:3px; }
.academic-list-item strong { color:var(--color-primary-dark); }
.academic-list-item small { color:var(--color-ink-soft); }
.academic-list-actions { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.academic-loading { padding:24px; color:var(--color-ink-soft); text-align:center; }
.academic-status { display:inline-flex; align-items:center; padding:4px 9px; border-radius:999px; background:#e8efed; color:var(--color-primary-dark); font-size:.72rem; font-weight:700; }
.academic-status-open { background:#dfeee6; color:#2e654c; }
.academic-status-closed,.academic-status-published { background:#f5e8e3; color:#874735; }
.academic-status-draft { background:#eceff0; color:#5f6a68; }

.academic-tabs { display:flex; gap:6px; margin-bottom:16px; padding:5px; overflow-x:auto; border:1px solid var(--color-line); border-radius:var(--radius-md); background:var(--color-paper-alt); }
.academic-tabs button { min-width:max-content; padding:9px 14px; border:0; border-radius:var(--radius-sm); background:transparent; color:var(--color-ink-soft); font:inherit; font-size:.82rem; font-weight:700; cursor:pointer; }
.academic-tabs button.is-active { background:var(--color-primary); color:#fff; }
.academic-tab-panel[hidden] { display:none; }
.academic-form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 14px; }
.academic-field-wide { grid-column:span 2; }
.academic-form-actions { display:flex; align-items:flex-end; justify-content:flex-end; grid-column:1 / -1; }
.academic-check { display:flex; align-items:center; gap:9px; min-height:44px; color:var(--color-ink); font-size:.86rem; font-weight:600; }
.academic-check input { width:18px; height:18px; accent-color:var(--color-primary); }
.academic-level-table input { min-width:100px; margin:0; padding:8px 9px; }
.academic-level-table .level-label-input { min-width:170px; }
.academic-weight-summary { width:fit-content; margin:0 0 14px auto; padding:6px 10px; border-radius:999px; background:var(--color-paper-alt); color:var(--color-primary-dark); font-family:var(--font-mono); font-size:.76rem; font-weight:700; }
.academic-weight-summary.is-invalid { background:var(--color-alert-bg); color:var(--color-alert); }

.academic-gradebook-filters { align-items:center; }
.academic-gradebook-filters select:first-child { flex:1 1 380px; }
.academic-period-state { padding:7px 11px; border-radius:999px; background:var(--color-paper-alt); color:var(--color-ink-soft); font-size:.78rem; font-weight:700; }
.academic-weight-bar { display:flex; flex-wrap:wrap; gap:7px; margin:12px 0; }
.academic-weight-pill { padding:5px 9px; border:1px solid var(--color-line); border-radius:999px; background:#fff; color:var(--color-primary-dark); font-size:.74rem; font-weight:700; }
.academic-weight-pill.is-invalid { border-color:#d8a899; background:#fff4f0; color:var(--color-alert); }
.academic-gradebook-empty { display:grid; place-items:center; min-height:280px; padding:36px; border:1px dashed #b9cac5; border-radius:var(--radius-lg); background:rgba(255,255,255,.6); text-align:center; }
.academic-gradebook-empty h2 { margin-bottom:5px; }
.academic-gradebook-empty p { max-width:650px; color:var(--color-ink-soft); }
.academic-gradebook-wrap { max-width:100%; overflow:auto; border:1px solid var(--color-line); border-radius:var(--radius-md); background:#fff; box-shadow:var(--shadow-card); }
.academic-gradebook-table { width:max-content; min-width:100%; border-collapse:separate; border-spacing:0; }
.academic-gradebook-table th,.academic-gradebook-table td { min-width:112px; padding:9px; border-right:1px solid var(--color-line); border-bottom:1px solid var(--color-line); background:#fff; text-align:center; font-size:.8rem; }
.academic-gradebook-table thead th { position:sticky; top:0; z-index:3; background:var(--color-primary); color:#fff; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.03em; }
.academic-gradebook-table .student-column { position:sticky; left:0; z-index:2; min-width:245px; max-width:245px; background:#f8faf9; text-align:left; }
.academic-gradebook-table thead .student-column { z-index:4; background:var(--color-primary-dark); }
.academic-gradebook-table .student-column strong { display:block; color:var(--color-primary-dark); }
.academic-gradebook-table thead .student-column strong { color:#fff; }
.academic-gradebook-table .student-column small { color:var(--color-ink-soft); }
.academic-gradebook-table .final-column { position:sticky; right:0; z-index:2; min-width:105px; background:#f1f6f4; font-weight:700; }
.academic-gradebook-table thead .final-column { z-index:4; background:var(--color-cta); }
.academic-score-input { width:78px; padding:7px 5px !important; text-align:center; }
.academic-score-input:invalid { border-color:var(--color-alert); background:#fff4f0; }
.academic-score-missing { color:var(--color-ink-soft); }
.academic-descriptor-button { margin-top:5px; padding:3px 7px; border:0; border-radius:5px; background:#e6efec; color:var(--color-primary-dark); font-size:.68rem; font-weight:700; cursor:pointer; }

.academic-report-filters select:first-child { min-width:210px; }
.academic-report-list { display:grid; gap:9px; }
.academic-report-student { display:grid; grid-template-columns:minmax(240px,1fr) minmax(150px,.4fr) auto; align-items:center; gap:14px; padding:14px 16px; border:1px solid var(--color-line); border-radius:var(--radius-md); background:#fff; box-shadow:var(--shadow-card); }
.academic-report-student strong { display:block; color:var(--color-primary-dark); }
.academic-report-student small { color:var(--color-ink-soft); }
.academic-pagination { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:16px; color:var(--color-ink-soft); font-size:.78rem; font-weight:700; }
.academic-bulletin-actions { position:fixed; right:24px; bottom:22px; z-index:50; display:flex; gap:8px; padding:10px; border:1px solid var(--color-line); border-radius:var(--radius-md); background:#fff; box-shadow:var(--shadow-card-hover); }
.academic-bulletin { max-width:1000px; margin:0 auto; padding:30px; border:1px solid var(--color-line); border-radius:var(--radius-md); background:#fff; box-shadow:var(--shadow-card); }
.academic-bulletin[hidden] { display:none; }
.academic-bulletin-header { display:grid; grid-template-columns:150px 1fr auto; align-items:center; gap:18px; padding-bottom:18px; border-bottom:3px solid var(--color-primary); }
.academic-bulletin-header img { width:145px; max-height:85px; object-fit:contain; }
.academic-bulletin-header h1 { margin:0 0 4px; font-size:1.35rem; text-align:center; }
.academic-bulletin-header p { margin:2px 0; color:var(--color-ink-soft); font-size:.8rem; text-align:center; }
.academic-bulletin-period { padding:8px 12px; border-radius:var(--radius-md); background:var(--color-primary); color:#fff; font-weight:700; text-align:center; }
.academic-bulletin-student { display:grid; grid-template-columns:2fr repeat(3,1fr); gap:10px; margin:18px 0; padding:12px; background:var(--color-paper-alt); border-radius:var(--radius-md); }
.academic-bulletin-field { display:grid; gap:2px; }
.academic-bulletin-field span { color:var(--color-ink-soft); font-size:.68rem; text-transform:uppercase; }
.academic-bulletin-field strong { font-size:.86rem; }
.academic-bulletin-table { width:100%; border-collapse:collapse; }
.academic-bulletin-table th,.academic-bulletin-table td { padding:9px 8px; border:1px solid var(--color-line); vertical-align:top; font-size:.76rem; }
.academic-bulletin-table th { background:var(--color-primary); color:#fff; text-transform:uppercase; font-size:.66rem; }
.academic-bulletin-table .area-row td { background:#eaf0ee; color:var(--color-primary-dark); font-weight:700; }
.academic-bulletin-score { text-align:center; font-family:var(--font-display); font-size:1rem !important; font-weight:700; }
.academic-bulletin-narrative { display:grid; gap:4px; margin-top:4px; color:var(--color-ink-soft); font-size:.7rem; }
.academic-bulletin-footer { margin-top:20px; padding-top:12px; border-top:1px solid var(--color-line); color:var(--color-ink-soft); font-size:.7rem; text-align:center; }

.modal-overlay { z-index:100; }
.modal-overlay .modal { max-height:92vh; overflow:auto; }
.modal-overlay [data-close] { cursor:pointer; }
.academic-toast { min-width:260px; max-width:430px; padding:12px 15px; border-radius:var(--radius-md); background:var(--color-primary); color:#fff; box-shadow:var(--shadow-card-hover); font-size:.84rem; }
.academic-toast-error { background:var(--color-alert); }
.academic-toast-success { background:var(--color-secondary); }
#toast-container { position:fixed; right:18px; bottom:18px; z-index:999; display:grid; gap:8px; }

@media (max-width:1050px) {
  .academic-home-grid,.academic-two-column { grid-template-columns:1fr; }
  .academic-two-column .academic-panel + .academic-panel { margin-top:18px; }
  .academic-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .academic-bulletin-header { grid-template-columns:120px 1fr; }
  .academic-bulletin-period { grid-column:1 / -1; }
}

@media (max-width:700px) {
  .academic-alert { grid-template-columns:1fr; }
  .academic-form-grid { grid-template-columns:1fr; }
  .academic-field-wide { grid-column:auto; }
  .academic-panel { padding:15px; }
  .academic-panel-heading,.academic-list-item { align-items:stretch; flex-direction:column; }
  .academic-report-student { grid-template-columns:1fr; }
  .academic-bulletin-actions { right:10px; bottom:10px; left:10px; overflow-x:auto; }
  .academic-bulletin { padding:14px; }
  .academic-bulletin-header { grid-template-columns:1fr; }
  .academic-bulletin-header img { margin:auto; }
  .academic-bulletin-student { grid-template-columns:1fr 1fr; }
}

@media print {
  @page { size:A4 portrait; margin:10mm; }
  body { background:#fff !important; }
  .no-print,.academic-bulletin-actions,#toast-container { display:none !important; }
  .app-shell { display:block; }
  .main { margin:0 !important; padding:0 !important; max-width:none; }
  .academic-bulletin { max-width:none; padding:0; border:0; box-shadow:none; }
  .academic-bulletin-table tr { break-inside:avoid; }
}
