:root {
  color-scheme: light;
  --ink: #162426;
  --muted: #5d6d70;
  --line: #d6dedb;
  --panel: #ffffff;
  --soft: #eef5f3;
  --brand: #176b73;
  --brand-dark: #104e55;
  --accent: #c76428;
  --danger: #b74438;
  --shadow: 0 18px 42px rgba(20, 39, 42, 0.12);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { width: 100%; overflow-x: hidden; }
body {
  margin: 0;
  width: 100%;
  overflow-x: hidden;
  background: #f4f7f5;
  color: var(--ink);
  font-family: Segoe UI, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  letter-spacing: 0;
}
a { color: inherit; }
.login-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: linear-gradient(120deg, #f5f7f5 0%, #e9f1ef 55%, #f7efe7 100%);
}
.login-panel {
  width: min(480px, 100%);
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
  padding: 28px;
}
.login-logo-link {
  display: flex;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 18px;
  text-decoration: none;
}
.login-logo {
  display: block;
  width: auto;
  max-width: min(220px, 100%);
  height: 72px;
  object-fit: contain;
}
.login-panel h1, .topbar h1 { margin: 0; font-size: 28px; line-height: 1.15; }
.muted { color: var(--muted); margin: 10px 0 22px; }
.web-control-details { display: grid; gap: 10px; margin: 0; }
.web-control-details div { display: grid; grid-template-columns: minmax(150px, 220px) minmax(0, 1fr); gap: 16px; align-items: start; }
.web-control-details dt { color: var(--muted); font-weight: 700; }
.web-control-details dd { margin: 0; overflow-wrap: anywhere; }
.web-control-summary-table .table-wrap { overflow-x: hidden; }
.web-control-summary-table table { min-width: 0; table-layout: fixed; }
.activity-requests-table .table-wrap { overflow-x: visible; }
.activity-requests-table table { min-width: 0; table-layout: fixed; }
.activity-requests-table th:nth-child(1) { width: 16%; }
.activity-requests-table th:nth-child(2) { width: 25%; }
.activity-requests-table th:nth-child(3) { width: 18%; }
.activity-requests-table th:nth-child(4) { width: 18%; }
.activity-requests-table th:nth-child(5) { width: 13%; }
.activity-requests-table th:nth-child(6) { width: 10%; }
.activity-requests-table td { white-space: normal; overflow-wrap: anywhere; }
.activity-requests-table td small { display: block; margin-top: 3px; }
.activity-request-filter-panel { padding: 12px 16px; }
.activity-request-filters {
  display: flex;
  align-items: end;
  gap: 10px;
  margin: 0;
}
.activity-request-filters label {
  display: grid;
  gap: 4px;
  min-width: min(220px, 34vw);
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.activity-request-filters select { width: 100%; min-height: 38px; }
.activity-request-filters button { min-height: 38px; }
.activity-requests-table-seven th:nth-child(1) { width: 12%; }
.activity-requests-table-seven th:nth-child(2) { width: 20%; }
.activity-requests-table-seven th:nth-child(3) { width: 13%; }
.activity-requests-table-seven th:nth-child(4) { width: 13%; }
.activity-requests-table-seven th:nth-child(5) { width: 9%; }
.activity-requests-table-seven th:nth-child(6) { width: 15%; }
.activity-requests-table-seven th:nth-child(7) { width: 18%; }
.activity-request-inbox-table td:last-child .table-action { width: 100%; min-width: 0; justify-content: center; text-align: center; white-space: nowrap; }
.workshop-pending-link { display: inline-flex; width: fit-content; margin: 0 0 12px; }
.workshop-pending-link:disabled { cursor: default; opacity: .62; }
.workshop-pending-requests-detail { scroll-margin-top: 92px; }
.workshop-students-table table { min-width: 1040px; table-layout: fixed; }
.workshop-students-table th:nth-child(1) { width: 21%; }
.workshop-students-table th:nth-child(2) { width: 6%; }
.workshop-students-table th:nth-child(3) { width: 13%; }
.workshop-students-table th:nth-child(4) { width: 18%; }
.workshop-students-table th:nth-child(5) { width: 11%; }
.workshop-students-table th:nth-child(6) { width: 17%; }
.workshop-students-table th:nth-child(7) { width: 14%; }
.workshop-students-table td { vertical-align: top; overflow-wrap: anywhere; }
.workshop-students-table .workshop-unenroll-form button { white-space: nowrap; padding-inline: 10px; }
.workshop-students-table td[data-label="Notas"] { min-width: 175px; }
.workshop-students-table td[data-label="Acción"] { min-width: 145px; }
.workshop-students-table .workshop-reservation-row { background: var(--soft); }
.workshop-reservation-details summary { color: var(--brand-dark); cursor: pointer; font-weight: 700; }
.workshop-reservation-forms { display: grid; gap: 12px; min-width: min(340px, 75vw); padding: 12px 0; }
.workshop-reservation-forms form { display: grid; gap: 8px; }
.workshop-reservation-forms label { display: grid; gap: 4px; font-size: 13px; }
.workshop-reservation-forms input, .workshop-reservation-forms select { width: 100%; min-width: 0; }
.workshop-reservation-notes { display: flex; flex-wrap: wrap; gap: 6px; }
.workshop-reservation-notes input { flex: 1 1 175px; width: 100%; min-width: 0; }
.workshop-reserve-action td { text-align: left; }
.workshop-reserve-action td::before { display: none !important; }
@media (max-width: 760px) {
  .activity-request-filters { align-items: stretch; flex-direction: column; }
  .activity-request-filters label { min-width: 0; width: 100%; }
  .workshop-students-table table { min-width: 0; }
  .workshop-reservation-forms { min-width: 0; }
}
.request-detail-navigation { position: sticky; top: 68px; z-index: 8; padding: 12px 16px; }
.request-detail-navigation .filter-row { margin: 0; }
.request-detail-navigation .filter-pill { cursor: pointer; font: inherit; }
.request-detail-section { display: grid; gap: 16px; scroll-margin-top: 142px; }
.request-detail-tab[hidden] { display: none; }
.workshop-day-tab-navigation {
  position: sticky;
  top: 68px;
  z-index: 8;
  padding: 12px 16px;
}
.workshop-day-tab-navigation .filter-row {
  margin: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}
.workshop-day-tab-navigation .filter-pill {
  flex: 0 0 auto;
  white-space: nowrap;
  cursor: pointer;
  font: inherit;
}
.workshop-day-tab-panel {
  display: grid;
  gap: 16px;
  scroll-margin-top: 142px;
}
.workshop-day-tab-panel[hidden] { display: none; }
.workshop-cleanup-countdown {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  border-left: 6px solid var(--brand);
}
.workshop-cleanup-countdown > div { display: grid; gap: 3px; }
.workshop-cleanup-countdown output {
  min-width: 132px;
  color: var(--brand-dark);
  font-size: clamp(26px, 4vw, 38px);
  font-weight: 950;
  letter-spacing: .04em;
  text-align: center;
}
.workshop-cleanup-countdown.is-due {
  border-color: var(--danger);
  background: #fff2ed;
  animation: workshop-countdown-pulse 1.2s ease-in-out 3;
}
.workshop-cleanup-countdown.is-due output { color: var(--danger); }
@keyframes workshop-countdown-pulse {
  0%, 100% { box-shadow: none; }
  50% { box-shadow: 0 0 0 5px color-mix(in srgb, var(--danger) 20%, transparent); }
}
.workshop-schedule-alert ul { margin-bottom: 0; }
.workshop-attendance-details {
  margin-top: 18px;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}
.workshop-attendance-details > summary {
  cursor: pointer;
  color: var(--brand-dark);
  font-weight: 850;
}
.workshop-attendance-details[open] > summary { margin-bottom: 12px; }
.workshop-quick-attendance .teacher-attendance-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.workshop-attendance-status-control {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.workshop-attendance-toast {
  position: fixed;
  z-index: 100;
  left: 50%;
  bottom: 16px;
  max-width: min(90vw, 360px);
  transform: translateX(-50%);
  padding: 7px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(28, 50, 54, .94);
  color: white;
  font-size: 12px;
  font-weight: 750;
  box-shadow: 0 5px 20px rgba(0, 0, 0, .18);
  pointer-events: none;
}
.workshop-attendance-toast[data-state="error"] { background: var(--danger); }
.workshop-attendance-details form { min-width: 0; }
.workshop-attendance-details textarea,
.workshop-attendance-details select { max-width: 100%; }
.workshop-attendance-details [data-autosave-status],
.workshop-attendance-details [data-autosave-retry] { display: none !important; }
.workshop-mobile-sort-controls {
  display: none;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  margin: 10px 0;
  color: var(--brand-dark);
  font-size: 13px;
  font-weight: 800;
}
.workshop-mobile-sort-controls select {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 34px 8px 10px;
  background: var(--surface);
  color: var(--brand-dark);
  font: inherit;
}
@media (max-width: 760px) {
  .workshop-day-tab-navigation .filter-row {
    padding-bottom: 2px;
  }
  .workshop-cleanup-countdown { grid-template-columns: 1fr auto; }
  .workshop-mobile-sort-controls { display: grid; }
}
.request-decision-panel .notice { margin-bottom: 14px; }
.request-decision-actions {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
  gap: 18px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.request-delete-form {
  align-self: end;
  padding: 16px;
  border: 1px solid color-mix(in srgb, var(--danger) 35%, var(--line));
  border-radius: 8px;
}
.request-delete-form button { width: 100%; }
@media (max-width: 760px) {
  .request-decision-actions { grid-template-columns: 1fr; }
}
.web-control-summary-table th,
.web-control-summary-table td { overflow-wrap: anywhere; }
.web-control-pages-table th:first-child,
.web-control-pages-table td:first-child { width: 76%; }
.web-control-pages-table th:last-child,
.web-control-pages-table td:last-child { text-align: right; width: 24%; }
.web-control-logins-table th:first-child,
.web-control-logins-table td:first-child { white-space: nowrap; width: 28%; }
.web-control-logins-table th:last-child,
.web-control-logins-table td:last-child { width: 72%; }
.eyebrow {
  margin: 0 0 7px;
  color: var(--brand);
  font-weight: 800;
  font-size: 12px;
  text-transform: uppercase;
}
.login-form { display: grid; gap: 14px; }
.login-remember {
  align-items: center;
  display: flex;
  font-weight: 600;
  gap: 9px;
  line-height: 1.35;
}
.login-remember input { flex: 0 0 auto; height: 18px; margin: 0; width: 18px; }
.login-password-manager-hint {
  display: block;
  margin-top: -6px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}
label { display: grid; gap: 7px; font-weight: 700; color: #304346; }
input, select, textarea {
  width: 100%;
  border: 1px solid #bfcac7;
  border-radius: 6px;
  min-height: 44px;
  padding: 10px 12px;
  font: inherit;
  color: var(--ink);
  background: white;
}
textarea { resize: vertical; min-height: 84px; }
input:focus, select:focus, textarea:focus { outline: 3px solid rgba(23, 107, 115, .18); border-color: var(--brand); }
button, .primary {
  border: 0;
  border-radius: 6px;
  min-height: 44px;
  padding: 10px 14px;
  background: var(--brand);
  color: white;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
button:hover, .primary:hover { background: var(--brand-dark); }
.login-secondary-action {
  width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  margin-top: 10px;
  box-sizing: border-box;
}
.ghost {
  color: var(--brand);
  background: #edf5f3;
  border: 1px solid #bfd6d2;
}
.quick-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}
.quick-label {
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.quick-dev-note {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.quick-profile-form {
  min-width: 0;
  display: grid;
  margin: 0;
}
.quick-profile-button {
  min-height: 58px;
  padding: 9px 10px;
  display: grid;
  gap: 2px;
  text-align: left;
  line-height: 1.15;
}
.quick-profile-button strong,
.quick-profile-button span,
.quick-profile-button small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.quick-profile-button strong {
  color: var(--ink);
  font-size: 14px;
}
.quick-profile-button span {
  color: var(--brand-dark);
  font-size: 12px;
  font-weight: 800;
}
.quick-profile-button small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
}
.quick-login-button em {
  color: var(--brand);
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}
.quick-technical {
  margin-top: 12px;
}
.quick-technical summary {
  cursor: pointer;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.quick-grid-technical {
  grid-template-columns: 1fr;
}
.alert {
  padding: 11px 13px;
  border-radius: 6px;
  color: #7c231c;
  background: #fdebe8;
  border: 1px solid #f0b7ae;
  font-weight: 700;
}
.notice {
  padding: 12px 14px;
  border-radius: 6px;
  font-weight: 800;
  margin: 0 0 16px;
}
.notice.success { color: #174b35; background: #e4f4ec; border: 1px solid #9dd4ba; }
.notice.error { color: #7c231c; background: #fdebe8; border: 1px solid #f0b7ae; }
.app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  max-width: 100%;
  overflow-x: clip;
}
.employee-report-trigger {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 35;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid #174f57;
  border-radius: 6px;
  background: #ffffff;
  color: #174f57;
  box-shadow: 0 8px 20px rgba(18,45,49,.18);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.employee-report-trigger:hover { background: #e8f3f1; }
.employee-report-trigger:focus-visible { outline: 3px solid #f3b05c; outline-offset: 3px; }
.employee-report-trigger:active { transform: translateY(1px); }
.employee-report-overlay {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 45;
  width: min(360px, calc(100vw - 40px));
  pointer-events: none;
}
.employee-report-overlay[hidden] { display: none; }
.employee-report-dialog {
  width: 100%;
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  padding: 14px;
  border: 1px solid #b8cfcb;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 45px rgba(18,45,49,.28);
  pointer-events: auto;
}
.employee-report-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.employee-report-panel-head h2 { margin: 0; font-size: 18px; }
.employee-report-close {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  border: 1px solid #b8cfcb;
  border-radius: 6px;
  background: #ffffff;
  color: #174f57;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.employee-report-types { display: flex; flex-wrap: wrap; gap: 7px; }
.employee-report-type {
  min-height: 36px;
  width: auto;
  padding: 7px 10px;
  border: 1px solid #8fb8b2;
  border-radius: 6px;
  background: #f4f9f8;
  color: #173f45;
  font: inherit;
  font-weight: 800;
  font-size: 13px;
  text-align: center;
  cursor: pointer;
}
.employee-report-type:hover { background: #e5f2f0; }
.employee-report-type[aria-pressed="true"] { border-color: #174f57; background: #dcefeb; }
.employee-report-close:focus-visible,
.employee-report-type:focus-visible { outline: 3px solid #f3b05c; outline-offset: 2px; }
.employee-report-selection-status { min-height: 18px; margin: 8px 0 0; color: #345f64; font-size: 13px; font-weight: 700; }
.employee-report-recorder { border-top: 1px solid #d7e2e1; margin-top: 10px; padding-top: 10px; }
.employee-report-recorder[hidden] { display: none; }
.employee-report-recorder-status { margin: 0 0 8px; color: #294f54; font-size: 13px; }
.employee-report-recorder-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.employee-report-recorder-actions button {
  min-height: 36px;
  border: 1px solid #174f57;
  border-radius: 6px;
  background: #174f57;
  color: #fff;
  padding: 7px 10px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}
.employee-report-recorder-actions button[data-employee-report-cancel] { background: #fff; color: #7a2934; border-color: #a94452; }
.employee-report-recorder-actions button:focus-visible { outline: 3px solid #f3b05c; outline-offset: 2px; }
.employee-report-recorder-actions button:disabled { opacity: .65; cursor: wait; }
.employee-report-overlay[data-panel-mode="recorder"],
.employee-report-overlay[data-panel-mode="recording"],
.employee-report-overlay[data-panel-mode="paused"],
.employee-report-overlay[data-panel-mode="sending"] { width: min(310px, calc(100vw - 28px)); }
.employee-report-overlay[data-panel-mode="recorder"] .employee-report-types,
.employee-report-overlay[data-panel-mode="recording"] .employee-report-types,
.employee-report-overlay[data-panel-mode="paused"] .employee-report-types,
.employee-report-overlay[data-panel-mode="sending"] .employee-report-types,
.employee-report-overlay[data-panel-mode="recorder"] .employee-report-selection-status,
.employee-report-overlay[data-panel-mode="recording"] .employee-report-selection-status,
.employee-report-overlay[data-panel-mode="paused"] .employee-report-selection-status,
.employee-report-overlay[data-panel-mode="sending"] .employee-report-selection-status { display: none; }
.employee-report-overlay[data-panel-mode="recorder"] .employee-report-panel-head,
.employee-report-overlay[data-panel-mode="recording"] .employee-report-panel-head,
.employee-report-overlay[data-panel-mode="paused"] .employee-report-panel-head,
.employee-report-overlay[data-panel-mode="sending"] .employee-report-panel-head { margin-bottom: 4px; }
.employee-report-overlay[data-panel-mode="recorder"] .employee-report-panel-head h2,
.employee-report-overlay[data-panel-mode="recording"] .employee-report-panel-head h2,
.employee-report-overlay[data-panel-mode="paused"] .employee-report-panel-head h2,
.employee-report-overlay[data-panel-mode="sending"] .employee-report-panel-head h2 { font-size: 14px; }
.employee-report-overlay[data-panel-mode="recorder"] .employee-report-recorder,
.employee-report-overlay[data-panel-mode="recording"] .employee-report-recorder,
.employee-report-overlay[data-panel-mode="paused"] .employee-report-recorder,
.employee-report-overlay[data-panel-mode="sending"] .employee-report-recorder { border-top: 0; margin-top: 0; padding-top: 0; }
.employee-report-confirmation { border-top: 1px solid #d7e2e1; margin-top: 14px; padding-top: 14px; }
.employee-report-confirmation[hidden] { display: none; }
.employee-report-confirmation p { margin: 0 0 10px; }
.employee-report-confirmation button {
  border: 1px solid #174f57;
  background: #174f57;
  color: #fff;
  border-radius: 6px;
  min-height: 42px;
  padding: 9px 14px;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.employee-report-confirmation button:focus-visible { outline: 3px solid #f3b05c; outline-offset: 2px; }
.employee-report-list { display: grid; gap: 10px; }
.employee-report-list-item { border: 1px solid var(--line); border-radius: 6px; background: #fff; overflow: hidden; }
.employee-report-list-link { display: block; padding: 14px; color: inherit; text-decoration: none; }
.employee-report-list-link:hover { background: #f3f8f7; }
.employee-report-list-link:focus-visible { outline: 3px solid #f3b05c; outline-offset: -3px; }
.employee-report-list-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.employee-report-list-badges { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.employee-report-has-unread { border-color: #28796d; box-shadow: inset 4px 0 0 #28796d; }
.employee-report-unread-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 8px; border-radius: 999px; background: #dcefeb; color: #155f55; font-size: 12px; font-weight: 850; white-space: nowrap; }
.employee-report-list-item p { margin: 8px 0 5px; font-weight: 750; }
.employee-report-list-item small { color: var(--muted); overflow-wrap: anywhere; }
.employee-report-list-link .employee-report-open-label { display: inline-block; margin-top: 10px; color: #155f55; font-weight: 800; }
.employee-report-direction-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  align-items: end;
  margin: 0 0 16px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #f7faf9;
}
.employee-report-direction-filters label { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 800; }
.employee-report-direction-filters input,
.employee-report-direction-filters select { width: 100%; min-width: 0; min-height: 42px; }
.employee-report-direction-filter-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 42px; }
.employee-report-direction-filter-actions .button { min-height: 42px; }
.employee-report-direction-counts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 16px;
}
.employee-report-direction-counts div { display: grid; gap: 2px; padding: 12px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.employee-report-direction-counts strong { font-size: 22px; color: var(--brand); }
.employee-report-direction-counts span { color: var(--muted); font-size: 13px; font-weight: 750; }
.employee-report-direction-item .employee-report-list-link { display: grid; gap: 3px; }
.employee-report-direction-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; }
.employee-report-direction-pagination > span { color: var(--muted); font-weight: 750; }
.employee-report-detail-head { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.employee-report-detail-head h1 { margin: 5px 0 0; }
.employee-report-summary { margin: 18px 0 22px; }
.employee-report-detail h2 { margin: 0 0 12px; font-size: 20px; }
.employee-report-detail > .text-link { color: #155f55; }
.employee-report-technical-path {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px 14px;
  margin: 0 0 22px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.employee-report-technical-path > div { min-width: 0; display: grid; gap: 6px; }
.employee-report-technical-path code { display: block; max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }
.employee-report-technical-path .employee-report-copy-path { min-height: 42px; white-space: nowrap; }
.employee-report-copy-status { grid-column: 1 / -1; min-height: 20px; color: var(--muted); font-size: 13px; font-weight: 750; }
.employee-report-direction-response { display: grid; gap: 10px; margin: 0 0 22px; padding: 14px; border: 1px solid var(--line); border-radius: 6px; background: #f7faf9; }
.employee-report-direction-response label { font-weight: 800; }
.employee-report-direction-response textarea { width: 100%; min-height: 108px; resize: vertical; }
.employee-report-direction-response .button { justify-self: start; }
.employee-report-timeline {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 0;
  padding: 18px 14px;
  border: 1px solid #d9e1de;
  border-radius: 14px 14px 0 0;
  background-color: #efeae2;
  background-image: radial-gradient(rgba(45, 91, 82, .055) 1px, transparent 1px);
  background-size: 18px 18px;
}
.employee-report-technical-context { max-height: 420px; margin: 0 0 22px; padding: 14px; overflow: auto; border: 1px solid var(--line); border-radius: 6px; background: #f7f8fa; color: var(--ink); font-size: 13px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.employee-report-technical-details { margin: 22px 0; border: 1px solid var(--line); border-radius: 8px; background: #f7f8fa; }
.employee-report-technical-details > summary { padding: 15px 16px; cursor: pointer; color: var(--muted); font-weight: 750; }
.employee-report-technical-details[open] > summary { border-bottom: 1px solid var(--line); color: var(--ink); }
.employee-report-technical-details > :not(summary) { margin-left: 16px; margin-right: 16px; }
.employee-report-technical-details > .muted { margin-top: 14px; }
.employee-report-technical-details h3 { margin-top: 18px; font-size: 16px; }
.employee-report-technical-summary { margin: 14px 16px 18px; }
.employee-report-capture-item { display: grid; gap: 8px; }
.employee-report-capture-preview { display: block; width: min(100%, 720px); height: auto; max-height: 520px; object-fit: contain; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.employee-report-add-information { margin: 0 0 18px; }
.employee-report-composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px 44px 44px;
  align-items: end;
  gap: 8px;
  padding: 10px;
  border: 1px solid #d9e1de;
  border-top: 0;
  border-radius: 0 0 14px 14px;
  background: #f0f2f5;
}
.employee-report-composer > .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.employee-report-composer textarea {
  width: 100%; min-height: 112px; max-height: 320px; resize: vertical;
  padding: 12px 14px; border: 1px solid #d6dcda; border-radius: 14px; background: #fff;
  line-height: 1.45;
}
.employee-report-composer-action,
.employee-report-composer-send {
  width: 44px; height: 44px; border: 0; border-radius: 50%; cursor: pointer; font-size: 19px;
}
.employee-report-composer-action { background: #fff; color: #536763; }
.employee-report-composer-action { display: grid; place-items: center; }
.employee-report-composer-action input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.employee-report-file-card { padding: 9px; border-radius: 8px; background: rgba(255,255,255,.55); }
.employee-report-file-card a { color: #155f55; font-weight: 800; }
.employee-report-composer-send { background: #28796d; color: #fff; }
.employee-report-composer-action:focus-visible,
.employee-report-composer-send:focus-visible { outline: 3px solid #f3b05c; outline-offset: 2px; }
.employee-report-composer-status { min-height: 20px; margin: 5px 12px 0; color: var(--muted); font-size: 13px; }
.employee-report-conversation-closed { margin: 0 0 18px; padding: 11px; border: 1px solid #b9d9ce; border-top: 0; border-radius: 0 0 14px 14px; background: #e8f5f0; color: #155f55; text-align: center; font-weight: 800; }
.employee-report-add-information-trigger {
  min-height: 42px;
  border: 1px solid #174f57;
  border-radius: 6px;
  background: #174f57;
  color: #fff;
  padding: 9px 14px;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.employee-report-add-information-trigger:focus-visible { outline: 3px solid #f3b05c; outline-offset: 2px; }
.employee-report-add-information .employee-report-dialog h2 { margin: 5px 0 0; }
.employee-report-event {
  width: fit-content; max-width: min(78%, 680px); padding: 9px 11px 7px;
  border: 0; border-radius: 9px; box-shadow: 0 1px 1px rgba(0, 0, 0, .09);
}
.employee-report-message.incoming { align-self: flex-start; background: #fff; border-top-left-radius: 2px; }
.employee-report-message.outgoing { align-self: flex-end; background: #d9fdd3; border-top-right-radius: 2px; }
.employee-report-event-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.employee-report-event-head time, .employee-report-event small { color: var(--muted); }
.employee-report-event p { margin: 8px 0 0; white-space: pre-wrap; }
.employee-report-system-marker { align-self: center; display: grid; justify-items: center; gap: 2px; padding: 6px 10px; border-radius: 8px; background: #fff4c7; color: #59635f; font-size: 12px; box-shadow: 0 1px 1px rgba(0,0,0,.08); }
.employee-report-system-marker time { color: var(--muted); font-size: 11px; }
.employee-report-system-finished { background: #dcefe8; color: #155f55; font-weight: 800; }
.employee-report-attachments { margin: 9px 0 0; padding: 0; list-style: none; }
.employee-report-attachments li { display: grid; gap: 6px; }
.employee-report-audio-meta { color: var(--muted); }
.employee-report-attachments audio { width: min(100%, 420px); min-height: 40px; }
.employee-report-audio-open { width: fit-content; color: #155f55; font-size: 13px; font-weight: 800; }
.employee-report-transcript { margin-top: 8px; padding-top: 7px; border-top: 1px solid rgba(65, 83, 78, .18); }
.employee-report-transcript summary { cursor: pointer; color: #155f55; font-size: 13px; font-weight: 800; }
.employee-report-transcript-pending { color: var(--muted); font-size: 12px; font-style: italic; }
.employee-report-quick-replies { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.employee-report-quick-replies button { padding: 7px 11px; border: 1px solid #28796d; border-radius: 999px; background: #fff; color: #155f55; font: inherit; font-weight: 800; cursor: pointer; }
@media (max-width: 640px) {
  .employee-report-timeline { padding: 12px 8px; }
  .employee-report-event { max-width: 91%; }
  .employee-report-composer { grid-template-columns: minmax(0, 1fr) 42px 42px 42px; padding: 8px; }
  .employee-report-composer textarea { min-height: 88px; }
}
.sidebar {
  position: sticky;
  top: 0;
  align-self: start;
  height: 100vh;
  min-width: 0;
  max-width: 100%;
  overflow-y: auto;
  overflow-x: clip;
  background: var(--brand);
  color: white;
  padding: 22px 16px;
}
.nav-details { display: block; }
.nav-details summary {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  cursor: pointer;
}
.nav-details summary::-webkit-details-marker { display: none; }
.brand {
  min-width: 0;
  max-width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 4px 0 18px;
}
.brand span {
  min-width: 0;
}
.brand strong,
.brand small {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.brand-profile-link {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.app-logo-link {
  flex: 0 0 100%;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-decoration: none;
}
.app-logo {
  display: block;
  width: auto;
  max-width: min(188px, 100%);
  height: 54px;
  padding: 5px 6px;
  object-fit: contain;
  object-position: center;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 18px rgba(0,0,0,.12);
}
.brand-mark {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: #f3b05c;
  color: #122d31;
  font-weight: 900;
}
.brand small { display: block; color: #b8ccca; margin-top: 2px; }
.user-menu-trigger {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #ffffff;
}
.user-avatar {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #f3b05c;
  color: var(--brand-dark);
  border: 2px solid rgba(255,255,255,.55);
  font-weight: 900;
  box-shadow: 0 4px 12px rgba(0,0,0,.18);
}
.user-menu-meta {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.user-menu-meta strong,
.user-menu-meta small {
  max-width: 150px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.user-menu-meta small {
  color: #b8ccca;
  font-weight: 800;
}
.header-more-details {
  position: relative;
  flex: 0 0 auto;
}
.header-more-details > summary {
  list-style: none;
  min-height: 38px;
  display: flex;
  align-items: center;
  padding: 8px 10px;
  border-radius: 6px;
  background: rgba(255,255,255,.1);
  color: #ffffff;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}
.header-more-details > summary::-webkit-details-marker { display: none; }
.header-more-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 12;
  width: 190px;
  display: grid;
  gap: 6px;
  padding: 8px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 8px;
  background: var(--brand-dark);
  box-shadow: 0 14px 30px rgba(0,0,0,.26);
}
.header-more-menu-grouped {
  width: min(340px, calc(100vw - 24px));
  max-height: min(72vh, 560px);
  overflow-y: auto;
  gap: 10px;
}
.header-more-group {
  display: grid;
  gap: 5px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,.13);
}
.header-more-group:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.header-more-group strong {
  padding: 2px 4px;
  color: #b9d7d2;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.header-more-menu a {
  padding: 10px 11px;
  border-radius: 6px;
  color: #ffffff;
  text-decoration: none;
  font-weight: 800;
}
.header-more-menu a:hover { background: rgba(255,255,255,.12); }
.menu-toggle {
  display: none;
  color: var(--brand-dark);
  background: #f3b05c;
  border-radius: 6px;
  padding: 9px 12px;
  font-weight: 900;
}
.inventory-filter-panel > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
}
.inventory-filter-panel > summary::-webkit-details-marker { display: none; }
.inventory-filter-panel > summary::after { content: "+"; font-weight: 900; }
.inventory-filter-panel[open] > summary::after { content: "-"; }
.inventory-filter-panel > form { margin-top: 16px; }
.sidebar nav { display: grid; gap: 6px; }
.nav-details nav { margin-top: 14px; }
.nav-details:not([open]) nav { display: grid; }
.side-nav-group {
  display: grid;
  gap: 5px;
  padding: 11px 0;
  border-top: 1px solid rgba(255,255,255,.12);
}
.side-nav-group:first-child {
  border-top: 0;
  padding-top: 0;
}
.side-nav-group summary {
  padding: 0 5px 2px;
  color: #b9d7d2;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.side-nav-group summary::-webkit-details-marker {
  display: none;
}
.side-nav-group summary::after {
  content: "-";
  color: rgba(255,255,255,.65);
  font-size: 13px;
}
.side-nav-group:not([open]) summary::after {
  content: "+";
}
.side-nav-links {
  display: grid;
  gap: 5px;
  margin-top: 6px;
}
.side-nav-group:not([open]) .side-nav-links {
  display: none;
}
.sidebar nav a {
  min-width: 0;
  text-decoration: none;
  color: #e8f1ef;
  padding: 10px 12px;
  border-radius: 6px;
  font-weight: 700;
  overflow-wrap: anywhere;
}
.sidebar nav a:hover { background: rgba(255,255,255,.11); }
.sidebar nav a.is-active,
.header-more-menu a.is-active {
  background: rgba(243, 176, 92, .24);
  color: #ffffff;
  box-shadow: inset 3px 0 0 #f3b05c;
}
.sidebar nav a.nav-logout {
  margin-top: 10px;
  background: var(--danger);
  color: #ffffff;
  text-align: center;
  font-weight: 900;
}
.sidebar nav a.nav-logout:hover { background: #94352d; }
.workspace {
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
  padding: 26px;
}
.topbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 24px;
}
.temporary-role-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: -8px 0 20px;
  padding: 12px 14px;
  border: 1px solid #c58b2a;
  border-left: 5px solid #c58b2a;
  border-radius: 6px;
  background: #fff7e7;
  color: var(--ink);
}
.temporary-role-notice div { display: grid; gap: 2px; }
.temporary-role-notice span { color: var(--muted); font-size: 13px; }
.temporary-role-notice .table-action { flex: 0 0 auto; }
.page-pasar-lista, .workspace:has(.teacher-session-attendance-shell) {
  padding-top: 14px;
}
.page-pasar-lista .topbar, .workspace:has(.teacher-session-attendance-shell) .topbar {
  margin-bottom: 12px;
}
.page-pasar-lista .topbar .eyebrow, .workspace:has(.teacher-session-attendance-shell) .topbar .eyebrow {
  display: none;
}
.teacher-date-actions {
  justify-content: center;
  gap: 10px;
}
.page-inline-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  margin: -62px 0 14px;
  min-height: 42px;
  pointer-events: none;
}
.page-inline-actions .table-action {
  pointer-events: auto;
}
.category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.category-card {
  min-height: 142px;
  display: grid;
  align-content: space-between;
  gap: 10px;
  text-decoration: none;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 18px;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.category-card span {
  color: var(--brand);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}
.category-card strong {
  color: var(--ink);
  font-size: 26px;
}
.category-card p {
  color: var(--muted);
  margin: 0;
  line-height: 1.45;
}
.category-card:hover { border-color: #9fc5c0; transform: translateY(-1px); }
.admin-hero {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  margin-bottom: 16px;
  padding: 18px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-left: 6px solid var(--accent);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.admin-workbench {
  display: grid;
  gap: 14px;
  margin-bottom: 16px;
}
.admin-search-panel {
  min-width: 0;
  position: relative;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.admin-search-panel form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}
.admin-search-suggestions {
  position: absolute;
  left: 14px;
  right: 14px;
  top: calc(100% - 8px);
  z-index: 15;
  display: grid;
  gap: 6px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 30px rgba(20, 39, 42, 0.18);
}
.admin-search-suggestion {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 10px;
  border-radius: 7px;
  color: var(--ink);
  text-decoration: none;
}
.admin-search-suggestion:hover {
  background: #edf8f6;
}
.admin-search-suggestion span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.admin-search-suggestion strong,
.admin-search-suggestion small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.admin-search-suggestion small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.admin-main-actions {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}
.admin-main-actions-primary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.admin-main-action {
  min-width: 0;
  min-height: 122px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.admin-main-action:nth-child(1) { border-color: #b8d6d1; background: #f2faf8; }
.admin-main-action:nth-child(2) { border-color: #d2d9dc; background: #f4f7f8; }
.admin-main-action:nth-child(3) { border-color: #e1c2ad; background: #fff4ec; }
.admin-main-action:nth-child(4) { border-color: #edc6a4; background: #fff7e8; }
.admin-main-action:nth-child(5) { border-color: #c3ccd0; background: #f1f5f6; }
.admin-main-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--brand);
  color: #ffffff;
  font-weight: 900;
}
.admin-main-action:nth-child(3) .admin-main-icon { background: #8f4f2b; }
.admin-main-action:nth-child(4) .admin-main-icon { background: #c76428; }
.admin-main-action:nth-child(5) .admin-main-icon { background: #314d54; }
.admin-main-copy {
  min-width: 0;
  display: grid;
  gap: 5px;
}
.admin-main-action strong {
  font-size: 18px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.admin-main-action small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.3;
}
.extraescolar-wizard-header {
  display: grid;
  gap: 14px;
}
.wizard-steps {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
}
.wizard-step {
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  flex: 0 0 auto;
  font-size: 13px;
  padding: 8px 10px;
  text-decoration: none;
}
.wizard-step.is-current {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}
.status-badge {
  border-radius: 999px;
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  margin-right: 6px;
  padding: 3px 8px;
}
.status-badge.ok {
  background: #e7f7ed;
  color: #176c36;
}
.status-badge.warning {
  background: #fff4d6;
  color: #7a4d00;
}
.status-badge.danger {
  background: #ffe6e0;
  color: #9b2d18;
}
.employee-contract-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 28px;
  margin: 6px 0 18px;
}
.employee-labor-section {
  min-width: 0;
  border-top: 2px solid var(--line);
  padding-top: 12px;
}
.employee-labor-section h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  font-size: 16px;
}
.employee-labor-section h3 .status-badge {
  margin-right: 0;
}
@media (max-width: 700px) {
  .employee-contract-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.compact-list {
  margin: 8px 0 0;
  padding-left: 18px;
}
.compact-list li {
  margin-bottom: 8px;
}
.admin-focus-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}
.admin-search-results-panel {
  min-width: 0;
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
  margin-bottom: 16px;
}
.admin-search-result-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.admin-search-result-card {
  min-width: 0;
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--brand);
  border-radius: 8px;
  background: #fbfdfd;
}
.admin-search-result-card span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.admin-search-result-card strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 16px;
}
.admin-search-result-card small {
  min-width: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.admin-today-tray,
.admin-secondary-actions {
  min-width: 0;
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
  margin-bottom: 16px;
}
.admin-work-list {
  display: grid;
  gap: 8px;
}
.admin-work-item {
  min-width: 0;
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--line);
  border-left: 5px solid #c3ccd0;
  border-radius: 8px;
  background: #fbfdfd;
  color: var(--ink);
  text-decoration: none;
}
.admin-work-item:hover {
  border-color: var(--brand);
  border-left-color: var(--brand);
  background: #f2faf8;
}
.admin-work-danger { border-left-color: #b74438; }
.admin-work-warning,
.admin-work-money { border-left-color: #c76428; }
.admin-work-notice { border-left-color: #314d54; }
.admin-work-group { border-left-color: #8f4f2b; }
.admin-today-toolbar {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
}
.admin-today-toolbar form { margin: 0; }
.admin-today-toolbar label { display: grid; gap: 4px; }
.admin-today-toolbar input { width: 180px; min-height: 40px; }
.admin-today-grid > .admin-today-attention { grid-column: 1 / -1; }
.admin-today-grid > .admin-today-attention .admin-today-attention-list {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}
.admin-today-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr);
  gap: 14px;
  margin-bottom: 16px;
}
.admin-today-routine-list,
.admin-today-attention-list {
  display: grid;
  gap: 8px;
}
.admin-today-routine {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 5px solid #c3ccd0;
  border-radius: 8px;
  background: #fbfdfd;
}
.admin-today-routine.is-complete {
  border-left-color: #2f6d4e;
  background: #f2faf8;
}
.admin-today-routine strong,
.admin-today-routine small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.admin-today-routine small {
  margin-top: 3px;
  color: var(--muted);
  font-weight: 800;
}
.admin-today-routine form {
  margin: 0;
}
.admin-today-routine button {
  min-height: 38px;
  padding: 0 12px;
}
.admin-today-attention-item {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 5px 10px;
  padding: 12px;
  border: 1px solid #e1c2ad;
  border-left: 5px solid #c76428;
  border-radius: 8px;
  background: #fff8ee;
  color: var(--ink);
  text-decoration: none;
}
.admin-today-attention-item span,
.admin-today-attention-item small,
.admin-today-attention-item em {
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  overflow-wrap: anywhere;
}
.admin-today-attention-item span {
  color: var(--ink);
  font-size: 14px;
  font-weight: 950;
}
.admin-today-attention-item em {
  color: var(--brand);
  font-style: normal;
  font-weight: 950;
}
.admin-today-attention-item strong {
  grid-row: 1 / span 3;
  grid-column: 1;
  align-self: center;
  color: #8f4f2b;
  font-size: 28px;
  line-height: 1;
}
.admin-today-cash-item {
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: center;
}
.admin-today-cash-item strong {
  grid-row: 1 / span 2;
  min-width: 0;
  color: var(--ink);
  font-size: 15px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.admin-today-cash-item span,
.admin-today-cash-item small {
  grid-column: 2;
  white-space: nowrap;
  text-align: right;
}
.admin-today-cash-item span {
  font-size: 18px;
}
.admin-coverage-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, auto);
  gap: 16px;
  align-items: center;
  padding: 14px;
  border: 1px solid #e1c2ad;
  border-left: 5px solid #c76428;
  border-radius: 8px;
  background: #fff8ee;
}
.admin-coverage-card-main,
.admin-coverage-card-status { min-width: 0; display: grid; gap: 5px; }
.admin-coverage-card-main strong { font-size: 16px; line-height: 1.35; overflow-wrap: anywhere; }
.admin-coverage-card-main span { font-weight: 900; }
.admin-coverage-card-main small { color: var(--muted); font-weight: 800; }
.admin-coverage-card-status { justify-items: end; text-align: right; }
.admin-coverage-card-status em { color: #9a4b20; font-style: normal; font-weight: 950; }
.admin-coverage-card-status .table-action { white-space: nowrap; }
@media (max-width: 760px) {
  .admin-coverage-card { grid-template-columns: minmax(0, 1fr); }
  .admin-coverage-card-status { justify-items: start; text-align: left; }
}
.admin-today-empty {
  display: grid;
  gap: 3px;
  padding: 13px;
  border: 1px solid #b8d6d1;
  border-radius: 8px;
  background: #f2faf8;
}
.admin-today-empty span {
  color: var(--muted);
  font-weight: 800;
}
.admin-today-work-cases {
  grid-column: 1 / -1;
}
.admin-today-work-case-section {
  display: grid;
  gap: 8px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}
.admin-today-work-case-section:first-of-type {
  border-top: 0;
  padding-top: 0;
}
.admin-today-work-case-hint {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.admin-today-work-case-list,
.admin-today-work-case-counters {
  display: grid;
  gap: 8px;
}
.admin-today-work-case-card {
  padding: 11px;
}
.work-case-list-panel,
.work-case-summary-panel,
.work-case-history,
.work-case-controls,
.work-case-closed {
  min-width: 0;
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
  margin-bottom: 16px;
}
.work-case-filter-panel {
  margin-bottom: 14px;
}
.work-case-list {
  display: grid;
  gap: 10px;
}
.work-case-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 13px;
  border: 1px solid var(--line);
  border-left: 5px solid #c3ccd0;
  border-radius: 8px;
  background: #fbfdfd;
}
.work-case-card-link {
  color: inherit;
  text-decoration: none;
}
.work-case-card-link:hover,
.work-case-card-link:focus-visible {
  border-color: #7aa6ac;
  box-shadow: 0 0 0 3px rgba(46, 107, 168, 0.16);
}
.work-case-card-link:focus-visible {
  outline: 3px solid #2e6ba8;
  outline-offset: 2px;
}
.work-case-card.status-pendiente { border-left-color: #c76428; }
.work-case-card.status-en_gestion { border-left-color: #2e6ba8; }
.work-case-card.status-esperando { border-left-color: #8a6a18; }
.work-case-card.status-resuelto { border-left-color: #2f6d4e; }
.work-case-card.status-cancelado { border-left-color: #777777; opacity: .88; }
.work-case-card-main,
.work-case-meta-row,
.work-case-summary-grid,
.work-case-history-list,
.work-case-control-grid {
  min-width: 0;
}
.work-case-card-main {
  display: grid;
  gap: 7px;
}
.work-case-card-main strong,
.work-case-card-main p,
.work-case-card-main small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.work-case-card-main p {
  margin: 0;
  color: var(--muted);
  font-weight: 750;
}
.work-case-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.work-case-chip {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #ffffff;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.work-case-chip.status-pendiente { color: #8f4f2b; background: #fff8ee; border-color: #e1c2ad; }
.work-case-chip.status-en_gestion { color: #24547f; background: #eef6ff; border-color: #b9d5ee; }
.work-case-chip.status-esperando { color: #72580d; background: #fff9de; border-color: #e7d68c; }
.work-case-chip.status-resuelto { color: #245a40; background: #f2faf8; border-color: #b8d6d1; }
.work-case-chip.status-cancelado { color: #555555; background: #f2f2f2; border-color: #d6d6d6; }
.work-case-chip.priority-alta { color: #9c2d22; border-color: #efb0a7; background: #fff3f0; }
.work-case-chip.priority-media { color: #2c5b6c; border-color: #bad3dd; background: #f1fbff; }
.work-case-chip.priority-baja { color: #44634a; border-color: #c7dfcb; background: #f4fbf5; }
.work-case-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.work-case-summary-item {
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.work-case-summary-item span,
.work-case-summary-item strong {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.work-case-summary-item span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.work-case-summary-item strong {
  margin-top: 4px;
}
.work-case-history-list {
  display: grid;
  gap: 9px;
}
.work-case-event {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 5px solid #2e6ba8;
  border-radius: 8px;
  background: #fbfdfd;
}
.work-case-event strong,
.work-case-event small,
.work-case-event p {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.work-case-event small {
  color: var(--muted);
  font-weight: 850;
}
.work-case-event p {
  margin: 7px 0 0;
}
.work-case-control-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.work-case-control-grid .panel {
  margin: 0;
}
.work-case-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}
.work-case-closed {
  border-left: 5px solid #777777;
  background: #f8f8f8;
}
.day-control-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.day-control-hero span,
.day-control-hero small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.day-control-hero strong {
  display: block;
  margin: 3px 0;
  font-size: 28px;
  line-height: 1.05;
}
.day-control-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.day-control-metric {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-left: 6px solid #c3ccd0;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.day-control-metric span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.day-control-metric strong {
  display: block;
  margin-top: 4px;
  font-size: 30px;
  line-height: 1;
}
.day-control-attention,
.day-control-teachers {
  min-width: 0;
  margin-bottom: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.day-control-attention-list,
.day-control-teacher-grid {
  display: grid;
  gap: 10px;
}
.day-control-attention-item {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 6px solid #c3ccd0;
  border-radius: 8px;
  background: #fbfdfd;
}
.day-control-attention-item strong,
.day-control-attention-item span {
  min-width: 0;
  display: block;
  overflow-wrap: anywhere;
}
.day-control-attention-item strong {
  font-size: 16px;
}
.day-control-attention-item span {
  color: var(--muted);
  font-size: 14px;
  font-weight: 900;
}
.day-control-attention-item a,
.day-control-teacher-card a {
  color: var(--brand);
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}
.day-control-ok {
  padding: 16px;
  border: 1px solid #b8d6d1;
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #f2faf8;
}
.day-control-ok strong,
.day-control-ok span {
  display: block;
}
.day-control-ok span {
  color: var(--muted);
  font-size: 14px;
  font-weight: 800;
}
.day-control-teacher-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.day-control-teacher-card {
  min-width: 0;
  display: grid;
  gap: 8px;
  padding: 13px;
  border: 1px solid var(--line);
  border-left: 6px solid #c3ccd0;
  border-radius: 8px;
  background: #fbfdfd;
}
.day-control-teacher-card header {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.day-control-teacher-card header strong,
.day-control-teacher-card p {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
.day-control-teacher-card header strong {
  font-size: 17px;
}
.day-control-teacher-card header span {
  width: fit-content;
  padding: 5px 8px;
  border-radius: 999px;
  background: #edf2f3;
  color: var(--ink);
  font-size: 12px;
  font-weight: 900;
}
.day-control-teacher-card p,
.day-control-card-meta small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.day-control-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
}
.day-control-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-height: 24px;
}
.day-control-chips span {
  padding: 4px 7px;
  border-radius: 999px;
  background: #edf2f3;
  color: var(--ink);
  font-size: 11px;
  font-weight: 900;
}
.day-control-chips span.tone-red {
  background: #ffe1dc;
  color: #9a2d1f;
}
.day-control-chips span.tone-yellow {
  background: #fff2cf;
  color: #7a5200;
}
.day-control-chips span.tone-green {
  background: #dff4ef;
  color: #1d7f70;
}
.day-control-chips span.tone-gray {
  background: #eef1f1;
  color: #637274;
}
.tone-red { border-left-color: #b74438; }
.tone-yellow { border-left-color: #c76428; }
.tone-green { border-left-color: var(--brand); }
.tone-gray { border-left-color: #9aa6aa; }
.day-control-metric.tone-red,
.day-control-attention-item.tone-red,
.day-control-teacher-card.tone-red { background: #fff5f3; }
.day-control-metric.tone-yellow,
.day-control-attention-item.tone-yellow,
.day-control-teacher-card.tone-yellow { background: #fff8ee; }
.day-control-metric.tone-green,
.day-control-teacher-card.tone-green { background: #f2faf8; }
.day-control-metric.tone-gray,
.day-control-teacher-card.tone-gray { background: #f4f7f8; }
.admin-work-student { border-left-color: #176b73; }
.enrollment-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 850;
  white-space: nowrap;
}
.enrollment-status-warning { background: #fff7e8; color: #8f4f2b; }
.enrollment-status-notice { background: #eef7f9; color: #176b73; }
.enrollment-status-success { background: #e8f7ef; color: #1f7a52; }
.enrollment-status-muted { background: #edf0f2; color: #667579; }
.admin-warning-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 18px;
}
.admin-work-kind {
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.admin-work-body {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.admin-work-body strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 15px;
  line-height: 1.2;
}
.admin-work-body small {
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.admin-work-body em {
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 750;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.admin-work-meta {
  display: grid;
  justify-items: end;
  gap: 5px;
}
.admin-work-meta em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}
.admin-work-meta b {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
  border-radius: 6px;
  background: var(--brand);
  color: #ffffff;
  font-size: 12px;
}
.admin-secondary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.admin-secondary-grid .table-action {
  min-height: 42px;
}
.admin-metrics-compact {
  margin-top: 0;
}
.admin-focus-grid-compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.admin-focus-panel {
  min-width: 0;
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.admin-focus-list {
  display: grid;
  gap: 8px;
}
.admin-focus-item {
  min-width: 0;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 2px 10px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
  color: var(--ink);
  text-decoration: none;
}
.admin-focus-item span {
  grid-row: 1 / span 2;
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
}
.admin-focus-item strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 15px;
  line-height: 1.2;
}
.admin-focus-item small {
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.admin-focus-item:hover {
  border-color: var(--brand);
  background: #f2faf8;
}
.student-admin-overview,
.group-admin-overview,
.admin-payment-card-panel,
.message-card-panel,
.notice-card-panel {
  min-width: 0;
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
  margin-bottom: 16px;
}
.student-admin-overview,
.group-admin-overview {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto;
  align-items: center;
}
.student-admin-title,
.group-admin-title {
  min-width: 0;
  display: grid;
  gap: 5px;
}
.student-admin-title span,
.group-admin-title span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.student-admin-title strong,
.group-admin-title strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 24px;
  line-height: 1.15;
}
.student-admin-title small,
.group-admin-title small {
  color: var(--muted);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.private-breadcrumb { margin:0 0 10px; max-width:100%; font-size:13px; color:var(--muted); }
.private-breadcrumb ol { display:flex; flex-wrap:wrap; gap:6px 10px; padding:0; margin:0; list-style:none; }
.private-breadcrumb li { min-width:0; overflow-wrap:anywhere; }
.private-breadcrumb li + li::before { content:"/"; margin-right:10px; color:var(--muted); }
.private-breadcrumb [aria-current="page"] { font-weight:600; }
.student-admin-title small a {
  color: var(--brand);
  text-decoration: none;
}
.student-admin-title small a:hover {
  text-decoration: underline;
}
.student-admin-stats,
.group-admin-badges {
  display: grid;
  gap: 8px;
}
.student-admin-stats {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.group-admin-badges {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.student-admin-stats .metric,
.group-admin-badges article {
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f7faf9;
}
.group-admin-badges article {
  display: grid;
  gap: 4px;
}
.group-admin-badges span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.group-admin-badges strong {
  font-size: 16px;
  line-height: 1.15;
}
.student-admin-actions,
.group-admin-actions {
  display: grid;
  gap: 8px;
  min-width: 150px;
}
.next-steps-panel summary {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  font-weight: 900;
}
.next-steps-panel summary small {
  color: var(--muted);
}
.student-learning-hero {
  min-width: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
  margin-bottom: 16px;
}
.student-learning-hero > div {
  min-width: 0;
  display: grid;
  gap: 5px;
}
.student-learning-hero span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.student-learning-hero strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 24px;
  line-height: 1.15;
}
.student-learning-hero small {
  color: var(--muted);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.student-learning-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.student-learning-summary-list,
.student-learning-event-list {
  display: grid;
  gap: 10px;
}
.student-learning-summary-card,
.student-learning-event-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 5px solid #c3ccd0;
  border-radius: 8px;
  background: #fbfdfd;
}
.student-learning-summary-card > div,
.student-learning-event-card > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.student-learning-summary-card strong,
.student-learning-event-card strong {
  min-width: 0;
  overflow-wrap: anywhere;
}
.student-learning-summary-card span,
.student-learning-event-card span,
.student-learning-summary-card small,
.student-learning-event-card small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.student-learning-event-card em {
  font-style: normal;
  font-weight: 900;
  color: var(--brand);
}
.student-learning-event-card.status-delivered { border-left-color: var(--brand); }
.student-learning-event-card.status-partial { border-left-color: #c76428; }
.student-learning-event-card.status-unplanned { border-left-color: #7b68a8; }
.student-learning-event-actions {
  display: flex;
  justify-content: flex-end;
}
.filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.filter-pill {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  border: 1px solid #bfd6d2;
  border-radius: 999px;
  background: #edf5f3;
  color: var(--brand);
  font-weight: 900;
  text-decoration: none;
}
.filter-pill.active {
  background: var(--brand);
  color: #ffffff;
}
.employee-directory-filters {
  margin: 0 0 10px;
}
.employee-directory-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: -4px;
  padding: 0 2px 8px;
}
.admin-payment-card-list,
.message-card-list,
.notice-card-list {
  display: grid;
  gap: 10px;
}
.admin-directory-list {
  display: grid;
  gap: 10px;
}
.admin-directory-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.admin-directory-card strong {
  display: block;
  min-width: 0;
  color: var(--ink);
  font-size: 16px;
  overflow-wrap: anywhere;
}
.admin-directory-card small {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.admin-directory-card span {
  display: inline-flex;
  width: fit-content;
  margin-top: 6px;
  border-radius: 999px;
  background: #edf8f6;
  color: var(--brand);
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 900;
}
.admin-directory-card .table-action {
  width: 76px;
}
.training-course-list {
  display: grid;
  gap: 10px;
}
.training-course-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.training-course-card strong {
  display: block;
  color: var(--ink);
  font-size: 16px;
  overflow-wrap: anywhere;
}
.training-course-card small {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.training-course-card span {
  display: inline-flex;
  width: fit-content;
  margin-top: 6px;
  border-radius: 999px;
  background: #edf8f6;
  color: var(--brand);
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 900;
}
.training-course-card .table-action {
  width: 76px;
}
.accounting-action-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.accounting-action-card {
  min-height: 94px;
  display: grid;
  align-content: center;
  gap: 6px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
  color: var(--ink);
  text-decoration: none;
}
.accounting-action-card strong {
  color: var(--brand);
  font-size: 17px;
}
.accounting-action-card small {
  color: var(--muted);
  font-weight: 800;
  line-height: 1.25;
}
.accounting-action-card:hover {
  border-color: var(--brand);
  background: #edf8f6;
}
.remittance-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.remittance-actions form {
  margin: 0;
}
.remittance-actions button {
  width: 100%;
  min-height: 42px;
}
.remittance-card-list {
  display: grid;
  gap: 10px;
}
.remittance-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.remittance-card strong {
  display: block;
  color: var(--ink);
  font-size: 16px;
  overflow-wrap: anywhere;
}
.remittance-card small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.remittance-card span {
  display: inline-flex;
  width: fit-content;
  margin-top: 6px;
  border-radius: 999px;
  background: #edf8f6;
  color: var(--brand);
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 900;
}
.remittance-card em {
  color: var(--brand-dark);
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}
.remittance-card .table-action {
  grid-column: 1 / -1;
}
.bank-movement-list {
  display: grid;
  gap: 10px;
}
.bank-movement-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.bank-movement-card strong {
  display: block;
  color: var(--ink);
  font-size: 15px;
  overflow-wrap: anywhere;
}
.bank-movement-card small {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.bank-movement-card span {
  display: inline-flex;
  width: fit-content;
  margin-top: 6px;
  border-radius: 999px;
  background: #edf8f6;
  color: var(--brand);
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 900;
}
.bank-movement-card em {
  color: var(--brand-dark);
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}
.bank-movement-card em.negative {
  color: #9d3d28;
}
.bank-movement-card .review-form {
  grid-column: 1 / -1;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.billing-payment-list {
  display: grid;
  gap: 10px;
}
.billing-payment-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.billing-payment-card strong {
  display: block;
  color: var(--ink);
  font-size: 16px;
  overflow-wrap: anywhere;
}
.billing-payment-card small {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.billing-payment-card span {
  display: inline-flex;
  width: fit-content;
  margin-top: 6px;
  border-radius: 999px;
  background: #edf8f6;
  color: var(--brand);
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 900;
}
.billing-payment-card em {
  color: var(--brand-dark);
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}
.billing-payment-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.billing-payment-actions .inline-form {
  margin: 0;
}
.billing-payment-actions button,
.billing-payment-actions .table-action {
  min-height: 36px;
  padding: 0 12px;
}
.expense-card-list {
  display: grid;
  gap: 10px;
}
.expense-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.expense-card strong {
  display: block;
  color: var(--ink);
  font-size: 16px;
  overflow-wrap: anywhere;
}
.expense-card small {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.expense-card em {
  color: #9d3d28;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}
.admin-payment-card {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto auto auto;
  gap: 8px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.admin-payment-card span,
.admin-payment-card small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.admin-payment-card strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 15px;
}
.admin-payment-card em {
  font-style: normal;
  font-weight: 900;
}
.admin-payment-card mark {
  padding: 5px 7px;
  border-radius: 999px;
  background: #e8f3f1;
  color: var(--brand);
  font-size: 11px;
  font-weight: 900;
}
.admin-payment-more {
  width: 100%;
  margin-top: 10px;
}
.message-inbox-summary,
.notice-work-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.message-role-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 260px);
  gap: 12px;
  align-items: stretch;
  margin-bottom: 12px;
}
.message-role-header > div,
.message-role-header aside {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.message-role-header span,
.message-role-header small {
  display: block;
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.message-role-header h2 {
  margin: 4px 0;
  font-size: 24px;
}
.message-role-header p {
  margin: 0;
  color: var(--muted);
  font-weight: 800;
  line-height: 1.35;
}
.message-role-header strong {
  display: block;
  margin-top: 6px;
  overflow-wrap: anywhere;
  line-height: 1.2;
}
.message-role-actions {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.message-role-action,
.message-metric {
  min-width: 0;
  display: grid;
  align-content: center;
  min-height: 48px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  text-align: center;
  text-decoration: none;
  font-weight: 900;
}
.message-role-action:hover,
.message-metric:hover {
  border-color: var(--brand);
  background: #edf8f6;
}
.message-metric {
  text-align: left;
}
.message-metric span {
  color: var(--muted);
  font-size: 12px;
}
.message-metric strong {
  color: var(--brand);
  font-size: 24px;
}
.message-thread-card,
.notice-card {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--brand);
  border-radius: 8px;
  background: #fbfdfd;
  color: var(--ink);
  text-decoration: none;
}
.notice-card {
  border-left-color: #c76428;
}
.notice-card-auto {
  border-left-color: #314d54;
}
.notice-card-main {
  display: grid;
  gap: 4px;
  color: inherit;
  text-decoration: none;
}
.notice-card-main:hover strong {
  color: var(--brand);
}
.message-thread-card span,
.notice-card span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
}
.message-thread-card.is-unread {
  background: #f3fbf9;
  border-color: #9bc8bd;
  border-left-color: #1d7f70;
}
.message-thread-card.is-unread strong::before {
  content: "Nuevo ";
  display: inline-flex;
  margin-right: 6px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #dff4ef;
  color: #1d7f70;
  font-size: 11px;
  vertical-align: middle;
}
.message-thread-card strong,
.notice-card strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 16px;
  line-height: 1.2;
}
.message-thread-card small,
.notice-card small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.message-channel-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.message-channel-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eef4f3;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.message-channel-badge.status-enviado {
  background: #dff4ef;
  color: #1d7f70;
}
.message-channel-badge.status-pendiente {
  background: #fff2cf;
  color: #7a5200;
}
.message-channel-badge.status-error {
  background: #ffe1dc;
  color: #9a2d1f;
}
.message-channel-badge.status-no-enviar,
.message-channel-badge.status-cancelado {
  background: #eef1f1;
  color: #637274;
}
.message-channel-badges small {
  flex-basis: 100%;
  color: var(--muted);
  font-weight: 800;
}
.notice-card .inline-form {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) auto;
  gap: 8px;
  margin: 8px 0 0;
}
.notice-card-actions {
  margin-top: 6px;
}
.notice-card-actions .table-action {
  width: 100%;
}
.notice-card .inline-form select,
.notice-card .inline-form input {
  min-width: 0;
  width: 100%;
}
.notice-detail-hero {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 18px;
  border: 1px solid var(--line);
  border-left: 7px solid var(--brand);
  border-radius: 8px;
  background: #fbfdfd;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.notice-detail-hero span,
.notice-detail-block span,
.notice-resolution-panel .panel-head span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.notice-detail-hero h2 {
  margin: 4px 0;
  overflow-wrap: anywhere;
  font-size: 26px;
  line-height: 1.1;
}
.notice-detail-hero small {
  color: var(--muted);
  font-weight: 800;
}
.notice-detail-badges {
  display: grid;
  gap: 7px;
  justify-items: end;
}
.notice-detail-badges strong,
.notice-detail-badges span {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 11px;
  border-radius: 999px;
  background: #edf4f3;
  color: var(--ink);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.notice-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 0.9fr);
  gap: 12px;
}
.notice-detail-block {
  min-width: 0;
  display: grid;
  gap: 8px;
  align-content: start;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}
.notice-detail-block p {
  margin: 0;
  color: var(--ink);
  font-weight: 800;
  line-height: 1.42;
  overflow-wrap: anywhere;
}
.notice-context-block .details {
  display: grid;
  gap: 8px;
  margin: 0;
}
.notice-context-block .details div {
  min-width: 0;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
}
.notice-context-block .details div:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.notice-context-block dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.notice-context-block dd {
  min-width: 0;
  margin: 0;
  font-weight: 900;
  overflow-wrap: anywhere;
}
.notice-admin-need {
  border-left: 5px solid #c76428;
  background: #fffaf2;
}
.notice-admin-need strong {
  line-height: 1.35;
}
.notice-admin-need small,
.notice-resolve-inline small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.3;
}
.notice-resolution-panel {
  display: grid;
  gap: 12px;
}
.notice-resolution-form {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}
.notice-resolution-form label {
  min-width: 0;
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.notice-resolution-form select,
.notice-resolution-form textarea {
  min-width: 0;
  width: 100%;
}
.notice-resolution-form .wide {
  grid-column: auto;
}
.notice-resolve-inline {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid #bfd6d2;
  border-radius: 8px;
  background: #f2faf8;
}
.notice-resolve-inline button {
  background: var(--brand);
}
.notice-resolve-inline button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}
.admin-compact-hero {
  padding: 14px;
}
.admin-hero h2 {
  margin: 0;
  font-size: 26px;
}
.admin-hero p {
  margin: 7px 0 0;
  color: var(--muted);
  line-height: 1.45;
}
.admin-hero-actions {
  display: grid;
  grid-template-columns: repeat(3, max-content);
  gap: 8px;
}
.admin-clock-shortcuts {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin: 12px 0 16px;
  padding: 14px;
  border: 1px solid #bfd6d2;
  border-radius: 8px;
  background: #f4faf8;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.admin-clock-self {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.admin-clock-self span {
  color: #176b73;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.admin-clock-self strong {
  color: #173f45;
  font-size: 20px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.admin-clock-self small {
  color: #45565c;
  font-weight: 800;
}
.admin-clock-actions {
  display: grid;
  grid-template-columns: repeat(3, max-content);
  gap: 8px;
}
.admin-clock-actions .table-action {
  min-height: 42px;
  align-items: center;
}
.quick-actions-panel { padding: 14px; }
.quick-actions {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}
.quick-actions .table-action {
  min-height: 44px;
  text-align: center;
}
.payroll-action-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.payroll-current-card,
.payroll-download-card {
  min-width: 0;
  display: grid;
  align-content: space-between;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.payroll-current-card {
  border-left: 6px solid var(--brand);
  background: #edf8f6;
}
.payroll-download-card {
  border-left: 6px solid #c76428;
}
.payroll-current-card span,
.payroll-download-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.payroll-current-card strong,
.payroll-download-card strong {
  font-size: 22px;
  line-height: 1.15;
}
.payroll-current-card small,
.payroll-download-card small {
  color: var(--muted);
  font-weight: 800;
  line-height: 1.3;
}
.teacher-home-section {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.teacher-home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  border: 1px solid #bfd6d2;
  border-radius: 8px;
  padding: 14px;
  background: #f4faf8;
}
.teacher-home-hero div {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.teacher-home-hero span {
  color: #176b73;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.teacher-home-hero strong {
  color: #173f45;
  font-size: 20px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.teacher-home-hero small {
  color: #45565c;
  font-weight: 800;
}
.teacher-home-hero .table-action {
  min-height: 46px;
}
.teacher-home-hero-link {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  border-radius: 8px;
  background: var(--brand);
  color: #ffffff;
  font-weight: 900;
  text-decoration: none;
}
.teacher-now-shell {
  display: grid;
  gap: 12px;
  margin-bottom: 16px;
}
.teacher-now-header {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}
.teacher-now-header > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.teacher-now-header span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.teacher-now-header strong {
  color: #173f45;
  font-size: 24px;
  line-height: 1.1;
  overflow-wrap: anywhere;
}
.teacher-now-header small {
  color: var(--muted);
  font-weight: 800;
}
.teacher-now-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, auto);
  gap: 14px;
  align-items: center;
  padding: 18px;
  border: 1px solid #bfd6d2;
  border-left: 8px solid var(--brand);
  border-radius: 8px;
  background: #f4faf8;
  box-shadow: 0 14px 30px rgba(20, 39, 42, 0.10);
}
.teacher-now-main {
  min-width: 0;
  display: grid;
  gap: 5px;
}
.teacher-now-main span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.teacher-now-main strong {
  color: #173f45;
  font-size: 27px;
  line-height: 1.08;
  overflow-wrap: anywhere;
}
.teacher-now-main small {
  color: #3f575c;
  font-size: 15px;
  font-weight: 850;
  line-height: 1.35;
}
.teacher-now-action {
  min-width: 0;
  display: grid;
}
.teacher-now-primary,
.teacher-now-action .teacher-live-finish {
  min-height: 54px;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 18px;
  border: 0;
  border-radius: 8px;
  background: var(--brand);
  color: #ffffff;
  font-size: 16px;
  font-weight: 950;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.teacher-now-action form {
  margin: 0;
}
.teacher-now-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.teacher-now-context,
.teacher-now-mini,
.teacher-after-panel {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}
.teacher-now-context span,
.teacher-now-mini span,
.teacher-after-panel span {
  color: #176b73;
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
}
.teacher-now-context strong,
.teacher-now-mini strong,
.teacher-after-panel strong {
  min-width: 0;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.teacher-now-context small {
  min-width: 0;
  color: var(--muted);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.teacher-now-mini-muted strong {
  color: var(--muted);
}
.teacher-after-panel {
  border-color: #d8c8ae;
  background: #fffaf1;
}
.teacher-after-panel .table-action {
  width: fit-content;
  margin-top: 5px;
}
.teacher-simultaneous-panel {
  border: 2px solid #19838d;
  background: #f2fbfb;
}
.teacher-simultaneous-panel .panel-head {
  align-items: flex-start;
}
.teacher-simultaneous-panel .panel-head p {
  max-width: 720px;
  margin: 4px 0 0;
  color: #365b60;
  font-weight: 750;
}
.teacher-simultaneous-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.teacher-simultaneous-card,
.teacher-simultaneous-switch-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 13px;
  border: 1px solid #9bcbd0;
  border-radius: 9px;
  background: #fff;
}
.teacher-simultaneous-card > div,
.teacher-simultaneous-switch-card > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.teacher-simultaneous-card span,
.teacher-simultaneous-switch-card span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.teacher-simultaneous-card strong,
.teacher-simultaneous-switch-card strong {
  overflow-wrap: anywhere;
  font-size: 16px;
}
.teacher-simultaneous-card small,
.teacher-simultaneous-switch-card small {
  color: var(--muted);
  font-weight: 800;
}
.teacher-simultaneous-switcher {
  display: grid;
  gap: 9px;
  margin-bottom: 12px;
  padding: 11px;
  border: 2px solid #19838d;
  border-radius: 10px;
  background: #f2fbfb;
}
.teacher-simultaneous-switch-title {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-items: baseline;
}
.teacher-simultaneous-switch-title strong {
  color: #155f67;
}
.teacher-simultaneous-switch-title span {
  color: #48666a;
  font-size: 13px;
  font-weight: 750;
}
.teacher-secondary-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.teacher-secondary-links .table-action {
  min-height: 40px;
}
.teacher-next-class-panel {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  padding: 16px;
  border: 1px solid #d8c8ae;
  border-left: 6px solid #c76428;
  border-radius: 8px;
  background: #fff8ec;
}
.teacher-next-class-panel div {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.teacher-next-class-panel span {
  color: #8f4f2b;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.teacher-next-class-panel strong {
  min-width: 0;
  color: #173f45;
  font-size: 22px;
  line-height: 1.12;
  overflow-wrap: anywhere;
}
.teacher-next-class-panel small {
  color: #45565c;
  font-weight: 850;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.teacher-next-class-empty {
  border-color: #d7e4e2;
  border-left-color: #8aa4a7;
  background: #f7fbfa;
}
.teacher-action-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.teacher-action-grid-primary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.teacher-action-grid-secondary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.teacher-action-card {
  min-height: 118px;
  display: grid;
  align-content: space-between;
  gap: 12px;
  text-decoration: none;
  color: var(--ink);
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
}
.teacher-action-grid-primary .teacher-action-card {
  min-height: 148px;
  color: #ffffff;
  border-color: transparent;
  box-shadow: 0 14px 28px rgba(20, 39, 42, 0.14);
}
.teacher-action-clock { background: #176b73; }
.teacher-action-attendance { background: #8f4f2b; }
.teacher-action-grid-primary .teacher-action-calendar {
  background: #2f6e54;
}
.teacher-action-grid-primary .teacher-action-card span {
  color: rgba(255,255,255,.86);
}
.teacher-action-grid-primary .teacher-action-card strong {
  font-size: 24px;
}
.teacher-action-notice {
  border-color: #edc6a4;
  background: #fff7e8;
}
.teacher-action-messages {
  border-color: #b8d6d1;
  background: #f2faf8;
}
.teacher-action-training {
  border-color: #d3cabd;
  background: #fbf7f0;
}
.teacher-action-calendar {
  border-color: #c3ccd0;
  background: #f1f5f6;
}
.teacher-action-payroll {
  border-color: #d7c5d7;
  background: #faf4fa;
}
.teacher-action-card strong {
  font-size: 20px;
  line-height: 1.15;
}
.teacher-action-card span {
  color: var(--muted);
  font-weight: 700;
}
.teacher-action-card:hover {
  border-color: var(--brand);
  box-shadow: 0 8px 18px rgba(23, 107, 115, 0.12);
}
.teacher-action-grid-primary .teacher-action-payroll {
  background: #8a3158;
}
.teacher-action-grid-primary .teacher-action-payroll:hover {
  background: #762847;
  border-color: #f3bfd4;
  box-shadow: 0 10px 22px rgba(118, 40, 71, 0.26);
}
.teacher-action-grid-primary .teacher-action-payroll:focus-visible {
  background: #8a3158;
  outline: 3px solid #4b122d;
  outline-offset: 3px;
  box-shadow: 0 10px 22px rgba(118, 40, 71, 0.24);
}
.teacher-action-grid-primary .teacher-action-payroll:active {
  background: #6a203e;
  transform: translateY(1px);
}
.teacher-today-list {
  display: grid;
  gap: 10px;
}
.teacher-today-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  gap: 6px 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.teacher-today-card span {
  color: #175c63;
  font-weight: 900;
}
.teacher-today-card strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 16px;
}
.teacher-today-card small {
  min-width: 0;
  color: var(--muted);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.teacher-today-card em {
  width: fit-content;
  padding: 2px 7px;
  border-radius: 999px;
  background: #fce6e2;
  color: #8f3f37;
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
}
.teacher-today-card .table-action {
  grid-column: 3;
  grid-row: 1 / span 2;
}
.teacher-today-actions {
  margin-top: 10px;
}
.teacher-attendance-day-hero {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 12px;
  padding: 15px;
  border: 1px solid #bfd6d2;
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #f4faf8;
}
.teacher-attendance-day-hero div {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.teacher-attendance-day-hero span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.teacher-attendance-day-hero strong {
  color: #173f45;
  font-size: 24px;
  line-height: 1.12;
}
.teacher-attendance-day-hero small {
  color: #45565c;
  font-weight: 850;
}
.teacher-date-form {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
  gap: 12px;
  align-items: end;
}
.teacher-class-select-list {
  display: grid;
  gap: 10px;
}
.teacher-class-select-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto;
  gap: 6px 12px;
  align-items: center;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.teacher-class-select-card > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.teacher-class-select-card span {
  color: #175c63;
  font-weight: 900;
}
.teacher-class-select-card strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 17px;
}
.teacher-class-select-card small {
  min-width: 0;
  color: var(--muted);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.teacher-class-select-card em {
  width: fit-content;
  padding: 2px 7px;
  border-radius: 999px;
  background: #fce6e2;
  color: #8f3f37;
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
}
.teacher-class-select-card .table-action {
  grid-column: 3;
  grid-row: 1 / span 2;
}
.teacher-assigned-group-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.teacher-assigned-group-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid #bfd6d2;
  border-radius: 8px;
  background: #f4faf8;
}
.teacher-assigned-group-card span {
  grid-column: 1 / -1;
  color: #175c63;
  font-size: 12px;
  font-weight: 900;
}
.teacher-assigned-group-card strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 16px;
}
.teacher-assigned-group-card small {
  min-width: 0;
  color: var(--muted);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.teacher-assigned-group-card .table-actions {
  grid-column: 2;
  grid-row: 2 / span 2;
  min-width: 0;
}
.teacher-session-choice-list {
  display: grid;
  gap: 8px;
}
.teacher-session-choice-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.teacher-session-choice-card strong,
.teacher-session-choice-card small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.teacher-session-choice-card small {
  margin-top: 3px;
  color: var(--muted);
  font-weight: 800;
}
.teacher-attendance-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.teacher-session-attendance-shell {
  display: grid;
  gap: 12px;
}
.teacher-session-compact-heading { display:grid; gap:4px; min-width:0; overflow-wrap:anywhere; }
.teacher-session-compact-heading > a { font-size:16px; font-weight:700; line-height:1.35; }
.teacher-session-compact-heading > span { font-size:14px; color:var(--muted); }
.teacher-session-compact-heading .teacher-session-date { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 8px; }
.teacher-session-compact-heading .teacher-session-date strong { color:var(--text); font-size:15px; }
.teacher-session-compact-heading .teacher-session-date small { color:var(--muted); font-size:12px; }
.teacher-session-tabs { min-width:0; }
.teacher-start-confirmation,
.teacher-start-date-warning { display:grid; gap:12px; padding:14px; border:1px solid #d99a21; border-radius:8px; background:#fff8e8; color:#4a3410; }
.teacher-start-confirmation > strong { display:block; white-space:pre-line; line-height:1.5; }
.teacher-start-date-warning > span { line-height:1.45; }
.teacher-start-date-warning .table-action { width:100%; min-height:48px; display:inline-flex; align-items:center; justify-content:center; }
.teacher-start-confirmation .table-actions { align-items:start; }
.teacher-start-form { display:grid; gap:10px; min-width:min(360px, 100%); margin:0; }
.teacher-start-reason { display:grid; gap:5px; font-weight:800; }
.teacher-start-reason span { font-size:12px; color:#6b5a38; font-weight:600; }
.teacher-start-reason select,
.teacher-start-reason textarea { width:100%; min-width:0; }
.teacher-session-change-panel > .section-details-body { padding:14px; }
.teacher-session-change-requests .teacher-coverage-offer-list { display:grid; gap:12px; }
.teacher-session-change-requests .teacher-coverage-offer-card { display:grid; gap:10px; padding:12px 0; border-bottom:1px solid var(--border); min-width:0; overflow-wrap:anywhere; }
.teacher-session-change-requests .teacher-coverage-offer-card > div:first-child { display:grid; gap:5px; }
.teacher-session-change-requests .teacher-coverage-offer-card p { margin:0; }
.teacher-session-change-requests .table-actions { display:flex; flex-wrap:wrap; gap:8px; }
.teacher-session-change-requests .table-actions form { flex:1 1 120px; min-width:0; }
.teacher-session-change-requests .table-actions button { width:100%; min-height:44px; }
.teacher-coverage-offers { border-left:6px solid #c76428; }
.teacher-coverage-offer-list { display:grid; gap:10px; }
.teacher-coverage-offers .teacher-coverage-offer-card {
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid #e1c2ad;
  border-radius:8px;
  background:#fff8ee;
}
.teacher-coverage-offers .teacher-coverage-offer-card > div:first-child { min-width:0; display:grid; gap:4px; }
.teacher-coverage-offers .teacher-coverage-offer-card span { color:#9a4b20; font-size:12px; font-weight:950; text-transform:uppercase; }
.teacher-coverage-offers .teacher-coverage-offer-card strong,
.teacher-coverage-offers .teacher-coverage-offer-card small { min-width:0; overflow-wrap:anywhere; }
.teacher-coverage-offers .teacher-coverage-offer-card small { color:var(--muted); font-weight:800; }
.teacher-coverage-offers .table-actions { display:flex; flex-wrap:wrap; gap:8px; }
.teacher-coverage-offers .table-actions form { margin:0; }
.teacher-today-coverages { border-left:6px solid #1f8a78; }
.teacher-today-coverage-list { display:grid; gap:10px; }
.teacher-today-coverage-card {
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid #b8d6d1;
  border-radius:8px;
  background:#f2faf8;
}
.teacher-today-coverage-card > div { min-width:0; display:grid; gap:4px; }
.teacher-today-coverage-card span { color:#176b73; font-size:12px; font-weight:950; text-transform:uppercase; }
.teacher-today-coverage-card strong,
.teacher-today-coverage-card small { min-width:0; overflow-wrap:anywhere; }
.teacher-today-coverage-card small { color:var(--muted); font-weight:800; }
.coverage-availability-context { display:grid; gap:10px; padding:14px 0; border-top:1px solid var(--line); }
.coverage-availability-context h3 { margin:0; font-size:17px; }
.coverage-candidate-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:8px; }
.coverage-candidate { min-width:0; display:grid; gap:4px; padding:11px; border:1px solid #b8d6d1; border-radius:8px; background:#f2faf8; }
.coverage-candidate strong,
.coverage-candidate small { min-width:0; overflow-wrap:anywhere; }
.coverage-candidate small { color:#176b73; font-weight:800; }
.class-inline-notice.is-history { margin-top:10px; background:#f7f8f8; border-color:var(--line); }
@media (max-width:760px) {
  .teacher-coverage-offers .teacher-coverage-offer-card { grid-template-columns:minmax(0,1fr); }
  .teacher-coverage-offers .table-actions form,
  .teacher-coverage-offers .table-actions button { width:100%; }
  .teacher-today-coverage-card { grid-template-columns:minmax(0,1fr); }
  .teacher-today-coverage-card .table-action { width:100%; justify-content:center; }
}
.teacher-incident-context { margin-bottom:14px; line-height:1.45; }
.teacher-incident-context a { font-weight:700; overflow-wrap:anywhere; }
.teacher-incident-context small { display:block; color:var(--muted); }
.teacher-incident-shell .teacher-incident-form-panel { margin-top:0; }
.teacher-message-shell, .teacher-payroll-shell { min-width:0; }
.teacher-message-shell > .table-actions { margin:12px 0; }
.teacher-message-shell > .section-details, .teacher-payroll-shell > .section-details { margin:12px 0; }
.teacher-message-shell > .section-details > .section-details-body,
.teacher-payroll-shell > .section-details > .section-details-body { padding:14px; }
.teacher-message-shell .filter-pills, .teacher-payroll-shell .filter-pills { flex-wrap:wrap; }
.teacher-payroll-list { display:grid; gap:12px; }
.teacher-payroll-item { min-width:0; padding:16px; border:1px solid var(--line); border-radius:8px; background:white; }
.teacher-payroll-item header { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px; }
.teacher-payroll-item h2 { margin:0; font-size:18px; line-height:1.35; }
.teacher-payroll-item header > strong { font-size:18px; }
.teacher-payroll-item dl { display:flex; flex-wrap:wrap; gap:12px 24px; margin:14px 0; }
.teacher-payroll-item dt { color:var(--muted); font-size:12px; }
.teacher-payroll-item dd { margin:3px 0 0; overflow-wrap:anywhere; }
.teacher-payroll-item footer { display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; }
.teacher-payroll-item footer a { display:inline-flex; align-items:center; min-height:36px; }
.teacher-payroll-recent .teacher-payroll-item { padding:10px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; }
.teacher-payroll-recent h3 { margin:0; font-size:16px; }
.teacher-payroll-recent .teacher-payroll-item header > strong { font-size:16px; }
.teacher-payroll-recent .teacher-payroll-list { gap:4px; }
.payroll-explanation-summary .metrics,
.payroll-explanation-company .metrics,
.payroll-payment-overview .metrics { margin-bottom:16px; }
.payroll-payment-board td { vertical-align:top; }
.payroll-payment-board td:first-child a { display:block; }
.payroll-payment-board td small { display:block; margin-top:4px; color:var(--muted); }
.payroll-payment-upload-details { min-width:220px; }
.payroll-payment-upload-details > summary { cursor:pointer; font-weight:700; color:var(--accent); }
.payroll-payment-inline-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.payroll-payment-inline-form label { display:grid; gap:5px; font-size:12px; color:var(--muted); }
.payroll-payment-inline-form .wide,
.payroll-payment-inline-form button { grid-column:1/-1; }
.payroll-payment-inline-form input { min-width:0; }
.status-badge.pending { background:#f4e5d6; color:#713f12; }
.status-badge.warning { background:#fff0bf; color:#713f12; }
@media (max-width:760px) {
  .payroll-payment-inline-form { grid-template-columns:1fr; }
  .payroll-payment-inline-form .wide,
  .payroll-payment-inline-form button { grid-column:auto; }
}
.vacation-estimate { padding:10px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.vacation-estimate-year + .vacation-estimate-year { margin-top:12px; }
.vacation-estimate-values { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:8px 0; }
.vacation-estimate-values dt { font-size:12px; color:var(--muted); }
.vacation-estimate-values dd { margin:3px 0 0; font-weight:700; overflow-wrap:anywhere; }
.teacher-cash-page { min-width:0; gap:12px; }
.teacher-cash-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; }
.teacher-cash-tabs a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:4px; border-bottom:2px solid var(--line); color:var(--brand); text-decoration:none; }
.teacher-cash-tabs a.active { border-color:var(--brand); font-weight:700; }
.teacher-cash-page .panel { padding:12px; }
.teacher-cash-page h2 { font-size:17px; line-height:1.35; }
.teacher-cash-page p { margin:6px 0; }
.teacher-cash-page .table-actions { flex-wrap:wrap; gap:8px 16px; }
.teacher-cash-page .table-actions a { display:inline-flex; align-items:center; min-height:40px; }
.teacher-cash-balance { padding:12px 0; border-bottom:1px solid var(--line); }
.teacher-cash-record { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:8px; padding:12px 0; border-bottom:1px solid var(--line); }
.teacher-cash-record:has(input[type="checkbox"]) { grid-template-columns:44px minmax(0,1fr) auto; }
.teacher-cash-select { display:flex; align-items:center; justify-content:center; width:44px; height:44px; margin:0; cursor:pointer; }
.teacher-cash-record > div { min-width:0; overflow-wrap:anywhere; }
.teacher-cash-record input[type="checkbox"], .teacher-cash-page .checkbox-row input[type="checkbox"] { width:22px; height:22px; min-width:22px; min-height:22px; margin:0; padding:0; }
.teacher-cash-record small { display:block; color:var(--muted); }
.teacher-cash-amount { font-size:14px; white-space:nowrap; }
.teacher-cash-float > summary { cursor:pointer; padding:12px 0; }
.teacher-cash-proof dl { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:10px; }
.teacher-cash-proof dt { color:var(--muted); }
.teacher-cash-proof dd { margin:0; overflow-wrap:anywhere; }
.teacher-cash-compact form.inline-form { display:grid; gap:8px; min-width:0; width:100%; max-width:none; }
@media print {
  body:has(.teacher-cash-proof) .sidebar, body:has(.teacher-cash-proof) aside,
  body:has(.teacher-cash-proof) .topbar, .teacher-cash-proof .table-actions { display:none !important; }
  body:has(.teacher-cash-proof) .workspace { margin:0; padding:0; }
}
@media (max-width: 760px) {
  .teacher-mobile-table.teacher-cash-compact tr { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; padding:8px 0; }
  .teacher-mobile-table.teacher-cash-compact td { padding:6px 4px; min-width:0; }
  .teacher-cash-compact td:first-child, .teacher-cash-compact td:last-child { grid-column:1 / -1; }
  .teacher-mobile-table.teacher-cash-compact td:first-child::before { display:none; }
  .teacher-cash-compact td[data-label="Pendiente"] { font-weight:700; }
  .teacher-cash-compact form.inline-form { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:end; }
  .teacher-cash-compact form label:first-of-type { grid-column:1 / -1; }
  .teacher-cash-compact .cash-review-reason, .teacher-cash-compact form button { grid-column:1 / -1; }
  .teacher-cash-compact form button { min-height:44px; white-space:normal; }
  .teacher-cash-compact [role="note"] { margin:6px 0; }
}
.role-profesor .workspace:has(.teacher-payroll-shell),
.role-profesor .workspace:has(.teacher-message-shell),
.role-profesor .workspace:has(.teacher-incident-shell),
.role-profesor .workspace:has(.training-course-panel) { align-content:start; gap:14px; }
.role-profesor .workspace:has(.teacher-payroll-shell) .topbar,
.role-profesor .workspace:has(.teacher-message-shell) .topbar,
.role-profesor .workspace:has(.teacher-incident-shell) .topbar { margin-bottom:0; }
.teacher-session-tabs > input { position:absolute; width:1px; height:1px; opacity:0; }
.teacher-session-tab-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; margin-bottom:12px; }
.teacher-session-tab-nav label { min-width:0; padding:10px 2px; text-align:center; border:1px solid var(--line); border-radius:6px; background:white; font-size:13px; font-weight:700; cursor:pointer; }
.teacher-session-tab-panel { display:none; min-width:0; }
#teacher_session_attendance:checked ~ .session-tab-attendance,
#teacher_session_learning:checked ~ .session-tab-learning,
#teacher_session_notices:checked ~ .session-tab-notices,
#teacher_session_details:checked ~ .session-tab-details { display:grid; gap:12px; }
#teacher_session_attendance:checked ~ .teacher-session-tab-nav label[for="teacher_session_attendance"],
#teacher_session_learning:checked ~ .teacher-session-tab-nav label[for="teacher_session_learning"],
#teacher_session_notices:checked ~ .teacher-session-tab-nav label[for="teacher_session_notices"],
#teacher_session_details:checked ~ .teacher-session-tab-nav label[for="teacher_session_details"] { background:var(--brand); color:white; border-color:var(--brand); }
#teacher_session_attendance:focus-visible ~ .teacher-session-tab-nav label[for="teacher_session_attendance"],
#teacher_session_learning:focus-visible ~ .teacher-session-tab-nav label[for="teacher_session_learning"],
#teacher_session_notices:focus-visible ~ .teacher-session-tab-nav label[for="teacher_session_notices"],
#teacher_session_details:focus-visible ~ .teacher-session-tab-nav label[for="teacher_session_details"] { outline:2px solid var(--brand); outline-offset:2px; }
.teacher-session-tabs .teacher-coverage-panel > .section-details-body,
.teacher-session-tabs .teacher-provisional-attendance { padding:14px; }
.teacher-session-tabs .teacher-coverage-panel .form-grid,
.teacher-session-tabs .teacher-provisional-attendance .form-grid { margin:0; grid-template-columns:minmax(0,1fr); }
.teacher-session-tabs .teacher-coverage-panel .form-actions,
.teacher-session-tabs .teacher-provisional-attendance .form-actions { min-width:0; }
.teacher-session-top-actions {
  display: flex;
  justify-content: flex-start;
  margin-top: -4px;
}
.teacher-session-top-actions .table-action {
  min-height: 36px;
  padding: 0 11px;
  background: #ffffff;
  color: var(--brand);
}
.teacher-attendance-focus-hero {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 112px;
  gap: 12px;
  align-items: center;
  margin-bottom: 10px;
  padding: 15px;
  border: 1px solid #bfd6d2;
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #f4faf8;
}
.teacher-attendance-focus-hero div:first-child {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.teacher-attendance-focus-hero span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.teacher-attendance-focus-hero strong {
  min-width: 0;
  color: #173f45;
  font-size: 23px;
  line-height: 1.1;
  overflow-wrap: anywhere;
}
.teacher-attendance-focus-hero small {
  color: #45565c;
  font-weight: 850;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.teacher-attendance-count {
  display: grid;
  place-items: center;
  min-height: 88px;
  padding: 10px;
  border-radius: 8px;
  background: #ffffff;
  border: 1px solid #b8d6d1;
}
.teacher-attendance-count strong {
  color: #173f45;
  font-size: 18px;
  line-height: 1.15;
  text-align: center;
}
.teacher-attendance-progress {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.teacher-attendance-progress span {
  min-width: 0;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: #315155;
  font-size: 13px;
  font-weight: 900;
  text-align: center;
}
.teacher-attendance-state {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px;
  border: 1px solid #f0c78a;
  border-radius: 8px;
  background: #fff8ec;
}
.teacher-attendance-state > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.teacher-attendance-state strong {
  color: #173f45;
  font-size: 19px;
}
.teacher-attendance-state span,
.teacher-session-guidance {
  color: #45565c;
  font-weight: 850;
  line-height: 1.35;
}
.teacher-session-guidance {
  margin: 0;
}
.teacher-attendance-state-done {
  border-color: #badcc6;
  background: #f3fbf6;
}
.teacher-attendance-state-cancelled,
.teacher-attendance-state-readonly {
  border-color: #d5dde2;
  background: #f7faf9;
}
.teacher-session-primary-action {
  min-width: min(220px, 100%);
}
.teacher-session-primary-action form {
  margin: 0;
}
.teacher-session-primary-action .table-action,
.teacher-session-primary-action .teacher-live-finish {
  width: 100%;
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
}
.teacher-session-primary-action .table-action {
  background: var(--brand);
  color: #ffffff;
  font-weight: 950;
}
.teacher-session-context {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.teacher-session-context .panel {
  margin-bottom: 0;
}
.teacher-session-work-intro {
  display: grid;
  gap: 4px;
  margin-bottom: 12px;
  padding: 13px 14px;
  border-color: #badcc6;
  background: #f3fbf6;
}
.teacher-session-work-intro strong {
  color: #176b3f;
  font-size: 18px;
}
.teacher-session-work-intro span {
  color: #45565c;
  font-weight: 750;
  line-height: 1.4;
}
.teacher-session-secondary-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.teacher-session-secondary-actions .table-action {
  min-height: 38px;
  padding: 0 12px;
  background: #ffffff;
  color: var(--brand);
}
.teacher-attendance-complete {
  display: grid;
  gap: 3px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid #badcc6;
  border-radius: 8px;
  background: #f3fbf6;
}
.teacher-attendance-complete strong {
  color: #176b3f;
  font-size: 18px;
}
.teacher-attendance-complete span {
  color: #315155;
  font-weight: 850;
}
.teacher-attendance-incomplete {
  border-color: #f0c78a;
  background: #fff8ec;
}
.teacher-attendance-incomplete strong {
  color: #7a5200;
}
.teacher-attendance-complete .table-action {
  width: fit-content;
  margin-top: 6px;
}
.teacher-live-shell {
  display: grid;
  gap: 12px;
}
.teacher-closing-note { display: grid; gap: 6px; margin-top: 12px; }
.teacher-session-notes { margin: 12px 0; overflow-wrap: anywhere; }
.teacher-session-notes h3 { font-size: 15px; margin: 0 0 6px; }
.teacher-session-notes p { white-space: pre-wrap; margin: 0; }
.teacher-plan-mobile { min-width: 0; }
.teacher-plan-list { margin: 12px 0; padding: 0; list-style: none; }
.teacher-plan-entry { display: grid; gap: 6px; padding: 12px 0; border-top: 1px solid #dce5e5; overflow-wrap: anywhere; }
.teacher-plan-entry p { margin: 0; white-space: pre-wrap; }
.teaching-plan-header { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:14px; border:1px solid var(--border); border-radius:10px; background:#fff; }
.teaching-plan-header > div:first-child { display:grid; gap:4px; min-width:0; }
.teaching-plan-header > div:first-child > a { font-size:18px; font-weight:900; overflow-wrap:anywhere; }
.teaching-plan-header > div:first-child > span { color:var(--muted); font-weight:750; }
.teaching-plan-filter-nav { display:flex; gap:6px; padding:4px; margin:12px 0; border:1px solid var(--border); border-radius:10px; background:#eef4f3; }
.teaching-plan-filter-nav a { flex:1 1 0; padding:9px 12px; border-radius:7px; color:var(--text); font-weight:900; text-align:center; text-decoration:none; }
.teaching-plan-filter-nav a.is-active { background:#fff; box-shadow:0 1px 4px rgba(23,63,69,.14); color:var(--brand); }
.teaching-plan-class-list,
.teaching-plan-content-overview-list { display:grid; gap:10px; }
.teaching-plan-class-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; padding:14px; border:1px solid var(--border); border-radius:10px; background:#fff; }
.teaching-plan-class-date { display:grid; gap:2px; min-width:0; text-decoration:none; }
.teaching-plan-class-date strong { color:var(--text); font-size:16px; overflow-wrap:anywhere; }
.teaching-plan-class-date small { color:var(--muted); font-weight:800; }
.teaching-plan-class-state { color:var(--muted); font-size:12px; font-weight:850; text-align:right; }
.teaching-plan-class-card ul,
.teaching-plan-content-dates { grid-column:1 / -1; display:grid; gap:7px; margin:5px 0 0; padding:0; list-style:none; }
.teaching-plan-class-card li:not(.empty-state) { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px 12px; padding-top:7px; border-top:1px solid #e4ecea; }
.teaching-plan-class-card li a { font-weight:900; }
.teaching-plan-class-card li small { color:var(--muted); font-weight:750; }
.teaching-plan-view-nav { margin:12px 0; }
.teaching-plan-content-overview .panel-head { align-items:flex-start; }
.teaching-plan-content-dates li { display:flex; justify-content:space-between; gap:10px; padding:7px 0; border-bottom:1px solid #e4ecea; }
.teaching-plan-content-dates li a { font-weight:850; }
.teaching-plan-content-dates li small { color:var(--muted); white-space:nowrap; }
.teaching-plan-content-overview details { margin-top:12px; }
.teaching-plan-content-overview summary { cursor:pointer; font-weight:900; color:var(--brand); }
.teaching-plan-calendar { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; margin-top:12px; }
.teaching-plan-calendar-month { padding:10px; border:1px solid var(--border); border-radius:9px; background:#f8fbfa; }
.teaching-plan-calendar-month > strong { display:block; margin-bottom:8px; text-align:center; }
.teaching-plan-calendar-weekdays,
.teaching-plan-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; text-align:center; }
.teaching-plan-calendar-weekdays { margin-bottom:4px; color:var(--muted); font-size:11px; font-weight:900; }
.teaching-plan-calendar-day,
.teaching-plan-calendar-empty { display:grid; place-items:center; min-height:28px; border-radius:6px; font-size:12px; }
.teaching-plan-calendar-day.is-planned { background:var(--brand); color:#fff; font-weight:950; }
.teacher-live-summary-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 116px;
  gap: 12px;
  align-items: center;
  border-left: 6px solid var(--brand);
  background: #f4faf8;
}
.teacher-live-summary-card .details {
  margin: 0;
}
.teacher-live-summary-card:not(:has(.teacher-live-timer)) {
  grid-template-columns: minmax(0, 1fr);
}
.teacher-live-hero {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 116px;
  gap: 12px;
  align-items: center;
  padding: 15px;
  border: 1px solid #bfd6d2;
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #f4faf8;
}
.teacher-live-hero div:first-child {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.teacher-live-hero span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.teacher-live-hero strong {
  min-width: 0;
  color: #173f45;
  font-size: 23px;
  line-height: 1.1;
  overflow-wrap: anywhere;
}
.teacher-live-hero small {
  color: #45565c;
  font-weight: 850;
  line-height: 1.35;
}
.teacher-live-timer {
  display: grid;
  place-items: center;
  min-height: 86px;
  border: 1px solid #b8d6d1;
  border-radius: 8px;
  background: #ffffff;
}
.teacher-live-timer strong {
  color: #173f45;
  font-size: 24px;
  line-height: 1;
}
.teacher-live-timer span {
  color: #45565c;
  font-size: 11px;
  font-weight: 900;
}
.teacher-pickup-panel {
  display: grid;
  gap: 12px;
}
.teacher-pickup-panel p {
  margin: 0;
  color: #45565c;
  font-weight: 850;
  line-height: 1.4;
}
.teacher-pickup-countdown {
  display: grid;
  place-items: center;
  min-height: 132px;
  border: 1px solid #b8d6d1;
  border-radius: 8px;
  background: #f3fbf6;
}
.teacher-pickup-countdown strong {
  color: #173f45;
  font-size: 54px;
  line-height: 1;
}
.teacher-pickup-countdown span {
  color: #45565c;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.teacher-live-status,
.teacher-live-attendance-ok,
.teacher-live-next {
  display: grid;
  gap: 4px;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}
.teacher-live-status strong,
.teacher-live-attendance-ok strong,
.teacher-live-next strong {
  color: #173f45;
  font-size: 18px;
}
.teacher-live-status span,
.teacher-live-attendance-ok span,
.teacher-live-next span {
  color: #45565c;
  font-weight: 850;
}
.teacher-live-final-summary,
.teacher-content-card-list {
  display: grid;
  gap: 10px;
}
.teacher-live-final-summary {
  padding: 13px 14px;
  border: 1px solid #badcc6;
  border-radius: 8px;
  background: #f3fbf6;
}
.teacher-live-final-summary strong {
  color: #173f45;
  font-size: 18px;
}
.teacher-live-final-summary span {
  color: #45565c;
  font-weight: 850;
}
.teacher-content-card {
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid #cbd7d5;
  border-radius: 8px;
  background: #ffffff;
  color: inherit;
  text-decoration: none;
}
.teacher-content-card span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.teacher-content-card strong {
  color: #173f45;
  font-size: 18px;
}
.teacher-content-card small {
  color: #45565c;
  font-weight: 850;
}
.teacher-live-attendance-ok.done {
  border-color: #badcc6;
  background: #f3fbf6;
}
.teacher-live-attendance-ok.pending {
  border-color: #f0c78a;
  background: #fff8ec;
}
.teacher-live-shell.is-warning .teacher-live-status {
  border-color: #e0a23b;
  background: #fff6dd;
}
.teacher-live-shell.is-ended .teacher-live-status,
.teacher-live-status-ended,
.teacher-live-clockout {
  border-color: #badcc6;
  background: #f3fbf6;
}
.teacher-live-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
}
.teacher-live-primary-actions {
  grid-template-columns: 1fr;
}
.teacher-live-actions form {
  margin: 0;
}
.teacher-live-actions .table-action,
.teacher-live-finish,
.teacher-live-closing,
.teacher-live-next .table-action {
  width: 100%;
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.teacher-live-finish {
  border: 1px solid #b8c2d4;
  border-radius: 8px;
  background: #ffffff;
  color: #1f2937;
  font-weight: 900;
  cursor: pointer;
}
.teacher-live-closing {
  border: 1px solid #b8c2d4;
  border-radius: 8px;
  background: #ffffff;
  color: #1f2937;
  font-weight: 900;
  cursor: pointer;
}
.teacher-live-secondary-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  justify-items: center;
}
.teacher-live-secondary-actions .table-action {
  width: min(100%, 460px);
  min-height: 46px;
  padding: 0 14px;
  background: #ffffff;
  color: var(--brand);
  border-color: #b8d6d1;
  font-weight: 900;
}
.teacher-live-next {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}
.teacher-live-next span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.teacher-live-next .table-action {
  grid-column: 2;
  grid-row: 1 / span 2;
}
.teacher-finish-delivery-form {
  display: grid;
  gap: 12px;
}
.teacher-finish-delivery-form > .teacher-live-finish {
  min-height: 58px;
}
.teacher-delivery-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.teacher-delivery-choice {
  min-width: 0;
}
.teacher-delivery-choice input {
  position: absolute;
  width: 1px !important;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.teacher-delivery-choice span,
.teacher-delivery-pill {
  min-height: 42px;
  display: inline-flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  padding: 8px 10px;
  border: 1px solid #cbd7d5;
  border-radius: 8px;
  background: #ffffff;
  color: #173f45;
  font-weight: 900;
  text-align: center;
}
.teacher-delivery-choice input:checked + span {
  border-color: var(--brand);
  background: #eef8f6;
  color: var(--brand-dark);
  box-shadow: inset 0 0 0 1px var(--brand);
}
.teacher-delivery-extra {
  margin-top: 8px;
}
.teacher-delivery-reason {
  display: grid;
  gap: 5px;
  margin-top: 8px;
  color: #315155;
  font-weight: 900;
}
.teacher-delivery-reason textarea {
  width: 100%;
  min-height: 82px;
  resize: vertical;
  box-sizing: border-box;
}
.teacher-delivery-reason[hidden] {
  display: none !important;
}
.teacher-delivery-extra summary {
  cursor: pointer;
  color: var(--brand);
  font-weight: 900;
}
.teacher-delivery-extra-fields {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}
.teacher-delivery-extra-fields label,
.teacher-delivery-extra-fields input {
  min-width: 0;
  max-width: 100%;
}
.teacher-delivery-extra-fields input {
  width: 100% !important;
  box-sizing: border-box;
}
.teacher-attendance-quick-panel {
  display: grid;
  gap: 14px;
}
.teacher-attendance-live-counts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.teacher-attendance-live-counts span {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f7fafb;
  color: var(--muted);
  font-size: 12px;
  text-align: center;
}
.teacher-attendance-live-counts strong {
  color: var(--ink);
  font-size: 18px;
}
.teacher-attendance-global-feedback {
  min-height: 0;
  margin: -6px 0 0;
  color: #8a3d18;
  font-size: 13px;
  font-weight: 850;
}
.teacher-attendance-global-feedback:empty {
  display: none;
}
.teacher-class-detail-secondary {
  margin-bottom: 0;
}
.teacher-session-state-form {
  display: grid;
  gap: 12px;
}
.teacher-quick-attendance-list {
  display: grid;
  gap: 10px;
}
.teacher-attendance-quick-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-left: 5px solid #c3ccd0;
  border-radius: 8px;
  background: #fbfdfd;
}
.teacher-attendance-quick-row.status-presente {
  border-left-color: #2f6d4e;
  background: #f3fbf6;
}
.teacher-attendance-quick-row.status-ausente {
  border-left-color: #c76428;
  background: #fff7e8;
}
.teacher-attendance-quick-row strong,
.teacher-attendance-quick-row small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.teacher-attendance-quick-row strong {
  font-size: 17px;
  line-height: 1.2;
}
.teacher-attendance-name-line {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.arrival-origin-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 7px;
  border: 1px solid #d5dde2;
  border-radius: 999px;
  background: #eef4f7;
  color: #24404a;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0;
}
.arrival-origin-badge.origin-comedor {
  border-color: #f0c78a;
  background: #fff3d6;
  color: #704900;
}
.arrival-origin-badge.origin-casa {
  border-color: #b8d6d1;
  background: #eef8f5;
  color: #176b73;
}
.attendance-family-notice {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  border-radius: 999px;
  padding: 3px 8px;
  border: 1px solid #d9c49f;
  background: #fff7e6;
  color: #704900;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0;
}
.attendance-family-notice.notice-absence {
  border-color: #dba989;
  background: #fff0e8;
  color: #8a3d18;
}
.attendance-family-notice.notice-late {
  border-color: #d9c49f;
  background: #fff7e6;
  color: #704900;
}
.teacher-student-health-notice {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 9px;
  border: 2px solid #b42318;
  border-radius: 999px;
  background: #fff0ee;
  color: #8f1d14;
  font-size: 11px;
  font-weight: 950;
  line-height: 1.15;
  letter-spacing: .01em;
  text-decoration: none;
  cursor: pointer;
}
.teacher-student-health-direct-form { display:inline; margin:0; }
.teacher-student-health-direct-form button.teacher-student-health-notice { width:auto; font-family:inherit; }
.teacher-student-health-panel {
  margin: 0 0 16px;
  padding: 14px 16px;
  border: 2px solid #b42318;
  border-radius: 16px;
  background: #fff4f2;
  color: #6f1710;
  box-shadow: 0 10px 24px rgba(180, 35, 24, .08);
}
.teacher-student-health-panel strong {
  display: block;
  margin-bottom: 6px;
  font-size: 17px;
}
.teacher-student-health-panel p {
  margin: 5px 0 0;
  line-height: 1.45;
}
.teacher-student-health-panel form { margin-top:12px; }
@media (max-width: 640px) {
  .teaching-plan-header { display:grid; }
  .teaching-plan-header .table-actions { display:grid; grid-template-columns:1fr; width:100%; }
  .teaching-plan-class-card { grid-template-columns:1fr; }
  .teaching-plan-class-state { text-align:left; }
}
.attendance-family-notice-note {
  display: inline-block;
  margin-left: 4px;
  font-size: 12px;
  color: #704900;
}
.attendance-family-notice-note summary {
  cursor: pointer;
  font-weight: 850;
}
.attendance-family-notice-note p {
  margin: 5px 0 0;
  max-width: 260px;
  line-height: 1.3;
}
.teacher-attendance-origin-warning {
  margin: 7px 0 0;
  color: #704900;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.3;
}
.teacher-attendance-origin-warning.origin-warning-soft {
  color: #176b73;
}
.teacher-provisional-attendance {
  display: grid;
  gap: 12px;
}
.teacher-provisional-current {
  border: 1px solid #f0c78a;
  background: #fff8e8;
  border-radius: 8px;
  padding: 12px;
}
.teacher-provisional-current strong {
  display: block;
  margin-bottom: 5px;
  color: #704900;
}
.teacher-provisional-current ul {
  margin: 0;
  padding-left: 18px;
}
.teacher-provisional-current h3 { margin:0 0 8px; font-size:15px; color:#704900; }
.teacher-provisional-current li { margin:6px 0; overflow-wrap:anywhere; }
.teacher-provisional-current li strong { margin-bottom:2px; }
.teacher-provisional-current li span { display:block; font-size:13px; color:#704900; }
.teacher-attendance-totals { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; margin:4px 0 12px; }
.teacher-attendance-totals span { font-size:13px; color:var(--muted); }
.teacher-provisional-reminder {
  border: 1px solid #f0c78a;
  background: #fff8e8;
  color: #704900;
  border-radius: 8px;
  padding: 14px;
  display: grid;
  gap: 4px;
}
.teacher-provisional-reminder strong {
  font-size: 15px;
}
.teacher-provisional-reminder span {
  font-size: 14px;
  line-height: 1.35;
}
.teacher-attendance-quick-row small {
  color: var(--muted);
  font-weight: 800;
  margin-top: 3px;
}
.teacher-attendance-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(88px, 1fr));
  gap: 7px;
}
.teacher-attendance-buttons form {
  margin: 0;
}
.teacher-attendance-save-feedback {
  grid-column: 1 / -1;
  min-height: 17px;
  margin: -3px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.teacher-attendance-save-feedback[data-state="saved"] {
  color: #2f6d4e;
}
.teacher-attendance-save-feedback[data-state="warning"],
.teacher-attendance-save-feedback[data-state="error"] {
  color: #8a3d18;
}
.teacher-attendance-retry {
  grid-column: 1 / -1;
  justify-self: start;
  min-height: 38px;
  padding: 0 12px;
}
.teacher-attendance-quick-row:has(.teacher-attendance-save-feedback[data-state="saving"]) {
  opacity: .78;
}
.compact-origin-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
  align-items: center;
}
.compact-origin-form select {
  min-width: 0;
}
.attendance-mark {
  width: 100%;
  min-height: 56px;
  padding: 0 12px;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--ink);
  font-size: 15px;
  font-weight: 950;
}
.attendance-mark-presente.active,
.attendance-mark-presente:hover {
  background: #2f6d4e;
  color: #ffffff;
  border-color: #2f6d4e;
}
.attendance-mark-ausente.active,
.attendance-mark-ausente:hover {
  background: #c76428;
  color: #ffffff;
  border-color: #c76428;
}
.family-home-hero {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 16px;
}
.family-focus-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.family-focus-card {
  min-width: 0;
  min-height: 132px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.07);
}
.family-focus-calendar {
  border-color: #9fc5c0;
  background: #edf8f6;
}
.family-focus-payments {
  border-color: #e1c2ad;
  background: #fff4ec;
}
.family-focus-notice {
  border-color: #edc6a4;
  background: #fff7e8;
}
.family-focus-children {
  border-color: #c3ccd0;
  background: #f1f5f6;
}
.family-focus-card:hover {
  border-color: var(--brand);
  box-shadow: 0 12px 26px rgba(23, 107, 115, 0.12);
}
.family-focus-icon {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--brand);
  color: #ffffff;
  font-size: 18px;
  font-weight: 900;
}
.family-focus-payments .family-focus-icon { background: #8f4f2b; }
.family-focus-notice .family-focus-icon { background: #c76428; }
.family-focus-children .family-focus-icon { background: #314d54; }
.student-focus-grid .family-focus-card {
  min-height: 118px;
}
.family-focus-copy {
  min-width: 0;
  display: grid;
  gap: 6px;
}
.family-focus-copy small {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
  line-height: 1.1;
  text-transform: uppercase;
}
.family-focus-copy strong {
  font-size: 20px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.family-focus-copy em {
  color: var(--muted);
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.25;
}
.responsible-home-intro {
  display: grid;
  gap: 4px;
  margin-bottom: 12px;
}
.responsible-home-intro span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.responsible-home-intro strong {
  font-size: 24px;
  line-height: 1.12;
}
.responsible-home-intro small {
  color: var(--muted);
  font-weight: 850;
}
.responsible-next-hero {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.8fr) auto;
  gap: 14px;
  align-items: center;
  padding: 18px;
  margin-bottom: 14px;
  border: 1px solid #9fc5c0;
  border-left: 7px solid var(--brand);
  border-radius: 8px;
  background: #edf8f6;
  box-shadow: 0 12px 26px rgba(20, 39, 42, 0.08);
}
.responsible-next-hero.is-cancelled {
  border-color: #e1c2ad;
  border-left-color: #c76428;
  background: #fff1e5;
}
.responsible-next-hero.no-class {
  grid-template-columns: minmax(0, 1fr) auto;
  border-color: var(--line);
  border-left-color: #9aa7ac;
  background: #f7faf9;
}
.responsible-next-main {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.responsible-next-main span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.responsible-next-hero.is-cancelled .responsible-next-main span {
  color: #8f3f37;
}
.responsible-next-main strong {
  min-width: 0;
  font-size: 25px;
  line-height: 1.08;
  overflow-wrap: anywhere;
}
.responsible-next-main small {
  color: var(--muted);
  font-weight: 900;
}
.responsible-next-details {
  min-width: 0;
  margin: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.responsible-next-details div {
  min-width: 0;
}
.responsible-next-action {
  min-width: 0;
  display: flex;
  justify-content: flex-end;
}
.responsible-next-actions {
  flex-wrap: wrap;
  gap: 8px;
}
.responsible-next-alert {
  min-width: 0;
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid #d99d76;
  border-radius: 8px;
  background: #fff8ef;
  color: #8f3f37;
}
.responsible-next-alert strong,
.responsible-next-alert span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.responsible-secondary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.responsible-info-card {
  min-width: 0;
  display: grid;
  gap: 6px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(20, 39, 42, 0.05);
}
.responsible-info-payments {
  border-color: #e1c2ad;
  background: #fff4ec;
}
.responsible-info-students {
  border-color: #c3ccd0;
  background: #f1f5f6;
}
.responsible-info-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.responsible-info-card strong {
  font-size: 20px;
  line-height: 1.12;
  overflow-wrap: anywhere;
}
.responsible-info-card em {
  color: var(--ink);
  font-size: 18px;
  font-style: normal;
  font-weight: 950;
}
.responsible-info-card small {
  color: var(--muted);
  font-weight: 750;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.responsible-info-card b {
  width: fit-content;
  margin-top: 4px;
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--brand);
  color: #ffffff;
  font-size: 12px;
  font-weight: 950;
}
.responsible-sent-notices-panel {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  margin-bottom: 14px;
  box-shadow: 0 8px 18px rgba(20, 39, 42, 0.05);
}
.responsible-sent-notice-list {
  display: grid;
  gap: 9px;
}
.responsible-sent-notice-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid #d8e6e2;
  background: #f7fbfa;
  border-radius: 8px;
  padding: 10px 12px;
}
.responsible-sent-notice-card strong,
.responsible-sent-notice-card span,
.responsible-sent-notice-card small {
  display: block;
}
.responsible-sent-notice-card strong {
  color: #24404a;
  font-size: 15px;
}
.responsible-sent-notice-card span {
  color: #4e6268;
  font-size: 13px;
  line-height: 1.35;
}
.responsible-sent-notice-card small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.3;
}
.responsible-sent-notice-card aside {
  display: grid;
  justify-items: end;
  gap: 5px;
}
.responsible-sent-notice-card aside span,
.responsible-sent-notice-card aside em {
  display: inline-flex;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}
.responsible-sent-notice-card aside span {
  background: #fff7e6;
  color: #704900;
}
.responsible-sent-notice-card aside em {
  background: #e7f4ef;
  color: #176b73;
}
.responsible-quick-actions {
  min-width: 0;
  display: grid;
  gap: 10px;
  padding: 14px;
  margin-bottom: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 18px rgba(20, 39, 42, 0.05);
}
.responsible-action-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.responsible-action-row .family-focus-card {
  min-height: 98px;
  padding: 12px;
  box-shadow: none;
}
.responsible-action-row .family-focus-icon {
  width: 36px;
  height: 36px;
  flex-basis: 36px;
  font-size: 14px;
}
.responsible-action-row .family-focus-copy strong {
  font-size: 16px;
}
.responsible-student-hero {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 18px;
  margin-bottom: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.responsible-student-hero span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.responsible-student-hero strong {
  display: block;
  margin-top: 4px;
  font-size: 26px;
  line-height: 1.08;
  overflow-wrap: anywhere;
}
.responsible-student-hero small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-weight: 850;
  overflow-wrap: anywhere;
}
.responsible-student-actions {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, max-content);
  gap: 8px;
}
.emergency-contact-panel {
  max-width: 720px;
  margin-inline: auto;
}
.emergency-contact-details {
  margin-top: 16px;
}
.emergency-phone-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 8px 12px;
  border-radius: 7px;
  background: var(--brand);
  color: #ffffff;
  font-size: 18px;
  font-weight: 900;
  text-decoration: none;
}
.responsible-student-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
  margin-bottom: 14px;
}
.responsible-student-panel {
  min-width: 0;
  display: grid;
  gap: 10px;
  padding: 14px;
  margin-bottom: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 18px rgba(20, 39, 42, 0.05);
}
.responsible-attendance-list {
  display: grid;
  gap: 8px;
}
.responsible-attendance-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--line);
  border-left: 5px solid #9aa7ac;
  border-radius: 8px;
  background: #f8fbfa;
}
.responsible-attendance-card.status-presente {
  border-left-color: #2f6d4e;
  background: #eef7f1;
}
.responsible-attendance-card.status-ausente {
  border-left-color: #c76428;
  background: #fff4ec;
}
.responsible-attendance-card span,
.responsible-attendance-card small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  overflow-wrap: anywhere;
}
.responsible-attendance-card strong {
  min-width: 0;
  font-size: 16px;
  line-height: 1.12;
  overflow-wrap: anywhere;
}
.responsible-attendance-card small {
  grid-column: 1 / -1;
}
.responsible-payment-mini {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}
.responsible-student-payments .family-payment-card {
  box-shadow: none;
}
.parent-notice-form-panel {
  max-width: 760px;
}
.parent-notice-context {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 14px;
  border: 1px solid #9fc5c0;
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #edf8f6;
}
.parent-notice-context span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.parent-notice-context strong {
  min-width: 0;
  font-size: 21px;
  line-height: 1.12;
  overflow-wrap: anywhere;
}
.parent-notice-context small,
.parent-notice-context em {
  min-width: 0;
  color: var(--muted);
  font-style: normal;
  font-weight: 850;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.family-main-action {
  min-width: 0;
  min-height: 142px;
  display: grid;
  align-content: space-between;
  gap: 10px;
  padding: 18px;
  border-radius: 8px;
  text-decoration: none;
  color: #ffffff;
  box-shadow: 0 14px 28px rgba(20, 39, 42, 0.14);
}
.family-main-calendar { background: #176b73; }
.family-main-payments { background: #8f4f2b; }
.family-main-action span {
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  opacity: .86;
}
.family-main-action strong {
  display: block;
  font-size: 22px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.family-main-action small {
  display: block;
  color: rgba(255,255,255,.86);
  font-weight: 800;
  line-height: 1.35;
}
.family-week-panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.student-next-hero,
.student-self-hero {
  min-width: 0;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 18px;
  margin-bottom: 16px;
  border: 1px solid var(--line);
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.student-next-hero span,
.student-self-hero span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.student-next-hero strong,
.student-self-hero strong {
  display: block;
  margin-top: 4px;
  font-size: 24px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.student-next-hero small,
.student-self-hero small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.student-self-actions {
  display: grid;
  grid-template-columns: repeat(3, max-content);
  gap: 8px;
}
.student-mini-metrics {
  margin-bottom: 16px;
}
.family-week-strip {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 7px;
}
.family-week-day {
  min-width: 0;
  min-height: 74px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 5px;
  padding: 8px 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  text-decoration: none;
  background: #f8fbfa;
}
.family-week-day strong {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: var(--muted);
  background: #edf3f1;
}
.family-week-day span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-align: center;
  line-height: 1.15;
}
.family-week-day.has-class {
  border-color: #9fc5c0;
  background: #eef7f5;
}
.family-week-day.has-class strong {
  color: #ffffff;
  background: var(--brand);
}
.family-week-day.today { border-color: #c76428; }
.family-month-calendar {
  display: grid;
  gap: 8px;
}
.family-month-title {
  color: var(--ink);
  font-weight: 900;
}
.family-month-weekdays,
.family-month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 5px;
}
.family-month-weekdays span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-align: center;
}
.family-month-day {
  min-width: 0;
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  gap: 1px;
  padding: 4px 1px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #ffffff;
  color: var(--ink);
  text-decoration: none;
}
.family-month-day strong {
  font-size: 13px;
  line-height: 1;
}
.family-month-day small {
  min-height: 13px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}
.family-month-day.has-class {
  border-color: #8dbab4;
  background: #e7f4f2;
}
.family-month-day.has-class strong { color: #14565d; }
.family-month-day.has-cancelled {
  border-color: #c76428;
  background: #fff1e5;
}
.family-month-day.has-cancelled strong { color: #8f3f37; }
.family-month-day.today {
  border-color: #c76428;
  box-shadow: inset 0 0 0 1px #c76428;
}
.family-month-empty {
  border-color: transparent;
  background: transparent;
  pointer-events: none;
}
.family-day-hero {
  min-width: 0;
  display: grid;
  gap: 8px;
  padding: 16px;
  margin-bottom: 12px;
  border-radius: 8px;
  background: #176b73;
  color: #ffffff;
}
.family-day-hero span,
.family-day-hero small {
  font-weight: 900;
  opacity: 0.9;
}
.family-day-hero h2 {
  margin: 0;
  color: #ffffff;
  font-size: 28px;
  line-height: 1.05;
}
.family-day-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 4px;
}
.family-day-actions .table-action {
  width: 100%;
  min-width: 0;
  justify-content: center;
  background: #ffffff;
  color: #176b73;
  border-color: #ffffff;
}
.family-day-section {
  min-width: 0;
  display: grid;
  gap: 10px;
  padding: 14px;
  margin-bottom: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 18px rgba(20, 39, 42, 0.05);
}
.family-day-class-list,
.family-day-context-list {
  min-width: 0;
  display: grid;
  gap: 10px;
}
.family-day-class-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid #bfd6d2;
  border-left: 5px solid #176b73;
  border-radius: 8px;
  background: #f4faf8;
}
.family-day-class-card.is-cancelled {
  border-color: #e1c2ad;
  border-left-color: #c76428;
  background: #fff7e8;
}
.family-day-class-card.is-cancelled .family-day-class-time strong,
.family-day-class-card.is-cancelled .family-day-class-main strong {
  color: #8f3f37;
}
.family-day-class-time,
.family-day-class-main,
.family-day-class-action {
  min-width: 0;
}
.family-day-class-action .table-action {
  min-width: 72px;
  justify-content: center;
}
.family-day-class-time strong,
.family-day-class-time span,
.family-day-class-main strong,
.family-day-class-main span,
.family-day-class-main small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.family-day-class-time strong {
  color: #176b73;
  font-size: 16px;
  font-weight: 950;
}
.family-day-class-time span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.family-day-class-main strong {
  font-size: 17px;
  line-height: 1.18;
}
.family-day-class-main span {
  margin-top: 3px;
  color: #314d54;
  font-weight: 900;
}
.family-day-class-main small {
  margin-top: 3px;
  color: var(--muted);
  font-weight: 800;
}
.activity-status-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-left: 7px;
  padding: 2px 6px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 950;
  line-height: 1.2;
  text-transform: uppercase;
}
.activity-status-badge.is-cancelled {
  background: #fce6e2;
  color: #8f3f37;
}
.activity-cancel-reason {
  color: #8f3f37 !important;
  font-weight: 950 !important;
}
.family-day-context-card {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 11px;
  border: 1px solid #e1c2ad;
  border-left: 5px solid #c76428;
  border-radius: 8px;
  background: #fff7e8;
}
.family-day-context-card strong,
.family-day-context-card span,
.family-day-context-card small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.family-day-context-card span {
  color: #8f4f2b;
  font-weight: 900;
}
.family-day-context-card small {
  color: var(--muted);
  font-weight: 800;
}
.family-day-footer {
  display: flex;
  justify-content: flex-end;
}
.family-event-detail {
  min-width: 0;
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--line);
  border-left: 6px solid #176b73;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.07);
}
.family-event-detail.is-cancelled {
  border-left-color: #c76428;
  background: #fffaf4;
}
.family-event-detail > span,
.family-event-detail > small {
  color: var(--muted);
  font-weight: 900;
  text-transform: uppercase;
}
.family-event-detail h2 {
  margin: 0;
  font-size: 28px;
  line-height: 1.08;
}
.family-event-alert {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid #e1c2ad;
  border-radius: 8px;
  background: #fff1e5;
  color: #8f3f37;
}
.family-event-alert strong,
.family-event-alert span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.family-event-details {
  margin: 0;
}
.parent-next-list {
  min-width: 0;
  display: grid;
  gap: 10px;
}
.parent-next-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 98px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid #bfd6d2;
  border-left: 5px solid #176b73;
  border-radius: 8px;
  background: #f4faf8;
}
.parent-next-campamento {
  border-color: #e1c2ad;
  border-left-color: #8f4f2b;
  background: #fff4ec;
}
.parent-next-taller {
  border-color: #edc6a4;
  border-left-color: #c76428;
  background: #fff7e8;
}
.parent-next-card.is-cancelled {
  border-color: #e1c2ad;
  border-left-color: #c76428;
  background: #fff1e5;
}
.parent-next-card.is-cancelled .parent-next-date strong,
.parent-next-card.is-cancelled .parent-next-main strong {
  color: #8f3f37;
}
.parent-next-date,
.parent-next-main {
  min-width: 0;
}
.parent-next-date strong,
.parent-next-date span,
.parent-next-main strong,
.parent-next-main span,
.parent-next-main small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.parent-next-date strong {
  color: #176b73;
  font-size: 15px;
  font-weight: 950;
}
.parent-next-date span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.parent-next-main strong {
  font-size: 16px;
  line-height: 1.18;
}
.parent-next-main span {
  margin-top: 3px;
  color: #314d54;
  font-weight: 900;
}
.parent-next-main small {
  margin-top: 3px;
  color: var(--muted);
  font-weight: 800;
}
.parent-next-card .table-action {
  min-width: 54px;
  justify-content: center;
}
.family-action-section { margin-bottom: 14px; }
.family-action-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.family-action-grid a {
  min-width: 0;
  min-height: 82px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(20, 39, 42, 0.05);
}
.family-action-grid a:first-child,
.family-action-grid a:nth-child(2) {
  border-color: #b8d6d1;
  background: #f2faf8;
}
.family-action-grid a:nth-child(5) {
  grid-column: 1 / -1;
}
.family-action-icon {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--brand);
  color: #ffffff;
  font-size: 19px;
  font-weight: 900;
}
.family-action-grid a:nth-child(2) .family-action-icon {
  background: #8f4f2b;
}
.family-action-grid a:nth-child(3) .family-action-icon,
.family-action-grid a:nth-child(4) .family-action-icon {
  background: #c76428;
}
.family-action-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.family-action-grid strong {
  font-size: 16px;
  line-height: 1.15;
}
.family-action-grid small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
}
.family-secondary-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.notice-choice-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.notice-choice {
  min-height: 132px;
  display: grid;
  align-content: center;
  gap: 8px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.07);
}
.notice-choice strong {
  font-size: 22px;
  line-height: 1.15;
}
.notice-choice span {
  color: var(--muted);
  font-weight: 700;
  line-height: 1.3;
}
.notice-choice-absence { border-left: 5px solid #c76428; }
.notice-choice-late { border-left: 5px solid var(--brand); }
.notice-choice-message { border-left: 5px solid #314d54; }
.family-payment-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: 12px;
  margin-bottom: 16px;
}
.family-next-payment,
.family-payment-summary,
.family-payment-section {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.07);
}
.family-next-payment {
  min-height: 154px;
  display: grid;
  align-content: space-between;
  gap: 8px;
  padding: 18px;
  color: #ffffff;
  text-decoration: none;
  background: #176b73;
}
.family-next-payment.paid {
  background: #2f6d4e;
}
.family-next-payment span {
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  opacity: .86;
}
.family-next-payment strong {
  font-size: 30px;
  line-height: 1.05;
}
.family-next-payment small,
.family-next-payment em {
  color: rgba(255,255,255,.88);
  font-style: normal;
  font-weight: 800;
  line-height: 1.3;
}
.family-payment-summary {
  display: grid;
  gap: 8px;
  padding: 12px;
}
.family-payment-summary article {
  min-width: 0;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border-radius: 7px;
  background: #f7faf9;
}
.family-payment-summary span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
}
.family-payment-summary strong {
  font-size: 18px;
  line-height: 1.1;
}
.family-payment-section {
  padding: 16px;
  margin-bottom: 16px;
}
.family-student-payment-section {
  display: grid;
  gap: 12px;
}
.family-student-payment-head {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}
.family-student-payment-head h2 {
  margin: 0 0 4px;
  font-size: 22px;
  line-height: 1.12;
}
.family-student-payment-head span {
  color: var(--muted);
  font-weight: 850;
  overflow-wrap: anywhere;
}
.family-student-payment-head dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(84px, 1fr));
  gap: 8px;
  margin: 0;
}
.family-student-payment-head dl div {
  padding: 10px;
  border-radius: 8px;
  background: #f7faf9;
}
.family-student-payment-head dt {
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
}
.family-student-payment-head dd {
  margin: 2px 0 0;
  font-size: 18px;
  font-weight: 950;
}
.family-payment-list {
  display: grid;
  gap: 10px;
}
.family-payment-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px 12px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
  color: var(--ink);
  text-decoration: none;
}
.family-payment-card strong,
.family-payment-card small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.family-payment-card strong {
  font-size: 16px;
  line-height: 1.2;
}
.family-payment-card small,
.family-payment-date {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.family-payment-discount {
  color: #27636b;
  font-size: 12px;
  font-weight: 850;
  overflow-wrap: anywhere;
}
.family-payment-card mark {
  justify-self: end;
  grid-column: 2;
  grid-row: 1;
  padding: 5px 7px;
  border-radius: 999px;
  background: #e8f3f1;
  color: #175c63;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.family-payment-money {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 3px;
}
.family-payment-money div {
  min-width: 0;
  padding: 9px;
  border-radius: 7px;
  background: #f7faf9;
}
.family-payment-money span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
}
.family-payment-money strong {
  display: block;
  margin-top: 2px;
  font-size: 17px;
  line-height: 1.1;
}
.payment-amount-breakdown {
  min-width: 0;
  display: grid;
  gap: 2px;
  line-height: 1.2;
}
.payment-amount-breakdown strong {
  font-size: 1em;
  font-weight: 900;
}
.payment-amount-breakdown small,
.payment-amount-breakdown em {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}
.family-payment-pending {
  border-left: 5px solid #c76428;
}
.family-payment-paid {
  border-left: 5px solid #2f6d4e;
}
.family-payment-paid mark {
  background: #e4f4ec;
  color: #1f6849;
}
.family-payment-receipt {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-start;
  padding-top: 4px;
}
.teacher-secondary-section {
  box-shadow: none;
}
.student-search-results {
  grid-column: 1 / -1;
  display: none;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  max-height: 260px;
  overflow-y: auto;
}
.student-search-results.has-results {
  display: grid;
}
.student-search-results button {
  display: grid;
  gap: 3px;
  width: 100%;
  text-align: left;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: #ffffff;
  color: var(--ink);
  padding: 14px;
  min-height: 58px;
}
.student-search-results button:last-child {
  border-bottom: 0;
}
.student-search-results button strong {
  font-size: 15px;
}
.student-search-results button span {
  color: var(--muted);
  font-size: 13px;
}
.student-search-results button:hover,
.student-search-results button:focus {
  background: var(--soft);
}
.family-search-results {
  max-height: 220px;
  gap: 0;
}
.family-search-results button {
  gap: 6px;
  line-height: 1.3;
}
.family-search-results button strong {
  font-size: 16px;
}
.family-search-results button span {
  font-size: 14px;
}
.student-create-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}
.student-create-steps span {
  min-height: 36px;
  display: grid;
  place-items: center;
  padding: 6px 8px;
  border: 1px solid #bfd6d2;
  border-radius: 999px;
  background: #edf8f6;
  color: var(--brand);
  font-size: 13px;
  font-weight: 900;
  text-align: center;
}
.duplicate-warning {
  grid-column: 1 / -1;
  border: 1px solid #f3b05c;
  border-radius: 8px;
  background: #fff8ed;
  padding: 12px;
  display: grid;
  gap: 8px;
}
.duplicate-warning[hidden] {
  display: none;
}
.duplicate-warning > strong {
  color: #78501e;
}
.duplicate-warning div {
  display: grid;
  gap: 6px;
  max-height: 150px;
  overflow-y: auto;
}
.duplicate-warning a {
  display: grid;
  gap: 2px;
  text-decoration: none;
  border: 1px solid #f0d5ac;
  border-radius: 6px;
  background: #ffffff;
  padding: 8px;
}
.duplicate-warning a strong {
  color: var(--ink);
}
.duplicate-warning a span {
  color: var(--muted);
  font-size: 13px;
}
.priority-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.priority-list a {
  display: grid;
  gap: 4px;
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fbfdfd;
}
.priority-list strong { color: var(--ink); }
.priority-list span { color: var(--muted); line-height: 1.4; }
.priority-list a:hover { border-color: #9fc5c0; }
.dashboard-summary .panel { margin-bottom: 0; }
.compact-form-panel p {
  margin-top: 0;
}
.next-steps-panel {
  border-left: 6px solid #f3b05c;
  background: #fffdf8;
}
.feature-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}
.feature-card {
  min-height: 118px;
  display: grid;
  align-content: start;
  gap: 8px;
  text-decoration: none;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  box-shadow: 0 8px 18px rgba(20, 39, 42, 0.05);
}
.feature-card span {
  width: max-content;
  max-width: 100%;
  color: #24595f;
  background: #e8f3f1;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.feature-card.pendiente span {
  color: #78501e;
  background: #fff0d8;
}
.feature-card strong {
  color: var(--ink);
  font-size: 18px;
}
.feature-card p {
  color: var(--muted);
  margin: 0;
  line-height: 1.4;
  font-size: 14px;
}
.feature-card:hover { border-color: #9fc5c0; }
.teacher-calendar-toolbar .form-actions {
  align-items: end;
  gap: 8px;
}
.teacher-calendar-toolbar .form-actions .table-action,
.teacher-calendar-toolbar .form-actions button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
}
.teacher-calendar-panel {
  padding: 0;
  overflow: hidden;
}
.teacher-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.teacher-calendar-weekdays {
  border-bottom: 1px solid var(--line);
  background: #fbfdfd;
}
.teacher-calendar-weekdays div {
  padding: 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-align: center;
  text-transform: uppercase;
}
.teacher-calendar-day {
  min-height: 132px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #ffffff;
  padding: 8px;
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 6px;
}
.teacher-calendar-day:nth-child(7n) {
  border-right: 0;
}
.teacher-calendar-day.is-outside {
  background: #f7faf9;
}
.teacher-calendar-day.is-outside .teacher-calendar-date {
  color: #9aa9ab;
}
.teacher-calendar-day.is-today .teacher-calendar-date span {
  background: var(--brand);
  color: #ffffff;
}
.teacher-calendar-date {
  display: flex;
  justify-content: flex-end;
  color: var(--ink);
  font-weight: 900;
}
.teacher-calendar-date span {
  min-width: 28px;
  min-height: 28px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.teacher-calendar-events {
  display: grid;
  align-content: start;
  gap: 4px;
  min-width: 0;
}
.teacher-calendar-event {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 5px;
  align-items: center;
  border-radius: 5px;
  padding: 4px 6px;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  background: #e8f3f1;
  color: #1f555b;
}
.teacher-calendar-event strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.teacher-calendar-event span {
  color: inherit;
  font-weight: 900;
}
.teacher-calendar-event small {
  grid-column: 1 / -1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: inherit;
  opacity: .82;
  font-size: 10px;
  font-weight: 800;
}
.teacher-calendar-event.event-vacation {
  background: #fff0d8;
  color: #78501e;
}
.teacher-calendar-event.event-vacation-pending {
  background: #edf1f4;
  color: #5c6670;
  border: 1px dashed #aab6bd;
}
.teacher-calendar-event.event-holiday {
  background: #fce6e2;
  color: #8f3f37;
}
.teacher-calendar-event.event-work {
  background: #edf1f4;
  color: #45565c;
}
.teacher-calendar-event.event-activity {
  background: #e7f0fb;
  color: #25527a;
}
.teacher-calendar-event.event-activity-provisional,
.teacher-calendar-event.is-provisional {
  background: #fff4d6;
  color: #785d16;
  border: 1px dashed #c9a33b;
}
.teacher-calendar-event.event-inactive {
  background: #e8edf8;
  color: #34466f;
  border: 1px solid #8294bd;
}
.teacher-calendar-event.event-planning-conflict {
  background: #fff0e7;
  color: #88401f;
  border: 1px solid #b56335;
}
.teacher-calendar-event.is-cancelled {
  grid-template-columns: auto minmax(0, 1fr) auto;
  background: #fce6e2;
  color: #8f3f37;
}
.teacher-calendar-event em {
  min-width: 0;
  padding: 1px 5px;
  border-radius: 999px;
  background: rgba(143, 63, 55, 0.12);
  font-size: 9px;
  font-style: normal;
  font-weight: 950;
  text-transform: uppercase;
}
.teacher-calendar-event:hover {
  filter: brightness(.97);
}
.teacher-calendar-more {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  padding: 2px 6px;
}
.teacher-calendar-metrics {
  margin-top: 14px;
}
.teacher-assigned-activity-list {
  display: grid;
  gap: 8px;
}
.teacher-assigned-activity {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-left: 4px solid #3979ad;
  border-radius: 7px;
  padding: 11px 12px;
  background: #f8fbff;
}
.teacher-assigned-activity div { display: grid; gap: 3px; min-width: 0; }
.teacher-assigned-activity span,
.teacher-assigned-activity small { color: var(--muted); }
.teacher-assigned-activity em {
  font-style: normal;
  font-weight: 900;
  font-size: 11px;
  text-transform: uppercase;
}
.teacher-assigned-activity.is-provisional { border-left-color: #c9a33b; background: #fffaf0; }
.teacher-assigned-activity.is-cancelled { border-left-color: #b9574f; background: #fff6f4; opacity: .78; }
@media (max-width: 700px) {
  .teacher-assigned-activity { grid-template-columns: 1fr; gap: 7px; }
}
.teacher-upcoming-panel {
  margin-top: 14px;
}
.teacher-upcoming-list {
  display: grid;
  gap: 10px;
}
.teacher-upcoming-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  padding: 12px;
}
.teacher-upcoming-card strong,
.teacher-upcoming-card span,
.teacher-upcoming-card small {
  display: block;
}
.teacher-upcoming-card strong {
  color: #173f45;
  font-size: 15px;
}
.teacher-upcoming-card span {
  color: var(--text);
  font-weight: 900;
  overflow-wrap: anywhere;
}
.teacher-upcoming-card small {
  color: var(--muted);
  font-weight: 800;
}
.teacher-upcoming-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.teacher-session-status-badge {
  border-radius: 999px;
  padding: 6px 9px;
  font-size: 12px;
  font-weight: 900;
}
.teacher-session-status-badge.status-programada {
  background: #e7f7ef;
  color: #14613d;
}
.teacher-session-status-badge.status-realizada {
  background: #fff4cc;
  color: #6a4a00;
}
.teacher-session-status-badge.status-cancelada {
  background: #ffe2df;
  color: #8a2418;
}
.teacher-upcoming-all {
  margin-top: 12px;
}
.metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(140px, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.workshop-finance-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.workshop-finance-summary-card { padding: 16px; }
.workshop-finance-summary-card h3 { margin: 0 0 8px; font-size: 15px; color: var(--muted); }
.workshop-finance-summary-card > strong { display: inline-block; font-size: 24px; line-height: 1.1; }
.workshop-finance-summary-card > span { display: block; margin: 3px 0 12px; color: var(--muted); font-size: 12px; font-weight: 700; }
.workshop-finance-summary-card dl { display: grid; gap: 5px; margin: 0; }
.workshop-finance-summary-card dl div { display: flex; justify-content: space-between; gap: 12px; }
.workshop-finance-summary-card dt { color: var(--muted); }
.workshop-finance-summary-card dd { margin: 0; font-weight: 800; text-align: right; }
.workshop-finance-breakdown .details { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.workshop-finance-breakdown .details div { grid-template-columns: 1fr; gap: 3px; padding: 8px 10px; border-radius: 8px; background: var(--surface-soft, #f7fafb); }
.workshop-finance-evidence { margin-top: 12px; }
.workshop-finance-evidence summary { cursor: pointer; color: var(--accent); font-weight: 750; }
.workshop-finance-evidence ul { margin-bottom: 0; }
.workshop-finance-add-entry { margin-top: 14px; }
.workshop-finance-add-entry > summary {
  display: inline-flex;
  align-items: center;
  width: auto;
  padding: 9px 13px;
  border: 1px solid var(--brand);
  border-radius: 7px;
  background: var(--brand);
  color: #fff;
  cursor: pointer;
  font-weight: 800;
  list-style: none;
}
.workshop-finance-add-entry > summary::-webkit-details-marker { display: none; }
.workshop-finance-add-entry[open] > summary { margin-bottom: 14px; background: var(--brand-dark); }
.workshop-finance-ledger .inline-form { display: inline-flex; margin-left: 8px; }
@media (max-width: 720px) {
  .workshop-finance-overview { grid-template-columns: 1fr; gap: 9px; }
  .workshop-finance-summary-card { padding: 13px; }
  .workshop-finance-breakdown .details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 430px) {
  .workshop-finance-breakdown .details { grid-template-columns: 1fr; }
}
.metric, .panel {
  min-width: 0;
  max-width: 100%;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.metric { padding: 16px; }
.metric span { display: block; color: var(--muted); font-weight: 800; font-size: 13px; }
.metric strong { display: block; margin-top: 8px; font-size: 24px; }
.metric em { display: block; margin-top: 6px; color: var(--muted); font-size: 12px; font-style: normal; font-weight: 750; line-height: 1.3; }
.metric-link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.metric-link:hover {
  border-color: var(--brand);
  box-shadow: 0 12px 26px rgba(20, 39, 42, 0.1);
}
.metric-unavailable strong {
  font-size: 20px;
}
.grid { display: grid; gap: 16px; }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.panel { padding: 18px; margin-bottom: 16px; }
.compact-intro-panel {
  padding: 14px 16px;
}
.compact-intro-panel p {
  margin: 0;
}
.panel h2 { margin: 0 0 12px; font-size: 20px; }
.panel p { color: var(--muted); line-height: 1.5; }
.panel-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 12px; }
.panel-head h2 { margin: 0; }
.panel-head span { color: var(--muted); font-weight: 700; }
.panel-head > span:only-child { margin-left: auto; }
.panel-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.global-sort-button { width:100%; display:inline-flex; align-items:center; justify-content:space-between; gap:7px; padding:0; border:0; background:transparent; color:inherit; font:inherit; font-weight:inherit; text-align:left; cursor:pointer; }
.global-sort-button:hover, .global-sort-button:focus-visible { color:var(--accent); }
.global-sort-button:focus-visible { outline:2px solid currentColor; outline-offset:3px; border-radius:3px; }
.global-sort-arrow { flex:0 0 auto; color:var(--muted); font-size:.78em; }
th[aria-sort="ascending"] .global-sort-arrow, th[aria-sort="descending"] .global-sort-arrow { color:var(--accent); }
.course-panel-hero {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
  gap: 16px;
  align-items: end;
  padding: 18px;
  margin-bottom: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.course-panel-hero h2 {
  margin: 0;
  font-size: 26px;
}
.course-panel-hero p {
  max-width: 760px;
  margin: 8px 0 0;
  color: var(--muted);
  line-height: 1.45;
}
.course-year-kicker {
  display: block;
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.course-year-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}
.course-area-panel .metrics {
  margin-bottom: 0;
}
.course-area-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.course-students-panel .course-area-metrics,
.course-groups-metrics-panel .course-area-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.course-attention-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.course-attention-item {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-left-width: 4px;
  border-radius: 8px;
  background: #fbfdfd;
}
.course-attention-item div {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.course-attention-item span {
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
}
.course-attention-item strong,
.course-attention-item small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.course-attention-critical { border-left-color: #b42318; }
.course-attention-attention { border-left-color: #b7791f; }
.course-attention-info { border-left-color: #286f7d; }
.course-attention-empty {
  margin: 0;
}
.course-secondary-detail {
  margin: 10px 0 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
  padding: 10px 12px;
}
.course-secondary-detail summary {
  cursor: pointer;
  font-weight: 900;
  color: #304346;
}
.treasury-account-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}
.treasury-operational-center {
  display: grid;
  gap: 16px;
}
.treasury-operational-block {
  display: grid;
  gap: 10px;
}
.treasury-operational-block h3 {
  margin: 0;
  color: #173f45;
  font-size: 16px;
}
.treasury-operational-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}
.treasury-operational-card {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
  color: inherit;
  text-decoration: none;
}
.treasury-operational-card span,
.treasury-operational-card strong,
.treasury-operational-card small,
.treasury-operational-card em {
  min-width: 0;
  overflow-wrap: anywhere;
}
.treasury-operational-card span {
  color: var(--muted);
  font-weight: 850;
  font-size: 13px;
}
.treasury-operational-card strong {
  color: #173f45;
  font-size: 24px;
}
.treasury-operational-card small {
  color: var(--muted);
  line-height: 1.35;
}
.treasury-operational-card em {
  color: var(--accent);
  font-style: normal;
  font-weight: 850;
}
.treasury-operational-status strong {
  font-size: 18px;
}
.treasury-operational-empty {
  background: #f7fbfa;
}
.treasury-account-card {
  min-width: 0;
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.treasury-account-card > span,
.treasury-account-card small,
.treasury-account-card dd,
.treasury-account-card strong {
  min-width: 0;
  overflow-wrap: anywhere;
}
.treasury-account-card > span {
  color: var(--muted);
  font-weight: 850;
  font-size: 13px;
}
.treasury-account-card strong {
  color: #173f45;
  font-size: 18px;
}
.treasury-account-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}
.treasury-account-card dl div {
  min-width: 0;
  padding: 9px;
  border: 1px solid #d8e4e1;
  border-radius: 8px;
  background: #ffffff;
}
.treasury-account-card dt {
  color: var(--muted);
  font-weight: 850;
  font-size: 12px;
}
.treasury-account-card dd {
  margin: 4px 0 0;
  color: var(--ink);
  font-weight: 850;
}
.course-attention-panel ul,
.course-enrollment-distribution {
  display: grid;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.course-attention-panel li,
.course-enrollment-distribution li {
  min-width: 0;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #d8e4e1;
  border-radius: 8px;
  background: #f7fbfa;
  font-weight: 850;
}
.course-groups-panel > .table-panel {
  margin-bottom: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
}
.course-group-cards {
  display: none;
  gap: 10px;
}
.course-group-card {
  min-width: 0;
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.course-group-card strong,
.course-group-card small,
.course-group-card span,
.course-group-card dd {
  min-width: 0;
  overflow-wrap: anywhere;
}
.course-group-card strong {
  display: block;
  margin-top: 3px;
  color: #173f45;
  font-size: 17px;
}
.course-group-card small,
.course-group-card span {
  color: var(--muted);
  font-weight: 800;
}
.course-group-card dl,
.course-enrollment-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}
.course-group-card dl div,
.course-enrollment-summary > div {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 10px;
  border-radius: 8px;
  background: #f0f6f4;
}
.course-group-card dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.course-group-card dd {
  margin: 0;
  font-weight: 900;
}
.course-enrollment-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 14px;
}
.course-enrollment-summary strong {
  font-size: 22px;
}
.course-enrollment-summary span {
  color: var(--muted);
  font-weight: 800;
}
.course-enrollment-panel h3 {
  margin: 8px 0 10px;
  font-size: 16px;
}
.course-limitation {
  margin: 12px 0 0;
  padding: 10px 12px;
  border: 1px solid #e1c2ad;
  border-radius: 8px;
  background: #fff8eb;
  color: #70420a;
  font-weight: 800;
}
.created-confirmation .table-actions {
  margin-top: 16px;
}
.employee-requests-hero .metrics {
  margin-bottom: 10px;
}
.employee-requests-layout {
  margin-bottom: 16px;
}
.employee-requests-layout > .panel {
  margin-bottom: 0;
}
.employee-request-card-list {
  display: grid;
  gap: 10px;
}
.employee-request-admin-list {
  display: grid;
  gap: 10px;
}
.metrics.employee-request-admin-summary {
  grid-template-columns: repeat(5, minmax(100px, 1fr));
  gap: 10px;
}
.employee-request-admin-summary .metric {
  padding: 12px 14px;
}
.employee-request-admin-summary .metric strong {
  margin-top: 4px;
  font-size: 20px;
}
.employee-request-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.employee-request-card-main {
  min-width: 0;
  display: grid;
  gap: 5px;
}
.employee-request-card-main strong {
  color: #173f45;
  font-size: 18px;
}
.employee-request-card-main small {
  color: var(--muted);
  font-weight: 700;
  overflow-wrap: anywhere;
}
.employee-request-status-help {
  color: #315155;
}
.employee-request-status-note {
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid #bfd6d2;
  border-radius: 8px;
  background: #f4faf8;
  color: #315155;
  font-weight: 800;
}
.employee-request-status {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.employee-request-status-pending {
  color: #7a4a0d;
  background: #fff1cc;
}
.panel-head .employee-request-status-pending {
  color: #7a4a0d;
}
.employee-request-status-approved {
  color: #176b3f;
  background: #dff5e7;
}
.panel-head .employee-request-status-approved {
  color: #176b3f;
}
.employee-request-status-rejected {
  color: #8c2631;
  background: #ffe1e5;
}
.panel-head .employee-request-status-rejected {
  color: #8c2631;
}
.employee-request-status-cancelled {
  color: #53606a;
  background: #e8edf0;
}
.panel-head .employee-request-status-cancelled {
  color: #53606a;
}
.employee-request-card-actions {
  display: flex;
  justify-content: flex-end;
}
.form-help {
  margin: 0 0 12px;
  color: var(--muted);
  font-weight: 700;
}
.calendar-review-list {
  min-width: 0;
  display: grid;
  gap: 10px;
}
.calendar-review-row,
.calendar-review-info-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid #bfd6d2;
  border-radius: 8px;
  background: #f4faf8;
}
.calendar-review-info-row {
  grid-template-columns: minmax(0, 1fr) auto;
  border-color: #e1c2ad;
  background: #fff7e8;
}
.calendar-review-row input {
  width: 22px;
  height: 22px;
}
.calendar-review-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.calendar-review-actions label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  padding: 7px 9px;
  border: 1px solid #bfd6d2;
  border-radius: 8px;
  background: #ffffff;
  color: #173f45;
  font-size: 12px;
  font-weight: 900;
}
.calendar-review-row span,
.calendar-review-info-row strong,
.calendar-review-info-row small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.calendar-review-row strong,
.calendar-review-row small,
.calendar-review-info-row strong,
.calendar-review-info-row small {
  display: block;
}
.calendar-review-row small,
.calendar-review-info-row small {
  margin-top: 3px;
  color: var(--muted);
  font-weight: 800;
}
.calendar-review-row em,
.calendar-review-info-row em {
  color: #176b73;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}
@media (max-width: 640px) {
  .employee-report-technical-path { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .employee-report-copy-path { width: 100%; justify-content: center; }
  .employee-report-copy-status { grid-column: 1; }
  .calendar-review-row,
  .calendar-review-info-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .calendar-review-actions {
    justify-content: stretch;
  }
  .calendar-review-actions label {
    flex: 1 1 120px;
    justify-content: center;
  }
  .employee-clock-review-grid {
    grid-template-columns: 1fr;
  }
  .employee-clock-month-kpis,
  .employee-clock-month-grid,
  .employee-clock-month-card dl {
    grid-template-columns: 1fr;
  }
  .clock-employee-review-grid {
    grid-template-columns: 1fr;
  }
  .clock-employee-home {
    grid-template-columns: 1fr;
  }
  .clock-personal-review-layout {
    grid-template-columns: 1fr;
  }
  .clock-close-checklist {
    grid-template-columns: 1fr;
  }
  .clock-personal-review-layout > .clock-personal-review-panel:last-child {
    grid-column: auto;
  }
  .clock-employee-home-hero {
    padding: 14px;
  }
  .clock-employee-home-hero strong {
    font-size: 23px;
  }
  .clock-support-grid {
    grid-template-columns: 1fr;
  }
  .clock-footer-row {
    align-items: stretch;
    flex-direction: column;
  }
  .clock-footer-row .table-action {
    width: 100%;
    justify-content: center;
  }
  .clock-employee-day-hero {
    grid-template-columns: 1fr;
    padding: 15px;
  }
  .clock-employee-day-hero .table-actions,
  .clock-employee-day-hero .table-action,
  .clock-day-card-actions .table-action {
    width: 100%;
    justify-content: center;
  }
  .clock-focus-hero {
    padding: 15px;
  }
  .clock-focus-hero strong {
    font-size: 28px;
  }
  .employee-overtime-overview,
  .employee-clock-preclose-grid,
  .employee-overtime-card dl {
    grid-template-columns: 1fr;
  }
  .employee-clock-review-card small {
    min-height: 0;
  }
  .employee-clock-review-tray,
  .employee-clock-preclose-panel,
  .employee-clock-tab-intro {
    padding: 11px;
  }
  .employee-clock-review-card,
  .employee-clock-preclose-card,
  .employee-overtime-card,
  .employee-overtime-metric {
    padding: 10px;
  }
  .employee-clock-review-card strong,
  .employee-clock-preclose-card strong {
    font-size: 22px;
  }
  .employee-clock-tabs .student-tab-content {
    overflow: hidden;
  }
  .employee-clock-incident-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .employee-clock-incident-actions .table-action {
    width: 100%;
    justify-content: center;
  }
}
.clock-workspace {
  max-width: 720px;
  display: grid;
  gap: 12px;
}
.clock-missing-exit-panel {
  max-width: 720px;
  display: grid;
  gap: 18px;
  margin-bottom: 16px;
}
.clock-missing-exit-card {
  display: grid;
  gap: 10px;
  padding: 18px;
  border: 1px solid #e4bc68;
  border-left: 6px solid #9a6200;
  border-radius: 10px;
  background: #fff8e6;
  color: #533600;
}
.clock-missing-exit-card > span {
  color: #79530c;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-missing-exit-card h2,
.clock-missing-exit-card p,
.clock-missing-exit-card form {
  margin: 0;
}
.clock-missing-exit-date {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
}
.clock-missing-exit-date strong {
  font-size: 18px;
}
.clock-missing-exit-date small {
  color: #79530c;
}
.clock-missing-exit-actions {
  display: grid;
  gap: 14px;
  margin: 4px 0;
}
.clock-missing-exit-actions > form button,
.clock-missing-exit-actions > details,
.clock-missing-exit-actions > details > summary {
  width: 100%;
  box-sizing: border-box;
}
.clock-missing-exit-actions > details {
  padding-top: 2px;
}
.clock-missing-exit-actions > details > summary {
  display: flex;
  justify-content: center;
  min-height: 44px;
  cursor: pointer;
}
.clock-missing-exit-actions > details[open] > summary {
  margin-bottom: 14px;
}
.clock-employee-pending-review details {
  margin-top: 10px;
}
.clock-employee-pending-review summary {
  cursor: pointer;
  font-weight: 800;
}
.clock-card {
  overflow: hidden;
}
.clock-actions {
  display: grid;
  gap: 12px;
}
.clock-actions-simple {
  gap: 10px;
}
.clock-focus-hero {
  display: grid;
  gap: 6px;
  margin-bottom: 14px;
  border: 1px solid #d7e4e2;
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  padding: 18px;
  background: #f7fbfa;
  color: #173f45;
}
.clock-focus-hero span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-focus-hero strong {
  font-size: 34px;
  line-height: 1.05;
}
.clock-focus-hero small {
  color: #45565c;
  font-weight: 900;
  line-height: 1.35;
}
.clock-focus-hero.tone-open {
  border-color: #9bc8bd;
  border-left-color: #176b73;
  background: #eefaf6;
}
.clock-focus-hero.tone-closed {
  border-color: #cfe5d8;
  border-left-color: #2f7d52;
  background: #f3fbf5;
}
.clock-focus-hero.tone-review {
  border-color: #ffd37d;
  border-left-color: #b46f00;
  background: #fff7df;
}
.clock-primary-action {
  margin-bottom: 14px;
}
.clock-unplanned-warning {
  display: grid;
  gap: 10px;
  border: 1px solid #e4bc68;
  border-left: 6px solid #9a6200;
  border-radius: 8px;
  padding: 16px;
  background: #fff8e6;
  color: #533600;
}
.clock-unplanned-warning > span {
  color: #79530c;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-unplanned-warning > strong { font-size: 18px; line-height: 1.3; }
.clock-unplanned-warning p { margin: 0; color: #654b1d; }
.clock-unplanned-warning textarea { width: 100%; box-sizing: border-box; }
.clock-support-compact { display:grid; gap:10px; margin-bottom:14px; min-width:0; }
.clock-month-heading { display:grid; grid-template-columns:auto minmax(0, 1fr); align-items:center; gap:8px; }
.clock-month-heading h2 { font-size:18px; }
.clock-month-heading form { margin:0 0 0 auto; width:100%; max-width:200px; min-width:0; }
.clock-month-heading input { width:100%; min-width:0; min-height:42px; box-sizing:border-box; font-size:14px; padding:6px; }
.clock-calendar-period {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(84px, 0.75fr);
  gap: 7px;
  width: min(100%, 300px);
  margin-left: auto;
}
.clock-calendar-period label {
  display: grid;
  gap: 3px;
  min-width: 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
}
.clock-calendar-period select {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  border: 1px solid #cad9d7;
  border-radius: 7px;
  padding: 0 7px;
  background: #fff;
  font-weight: 800;
}
.clock-calendar-legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
  color: var(--muted);
  font-size: 12px;
}
.clock-calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 850;
}
.clock-calendar-legend i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #dff2e5;
  box-shadow: inset 0 0 0 1px #abd3b8;
}
.clock-calendar-legend .legend-holiday { background: #c83b3b; box-shadow: none; }
.clock-calendar-legend .legend-free { background: #e3ad17; box-shadow: none; }
.clock-calendar-legend .legend-work { background: #2563b8; box-shadow: none; }
.clock-calendar-legend .legend-vacation { background: #27894e; box-shadow: none; }
.clock-history-tabs .panel-head .clock-history-period .clock-month-control > span {
  display: block;
  justify-self: stretch;
  width: 100%;
  text-align: center;
}
.clock-calendar-return { display:inline-block; margin-top:12px; font-size:14px; }
.clock-expected-compact { display:grid; gap:4px; min-width:0; overflow-wrap:anywhere; }
.clock-expected-compact small { color:var(--muted); font-size:12px; }
.clock-location-link { display:block; padding:6px 0; font-size:12px; font-weight:400; color:var(--muted); text-decoration:underline; }
.clock-support-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.clock-support-grid .clock-expected-work,
.clock-support-grid .clock-gps-status {
  height: 100%;
  margin: 0;
}
.clock-footer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid #e6eeee;
  padding-top: 12px;
}
.clock-footer-row span {
  min-width: 0;
  color: var(--muted);
  font-weight: 800;
  overflow-wrap: anywhere;
}
.clock-footer-row .table-action {
  color: #ffffff;
}
.clock-daycontrol-problem {
  margin: 0;
  border: 1px solid #e7c47b;
  border-radius: 8px;
  padding: 12px;
  background: #fff8e8;
  color: #5c4214;
  font-weight: 800;
}
.clock-daycontrol-problem a {
  color: #71334d;
  text-decoration: underline;
}
.daycontrol-credentials-update {
  margin: 16px 0;
}
.daycontrol-credentials-update h3 {
  margin: 0 0 10px;
}
.daycontrol-password-field {
  position: relative;
  display: block;
}
.daycontrol-password-field input {
  width: 100%;
  padding-right: 46px;
}
.daycontrol-password-eye {
  position: absolute;
  top: 50%;
  right: 5px;
  width: 36px;
  min-width: 36px;
  min-height: 36px;
  padding: 0;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: var(--text);
  line-height: 1;
}
.daycontrol-password-eye svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.daycontrol-password-eye svg[hidden] {
  display: none;
}
.daycontrol-password-saved {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.clock-exit-follow-up {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}
.clock-exit-next-shift,
.clock-exit-day-complete,
.clock-exit-balance {
  display: grid;
  gap: 5px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  padding: 13px;
}
.clock-exit-next-shift {
  background: #fff8e8;
  border-color: #e7c47b;
  color: #5c4214;
}
.clock-exit-next-shift span,
.clock-exit-balance span {
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-exit-next-shift p {
  margin: 0;
}
.clock-exit-day-complete {
  align-items: center;
  background: #f3faf8;
}
.clock-exit-day-complete .table-action {
  justify-self: start;
}
.clock-exit-balance-grid {
  display: grid;
  gap: 8px;
}
.clock-exit-balance-row {
  display: grid;
  grid-template-columns: minmax(90px, 0.8fr) minmax(150px, 1.6fr) auto;
  align-items: center;
  gap: 8px;
  border-radius: 7px;
  padding: 9px 10px;
}
.clock-exit-balance-row small {
  min-width: 0;
}
.clock-exit-balance-row b {
  white-space: nowrap;
}
.clock-exit-balance-row.tone-positive {
  background: #edf9f1;
  color: #245c37;
}
.clock-exit-balance-row.tone-negative {
  background: #fff2f0;
  color: #7b2f2a;
}
.clock-exit-balance-row.tone-balanced {
  background: #f3f7f7;
  color: #24474b;
}
.clock-exit-more {
  justify-self: start;
  margin-top: 4px;
}
.clock-hours-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}
.clock-hours-summary-card {
  display: grid;
  gap: 12px;
  min-width: 0;
  border: 1px solid #d7e4e2;
  border-radius: 10px;
  padding: 16px;
  background: #f7faf9;
}
.clock-hours-card-select {
  display: grid;
  gap: 12px;
  width: 100%;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.clock-hours-card-select:focus-visible {
  outline: 3px solid rgba(113, 51, 77, 0.28);
  outline-offset: 5px;
  border-radius: 6px;
}
.clock-hours-card-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.clock-hours-active-label {
  display: none;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-hours-summary-card.is-active .clock-hours-active-label {
  display: inline;
}
.clock-hours-summary-card h3,
.clock-hours-summary-card dl,
.clock-hours-summary-card dt,
.clock-hours-summary-card dd {
  margin: 0;
}
.clock-hours-primary {
  display: flex;
  align-items: baseline;
  gap: 7px;
}
.clock-hours-primary strong {
  font-size: 26px;
  line-height: 1;
}
.clock-hours-primary span,
.clock-hours-summary-card dt {
  color: var(--muted);
}
.clock-hours-summary-card dl {
  display: grid;
  gap: 7px;
}
.clock-hours-summary-card dl div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.clock-hours-summary-card dd {
  font-weight: 900;
  white-space: nowrap;
}
.clock-hours-schedule {
  margin: 0;
  border-top: 1px solid rgba(23, 63, 69, 0.12);
  padding-top: 12px;
  font-weight: 850;
}
.clock-hours-month-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 150px));
  gap: 10px;
  justify-content: center;
  margin: 12px 0 4px;
}
.clock-hours-date-nav {
  grid-template-columns: repeat(3, minmax(0, 140px));
}
.clock-history-period {
  width: min(100%, 300px);
  margin: 0 0 0 auto;
  justify-content: end;
}
.clock-month-control {
  display: grid;
  grid-template-rows: auto 34px 42px 34px;
  gap: 5px;
  min-width: 0;
  text-align: center;
}
.clock-month-control > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.clock-month-control button,
.clock-month-control select {
  width: 100%;
  min-width: 0;
  border: 1px solid #cad9d7;
  border-radius: 7px;
  background: #fff;
}
.clock-month-control button {
  padding: 0;
  color: #173f45;
  font-size: 20px;
  font-weight: 900;
}
.clock-month-control select {
  padding: 0 8px;
  text-align: center;
  font-weight: 850;
}
.clock-hours-month-nav.is-loading {
  opacity: 0.55;
  pointer-events: none;
}
.clock-hours-overview {
  margin-top: 14px;
}
.clock-week-schedule {
  display: grid;
  gap: 4px;
  min-width: 0;
  border-top: 1px solid rgba(23, 63, 69, 0.12);
  padding-top: 12px;
}
.clock-week-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
}
.clock-week-day,
.clock-week-shift {
  display: grid;
  place-items: center;
  min-width: 0;
  border-radius: 6px;
  padding: 6px 2px;
  background: rgba(255, 255, 255, 0.72);
  font-size: 11px;
  text-align: center;
}
.clock-week-day small { color: var(--muted); }
.clock-week-shift { font-weight: 850; }
.clock-month-weeks {
  display: grid;
  gap: 6px;
  border-top: 1px solid rgba(23, 63, 69, 0.12);
  padding-top: 12px;
}
.clock-month-week {
  display: grid;
  grid-template-columns: minmax(90px, 1fr) auto auto auto;
  align-items: center;
  gap: 8px;
  border-radius: 7px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.72);
}
.clock-month-week > span { display: grid; }
.clock-month-week > span small,
.clock-month-week > small { color: var(--muted); }
.clock-month-week.tone-positive strong { color: #245c37; }
.clock-month-week.tone-negative strong { color: #8a302a; }
.clock-hours-summary-actions { margin-top: 16px; }
.clock-hours-detail-table .student-sort-button { white-space: nowrap; }
@media (max-width: 560px) {
  .clock-exit-balance-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .clock-exit-balance-row small {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .clock-exit-more {
    width: 100%;
    justify-content: center;
  }
  .clock-hours-summary-grid {
    grid-template-columns: 1fr;
  }
  .clock-hours-month-nav {
    grid-template-columns: 1fr 1fr;
  }
  .clock-hours-date-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .clock-history-period {
    width: 100%;
    margin-left: 0;
  }
  .clock-week-day,
  .clock-week-shift {
    padding-inline: 1px;
    font-size: 10px;
  }
  .clock-month-week {
    grid-template-columns: minmax(80px, 1fr) auto auto;
  }
  .clock-month-week > small {
    display: none;
  }
}
.clock-now-state {
  margin: 0 0 14px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  padding: 14px;
  background: #ffffff;
  color: #173f45;
}
.clock-now-state span {
  display: block;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-now-state strong {
  display: block;
  font-size: 24px;
  line-height: 1.1;
}
.clock-open-shift {
  margin: 0 0 14px;
  border: 1px solid #ffd37d;
  border-radius: 8px;
  padding: 12px;
  background: #fff7df;
  color: #654400;
}
.clock-open-shift span,
.clock-open-shift small {
  display: block;
  font-weight: 800;
}
.clock-open-shift strong {
  display: block;
  margin: 4px 0;
  font-size: 18px;
}
.clock-expected-work {
  display: grid;
  gap: 4px;
  margin: 0 0 14px;
  border: 1px solid #bfd6d2;
  border-radius: 8px;
  padding: 12px;
  background: #f4faf8;
  color: #173f45;
}
.clock-expected-work span,
.clock-expected-work small,
.clock-expected-work em {
  display: block;
  font-weight: 800;
}
.clock-expected-work strong {
  font-size: 18px;
}
.clock-expected-work small {
  color: #45565c;
}
.clock-expected-work em {
  color: #176b73;
  font-style: normal;
}
.clock-gps-status {
  display: grid;
  gap: 4px;
  margin: 0 0 14px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
  color: #173f45;
}
.clock-gps-status span,
.clock-gps-status small {
  display: block;
  font-weight: 800;
}
.clock-gps-status span {
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
}
.clock-gps-status strong {
  font-size: 17px;
  line-height: 1.2;
}
.clock-gps-status small {
  color: #45565c;
}
.clock-gps-status.is-searching {
  border-color: #bfd6d2;
  background: #f4faf8;
}
.clock-gps-status.is-ready {
  border-color: #9bc8bd;
  background: #eefaf6;
}
.clock-gps-status.is-ready strong {
  color: #176b73;
}
.clock-gps-status.is-error {
  border-color: #ffd37d;
  background: #fff7df;
}
.clock-gps-status.is-error strong {
  color: #654400;
}
.clock-created-card {
  max-width: 680px;
  overflow: hidden;
}
.clock-created-hero {
  display: grid;
  gap: 4px;
  margin-bottom: 14px;
  border: 1px solid #9bc8bd;
  border-radius: 8px;
  padding: 16px;
  background: #eefaf6;
  color: #173f45;
  text-align: center;
}
.clock-created-card.status-review .clock-created-hero {
  border-color: #ffd37d;
  background: #fff7df;
}
.clock-created-hero span {
  color: #176b73;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-created-card.status-review .clock-created-hero span {
  color: #654400;
}
.clock-created-hero strong {
  font-size: 42px;
  line-height: 1;
}
.clock-created-hero small {
  color: #45565c;
  font-weight: 900;
}
.clock-created-details {
  display: grid;
  gap: 10px;
  margin: 0 0 14px;
}
.clock-created-details div {
  display: grid;
  gap: 4px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  padding: 10px;
  background: #ffffff;
}
.clock-created-details dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-created-details dd {
  margin: 0;
  color: #173f45;
  font-weight: 900;
  overflow-wrap: anywhere;
}
.clock-created-actions {
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
}
.clock-created-actions .table-action {
  min-height: 48px;
}
.clock-created-secondary-links {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 10px;
}
.clock-created-secondary-links a {
  color: var(--muted);
  font-size: 13px;
  font-weight: 850;
  text-decoration: none;
}
.clock-created-secondary-links a:hover {
  color: var(--brand);
  text-decoration: underline;
}
.teacher-flow-primary {
  min-height: 58px;
  border-color: var(--brand) !important;
  background: var(--brand) !important;
  color: #ffffff !important;
  font-size: 17px;
  font-weight: 950;
  box-shadow: 0 10px 20px rgba(23, 107, 115, 0.18);
}
.clock-employee-day-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid #d7e4e2;
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.clock-employee-day-hero span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-employee-day-hero h2 {
  margin: 4px 0;
  color: #173f45;
  font-size: 30px;
  line-height: 1.05;
}
.clock-employee-day-hero p {
  margin: 0;
  color: #45565c;
  font-weight: 900;
}
.clock-employee-day-hero .clock-day-date-numeric {
  margin: 0 0 5px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 750;
}
.clock-employee-day-notices ul {
  margin: 0;
  padding-left: 18px;
  color: #45565c;
  font-weight: 800;
}
.clock-employee-day-list {
  display: grid;
  gap: 10px;
}
.clock-employee-day-card {
  display: grid;
  gap: 5px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  padding: 12px;
  background: #f7fbfa;
}
.clock-employee-day-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-employee-day-card strong {
  color: #173f45;
  font-size: 22px;
  line-height: 1.1;
}
.clock-employee-day-card small,
.clock-employee-day-card p {
  margin: 0;
  color: #45565c;
  font-weight: 800;
  line-height: 1.35;
}
.clock-form {
  min-width: 0;
  display: grid;
}
.clock-button {
  width: 100%;
  min-height: 76px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 20px;
  font-weight: 900;
}
.clock-button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
  filter: grayscale(0.35);
}
.clock-action-hint {
  margin: 0 0 14px;
  color: var(--muted);
  font-weight: 800;
}
.clock-exit {
  background: #8f3f37;
}
.clock-list {
  min-height: 72px;
  background: #45565c;
  font-size: 17px;
}
.message-thread {
  display: grid;
  gap: 12px;
}
.message-conversation { min-width:0; }
.message-conversation-head { padding:0 0 14px; }
.message-conversation-head h2, .message-reply h2 { font-size:18px; margin:0 0 10px; overflow-wrap:anywhere; }
.message-conversation-tools, .message-incident-status { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; justify-content:space-between; }
.message-conversation-tools > span { color:var(--muted); font-size:14px; }
.message-conversation-tools button { min-height:40px; }
.message-incident-status { margin-top:10px; }
.message-conversation .message-item { min-width:0; overflow-wrap:anywhere; }
.message-conversation .message-item > div:first-child { flex-wrap:wrap; gap:4px 12px; }
.message-conversation .message-item > div:first-child > span { white-space:nowrap; }
.message-reply { margin-top:18px; padding-top:14px; border-top:1px solid var(--line); }
.role-profesor .workspace:has(.message-conversation) { padding-top:12px; }
.role-profesor .workspace:has(.message-conversation) .topbar { margin-bottom:12px; }
.message-item {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}
.message-item div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.message-item p {
  margin: 10px 0 0;
  color: var(--ink);
  white-space: pre-wrap;
}
.message-related-clock-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 16px;
  padding: 14px;
  border: 1px solid #b8d6d1;
  border-radius: 8px;
  background: #f2faf8;
}
.message-related-clock-panel div:first-child {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.message-related-clock-panel span {
  color: #176b73;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.message-related-clock-panel strong {
  color: #173f45;
  font-size: 19px;
  line-height: 1.15;
}
.message-related-clock-panel small {
  color: #45565c;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.manual-body {
  white-space: pre-wrap;
  line-height: 1.65;
  color: var(--ink);
  font-size: 16px;
}
.manual-test-form {
  gap: 16px;
}
.manual-test-question {
  grid-column: 1 / -1;
  display: grid;
  gap: 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  margin: 0;
}
.manual-test-question legend {
  padding: 0 6px;
  font-weight: 900;
  color: var(--ink);
}
.manual-test-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}
.manual-test-option input {
  width: auto;
  min-height: auto;
  margin-top: 4px;
}
.student-tabs {
  display: grid;
  gap: 14px;
  min-width: 0;
  max-width: 100%;
}
.employee-clock-balance-kpis {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.employee-clock-calendar-weekdays,
.employee-clock-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}
.employee-clock-calendar-weekdays {
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}
.employee-clock-calendar-day,
.employee-clock-calendar-spacer {
  min-height: 108px;
}
.employee-clock-calendar-day {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  text-decoration: none;
}
.employee-clock-calendar-day strong {
  font-size: 15px;
}
.employee-clock-calendar-day span,
.employee-clock-calendar-day b {
  overflow-wrap: anywhere;
  font-size: 11px;
  line-height: 1.25;
}
.employee-clock-calendar-day.is-empty {
  color: var(--muted);
  background: #f8fafc;
}
.employee-clock-calendar-day.is-positive { border-color: #86b99a; background: #f2faf5; }
.employee-clock-calendar-day.is-negative { border-color: #d8a0a0; background: #fff6f6; }
.employee-clock-calendar-day.is-balanced { border-color: #9eb5c7; background: #f5f9fc; }
.employee-clock-calendar-day.is-pending { border-color: #d6bd75; background: #fffaf0; }
.student-tabs > input {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  border: 0;
  margin: 0;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
}
.daycontrol-inline-tabs {
  display: grid;
  gap: 14px;
  min-width: 0;
}
.daycontrol-inline-tabs > input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  border: 0;
  clip: rect(0 0 0 0);
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
}
.daycontrol-inline-content {
  display: none;
  min-width: 0;
}
#employee_daycontrol_tab_summary:checked ~ .daycontrol-settings-tabs label[for="employee_daycontrol_tab_summary"],
#employee_daycontrol_tab_security:checked ~ .daycontrol-settings-tabs label[for="employee_daycontrol_tab_security"] {
  background: var(--brand);
  border-color: var(--brand);
  color: #ffffff;
}
#employee_daycontrol_tab_summary:checked ~ .daycontrol-inline-summary,
#employee_daycontrol_tab_security:checked ~ .daycontrol-inline-security {
  display: block;
}
.student-tab-nav {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 0 6px;
  scrollbar-width: thin;
}
.student-tab-nav label {
  flex: 0 0 auto;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--muted);
  font-weight: 900;
  cursor: pointer;
}
.teacher-requests-shell { min-width: 0; }
.teacher-inventory-shell { min-width: 0; }
.teacher-inventory-shell .form-actions { flex-wrap: wrap; gap: 8px; }
.teacher-inventory-shell .form-grid label { min-width: 0; }
.workday-tabs > input[type=radio], .workday-tab { display: none; }
#workday_schedule:checked ~ .workday-tab-schedule,
#workday_activity:checked ~ .workday-tab-activity,
#workday_notes:checked ~ .workday-tab-notes { display: block; }
#workday_schedule:checked ~ .student-tab-nav label[for=workday_schedule],
#workday_activity:checked ~ .student-tab-nav label[for=workday_activity],
#workday_notes:checked ~ .student-tab-nav label[for=workday_notes] { background: #e8f5ef; color: #175d41; border-bottom: 2px solid #247a55; }
.workday-tracks { display: grid; gap: 12px; margin: 12px 0; }
.workday-tracks dt, .workday-totals dt { font-size: 13px; color: #555; }
.workday-tracks dd, .workday-totals dd { margin: 4px 0 0; overflow-wrap: anywhere; font-weight: 600; }
.workday-totals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.workday-comparison { min-width: 0; }
.workday-tabs .student-tab-nav { display: flex; flex-wrap: wrap; }
.teacher-request-filters {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 12px;
  margin: 12px 0;
}
.teacher-request-filters label { width: 160px; max-width: 100%; }
.teacher-requests-shell .employee-request-card { grid-template-columns: minmax(0, 1fr); }
.employee-request-detail-summary .panel-head { margin-bottom: 8px; }
.employee-request-period { margin: 0 0 12px; font-weight: 600; }
.employee-request-result { border-left: 3px solid var(--brand); padding-left: 12px; margin: 12px 0; }
.employee-request-result p, .employee-request-comment p { margin: 5px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.employee-request-comment { margin: 14px 0; }
.employee-request-created { font-size: 13px; margin: 12px 0; }

.employee-directory-primary-action {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 10px;
}

.employee-onboarding-row {
  border-top: 1px solid var(--border-color, #d9dee7);
  margin-top: 12px;
  padding-top: 12px;
}

.employee-onboarding-row:first-child {
  border-top: 0;
  margin-top: 0;
  padding-top: 0;
}

@media (max-width: 640px) {
  .employee-directory-primary-action,
  .employee-directory-primary-action .table-action {
    width: 100%;
  }

  .employee-onboarding-row {
    grid-template-columns: minmax(0, 1fr);
  }
}
.employee-request-detail-actions { align-items: center; gap: 12px; }
.employee-request-extra { margin-top: 6px; }
.employee-request-extra summary { cursor: pointer; color: var(--muted); font-size: 13px; }
.student-detail-tabs > .student-tab-nav {
  flex-wrap: wrap;
  overflow-x: visible;
}
.student-detail-tabs > .student-tab-nav label {
  flex: 1 1 150px;
  min-width: min(100%, 150px);
  white-space: normal;
  text-align: center;
}
.student-tab-content {
  display: none;
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
}
.student-tutor-tab-nav {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 8px;
}
.student-tutor-tab-nav button {
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--muted);
  font-weight: 900;
}
.student-tutor-tab-nav button.active {
  background: var(--brand);
  border-color: var(--brand);
  color: #ffffff;
}
.tutor-overview-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.tutor-overview-card {
  display: grid;
  align-content: start;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 14px;
  min-width: 0;
}
.tutor-overview-role {
  min-width: 0;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
}
.tutor-overview-role h3 {
  margin: 0;
  font-size: 14px;
  line-height: 1.2;
  text-transform: uppercase;
}
.tutor-overview-role span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.tutor-overview-person {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.tutor-overview-person strong,
.tutor-overview-person span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.tutor-overview-person span {
  color: var(--muted);
}
.tutor-overview-empty {
  min-height: 34px;
  display: flex;
  align-items: center;
  color: var(--muted);
  font-weight: 800;
}
button.table-action {
  cursor: pointer;
  font: inherit;
}
.tutor-panel-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
.tutor-person-card,
.tutor-search-result {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
}
.tutor-person-card + .tutor-person-card,
.tutor-search-result + .tutor-search-result {
  margin-top: 10px;
}
.tutor-person-card .details {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.tutor-search-box {
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
}
.tutor-search-results {
  display: grid;
  gap: 8px;
  max-height: 320px;
  overflow: auto;
}
.tutor-search-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.tutor-search-result small {
  display: block;
  color: var(--muted);
}
.student-family-links-panel .muted {
  color: var(--muted);
  margin: 0 0 12px;
}
.student-relation-list,
.student-friend-results {
  display: grid;
  gap: 10px;
}
.student-relation-card,
.student-friend-results form {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 12px;
}
.student-relation-card span,
.student-friend-results small {
  color: var(--muted);
  display: block;
  margin-top: 3px;
}
.student-sibling-card {
  color: var(--ink);
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  justify-content: start;
  text-decoration: none;
}
.student-sibling-card:hover {
  border-color: var(--brand);
  background: #f2faf8;
}
.student-person-icon {
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  display: inline-flex;
  height: 38px;
  justify-content: center;
  margin: 0;
  width: 38px;
}
.student-person-icon svg {
  fill: none;
  height: 22px;
  stroke: var(--muted);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 22px;
}
.student-sibling-list {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.student-relation-card-subtle {
  background: #f8fafc;
}
.student-friend-picker {
  border-top: 1px solid var(--line);
  margin-top: 14px;
  padding-top: 14px;
}
.student-friend-picker input {
  margin-top: 6px;
}
.student-activity-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}
.student-activity-filter button {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--muted);
  font-weight: 900;
}
.student-activity-filter button.active {
  background: var(--brand);
  border-color: var(--brand);
  color: #ffffff;
}
.student-activity-status {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 9px;
  border: 1px solid #cddbd8;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.student-activity-status.activity-status-current {
  color: #245a40;
  background: #f2faf8;
  border-color: #b8d6d1;
}
.student-activity-status.activity-status-past {
  color: #555555;
  background: #f2f2f2;
  border-color: #d6d6d6;
}
.student-workshop-history { margin-top: 8px; max-width: 430px; }
.student-workshop-history summary { color: var(--brand-dark); cursor: pointer; font-weight: 700; }
.student-workshop-history-body { padding: 8px 0; font-size: 13px; line-height: 1.45; }
.student-workshop-history-body p { margin: 4px 0; }
.student-workshop-history-body ul { list-style: none; padding: 0; margin: 10px 0 0; }
.student-workshop-history-body li { display: grid; gap: 2px; padding: 7px 0; border-top: 1px solid var(--line); }
#student_tab_basic:checked ~ .student-tab-nav label[for="student_tab_basic"],
#student_tab_advanced:checked ~ .student-tab-nav label[for="student_tab_advanced"],
#student_tab_tutors:checked ~ .student-tab-nav label[for="student_tab_tutors"],
#student_tab_siblings:checked ~ .student-tab-nav label[for="student_tab_siblings"],
#student_tab_sepa:checked ~ .student-tab-nav label[for="student_tab_sepa"],
#student_tab_payments:checked ~ .student-tab-nav label[for="student_tab_payments"],
#student_tab_activities:checked ~ .student-tab-nav label[for="student_tab_activities"],
#student_tab_authorizations:checked ~ .student-tab-nav label[for="student_tab_authorizations"],
#student_tab_tasks:checked ~ .student-tab-nav label[for="student_tab_tasks"],
#student_tab_technical:checked ~ .student-tab-nav label[for="student_tab_technical"],
#profile_tab_data:checked ~ .student-tab-nav label[for="profile_tab_data"],
#profile_tab_contract:checked ~ .student-tab-nav label[for="profile_tab_contract"],
#profile_tab_payrolls:checked ~ .student-tab-nav label[for="profile_tab_payrolls"],
#profile_tab_bank:checked ~ .student-tab-nav label[for="profile_tab_bank"],
#profile_tab_security:checked ~ .student-tab-nav label[for="profile_tab_security"],
#profile_tab_access:checked ~ .student-tab-nav label[for="profile_tab_access"],
#clock_tab_summary:checked ~ .student-tab-nav label[for="clock_tab_summary"],
#clock_tab_days:checked ~ .student-tab-nav label[for="clock_tab_days"],
#clock_tab_incidents:checked ~ .student-tab-nav label[for="clock_tab_incidents"],
#clock_tab_downloads:checked ~ .student-tab-nav label[for="clock_tab_downloads"],
#clock_tab_close:checked ~ .student-tab-nav label[for="clock_tab_close"],
#employee_clock_tab_pending:checked ~ .student-tab-nav label[for="employee_clock_tab_pending"],
#employee_clock_tab_summary:checked ~ .student-tab-nav label[for="employee_clock_tab_summary"],
#employee_clock_tab_calendar:checked ~ .student-tab-nav label[for="employee_clock_tab_calendar"],
#employee_clock_tab_incidents:checked ~ .student-tab-nav label[for="employee_clock_tab_incidents"],
#employee_clock_tab_overtime:checked ~ .student-tab-nav label[for="employee_clock_tab_overtime"],
#employee_clock_tab_mileage:checked ~ .student-tab-nav label[for="employee_clock_tab_mileage"],
#employee_clock_tab_close:checked ~ .student-tab-nav label[for="employee_clock_tab_close"],
#employee_clock_tab_corrections:checked ~ .student-tab-nav label[for="employee_clock_tab_corrections"],
#employee_clock_tab_payroll:checked ~ .student-tab-nav label[for="employee_clock_tab_payroll"],
#employee_detail_tab_personal:checked ~ .student-tab-nav label[for="employee_detail_tab_personal"],
#employee_detail_tab_contract:checked ~ .student-tab-nav label[for="employee_detail_tab_contract"],
#employee_detail_tab_groups:checked ~ .student-tab-nav label[for="employee_detail_tab_groups"],
#employee_detail_tab_calendar:checked ~ .student-tab-nav label[for="employee_detail_tab_calendar"],
#employee_detail_tab_vacations:checked ~ .student-tab-nav label[for="employee_detail_tab_vacations"],
#employee_detail_tab_medical:checked ~ .student-tab-nav label[for="employee_detail_tab_medical"],
#employee_detail_tab_hours:checked ~ .student-tab-nav label[for="employee_detail_tab_hours"],
#employee_detail_tab_mileage:checked ~ .student-tab-nav label[for="employee_detail_tab_mileage"],
#employee_detail_tab_payrolls:checked ~ .student-tab-nav label[for="employee_detail_tab_payrolls"],
#employee_detail_tab_documents:checked ~ .student-tab-nav label[for="employee_detail_tab_documents"],
#employee_detail_tab_training:checked ~ .student-tab-nav label[for="employee_detail_tab_training"],
#employee_detail_tab_security:checked ~ .student-tab-nav label[for="employee_detail_tab_security"],
#employee_detail_tab_technical:checked ~ .student-tab-nav label[for="employee_detail_tab_technical"],
#employee_detail_tab_cash:checked ~ .student-tab-nav label[for="employee_detail_tab_cash"],
#employee_self_tab_personal:checked ~ .student-tab-nav label[for="employee_self_tab_personal"],
#employee_self_tab_work:checked ~ .student-tab-nav label[for="employee_self_tab_work"],
#employee_self_tab_groups:checked ~ .student-tab-nav label[for="employee_self_tab_groups"],
#employee_self_tab_calendar:checked ~ .student-tab-nav label[for="employee_self_tab_calendar"],
#employee_self_tab_vacations:checked ~ .student-tab-nav label[for="employee_self_tab_vacations"],
#employee_self_tab_hours:checked ~ .student-tab-nav label[for="employee_self_tab_hours"],
#employee_self_tab_payrolls:checked ~ .student-tab-nav label[for="employee_self_tab_payrolls"],
#employee_self_tab_documents:checked ~ .student-tab-nav label[for="employee_self_tab_documents"],
#employee_self_tab_training:checked ~ .student-tab-nav label[for="employee_self_tab_training"],
#employee_self_tab_security:checked ~ .student-tab-nav label[for="employee_self_tab_security"],
#group_tab_info:checked ~ .student-tab-nav label[for="group_tab_info"],
#group_tab_students:checked ~ .student-tab-nav label[for="group_tab_students"],
#group_tab_payments:checked ~ .student-tab-nav label[for="group_tab_payments"],
#group_tab_calendar:checked ~ .student-tab-nav label[for="group_tab_calendar"],
#group_tab_teaching:checked ~ .student-tab-nav label[for="group_tab_teaching"],
#group_tab_organization:checked ~ .student-tab-nav label[for="group_tab_organization"],
#group_tab_publication:checked ~ .student-tab-nav label[for="group_tab_publication"],
#group_tab_management:checked ~ .student-tab-nav label[for="group_tab_management"] {
  background: var(--brand);
  border-color: var(--brand);
  color: #ffffff;
}
#student_tab_basic:checked ~ .student-tab-basic,
#student_tab_advanced:checked ~ .student-tab-advanced,
#student_tab_tutors:checked ~ .student-tab-tutors,
#student_tab_siblings:checked ~ .student-tab-siblings,
#student_tab_sepa:checked ~ .student-tab-sepa,
#student_tab_payments:checked ~ .student-tab-payments,
#student_tab_activities:checked ~ .student-tab-activities,
#student_tab_authorizations:checked ~ .student-tab-authorizations,
#student_tab_tasks:checked ~ .student-tab-tasks,
#student_tab_technical:checked ~ .student-tab-technical,
#profile_tab_data:checked ~ .profile-tab-data,
#profile_tab_contract:checked ~ .profile-tab-contract,
#profile_tab_payrolls:checked ~ .profile-tab-payrolls,
#profile_tab_bank:checked ~ .profile-tab-bank,
#profile_tab_security:checked ~ .profile-tab-security,
#profile_tab_access:checked ~ .profile-tab-access,
#clock_tab_summary:checked ~ .clock-tab-summary,
#clock_tab_days:checked ~ .clock-tab-days,
#clock_tab_incidents:checked ~ .clock-tab-incidents,
#clock_tab_downloads:checked ~ .clock-tab-downloads,
#clock_tab_close:checked ~ .clock-tab-close,
#employee_clock_tab_pending:checked ~ .employee-clock-tab-pending,
#employee_clock_tab_summary:checked ~ .employee-clock-tab-summary,
#employee_clock_tab_calendar:checked ~ .employee-clock-tab-calendar,
#employee_clock_tab_incidents:checked ~ .employee-clock-tab-incidents,
#employee_clock_tab_overtime:checked ~ .employee-clock-tab-overtime,
#employee_clock_tab_mileage:checked ~ .employee-clock-tab-mileage,
#employee_clock_tab_close:checked ~ .employee-clock-tab-close,
#employee_clock_tab_corrections:checked ~ .employee-clock-tab-corrections,
#employee_clock_tab_payroll:checked ~ .employee-clock-tab-payroll,
#employee_detail_tab_personal:checked ~ .employee-detail-tab-personal,
#employee_detail_tab_contract:checked ~ .employee-detail-tab-contract,
#employee_detail_tab_groups:checked ~ .employee-detail-tab-groups,
#employee_detail_tab_calendar:checked ~ .employee-detail-tab-calendar,
#employee_detail_tab_vacations:checked ~ .employee-detail-tab-vacations,
#employee_detail_tab_medical:checked ~ .employee-detail-tab-medical,
#employee_detail_tab_hours:checked ~ .employee-detail-tab-hours,
#employee_detail_tab_mileage:checked ~ .employee-detail-tab-mileage,
#employee_detail_tab_payrolls:checked ~ .employee-detail-tab-payrolls,
#employee_detail_tab_documents:checked ~ .employee-detail-tab-documents,
#employee_detail_tab_training:checked ~ .employee-detail-tab-training,
#employee_detail_tab_security:checked ~ .employee-detail-tab-security,
#employee_detail_tab_technical:checked ~ .employee-detail-tab-technical,
#employee_detail_tab_cash:checked ~ .employee-detail-tab-cash,
#employee_self_tab_personal:checked ~ .employee-self-tab-personal,
#employee_self_tab_work:checked ~ .employee-self-tab-work,
#employee_self_tab_groups:checked ~ .employee-self-tab-groups,
#employee_self_tab_calendar:checked ~ .employee-self-tab-calendar,
#employee_self_tab_vacations:checked ~ .employee-self-tab-vacations,
#employee_self_tab_hours:checked ~ .employee-self-tab-hours,
#employee_self_tab_payrolls:checked ~ .employee-self-tab-payrolls,
#employee_self_tab_documents:checked ~ .employee-self-tab-documents,
#employee_self_tab_training:checked ~ .employee-self-tab-training,
#employee_self_tab_security:checked ~ .employee-self-tab-security,
#group_tab_info:checked ~ .group-tab-info,
#group_tab_students:checked ~ .group-tab-students,
#group_tab_payments:checked ~ .group-tab-payments,
#group_tab_calendar:checked ~ .group-tab-calendar,
#group_tab_teaching:checked ~ .group-tab-teaching,
#group_tab_organization:checked ~ .group-tab-organization,
#group_tab_publication:checked ~ .group-tab-publication,
#group_tab_management:checked ~ .group-tab-management {
  display: block;
}
.employee-document-tabs > input {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
}
.employee-document-tab-content {
  display: none;
}
#employee_document_tab_contract:checked ~ .student-tab-nav label[for="employee_document_tab_contract"],
#employee_document_tab_certificate:checked ~ .student-tab-nav label[for="employee_document_tab_certificate"],
#employee_document_tab_start_course:checked ~ .student-tab-nav label[for="employee_document_tab_start_course"],
#employee_document_tab_other:checked ~ .student-tab-nav label[for="employee_document_tab_other"] {
  background: var(--brand);
  border-color: var(--brand);
  color: #ffffff;
}
#employee_document_tab_contract:checked ~ .employee-document-tab-contract,
#employee_document_tab_certificate:checked ~ .employee-document-tab-certificate,
#employee_document_tab_start_course:checked ~ .employee-document-tab-start-course,
#employee_document_tab_other:checked ~ .employee-document-tab-other {
  display: block;
}
.profile-tabs .panel {
  margin: 0;
}
.clock-history-tabs .panel {
  margin: 0;
}
.employee-clock-tabs .panel {
  margin: 0;
}
.employee-detail-tabs .panel,
.employee-detail-tabs .metrics,
.group-detail-tabs .panel,
.group-detail-tabs .metrics {
  margin-top: 0;
}
.employee-detail-heading { margin: 0 0 10px; }
.employee-detail-heading .panel-head { margin: 0; }
.employee-detail-heading h2 { margin: 0; }
.employee-detail-metrics { margin-bottom: 4px; }
.employee-detail-period { margin: 0 0 12px; }
.employee-personal-subsection { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line); }
.employee-personal-subsection .panel-head { margin-bottom: 12px; }
.employee-personal-subsection h3 { margin: 0; }
.employee-detail-related-actions { margin-top: 18px; }
.employee-week-summary { display:flex; justify-content:flex-end; margin:14px 0 8px; color:var(--brand-dark); }
.employee-week-calendar { display:grid; grid-template-columns:repeat(var(--employee-week-columns, 5),minmax(0,1fr)); gap:10px; overflow-x:visible; padding-bottom:8px; }
.employee-week-day { min-width:0; border:1px solid var(--line); border-radius:8px; background:#f7faf9; overflow:hidden; }
.employee-week-day h3 { margin:0; padding:11px 12px; border-bottom:3px solid var(--brand); background:#fff; color:var(--brand-dark); font-size:15px; }
.employee-week-work,.employee-week-free { display:grid; min-width:0; gap:4px; margin:9px; padding:10px; border-radius:7px; }
.employee-week-work { border-left:5px solid var(--accent); background:#fff4e8; }
.employee-week-work.is-research { border-left-color:var(--brand); background:#edf8f6; }
.employee-week-work > span,.employee-week-free > span,.employee-week-group > span { color:var(--muted); font-size:12px; font-weight:900; }
.employee-week-work > strong,.employee-week-free > strong { overflow-wrap:anywhere; color:var(--ink); font-size:14px; }
.employee-week-work > small { overflow-wrap:anywhere; color:var(--muted); }
.employee-week-free { min-height:44px; border:1px dashed #9fc8b6; background:#f4fbf7; }
.employee-week-free strong { color:#24613f; }
.employee-week-group { display:grid; min-width:0; gap:3px; margin-top:8px; padding-top:8px; border-top:1px solid #ead8c6; }
.employee-week-group > strong { overflow-wrap:anywhere; font-size:13px; }
.employee-week-group > small { overflow-wrap:anywhere; color:var(--muted); }
.employee-week-group .table-actions { display:grid; grid-template-columns:minmax(0,1fr); width:100%; min-width:0; gap:5px; margin-top:4px; }
.employee-week-group .table-action { width:100%; min-width:0; min-height:30px; padding:5px 7px; font-size:11px; }
.employee-empty-groups { margin-top:14px; border-top:1px solid var(--line); padding-top:12px; }
.employee-empty-groups summary { cursor:pointer; color:var(--muted); font-weight:900; }
.employee-empty-groups article { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); }
.employee-empty-groups article div:first-child { display:grid; gap:3px; min-width:0; }
.employee-empty-groups article strong,.employee-empty-groups article small { overflow-wrap:anywhere; }
@media (max-width: 760px) {
  .employee-week-calendar { grid-template-columns:repeat(var(--employee-week-columns, 5),minmax(168px,1fr)); overflow-x:auto; }
  .employee-week-day { min-width:168px; }
  .employee-empty-groups article { align-items:flex-start; flex-direction:column; }
}
.group-information-form {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.group-information-form [data-group-confirm][hidden] { display: none !important; }
.group-information-form { align-items: start; }
.group-information-form label { align-content: start; }
.group-control-field, .group-room-field { display: grid; gap: 6px; min-width: 0; align-content: start; }
.group-control-field small, .group-room-field small { font-size: 12px; }
.group-information-form input:not([type="checkbox"]), .group-information-form select:not([multiple]) { height: 42px; box-sizing: border-box; }
.group-information-form datalist { display: none; }
.group-information-form .group-enrollment-fee-block { grid-template-columns: minmax(0, 1fr); }
.group-enrollment-fee-block > label { max-width: 190px; }
.group-enrollment-periods { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.group-enrollment-periods[hidden] { display: none !important; }
[data-add-modality] [hidden] { display: none !important; }
.group-information-form .group-enrollment-period { grid-template-columns: minmax(0, 1fr); }
.group-date-control { display: grid; grid-template-columns: minmax(0, 1fr) 36px 24px; align-items: center; min-width: 0; height: 42px; border: 1px solid #cdd7d6; border-radius: 6px; background: white; }
.group-date-control output { font-size: 14px; padding-left: 10px; white-space: nowrap; }
.group-information-form .group-date-control input { width: 36px; padding: 5px; border: 0; background: transparent; box-shadow: none; }
.group-date-control input::-webkit-datetime-edit { display: none; }
.group-date-control input::-webkit-calendar-picker-indicator { cursor: pointer; padding: 4px; }
.group-date-control button { background: transparent; padding: 0; border: 0; color: var(--muted); font-size: 18px; height: 32px; }
.group-method-options { min-width: 0; margin: 0; border: 0; padding: 0; display: grid; gap: 8px; align-content: start; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.group-method-options legend { font-weight: 700; margin-bottom: 8px; }
.group-information-form .group-method-options .checkbox-row { display: flex; flex-direction: row; align-items: center; gap: 8px; font-weight: 400; min-height: 32px; align-self: start; overflow-wrap: anywhere; }
.group-method-options input[type="checkbox"] { width: 16px; height: 16px; margin: 0; }
.group-admin-title small a { color: inherit; text-decoration: underline; }
@media (max-width: 1000px) { .group-enrollment-periods { grid-template-columns: minmax(0, 1fr); } }
.group-field-save-status { display: block; min-height: 17px; font-size: 12px; font-weight: 400; color: var(--muted); }
.group-field-save-status[data-state="error"] { color: var(--danger); }
.group-field-save-status[data-state="saved"] { color: var(--brand); }
.group-information-form .readonly-field {
  display: grid;
  gap: 6px;
  align-content: start;
  min-height: 42px;
  padding: 10px 12px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  background: #f7fbfa;
}
.group-information-form .readonly-field span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.group-information-form .readonly-field strong {
  color: var(--ink);
  font-size: 15px;
}
.group-information-subblock {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 190px repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
  margin: 4px 0;
  padding: 14px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  background: #fbfdfd;
}
.group-information-subblock legend {
  padding: 0 6px;
  color: var(--brand-dark);
  font-weight: 900;
}
.group-enrollment-period {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.group-enrollment-period h3 {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-history-tabs .metrics {
  margin-top: 0;
}
.clock-history-head {
  margin-bottom: 12px;
}
.clock-employee-home {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 12px;
  align-items: stretch;
  margin-bottom: 12px;
}
.clock-employee-home-hero {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 16px;
  border: 1px solid #d7e4e2;
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #f7fbfa;
}
.clock-employee-home-hero span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-employee-home-hero strong {
  color: #173f45;
  font-size: 27px;
  line-height: 1.08;
  overflow-wrap: anywhere;
}
.clock-employee-home-hero small {
  color: #45565c;
  font-weight: 900;
  line-height: 1.35;
}
.clock-employee-main-actions {
  min-width: 0;
  display: grid;
  gap: 8px;
}
.clock-employee-main-actions .table-action {
  width: 100%;
  min-height: 44px;
  justify-content: center;
  text-align: center;
  cursor: pointer;
}
.clock-summary-grid-simple {
  margin-bottom: 0;
}
.clock-employee-review-tray {
  display: grid;
  gap: 12px;
  margin: 14px 0;
  padding: 14px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.clock-employee-review-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}
.clock-employee-review-card {
  min-width: 0;
  display: grid;
  gap: 6px;
  padding: 12px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  background: #f8fbfa;
}
.clock-employee-review-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-employee-review-card strong {
  color: #173f45;
  font-size: 21px;
  line-height: 1.08;
  overflow-wrap: anywhere;
}
.clock-employee-review-card small {
  color: #45565c;
  font-weight: 800;
  line-height: 1.25;
}
.clock-employee-review-card.tone-warning {
  border-color: #edc6a4;
  background: #fff7e8;
}
.clock-employee-review-card.tone-money {
  border-color: #d9c3ac;
  background: #fbf5ee;
}
.clock-employee-review-card.tone-travel {
  border-color: #b8d6d1;
  background: #f2faf8;
}
.clock-employee-review-card.tone-review {
  border-color: #c3ccd0;
  background: #f1f5f6;
}
.clock-employee-review-card.tone-ok {
  border-color: #cfe5d8;
  background: #f3fbf5;
}
.employee-clock-tabs,
.employee-clock-tabs .student-tab-content,
.employee-clock-tabs .table-panel,
.employee-clock-tabs .table-wrap {
  min-width: 0;
  max-width: 100%;
}
.employee-clock-tabs .metrics {
  margin-top: 0;
}
.employee-clock-filter-details {
  margin-top: 10px;
}
.employee-clock-filter-details summary {
  cursor: pointer;
  color: var(--brand);
  font-weight: 800;
}
.employee-clock-filter-details .form-grid {
  margin-top: 12px;
}
.employee-clock-help-panel ol {
  margin: 0;
  padding-left: 22px;
}
.employee-clock-help-panel li + li {
  margin-top: 7px;
}
.employee-clock-tab-intro {
  display: grid;
  gap: 4px;
  margin-bottom: 10px;
  padding: 12px 14px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  background: #f7fbfa;
}
.employee-clock-tab-intro strong {
  color: #173f45;
  font-size: 17px;
  line-height: 1.15;
}
.employee-clock-tab-intro small {
  color: var(--muted);
  font-weight: 800;
  line-height: 1.3;
}
.employee-clock-review-tray {
  display: grid;
  gap: 12px;
  margin: 14px 0;
  padding: 14px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.employee-clock-review-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.employee-clock-incident-summary {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.employee-clock-incidents-filter {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  align-self: end;
  gap: 8px;
  min-height: 44px;
}
.employee-clock-incidents-filter input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  margin: 0;
  padding: 0;
}
.employee-clock-close-table table {
  min-width: 920px;
}
.employee-clock-review-card {
  min-width: 0;
  display: grid;
  gap: 8px;
  align-content: start;
  padding: 13px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  background: #f8fbfa;
}
.employee-clock-review-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.employee-clock-review-card strong {
  color: #173f45;
  font-size: 30px;
  line-height: 1;
}
.employee-clock-review-card small {
  min-height: 44px;
  color: #45565c;
  font-weight: 800;
  line-height: 1.25;
}
.employee-clock-review-card .table-action {
  width: 100%;
  justify-content: center;
  text-align: center;
}
.employee-clock-review-card.tone-danger {
  border-color: #efb3aa;
  background: #fff1ee;
}
.employee-clock-review-card.tone-warning {
  border-color: #edc6a4;
  background: #fff7e8;
}
.employee-clock-review-card.tone-money {
  border-color: #d9c3ac;
  background: #fbf5ee;
}
.employee-clock-review-card.tone-travel {
  border-color: #b8d6d1;
  background: #f2faf8;
}
.employee-clock-review-card.tone-review {
  border-color: #c3ccd0;
  background: #f1f5f6;
}
.employee-clock-review-card.tone-ok {
  border-color: #cfe5d8;
  background: #f3fbf5;
}
.employee-clock-review-note {
  margin: 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fff7e8;
  color: #7a5200;
  font-weight: 800;
}
.employee-clock-month-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.employee-clock-month-kpi,
.employee-clock-month-card {
  min-width: 0;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 20px rgba(20, 39, 42, 0.05);
}
.employee-clock-month-kpi {
  display: grid;
  gap: 5px;
  padding: 14px;
}
.employee-clock-month-kpi span,
.employee-clock-month-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.employee-clock-month-kpi strong {
  color: #173f45;
  font-size: 24px;
  line-height: 1.1;
}
.employee-clock-month-kpi small,
.employee-clock-month-card small {
  color: #52666b;
  font-weight: 800;
}
.employee-clock-month-kpi.tone-pending,
.employee-clock-month-card.tone-warning {
  border-color: #f2d186;
  background: #fffaf0;
}
.employee-clock-month-kpi.tone-history {
  border-color: #d9d3f4;
  background: #f7f5ff;
}
.employee-clock-month-kpi.tone-mileage {
  border-color: #cde1f7;
  background: #f3f8ff;
}
.employee-clock-month-kpi.tone-ok,
.employee-clock-month-card.tone-ok {
  border-color: #cfe5d8;
  background: #f7fbf8;
}
.employee-clock-month-panel {
  margin-bottom: 14px;
}
.employee-clock-month-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.employee-clock-month-card {
  display: grid;
  gap: 12px;
  padding: 14px;
}
.employee-clock-month-card header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.employee-clock-month-card header div {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.employee-clock-month-card header strong {
  color: #173f45;
  font-size: 18px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.employee-clock-month-card dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}
.employee-clock-month-card dt {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.employee-clock-month-card dd {
  margin: 2px 0 0;
  color: #173f45;
  font-weight: 900;
}
.employee-clock-month-card p {
  margin: 0;
  color: #45565c;
  font-weight: 800;
  line-height: 1.35;
}
.employee-overtime-overview {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.employee-overtime-metric,
.employee-overtime-card {
  min-width: 0;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  background: #ffffff;
}
.employee-overtime-metric {
  display: grid;
  gap: 5px;
  padding: 12px;
}
.employee-overtime-metric span,
.employee-overtime-card header span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.employee-overtime-metric strong {
  color: #173f45;
  font-size: 21px;
  line-height: 1.1;
}
.employee-overtime-metric small,
.employee-overtime-reviewed {
  color: #45565c;
  font-weight: 800;
}
.employee-overtime-sections {
  align-items: start;
  margin-bottom: 16px;
}
.employee-overtime-card-list {
  display: grid;
  gap: 10px;
}
.employee-overtime-card {
  display: grid;
  gap: 10px;
  padding: 12px;
}
.employee-overtime-card header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
}
.employee-overtime-card header strong {
  min-width: 0;
  color: #173f45;
  font-size: 17px;
  overflow-wrap: anywhere;
}
.employee-overtime-card dl {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}
.employee-overtime-card dt {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.employee-overtime-card dd {
  margin: 3px 0 0;
  color: var(--ink);
  font-weight: 900;
}
.employee-overtime-card p {
  margin: 0;
  color: #45565c;
  font-weight: 800;
  line-height: 1.3;
}
.employee-overtime-card-actions .table-actions {
  align-items: stretch;
}
.employee-overtime-card-actions,
.employee-overtime-card-actions .table-actions,
.employee-overtime-card-actions .inline-form {
  min-width: 0;
  max-width: 100%;
}
.employee-overtime-card-actions .inline-form input {
  min-width: 0;
}
.employee-overtime-card.status-pendiente {
  border-color: #edc6a4;
  background: #fff7e8;
}
.employee-overtime-card.status-aprobado {
  border-color: #cfe5d8;
  background: #f3fbf5;
}
.employee-overtime-card.status-parcial {
  border-color: #b8d6d1;
  background: #f2faf8;
}
.employee-overtime-card.status-rechazado {
  border-color: #efb3aa;
  background: #fff1ee;
}
.employee-clock-preclose-panel {
  display: grid;
  gap: 12px;
  margin-bottom: 14px;
  padding: 14px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.employee-clock-preclose-panel > p {
  margin: 0;
}
.employee-clock-preclose-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}
.employee-clock-preclose-card {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 11px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  background: #f8fbfa;
}
.employee-clock-preclose-card span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.employee-clock-preclose-card strong {
  color: #173f45;
  font-size: 24px;
  line-height: 1;
}
.employee-clock-preclose-card small {
  color: #45565c;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.22;
}
.employee-clock-preclose-card.tone-warning {
  border-color: #edc6a4;
  background: #fff7e8;
}
.employee-clock-preclose-card.tone-money {
  border-color: #d9c3ac;
  background: #fbf5ee;
}
.employee-clock-preclose-card.tone-travel {
  border-color: #b8d6d1;
  background: #f2faf8;
}
.employee-clock-preclose-card.tone-review,
.employee-clock-preclose-card.tone-history {
  border-color: #c3ccd0;
  background: #f1f5f6;
}
.employee-clock-preclose-card.tone-ok {
  border-color: #cfe5d8;
  background: #f3fbf5;
}
.employee-clock-preclose-note {
  padding: 10px 12px;
  border-radius: 8px;
  background: #f4f7f8;
  color: #45565c;
  font-weight: 900;
}
.employee-clock-incident-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  gap: 16px;
  align-items: stretch;
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid #d7e4e2;
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.employee-clock-incident-hero div {
  min-width: 0;
}
.employee-clock-incident-hero span,
.employee-clock-incident-hero small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.employee-clock-incident-hero h2 {
  margin: 5px 0;
  color: #173f45;
  font-size: 28px;
  line-height: 1.1;
  overflow-wrap: anywhere;
}
.employee-clock-incident-hero h2 a {
  color: inherit;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
}
.employee-clock-incident-hero p {
  margin: 0;
  color: #45565c;
  font-weight: 800;
  line-height: 1.35;
}
.employee-clock-incident-hero aside {
  display: grid;
  align-content: center;
  gap: 4px;
  padding: 14px;
  border-radius: 8px;
  background: #f4faf8;
  text-align: center;
}
.employee-clock-incident-hero aside strong {
  color: #173f45;
  font-size: 24px;
}
.employee-clock-incident-grid {
  align-items: start;
}
.employee-clock-incident-created {
  margin: -6px 0 14px;
  color: var(--muted);
  font-size: 13px;
}
.employee-clock-incident-event {
  max-width: 720px;
}
.employee-clock-gps-detail details > summary {
  cursor: pointer;
  color: var(--brand);
  font-weight: 800;
}
.employee-clock-gps-detail details > .details {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #d7e4e2;
}
.employee-clock-incident-help {
  max-width: 720px;
}
.employee-clock-incident-help > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  color: #173f45;
  font-weight: 900;
}
.employee-clock-incident-help > summary span {
  display: inline-grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
}
.employee-clock-incident-help > p {
  margin: 14px 0 0;
}
.employee-clock-incident-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.employee-clock-day-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid #d7e4e2;
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(20, 39, 42, 0.06);
}
.employee-clock-day-hero span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.employee-clock-day-hero h2 {
  margin: 5px 0;
  color: #173f45;
  font-size: 28px;
  line-height: 1.1;
  overflow-wrap: anywhere;
}
.employee-clock-day-hero p {
  margin: 0;
  color: #45565c;
  font-weight: 900;
}
.employee-clock-day-incidents ul {
  margin: 0;
  padding-left: 18px;
  color: #45565c;
  font-weight: 800;
}
.clock-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.clock-summary-card {
  min-width: 0;
  display: grid;
  gap: 5px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  padding: 13px;
  background: #ffffff;
}
.clock-summary-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-summary-card strong {
  color: #173f45;
  font-size: 22px;
  line-height: 1.12;
  overflow-wrap: anywhere;
}
.clock-summary-card small {
  color: #45565c;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.clock-summary-card.tone-state {
  border-color: #bfd6d2;
  background: #f4faf8;
}
.clock-summary-card.tone-pending {
  border-color: #ffd37d;
  background: #fffaf0;
}
.clock-summary-card.tone-mileage {
  border-color: #c3ccd0;
  background: #f1f5f6;
}
.clock-history-tabs,
.clock-history-tabs .student-tab-content,
.clock-history-tabs .table-panel,
.clock-history-tabs .table-wrap {
  min-width: 0;
  max-width: 100%;
}
.clock-history-tabs .student-tab-nav {
  margin-bottom: 8px;
}
.clock-technical-table .panel-head span {
  white-space: nowrap;
}
.clock-technical-table table {
  min-width: 760px;
}
.clock-day-panel {
  overflow: hidden;
}
.clock-month-calendar-panel {
  overflow: hidden;
  margin-bottom: 14px;
}
.clock-month-weekdays,
.clock-month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}
.clock-month-weekdays {
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-align: center;
}
.clock-month-day {
  min-width: 0;
  min-height: 74px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}
.clock-month-day a,
.clock-month-day div {
  min-height: 72px;
  padding: 7px 5px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: inherit;
  text-decoration: none;
}
.clock-month-day strong {
  color: #173f45;
  font-size: 14px;
}
.clock-month-day span {
  color: #176b73;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.15;
}
.clock-month-day small {
  margin-top: auto;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.15;
}
.clock-month-day.outside-month {
  opacity: 0.35;
  background: #f6f8f8;
}
.clock-month-day.status-pendiente-revision,
.clock-month-day.status-incidencia,
.clock-month-day.status-jornada-abierta {
  background: #fffaf0;
  border-color: #f0d494;
}
.clock-month-day.status-trabajado {
  background: #f3fbf8;
  border-color: #bfe4d4;
}
.clock-month-day.work-state-holiday:not(.outside-month) {
  border-color: #a82929;
  background: #c83b3b;
  color: #fff;
}
.clock-month-day.work-state-free:not(.outside-month) {
  border-color: #bd8b08;
  background: #e3ad17;
  color: #2d2307;
}
.clock-month-day.work-state-work:not(.outside-month) {
  border-color: #194d96;
  background: #2563b8;
  color: #fff;
}
.clock-month-day.work-state-vacation:not(.outside-month) {
  border-color: #1b6d3a;
  background: #27894e;
  color: #fff;
}
.clock-month-day.work-state-holiday:not(.outside-month) strong,
.clock-month-day.work-state-holiday:not(.outside-month) small,
.clock-month-day.work-state-work:not(.outside-month) strong,
.clock-month-day.work-state-work:not(.outside-month) small,
.clock-month-day.work-state-vacation:not(.outside-month) strong,
.clock-month-day.work-state-vacation:not(.outside-month) small {
  color: #fff;
}
.clock-month-day.status-pendiente-revision:not(.outside-month),
.clock-month-day.status-incidencia:not(.outside-month),
.clock-month-day.status-jornada-abierta:not(.outside-month) {
  border-color: #d88b16;
  background: #f4b942;
  color: #2f2205;
}
.clock-month-day.status-pendiente-revision:not(.outside-month) strong,
.clock-month-day.status-incidencia:not(.outside-month) strong,
.clock-month-day.status-jornada-abierta:not(.outside-month) strong,
.clock-month-day.status-pendiente-revision:not(.outside-month) small,
.clock-month-day.status-incidencia:not(.outside-month) small,
.clock-month-day.status-jornada-abierta:not(.outside-month) small {
  color: #2f2205;
}
.employee-labor-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 10px;
  color: #26363a;
  font-weight: 900;
}
.employee-labor-month-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.employee-labor-month-form {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 8px;
  margin: 0;
}
.employee-labor-month-form label {
  display: grid;
  gap: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.employee-labor-month-form select,
.employee-labor-month-form button,
.employee-labor-month-tools .table-action {
  min-height: 40px;
}
.employee-labor-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.employee-labor-legend i {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  border-radius: 4px;
  border: 2px solid var(--line);
}
.employee-labor-legend .status-school, .employee-labor-day.status-school { background: #cffafe; border-color: #0891b2; color: #155e75; }
.employee-labor-legend .status-review, .employee-labor-day.status-review { background: #ffedd5; border-color: #ea580c; color: #9a3412; }
.employee-labor-legend .status-inactive, .employee-labor-day.status-inactive { background: #ede9fe; border-color: #7c3aed; color: #5b21b6; }
.employee-labor-legend .status-unknown, .employee-labor-day.status-unknown { background: #e5e7eb; border-color: #6b7280; color: #374151; }
.employee-labor-legend .status-absence, .employee-labor-day.status-absence { background: #fee2e2; border-color: #dc2626; color: #991b1b; }
.employee-labor-legend .status-work,
.employee-labor-day.status-work {
  background: #dbeafe;
  border-color: #2563eb;
  color: #1e40af;
}
.employee-labor-legend .status-vacation,
.employee-labor-day.status-vacation {
  background: #dcfce7;
  border-color: #16a34a;
  color: #166534;
}
.employee-labor-legend .status-free,
.employee-labor-day.status-free {
  background: #fef3c7;
  border-color: #ca8a04;
  color: #854d0e;
}
.employee-labor-day.today {
  box-shadow: inset 0 0 0 2px #176b73;
}
.teacher-labor-detail > summary {
  padding: 14px 0;
  cursor: pointer;
  font-weight: 700;
}
@media (max-width: 400px) {
  .teacher-profile-shell .employee-labor-calendar-panel .clock-month-heading { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .teacher-profile-shell .employee-labor-grid .employee-labor-day span,
  .teacher-profile-shell .employee-labor-grid .employee-labor-day small { display: none; }
  .teacher-profile-shell .employee-labor-grid .employee-labor-day { min-height: 44px; }
  .teacher-profile-shell .employee-labor-grid .employee-labor-day a,
  .teacher-profile-shell .employee-labor-grid .employee-labor-day div {
    min-height: 44px; padding: 8px 2px; align-items: center; justify-content: center;
  }
  .teacher-profile-shell .employee-labor-legend { font-size: 12px; gap: 8px; font-weight: 600; }
  .teacher-profile-shell .employee-labor-month-tools { margin-bottom: 8px; }
}
.clock-day-card-list {
  display: grid;
  gap: 10px;
}
.clock-day-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
  min-width: 0;
}
.clock-day-card header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.clock-day-card header strong {
  color: #173f45;
  font-size: 17px;
}
.clock-day-card header span {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 5px 8px;
  background: #edf6f4;
  color: #176b73;
  font-size: 12px;
  font-weight: 900;
}
.clock-day-card.status-incidencia header span,
.clock-day-card.status-jornada-abierta header span {
  background: #fff7df;
  color: #654400;
}
.clock-day-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}
.clock-day-card dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}
.clock-day-card dd {
  margin: 2px 0 0;
  color: var(--text);
  font-weight: 900;
  overflow-wrap: anywhere;
}
.clock-day-detail {
  margin-top: 12px;
  border-top: 1px solid #edf1f2;
  padding-top: 10px;
}
.clock-day-detail summary {
  cursor: pointer;
  color: #176b73;
  font-weight: 900;
}
.clock-day-detail-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.clock-day-detail-row {
  display: grid;
  gap: 8px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  padding: 10px;
  background: #fbfdfd;
}
.clock-day-detail-row header {
  margin: 0;
}
.clock-day-detail-row header strong {
  font-size: 15px;
}
.clock-day-detail-row header span {
  background: #f1f5f6;
  color: #45565c;
}
.clock-day-detail-row dl {
  grid-template-columns: 1fr;
  gap: 7px;
}
.clock-manual-correction {
  display: grid;
  gap: 3px;
  margin-top: 8px;
  padding: 10px;
  border: 1px solid #edc6a4;
  border-radius: 8px;
  background: #fff7e8;
}
.clock-manual-correction span {
  color: #8f4f2b;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-manual-correction strong {
  color: #173f45;
  font-size: 14px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.clock-manual-correction small {
  color: #45565c;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.clock-personal-review-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 12px;
}
.clock-personal-review-layout > .clock-personal-review-panel:last-child {
  grid-column: 1 / -1;
}
.clock-personal-review-list {
  display: grid;
  gap: 10px;
}
.clock-personal-review-card {
  min-width: 0;
  display: grid;
  gap: 6px;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  padding: 12px;
  background: #f8fbfa;
}
.clock-personal-review-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-personal-review-card strong {
  color: #173f45;
  font-size: 16px;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.clock-personal-review-card small,
.clock-personal-review-card p {
  margin: 0;
  color: #45565c;
  font-weight: 800;
  line-height: 1.35;
}
.clock-personal-review-card.type-missing-exit,
.clock-personal-review-card.type-missing-entry,
.clock-personal-review-card.status-pendiente {
  border-color: #ffd37d;
  background: #fff7df;
}
.clock-personal-review-card.type-duplicate {
  border-color: #efb3aa;
  background: #fff1ee;
}
.clock-personal-review-card.type-gps {
  border-color: #b8d6d1;
  background: #f2faf8;
}
.clock-personal-review-card.type-overtime {
  border-color: #d9c3ac;
  background: #fbf5ee;
}
.clock-personal-review-card.type-message {
  border-color: #cde1f7;
  background: #f3f8ff;
}
.clock-day-card,
.clock-incident-card,
.clock-download-card,
.clock-close-summary article,
.clock-close-confirmed,
.clock-close-notes article {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.clock-incident-panel {
  overflow: hidden;
}
.clock-incident-list {
  display: grid;
  gap: 10px;
}
.clock-incident-card {
  display: grid;
  gap: 6px;
  border: 1px solid #ffd37d;
  border-left: 5px solid #d68b00;
  border-radius: 8px;
  padding: 12px;
  background: #fffaf0;
  color: #4b3500;
}
.clock-incident-card span {
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-incident-card strong {
  font-size: 15px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.clock-incident-card small {
  color: #6f5a24;
  font-weight: 800;
  line-height: 1.3;
}
.clock-incident-card.type-missing-exit,
.clock-incident-card.type-missing-entry {
  border-color: #ffd37d;
  border-left-color: #d68b00;
  background: #fff7df;
}
.clock-incident-card.type-duplicate {
  border-color: #d7c5d7;
  border-left-color: #8a5b8a;
  background: #faf4fa;
  color: #49364d;
}
.clock-incident-card.type-gps {
  border-color: #b8d6d1;
  border-left-color: #176b73;
  background: #f2faf8;
  color: #173f45;
}
.clock-incident-card.type-overtime {
  border-color: #edc6a4;
  border-left-color: #8f4f2b;
  background: #fff7e8;
  color: #4b2b17;
}
.clock-incident-card.type-review {
  border-color: #c3ccd0;
  border-left-color: #45565c;
  background: #f1f5f6;
  color: #273c3f;
}
.clock-download-panel {
  overflow: hidden;
}
.clock-download-month-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
  margin-bottom: 14px;
}
.clock-download-month-form label {
  min-width: 0;
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-weight: 900;
}
.clock-download-actions {
  display: grid;
  gap: 10px;
}
.clock-download-card {
  display: grid;
  gap: 4px;
  min-width: 0;
  border: 1px solid #bfd6d2;
  border-radius: 8px;
  padding: 14px;
  background: #f4faf8;
  color: #173f45;
  text-decoration: none;
}
.clock-download-card span {
  color: #176b73;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-download-card strong {
  font-size: 18px;
  line-height: 1.2;
}
.clock-download-card small {
  color: #45565c;
  font-weight: 800;
}
.clock-download-footer {
  margin-top: 12px;
}
.clock-close-panel {
  overflow: hidden;
}
.clock-close-hero {
  display: grid;
  gap: 5px;
  margin-bottom: 14px;
  border: 1px solid #d7e4e2;
  border-left: 6px solid var(--brand);
  border-radius: 8px;
  padding: 16px;
  background: #f7fbfa;
}
.clock-close-hero span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-close-hero strong {
  color: #173f45;
  font-size: 24px;
  line-height: 1.1;
}
.clock-close-hero small {
  color: #45565c;
  font-weight: 900;
  line-height: 1.35;
}
.clock-close-summary {
  display: grid;
  gap: 10px;
  margin-bottom: 14px;
}
.clock-close-summary article,
.clock-close-checklist article,
.clock-close-confirmed,
.clock-close-notes article {
  display: grid;
  gap: 4px;
  min-width: 0;
  border: 1px solid #d7e4e2;
  border-radius: 8px;
  padding: 12px;
  background: #ffffff;
}
.clock-close-summary span,
.clock-close-checklist span,
.clock-close-confirmed span,
.clock-close-notes span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-close-summary strong,
.clock-close-checklist strong,
.clock-close-confirmed strong,
.clock-close-notes strong {
  color: #173f45;
  font-size: 16px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.clock-close-summary small,
.clock-close-checklist small,
.clock-close-confirmed small {
  color: #45565c;
  font-weight: 800;
}
.clock-close-checklist {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.clock-close-checklist article {
  background: #fbfdfd;
}
.clock-close-explain {
  display: grid;
  gap: 5px;
  margin-bottom: 12px;
  border: 1px solid #bfd6d2;
  border-radius: 8px;
  padding: 12px;
  background: #f4faf8;
  color: #173f45;
}
.clock-close-explain span {
  color: #176b73;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}
.clock-close-explain strong {
  font-size: 16px;
  line-height: 1.25;
}
.clock-close-explain small {
  color: #45565c;
  font-weight: 800;
  line-height: 1.35;
}
.clock-close-form {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.clock-close-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-weight: 900;
}
.clock-close-form button {
  min-height: 54px;
}
.clock-close-confirmed {
  border-color: #bfd6d2;
  background: #f4faf8;
}
.clock-close-notes {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.page-mis-datos {
  max-width: 100%;
  overflow-x: clip;
}
.page-mis-datos > * {
  max-width: 100%;
}
.profile-tabs,
.profile-tabs .student-tab-content,
.profile-autosave-form {
  min-width: 0;
  max-width: 100%;
}
.profile-tabs .panel-head {
  flex-wrap: wrap;
}
.profile-tabs .panel-head span,
.profile-autosave-form input,
.readonly-field strong {
  min-width: 0;
  overflow-wrap: anywhere;
}
.profile-tab-nav {
  width: 100%;
  overflow-x: hidden;
}
.profile-tab-nav label {
  flex: 1 1 0;
  min-width: 0;
}
.employee-personal-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 20px;
  margin-bottom: 12px;
}
.employee-personal-heading nav { display: flex; flex-wrap: wrap; gap: 16px; }
.employee-personal-shell .profile-tab-nav label { padding: 9px 12px; font-size: 14px; }
.teacher-professional-header {
  display: flex;
  align-items: center;
  gap: 16px;
}
.teacher-professional-avatar {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--brand);
  color: #fff;
  font-size: 28px;
  font-weight: 850;
}
.teacher-professional-header span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 750;
  text-transform: uppercase;
}
.teacher-professional-header h2,
.teacher-professional-header p {
  margin: 4px 0 0;
}
.readonly-field {
  display: grid;
  gap: 7px;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--soft);
}
.readonly-field span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.readonly-field strong {
  color: var(--ink);
  font-size: 15px;
}
.seniority-panel {
  margin-top: 12px;
  border-left: 6px solid var(--brand);
  background: #f7fbfa;
}
.seniority-value {
  display: grid;
  gap: 5px;
}
.seniority-value strong {
  color: var(--ink);
  font-size: 24px;
  line-height: 1.15;
}
.seniority-value small {
  color: var(--muted);
  font-weight: 800;
}
.autosave-status {
  grid-column: 1 / -1;
  min-height: 18px;
  margin: -2px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.autosave-status[data-state="saved"] {
  color: var(--brand);
}
.autosave-status[data-state="error"] {
  color: var(--danger);
}
.section-details {
  padding: 0;
  overflow: hidden;
}
.section-details summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 16px 18px;
}
.section-details summary::-webkit-details-marker { display: none; }
.section-details summary span {
  font-size: 18px;
  font-weight: 900;
}
.section-details summary small {
  color: var(--muted);
  font-weight: 800;
}
.section-details summary::after {
  content: "+";
  color: var(--brand);
  font-weight: 900;
}
.section-details[open] summary::after { content: "-"; }
.section-details-body {
  border-top: 1px solid var(--line);
  padding: 0;
}
.school-location-editor > .section-details-body {
  padding: 18px;
  min-width: 0;
  overflow: hidden;
}
.school-location-editor .form-grid {
  width: 100%;
  min-width: 0;
  margin: 0;
}
.school-location-editor .form-grid > * {
  min-width: 0;
}
.employee-payroll-upload-panel > .section-details-body,
.employee-payroll-payment-upload-panel > .section-details-body {
  padding: 18px;
}
.employee-reported-absence-panel > .section-details-body,
.employee-termination-start > .section-details-body {
  padding: 18px;
  min-width: 0;
}
.employee-reported-absence-panel .form-grid,
.employee-termination-start .form-grid {
  min-width: 0;
  margin: 0;
}
.employee-payroll-proof-fields {
  margin: 4px 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
}
.employee-payroll-proof-fields legend {
  padding: 0 6px;
  font-weight: 800;
}
.employee-payroll-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}
.employee-payroll-actions .table-action,
.employee-payroll-actions .text-link {
  white-space: nowrap;
}
.section-details-body > .panel {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  margin-bottom: 0;
  padding: 14px;
}
.section-details-body > .table-panel {
  padding-left: 0;
  padding-right: 0;
}
.section-details-body > .table-panel .panel-head,
.section-details-body > .table-panel .panel-footer {
  padding-left: 14px;
  padding-right: 14px;
}
.table-panel {
  overflow: hidden;
}
.group-student-sort {
  display: flex;
  align-items: end;
  gap: 10px;
  flex-wrap: wrap;
  margin: 10px 0 6px;
}
.group-student-sort label {
  display: grid;
  gap: 4px;
  min-width: min(230px, 100%);
}
.group-student-actions {
  align-items: center;
  flex-wrap: wrap;
}
.group-student-actions .inline-form { min-width: 0; width: auto; }
.group-student-actions .danger-secondary { background: #b74438; }
.group-student-actions .danger-secondary:hover { background: #94352d; }
.group-student-withdraw { min-width: min(270px, 100%); }
.group-student-withdraw summary { cursor: pointer; color: var(--danger); font-weight: 800; }
.group-student-withdraw form { display: grid; gap: 10px; margin-top: 10px; }
.group-student-withdraw label { display: grid; gap: 5px; }
.group-students-mobile-list { display: none; }
.student-activity-cancel-dialog {
  width: min(460px, calc(100vw - 32px));
  max-width: 100%;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: var(--shadow);
}
.student-activity-cancel-dialog::backdrop { background: rgba(20, 39, 42, .45); }
.student-activity-cancel-dialog form { display: grid; gap: 14px; }
.student-activity-cancel-dialog h2,
.student-activity-cancel-dialog p { margin: 0; }
.group-students-table th:first-child,
.group-students-table td:first-child { width: 118px; white-space: nowrap; }
@media (max-width: 600px) {
  .teacher-cash-page .panel-head { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
  .teacher-cash-page .panel-head h2,
  .teacher-cash-page .panel-head span { width: 100%; max-width: 100%; overflow-wrap: anywhere; }
  .teacher-mobile-table .table-wrap { overflow: visible; }
  .teacher-mobile-table table,
  .teacher-mobile-table tbody { display: block; width: 100%; min-width: 0; }
  .teacher-mobile-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .teacher-mobile-table tr { display: block; padding: 12px 0; border-bottom: 1px solid #dce3e0; }
  .teacher-mobile-table td { display: block; width: auto; max-width: 100%; padding: 6px 12px; white-space: normal; overflow-wrap: anywhere; border: 0; }
  .teacher-mobile-table td::before { content: attr(data-label); display: block; font-size: 12px; font-weight: 600; color: #52635d; margin-bottom: 3px; }
  .teacher-mobile-table td[data-label="Accion"]::before { display: none; }
  .teacher-mobile-table form.inline-form { min-width: 0 !important; max-width: none !important; width: 100%; }
  .teacher-mobile-table select,
  .teacher-mobile-table input { max-width: 100%; }
  .group-student-sort { display: grid; grid-template-columns: 1fr; }
  .group-student-sort label { min-width: 0; }
  .group-student-actions { justify-content: flex-start; }
  .group-students-table .group-students-desktop { display: none; }
  .group-students-mobile-list { display: grid; gap: 8px; }
  .group-student-mobile-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; }
  .group-student-mobile-card summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; cursor: pointer; padding: 13px 14px; font-weight: 800; }
  .group-student-mobile-card summary small { color: var(--muted); font-weight: 700; white-space: nowrap; }
  .group-student-mobile-body { display: grid; gap: 12px; padding: 0 14px 14px; }
  .group-student-mobile-field { display: grid; gap: 4px; min-width: 0; }
  .group-student-mobile-field > strong { color: var(--muted); font-size: 12px; }
  .group-student-mobile-field > div { min-width: 0; overflow-wrap: anywhere; }
  .group-student-mobile-body .group-student-actions { display: grid; }
  .group-student-withdraw { min-width: 0; width: 100%; }
}
.table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}
.group-list-panel .table-wrap {
  max-height: 470px;
  overflow-y: auto;
}
.group-list-panel th {
  position: sticky;
  top: 0;
  z-index: 1;
}
table { width: 100%; border-collapse: collapse; min-width: 680px; }
.student-list-panel .table-wrap {
  overflow-x: hidden;
}
.student-list-panel table {
  min-width: 0;
  table-layout: fixed;
}
.teacher-attendance-panel .table-wrap {
  overflow-x: hidden;
}
.teacher-attendance-panel table {
  min-width: 0;
  table-layout: fixed;
}
.training-list-panel .table-wrap {
  overflow-x: hidden;
}
.training-history-panel .table-wrap {
  overflow-x: hidden;
}
.parent-class-panel .table-wrap {
  overflow-x: hidden;
}
.training-list-panel table,
.training-history-panel table,
.parent-class-panel table {
  min-width: 0;
  table-layout: fixed;
}
.student-sepa-documents .table-wrap {
  overflow-x: hidden;
}
.student-sepa-documents table {
  min-width: 0;
  table-layout: fixed;
}
.student-sepa-documents th,
.student-sepa-documents td {
  overflow-wrap: anywhere;
  vertical-align: middle;
}
.student-sepa-documents th:nth-child(1) { width: 15%; }
.student-sepa-documents th:nth-child(2) { width: 28%; }
.student-sepa-documents th:nth-child(3) { width: 105px; }
.student-sepa-documents th:nth-child(4) { width: 15%; }
.student-sepa-documents th:nth-child(5) { width: 20%; }
.student-sepa-documents th:nth-child(6) { width: 14%; }
.student-sepa-documents .table-action {
  white-space: nowrap;
}
.sepa-payment-type-selector {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.sepa-payment-type-selector legend { margin-bottom: 6px; }
.sepa-payment-type-selector label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
}
.sepa-payment-type-selector input { width: auto; min-height: 0; margin: 0; }
.sepa-payment-type-selector small { grid-column: 1 / -1; }
@media (max-width: 640px) {
  .sepa-payment-type-selector { grid-template-columns: 1fr; }
  .sepa-payment-type-selector small { grid-column: auto; }
}
.student-list-panel th:first-child,
.student-list-panel td:first-child {
  width: auto;
}
.training-list-panel th,
.training-list-panel td,
.training-history-panel th,
.training-history-panel td,
.parent-class-panel th,
.parent-class-panel td {
  white-space: normal;
  overflow-wrap: anywhere;
}
.training-list-panel th:first-child,
.training-list-panel td:first-child {
  width: auto;
}
.training-list-panel th:nth-child(2),
.training-list-panel td:nth-child(2) {
  width: 96px;
}
.training-list-panel th:nth-child(3),
.training-list-panel td:nth-child(3) {
  width: 78px;
}
.training-list-panel th:last-child,
.training-list-panel td:last-child {
  width: 66px;
  text-align: right;
}
.training-history-panel th:first-child,
.training-history-panel td:first-child {
  width: 35%;
}
.training-history-panel th:nth-child(2),
.training-history-panel td:nth-child(2) {
  width: 112px;
}
.parent-class-panel th:first-child,
.parent-class-panel td:first-child {
  width: 24%;
}
.parent-class-panel th:nth-child(3),
.parent-class-panel td:nth-child(3) {
  width: 62px;
}
.parent-class-panel th:nth-child(4),
.parent-class-panel td:nth-child(4) {
  width: 72px;
}
.teacher-attendance-panel th:first-child,
.teacher-attendance-panel td:first-child {
  width: 82px;
}
.student-list-panel th:last-child,
.student-list-panel td:last-child {
  width: 92px;
  text-align: right;
}
.teacher-attendance-panel th:last-child,
.teacher-attendance-panel td:last-child {
  width: 108px;
  text-align: right;
}
.student-list-panel .table-action {
  width: 74px;
  padding: 0 8px;
}
.student-directory-table th:last-child,
.student-directory-table td:last-child {
  width: 24%;
  text-align: left;
}
.student-directory-table .student-sort-button,
.sortable-table-panel .student-sort-button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  text-align: left;
  cursor: pointer;
}
.student-directory-table .student-sort-button:hover,
.student-directory-table .student-sort-button:focus-visible,
.sortable-table-panel .student-sort-button:hover,
.sortable-table-panel .student-sort-button:focus-visible {
  background: transparent;
  color: var(--brand-dark);
}
.student-directory-table .student-sort-button:focus-visible,
.sortable-table-panel .student-sort-button:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 3px;
}
.student-directory-table .student-sort-arrow,
.sortable-table-panel .student-sort-arrow {
  flex: none;
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  opacity: .48;
}
.student-directory-table th[aria-sort="ascending"] .student-sort-arrow,
.student-directory-table th[aria-sort="descending"] .student-sort-arrow,
.sortable-table-panel th[aria-sort="ascending"] .student-sort-arrow,
.sortable-table-panel th[aria-sort="descending"] .student-sort-arrow {
  opacity: .7;
}
.student-directory-table .text-link,
.student-directory-footer .text-link {
  display: inline;
}
.text-link {
  color: var(--accent);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.text-link:hover,
.text-link:focus {
  color: var(--brand-dark);
}
.economic-context-links {
  margin-top: 8px;
  font-size: 13px;
  overflow-wrap: anywhere;
}
.metrics.group-detail-metrics {
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}
.group-detail-metrics .metric { padding: 12px; }
.group-detail-metrics .metric strong { font-size: 18px; }
.inline-form.group-payment-inline-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(140px, 1fr));
  gap: 8px;
  min-width: 290px;
  max-width: 420px;
}
.group-payment-inline-form select { min-width: 0; width: 100%; }
.payment-sepa-inline, .group-payment-confirm { grid-column: 1 / -1; }
.payment-sepa-inline { display: grid; gap: 8px; }
.payment-sepa-inline[hidden] { display: none; }
.payment-sepa-inline label { min-width: 0; }
.payment-sepa-inline .economic-context-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.payment-sepa-inline small:empty { display: none; }
.student-quick-search-panel {
  max-width: 780px;
}
.student-quick-search {
  display: grid;
  gap: 10px;
}
.student-quick-search label {
  color: var(--text);
  font-weight: 700;
}
.student-quick-search input {
  margin-top: 6px;
  width: 100%;
}
.student-quick-results {
  max-height: 360px;
  overflow-y: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.student-quick-result {
  display: block;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  color: var(--text);
  text-decoration: none;
}
.student-quick-result:last-child {
  border-bottom: 0;
}
.student-quick-result strong,
.student-quick-result span {
  display: block;
}
.student-quick-result span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.9rem;
}
.student-quick-result:hover,
.student-quick-result:focus {
  background: var(--soft);
}
.student-directory-footer {
  margin-top: 12px;
}
.activity-select-card-list {
  display: grid;
  gap: 10px;
}
.activity-select-filter {
  margin-bottom: 14px;
}
.activity-select-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
}
.activity-select-card span {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 4px;
  border-radius: 999px;
  background: #edf8f6;
  color: var(--brand);
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 900;
}
.activity-select-card strong {
  display: block;
  color: var(--ink);
  font-size: 16px;
}
.activity-select-card small {
  display: block;
  color: var(--muted);
  overflow-wrap: anywhere;
}
.activity-select-card em {
  color: var(--brand-dark);
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}
.activity-select-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.activity-select-actions .inline-form {
  margin: 0;
}
.friend-referral-fields {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  padding: 10px;
  border: 1px dashed #9bc8bd;
  border-radius: 8px;
  background: #f6fbfa;
}
.friend-referral-fields label {
  margin: 0;
}
.activity-select-actions button,
.activity-select-actions .table-action {
  min-height: 36px;
  padding: 0 12px;
}
.admin-calendar-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.central-calendar-period-picker {
  display: flex;
  align-items: center;
  gap: 6px;
}
.central-calendar-period-picker label {
  margin: 0;
}
.central-calendar-period-picker select {
  min-height: 36px;
  width: auto;
  padding: 4px 30px 4px 8px;
  border-color: transparent;
  background-color: transparent;
  color: var(--ink);
  font-size: 20px;
  font-weight: 800;
}
.central-calendar-period-picker select:focus-visible {
  border-color: var(--brand);
  background-color: #ffffff;
}
.admin-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
}
.admin-calendar-weekdays {
  margin-bottom: 4px;
}
.admin-calendar-weekdays div {
  padding: 7px 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-align: center;
}
.admin-calendar-day {
  min-height: 54px;
  display: grid;
  gap: 3px;
  align-content: center;
  justify-items: center;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  text-decoration: none;
}
.admin-calendar-day strong {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  font-size: 14px;
}
.admin-calendar-day small {
  min-height: 16px;
  color: var(--brand);
  font-size: 12px;
  font-weight: 900;
}
.admin-calendar-day.is-outside {
  opacity: .38;
}
.admin-calendar-day.is-today strong {
  background: #f3b05c;
  color: var(--brand-dark);
}
.admin-calendar-day.is-selected {
  border-color: var(--brand);
  background: #edf8f6;
}
.admin-calendar-day.is-day-off {
  border-color: #b46a1f;
  background: #fff7e8;
}
.admin-calendar-day.has-context {
  box-shadow: inset 0 -4px 0 #f3b05c;
}
.central-calendar-day {
  min-height: 66px;
  padding: 4px;
}
.central-calendar-day small {
  max-width: 100%;
  display: block;
  overflow-wrap: anywhere;
  text-align: center;
  line-height: 1.2;
}
.central-calendar-events {
  display: grid;
  gap: 10px;
}
.central-calendar-event {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--brand);
  border-radius: 8px;
  background: #fff;
}
.central-calendar-event.event-class { border-left-color: #2f6d4e; }
.central-calendar-event.event-employee { border-left-color: #b46a1f; }
.central-calendar-event.event-case { border-left-color: #315155; }
.central-calendar-event.event-context { border-left-color: #b46a1f; background: #fffaf0; }
.calendar-day-off-context,
.calendar-affected-classes {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}
.calendar-day-off-disclosure {
  margin-top: 18px;
  margin-bottom: 18px;
}
.calendar-day-off-context h3,
.calendar-affected-classes h3 {
  margin: 0;
  color: var(--ink);
  font-size: 13px;
  letter-spacing: 0;
}
.central-calendar-event span,
.central-calendar-event em,
.central-calendar-event small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  overflow-wrap: anywhere;
}
.central-calendar-event strong {
  display: block;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.employee-activity-hero .form-grid {
  margin-top: 10px;
}
.employee-activity-hero .employee-activity-personal-selector {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
}
.employee-activity-personal-selector > label { flex: 0 1 220px; }
.employee-activity-personal-selector .form-actions { margin: 0; padding: 0; }
.table-actions.employee-activity-periods {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
  justify-content: flex-start;
}
.employee-activity-periods .table-action {
  flex: 0 0 auto;
  width: auto;
}
.employee-activity-periods .table-action.active {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}
.employee-activity-technical {
  margin-top: 14px;
}
.employee-activity-comparison {
  margin-top: 14px;
}
.employee-activity-comparison > summary {
  cursor: pointer;
  color: var(--ink);
  font-weight: 800;
}
.employee-activity-comparison[open] > summary {
  margin-bottom: 12px;
}
.employee-activity-technical > summary {
  cursor: pointer;
  color: var(--ink);
  font-weight: 800;
}
.employee-activity-technical[open] > summary {
  margin-bottom: 12px;
}
.employee-activity-technical h3 {
  margin: 18px 0 8px;
  font-size: 16px;
}
.employee-activity-period-summary td:first-child {
  white-space: nowrap;
}
.employee-activity-list,
.employee-activity-notes {
  display: grid;
  gap: 10px;
}
.employee-activity-event {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--brand);
  border-radius: 6px;
  background: #fff;
}
.employee-activity-event.event-clase { border-left-color: #2f6d4e; }
.employee-activity-event.event-fichaje { border-left-color: #315155; }
.employee-activity-event.event-incidencia { border-left-color: #b83232; }
.employee-activity-event.event-vacaciones { border-left-color: #b46a1f; }
.employee-activity-event.event-nota { border-left-color: #5b5f66; }
.employee-activity-event.event-acceso { border-left-color: #287a8c; }
.employee-activity-event.event-asistencia { border-left-color: #4d7f35; }
.employee-activity-event.event-gestion { border-left-color: #7652a8; }
.employee-activity-event.event-perfil { border-left-color: #7a6850; }
.employee-activity-event span,
.employee-activity-event small,
.employee-activity-note span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.employee-activity-event strong,
.employee-activity-note strong {
  display: block;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.employee-activity-event small {
  display: block;
  margin-top: 3px;
  overflow-wrap: anywhere;
}
.employee-activity-note {
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--soft);
}
.employee-activity-note p {
  margin: 0;
  overflow-wrap: anywhere;
}
.employee-activity-note-form {
  margin-top: 12px;
}
.teacher-attendance-panel .table-action {
  width: 92px;
  padding: 0 8px;
}
.training-list-panel .table-action {
  width: 52px;
  padding: 0 6px;
}
th, td {
  text-align: left;
  border-bottom: 1px solid var(--line);
  padding: 11px 10px;
  vertical-align: top;
}
th {
  color: #315155;
  font-size: 13px;
  background: var(--soft);
}
td { color: #273c3f; }
.empty { text-align: center; color: var(--muted); padding: 24px; }
.table-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 6px;
  background: var(--brand);
  color: white;
  font-weight: 800;
  text-decoration: none;
}
.table-action:hover { background: var(--brand-dark); }
.compact-payment-status {
  display: grid;
  gap: 5px;
  min-width: 160px;
}
.compact-payment-status strong {
  font-size: 13px;
  line-height: 1.25;
}
.compact-payment-status small {
  color: var(--muted);
  font-weight: 700;
}
.compact-payment-status .table-action {
  width: fit-content;
  min-height: 30px;
  padding: 0 9px;
  font-size: 12px;
}
.compact-data-status {
  display: grid;
  gap: 4px;
  min-width: 150px;
}
.compact-data-status strong {
  font-size: 13px;
  line-height: 1.25;
}
.compact-data-status.warning strong { color: #8a4b00; }
.compact-data-status ul {
  margin: 0;
  padding-left: 16px;
  color: var(--muted);
  font-size: 12px;
}
.group-setup-status {
  display: grid;
  gap: 4px;
  min-width: 180px;
}
.group-setup-status strong {
  font-size: 13px;
  line-height: 1.25;
}
.group-setup-status.ready strong {
  color: #1f6f43;
}
.group-setup-status.pending strong {
  color: #8a4b00;
}
.group-setup-status ul {
  margin: 0;
  padding-left: 16px;
  color: var(--muted);
  font-size: 12px;
}
.group-setup-status a {
  color: inherit;
  font-weight: 700;
}
.group-setup-status small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.panel-footer {
  display: flex;
  justify-content: flex-end;
  padding-top: 12px;
}
.table-actions {
  display: grid;
  gap: 8px;
  min-width: 240px;
}
.table-actions form {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.table-actions input,
.table-actions select {
  min-height: 34px;
  padding: 6px 8px;
}
.table-actions input[name="amount"] { width: 84px; }
.table-actions input[name="payment_date"] { width: 138px; }
.table-actions button { min-height: 34px; padding: 0 10px; }
.student-payment-panel .table-actions {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
}
.student-payment-panel .table-actions button {
  max-width: 100%;
  padding: 7px 10px;
  white-space: normal;
}
.student-payment-activity-settings { display: grid; gap: 12px; margin-top: 18px; }
.student-payment-activity-setting { border-top: 1px solid var(--line); padding-top: 14px; }
.student-payment-activity-heading { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.student-payment-activity-heading h3 { margin: 0; font-size: 1rem; }
.student-payment-activity-heading p { margin: 4px 0 0; color: var(--muted); }
.student-payment-activity-heading > span { color: var(--muted); font-size: .88rem; text-align: right; }
.student-payment-activity-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; gap: 10px; align-items: end; margin-top: 12px; }
.student-payment-activity-form label { display: grid; gap: 5px; font-weight: 700; }
.student-payment-activity-form select { width: 100%; min-height: 40px; }
.student-payment-activity-form button { min-height: 40px; white-space: nowrap; }
@media (max-width: 600px) {
  .student-payment-activity-heading { display: grid; gap: 6px; }
  .student-payment-activity-heading > span { text-align: left; overflow-wrap: anywhere; }
  .student-payment-activity-form { grid-template-columns: 1fr; }
  .student-payment-activity-form button { width: 100%; }
}
.review-form {
  display: grid;
  gap: 6px;
  min-width: 260px;
}
.review-form select,
.review-form input {
  min-height: 34px;
  padding: 6px 8px;
}
.review-form button { min-height: 34px; }
.clean { margin: 0; padding-left: 18px; color: var(--muted); line-height: 1.6; }
code { background: #eef3f2; padding: 2px 5px; border-radius: 4px; }
.details { display: grid; gap: 10px; margin: 0; }
.details div { display: grid; grid-template-columns: 110px 1fr; gap: 12px; }
.details dt { color: var(--muted); font-weight: 800; }
.details dd { margin: 0; }
.admin-class-shell .admin-class-tabs { grid-template-columns:repeat(4,minmax(0,1fr)); margin:8px 0 16px; }
.admin-class-shell .panel-head p { margin:6px 0 0; }
.admin-class-shell .class-substitution-panel > .details { grid-template-columns:repeat(3,minmax(0,1fr)); margin-bottom:16px; }
.admin-class-shell .class-substitution-panel > .details div { grid-template-columns:1fr; gap:4px; }
.admin-class-shell .class-inline-notice { padding:12px 0; border-top:1px solid var(--line); }
.admin-class-shell .class-inline-notice .details { grid-template-columns:repeat(2,minmax(0,1fr)); margin:8px 0; }
.admin-class-shell .class-inline-notice .details div { grid-template-columns:110px minmax(0,1fr); }
.admin-class-shell .section-details { margin:12px 0; }
.admin-class-shell .class-substitution-panel .section-details { box-shadow:none; border:0; padding:0; }
.admin-class-shell .class-substitution-panel .form-grid { margin-top:12px; }
.admin-class-shell .class-substitution-panel .details dd { overflow-wrap:anywhere; }
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.form-grid .wide { grid-column: 1 / -1; }
.employee-password-reveal {
  display: grid;
  gap: 10px;
  font-weight: 700;
}
.employee-password-reveal code {
  display: block;
  max-width: 100%;
  padding: 10px 12px;
  overflow-wrap: anywhere;
  font-size: 16px;
}
.employee-password-reveal .table-action { justify-self: start; }
.employee-password-toggle {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  justify-content: start;
}
.employee-password-toggle input[type="checkbox"] {
  width: 20px;
  height: 20px;
  min-height: 20px;
  margin: 0;
  padding: 0;
}
.employee-role-selector {
  min-width: 0;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.employee-role-selector legend {
  padding: 0 5px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.employee-role-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 8px;
}
.employee-role-option {
  display: flex;
  min-width: 0;
  min-height: 44px;
  align-items: center;
  gap: 9px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  font-weight: 800;
  cursor: pointer;
}
.employee-role-option:has(input:checked) {
  border-color: var(--brand);
  background: #eef7f4;
}
.employee-role-option input[type="checkbox"] {
  width: 20px;
  height: 20px;
  min-height: 20px;
  flex: 0 0 20px;
  margin: 0;
  padding: 0;
}
.employee-role-help { margin: 8px 0 0; }
.employee-role-history { margin: 10px 0 0; }
.field-with-inline-link {
  display: grid;
  gap: 6px;
}
.field-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-weight: 800;
  font-size: 13px;
}
.field-label-row a {
  color: var(--brand);
  font-weight: 800;
  text-decoration: none;
}
.field-label-row a:hover { text-decoration: underline; }
.extraescolar-modality-list {
  display: grid;
  gap: 8px;
}
.extraescolar-modality-row {
  display: grid;
  grid-template-columns: auto minmax(140px, 1fr) 120px minmax(220px, 2fr);
  gap: 10px;
  align-items: center;
  min-height: 0;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
}
.extraescolar-modality-row input[type="checkbox"] {
  width: 16px;
  height: 16px;
}
.extraescolar-modality-row input[inputmode="decimal"] {
  min-height: 34px;
  padding: 6px 8px;
}
.extraescolar-modality-row small {
  color: var(--muted);
  font-weight: 700;
}
.extraescolar-payment-simulation {
  display: grid;
  gap: 14px;
}
.extraescolar-requirement-list {
  display: grid;
  gap: 8px;
}
.extraescolar-requirement-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: center;
  padding: 7px 9px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
}
.extraescolar-requirement-row input {
  width: 16px;
  height: 16px;
}
.extraescolar-compact-details {
  margin-top: 10px;
}
.extraescolar-compact-details summary {
  color: var(--brand);
  cursor: pointer;
  font-weight: 800;
}
.extraescolar-compact-details .extraescolar-requirement-list {
  margin-top: 8px;
}
.extraescolar-simulation-block h3 {
  margin: 0 0 8px;
}
.extraescolar-preview-intro,
.extraescolar-preview-create {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
}
.extraescolar-preview-intro h2,
.extraescolar-preview-create h2 {
  margin: 0 0 4px;
}
.extraescolar-preview-intro p,
.extraescolar-preview-create p {
  margin: 0;
  color: var(--muted);
}
.extraescolar-preview-intro strong {
  text-align: right;
  font-size: 18px;
}
.extraescolar-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.extraescolar-preview-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}
.extraescolar-preview-details div {
  min-width: 0;
}
.extraescolar-preview-details dt {
  margin-bottom: 3px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}
.extraescolar-preview-details dd {
  margin: 0;
  font-weight: 800;
  overflow-wrap: anywhere;
}
.extraescolar-preview-list {
  margin: 0;
  padding-left: 18px;
}
.extraescolar-preview-list li {
  margin: 5px 0;
}
.extraescolar-preview-main {
  margin: 0 0 10px;
  font-weight: 800;
}
.extraescolar-preview-alerts {
  border-color: #e7b85b;
  background: #fff9ec;
}
.birth-date-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.birth-title {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  color: var(--muted);
  font-weight: 800;
  font-size: 13px;
}
.birth-title strong {
  color: var(--ink);
  font-size: 14px;
}
.number-stepper {
  display: grid;
  gap: 6px;
}
.number-stepper > span {
  color: var(--muted);
  font-weight: 800;
  font-size: 13px;
}
.number-stepper > div {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 38px;
  gap: 5px;
  align-items: stretch;
}
.number-stepper button {
  min-height: 42px;
  padding: 0;
  border-radius: 6px;
  background: #e8f3f1;
  color: #1f555b;
  font-size: 20px;
  line-height: 1;
}
.number-stepper button:hover {
  background: #d6ebe7;
}
.number-stepper input {
  text-align: center;
  font-weight: 800;
  min-width: 0;
}
.birth-summary {
  grid-column: 1 / -1;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
  color: var(--muted);
  padding: 10px 12px;
  font-weight: 800;
  display: grid;
  gap: 4px;
}
.birth-summary strong {
  color: var(--ink);
}
.birth-summary small {
  color: var(--muted);
  font-weight: 700;
  line-height: 1.35;
}
.guardian-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  align-content: start;
}
.guardian-options > span {
  grid-column: 1 / -1;
  color: var(--muted);
  font-weight: 800;
  font-size: 13px;
}
.guardian-options label {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  font-weight: 800;
}
.guardian-options label:has(input:checked) {
  border-color: var(--brand);
  background: #e8f3f1;
  color: #1f555b;
}
.guardian-options input {
  width: auto;
  min-height: auto;
}
.checkbox-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
}
.checkbox-row input {
  width: auto;
  min-height: auto;
}
.form-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
}

.activity-image-preview {
  width: min(100%, 520px);
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f4f7f5;
}
.activity-image-preview img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: contain;
}
.activity-image-preview figcaption {
  padding: 8px 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.inline-form { display: inline-flex; margin: 0 10px 0 0; }
.calendar-entry-status-form {
  margin: 0;
}
.calendar-entry-status-form button {
  min-height: 34px;
  padding: 0 10px;
  white-space: nowrap;
}
.calendar-entry-disable {
  background: #c76428;
}
.calendar-entry-disable:hover {
  background: #a94f18;
}
.calendar-entry-enable {
  background: #176b73;
}
.calendar-entry-enable:hover {
  background: #11525a;
}
.danger-zone button { background: var(--danger); }
.danger-zone button:hover { background: #94352d; }
.class-reactivation-panel {
  border-left: 5px solid #c76428;
  background: #fffaf4;
}
.class-discount-warning-panel {
  border-left: 5px solid #8f4f2b;
  background: #fff7e8;
}
.class-pending-resolution-panel {
  border-left: 5px solid #b74438;
  background: #fff6f5;
}
.class-pending-resolution-panel p {
  margin-top: 0;
}
.class-discount-warning-panel p {
  margin-top: 0;
}
.class-reactivation-panel p {
  margin-top: 0;
}
button.danger-secondary, .group-delete-access .danger-secondary {
  background: #c76428;
}
button.danger-secondary:hover, .group-delete-access .danger-secondary:hover {
  background: #a94f18;
}
.attendance-list {
  display: grid;
  gap: 10px;
  margin: 16px 0;
}
.attendance-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 170px minmax(180px, 1fr);
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfdfd;
}
.attendance-row strong,
.attendance-row small { display: block; }
.attendance-row small {
  color: var(--muted);
  margin-top: 4px;
}
@media (max-width: 900px) {
  .app-shell { grid-template-columns: 1fr; }
  .app-shell.role-profesor:has(.teacher-session-attendance-shell),
  .app-shell.role-profesor:has(.teacher-live-shell),
  .app-shell.role-profesor:has(.teacher-incident-shell),
  .app-shell.role-profesor:has(.teacher-message-shell),
  .app-shell.role-profesor:has(.teacher-payroll-shell),
  .app-shell.role-profesor:has(.teacher-requests-shell),
  .app-shell.role-profesor:has(.employee-request-detail-summary),
  .app-shell.role-profesor:has(.teacher-inventory-shell),
  .app-shell.role-profesor:has(.training-course-panel),
  .app-shell.role-profesor:has(.manual-panel) { grid-template-rows: auto 1fr; }
  .group-information-form,
  .group-information-subblock,
  .group-enrollment-period {
    grid-template-columns: 1fr;
  }
  .sidebar {
    position: sticky;
    top: 0;
    height: auto;
    overflow-y: visible;
    z-index: 5;
    padding: 8px 10px;
    box-shadow: 0 8px 22px rgba(18, 45, 49, .18);
  }
  .nav-details {
    position: relative;
  }
  .header-more-details {
    position: static;
  }
  .header-more-menu {
    position: fixed;
    top: 58px;
    left: 10px;
    right: 10px;
    width: auto;
    max-height: min(72vh, 560px);
    overflow-y: auto;
  }
  .header-more-menu-grouped {
    width: auto;
  }
  .nav-details summary {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
  }
  .app-logo-link {
    flex: 0 1 auto;
    order: 2;
  }
  .role-profesor .app-logo-link {
    justify-content: flex-start;
  }
  .brand { padding: 0; }
  .app-logo {
    width: auto;
    max-width: min(156px, 46vw);
    height: 42px;
    padding: 4px 6px;
  }
  .user-menu-trigger { order: 1; }
  .user-avatar { width: 40px; height: 40px; }
  .user-menu-meta { display: none; }
  .brand-mark { width: 34px; height: 34px; }
  .brand strong { font-size: 15px; }
  .brand small { font-size: 12px; }
  .menu-toggle {
    display: inline-flex;
    order: 3;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 44px;
    cursor: pointer;
  }
  .inventory-filter-panel,
  .inventory-filter-panel input,
  .inventory-filter-panel select,
  .inventory-filter-panel .form-actions {
    min-width: 0;
    max-width: 100%;
  }
  .nav-details:not([open]) nav { display: none; }
  .sidebar nav {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    left: auto;
    z-index: 20;
    width: min(280px, calc(100vw - 20px));
    max-height: calc(100vh - 74px);
    overflow-y: auto;
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 0;
    padding: 8px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 8px;
    background: var(--brand-dark);
    box-shadow: 0 14px 30px rgba(0,0,0,.26);
  }
  .sidebar nav a {
    background: rgba(255,255,255,.08);
    min-height: 42px;
    display: flex;
    align-items: center;
  }
  .side-nav-group {
    padding: 8px 0;
  }
  .workspace { padding: 10px 18px 18px; }
  .employee-report-trigger {
    right: 14px;
    bottom: 14px;
  }
  .employee-report-overlay {
    right: 14px;
    bottom: 14px;
    width: min(350px, calc(100vw - 28px));
  }
  .employee-report-dialog {
    width: 100%;
    max-height: calc(100vh - 28px);
    padding: 12px;
  }
  .employee-report-close,
  .employee-report-type,
  .employee-report-recorder-actions button { min-height: 42px; }
  .employee-report-close { width: 42px; height: 42px; flex-basis: 42px; }
  .page-pasar-lista, .workspace:has(.teacher-session-attendance-shell) {
    padding-top: 8px;
  }
  .topbar {
    flex-direction: row;
    align-items: center;
    margin-bottom: 16px;
  }
  .temporary-role-notice {
    align-items: stretch;
    flex-direction: column;
    margin-top: 0;
  }
  .temporary-role-notice .table-action { text-align: center; }
  .page-pasar-lista .topbar, .workspace:has(.teacher-session-attendance-shell) .topbar {
    margin-bottom: 10px;
  }
  .page-inline-actions {
    margin: -56px 0 12px;
    min-height: 38px;
  }
  .page-inline-actions .table-action {
    min-height: 38px;
    padding: 0 12px;
  }
  .topbar h1 { font-size: 22px; }
  .topbar .eyebrow { margin-bottom: 4px; }
  .metrics, .grid.two, .feature-grid { grid-template-columns: 1fr; }
  .course-panel-hero {
    grid-template-columns: 1fr;
    align-items: stretch;
    padding: 14px;
  }
  .course-year-form {
    grid-template-columns: 1fr;
  }
  .course-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .course-area-metrics,
  .course-students-panel .course-area-metrics,
  .course-groups-metrics-panel .course-area-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .course-groups-table {
    display: none;
  }
  .course-group-cards {
    display: grid;
  }
  .course-enrollment-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .category-grid { grid-template-columns: 1fr; gap: 10px; }
  .admin-hero {
    align-items: stretch;
    flex-direction: column;
    padding: 14px;
  }
  .admin-hero h2 { font-size: 23px; }
  .admin-hero-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .admin-hero-actions .table-action {
    min-height: 42px;
    text-align: center;
  }
  .admin-today-grid {
    grid-template-columns: 1fr;
  }
  .admin-today-routine {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .admin-today-routine button {
    width: 100%;
  }
  .work-case-card,
  .work-case-control-grid,
  .work-case-summary-grid {
    grid-template-columns: 1fr;
  }
  .work-case-card .table-action,
  .work-case-control-grid button,
  .work-case-control-grid .table-action {
    width: 100%;
    text-align: center;
  }
  .day-control-hero {
    grid-template-columns: 1fr;
    padding: 14px;
  }
  .day-control-hero strong {
    font-size: 24px;
  }
  .day-control-hero .table-action {
    width: 100%;
    text-align: center;
  }
  .day-control-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .day-control-summary .day-control-metric:last-child {
    grid-column: 1 / -1;
  }
  .day-control-attention,
  .day-control-teachers {
    padding: 12px;
  }
  .day-control-attention-item {
    grid-template-columns: 1fr auto;
    padding: 11px;
  }
  .day-control-teacher-grid {
    grid-template-columns: 1fr;
  }
  .admin-clock-shortcuts {
    grid-template-columns: 1fr;
    align-items: stretch;
    margin: 10px 0 14px;
    padding: 12px;
  }
  .admin-clock-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .admin-clock-actions .table-action {
    min-width: 0;
    justify-content: center;
    text-align: center;
  }
  .admin-search-panel form {
    grid-template-columns: 1fr;
  }
  .admin-main-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .admin-main-actions-primary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .employee-clock-review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .employee-clock-month-kpis,
  .employee-clock-month-grid,
  .employee-clock-balance-kpis {
    grid-template-columns: 1fr;
  }
  .employee-clock-calendar-weekdays,
  .employee-clock-calendar-grid {
    gap: 3px;
  }
  .employee-clock-calendar-day,
  .employee-clock-calendar-spacer {
    min-height: 76px;
  }
  .employee-clock-calendar-day {
    padding: 5px;
  }
  .employee-clock-calendar-day span {
    display: none;
  }
  .employee-clock-calendar-day b {
    font-size: 10px;
  }
  .employee-clock-month-card dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .employee-clock-tabs {
    overflow: hidden;
  }
  .employee-clock-tab-nav {
    gap: 6px;
    padding-bottom: 8px;
  }
  .employee-clock-tab-nav label {
    min-height: 38px;
    padding: 0 11px;
    font-size: 13px;
  }
  .employee-clock-tabs .table-panel {
    overflow: hidden;
  }
  .employee-clock-tabs .table-wrap {
    max-width: 100%;
    overflow-x: auto;
  }
  .employee-clock-tabs .form-grid {
    grid-template-columns: 1fr;
  }
  .employee-clock-tabs .form-actions,
  .employee-clock-incident-review .form-actions {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .employee-clock-tabs .form-actions button,
  .employee-clock-tabs .form-actions .table-action,
  .employee-clock-incident-review .form-actions button {
    width: 100%;
    justify-content: center;
  }
  .clock-employee-day-hero,
  .employee-clock-day-hero {
    grid-template-columns: 1fr;
  }
  .clock-employee-day-hero > div { min-width: 0; }
  .clock-employee-day-hero .table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .clock-month-day.status-sin-fichajes span,
  .clock-month-day.status-sin-fichajes small { display: none; }
  .clock-month-day { min-height: 48px; }
  .clock-month-day a,
  .clock-month-day div { min-height: 46px; overflow-wrap: anywhere; }
  .employee-clock-day-hero .table-actions,
  .employee-clock-day-hero .table-action {
    width: 100%;
  }
  .clock-employee-review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .employee-overtime-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .employee-clock-preclose-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .employee-overtime-card dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .employee-overtime-card-actions .table-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .employee-overtime-card-actions .inline-form {
    grid-template-columns: 1fr;
    margin: 0;
  }
  .employee-overtime-card-actions .inline-form input,
  .employee-overtime-card-actions .inline-form button {
    width: 100%;
  }
  .employee-clock-incident-hero {
    grid-template-columns: 1fr;
  }
  .message-related-clock-panel {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .message-related-clock-panel .table-actions {
    justify-content: stretch;
  }
  .admin-main-action {
    min-height: 104px;
  }
  .admin-focus-grid {
    grid-template-columns: 1fr;
  }
  .admin-search-result-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .student-admin-overview,
  .group-admin-overview {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .student-admin-actions,
  .group-admin-actions {
    min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .admin-payment-card {
    grid-template-columns: 82px minmax(0, 1fr) auto;
  }
  .accounting-action-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .admin-payment-card mark {
    justify-self: start;
  }
  .message-inbox-summary,
  .notice-work-summary {
    grid-template-columns: 1fr;
  }
  .message-role-header {
    grid-template-columns: 1fr;
  }
  .message-role-header h2 {
    font-size: 21px;
  }
  .message-role-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .message-role-action {
    min-height: 44px;
    font-size: 13px;
  }
  .notice-card .inline-form {
    grid-template-columns: 1fr;
  }
  .notice-detail-hero {
    grid-template-columns: 1fr;
    padding: 14px;
  }
  .notice-detail-badges {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-items: stretch;
  }
  .notice-detail-badges strong,
  .notice-detail-badges span {
    width: 100%;
  }
  .notice-detail-grid,
  .notice-resolution-form,
  .notice-resolve-inline {
    grid-template-columns: 1fr;
  }
  .notice-context-block .details div {
    grid-template-columns: 82px minmax(0, 1fr);
  }
  .notice-resolution-form .form-actions,
  .notice-resolution-form button,
  .notice-resolve-inline button {
    width: 100%;
  }
  .admin-secondary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .admin-work-item {
    grid-template-columns: 76px minmax(0, 1fr);
  }
  .admin-work-meta {
    grid-column: 1 / -1;
    grid-template-columns: 1fr auto;
    justify-items: stretch;
    align-items: center;
  }
  .admin-work-meta b {
    justify-content: center;
  }
  .category-card {
    min-height: 108px;
    padding: 14px;
  }
  .category-card strong { font-size: 22px; }
  .category-card p { font-size: 14px; }
  .quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payroll-action-panel {
    grid-template-columns: 1fr;
  }
  .teacher-action-grid,
  .teacher-action-grid-primary {
    grid-template-columns: 1fr;
  }
  .teacher-action-grid-secondary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .family-home-hero {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .family-focus-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .responsible-home-intro strong {
    font-size: 21px;
  }
  .responsible-next-hero,
  .responsible-next-hero.no-class {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 14px;
  }
  .responsible-next-main strong {
    font-size: 22px;
  }
  .responsible-next-details {
    grid-template-columns: 1fr 1fr;
  }
  .responsible-next-action {
    justify-content: stretch;
  }
  .responsible-next-action .table-action {
    width: 100%;
    justify-content: center;
  }
  .responsible-next-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .responsible-secondary-grid,
  .responsible-action-row {
    grid-template-columns: 1fr;
  }
  .responsible-action-row .family-focus-card {
    min-height: 78px;
  }
  .responsible-student-hero {
    grid-template-columns: 1fr;
    padding: 14px;
  }
  .responsible-student-hero strong {
    font-size: 22px;
  }
  .responsible-student-actions {
    grid-template-columns: 1fr;
  }
  .responsible-student-actions .table-action {
    width: 100%;
    justify-content: center;
  }
  .responsible-student-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .responsible-attendance-card {
    grid-template-columns: 76px minmax(0, 1fr);
  }
  .family-payment-hero {
    grid-template-columns: 1fr;
  }
  .family-student-payment-head {
    grid-template-columns: 1fr;
  }
  .family-student-payment-head dl {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .family-payment-money {
    grid-template-columns: 1fr;
  }
  .family-focus-card {
    min-height: 104px;
    padding: 14px;
  }
  .family-focus-copy strong {
    font-size: 18px;
  }
  .family-main-action {
    min-height: 112px;
    padding: 16px;
  }
  .family-week-panel {
    padding: 14px;
  }
  .parent-next-card {
    grid-template-columns: 1fr auto;
  }
  .parent-next-date {
    grid-column: 1 / -1;
  }
  .family-day-class-card {
    grid-template-columns: 1fr;
  }
  .family-day-class-action .table-action {
    width: 100%;
  }
  .student-next-hero,
  .student-self-hero {
    align-items: stretch;
    flex-direction: column;
    padding: 14px;
  }
  .student-self-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .student-self-actions .table-action {
    min-height: 42px;
    text-align: center;
  }
  .teacher-home-hero {
    grid-template-columns: 1fr;
  }
  .teacher-home-hero-link {
    width: 100%;
  }
  .teacher-now-header,
  .teacher-now-card,
  .teacher-now-grid {
    grid-template-columns: 1fr;
  }
  .teacher-now-primary,
  .teacher-now-action .teacher-live-finish,
  .teacher-now-header .table-action {
    width: 100%;
  }
  .teacher-next-class-panel {
    grid-template-columns: 1fr;
  }
  .teacher-next-class-panel .table-action {
    width: 100%;
  }
  .teacher-attendance-day-hero {
    grid-template-columns: 1fr;
  }
  .teacher-attendance-day-hero .table-action {
    width: 100%;
  }
  .teacher-date-form {
    grid-template-columns: 1fr;
  }
  .admin-clock-actions {
    grid-template-columns: 1fr;
  }
  .teacher-home-hero .table-action {
    width: 100%;
  }
  .family-week-strip {
    gap: 5px;
  }
  .family-week-day {
    min-height: 64px;
    padding: 6px 2px;
  }
  .family-week-day strong {
    width: 24px;
    height: 24px;
    font-size: 13px;
  }
  .family-week-day span {
    font-size: 10px;
  }
  .teacher-action-card {
    min-height: 92px;
    padding: 14px;
  }
  .teacher-action-grid-primary .teacher-action-card {
    min-height: 112px;
  }
  .teacher-today-card {
    grid-template-columns: 1fr auto;
  }
  .teacher-class-select-card {
    grid-template-columns: 1fr auto;
  }
  .teacher-simultaneous-list {
    grid-template-columns: 1fr;
  }
  .teacher-simultaneous-card,
  .teacher-simultaneous-switch-card {
    grid-template-columns: 1fr;
  }
  .teacher-simultaneous-card .table-action,
  .teacher-simultaneous-switch-card .table-action {
    width: 100%;
    justify-content: center;
  }
  .teacher-assigned-group-list {
    grid-template-columns: 1fr;
  }
  .teacher-assigned-group-card {
    grid-template-columns: 1fr auto;
  }
  .teacher-class-select-card small {
    grid-column: 1;
  }
  .teacher-class-select-card .table-action {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
  .teacher-assigned-group-card .table-actions {
    grid-column: 1 / -1;
    grid-row: auto;
    width: 100%;
    min-width: 0;
  }
  .teacher-session-choice-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .teacher-session-choice-card .table-action {
    width: 100%;
    justify-content: center;
  }
  .employee-request-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .employee-request-card-actions,
  .employee-request-card-actions .table-action {
    width: 100%;
  }
  .teacher-today-card small {
    grid-column: 1;
  }
  .teacher-today-card .table-action {
    grid-column: 2;
    grid-row: 1 / span 3;
  }
  .teacher-date-actions {
    justify-content: center;
    gap: 8px;
  }
  .priority-list { grid-template-columns: 1fr; }
  .teacher-calendar-day { min-height: 104px; padding: 6px; }
  .teacher-calendar-event {
    grid-template-columns: 1fr;
    gap: 1px;
    padding: 4px 5px;
  }
  .teacher-calendar-event span { font-size: 11px; }
  .teacher-upcoming-card {
    grid-template-columns: 1fr;
  }
  .teacher-upcoming-actions {
    justify-content: flex-start;
  }
  .table-wrap { margin-left: -2px; margin-right: -2px; }
  table { min-width: 620px; }
  .clock-history-tabs .table-wrap {
    margin-left: 0;
    margin-right: 0;
  }
  .clock-technical-table table {
    min-width: 720px;
  }
  .tutor-overview-grid {
    grid-template-columns: 1fr;
  }
  .tutor-panel-grid {
    grid-template-columns: 1fr;
  }
  .tutor-person-card .details {
    grid-template-columns: 1fr;
  }
  .tutor-search-result {
    align-items: flex-start;
    flex-direction: column;
  }
  .student-list-panel table { min-width: 0; }
  .attendance-row { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .quick-grid, .sidebar nav { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .login-panel { padding: 20px; }
  .topbar { align-items: flex-start; }
  .course-metrics,
  .course-area-metrics,
  .course-students-panel .course-area-metrics,
  .course-groups-metrics-panel .course-area-metrics,
  .course-group-card dl,
  .course-enrollment-summary,
  .treasury-account-card dl {
    grid-template-columns: 1fr;
  }
  .central-calendar-grid {
    gap: 3px;
  }
  .central-calendar-day {
    min-height: 48px;
    padding: 2px;
  }
  .central-calendar-day strong {
    width: 24px;
    height: 24px;
    font-size: 12px;
  }
  .central-calendar-day small {
    font-size: 10px;
    line-height: 1.1;
  }
  .central-calendar-event {
    grid-template-columns: 1fr;
  }
  .employee-activity-event {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .employee-activity-event .table-action {
    width: 100%;
  }
  .birth-date-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .number-stepper > div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .number-stepper button {
    min-height: 32px;
  }
  .guardian-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-actions { grid-template-columns: 1fr; }
  .teacher-action-grid-primary {
    grid-template-columns: 1fr;
  }
  .teacher-action-grid-secondary { grid-template-columns: 1fr; }
  .teacher-now-card {
    gap: 10px;
    padding: 14px;
    border-left-width: 5px;
  }
  .teacher-now-main strong {
    font-size: 22px;
  }
  .teacher-now-main small {
    font-size: 13px;
  }
  .teacher-now-context,
  .teacher-now-mini,
  .teacher-after-panel {
    padding: 11px;
  }
  .teacher-secondary-links {
    display: grid;
    grid-template-columns: 1fr;
  }
  .teacher-attendance-focus-hero {
    grid-template-columns: 1fr;
    gap: 7px;
    margin-bottom: 7px;
    padding: 10px;
    border-left-width: 4px;
  }
  .teacher-attendance-focus-hero div:first-child {
    gap: 2px;
  }
  .teacher-attendance-focus-hero span {
    font-size: 11px;
  }
  .teacher-attendance-focus-hero strong {
    font-size: 19px;
  }
  .teacher-attendance-focus-hero small {
    font-size: 12px;
    line-height: 1.25;
  }
  .teacher-attendance-count {
    min-height: auto;
    grid-template-columns: auto 1fr;
    justify-content: start;
    justify-items: start;
    gap: 7px;
    padding: 8px 10px;
  }
  .teacher-attendance-count strong {
    font-size: 17px;
  }
  .teacher-live-hero {
    grid-template-columns: 1fr;
  }
  .teacher-live-summary-card {
    grid-template-columns: 1fr;
  }
  .teacher-live-timer {
    min-height: 70px;
  }
  .teacher-live-actions {
    grid-template-columns: 1fr;
  }
  .teacher-live-secondary-actions {
    display: grid;
  }
  .teacher-live-secondary-actions .table-action {
    width: 100%;
  }
  .teacher-live-next {
    grid-template-columns: 1fr;
  }
  .teacher-live-next .table-action {
    grid-column: auto;
    grid-row: auto;
  }
  .teacher-delivery-options {
    grid-template-columns: 1fr;
  }
  .teacher-finish-delivery-form .teacher-delivery-extra-fields input {
    width: calc(100vw - 76px) !important;
    max-width: 100% !important;
  }
  .teacher-attendance-progress {
    grid-template-columns: 1fr;
    gap: 5px;
    margin-bottom: 8px;
  }
  .teacher-attendance-progress span {
    min-height: 28px;
    font-size: 12px;
  }
  .teacher-attendance-state {
    grid-template-columns: 1fr;
    gap: 9px;
    padding: 11px;
  }
  .teacher-attendance-state strong {
    font-size: 17px;
  }
  .teacher-session-primary-action {
    width: 100%;
  }
  .teacher-session-context {
    grid-template-columns: 1fr;
  }
  .teacher-session-secondary-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .teacher-attendance-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .teacher-attendance-quick-row {
    grid-template-columns: 1fr;
  }
  .teacher-attendance-buttons {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .family-action-grid { grid-template-columns: 1fr; }
  .family-payment-card {
    grid-template-columns: 1fr;
  }
  .student-self-actions {
    grid-template-columns: 1fr;
  }
  .notice-choice-panel { grid-template-columns: 1fr; }
  .admin-hero-actions { grid-template-columns: 1fr; }
  .admin-main-actions { grid-template-columns: 1fr; }
  .admin-main-actions-primary { grid-template-columns: 1fr; }
  .admin-secondary-grid { grid-template-columns: 1fr; }
  .admin-main-action {
    min-height: 88px;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
  }
  .admin-focus-item {
    grid-template-columns: 72px minmax(0, 1fr);
  }
  .admin-search-result-list {
    grid-template-columns: 1fr;
  }
  .student-admin-stats,
  .group-admin-badges {
    grid-template-columns: 1fr;
  }
  .student-admin-actions,
  .group-admin-actions {
    grid-template-columns: 1fr;
  }
  .admin-payment-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .accounting-action-grid {
    grid-template-columns: 1fr;
  }
  .remittance-actions,
  .remittance-card,
  .bank-movement-card,
  .bank-movement-card .review-form,
  .billing-payment-card,
  .expense-card {
    grid-template-columns: 1fr;
  }
  .remittance-card em,
  .bank-movement-card em,
  .billing-payment-card em,
  .expense-card em {
    white-space: normal;
  }
  .admin-directory-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .training-course-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .admin-directory-card .table-action,
  .training-course-card .table-action {
    width: 100%;
  }
  .activity-select-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .activity-select-card em {
    white-space: normal;
  }
  .admin-work-item {
    grid-template-columns: 1fr;
  }
  .admin-work-meta {
    grid-template-columns: 1fr;
    justify-items: start;
  }
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .metric { padding: 12px; }
  .metric strong { font-size: 20px; }
  .student-learning-hero,
  .student-learning-summary-card,
  .student-learning-event-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .student-learning-hero {
    display: grid;
  }
  .student-learning-actions,
  .student-learning-event-actions {
    justify-content: stretch;
  }
  .student-learning-actions .table-action,
  .student-learning-event-actions .table-action {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
  .clock-card,
  .clock-history-tabs {
    margin-left: 0;
    margin-right: 0;
  }
  .clock-card .panel-head,
  .clock-history-tabs .panel-head {
    align-items: flex-start;
  }
  .clock-card .panel-head span,
  .clock-history-tabs .panel-head span {
    text-align: right;
    overflow-wrap: anywhere;
  }
  .clock-month-heading {
    grid-template-columns: 1fr;
  }
  .clock-calendar-period {
    width: 100%;
    margin-left: 0;
  }
  .clock-calendar-legend {
    align-items: flex-start;
    flex-direction: column;
  }
  .clock-history-tab-nav {
    gap: 6px;
    padding-bottom: 8px;
  }
  .clock-history-tab-nav label {
    min-height: 38px;
    padding: 0 10px;
    font-size: 13px;
  }
  .clock-summary-grid {
    grid-template-columns: 1fr;
  }
  .clock-day-card dl,
  .clock-close-summary {
    grid-template-columns: 1fr;
  }
  .clock-day-card header {
    align-items: flex-start;
  }
  .clock-day-card header span {
    max-width: 48%;
    white-space: normal;
    text-align: center;
  }
  .clock-download-month-form {
    grid-template-columns: 1fr;
  }
  .clock-download-month-form button,
  .clock-close-form button {
    width: 100%;
  }
  .extraescolar-modality-row {
    grid-template-columns: auto 1fr;
  }
  .extraescolar-modality-row input[inputmode="decimal"],
  .extraescolar-modality-row small {
    grid-column: 2;
  }
  .extraescolar-preview-grid {
    grid-template-columns: 1fr;
  }
  .extraescolar-preview-intro,
  .extraescolar-preview-create {
    display: grid;
  }
  .extraescolar-preview-intro strong {
    text-align: left;
  }
  .extraescolar-preview-details {
    grid-template-columns: 1fr;
  }
  .tutor-overview-grid {
    grid-template-columns: 1fr;
  }
  .tutor-panel-grid {
    grid-template-columns: 1fr;
  }
  .tutor-person-card .details {
    grid-template-columns: 1fr;
  }
  .tutor-search-result {
    align-items: flex-start;
    flex-direction: column;
  }
  .clock-technical-table {
    padding-left: 0;
    padding-right: 0;
  }
  .clock-technical-table .panel-head {
    padding-left: 14px;
    padding-right: 14px;
  }
  .clock-technical-table table {
    min-width: 680px;
  }
  .teacher-calendar-panel {
    margin-left: -8px;
    margin-right: -8px;
  }
  .teacher-calendar-weekdays div {
    padding: 8px 2px;
    font-size: 11px;
  }
  .teacher-calendar-day {
    min-height: 92px;
    padding: 4px;
  }
  .teacher-calendar-date span {
    min-width: 24px;
    min-height: 24px;
    font-size: 12px;
  }
  .teacher-calendar-event {
    font-size: 11px;
    padding: 3px 4px;
  }
  .teacher-calendar-more {
    font-size: 11px;
    padding: 1px 4px;
  }
  .panel { padding: 14px; }
  .section-details { padding: 0; }
  .section-details summary { padding: 14px; }
  .section-details-body > .panel { padding: 12px; }
  .employee-payroll-upload-panel > .section-details-body,
  .employee-payroll-payment-upload-panel > .section-details-body,
  .employee-reported-absence-panel > .section-details-body,
  .employee-termination-start > .section-details-body { padding: 14px; }
  .section-details-body > .table-panel {
    padding-left: 0;
    padding-right: 0;
  }
  .section-details-body > .table-panel .panel-head,
  .section-details-body > .table-panel .panel-footer {
    padding-left: 12px;
    padding-right: 12px;
  }
  table { min-width: 560px; }
  .student-list-panel table { min-width: 0; }
  .student-list-panel th:last-child,
  .student-list-panel td:last-child {
    width: 84px;
  }
}

.teacher-action-tutorial {
  border-color: #96c9c1;
  background: #edf8f6;
}
.tutorial-shell {
  display: grid;
  gap: 16px;
  max-width: 980px;
  margin: 0 auto;
}
.tutorial-banner {
  position: sticky;
  top: 10px;
  z-index: 20;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  color: #fff;
  background: #174f56;
  border: 2px solid #0d353a;
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(13, 53, 58, .22);
}
.tutorial-banner > div { display: grid; gap: 2px; }
.tutorial-banner strong { font-size: 16px; }
.tutorial-banner span { color: #d7efeb; font-weight: 750; }
.tutorial-banner form { margin: 0; }
.tutorial-exit {
  min-height: 42px;
  padding: 0 14px;
  color: #173f45;
  background: #fff;
  border: 0;
  border-radius: 8px;
  font-weight: 900;
  cursor: pointer;
}
.tutorial-progress,
.tutorial-class-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 36%);
  gap: 16px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.tutorial-progress > div,
.tutorial-class-header > div { display: grid; gap: 4px; min-width: 0; }
.tutorial-progress strong,
.tutorial-class-header span,
.tutorial-live span,
.tutorial-complete > span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.tutorial-progress span { color: var(--muted); font-weight: 800; }
.tutorial-progress progress { width: 100%; height: 14px; accent-color: #176b73; }
.tutorial-focus,
.tutorial-live,
.tutorial-complete {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, auto);
  gap: 20px;
  align-items: center;
  padding: 24px;
  border: 1px solid #b9d5d1;
  border-left: 8px solid #176b73;
  border-radius: 8px;
  background: #f2faf8;
  box-shadow: 0 14px 30px rgba(20, 39, 42, .1);
}
.tutorial-focus > div:first-child,
.tutorial-live > div:first-child { min-width: 0; }
.tutorial-focus span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.tutorial-focus h2,
.tutorial-live h2,
.tutorial-complete h2,
.tutorial-class-header h2 { margin: 4px 0 8px; color: #173f45; overflow-wrap: anywhere; }
.tutorial-focus p,
.tutorial-live p,
.tutorial-complete p,
.tutorial-class-header p { margin: 0; color: #45565c; font-weight: 750; line-height: 1.45; }
.tutorial-highlight {
  display: grid;
  gap: 7px;
  padding: 10px;
  border: 3px solid #d07b2c;
  border-radius: 8px;
  background: #fffaf1;
  box-shadow: 0 0 0 5px rgba(208, 123, 44, .12);
}
.tutorial-highlight form { margin: 0; }
.tutorial-highlight small { color: #6d4c2d; font-weight: 850; text-align: center; }
.tutorial-primary {
  min-height: 52px;
  width: 100%;
  padding: 0 18px;
  color: #fff;
  background: #176b73;
  border: 0;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 950;
  cursor: pointer;
}
.tutorial-primary:hover { background: #115860; }
.tutorial-primary:focus-visible,
.tutorial-exit:focus-visible { outline: 3px solid #d07b2c; outline-offset: 3px; }
.tutorial-primary:active { background: #0d454b; transform: translateY(1px); }
.tutorial-class-header { grid-template-columns: minmax(0, 1fr) auto; }
.tutorial-class-header em {
  padding: 7px 10px;
  color: #684114;
  background: #fff2d9;
  border-radius: 6px;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}
.tutorial-instruction {
  padding: 16px;
  border-left: 6px solid #d07b2c;
  background: #fff8ec;
}
.tutorial-instruction p { margin: 4px 0 0; }
.tutorial-attendance-form { display: grid; gap: 16px; }
.tutorial-student-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.tutorial-student {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(145px, auto);
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.tutorial-student span { min-width: 0; font-weight: 900; overflow-wrap: anywhere; }
.tutorial-student select { min-height: 42px; width: 100%; }
.tutorial-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.tutorial-summary > div {
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.tutorial-summary span { color: var(--muted); font-size: 12px; font-weight: 850; }
.tutorial-summary strong { font-size: 24px; }
.tutorial-live small { display: block; margin-top: 12px; color: var(--muted); font-weight: 800; }
.tutorial-complete { grid-template-columns: 1fr; border-left-color: #2f6e54; }
.tutorial-complete dl { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.tutorial-complete dl div { min-width: 150px; padding: 10px; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.tutorial-complete dt { color: var(--muted); font-size: 12px; font-weight: 850; }
.tutorial-complete dd { margin: 3px 0 0; font-size: 20px; font-weight: 950; }
.tutorial-complete-actions,
.tutorial-footer-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.tutorial-complete-actions form,
.tutorial-footer-actions form { margin: 0; }
.tutorial-complete-actions .table-action,
.tutorial-footer-actions .table-action { min-height: 44px; }
.tutorial-secondary-action {
  min-height: 44px;
  padding: 0 14px;
  color: #fff;
  background: #176b73;
  border: 0;
  border-radius: 8px;
  font-weight: 900;
  cursor: pointer;
}
.tutorial-secondary-action:hover { background: #115860; }
.tutorial-secondary-action:focus-visible { outline: 3px solid #d07b2c; outline-offset: 3px; }

@media (max-width: 700px) {
  .tutorial-banner,
  .tutorial-progress,
  .tutorial-focus,
  .tutorial-live,
  .tutorial-class-header { grid-template-columns: 1fr; }
  .tutorial-banner { position: relative; top: auto; }
  .tutorial-exit { width: 100%; }
  .tutorial-student-list { grid-template-columns: 1fr; }
  .tutorial-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tutorial-focus,
  .tutorial-live,
  .tutorial-complete { padding: 18px; }
  .tutorial-footer-actions,
  .tutorial-complete-actions { display: grid; grid-template-columns: 1fr; }
  .tutorial-footer-actions form,
  .tutorial-footer-actions button,
  .tutorial-footer-actions .table-action,
  .tutorial-complete-actions form,
  .tutorial-complete-actions .table-action,
  .tutorial-complete-actions button { width: 100%; }
}

@media (max-width: 430px) {
  .tutorial-student { grid-template-columns: 1fr; }
  .tutorial-summary { grid-template-columns: 1fr; }
  .tutorial-focus h2,
  .tutorial-live h2,
  .tutorial-complete h2,
  .tutorial-class-header h2 { font-size: 22px; }
}
.tutorial-mode-frame { display: grid; gap: 14px; }
.tutorial-mode-frame .tutorial-banner {
  grid-template-columns: minmax(0, 1fr) minmax(150px, 220px) auto;
  align-items: center;
}
.tutorial-banner-progress { display: grid; gap: 4px; min-width: 0; }
.tutorial-banner-progress strong { font-size: 13px; }
.tutorial-banner-progress progress { width: 100%; accent-color: #f5b56e; }
.tutorial-coach {
  display: grid;
  gap: 4px;
  padding: 13px 15px;
  border: 1px solid #edc17f;
  border-left: 6px solid #d07b2c;
  border-radius: 8px;
  background: #fff8ec;
}
.tutorial-coach span { color: #7a5200; font-size: 12px; font-weight: 950; text-transform: uppercase; }
.tutorial-coach strong { color: #173f45; font-size: 18px; }
.tutorial-coach p { margin: 0; color: #45565c; font-weight: 750; line-height: 1.4; }
.tutorial-mode-highlight { outline: 3px solid #d07b2c; outline-offset: 3px; }
.tutorial-action-form { margin: 0; min-width: 0; }
.tutorial-action-form > button { cursor: pointer; }
.tutorial-mode-frame .clock-created-actions .tutorial-action-form,
.tutorial-mode-frame .clock-created-actions button,
.tutorial-mode-frame .teacher-now-action .tutorial-action-form,
.tutorial-mode-frame .teacher-now-action button,
.tutorial-mode-frame .teacher-session-primary-action .tutorial-action-form,
.tutorial-mode-frame .teacher-session-primary-action button { width: 100%; }
.tutorial-mode-frame .teacher-live-next .tutorial-action-form { grid-column: 2; grid-row: 1 / span 2; }
.tutorial-mode-frame .teacher-live-next .tutorial-action-form .table-action { min-height: 50px; width: 100%; }
.tutorial-mode-frame [aria-disabled="true"] { cursor: default; opacity: .72; }
.tutorial-complete-note { max-width: 680px; border-left: 6px solid #2f7d52; }
.tutorial-complete-note h2 { margin-top: 0; }
@media (max-width: 700px) {
  .tutorial-mode-frame .tutorial-banner { grid-template-columns: 1fr; }
  .tutorial-mode-frame .teacher-live-next .tutorial-action-form { grid-column: 1; grid-row: auto; width: 100%; }
  .tutorial-mode-frame .teacher-live-next .tutorial-action-form button { width: 100%; }
}

/* Annual Robotics plan */
.robotics-course-plan { display: grid; gap: 16px; }
.robotics-plan-intro { margin-bottom: 0; }
.robotics-plan-intro .panel-head > div { min-width: 0; }
.robotics-plan-intro .panel-head p { margin: 4px 0 0; }
.robotics-plan-filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr)) auto;
  gap: 10px;
  align-items: end;
  margin: 14px 0;
}
.robotics-plan-filters label { display: grid; gap: 5px; font-weight: 800; }
.robotics-plan-filters select,
.robotics-plan-filters input,
.robotics-session-edit select { width: 100%; min-width: 0; }
.robotics-plan-week {
  padding: 16px;
  border: 1px solid #d8e2e3;
  border-radius: 8px;
  background: #f7faf9;
}
.robotics-teacher-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.robotics-teacher-week { min-width: 0; padding: 12px; border: 1px solid #ceddde; border-radius: 8px; background: #fff; }
.robotics-teacher-week > header { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; margin-bottom: 10px; }
.robotics-teacher-week > header h3 { margin: 0; font-size: 17px; }
.robotics-teacher-week > header span { color: #176b73; font-size: 12px; font-weight: 900; text-align: right; }
.robotics-session-card { padding: 10px 0; border-top: 1px solid #e4ecec; }
.robotics-session-card:first-of-type { border-top: 0; }
.robotics-session-card > div { display: flex; justify-content: space-between; gap: 8px; }
.robotics-session-card > div span { color: #5a6a6d; font-size: 12px; text-align: right; overflow-wrap: anywhere; }
.robotics-session-card h4 { margin: 6px 0 2px; font-size: 15px; }
.robotics-session-card p { margin: 0 0 6px; font-size: 13px; }
.robotics-session-card details { margin-top: 7px; }
.robotics-session-edit { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; margin-top: 7px; }

@media (max-width: 800px) {
  .robotics-plan-filters { grid-template-columns: 1fr 1fr; }
  .robotics-plan-filters button { width: 100%; }
  .robotics-teacher-grid { grid-template-columns: 1fr; }
}
@media (max-width: 430px) {
  .robotics-plan-filters { grid-template-columns: 1fr; }
  .robotics-plan-week { padding: 12px; }
  .robotics-teacher-week > header,
  .robotics-session-card > div { display: grid; grid-template-columns: 1fr; }
  .robotics-teacher-week > header span,
  .robotics-session-card > div span { text-align: left; }
  .robotics-session-edit { grid-template-columns: 1fr; }
}
/* Weekly advertising distribution planning */
.advertising-toolbar,
.week-navigation {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.week-navigation {
  align-items: center;
  padding: 10px 0;
}

.advertising-week {
  display: grid;
  gap: 12px;
}

.advertising-work-blocks ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 8px;
  padding: 0;
  list-style: none;
}

.advertising-work-blocks li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--border-color, #d9dee5);
}

.advertising-entry {
  border: 1px solid var(--border-color, #d9dee5);
  border-left: 4px solid #d29a28;
  border-radius: 6px;
  padding: 14px;
  background: #fff;
}

.advertising-entry.status-completed { border-left-color: #27835a; }
.advertising-entry.status-not_done { border-left-color: #a64b48; }

.advertising-entry-head,
.advertising-entry-head > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.advertising-entry-head > div { align-items: baseline; }

.advertising-entry dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 0;
}

.advertising-entry dt { color: #59636f; font-size: .85rem; }
.advertising-entry dd { margin: 3px 0 0; font-weight: 650; }

.advertising-actual {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 12px;
  margin-top: 12px;
  padding: 12px;
  background: #f2f7f4;
}

.advertising-actual strong,
.advertising-actual p { grid-column: 1 / -1; margin: 0; }

@media (max-width: 720px) {
  .advertising-toolbar,
  .week-navigation,
  .advertising-entry-head,
  .advertising-entry-head > div {
    align-items: stretch;
    flex-direction: column;
  }

  .advertising-entry dl,
  .advertising-actual { grid-template-columns: 1fr; }
  .advertising-actual strong,
  .advertising-actual p { grid-column: auto; }
}

/* Remittance workflow */
.request-readiness-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.request-next-action {
  display: grid;
  gap: 4px;
  margin: 0 0 16px;
  padding: 14px 16px;
  border-left: 4px solid #a97913;
  background: #fff8e8;
}

.request-step-intro {
  margin: 0 0 1rem;
}

.request-step-intro > span {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
}

.request-step-intro h2 {
  margin: .25rem 0;
}

.request-step-intro p {
  margin: 0;
  color: var(--muted);
}

.request-identity-decision {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1rem;
}

.request-identity-decision span {
  flex: 1;
}

.request-identity-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.request-source-summary {
  position: sticky;
  top: 1rem;
}

.request-candidate-filter {
  display: block;
  margin-bottom: .85rem;
}

.request-candidate-list {
  display: grid;
  gap: .75rem;
}

.request-candidate-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .9rem;
  background: var(--surface);
}

.request-candidate-heading,
.request-candidate-heading > div {
  display: flex;
  align-items: center;
  gap: .6rem;
}

.request-candidate-heading {
  justify-content: space-between;
}

.request-candidate-heading span,
.request-candidate-card p {
  color: var(--muted);
  font-size: .88rem;
}

.request-candidate-score {
  color: var(--text) !important;
  font-weight: 700;
}

.request-candidate-card dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .6rem;
  margin: .75rem 0;
}

.request-candidate-card dt {
  color: var(--muted);
  font-size: .75rem;
}

.request-candidate-card dd {
  margin: .15rem 0 0;
}

.request-candidate-card .form-actions form,
.request-identity-decision form {
  margin: 0;
}

.request-confirm-new-form {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.request-step-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 1rem;
}

@media (max-width: 800px) {
  .request-identity-grid {
    grid-template-columns: 1fr;
  }

  .request-source-summary {
    position: static;
  }

  .request-candidate-card dl {
    grid-template-columns: 1fr;
  }

  .request-identity-decision {
    align-items: flex-start;
    flex-direction: column;
  }
}
.request-next-action span { color: #70530e; font-size: .78rem; font-weight: 750; text-transform: uppercase; }
.request-next-action strong { font-size: 1.05rem; }
.request-next-action p { margin: 0 0 6px; }
.request-next-action .table-action { justify-self: start; }

.request-readiness-item {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--border-color, #d9dee5);
  border-left: 4px solid #a97913;
  border-radius: 6px;
  background: #fff;
}

.request-readiness-item p { margin: 3px 0 0; }
.request-readiness-complete,
.request-readiness-item.request-readiness-complete { border-left-color: #27835a; }
.request-readiness-item.request-readiness-ready { border-left-color: #27835a; background: #f2f7f4; }
.request-readiness-item.request-readiness-blocked { border-left-color: #a64b48; }
.request-readiness-status { font-size: .82rem; font-weight: 700; color: var(--muted, #59636f); }
.request-whatsapp-actions { margin: 16px 0; }
.whatsapp-button {
  border-color: #128c7e;
  background: #128c7e;
  color: #fff;
}
.whatsapp-button:hover,
.whatsapp-button:focus-visible {
  border-color: #0d7165;
  background: #0d7165;
  color: #fff;
}
.request-whatsapp-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 16px;
  font-weight: 750;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(18, 140, 126, .2);
}
.request-whatsapp-button span {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  font-size: 1.15rem;
}
.request-internal-checks { padding: 12px 0; }
.request-internal-checks > summary { cursor: pointer; font-weight: 700; }
.request-family-questions { padding-left: 22px; display: grid; gap: 8px; }
.request-received-editor input { min-width: 0; }
.request-final-summary .notice ul { padding-left: 22px; display: grid; gap: 8px; }
.request-final-summary a[data-request-go] { text-decoration: underline; }
.request-detail-navigation .filter-row { flex-wrap: wrap; }
.request-activity-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 16px;
}
.request-activity-heading strong,
.request-activity-heading span { display: block; }
.request-activity-heading strong { font-size: 1.15rem; }
.request-activity-heading span { margin-top: 4px; color: var(--muted); }
.request-activity-heading .form-actions { justify-content: flex-end; flex-wrap: wrap; }
.request-activity-heading .button { min-height: 38px; padding: 8px 11px; font-size: .86rem; }
.request-received-details { margin-top: 16px; }
.request-received-details > summary,
.request-secondary-actions > summary { cursor: pointer; font-weight: 700; }
.request-received-details .panel,
.request-secondary-actions .panel { margin: 14px 0 0; box-shadow: none; }
.request-price-status { margin-bottom: 14px; }
.request-price-table input { min-width: 130px; width: 100%; }
.request-inline-adjustment { display: flex; align-items: center; gap: 8px; min-width: 260px; }
.request-provisional-matches { margin: 0 0 18px; padding-bottom: 18px; border-bottom: 1px solid var(--border); }
.request-provisional-matches h4 { margin: 0 0 10px; }
.request-definitive-matches-title { margin: 0 0 10px; }
.request-data-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.request-data-comparison > div { padding: 10px; border: 1px solid var(--border); border-radius: 6px; background: #f7f9fa; }
.request-data-comparison span,
.request-data-comparison strong,
.request-data-comparison small { display: block; }
.request-data-comparison span { color: var(--muted); font-size: .75rem; font-weight: 750; text-transform: uppercase; }
.request-comparison-table-wrap { overflow-x: auto; margin: 12px 0; }
.request-comparison-table { width: 100%; border-collapse: collapse; min-width: 620px; font-size: .9rem; }
.request-comparison-table th,
.request-comparison-table td { padding: 9px 10px; border: 1px solid var(--border); text-align: left; vertical-align: top; }
.request-comparison-table thead th { background: #eef2f3; }
.request-comparison-table tbody th { width: 22%; background: #f7f9fa; }
.request-comparison-table tfoot th,
.request-comparison-table tfoot td { background: #f7f9fa; vertical-align: middle; }
.request-comparison-table tfoot form { margin: 0; }
.request-comparison-table tfoot button { width: 100%; justify-content: center; }
.request-source-choice,
.request-source-all {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-height: 24px;
  cursor: pointer;
}
.request-source-all { align-items: center; font-weight: 800; }
.request-source-choice input[type="radio"],
.request-source-all input[type="radio"] {
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 1px 0 0;
  flex: 0 0 18px;
}
.request-source-choice:has(input:checked) span,
.request-source-all:has(input:checked) span { color: var(--text); font-weight: 800; }
.request-source-choice:has(input:checked) { padding: 7px; margin: -7px; border-radius: 5px; background: #eef7f2; }
.request-source-choice:has(input:disabled) { cursor: not-allowed; color: var(--muted); opacity: .65; }
.request-new-student-choice {
  display: grid;
  grid-template-columns: 22% minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}
.request-new-student-choice button { width: 100%; justify-content: center; }
.request-provisional-link-form fieldset,
.request-phone-choice fieldset { display: grid; gap: 7px; margin: 10px 0; padding: 10px; border: 1px solid var(--border); border-radius: 6px; }
.request-provisional-resolution {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  margin: 12px 0;
  padding: 11px 12px;
  border: 1px solid #a9cfc2;
  border-radius: 6px;
  background: #eef7f2;
  color: var(--text);
  font-weight: 750;
  line-height: 1.4;
}
.request-provisional-resolution input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 2px 0 0;
}
.request-group-roster { margin-top: 16px; }
.request-group-roster summary { cursor: pointer; font-weight: 800; }
.request-group-roster ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 0; list-style: none; }
.request-group-roster li { display: grid; gap: 2px; padding: 9px 10px; border: 1px solid var(--border); border-radius: 6px; }
.request-group-roster li span { color: var(--muted); font-size: .82rem; }
.request-payment-preferences { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--border); }
.request-phone-choice { width: 100%; }
.request-phone-choice label,
.request-provisional-link-form fieldset label { display: flex; align-items: center; gap: 8px; }
.request-phone-choice input[type="radio"],
.request-provisional-link-form input[type="radio"] { width: 18px; height: 18px; min-height: 0; margin: 0; flex: 0 0 18px; }
@media (max-width: 720px) {
  .request-new-student-choice { grid-template-columns: 1fr; }
  .request-new-student-choice > span { display: none; }
}
.request-final-secondary-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 14px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--border); }
.request-final-secondary-actions form { margin: 0; }
.request-verification-links { margin-top: 10px; }
.request-detail-tab { padding-bottom: 84px; }
.request-final-summary { max-width: 960px; }
.request-secondary-actions > .panel { border: 0; padding-inline: 0; }
.request-manual-checklist { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line, #d8dde3); }
.request-manual-check-item { display: block; }
.request-manual-check-item > div { margin-bottom: 10px; }
.request-check-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: end; }
.request-manual-check-item { padding-right: 130px; }
.request-check-form textarea { min-width: 0; width: 100%; resize: vertical; }
.employee-contact-actions { margin-top: 12px; }
.employee-phone-fields {
  display: grid;
  grid-template-columns: minmax(108px, .28fr) minmax(210px, 1fr);
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
}
.employee-phone-fields legend { margin-bottom: 6px; font-weight: 700; }

@media (max-width: 800px) {
  .request-activity-heading { flex-direction: column; }
  .request-activity-heading .form-actions { width: 100%; }
  .request-inline-adjustment { min-width: 220px; }
  .request-data-comparison,
  .request-group-roster ul,
  .request-final-secondary-actions { grid-template-columns: 1fr; }
  .request-check-form { grid-template-columns: 1fr; }
  .request-check-form .button { justify-self: start; }
  .request-manual-check-item { padding-right: 12px; padding-bottom: 72px; }
}
.whatsapp-contact-button {
  display: inline-grid;
  gap: 1px;
  min-width: 190px;
  padding: 11px 18px 11px 52px;
  border: 1px solid #128c7e;
  border-radius: 6px;
  color: #fff;
  background: #128c7e;
  box-shadow: 0 2px 5px rgb(0 0 0 / 14%);
  text-align: left;
  text-decoration: none;
  position: relative;
}
.whatsapp-contact-button::before {
  content: "W";
  display: grid;
  place-items: center;
  position: absolute;
  left: 12px;
  top: 50%;
  width: 28px;
  height: 28px;
  border: 2px solid #fff;
  border-radius: 50%;
  font-weight: 800;
  transform: translateY(-50%);
}
.whatsapp-contact-button span { font-size: .78rem; font-weight: 600; }
.whatsapp-contact-button:hover,
.whatsapp-contact-button:focus-visible { border-color: #0d7165; background: #0d7165; }

@media (max-width: 720px) {
  .employee-phone-fields { grid-template-columns: 105px minmax(0, 1fr); }
  .whatsapp-contact-button { width: 100%; }
}

@media (max-width: 720px) {
  .request-readiness-item { grid-template-columns: minmax(0, 1fr) auto; }
  .request-readiness-status { grid-column: 1 / -1; }
  .request-check-form { grid-column: 1 / -1; grid-template-columns: 1fr; }
}

.document-folder-list {
  display: grid;
  gap: 8px;
}

.document-folder-row {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid var(--border-color, #d9dee5);
  border-radius: 6px;
  color: inherit;
  background: #fff;
  text-decoration: none;
}

.document-folder-row:hover,
.document-folder-row:focus-visible {
  border-color: #9aa8b5;
  background: #f6f8fa;
}

.document-folder-kind,
.document-folder-action {
  color: var(--muted, #59636f);
  font-size: .84rem;
}

.document-folder-row strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.document-folder-action {
  font-weight: 700;
}

.document-extracted-text {
  max-height: 32rem;
  margin: 1rem 0 0;
  padding: 1rem;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  border: 1px solid var(--border-color, #d9dee5);
  border-radius: 6px;
  background: #f6f8fa;
  color: inherit;
  font: .9rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;
}

@media (max-width: 720px) {
  .document-folder-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .document-folder-kind {
    grid-column: 1 / -1;
  }
}

.remittance-accept-form,
.remittance-create-draft {
  display: grid;
  gap: 8px;
  min-width: 220px;
}

.remittance-accept-form label {
  display: grid;
  gap: 4px;
  font-size: .84rem;
  font-weight: 650;
}

.remittance-support-link {
  margin: 8px 0 14px;
  font-size: .9rem;
}

.remittance-secondary > summary {
  cursor: pointer;
  font-weight: 700;
}

.remittance-fee-guidance {
  display: grid;
  gap: 5px;
  margin: 12px 0;
  padding: 12px;
  border: 1px solid #d7c27c;
  border-left: 4px solid #a97913;
  background: #fffaf0;
}

.remittance-fee-guidance small { color: #5d6165; }

@media (max-width: 720px) {
  .remittance-accept-form { min-width: 0; width: 100%; }
}
.receipt-customer-search {
  position: relative;
}

.receipt-customer-suggestions {
  top: calc(100% - 2px);
  right: 0;
  left: 0;
  z-index: 20;
}

.receipt-customer-suggestions button {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: #fff;
  text-align: left;
  cursor: pointer;
}

.receipt-customer-selection {
  display: block;
  margin-top: 7px;
  color: var(--brand);
  font-size: .88rem;
  font-weight: 800;
}

.billing-receipt-tabs {
  margin-bottom: 18px;
}

.billing-page-intro {
  margin: 0 0 16px;
  color: var(--muted);
  max-width: 78ch;
}

.billing-invoice-tabs {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 18px;
}

.recruitment-tabs {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 18px;
}

.recruitment-question-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.recruitment-question {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.recruitment-question strong { color: var(--ink); }
.recruitment-question span { color: var(--muted); line-height: 1.45; }
.recruitment-question textarea { min-height: 108px; }
.recruitment-checklist { display: grid; gap: 8px; padding-left: 22px; }

@media (max-width: 760px) {
  .recruitment-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recruitment-question-grid { grid-template-columns: minmax(0, 1fr); }
}

.invoice-customer-search {
  position: relative;
}

.invoice-customer-suggestions {
  top: calc(100% - 2px);
  right: 0;
  left: 0;
  z-index: 20;
}

.invoice-customer-suggestions button {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: #fff;
  text-align: left;
  cursor: pointer;
}

.invoice-customer-selection {
  display: block;
  margin-top: 7px;
  color: var(--brand);
  font-size: .88rem;
  font-weight: 800;
}
.change-history > summary {
  cursor: pointer;
  font-weight: 700;
}

.change-history > summary small {
  margin-left: .5rem;
  font-weight: 400;
}

.change-history-list {
  display: grid;
  gap: .65rem;
  margin: 1rem 0;
  padding-left: 1.5rem;
}

.change-history-item small,
.change-history-values span {
  display: block;
}

.change-history-values {
  display: grid;
  gap: .25rem;
  margin-top: .25rem;
}
/* Development-only employee/time simulation. */
.development-simulation-banner {
  position: sticky;
  top: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .65rem 1rem;
  color: #fff;
  background: #7b1fa2;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .2);
}
.development-simulation-banner > div:first-child { display: grid; gap: .1rem; }
.development-simulation-banner span { font-size: .86rem; }
.simulation-banner-actions { display: flex; align-items: center; gap: .6rem; }
.simulation-banner-actions form { margin: 0; }
.simulation-banner-actions a,
.simulation-banner-actions button {
  border: 1px solid rgba(255,255,255,.75);
  border-radius: .45rem;
  padding: .38rem .7rem;
  color: #fff;
  background: rgba(255,255,255,.12);
  font: inherit;
  text-decoration: none;
  cursor: pointer;
}
.development-simulation-entry { margin: 0 0 1rem; }
.development-simulation-entry a {
  display: inline-flex;
  padding: .45rem .75rem;
  border-radius: .5rem;
  background: #f3e5f5;
  color: #5e1674;
  font-weight: 700;
  text-decoration: none;
}
.simulation-interactive-option { padding: .75rem; border: 1px solid #e0c4e8; border-radius: .55rem; }
@media (max-width: 700px) {
  .development-simulation-banner { align-items: flex-start; flex-direction: column; }
  .simulation-banner-actions { width: 100%; }
}

/* Mingorria 2027: selector comercial compartido por formulario y resguardo. */
.camp-week-grid,
.camp-plan-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: .8rem;
}
.camp-week-card,
.camp-plan-card {
  display: block;
  position: relative;
  cursor: pointer;
}
.camp-week-card > input,
.camp-plan-card > input {
  position: absolute;
  inset: .9rem auto auto .9rem;
}
.camp-week-card > span,
.camp-plan-card > span {
  display: grid;
  gap: .35rem;
  min-height: 100%;
  padding: 1rem 1rem 1rem 2.6rem;
  border: 2px solid #dbe7ea;
  border-radius: .75rem;
  background: #fff;
}
.camp-week-card input:checked + span,
.camp-plan-card input:checked + span {
  border-color: #2191a5;
  background: #eefbfc;
  box-shadow: 0 8px 20px rgba(33,145,165,.13);
}
.camp-week-card small,
.camp-plan-card small { color: #586b70; }
.camp-week-card b { color: #176e7f; font-size: 1.15rem; }
.camp-live-summary,
.camp-payment-preview {
  display: grid;
  gap: .45rem;
  margin-top: 1rem;
  padding: .9rem 1rem;
  border-radius: .65rem;
  background: #f2f7f8;
}
.camp-payment-preview > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-top: .35rem;
  border-top: 1px solid #dbe7ea;
}
.camp-confirmation-summary {
  margin: 1rem 0;
  padding: 1rem;
  border: 1px solid #dbe7ea;
  border-radius: .75rem;
  background: #f7fbfc;
}
@media (max-width: 620px) {
  .camp-week-grid,
  .camp-plan-grid { grid-template-columns: 1fr; }
}
.table-panel th[data-global-sortable="true"] {
    cursor: pointer;
    user-select: none;
}
.remittance-row-detail > td {
    padding: 0;
    border-top: 0;
    background: var(--surface-soft, #f7fafb);
}
.remittance-row-detail[hidden] { display: none; }
.remittance-row-detail-content {
    width: 100%;
    padding: 14px 16px 18px;
    box-sizing: border-box;
}
.remittance-row-detail-content .table-wrap {
    width: 100%;
    margin: 0;
}
.remittance-row-detail-content table {
    width: 100%;
    min-width: 760px;
}
.remittance-breakdown-toggle {
    white-space: nowrap;
}

/* Mobile-first teaching content library pilot. */
.teacher-content-detail-shell {
  display: grid;
  gap: 22px;
  width: min(1180px, 100%);
  margin: 0 auto;
}
.teacher-content-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  padding: 26px 28px;
  border: 1px solid #c8dcda;
  border-radius: 22px;
  background:
    radial-gradient(circle at 92% 10%, rgba(232, 157, 91, .24), transparent 28%),
    linear-gradient(135deg, #ffffff 0%, #edf8f6 100%);
  box-shadow: 0 16px 36px rgba(22, 61, 65, .09);
}
.teacher-content-hero::after {
  content: "";
  position: absolute;
  right: -46px;
  bottom: -72px;
  width: 190px;
  height: 190px;
  border: 30px solid rgba(23, 107, 115, .07);
  border-radius: 50%;
  pointer-events: none;
}
.teacher-content-eyebrow,
.teacher-content-intro > span,
.teacher-content-category-heading > div:last-child > span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.teacher-content-hero h1 {
  margin: 7px 0 8px;
  color: #153f44;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.05;
}
.teacher-content-hero p {
  max-width: 700px;
  margin: 0;
  color: #4e6265;
  font-size: 16px;
  line-height: 1.55;
}
.teacher-content-hero-actions {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 9px;
  min-width: 220px;
}
.teacher-content-hero-actions .button-link,
.teacher-content-hero-actions .table-action,
.teacher-content-footer-actions .button-link,
.teacher-content-file-actions .button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 11px 16px;
  border: 1px solid #176b73;
  border-radius: 12px;
  background: #176b73;
  color: #fff;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}
.teacher-content-hero-actions .secondary,
.teacher-content-hero-actions .table-action {
  border-color: #bfd1cf;
  background: rgba(255, 255, 255, .82);
  color: #175d64;
}
.teacher-content-intro {
  display: grid;
  gap: 5px;
  padding: 2px 4px 0;
}
.teacher-content-needs-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  color: #176b73;
  font-size: 13px;
  font-weight: 950;
  letter-spacing: .05em;
  text-decoration: none;
  text-transform: uppercase;
}
.teacher-content-needs-link b {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #e4f3f1;
  transition: transform .18s ease, background .18s ease;
}
.teacher-content-needs-link:hover b,
.teacher-content-needs-link:focus-visible b {
  transform: translateX(3px);
  background: #cde8e4;
}
.teacher-content-intro h2 {
  margin: 0;
  color: #173f45;
  font-size: clamp(24px, 3vw, 32px);
}
.teacher-content-intro p {
  margin: 0;
  color: #5b6e71;
  font-size: 15px;
}
.teacher-content-footer-actions {
  display: flex;
  justify-content: center;
  padding-top: 4px;
}
.teacher-content-footer-actions .button-link {
  min-width: min(100%, 310px);
}
.teacher-content-materials-heading {
  position: relative;
  overflow: hidden;
  padding: 22px 24px;
  border: 1px solid #c8dcda;
  border-radius: 20px;
  background:
    radial-gradient(circle at 94% 8%, rgba(232, 157, 91, .26), transparent 31%),
    linear-gradient(135deg, #ffffff 0%, #e8f7f4 100%);
  box-shadow: 0 14px 30px rgba(22, 61, 65, .09);
}
.teacher-content-materials-heading::after {
  content: "";
  position: absolute;
  right: -40px;
  bottom: -76px;
  width: 170px;
  height: 170px;
  border: 27px solid rgba(23, 107, 115, .07);
  border-radius: 50%;
  pointer-events: none;
}
.teacher-content-materials-heading > span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.teacher-content-materials-heading h2 {
  margin: 5px 0 4px;
  color: #173f45;
  font-size: clamp(24px, 3vw, 31px);
}
.teacher-content-materials-heading p,
.teacher-content-material-note {
  margin: 0;
  color: #53676a;
  line-height: 1.5;
}
.teacher-content-material-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.teacher-content-material-card {
  --material-color: #16717a;
  --material-soft: #e9f7f6;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 17px;
  border: 1px solid color-mix(in srgb, var(--material-color) 24%, white);
  border-radius: 18px;
  background:
    radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--material-color) 18%, transparent), transparent 38%),
    linear-gradient(135deg, #fff 0%, var(--material-soft) 100%);
  box-shadow: 0 10px 24px rgba(28, 52, 55, .08);
}
.teacher-content-material-card::after {
  content: "";
  position: absolute;
  right: -32px;
  bottom: -42px;
  width: 105px;
  height: 105px;
  border: 18px solid color-mix(in srgb, var(--material-color) 9%, transparent);
  border-radius: 50%;
  pointer-events: none;
}
.teacher-content-material-ordenador { --material-color: #16717a; --material-soft: #e7f6f4; }
.teacher-content-material-arduino { --material-color: #c45b27; --material-soft: #fff0e6; }
.teacher-content-material-mark {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  border-radius: 17px;
  background: color-mix(in srgb, var(--material-color) 12%, white);
  color: var(--material-color);
}
.teacher-content-material-mark svg {
  width: 50px;
  height: 50px;
}
.teacher-content-material-card > p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #294e53;
  font-size: 17px;
  font-weight: 850;
  line-height: 1.35;
}
.teacher-content-material-calculation { display: grid; justify-items: end; }
.teacher-content-material-calculation strong { color: #176b73; font-size: 28px; line-height: 1; }
.teacher-content-material-calculation small { margin-top: 5px; color: #68797c; }
.teacher-content-material-note {
  padding: 14px 16px;
  border-radius: 14px;
  background: #f3f8f7;
  font-size: 14px;
}
.teacher-content-category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.teacher-content-category-documents { --category-color: #16717a; --category-soft: #e9f7f6; }
.teacher-content-category-code { --category-color: #6d4bc1; --category-soft: #f1edfc; }
.teacher-content-category-media { --category-color: #c45b27; --category-soft: #fff1e8; }
.teacher-content-category-card {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto auto auto 1fr auto;
  gap: 8px;
  min-height: 300px;
  padding: 22px;
  border: 1px solid color-mix(in srgb, var(--category-color) 24%, white);
  border-radius: 22px;
  background: linear-gradient(145deg, #fff 8%, var(--category-soft) 100%);
  box-shadow: 0 12px 28px rgba(28, 52, 55, .08);
  color: #1d3437;
  text-decoration: none;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.teacher-content-category-card::after {
  content: "";
  position: absolute;
  right: -38px;
  bottom: -55px;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--category-color) 10%, transparent);
}
.teacher-content-category-card:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--category-color) 52%, white);
  box-shadow: 0 18px 34px rgba(28, 52, 55, .14);
}
.teacher-content-category-card:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--category-color) 70%, white);
  outline-offset: 3px;
}
.teacher-content-category-icon {
  display: grid;
  place-items: center;
  width: 108px;
  height: 108px;
  margin-bottom: 5px;
  border-radius: 28px;
  background: rgba(255, 255, 255, .78);
  color: var(--category-color);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7);
}
.teacher-content-category-icon svg { width: 82px; height: 82px; }
.teacher-content-category-card > span {
  color: var(--category-color);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.teacher-content-category-card > strong {
  font-size: clamp(22px, 2.4vw, 29px);
  line-height: 1.12;
}
.teacher-content-category-card > small {
  color: #53676a;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.45;
}
.teacher-content-category-card > b {
  position: relative;
  z-index: 1;
  color: var(--category-color);
  font-size: 15px;
}
.teacher-content-back {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 44px;
  padding: 0 4px;
  color: #176b73;
  font-weight: 850;
  text-decoration: none;
}
.teacher-content-category-heading {
  display: flex;
  gap: 18px;
  align-items: center;
  padding: 18px 22px;
  border: 1px solid color-mix(in srgb, var(--category-color) 24%, white);
  border-radius: 20px;
  background: linear-gradient(135deg, #fff, var(--category-soft));
}
.teacher-content-category-heading .teacher-content-category-icon {
  flex: 0 0 86px;
  width: 86px;
  height: 86px;
  margin: 0;
  border-radius: 22px;
}
.teacher-content-category-heading .teacher-content-category-icon svg { width: 66px; height: 66px; }
.teacher-content-category-heading h2 { margin: 3px 0; color: #173f45; font-size: 28px; }
.teacher-content-category-heading p { margin: 0; color: #53676a; font-weight: 650; }
.teacher-content-file-grid { display: grid; gap: 12px; }
.teacher-content-file-card {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) minmax(180px, auto);
  gap: 16px;
  align-items: center;
  padding: 16px;
  border: 1px solid #d5e1df;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(28, 52, 55, .06);
}
.teacher-content-file-card-image {
  grid-template-columns: 70px minmax(0, 1fr) minmax(180px, auto);
}
.teacher-content-image-preview {
  position: relative;
  grid-column: 1 / -1;
  display: grid;
  place-items: center;
  min-height: 280px;
  max-height: 620px;
  overflow: hidden;
  border: 1px solid #d6e4e1;
  border-radius: 15px;
  background: #f1f7f6;
  cursor: zoom-in;
}
.teacher-content-image-preview img {
  display: block;
  width: 100%;
  max-height: 620px;
  object-fit: contain;
}
.teacher-content-image-preview span {
  position: absolute;
  right: 12px;
  bottom: 12px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(17, 55, 60, .88);
  color: #fff;
  font-size: 12px;
  font-weight: 850;
  box-shadow: 0 5px 14px rgba(11, 42, 46, .2);
}
.teacher-content-image-preview:focus-visible {
  outline: 3px solid #e99549;
  outline-offset: 3px;
}
.teacher-content-file-type {
  display: grid;
  place-items: center;
  width: 70px;
  height: 70px;
  border-radius: 18px;
  background: #eef7f5;
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.teacher-content-file-copy { min-width: 0; }
.teacher-content-file-copy h3 { margin: 0; color: #173f45; font-size: 19px; }
.teacher-content-file-copy p { margin: 4px 0; color: #526669; font-weight: 700; }
.teacher-content-file-copy small { color: #68797c; overflow-wrap: anywhere; }
.teacher-content-file-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.teacher-content-file-actions .button-link { min-width: 130px; }
.teacher-content-file-actions .teacher-content-view-action {
  border-color: #c6d8d6;
  background: #f5faf9;
  color: #176b73;
}

/* Visual library for class-content categories and practices. */
.content-library-intro { display: grid; gap: 5px; margin-bottom: 18px; }
.content-library-intro span,
.content-library-hero span,
.content-library-practice-card > span {
  color: #176b73;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.content-library-intro h2 { margin: 0; color: #173f45; font-size: clamp(25px, 3vw, 34px); }
.content-library-category-grid,
.content-library-practice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 17px;
}
.content-library-category-card,
.content-library-practice-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 8px;
  min-height: 250px;
  padding: 22px;
  border: 1px solid #c8dcda;
  border-radius: 21px;
  background:
    radial-gradient(circle at 100% 0%, rgba(232, 157, 91, .22), transparent 34%),
    linear-gradient(135deg, #fff 0%, #eaf7f5 100%);
  color: #173f45;
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(22, 61, 65, .08);
  transition: transform .18s ease, box-shadow .18s ease;
}
.content-library-category-card:hover,
.content-library-category-card:focus-visible,
.content-library-practice-card:hover,
.content-library-practice-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 17px 34px rgba(22, 61, 65, .13);
  outline: none;
}
.content-library-icon {
  display: grid;
  place-items: center;
  width: 86px;
  height: 86px;
  border-radius: 23px;
  overflow: hidden;
  background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(225,244,241,.9));
  color: #176b73;
  box-shadow: inset 0 0 0 1px rgba(23, 107, 115, .1);
}
.content-library-icon svg { width: 67px; height: 67px; }
.content-library-category-card > span { color: #176b73; font-size: 12px; font-weight: 900; }
.content-library-category-card > strong,
.content-library-practice-card > strong { font-size: 23px; line-height: 1.15; }
.content-library-category-card > small,
.content-library-practice-card > small { color: #53676a; font-size: 14px; line-height: 1.4; }
.content-library-category-card > b,
.content-library-practice-card > b { align-self: end; color: #176b73; font-size: 14px; }
.content-library-hero {
  display: flex;
  gap: 18px;
  align-items: center;
  margin: 16px 0 20px;
  padding: 20px 23px;
  border: 1px solid #c8dcda;
  border-radius: 21px;
  background:
    radial-gradient(circle at 94% 8%, rgba(232, 157, 91, .25), transparent 30%),
    linear-gradient(135deg, #fff 0%, #e8f7f4 100%);
  box-shadow: 0 13px 29px rgba(22, 61, 65, .09);
}
.content-library-hero h2 { margin: 4px 0; color: #173f45; font-size: clamp(27px, 4vw, 38px); }
.content-library-hero p { margin: 0; color: #53676a; font-weight: 750; }
.content-library-practice-card { min-height: 210px; }
.teacher-professor-preview-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  border-color: #e8bd70;
  background: linear-gradient(135deg, #fff9e8, #f2fbf9);
}
.teacher-professor-preview-banner > div:first-child { display: grid; gap: 3px; }
.teacher-professor-preview-banner strong { color: #173f45; font-size: 18px; }
.teacher-professor-preview-banner span { color: #53676a; }

@media (max-width: 900px) {
  .app-shell { grid-template-rows: auto 1fr; align-content: start; }
  .content-library-category-grid,
  .content-library-practice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .teacher-content-hero { grid-template-columns: 1fr; }
  .teacher-content-hero-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; }
  .teacher-content-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .teacher-content-category-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .teacher-content-file-card { grid-template-columns: 64px minmax(0, 1fr); }
  .teacher-content-file-card-image { grid-template-columns: 64px minmax(0, 1fr); }
  .teacher-content-file-actions { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .teacher-professor-preview-banner { align-items: stretch; flex-direction: column; }
  .teacher-professor-preview-banner .button-link { width: 100%; min-height: 48px; }
  .teacher-content-detail-shell { gap: 16px; }
  .teacher-content-hero { gap: 18px; padding: 20px 18px; border-radius: 18px; }
  .teacher-content-hero p { font-size: 14px; }
  .teacher-content-hero-actions { grid-template-columns: 1fr; }
  .teacher-content-hero-actions .button-link,
  .teacher-content-hero-actions .table-action { width: 100%; min-height: 52px; }
  .teacher-content-footer-actions .button-link { width: 100%; min-height: 52px; }
  .teacher-content-category-grid { grid-template-columns: 1fr; gap: 13px; }
  .content-library-category-grid,
  .content-library-practice-grid { grid-template-columns: 1fr; gap: 13px; }
  .content-library-category-card,
  .content-library-practice-card {
    grid-template-columns: 76px minmax(0, 1fr);
    min-height: 0;
    padding: 16px;
    border-radius: 18px;
  }
  .content-library-category-card .content-library-icon {
    grid-column: 1;
    grid-row: 1 / span 5;
    width: 76px;
    height: 76px;
    border-radius: 19px;
  }
  .content-library-category-card .content-library-icon svg { width: 57px; height: 57px; }
  .content-library-category-card > span,
  .content-library-category-card > strong,
  .content-library-category-card > small,
  .content-library-category-card > b { grid-column: 2; }
  .content-library-category-card > strong,
  .content-library-practice-card > strong { font-size: 20px; }
  .content-library-practice-card { grid-template-columns: 1fr; }
  .content-library-hero { align-items: flex-start; padding: 16px; border-radius: 18px; }
  .content-library-hero .content-library-icon { flex: 0 0 68px; width: 68px; height: 68px; border-radius: 18px; }
  .content-library-hero .content-library-icon svg { width: 51px; height: 51px; }
  .teacher-content-material-grid { grid-template-columns: 1fr; }
  .teacher-content-materials-heading { padding: 18px; border-radius: 17px; }
  .teacher-content-material-card { grid-template-columns: 54px minmax(0, 1fr); padding: 14px; }
  .teacher-content-material-mark { width: 54px; height: 54px; border-radius: 14px; }
  .teacher-content-material-mark svg { width: 44px; height: 44px; }
  .teacher-content-material-calculation { grid-column: 1 / -1; justify-items: start; padding: 10px 12px; border-radius: 12px; background: #f0f7f6; }
  .teacher-content-category-card,
  .teacher-content-category-card:last-child:nth-child(odd) {
    grid-column: auto;
    grid-template-columns: 88px minmax(0, 1fr);
    grid-template-rows: auto auto auto auto;
    gap: 3px 14px;
    min-height: 0;
    padding: 17px;
    border-radius: 18px;
  }
  .teacher-content-category-card .teacher-content-category-icon {
    grid-column: 1;
    grid-row: 1 / span 4;
    width: 88px;
    height: 88px;
    margin: 0;
    border-radius: 22px;
  }
  .teacher-content-category-card .teacher-content-category-icon svg { width: 66px; height: 66px; }
  .teacher-content-category-card > span,
  .teacher-content-category-card > strong,
  .teacher-content-category-card > small,
  .teacher-content-category-card > b { grid-column: 2; }
  .teacher-content-category-card > strong { font-size: 21px; }
  .teacher-content-category-card > small { font-size: 13px; }
  .teacher-content-category-card > b { margin-top: 4px; font-size: 13px; }
  .teacher-content-category-heading { align-items: flex-start; padding: 15px; border-radius: 17px; }
  .teacher-content-category-heading .teacher-content-category-icon { flex-basis: 70px; width: 70px; height: 70px; border-radius: 18px; }
  .teacher-content-category-heading .teacher-content-category-icon svg { width: 54px; height: 54px; }
  .teacher-content-category-heading h2 { font-size: 23px; }
  .teacher-content-file-card { grid-template-columns: 54px minmax(0, 1fr); gap: 12px; padding: 14px; border-radius: 16px; }
  .teacher-content-file-card-image { grid-template-columns: 54px minmax(0, 1fr); }
  .teacher-content-image-preview {
    min-height: 180px;
    max-height: none;
    margin: -2px -2px 2px;
    border-radius: 13px;
  }
  .teacher-content-image-preview img { max-height: none; }
  .teacher-content-image-preview span { right: 9px; bottom: 9px; padding: 7px 10px; }
  .teacher-content-file-type { width: 54px; height: 54px; border-radius: 14px; font-size: 10px; }
  .teacher-content-file-copy h3 { font-size: 17px; }
  .teacher-content-file-actions { grid-template-columns: 1fr; }
  .teacher-content-file-actions .button-link { width: 100%; min-width: 0; min-height: 50px; }
}
