:root {
  --blue: #1f4e79;
  --blue-dark: #173d61;
  --green: #4caf50;
  --green-dark: #267a3b;
  --yellow: #f4c430;
  --white: #ffffff;
  --background: #eef3f7;
  --text: #243447;
  --muted: #65788a;
  --border: #d4e0e9;
}

/* Excepciones institucionales de acceso a Prematrícula */
.pre-access-exceptions {
  max-width: 1080px;
  margin-inline: auto;
}
.pre-access-exception-scope {
  margin: 0 0 20px;
  padding: 14px 16px;
  border-left: 4px solid var(--brand-blue, #1856a8);
  border-radius: 8px;
  background: #f2f7fd;
  color: #24364b;
}
.pre-access-exception-scope p { margin: 4px 0 0; }
.pre-access-campaign {
  margin-bottom: 10px;
  font-weight: 700;
  color: #20354d;
}
#pre-access-exceptions-refresh {
  display: inline-flex;
  width: auto;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 6px 10px;
  border: 0;
  background: transparent;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
}
#pre-access-exceptions-refresh:hover:not(:disabled) { background: #edf5fc; }
#pre-access-exception-metrics {
  display: inline-flex;
  width: auto;
  gap: 0;
  margin: 8px 0 14px;
  overflow: hidden;
  border: 1px solid #d6e1ea;
  border-radius: 9px;
  background: #f8fafc;
}
#pre-access-exception-metrics .admin-metric {
  display: flex;
  min-width: 150px;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
}
#pre-access-exception-metrics .admin-metric + .admin-metric { border-left: 1px solid #d6e1ea; }
#pre-access-exception-metrics .admin-metric span { font-size: 11px; }
#pre-access-exception-metrics .admin-metric strong { margin: 0; font-size: 18px; line-height: 1; }
.pre-access-exception-list {
  display: grid;
  gap: 16px;
  margin-top: 20px;
}
.pre-access-exception-card {
  padding: 20px;
  border: 1px solid #d8e2ec;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(25, 49, 78, .06);
}
.pre-access-exception-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.pre-access-exception-identity h2 { margin: 0; font-size: 1.1rem; }
.pre-access-exception-identity p,
.pre-access-exception-guidance { margin: 6px 0 0; color: #52657a; }
.pre-access-exception-status {
  flex: 0 0 auto;
  padding: 5px 10px;
  border-radius: 999px;
  background: #eef3f8;
  color: #334a63;
  font-size: .82rem;
  font-weight: 700;
}
.state-uncovered .pre-access-exception-status { background: #fff1d7; color: #704b00; }
.state-active .pre-access-exception-status { background: #e5f0ff; color: #174f90; }
.state-regularized .pre-access-exception-status { background: #e5f5ec; color: #17623c; }
.pre-access-exception-action {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}
.pre-access-exception-action button {
  width: auto;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 6px 12px;
  border-color: #b9ccdc;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
}
.pre-access-exception-close-action {
  display: inline-flex;
  width: auto;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 6px 10px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--blue);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}
.pre-access-exception-close-action:hover { background: #edf5fc; }
.pre-access-exception-dialog { width: min(94vw, 640px); }
.pre-access-exception-dialog-form { display: grid; gap: 16px; margin-top: 16px; }
.pre-access-exception-reason,
.pre-access-exception-dialog-note {
  display: grid;
  gap: 4px;
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 8px;
}
.pre-access-exception-reason { background: #f2f5f8; }
.pre-access-exception-reason span { color: #52657a; font-size: .8rem; font-weight: 700; text-transform: uppercase; }
.pre-access-exception-dialog-note { border-left: 4px solid #f4bb3a; background: #fff8e5; color: #35485d; }
.pre-access-exception-confirmation-copy {
  margin: 0;
  color: #35485d;
  font-size: 13px;
  line-height: 1.5;
}
.pre-access-exception-justification { display: grid; gap: 6px; font-weight: 700; }
.pre-access-exception-justification textarea { resize: vertical; min-height: 82px; }
.pre-access-exception-dialog button,
#pre-access-exceptions-refresh { min-height: 44px; }
.pre-access-exception-dialog .continuity-confirmation-actions { justify-content: flex-end; }
.pre-access-exception-dialog .continuity-confirmation-actions button {
  width: auto;
  min-width: 44px;
  margin: 0;
  padding: 8px 14px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
}
.pre-access-exception-dialog .continuity-confirmation-actions .button-secondary {
  border-color: transparent;
  background: transparent;
}
.pre-access-exception-empty {
  margin: 0;
  padding: 22px;
  border: 1px dashed #c8d4e0;
  border-radius: 10px;
  color: #52657a;
  text-align: center;
}
.pre-access-exception-action :focus-visible,
.pre-access-exception-dialog :focus-visible,
#pre-access-exceptions-refresh:focus-visible {
  outline: 3px solid #f4bb3a;
  outline-offset: 2px;
}
@media (max-width: 640px) {
  .pre-access-exception-card { padding: 16px; }
  .pre-access-exception-card-header { grid-template-columns: 1fr; flex-direction: column; }
  .pre-access-exception-status { align-self: flex-start; }
  #pre-access-exception-metrics { display: grid; width: 100%; }
  #pre-access-exception-metrics .admin-metric { min-width: 0; }
  #pre-access-exception-metrics .admin-metric + .admin-metric { border-top: 1px solid #d6e1ea; border-left: 0; }
  .pre-access-exception-dialog .continuity-confirmation-actions { flex-direction: row; }
  .pre-access-exception-dialog .continuity-confirmation-actions button { width: auto; min-width: 44px; }
}

* { box-sizing: border-box; }

html, body { margin: 0; min-height: 100%; }

body {
  min-width: 320px;
  background: var(--background);
  color: var(--text);
  font-family: "Documenta DTL", "DocumentaDtl", Arial, Helvetica, sans-serif;
}

.institutional-stripe {
  width: 100%;
  height: 8px;
  background: linear-gradient(
    90deg,
    var(--blue) 0 48%,
    var(--green) 48% 83%,
    var(--yellow) 83% 100%
  );
}

.institutional-stripe-bottom { margin-top: 22px; }

.page-shell {
  width: min(620px, calc(100% - 28px));
  margin: 0 auto;
  padding: 22px 0 10px;
}

.institutional-header {
  min-height: 170px;
  padding: 5px 10px 18px;
  text-align: center;
}

.portal-shield {
  display: block;
  width: 88px;
  height: 88px;
  margin: 0 auto 8px;
  object-fit: contain;
}

.brand-name {
  color: var(--blue);
  font-family: "Bebas Neue", "BebasNeue", Arial, sans-serif;
  font-size: clamp(25px, 5vw, 31px);
  font-weight: 700;
  letter-spacing: .7px;
  line-height: 1.05;
}

.brand-module {
  margin-top: 5px;
  color: var(--green-dark);
  font-size: 15px;
  font-weight: 800;
}

.card {
  overflow: hidden;
  padding: 24px 26px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--white);
  box-shadow: 0 14px 34px rgba(31, 78, 121, .12);
}

.card-title {
  color: var(--blue);
  font-family: "Bebas Neue", "BebasNeue", Arial, sans-serif;
  font-size: 29px;
  font-weight: 700;
  letter-spacing: .5px;
  line-height: 1.1;
  text-align: center;
}

h1 {
  margin: 4px 0 18px;
  color: var(--blue);
  font-family: "Bebas Neue", "BebasNeue", Arial, sans-serif;
  font-size: clamp(23px, 4vw, 28px);
  font-weight: 700;
  letter-spacing: .3px;
  line-height: 1.12;
  text-align: center;
}

.access-audience {
  max-width: 520px;
  margin: -6px auto 18px;
  color: var(--text);
  font-size: 14px;
  line-height: 1.45;
}

.field-group {
  max-width: 520px;
  margin: 10px auto 14px;
}

.input {
  width: 100%;
  min-height: 41px;
  padding: 10px 12px;
  border: 1px solid #b8c8d5;
  border-radius: 8px;
  outline: none;
  background: var(--white);
  color: var(--text);
  font: 14px "Documenta DTL", "DocumentaDtl", Arial, Helvetica, sans-serif;
}

.input::placeholder { color: #718096; opacity: 1; }
.input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(31, 78, 121, .13); }

.password-input-wrap { position: relative; }
.password-input { padding-right: 72px; }

.password-toggle {
  position: absolute;
  top: 50%;
  right: 10px;
  min-width: 48px;
  padding: 6px 7px;
  transform: translateY(-50%);
  border: 0;
  border-radius: 6px;
  background: #edf3f8;
  color: var(--blue);
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

.password-toggle:hover,
.password-toggle:focus-visible { background: #dce9f3; outline: 2px solid rgba(31, 78, 121, .2); }

#family-password-create-area .password-input-wrap { margin: 6px 0 12px; }

#family-password-verify { margin-top: 14px; }

.otp-code-label {
  margin-top: 16px;
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
  text-align: center;
}

.otp-code-group {
  display: grid;
  grid-template-columns: repeat(5, 52px);
  justify-content: center;
  gap: 10px;
  width: 100%;
  margin-top: 9px;
}

.otp-digit-input {
  width: 52px;
  height: 58px;
  padding: 0;
  border: 2px solid #9eb6c9;
  border-radius: 9px;
  outline: none;
  background: var(--white);
  color: var(--blue);
  font: 700 27px/1 "Documenta DTL", "DocumentaDtl", Arial, Helvetica, sans-serif;
  text-align: center;
  caret-color: var(--blue);
}

.otp-digit-input:focus-visible {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(31, 78, 121, .18);
}

.otp-code-group[data-state="error"] .otp-digit-input {
  border-color: #b83b32;
}

.otp-code-group[data-state="validated"] .otp-digit-input {
  border-color: var(--green-dark);
  background: #f3faf5;
}

.button-primary {
  display: block;
  min-width: 162px;
  min-height: 38px;
  margin: 0 auto;
  padding: 9px 18px;
  border: 0;
  border-radius: 8px;
  background: var(--blue);
  color: var(--white);
  font-family: "Bebas Neue", "BebasNeue", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .5px;
}

.button-primary.otp-verify-button { margin: 14px auto 16px; }

.button-primary { cursor: pointer; }
.button-primary:hover:not(:disabled) { background: var(--blue-dark); transform: translateY(-1px); }
.button-primary:disabled { cursor: wait; opacity: .68; }

.session-note {
  margin-top: 15px;
  padding: 11px 12px;
  border-radius: 8px;
  background: #f5f8fb;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}

.hidden { display: none !important; }

.message {
  margin-top: 14px;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.45;
}

.message.error { border: 1px solid #edc8c5; background: #fff3f2; color: #8b2520; }
.message.success { border: 1px solid #bcdcc5; background: #edf8f0; color: var(--green-dark); }

.family-home-card { text-align: left; }

.family-welcome-title {
  overflow: visible;
  margin-bottom: 18px;
  font-family: "Documenta DTL", "DocumentaDtl", Arial, Helvetica, sans-serif;
  font-size: clamp(10px, 3.05vw, 19px);
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.2;
  white-space: nowrap;
}

.portal-session-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-bottom: 8px;
}

.portal-session-toolbar .success-badge { margin-bottom: 0; }

.portal-session-actions26332 {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.logout-button {
  padding: 7px 11px;
  border: 1px solid #b9cce0;
  border-radius: 7px;
  background: #fff;
  color: var(--blue);
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.logout-button:hover { border-color: var(--blue); background: #edf5fc; }

.family-home-intro { text-align: left; }

.family-section-title {
  margin: 0 0 10px;
  color: var(--blue);
  font-family: "Bebas Neue", "BebasNeue", Arial, sans-serif;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .35px;
}

.family-home-status {
  margin: -2px 0 10px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.family-students {
  display: grid;
  gap: 10px;
}

.family-student-card {
  padding: 14px;
  border: 1px solid #c7d8e7;
  border-left: 5px solid var(--green);
  border-radius: 8px;
  background: var(--white);
}

.family-student-label {
  display: block;
  margin-bottom: 3px;
  color: #5e7487;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .7px;
  text-transform: uppercase;
}

.family-student-name,
.family-student-course {
  display: block;
  color: var(--blue);
  font-size: 16px;
  font-weight: 800;
}

.family-student-name { text-transform: uppercase; }
.family-course-label { margin-top: 9px; }
.family-student-course { margin-top: 1px; }

.family-services-title { margin-top: 24px; }

.family-services {
  display: grid;
  gap: 10px;
}

.family-service-card {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #c7d8e7;
  border-radius: 9px;
  background: #f8fbfd;
}

.family-service-button {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.family-service-button:hover:not(:disabled),
.family-service-button:focus-visible {
  border-color: var(--blue);
  background: #edf5fc;
  outline: 2px solid rgba(31, 78, 121, .14);
}

.family-service-button:disabled { cursor: wait; opacity: .72; }

.family-service-button.is-disabled:disabled { cursor: not-allowed; }
.family-service-button.is-upcoming .family-service-status { background: #fff5d9; color: #765a16; }
.family-service-button.is-closed .family-service-status,
.family-service-button.is-not-applicable .family-service-status { background: #eef2f5; color: #536975; }

.family-service-card.is-disabled {
  color: #718096;
  background: #fafafa;
  opacity: .82;
}

.family-service-icon { font-size: 22px; text-align: center; }
.family-service-copy strong { display: block; color: var(--blue); font-size: 14px; }
.family-service-copy span { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }

.family-service-status {
  padding: 5px 8px;
  border-radius: 999px;
  background: #edf8f0;
  color: var(--green-dark);
  font-size: 8px;
  font-weight: 800;
  white-space: nowrap;
}

.family-security-note {
  margin-top: 18px;
  padding: 11px 12px;
  border-radius: 8px;
  background: #f5f8fb;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}

.family-security-note span { display: block; margin-top: 2px; }

.family-meeting-card { text-align: left; }
.family-continuity-card { padding: 18px 20px; text-align: left; }
.family-continuity-card > .back-navigation { margin-bottom: 10px; }
.family-continuity-card .meeting-title { margin-bottom: 2px; }
.family-continuity-card .meeting-intro { margin-bottom: 6px; line-height: 1.4; }
.continuity-dates,
.continuity-preview-note {
  margin: 6px 0 8px;
  padding: 7px 10px;
  border-radius: 8px;
  background: #f5f8fb;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}
.continuity-preview-note {
  border-left: 4px solid #e8b62f;
  background: #fff8e7;
  color: #765a16;
  font-weight: 800;
}
.continuity-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0;
}
.continuity-summary > div {
  padding: 11px 12px;
  border: 1px solid #d3e0eb;
  border-radius: 9px;
  background: #f7fafc;
}
.continuity-summary span { display: block; color: var(--muted); font-size: 10px; font-weight: 700; }
.continuity-summary strong { display: block; margin-top: 4px; color: var(--blue); font-size: 20px; }
.continuity-students { display: grid; gap: 8px; margin-top: 8px; }
.continuity-student-card {
  padding: 11px 13px;
  border: 1px solid #c7d8e7;
  border-left: 5px solid var(--green);
  border-radius: 9px;
  background: #fff;
}
.continuity-student-card.is-not-applicable { border-left-color: #8394a2; }
.continuity-student-card.is-restricted { border-left-color: #d4a72c; }
.continuity-student-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 14px; }
.continuity-student-heading strong { min-width: 0; color: var(--blue); font-size: 15px; line-height: 1.3; }
.continuity-student-state {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 999px;
  background: #edf8f0;
  color: var(--green-dark);
  font-size: 8px;
  font-weight: 900;
}
.is-not-applicable .continuity-student-state { background: #eef2f5; color: #536975; }
.is-restricted .continuity-student-state { background: #fff5d9; color: #765a16; }
.continuity-student-current { display: flex; min-width: 0; flex: 1 1 150px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.continuity-student-message { margin: 7px 0 0; color: var(--text); font-size: 12px; line-height: 1.4; }
.continuity-response-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  margin-top: 7px;
}
.continuity-question,
.continuity-recorded-decision {
  margin: 0;
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
}
.continuity-question { width: 100%; min-width: 0; overflow-wrap: break-word; }
.continuity-decision-time {
  margin: 0;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}
.continuity-decision-actions {
  display: flex;
  min-width: 0;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 6px;
  margin-top: 0;
}
.continuity-decision-button { flex: 0 1 auto; width: auto; min-width: 150px; min-height: 44px; margin: 0; padding-inline: 14px; white-space: nowrap; }
.continuity-recorded-summary { display: flex; min-width: 0; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; }
.continuity-change-button { min-height: 44px; margin: 2px 0 0; justify-self: center; }
.continuity-student-card > .message { margin-top: 6px; padding: 6px 8px; font-size: 10px; line-height: 1.35; }
.continuity-confirmation {
  width: min(92vw, 600px);
  max-height: calc(100dvh - 32px);
  padding: 0;
  border: 0;
  border-radius: 14px;
  color: var(--text);
  box-shadow: 0 24px 70px rgba(24, 61, 94, .28);
}
.continuity-confirmation::backdrop { background: rgba(18, 44, 68, .55); }
.continuity-confirmation-card { padding: 24px; }
.continuity-confirmation-card h2 { margin: 0 0 12px; color: var(--blue); }
.continuity-confirmation-card > p { margin: 0; font-size: 14px; line-height: 1.65; }
.continuity-confirmation-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 22px;
}
.continuity-confirmation-actions button { margin: 0; }
.continuity-noncontinuation-dialog { width: min(94vw, 720px); }
.continuity-noncontinuation-card {
  max-height: calc(100dvh - 32px);
  padding: 18px 20px;
  overflow-y: auto;
}
.continuity-noncontinuation-card .module-kicker { margin-bottom: 2px; }
.continuity-noncontinuation-card h2 {
  margin-bottom: 6px;
  font-size: clamp(20px, 3.2vw, 24px);
  line-height: 1.15;
}
.continuity-noncontinuation-card > p { font-size: 13px; line-height: 1.45; }
.continuity-noncontinuation-progress {
  margin: 3px 0 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}
.continuity-preview-step-title { margin: 0; color: var(--blue); font-size: 15px; line-height: 1.35; }
.continuity-preview-step-question { margin: 0; font-size: 13px; line-height: 1.45; }
.continuity-noncontinuation-content { display: grid; gap: 10px; margin-top: 12px; }
.continuity-preview-callout {
  padding: 9px 11px;
  border-left: 4px solid var(--green);
  border-radius: 8px;
  background: #f2f9f3;
  color: var(--text);
  font-size: 12px;
  line-height: 1.45;
}
.continuity-preview-callout.is-warning { border-left-color: #e3ad23; background: #fff8e7; }
.continuity-preview-callout strong { display: block; margin-bottom: 4px; color: var(--blue); }
.continuity-convenio-critical {
  display: grid;
  gap: 4px;
  padding: 11px 12px;
  border-left: 4px solid #e3ad23;
  border-radius: 8px;
  background: #fff8e7;
  overflow-wrap: anywhere;
}
.continuity-convenio-critical strong { color: var(--blue); font-size: 13px; line-height: 1.4; }
.continuity-convenio-critical span { color: var(--muted); font-size: 11px; line-height: 1.4; }
.continuity-convenio-introduction { margin: 0; color: var(--text); font-size: 12px; font-weight: 700; line-height: 1.45; }
.continuity-convenio-points { display: grid; gap: 8px; margin: 0; padding-left: 24px; color: var(--text); font-size: 12px; line-height: 1.45; }
.continuity-convenio-points li { padding-left: 3px; overflow-wrap: anywhere; }
.continuity-preview-links {
  display: grid;
  gap: 8px;
  align-items: start;
}
.continuity-preview-official-link {
  display: inline-block;
  margin-top: 0;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.continuity-preview-options { display: grid; gap: 6px; }
.continuity-preview-option {
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid #bfd1e1;
  border-radius: 9px;
  background: #fff;
  color: var(--blue);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
  cursor: pointer;
  touch-action: manipulation;
}
.continuity-preview-option:hover,
.continuity-preview-option:focus-visible,
.continuity-preview-option.is-selected {
  border-color: var(--green);
  box-shadow: inset 4px 0 var(--green);
}
.continuity-preview-destination-fields { display: grid; gap: 10px; }
.continuity-preview-field { display: grid; gap: 4px; }
.continuity-preview-field .input { min-height: 44px; padding: 8px 10px; }
.continuity-preview-field label,
.continuity-preview-question { margin: 0; color: var(--blue); font-size: 13px; font-weight: 800; line-height: 1.5; }
.continuity-preview-help,
.continuity-preview-counter { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.continuity-preview-counter { text-align: right; }
.continuity-preview-textarea { min-height: 84px; resize: vertical; }
.continuity-preview-summary { display: grid; gap: 8px; margin: 0; }
.continuity-preview-summary div { padding: 10px 12px; border-radius: 8px; background: #f5f8fb; }
.continuity-preview-summary dt { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.continuity-preview-summary dd { margin: 4px 0 0; color: var(--blue); font-size: 12px; font-weight: 700; line-height: 1.45; overflow-wrap: anywhere; }
.continuity-preview-acknowledgment { display: flex; min-height: 44px; align-items: center; gap: 9px; padding: 3px 0; color: var(--text); font-size: 12px; line-height: 1.45; }
.continuity-preview-acknowledgment input { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; }
.continuity-preview-detail-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 8px; border-radius: 7px; background: #edf8f0; }
.continuity-preview-detail-status { margin: 0; color: var(--green-dark); font-size: 11px; font-weight: 800; line-height: 1.35; }
.continuity-preview-detail-button { flex: 0 0 auto; min-height: 44px; margin: 0; }
.continuity-no-closure { display: grid; gap: 5px; padding: 14px; border-radius: 9px; background: #edf8f0; }
.continuity-no-closure h3, .continuity-no-detail-heading { margin: 0; color: var(--blue); font-size: 16px; }
.continuity-no-closure p { margin: 0; line-height: 1.5; overflow-wrap: anywhere; }
.continuity-no-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.continuity-no-actions button { margin: 0; min-height: 44px; }
.continuity-access-message { display: grid; gap: 3px; margin: 2px 0; padding: 9px 11px; border-left: 3px solid #d4a72c; border-radius: 7px; background: #fff8e7; color: var(--text); font-size: 12px; line-height: 1.45; }
.continuity-shared-detail { margin-top: 2px; }
.continuity-preview-actors { display: grid; gap: 7px; padding: 9px 11px; border: 1px dashed #6f89a1; border-radius: 8px; background: #f5f8fb; color: var(--blue); font-size: 11px; }
.continuity-preview-actors > div { display: flex; flex-wrap: wrap; gap: 7px; }
.continuity-preview-actors .selected { outline: 2px solid var(--green); }


.continuity-noncontinuation-actions { margin-top: 14px; }

@media (min-width: 900px), (min-width: 700px) and (orientation: landscape) {
  .continuity-preview-reason-options,
  .continuity-preview-destination-options,
  .continuity-preview-sector-options,
  .continuity-preview-destination-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.back-navigation {
  display: inline-flex;
  align-items: center;
  margin-bottom: 16px;
  padding: 8px 11px;
  border: 1px solid #b9cce0;
  border-radius: 8px;
  background: #f8fbff;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.back-navigation:hover { border-color: var(--blue); background: #edf5fc; }
.module-kicker { margin-bottom: 6px; color: var(--green-dark); font-size: 10px; font-weight: 900; letter-spacing: 1px; }
.meeting-title { margin-bottom: 4px; text-align: left; }
.meeting-date { margin-bottom: 11px; color: var(--green-dark); font-size: 13px; font-weight: 900; }
.meeting-intro { margin: 0 0 10px; color: var(--muted); font-size: 13px; line-height: 1.5; }

.meeting-availability {
  margin: 10px 0 18px;
  padding: 10px 12px;
  border-left: 4px solid #9aa8b2;
  border-radius: 9px;
  background: #f2f5f7;
  color: #536975;
  font-size: 11px;
  line-height: 1.45;
}

.meeting-availability.is-open { border-left-color: #49b85d; background: #eef8f0; color: #236a35; }
.meeting-availability.is-upcoming { border-left-color: #e8b62f; background: #fff8e7; color: #765a16; }
.family-inquiry-form { display: grid; gap: 6px; }
.family-inquiry-form > label,
.family-inquiry-label {
  color: var(--blue);
  font-size: 13px;
  font-weight: 800;
}

.family-inquiry-type-group { margin-top: 12px; }
.family-inquiry-types {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-top: 6px;
}

.family-inquiry-type-option {
  min-height: 96px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--white);
  cursor: pointer;
  text-align: left;
}

.family-inquiry-type-option:hover { border-color: #9db7d2; }
.family-inquiry-type-option.selected {
  border-color: var(--blue);
  background: #edf5fc;
  box-shadow: 0 0 0 2px rgba(31, 78, 121, .06);
}

.family-inquiry-type-title { color: var(--blue); font-size: 13px; font-weight: 900; }
.family-inquiry-type-description { margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.family-field-help { margin: -1px 0 7px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.required-mark { color: #b42318; }
.family-inquiry-text { min-height: 120px; resize: vertical; }
.family-textarea-help { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.family-inquiry-counter { white-space: nowrap; }

.meeting-scope-warning {
  margin: 14px 0 4px;
  padding: 11px 12px;
  border-left: 4px solid #e3ae21;
  border-radius: 9px;
  background: #fff8e6;
  color: #66511a;
  font-size: 10px;
  line-height: 1.55;
}

.particular-note { margin-top: 8px; padding: 11px 12px; border: 1px solid #f0d979; border-radius: 8px; background: #fff9e5; color: #634f08; font-size: 11px; line-height: 1.45; }
.family-migration-disclosure { margin: 8px 0 2px; padding: 10px 12px; border-radius: 8px; background: #f2f5f7; color: #5f7486; font-size: 10px; line-height: 1.45; }

.button-secondary {
  display: block;
  min-height: 38px;
  margin: 10px auto 0;
  padding: 9px 18px;
  border: 1.5px solid var(--blue);
  border-radius: 8px;
  background: var(--white);
  color: var(--blue);
  font-family: "Bebas Neue", "BebasNeue", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .5px;
  cursor: pointer;
}

.button-secondary:hover:not(:disabled) { background: #edf5fc; }
.button-compact { width: auto; min-width: 170px; }
.family-inquiry-success { padding-top: 8px; text-align: center; }
.family-inquiry-success h2 { margin: 0 0 6px; color: var(--blue); }
.family-inquiry-success p { color: var(--muted); font-size: 12px; line-height: 1.5; }
.success-circle { display: flex; align-items: center; justify-content: center; width: 58px; height: 58px; margin: 0 auto 14px; border-radius: 50%; background: #eef8f0; color: var(--green-dark); font-size: 29px; font-weight: 900; }
.radicado-card { margin: 18px auto 12px; padding: 14px; border: 1px solid #c7d8e7; border-radius: 9px; background: #f8fbfd; }
.radicado-label { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .7px; }
.radicado-number { margin-top: 5px; color: var(--blue); font-size: 21px; font-weight: 900; letter-spacing: .5px; }
.success-help { margin-bottom: 12px; }

@media (max-width: 560px) {
  .family-inquiry-types { grid-template-columns: 1fr; }
  .family-inquiry-type-option { min-height: auto; }
  .family-textarea-help { flex-direction: column; }
  .continuity-summary { grid-template-columns: 1fr; }
  .continuity-student-heading { align-items: flex-start; gap: 4px 8px; }
  .continuity-student-heading strong { flex: 1 1 calc(100% - 145px); }
  .continuity-student-state { width: fit-content; }
  .continuity-student-current { flex: 1 0 100%; order: 3; }
  .continuity-confirmation-actions { flex-direction: column; }
  .continuity-decision-button { width: auto; min-width: 140px; padding-inline: 10px; }
  .continuity-confirmation-actions button { width: 100%; min-width: 0; }
  .continuity-preview-detail-row { align-items: stretch; flex-direction: column; }
  .continuity-preview-detail-button { width: 100%; }
  .continuity-no-actions { flex-direction: column; }
  .continuity-no-actions button { width: 100%; }
  .continuity-preview-actors > div { align-items: stretch; flex-direction: column; }
  .continuity-preview-actors button { width: 100%; }
  .continuity-confirmation { max-height: calc(100dvh - 16px); }
  .continuity-confirmation-card { padding: 18px; }
  .continuity-noncontinuation-dialog { width: calc(100vw - 16px); }
  .continuity-noncontinuation-card { max-height: calc(100dvh - 16px); }
  .continuity-noncontinuation-actions { flex-direction: column-reverse; }
  .continuity-noncontinuation-actions button { width: 100%; }
}

@media (max-width: 380px) {
  .continuity-decision-actions { align-items: stretch; flex-direction: column; }
  .continuity-decision-button { width: 100%; min-width: 0; }
}

.family-request-campaign { margin-top:5px; color:var(--muted); font-size:11px; font-weight:700; }
.family-request-tabs { display:flex; gap:8px; overflow:auto; margin:16px 0; scrollbar-width:thin; }
.family-request-tabs button { border:1px solid var(--border,#cbd5e1); background:#fff; border-radius:999px; padding:9px 15px; white-space:nowrap; }
.family-request-tabs button.active { background:#163b69; color:#fff; border-color:#163b69; }
.family-request-tabs button:focus-visible,.family-request-admin button:focus-visible { outline:3px solid #f2b705; outline-offset:2px; }
.family-request-filters { align-items:end; }
.family-request-filters #family-request-clear-filters { align-self:end; margin:0; }
.family-request-workspace { grid-template-columns:minmax(280px,35fr) minmax(0,65fr); }
.family-request-workspace:not(.has-selection) { grid-template-columns:1fr; }
.family-request-workspace:not(.has-selection) .admin-detail-pane { display:none; }
.family-request-list-heading { border-bottom:1px solid #d8e4ed; padding:13px 16px; }
.family-request-list-heading h2 { border:0; padding:0; }
.family-request-list-heading span { display:block; margin-top:3px; color:var(--muted); font-size:11px; }
.family-request-list-type,.family-request-list-date { color:var(--muted); font-size:11px; }
.family-request-list-badges { display:flex; flex-wrap:wrap; gap:6px; }
.family-request-status,.family-request-support-badge { display:inline-flex; width:fit-content; border-radius:999px; padding:4px 8px; font-size:9px; font-weight:900; text-transform:uppercase; }
.family-request-status { background:#eaf1f8; color:#163b69; }
.family-request-support-badge { background:#e8f5ec; color:var(--green-dark); }
.family-request-empty { padding:42px 20px; text-align:center; }
.family-request-empty h3 { margin:0; color:var(--blue); }
.family-request-empty p { color:var(--muted); }
.family-request-empty button { margin-inline:auto; }
.family-request-detail-header { border-bottom:1px solid #d8e4ed; padding-bottom:16px; }
.family-request-reference { color:var(--muted); font-size:10px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.family-request-detail-header h2 { margin:5px 0 9px; color:var(--blue); }
.family-request-metadata { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:5px 12px; margin:14px 0 0; font-size:12px; }
.family-request-metadata dt { color:var(--muted); font-weight:800; }
.family-request-metadata dd { margin:0; overflow-wrap:anywhere; }
.family-request-comparison { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:16px 0; }
.family-request-comparison section { background:#f8fafc; border:1px solid #dbe3ec; border-radius:12px; padding:14px; min-width:0; }
.family-request-comparison h3 { margin:0 0 8px; font-size:.84rem; text-transform:uppercase; letter-spacing:.04em; color:#52606d; }
.family-request-comparison p { overflow-wrap:anywhere; }
.family-request-value-row { display:grid; grid-template-columns:minmax(90px,.75fr) minmax(0,1.25fr); gap:8px; padding:7px 0; border-bottom:1px solid #e6edf3; }
.family-request-value-row:last-child { border-bottom:0; }
.family-request-value-row span { color:var(--muted); font-size:11px; }
.family-request-value-row strong { overflow-wrap:anywhere; font-size:12px; }
.family-request-section { margin-top:16px; border:1px solid #dbe3ec; border-radius:12px; padding:14px; }
.family-request-section h3,.family-request-decision h3 { margin:0 0 10px; color:#52606d; font-size:.84rem; letter-spacing:.04em; text-transform:uppercase; }
.family-request-support { background:#f5faf7; }
.family-request-timeline p { border-left:2px solid #b9cce0; margin:0 0 0 5px; padding:5px 0 10px 13px; font-size:12px; }
.family-request-decision { display:grid; gap:10px; border-top:1px solid #dbe3ec; margin-top:18px; padding-top:18px; }
.family-request-actions { display:flex; flex-wrap:wrap; gap:8px; }
.family-request-actions .button-primary { order:3; }
.family-request-actions .family-request-reject { color:#8a2d2d; }
.family-request-admin .admin-list-item { display:grid; gap:5px; text-align:left; width:100%; }
.family-request-mobile-back { display:none; }
@media (max-width:1000px) and (min-width:721px) { .family-request-workspace { grid-template-columns:minmax(250px,40fr) minmax(0,60fr); } }
@media (max-width:720px) {
  .family-request-filters { grid-template-columns:1fr 1fr; }
  .family-request-workspace,.family-request-comparison { grid-template-columns:1fr; }
  .family-request-workspace.has-selection .admin-list-pane { display:none; }
  .family-request-workspace:not(.has-selection) .admin-list-pane { display:block; }
  .family-request-workspace.has-selection .admin-detail-pane { display:block; }
  .family-request-mobile-back { display:inline-flex; margin:0 0 14px; }
  .family-request-actions { flex-direction:column; }
  .family-request-actions button { width:100%; }
  .family-request-metadata { grid-template-columns:1fr; }
  .family-request-metadata dd { margin-bottom:5px; }
}
@media (max-width:440px) { .family-request-filters { grid-template-columns:1fr; } }

.demo-identities {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #dce6ee;
}

.demo-identities > span { width: 100%; color: var(--blue); font-weight: 800; }

.demo-identities button {
  padding: 5px 7px;
  border: 1px solid #c7d8e7;
  border-radius: 6px;
  background: var(--white);
  color: var(--blue);
  font-size: 9px;
  font-weight: 800;
  cursor: pointer;
}

.success-badge {
  width: fit-content;
  max-width: 100%;
  margin: 0 auto 12px;
  padding: 7px 14px;
  border: 1px solid #bcdcc5;
  border-radius: 999px;
  background: #edf8f0;
  color: var(--green-dark);
  font-size: 11px;
  font-weight: 800;
  text-align: center;
}

.intro {
  margin: 0 0 20px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
}

.context-options {
  display: grid;
  gap: 12px;
  margin: 20px 0 18px;
}

.context-option {
  width: 100%;
  min-height: auto;
  padding: 16px;
  border: 1px solid #b9cce0;
  border-radius: 12px;
  background: #f8fbff;
  color: var(--text);
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.context-option:hover {
  border-color: var(--blue);
  box-shadow: 0 7px 18px rgba(31, 78, 121, .10);
  transform: translateY(-1px);
}
.context-option-title { margin-bottom: 5px; color: var(--blue); font-size: 15px; line-height: 1.25; font-weight: 800; }
.context-option-text { margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.45; }

@media (max-width: 560px) {
  .portal-session-actions26332 { width: 100%; justify-content: stretch; }
}

.button-link {
  display: block;
  margin: 18px auto 0;
  padding: 8px 12px;
  border: 0;
  background: transparent;
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.portal-footer {
  margin-top: 18px;
  overflow: hidden;
  padding: 11px 14px;
  border-radius: 9px;
  background: var(--blue);
  color: var(--white);
  text-align: center;
}

.footer-main { font-size: 10px; font-weight: 800; }

.local-demo-badge {
  position: fixed;
  right: 16px;
  bottom: 18px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 11px;
  border: 1px solid #c6d8e7;
  border-radius: 999px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 7px 22px rgba(31, 78, 121, .12);
  color: var(--muted);
  font-size: 10px;
}

.local-demo-badge span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
}

.local-demo-badge strong { color: var(--blue); }

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.google-login-area { margin: 18px 0 4px; text-align: center; }
.identity-info-box {
  max-width: 520px;
  margin: 18px auto;
  padding: 16px 18px;
  border: 1px solid #c7d8e7;
  border-radius: 10px;
  background: #f5f9fd;
  text-align: left;
}
.identity-info-box strong,
.identity-info-box span { display: block; }
.identity-info-box strong { margin-bottom: 5px; color: var(--blue); }
.identity-info-box span { color: var(--muted); font-size: 12px; line-height: 1.45; }
.google-button-host {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.google-button-host > div { max-width: 100% !important; }
.google-button-host iframe {
  width: 260px !important;
  max-width: 100% !important;
  height: 44px !important;
  border: 0 !important;
}
.google-button-host svg,
.google-button-host img {
  width: 18px !important;
  height: 18px !important;
}
.page-shell.admin-mode { width: min(1280px, calc(100% - 30px)); }
.admin-shell { display: grid; grid-template-columns: 270px minmax(0, 1fr); min-height: 680px; border: 1px solid #c8d9e7; border-radius: 18px; background: #eef3f7; box-shadow: 0 18px 42px rgba(31, 78, 121, .15); overflow: hidden; }
.admin-shell.hidden { display: none; }
.admin-sidebar { display: flex; flex-direction: column; min-width: 0; padding: 22px 16px 16px; background: #173f65; color: #fff; }
.admin-sidebar-brand { display: grid; gap: 4px; padding: 0 8px 19px; border-bottom: 1px solid rgba(255,255,255,.18); }
.admin-sidebar-brand span { color: #bcd2e4; font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.admin-sidebar-brand strong { font-size: 19px; }
.admin-role-summary { display: grid; gap: 4px; margin: 16px 8px; padding: 11px 12px; border-radius: 9px; background: rgba(255,255,255,.1); }
.admin-role-summary span { color: #c7d9e8; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.admin-role-summary strong { overflow-wrap: anywhere; font-size: 12px; }
#admin-primary-navigation { flex: 1; overflow-y: auto; }
.admin-navigation-branch { margin: 4px 0; }
.admin-navigation-branch > summary { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 7px; padding: 8px 9px; border-radius: 7px; color: #d8e6f1; cursor: pointer; font-size: 10px; font-weight: 750; line-height: 1.35; list-style: none; }
.admin-navigation-branch > summary::-webkit-details-marker { display: none; }
.admin-navigation-branch > summary::after { content: '›'; grid-column: 2; transition: transform .16s ease; }
.admin-navigation-branch[open] > summary::after { transform: rotate(90deg); }
.admin-navigation-branch > summary:hover, .admin-navigation-branch > summary:focus-visible { background: rgba(255,255,255,.1); outline: 2px solid transparent; }
.admin-navigation-branch.level-1 { margin: 10px 0; border-bottom: 1px solid rgba(255,255,255,.09); padding-bottom: 6px; }
.admin-navigation-branch.level-1 > summary { color: #fff; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.admin-navigation-branch.level-2 > summary { padding-left: 15px; }
.admin-navigation-branch.level-3 > summary { padding-left: 23px; color: #c7d9e8; font-size: 9px; }
.admin-navigation-children { display: grid; gap: 2px; }
.admin-navigation-module { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 7px; width: 100%; padding: 10px 11px; border: 0; border-radius: 8px; background: transparent; color: #f5f8fb; font: inherit; font-size: 11px; font-weight: 750; text-align: left; cursor: pointer; }
.admin-navigation-children .admin-navigation-module { padding-left: 31px; }
.admin-navigation-module:hover, .admin-navigation-module:focus-visible { background: rgba(255,255,255,.12); outline: 2px solid transparent; }
.admin-navigation-module.active { background: #fff; color: #173f65; box-shadow: inset 4px 0 #43a45d; }
.admin-navigation-module small { grid-column: 1 / -1; width: fit-content; padding: 2px 5px; border-radius: 999px; background: rgba(255,255,255,.15); color: inherit; font-size: 7px; letter-spacing: .08em; }
.admin-navigation-module.active small { background: #e7f0f7; }
.admin-navigation-badge { min-width: 22px; padding: 3px 6px; border-radius: 999px; background: #f0b429; color: #302100; font-size: 9px; text-align: center; }
.admin-breadcrumb-home { appearance: none; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.admin-breadcrumb-home:hover, .admin-breadcrumb-home:focus-visible { color: #173f65; outline: 2px solid #f0b429; outline-offset: 3px; }
.admin-panel-home { min-height: 320px; display: grid; align-content: center; justify-items: start; padding: clamp(24px, 4vw, 52px); border: 1px solid #d8e2ea; border-radius: 14px; background: #fff; overflow: hidden; }
.admin-panel-home.hidden { display: none; }
.admin-panel-home h1 { margin: 6px 0 10px; color: #173f65; }
.admin-panel-home p { margin: 0; color: #526474; }
.admin-panel-welcome-illustration { display: block; width: 100%; max-width: 980px; height: auto; max-height: min(52vh, 540px); margin: clamp(20px, 3vw, 34px) auto 0; object-fit: contain; object-position: center; }
.admin-session-actions { display: grid; gap: 7px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.18); }
.admin-session-actions .button-secondary { width: 100%; margin: 0; border-color: rgba(255,255,255,.38); background: transparent; color: #fff; }
.admin-shell-main { min-width: 0; padding: 18px; background: #f5f8fb; }
.admin-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; min-height: 26px; margin: 0 3px 12px; color: #64798a; font-size: 10px; }
.admin-breadcrumb strong { color: var(--blue); }
#admin-shell-content { min-width: 0; }
#admin-shell-content > section { width: 100%; box-sizing: border-box; }
#admin-shell-content :is(#family-request-admin-back,#master-data-admin-back,#continuity-institutional-back,#admin-family-preview-back,#identity-audit-back,#continuity-institutional-logout,#admin-family-preview-logout,#identity-audit-logout) { display: none; }
.admin-navigation-adapters { display: none !important; }

.pre-enrollment-module .admin-metrics { margin: 1rem 0; }
.admin-table-wrap { max-width: 100%; overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th, .admin-table td { padding: .7rem; border-bottom: 1px solid #dbe4ec; text-align: left; }
.pre-enrollment-module .admin-list-item { display: flex; flex-direction: column; gap: .3rem; }
#student-management-view > .admin-panel-header h1 { font-size: clamp(27px,2.4vw,31px); line-height: 1.15; }
#student-management-view > .admin-panel-header p { font-size: 14px; }
.student-record-search { width: 100%; margin: 16px 0 12px; }
.student-record-search > label { display: block; margin-bottom: 5px; color: var(--blue); font-size: 12px; font-weight: 700; }
.student-record-search-controls { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; }
.student-record-search-controls .input { min-width: 0; }
.student-record-search-controls .button-primary { width: auto; min-width: 88px; margin: 0; padding: 9px 15px; font-size: 13px; }
.student-record-workspace { min-width: 0; min-height: 225px; border: 1px solid #d5e1e9; border-radius: 10px; background: #fff; overflow: hidden; }
.student-record-workspace.has-selection { min-height: 0; }
.student-record-results { max-height: 680px; overflow-y: auto; overflow-x: hidden; background: #f8fafc; }
.student-record-results.hidden { display: none; }
.student-record-workspace.has-selection .student-record-results:not(.hidden) { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 8px; max-height: 164px; padding: 10px; overflow-y: auto; border-bottom: 1px solid #d5e1e9; }
.student-record-results:not(.hidden) + .student-record-detail { border-top: 1px solid #d5e1e9; }
.student-record-workspace.has-selection .student-record-results + .student-record-detail { border-top: 0; }
.student-record-results .admin-list-item { display: grid; min-width: 0; gap: 5px; }
.student-record-workspace.has-selection .student-record-results .admin-list-item { align-content: center; min-height: 62px; padding: 9px 11px; border: 1px solid #d7e3ec; border-radius: 8px; background: #fff; }
.student-record-results .admin-list-item strong { color: var(--blue); font-size: 12px; }
.student-record-results .admin-list-item span { color: var(--muted); font-size: 10px; }
.student-record-detail { min-width: 0; padding: clamp(18px,2.5vw,28px); overflow-x: clip; }
.student-record-welcome { display: flex; align-items: center; justify-content: center; gap: 18px; min-height: 180px; padding: 24px; color: var(--muted); }
.student-record-welcome h2 { margin: 0 0 7px; color: var(--blue); font-size: 20px; }
.student-record-welcome p { max-width: 520px; margin: 0; line-height: 1.55; }
.student-record-welcome-icon { display: grid; place-items: center; flex: 0 0 48px; width: 48px; height: 48px; border-radius: 50%; background: #eaf4fb; color: var(--blue); font-size: 26px; font-weight: 900; }
.student-record-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 0 14px; border-bottom: 1px solid #dbe5ed; }
.student-record-identity { min-width: 0; flex: 1; }
.student-record-header h2 { margin: 0 0 7px; overflow-wrap: anywhere; color: var(--blue); font-size: clamp(22px,2.3vw,26px); line-height: 1.18; }
.student-record-metadata { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 14px; color: #486375; font-size: 13px; }
.student-record-metadata > span:not(:last-child)::after { margin-left: 14px; color: #a9bac7; content: '·'; }
.student-record-metadata .student-record-status { padding: 3px 8px; border-radius: 999px; background: #eef6f0; color: #2d6d42; font-size: 11px; font-weight: 800; }
.student-record-metadata .student-record-status::after { display: none; }
.student-record-header-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
.student-record-header-actions .button-primary, .student-record-header-actions .button-secondary { width: auto; margin: 0; padding: 8px 12px; font-size: 13px; }
.student-record-tabs { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0 20px; margin: 12px 0 0; border-bottom: 1px solid #dbe5ed; overflow: visible; }
.student-record-tabs button { min-width: 0; min-height: 40px; margin-bottom: -1px; padding: 8px 1px; border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; color: #526a7c; font-size: 13px; font-weight: 700; line-height: 1.25; white-space: normal; cursor: pointer; }
.student-record-tabs button:hover, .student-record-tabs button:focus-visible { color: var(--blue); outline: none; }
.student-record-tabs button:focus-visible { box-shadow: 0 2px #6aa8d8; }
.student-record-tabs button.active { border-bottom-color: var(--green); color: var(--blue); }
.student-record-tab-panel { min-width: 0; padding-top: 18px; }
.student-record-tab-panel > h3, .student-record-section-title { margin: 0 0 8px; color: var(--blue); font-size: 18px; line-height: 1.3; }
.student-record-subheading { padding-top: 20px; }
.student-record-field-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 24px; }
.student-record-field { min-width: 0; min-height: 66px; padding: 10px 0 12px; border-bottom: 1px solid #e1e8ee; }
.student-record-field.wide { grid-column: 1/-1; }
.student-record-field span { display: block; color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .02em; }
.student-record-field strong { display: block; margin-top: 6px; overflow-wrap: anywhere; color: var(--blue); font-size: 14px; font-weight: 500; line-height: 1.4; }
.student-record-personal-grid { grid-template-columns: repeat(6,minmax(0,1fr)); }
.student-record-personal-grid .student-record-field { grid-column: span 2; }
.student-record-personal-grid .student-record-field:nth-child(-n+2) { grid-column: span 3; }
.student-record-readonly-note, .student-record-edit-help { margin: 0 0 14px; padding: 9px 11px; border-left: 3px solid #6aa8d8; background: #f4f9fd; color: #486375; font-size: 11px; line-height: 1.5; }
.student-record-edit-form { padding: 0; border: 0; background: transparent; }
.student-record-edit-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px 20px; min-width: 0; }
.student-record-personal-form .student-record-edit-grid { grid-template-columns: repeat(6,minmax(0,1fr)); }
.student-record-personal-form .student-record-edit-field { grid-column: span 2; }
.student-record-personal-form .student-record-edit-field:nth-child(-n+2) { grid-column: span 3; }
.student-record-edit-field, .student-record-edit-field .input { min-width: 0; max-width: 100%; }
.student-record-edit-field .input { min-height: 42px; font-size: 14px; }
.student-record-verification-badge { width: fit-content; margin-top: 5px; padding: 3px 7px; border-radius: 999px; background: #eef6f0; color: #2d6d42; font-size: 10px; font-weight: 800; }
.student-record-edit-field > span { display: block; margin-bottom: 5px; color: var(--blue); font-size: 12px; font-weight: 700; }
.student-record-edit-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.student-record-edit-actions .button-primary, .student-record-edit-actions .button-secondary { width: auto; margin: 0; padding: 8px 13px; font-size: 13px; }
.student-family-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.student-family-card { padding: 14px; border: 1px solid #d7e3ec; border-radius: 9px; background: #fff; }
.student-family-card.editing { grid-column: 1 / -1; }
.student-family-card.empty { background: #f8fafc; color: var(--muted); }
.student-family-card-header { margin-bottom: 10px; }
.student-family-card-header h3 { margin: 4px 0 0; color: var(--blue); font-size: 17px; }
.student-family-type { color: var(--green); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.student-family-edit { width: auto; margin: 11px 0 0; padding: 8px 12px; font-size: 13px; }
.student-record-shared-warning { margin: 11px 0 0; padding: 9px 10px; border-left: 3px solid #f0b429; background: #fff9e8; color: #66531f; font-size: 10px; line-height: 1.45; }
.student-record-history { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.student-record-history li { display: grid; grid-template-columns: minmax(130px,.8fr) minmax(120px,.7fr) minmax(150px,1fr) minmax(170px,1fr); gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid #dbe5ed; }
.student-record-history-heading { background: #f4f8fb; }
.student-record-history time, .student-record-history span { color: var(--muted); font-size: 11px; }
.student-record-history strong { color: var(--blue); font-size: 12px; }
.student-record-empty { margin: 0; padding: 28px 16px; color: var(--muted); text-align: center; }
@media (max-width: 1100px) {
  .student-record-field-grid, .student-record-edit-grid, .student-family-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .student-record-personal-grid, .student-record-personal-form .student-record-edit-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .student-record-personal-grid .student-record-field, .student-record-personal-grid .student-record-field:nth-child(-n+2), .student-record-personal-form .student-record-edit-field, .student-record-personal-form .student-record-edit-field:nth-child(-n+2) { grid-column: auto; }
}
@media (max-width: 760px) {
  .pre-enrollment-module .admin-filters { grid-template-columns: 1fr; }
  .pre-enrollment-module .admin-workspace { grid-template-columns: 1fr; }
  .student-record-workspace.has-selection .student-record-results:not(.hidden) { grid-template-columns: repeat(2,minmax(0,1fr)); max-height: 190px; }
  .student-record-header { display: grid; align-items: flex-start; }
  .student-record-header-actions { width: 100%; justify-content: flex-start; }
  .student-record-field-grid, .student-record-edit-grid, .student-family-grid, .student-record-personal-grid, .student-record-personal-form .student-record-edit-grid { grid-template-columns: 1fr; }
  .student-record-tabs { gap: 0 14px; }
  .student-record-tabs button { flex: 1 1 calc(50% - 14px); }
  .student-record-history li { grid-template-columns: 1fr; gap: 5px; }
  .student-record-welcome { align-items: flex-start; justify-content: flex-start; min-height: 145px; }
}
@media (max-width: 480px) {
  .student-record-search-controls { grid-template-columns: 1fr; }
  .student-record-search-controls .button-primary { width: 100%; justify-self: stretch; }
  .student-record-detail { padding: 16px; }
  .student-record-header-actions { width: 100%; justify-content: space-between; }
  .student-record-tabs { gap: 0 10px; }
  .student-record-tabs button { flex-basis: calc(50% - 10px); font-size: 12px; }
  .student-record-workspace.has-selection .student-record-results:not(.hidden) { grid-template-columns: 1fr; }
  .student-record-welcome-icon { display: none; }
}
.admin-menu-toggle { display: none; }
.admin-navigation-backdrop { display: none; }
.admin-panel {
  padding: 24px;
  border: 1px solid #cadbe8;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(31, 78, 121, .12);
}
.admin-panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.admin-panel-header h1 { margin: 4px 0 6px; color: var(--blue); font-size: clamp(23px, 3vw, 34px); }
.admin-panel-header p { margin: 0; color: var(--muted); }
.admin-account { display: grid; justify-items: end; gap: 8px; color: var(--blue); font-size: 12px; font-weight: 800; }
.admin-account .button-secondary { width: auto; margin: 0; padding: 9px 13px; }
.admin-readonly-field { min-height: 44px; padding: 11px 12px; border: 1px solid var(--border); border-radius: 8px; background: #f4f7f9; color: var(--text); font-size: 12px; font-weight: 800; }
.admin-state-help { margin-top: 5px; padding: 6px 8px; border-left: 3px solid #b9cce0; background: #f8fbff; color: var(--muted); font-size: 9px; line-height: 1.45; }
.admin-metrics { display: grid; grid-template-columns: repeat(5, minmax(100px, 1fr)); gap: 12px; margin: 24px 0 18px; }
.admin-metric { padding: 14px; border: 1px solid #d3e0eb; border-radius: 10px; background: #f7fafc; }
.admin-metric span { display: block; color: var(--muted); font-size: 11px; font-weight: 700; }
.admin-metric strong { display: block; margin-top: 5px; color: var(--blue); font-size: 25px; }
.admin-filters { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 12px; margin-bottom: 18px; }
.admin-filters label { color: var(--blue); font-size: 11px; font-weight: 800; }
.admin-filters .input { margin-top: 5px; padding: 10px 12px; font-size: 12px; }
.admin-workspace { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(420px, 1.5fr); min-height: 460px; border: 1px solid #cbdce9; border-radius: 12px; overflow: hidden; }
.admin-list-pane { border-right: 1px solid #cbdce9; background: #f7fafc; }
.admin-list-pane h2 { margin: 0; padding: 15px 16px; border-bottom: 1px solid #d8e4ed; color: var(--blue); font-size: 15px; }
.admin-list { max-height: 610px; overflow: auto; }
.admin-list-item { width: 100%; padding: 14px 16px; border: 0; border-bottom: 1px solid #d8e4ed; background: #fff; text-align: left; cursor: pointer; }
.admin-list-item:hover, .admin-list-item.selected { background: #eaf4fb; box-shadow: inset 4px 0 var(--green); }
.admin-list-reference { color: var(--blue); font-size: 12px; font-weight: 900; }
.admin-list-student { margin-top: 5px; color: var(--text); font-size: 13px; font-weight: 800; }
.admin-list-preview, .admin-list-meta { margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.admin-status-pill { display: inline-block; margin-top: 7px; padding: 4px 8px; border-radius: 999px; background: #e8f5ec; color: var(--green-dark); font-size: 9px; font-weight: 900; }
.admin-detail-pane { padding: 22px; background: #fff; }
.admin-detail-placeholder, .admin-empty { padding: 30px 16px; color: var(--muted); text-align: center; }
.admin-detail-header { padding-bottom: 14px; border-bottom: 1px solid #d9e4ed; }
.admin-detail-header h2 { margin: 4px 0; color: var(--blue); font-size: 24px; }
.admin-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.admin-detail-field { padding: 12px; border: 1px solid #d8e4ed; border-radius: 8px; background: #f8fafc; }
.admin-detail-field span { display: block; color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.admin-detail-field strong { display: block; margin-top: 5px; color: var(--blue); font-size: 13px; }
.admin-inquiry-copy { grid-column: 1 / -1; padding: 16px; border-left: 4px solid var(--green); background: #f5faf7; color: var(--text); line-height: 1.55; white-space: pre-wrap; }
.admin-management-section { margin-top: 20px; padding-top: 17px; border-top: 2px solid #e7eef4; }
.admin-section-title { color: var(--blue); font-size: 15px; font-weight: 900; }
.admin-management-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.admin-management-grid label, .admin-response-label { display: block; color: var(--blue); font-size: 12px; font-weight: 800; }
.admin-management-label { margin-bottom: 6px; color: var(--blue); font-size: 12px; font-weight: 800; }
.admin-management-grid .input { margin-top: 6px; }
.admin-response-label { margin-top: 18px; }
.admin-textarea { min-height: 120px; margin-top: 6px; resize: vertical; font-size: 12px; line-height: 1.45; }
.admin-textarea-small { min-height: 82px; }
.admin-meeting-scope-note { margin: 18px 0 4px; padding: 11px 13px; border-left: 4px solid #e8b62f; border-radius: 9px; background: #fff8e7; color: #66511a; font-size: 10px; line-height: 1.45; }
.admin-management-meta { margin-top: 10px; color: var(--muted); font-size: 9px; }
.admin-management-actions { display: flex; justify-content: center; margin-top: 14px; }
.admin-management-actions .button-primary,
.admin-management-actions .button-secondary { margin: 0; }
.admin-management-section .input:disabled,
.admin-management-section .input[readonly] {
  cursor: default;
  border-color: #d8e4ed;
  background: #f2f5f7;
  color: #526779;
  opacity: 1;
}
.admin-rector-validation { margin-top: 22px; padding: 18px; border: 1px solid #b9d8c2; border-left: 5px solid var(--green); border-radius: 12px; background: #f7fcf8; }
.admin-rector-validation .admin-section-title { margin-top: 5px; }
.admin-rector-explanation { margin: 8px 0 16px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.admin-rector-pending { margin-top: 12px; padding: 10px 12px; border-radius: 8px; background: #eef3f7; color: var(--muted); font-size: 11px; }
.admin-rector-closed { display: grid; gap: 6px; margin-top: 14px; padding: 14px; border-radius: 9px; background: #eaf7ed; color: #0b6924; }
.admin-rector-closed span { font-size: 11px; color: var(--muted); }
.admin-rector-closed p { margin: 4px 0 0; color: var(--blue); line-height: 1.5; }
.admin-local-management-note { margin-top: 14px; }
.admin-history-section { margin-top: 24px; padding-top: 17px; border-top: 2px solid #e7eef4; }
.admin-history-list { margin-top: 10px; }
.admin-history-item { padding: 10px 0 10px 15px; border-left: 3px solid #d8e3ec; }
.admin-history-item + .admin-history-item { margin-top: 4px; }
.admin-history-date { color: var(--muted); font-size: 8px; }
.admin-history-main { display: flex; align-items: center; gap: 8px; margin-top: 3px; color: var(--text); font-size: 10px; }
.admin-history-main span { padding: 2px 6px; border-radius: 999px; background: #edf5fc; color: var(--blue); font-size: 8px; font-weight: 800; }
.admin-history-detail { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.admin-history-empty { color: var(--muted); font-size: 10px; }
.admin-disclosure { margin-top: 16px; }
.admin-family-preview-banner {
  position: sticky;
  z-index: 20;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 16px;
  padding: 12px 16px;
  border: 2px solid #e0a916;
  border-radius: 10px;
  background: #fff7d8;
  box-shadow: 0 8px 20px rgba(85, 63, 5, .16);
  color: #654a00;
  font-size: 12px;
}
.admin-family-preview-banner .button-secondary { width: auto; margin: 0; white-space: nowrap; }
.admin-preview-search-panel { max-width: 780px; margin: 24px auto 0; }
.admin-preview-search-panel > label,
.admin-preview-selection > label { color: var(--blue); font-size: 12px; font-weight: 800; }
.admin-preview-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; margin-top: 6px; }
.admin-preview-search-row .button-primary { width: auto; margin: 0; }
.admin-preview-results { display: grid; gap: 12px; max-width: 900px; margin: 20px auto 0; }
.admin-preview-result { padding: 15px; border: 1px solid #cbdce9; border-radius: 10px; background: #f8fbfd; }
.admin-preview-result h2 { margin: 0; color: var(--blue); font-size: 17px; }
.admin-preview-result-course { margin: 4px 0 12px; color: var(--muted); font-size: 11px; }
.admin-preview-adults { display: grid; gap: 8px; }
.admin-preview-adult-option { width: 100%; padding: 12px; border: 1px solid #c5d9e8; border-radius: 9px; background: #fff; color: var(--blue); text-align: left; cursor: pointer; }
.admin-preview-adult-option:hover,
.admin-preview-adult-option.selected { border-color: var(--green); box-shadow: inset 4px 0 var(--green); }
.admin-preview-adult-option span { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.admin-preview-selection { display: grid; gap: 9px; max-width: 780px; margin: 22px auto 0; padding: 18px; border: 1px solid #bcd8c4; border-radius: 12px; background: #f6fbf7; }
.admin-preview-selection > strong { color: var(--blue); font-size: 18px; }
.admin-preview-selection > span { color: var(--muted); font-size: 11px; }
.admin-preview-student-summary { display: grid; gap: 6px; }
.admin-preview-student-summary div { padding: 8px 10px; border-radius: 7px; background: #fff; color: var(--text); font-size: 11px; }
.admin-preview-selection .button-primary { width: fit-content; margin: 4px auto 0; }
.continuity-information-2027 { margin-top: 14px; padding: 16px; border: 1px solid #c8dccd; border-radius: 10px; background: #f7fcf8; }
.continuity-information-2027 h3 { margin: 0; color: var(--blue); font-size: 16px; }
.continuity-information-2027 h4 { margin: 14px 0 6px; color: var(--blue); font-size: 12px; }
.continuity-person-cards { display: grid; gap: 10px; }
.continuity-information-form { display: grid; gap: 10px; margin-top: 14px; }
.continuity-information-form label { color: var(--blue); font-size: 11px; font-weight: 700; }
.continuity-information-form .input { margin-top: 4px; }
.continuity-information-form .button-primary { width: fit-content; margin: 0; }
.continuity-information-warning { margin: 2px 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.continuity-person-card,
.continuity-person-editor { overflow: hidden; border: 1px solid #cbdce9; border-radius: 10px; background: #fff; }
.continuity-person-header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 12px 13px; border-bottom: 1px solid #e2ebf1; }
.continuity-person-header strong { color: var(--blue); font-size: 12px; }
.continuity-person-header span { color: var(--muted); font-size: 10px; font-weight: 700; }
.continuity-person-data { display: grid; }
.continuity-person-data-row { display: grid; grid-template-columns: minmax(90px,.7fr) minmax(120px,1.4fr) auto; align-items: center; gap: 10px; min-height: 42px; padding: 8px 13px; border-bottom: 1px solid #edf2f5; }
.continuity-person-data-row:last-child { border-bottom: 0; }
.continuity-person-data-label { color: var(--muted); font-size: 10px; font-weight: 800; }
.continuity-person-data-value { color: var(--text); font-size: 11px; overflow-wrap: anywhere; }
.continuity-person-data-action { width: auto; min-height: 28px; padding: 5px 9px; border: 1px solid #b8ccda; border-radius: 7px; background: #f5f9fc; color: var(--blue); font-size: 10px; font-weight: 800; line-height: 1.2; text-decoration: none; white-space: nowrap; }
.continuity-person-data-action:hover,
.continuity-person-data-action:focus-visible { border-color: var(--blue); background: #eaf3f9; }
.continuity-person-data-readonly { color: var(--muted); font-size: 9px; white-space: nowrap; }
.continuity-person-data-pending { justify-self: start; padding: 4px 7px; border-radius: 999px; background: #fff3cd; color: #765600; font-size: 9px; font-weight: 800; line-height: 1.25; }
.continuity-person-field-editors { border-top: 1px solid #dce6ed; }
.continuity-relationship-request { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 13px; border: 1px solid #cbdce9; border-radius: 10px; background: #fff; }
.continuity-relationship-request strong { color: var(--blue); font-size: 11px; }
.continuity-relationship-request p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.continuity-relationship-request .continuity-field-editor { grid-column: 1 / -1; }
.continuity-additional-guardians,
.continuity-completeness-summary { margin-top: 12px; padding: 13px; border: 1px solid #cbdce9; border-radius: 10px; background: #fff; }
.continuity-completeness-summary h4,
.continuity-completeness-summary h5 { margin: 0 0 8px; color: var(--blue); }
.continuity-completeness-summary ul { margin: 4px 0 10px; padding-left: 18px; }
.continuity-annual-confirmation { margin-top: 12px; padding-top: 10px; border-top: 1px solid #d8e2e8; }
.continuity-annual-confirmation p { margin: 5px 0; }
.continuity-missing-field-action { display: inline-flex; align-items: center; gap: 10px; text-align: left; }
.continuity-missing-field-action-hint { color: var(--blue); font-weight: 700; white-space: nowrap; }
.continuity-missing-field-action { width: auto; padding: 3px 0; text-align: left; }
.continuity-address-copy { display: grid; grid-template-columns: minmax(0,1fr) auto; grid-column: 1 / -1; gap: 8px; align-items: center; padding: 9px; border: 1px solid #cbdce9; border-radius: 7px; background: #f5f9fc; }
.continuity-address-copy > strong { grid-column: 1 / -1; }
.continuity-address-copy-options { display: grid; gap: 6px; min-width: 0; }
.continuity-address-copy-option { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 8px; border: 1px solid #cbdce9; border-radius: 7px; background: #fff; color: var(--text); cursor: pointer; }
.continuity-address-copy-option:has(input:checked) { border-color: var(--blue); background: #eaf3f9; }
.continuity-address-copy-option input { flex: 0 0 auto; margin: 0; }
.continuity-address-copy-identity { display: flex; flex-wrap: wrap; gap: 3px 5px; min-width: 0; line-height: 1.35; }
.continuity-address-copy-name { overflow-wrap: anywhere; }
.continuity-address-copy-role { color: var(--muted); white-space: nowrap; }
.continuity-field-editor { display: grid; gap: 8px; padding: 12px 13px; background: #f7fafc; }
.continuity-field-editor > strong { color: var(--blue); font-size: 11px; }
.continuity-field-editor .input { margin: 0; }
.continuity-document-current { margin: 0; color: var(--blue); font-weight: 800; }
.continuity-document-intro { margin: 0 0 4px; color: var(--text); line-height: 1.5; }
.continuity-document-field-label { display: grid; gap: 5px; color: var(--blue); font-size: 10px; font-weight: 800; }
.continuity-document-support-heading { margin-top: 5px; }
.continuity-document-support-input { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.continuity-document-support-action { justify-self: start; width: auto; margin: 0; cursor: pointer; }
.continuity-document-support-state { color: var(--muted); }
.continuity-document-warning { margin: 5px 0 0; padding: 9px 10px; border-left: 3px solid #c58a12; border-radius: 5px; background: #fff8e7; color: #654900; font-weight: 700; line-height: 1.45; }
.continuity-address-builder { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 10px 0 0; padding: 10px; border: 1px solid #dce6ed; border-radius: 8px; }
.continuity-address-builder legend { color: var(--blue); font-size: 10px; font-weight: 800; }
.continuity-address-zone-fields { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); grid-column: 1 / -1; gap: 8px; }
.continuity-address-group { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); grid-column: 1 / -1; gap: 8px; padding: 8px; border: 1px solid #e3ebf1; border-radius: 7px; background: #fbfdfe; }
.continuity-address-group h4 { grid-column: 1 / -1; margin: 0; color: var(--blue); font-size: 10px; }
.continuity-address-main-road { grid-template-columns: repeat(5,minmax(0,1fr)); }
.continuity-address-complement { grid-template-columns: 1fr; }
.continuity-address-rural { grid-template-columns: repeat(2,minmax(0,1fr)); }
.continuity-address-rural .input:last-child { grid-column: 1 / -1; }
.continuity-issue-place-builder .input { grid-column: span 3; }
.continuity-issue-place-builder label {
  display: grid;
  grid-column: 1 / -1;
  gap: 5px;
  min-width: 0;
  color: var(--blue);
  font-size: 13px;
  font-weight: 700;
}
.continuity-issue-place-builder label .input { grid-column: auto; width: 100%; }
.continuity-address-preview { grid-column: 1 / -1; margin: 2px 0 0; padding: 8px; border-radius: 6px; background: #fff; color: var(--text); font-size: 10px; line-height: 1.45; }
.continuity-change-comparison { padding: 12px; border: 1px solid #b8d3bf; border-radius: 9px; background: #f7fcf8; }
.continuity-change-comparison > div { margin: 8px 0; padding: 9px; border-radius: 7px; background: #fff; }
.continuity-change-comparison p { margin: 5px 0 0; color: var(--text); font-size: 10px; overflow-wrap: anywhere; }
.continuity-change-comparison .button-primary,
.continuity-change-comparison .button-secondary { width: auto; margin: 8px 8px 0 0; }
.continuity-person-editor.has-pending { border-color: #d19a25; box-shadow: 0 0 0 2px rgb(209 154 37 / 12%); }
.continuity-person-pending { margin: 10px 13px 6px; color: #765400; font-size: 10px; font-weight: 800; }
.continuity-person-save { margin: 4px 13px 12px !important; }
.continuity-change-comparison-grid { display: grid; gap: 7px; margin: 8px 0; padding: 0 !important; }
.continuity-change-comparison-row { display: grid; grid-template-columns: .75fr 1fr 1fr 1.1fr; gap: 8px; padding: 8px; border-radius: 7px; background: #fff; }
.continuity-change-comparison-row span { color: var(--text); font-size: 10px; overflow-wrap: anywhere; }
.continuity-change-comparison-row span:first-child,
.continuity-change-comparison-row span:last-child { color: var(--blue); font-weight: 800; }
.continuity-person-save-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 !important; background: transparent !important; }
.continuity-person-save-actions .button-primary,
.continuity-person-save-actions .button-secondary { margin: 0; }
.continuity-unsaved-names { margin: 10px 0; padding-left: 20px; color: var(--blue); font-weight: 700; }

/* Guided family pre-enrollment experience. */
.family-continuity-card { max-width: 1180px; margin-inline: auto; }
.continuity-student-card { padding: 14px; }
.continuity-recorded-summary {
  padding: 8px 10px;
  border-radius: 8px;
  background: #f5f8fb;
}
.continuity-recorded-decision { font-size: 12px; }
.continuity-change-button { min-height: 44px; margin: 0 0 0 auto; padding: 6px 8px; justify-self: auto; }
.continuity-information-2027 { padding: 14px; background: #f8fbfa; }
.continuity-information-2027 h3 { font-size: 15px; }
.prematricula-stepper {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.prematricula-step {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 9px;
  border: 1px solid #d4e0e8;
  border-radius: 8px;
  background: #fff;
}
.prematricula-step-number {
  display: inline-flex;
  flex: 0 0 26px;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #e8eef3;
  color: var(--blue);
  font-size: 11px;
  font-weight: 900;
}
.prematricula-step-copy { display: grid; min-width: 0; gap: 2px; }
.prematricula-step-copy strong { color: var(--blue); font-size: 10px; line-height: 1.25; }
.prematricula-step-copy > span { color: var(--muted); font-size: 9px; line-height: 1.25; }
.prematricula-step.is-complete .prematricula-step-number { background: #dff3e4; color: #12622a; }
.prematricula-step.is-review { border-color: #d6a438; background: #fffaf0; }
.prematricula-step.is-review .prematricula-step-number { background: #fff0c2; color: #765600; }
.continuity-completeness-summary {
  position: relative;
  margin: 0 0 12px;
  padding: 13px 14px;
}
.continuity-completeness-summary.is-pending-review,
.continuity-completeness-summary.is-requires-update { border-color: #d6a438; background: #fff8df; }
.continuity-completeness-summary.is-ready-to-confirm { border-color: #78a5cf; background: #eef6fc; }
.continuity-completeness-summary.is-pre-enrollment-confirmed { border-color: #7fb38d; background: #eef8f1; }
.continuity-final-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.continuity-final-actions .button-primary,
.continuity-final-actions .button-secondary { width: auto; min-height: 44px; margin: 0; }
.continuity-final-actions .message { flex: 1 0 100%; }
.continuity-person-cards { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; }
.continuity-person-card { min-width: 0; }
.continuity-person-card:first-child { grid-column: 1 / -1; }
.continuity-person-card > summary { list-style: none; cursor: pointer; min-height: 44px; }
.continuity-person-card > summary:focus-visible { outline: 3px solid rgba(22,101,52,.35); outline-offset: 3px; }
.continuity-person-card > summary::-webkit-details-marker { display: none; }
.continuity-person-card > summary::after { content: '⌄'; color: var(--blue); font-size: 16px; line-height: 1; }
.continuity-person-card[open] > summary::after { content: '⌃'; }
.continuity-person-header { align-items: center; }
.continuity-person-identity { display: grid; min-width: 0; gap: 2px; }
.continuity-person-identity strong { overflow-wrap: anywhere; }
.continuity-section-status {
  margin-left: auto;
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 9px !important;
  font-weight: 900 !important;
  white-space: nowrap;
}
.continuity-section-status.is-complete { background: #e4f3e8; color: #12622a; }
.continuity-section-status.is-review { background: #fff0c2; color: #765600; }
.continuity-section-readonly {
  margin: 0;
  padding: 8px 13px;
  border-bottom: 1px solid #e2ebf1;
  background: #f7fafc;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.4;
}
.continuity-person-data { grid-template-columns: repeat(2,minmax(0,1fr)); }
.continuity-person-data-row { min-width: 0; grid-template-columns: minmax(82px,.7fr) minmax(0,1.3fr) auto; }
.continuity-person-data-row.has-pending-value { background: #fffaf0; }
.continuity-person-field-help { grid-column: 1 / -1; color: #765600; font-size: 9px; line-height: 1.35; }
.continuity-relationship-guidance {
  display: grid;
  grid-column: 1 / -1;
  gap: 2px;
  margin: 8px 12px;
  padding: 9px 10px;
  border-left: 3px solid #d09a28;
  border-radius: 6px;
  background: #fff8e7;
  color: #654900;
  font-size: 10px;
  line-height: 1.4;
}
.continuity-relationship-guidance strong,
.continuity-relationship-guidance span { font-size: inherit; overflow-wrap: anywhere; }

@media (max-width: 620px) {
  .continuity-change-comparison-row { grid-template-columns: 1fr; gap: 3px; border: 1px solid #e2ebf1; }
  .continuity-person-save-actions { align-items: stretch; flex-direction: column; }
  .continuity-person-save-actions .button-primary,
  .continuity-person-save-actions .button-secondary { width: 100%; }
  .prematricula-stepper { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .continuity-person-cards,
  .continuity-person-data { grid-template-columns: 1fr; }
  .continuity-person-card:first-child { grid-column: auto; }
  .continuity-final-actions { flex-direction: column; }
  .continuity-final-actions .button-primary,
  .continuity-final-actions .button-secondary { width: 100%; min-width: 0; }
}

@media (max-width: 880px) {
  .admin-shell { grid-template-columns: 225px minmax(0,1fr); }
  .admin-sidebar { padding-inline: 11px; }
  .admin-shell-main { padding: 12px; }
  .admin-metrics { grid-template-columns: repeat(2, 1fr); }
  .admin-filters { grid-template-columns: repeat(2, 1fr); }
  .admin-workspace { grid-template-columns: 1fr; }
  .admin-list-pane { border-right: 0; border-bottom: 1px solid #cbdce9; }
  .admin-family-preview-banner { align-items: stretch; flex-direction: column; }
  .admin-family-preview-banner .button-secondary { width: 100%; }
}

@media (max-width: 560px) {
  .page-shell { width: 100%; padding: 16px 12px 4px; }
  .institutional-header { min-height: 154px; padding-top: 2px; }
  .portal-shield { width: 78px; height: 78px; }
  .card { padding: 22px 18px; border-radius: 14px; }
  .access-audience { font-size: 13px; text-align: center; }
  .family-service-card { grid-template-columns: 30px minmax(0, 1fr); }
  .family-service-status { grid-column: 2; width: fit-content; }
  .local-demo-badge {
    position: static;
    width: fit-content;
    max-width: calc(100% - 24px);
    margin: 14px auto 0;
  }
  .admin-panel { padding: 16px; }
  .admin-shell { position: relative; display: block; min-height: 620px; overflow: visible; }
  .admin-shell.hidden { display: none; }
  .admin-menu-toggle { display: inline-flex; align-items: center; gap: 7px; margin: 12px 12px 0; padding: 9px 12px; border: 1px solid #b8ccda; border-radius: 8px; background: #fff; color: var(--blue); font-weight: 800; }
  .admin-sidebar { position: fixed; z-index: 52; inset: 0 auto 0 0; width: min(84vw, 310px); box-sizing: border-box; transform: translateX(-105%); transition: transform .2s ease; box-shadow: 16px 0 35px rgba(8,35,59,.3); }
  .admin-shell.menu-open .admin-sidebar { transform: translateX(0); }
  .admin-navigation-backdrop { position: fixed; z-index: 51; inset: 0; background: rgba(10,31,49,.52); }
  .admin-shell.menu-open .admin-navigation-backdrop { display: block; }
  .admin-shell-main { padding: 10px; }
  .admin-panel-home { padding: 22px 16px; }
  .admin-panel-welcome-illustration { max-height: 38vh; margin-top: 18px; }
  .admin-breadcrumb { margin-top: 4px; }
  .admin-panel-header { display: block; }
  .admin-account { margin-top: 14px; justify-items: start; }
  .admin-filters, .admin-detail-grid, .admin-management-grid { grid-template-columns: 1fr; }
  .admin-preview-search-row { grid-template-columns: 1fr; }
  .admin-preview-search-row .button-primary { width: 100%; }
  .continuity-address-builder { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .continuity-address-zone-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .continuity-address-group,
  .continuity-address-main-road { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .continuity-address-group h4 { grid-column: 1 / -1; }
  .continuity-issue-place-builder .input { grid-column: span 2; }
  .continuity-person-data-row { grid-template-columns: minmax(84px,.75fr) minmax(0,1.25fr); gap: 5px 9px; }
  .continuity-person-data-action,
  .continuity-person-data-readonly { grid-column: 2; justify-self: start; }
  .continuity-person-data-pending { grid-column: 2; justify-self: start; }
  .continuity-relationship-request { grid-template-columns: 1fr; }
  .continuity-relationship-request .continuity-person-data-action { grid-column: 1; }
  .continuity-address-copy { grid-template-columns: 1fr; }
  .continuity-address-copy .button-secondary { width: 100%; }
  .continuity-address-copy-identity { display: grid; gap: 1px; }
}

@media (max-width: 380px) {
  .otp-code-group { grid-template-columns: repeat(5, 43px); gap: 7px; }
  .otp-digit-input { width: 43px; height: 52px; font-size: 24px; }
}

/* Family Prematrícula: one calm editorial surface with a clear next action. */
.page-shell:has(#family-continuity-view:not(.hidden)) {
  width: min(1120px, calc(100% - 48px));
  padding-top: 16px;
}
.page-shell:has(#family-continuity-view:not(.hidden)) > .institutional-header {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 12px;
  min-height: 0;
  padding: 0 8px 16px;
  text-align: left;
}
.page-shell:has(#family-continuity-view:not(.hidden)) .portal-shield {
  grid-row: 1 / 3;
  width: 40px;
  height: 40px;
  margin: 0;
}
.page-shell:has(#family-continuity-view:not(.hidden)) .brand-name {
  align-self: end;
  font: 700 17px/1.2 Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}
.page-shell:has(#family-continuity-view:not(.hidden)) .brand-module {
  align-self: start;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
}
#family-continuity-view {
  max-width: none;
  padding: clamp(24px, 2.5vw, 32px);
  border: 0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 36px rgb(31 78 121 / 6%);
}
#family-continuity-view .back-navigation { margin: 0 0 12px; }
#family-continuity-view .module-kicker { color: var(--blue); font-size: 12px; font-weight: 700; letter-spacing: .08em; }
#family-continuity-title {
  margin: 8px 0 6px;
  font: 700 clamp(30px, 2.6vw, 32px)/1.2 Arial, Helvetica, sans-serif;
  letter-spacing: -.02em;
  line-height: 1.2;
  text-align: left;
}
#family-continuity-intro { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.55; }
#family-continuity-view .continuity-deadline { margin: 12px 0 0; color: var(--muted); font-size: 13px; }
#family-continuity-view .continuity-dates { display: block; margin: 4px 0 0; padding: 0; background: none; font-size: 12px; }
#family-continuity-view .continuity-dates summary { display: inline-block; min-height: 44px; padding: 12px 0; color: var(--blue); cursor: pointer; font-weight: 650; }
#family-continuity-view .continuity-dates p { margin: 0 0 8px; color: var(--muted); }
#family-continuity-view .continuity-dates summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
#family-continuity-view .continuity-students { gap: 24px; margin-top: 16px; }
#family-continuity-view .continuity-student-card {
  min-width: 0;
  padding: 0;
  border: 0;
  border-left: 0;
  border-radius: 0;
  background: transparent;
}
#family-continuity-view .continuity-student-card + .continuity-student-card {
  padding-top: 32px;
  border-top: 1px solid #dce6ed;
}
#family-continuity-view .continuity-student-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 6px 24px;
}
#family-continuity-view .continuity-student-heading > strong {
  grid-column: 1;
  font-size: clamp(22px, 2vw, 24px);
  line-height: 1.3;
  overflow-wrap: break-word;
  word-break: normal;
}
#family-continuity-view .continuity-student-current { grid-column: 1; grid-row: 2; font-size: 14px; }
#family-continuity-view .continuity-student-state {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  font-size: 13px;
  font-weight: 650;
}
#family-continuity-view .continuity-response-controls:not(.is-answered) { margin-top: 12px; padding-top: 12px; border-top: 1px solid #dce6ed; }
#family-continuity-view .continuity-first-action-title { margin: 0 0 4px; font-size: 20px; line-height: 1.3; }
#family-continuity-view .continuity-question { color: var(--text); font-size: 16px; font-weight: 600; line-height: 1.5; }
#family-continuity-view .continuity-decision-actions { justify-content: flex-start; gap: 12px; margin-top: 12px; }
#family-continuity-view .continuity-decision-button { min-width: 180px; min-height: 44px; padding-inline: 18px; white-space: normal; }
#family-continuity-view .continuity-choice-hint { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
#family-continuity-view .continuity-recorded-summary {
  grid-column: 2;
  grid-row: 2;
  justify-content: flex-end;
  gap: 4px 12px;
  padding: 0;
  background: transparent;
}
#family-continuity-view .continuity-recorded-decision { color: var(--muted); font-size: 12px; font-weight: 500; }
#family-continuity-view .continuity-change-button { min-height: 44px; padding: 8px 0; font-size: 14px; font-weight: 600; }
#family-continuity-view .continuity-information-2027 {
  min-width: 0;
  margin-top: 24px;
  padding: 0;
  border: 0;
  background: transparent;
}
#family-continuity-view .continuity-information-2027 h3 {
  margin: 0 0 12px;
  font-size: 21px;
  line-height: 1.3;
}
#family-continuity-view .prematricula-stepper {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 0 0 24px;
  border: 0;
}
#family-continuity-view .prematricula-stepper::before {
  position: absolute;
  top: 16px;
  right: 12.5%;
  left: 16px;
  height: 2px;
  background: #d8e4ec;
  content: '';
}
#family-continuity-view .prematricula-step {
  position: relative;
  display: grid;
  grid-template-rows: 32px auto;
  justify-items: start;
  gap: 8px;
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
#family-continuity-view .prematricula-step-number {
  position: relative;
  z-index: 1;
  flex-basis: 32px;
  width: 32px;
  height: 32px;
  border: 2px solid #c7d9e6;
  background: #fff;
  font-size: 14px;
  font-weight: 700;
}
#family-continuity-view .prematricula-step.is-complete .prematricula-step-number {
  border-color: #267a3b;
  background: #267a3b;
  color: #fff;
}
#family-continuity-view .prematricula-step.is-current .prematricula-step-number {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}
#family-continuity-view .prematricula-step.is-review .prematricula-step-number {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}
#family-continuity-view .prematricula-step.is-pending .prematricula-step-number {
  border-color: #ad7900;
  background: #fff8e7;
  color: #765600;
}
#family-continuity-view .prematricula-step-copy strong { font-size: 14px; font-weight: 650; line-height: 1.35; }
#family-continuity-view .prematricula-step-copy > span { color: var(--muted); font-size: 12px; line-height: 1.35; }
#family-continuity-view .continuity-completeness-summary {
  margin: 0 0 20px;
  padding: 16px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
#family-continuity-view .continuity-completeness-summary.is-ready-to-confirm { color: #12622a; }
#family-continuity-view .continuity-completeness-summary.is-ready-to-confirm:empty { display: none; }
#family-continuity-view .continuity-completeness-summary.is-pending-review,
#family-continuity-view .continuity-completeness-summary.is-requires-update {
  padding: 12px 16px;
  border-left: 3px solid #ad7900;
  background: #fffaf0;
}
#family-continuity-view .continuity-completeness-summary h4 {
  margin: 0 0 4px;
  font-size: 18px;
  line-height: 1.35;
}
#family-continuity-view .continuity-completeness-summary ul { margin-bottom: 0; }
#family-continuity-view .continuity-information-lead { margin: 0 0 16px; color: var(--muted); }
#family-continuity-view .continuity-completeness-summary li,
#family-continuity-view .continuity-completeness-summary p { font-size: 15px; line-height: 1.5; }
#family-continuity-view .continuity-final-actions {
  gap: 12px;
  align-items: center;
  margin: 20px 0 0;
  padding: 20px;
  border: 0;
  border-radius: 14px;
  background: #f3f8fc;
}
#family-continuity-view .continuity-final-actions:empty { display: none; }
#family-continuity-view .continuity-final-action-intro {
  flex: 1 0 100%;
  margin: 0;
  color: var(--blue-dark);
  font-size: 15px;
  line-height: 1.5;
}
#family-continuity-view .continuity-final-actions button { min-height: 46px; font-size: 15px; font-weight: 650; }
#family-continuity-view .button-primary,
#family-continuity-view .button-secondary {
  width: auto;
  min-height: 44px;
  border-radius: 12px;
  font-family: Arial, Helvetica, sans-serif;
  letter-spacing: 0;
}
#family-continuity-view button:focus-visible,
#family-continuity-view a:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
#family-continuity-view .continuity-person-cards { grid-template-columns: minmax(0, 1fr); gap: 0; }
#family-continuity-view .continuity-person-card {
  min-width: 0;
  grid-column: 1;
  border: 0;
  border-bottom: 1px solid #dce6ed;
  border-radius: 0;
  background: transparent;
}
#family-continuity-view .continuity-person-card > summary { padding: 20px 0; }
#family-continuity-view .continuity-person-card > summary:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
#family-continuity-view .continuity-person-card > summary::after {
  margin-left: 12px;
  font-size: 20px;
}
#family-continuity-view .continuity-person-header { gap: 16px; border-bottom: 0; }
#family-continuity-view .continuity-person-identity strong {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.4;
  overflow-wrap: break-word;
  word-break: normal;
}
#family-continuity-view .continuity-person-identity > span { font-size: 13px; font-weight: 500; }
#family-continuity-view .continuity-section-status { font-size: 12px !important; font-weight: 650 !important; }
#family-continuity-view .continuity-section-readonly {
  padding: 0 0 16px;
  border: 0;
  background: transparent;
  font-size: 13px;
  line-height: 1.5;
}
#family-continuity-view .continuity-person-data {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 28px;
  padding: 0 0 24px;
}
#family-continuity-view .continuity-person-data-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 4px;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  word-break: normal;
}
#family-continuity-view .continuity-person-data-row.is-name,
#family-continuity-view .continuity-person-data-row.is-address { grid-column: 1 / -1; }
#family-continuity-view .continuity-person-data-row.has-pending-value {
  padding: 10px 12px;
  border-radius: 8px;
}
#family-continuity-view .continuity-person-data-label {
  color: #52697d;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  text-transform: none;
}
#family-continuity-view .continuity-person-data-value {
  min-width: 0;
  max-width: 100%;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 500;
  overflow-wrap: break-word;
  word-break: normal;
}
#family-continuity-view .continuity-person-data-row.is-address .continuity-person-data-value { overflow-wrap: break-word; }
#family-continuity-view .continuity-person-data-row.is-email .continuity-person-data-value { overflow-wrap: anywhere; }
#family-continuity-view .continuity-person-data-action,
#family-continuity-view .continuity-person-data-readonly,
#family-continuity-view .continuity-person-data-pending {
  grid-column: auto;
  font-size: 13px;
  white-space: normal;
}
#family-continuity-view .continuity-relationship-guidance {
  grid-column: 1 / -1;
  gap: 6px;
  margin: 0;
  padding: 16px 18px;
  border-left: 3px solid #ad7900;
  border-radius: 0 8px 8px 0;
  background: #fff9ea;
  font-size: 14px;
  line-height: 1.5;
}
#family-continuity-view .continuity-relationship-guidance strong,
#family-continuity-view .continuity-relationship-guidance span {
  overflow-wrap: break-word;
  word-break: normal;
}
#family-continuity-view .continuity-information-form .continuity-person-data {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Compact family update mode: each value and its action stay in one field. */
#family-continuity-view.is-updating { padding-block: 16px 24px; }
#family-continuity-view.is-updating > :not(.continuity-students),
#family-continuity-view.is-updating .continuity-student-card:not(.is-update-target),
#family-continuity-view.is-updating .is-update-target > :not(.continuity-response-controls),
#family-continuity-view.is-updating .is-update-target .continuity-response-controls > :not(.continuity-information-2027) { display: none; }
#family-continuity-view.is-updating .continuity-students,
#family-continuity-view.is-updating .is-update-target .continuity-information-2027 { margin: 0; }
#family-continuity-view .continuity-information-form {
  width: min(100%, 1120px);
  margin: 0 auto;
  gap: 0;
  border-radius: 12px;
  background: #fff;
}
#family-continuity-view .continuity-update-introduction { display: grid; gap: 4px; padding: 4px 20px 12px; }
#family-continuity-view .continuity-update-introduction h1 { margin: 0; color: var(--blue); font-size: 26px; line-height: 1.25; text-align: left; }
@media (min-width: 720px) {
  #family-continuity-view .continuity-update-introduction { grid-template-columns: minmax(0, 1fr) auto; }
  #family-continuity-view .continuity-update-introduction h1 { grid-column: 1; grid-row: 1; align-self: center; }
  #family-continuity-view .continuity-update-back { grid-column: 2; grid-row: 1; }
  #family-continuity-view .continuity-update-introduction > p,
  #family-continuity-view .continuity-update-legend { grid-column: 1 / -1; }
}
#family-continuity-view .continuity-update-introduction > p { margin: 0; font-size: 15px; line-height: 1.5; }
#family-continuity-view .continuity-update-back {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 8px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #52697d;
  font-weight: 600;
  font-size: 13px;
}
#family-continuity-view .continuity-update-back:hover,
#family-continuity-view .continuity-update-back:focus-visible { background: #f2f7fa; }
#family-continuity-view .continuity-update-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
  margin-top: 2px;
  padding: 8px 12px;
  border-radius: 8px;
  background: #f3f8fb;
}
#family-continuity-view .continuity-update-legend p { margin: 0; font-size: 13px; line-height: 1.45; }
#family-continuity-view .continuity-person-editor {
  min-width: 0;
  border: 0;
  border-top: 1px solid #dce6ed;
  border-radius: 0;
  box-shadow: none;
}
#family-continuity-view .continuity-person-editor > summary {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 6px 20px;
  border: 0;
  cursor: pointer;
  list-style: none;
}
#family-continuity-view .continuity-person-editor > summary::-webkit-details-marker { display: none; }
#family-continuity-view .continuity-person-editor > summary::after { content: '⌄'; margin-left: 12px; color: var(--blue); font-size: 20px; }
#family-continuity-view .continuity-person-editor[open] > summary::after { content: '⌃'; }
#family-continuity-view .continuity-person-editor > summary:focus-visible { outline: 3px solid var(--blue); outline-offset: -3px; }
#family-continuity-view .continuity-person-editor .continuity-person-identity { gap: 2px; }
#family-continuity-view .continuity-person-editor .continuity-person-identity > span { font-size: 12px; color: var(--muted); }
#family-continuity-view .continuity-person-editor .continuity-person-identity strong { font-size: 19px; line-height: 1.3; }
#family-continuity-view .continuity-update-person-status { margin-left: auto; font-size: 12px; white-space: nowrap; }
#family-continuity-view .continuity-update-groups { display: grid; gap: 10px; padding: 0 20px 10px; }
#family-continuity-view .continuity-update-group h4 {
  margin: 0 0 2px;
  padding: 5px 9px;
  border-radius: 4px;
  background: #edf4f8;
  color: #284d66;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
#family-continuity-view .continuity-information-form .continuity-person-data-row.is-issue-place .continuity-person-data-value {
  white-space: pre-line;
}
#family-continuity-view .continuity-information-form .continuity-update-group .continuity-person-data {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  padding: 0;
}
#family-continuity-view .continuity-information-form {
  --update-label-column: 148px;
  --update-action-column: 184px;
}
#family-continuity-view .continuity-information-form .continuity-person-data-row,
#family-continuity-view .continuity-information-form .continuity-person-data-row.is-name,
#family-continuity-view .continuity-information-form .continuity-person-data-row.is-address {
  display: grid;
  grid-column: auto;
  grid-template-columns: var(--update-label-column) minmax(0, 1fr) var(--update-action-column);
  align-items: center;
  gap: 6px 12px;
  min-width: 0;
  min-height: 50px;
  padding: 3px 0;
  border: 0;
  border-bottom: 1px solid #e5ebef;
  border-radius: 0;
  background: transparent;
}
#family-continuity-view .continuity-information-form .continuity-person-data-label { grid-column: 1; font-size: 13px; }
#family-continuity-view .continuity-information-form .continuity-person-data-value {
  grid-column: 2;
  min-width: 0;
  max-width: none;
  font-size: 15px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
#family-continuity-view .continuity-information-form .continuity-person-data-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  grid-column: 3;
  justify-self: end;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 6px 8px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--blue);
  font-size: 13px;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: #9ebbd0;
  text-underline-offset: 3px;
  white-space: normal;
}
#family-continuity-view .continuity-information-form .continuity-person-data-action:hover,
#family-continuity-view .continuity-information-form .continuity-person-data-action:focus-visible {
  background: #f2f7fa;
  text-decoration-color: currentColor;
}
#family-continuity-view .continuity-information-form .continuity-person-data-readonly,
#family-continuity-view .continuity-information-form .continuity-person-data-pending { grid-column: 3; }
#family-continuity-view .continuity-update-relationship-help {
  display: grid;
  grid-column: 2 / -1;
  gap: 3px;
  padding: 5px 9px;
  border-left: 3px solid #ad7900;
  border-radius: 0 6px 6px 0;
  background: #fff9ea;
  font-size: 13px;
  line-height: 1.4;
}
#family-continuity-view .continuity-additional-guardians {
  display: grid;
  grid-template-columns: var(--update-label-column) minmax(0, 1fr) var(--update-action-column);
  align-items: center;
  gap: 8px 12px;
  margin: 0;
  padding: 10px 20px;
  border-width: 1px 0 0;
  border-radius: 0;
}
#family-continuity-view .continuity-additional-guardians h4 { grid-column: 1; margin: 0; font-size: 18px; }
#family-continuity-view .continuity-additional-guardians > p { grid-column: 2; margin: 0; font-size: 14px; }
#family-continuity-view .continuity-additional-guardians .continuity-relationship-request {
  display: grid;
  grid-column: 3;
  grid-template-columns: minmax(0, 1fr);
  justify-items: end;
  padding: 0;
  border: 0;
}
#family-continuity-view .continuity-additional-guardians .continuity-relationship-request .continuity-person-data-action,
#family-continuity-view .continuity-additional-guardians .continuity-relationship-request .continuity-field-editor { grid-column: 1; }
#family-continuity-view .continuity-additional-guardians:has(.continuity-field-editor:not(.hidden)) .continuity-relationship-request,
#family-continuity-view .continuity-additional-guardians > .continuity-person-editor { grid-column: 1 / -1; }
#family-continuity-view .continuity-additional-guardians .continuity-relationship-request .continuity-field-editor { width: 100%; }
#family-continuity-view .continuity-information-warning {
  margin: 0;
  padding: 10px 20px;
  border-top: 1px solid #dce6ed;
  background: #f3f8fb;
  color: var(--text);
  font-size: 13px;
  line-height: 1.5;
}
#family-continuity-view .continuity-information-warning h4 { margin: 0 0 3px; font-size: 15px; }
#family-continuity-view .continuity-information-warning ul { margin: 0; padding-left: 20px; }
#family-continuity-view .continuity-person-field-editors { margin: 0 20px 16px; }
@media (max-width: 620px) {
  #family-continuity-view .continuity-person-field-editors .continuity-field-editor {
    scroll-margin-block: calc(24px + env(safe-area-inset-top)) calc(96px + env(safe-area-inset-bottom));
  }
}
#family-continuity-view .continuity-person-pending,
#family-continuity-view .continuity-person-save,
#family-continuity-view .continuity-change-comparison,
#family-continuity-view .continuity-person-editor > .message { margin-inline: 20px !important; }
@media (max-width: 620px) {
  #family-continuity-view .continuity-information-form .continuity-person-data-row,
  #family-continuity-view .continuity-information-form .continuity-person-data-row.is-name,
  #family-continuity-view .continuity-information-form .continuity-person-data-row.is-address {
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
    padding-block: 6px;
  }
  #family-continuity-view .continuity-information-form .continuity-person-data-label,
  #family-continuity-view .continuity-information-form .continuity-person-data-value,
  #family-continuity-view .continuity-information-form .continuity-person-data-action,
  #family-continuity-view .continuity-information-form .continuity-person-data-pending,
  #family-continuity-view .continuity-update-relationship-help { grid-column: 1; }
  #family-continuity-view .continuity-information-form .continuity-person-data-action { justify-self: start; }
  #family-continuity-view .continuity-additional-guardians { grid-template-columns: minmax(0, 1fr); }
  #family-continuity-view .continuity-additional-guardians h4,
  #family-continuity-view .continuity-additional-guardians > p,
  #family-continuity-view .continuity-additional-guardians .continuity-relationship-request { grid-column: 1; }
  #family-continuity-view .continuity-additional-guardians .continuity-relationship-request { justify-items: start; }
  #family-continuity-view .continuity-update-introduction,
  #family-continuity-view .continuity-update-groups,
  #family-continuity-view .continuity-information-warning,
  #family-continuity-view .continuity-additional-guardians { padding-inline: 16px; }
  #family-continuity-view .continuity-person-editor > summary { padding-inline: 16px; }
  #family-continuity-view .continuity-person-field-editors { margin-inline: 16px; }
  #family-continuity-view .continuity-person-pending,
  #family-continuity-view .continuity-person-save,
  #family-continuity-view .continuity-change-comparison,
  #family-continuity-view .continuity-person-editor > .message { margin-inline: 16px !important; }
}
@media (max-width: 800px) {
  .page-shell:has(#family-continuity-view:not(.hidden)) { width: calc(100% - 32px); }
  #family-continuity-view { padding: 24px; }
  #family-continuity-view .prematricula-stepper { gap: 8px; }
  #family-continuity-view .prematricula-step-copy strong { font-size: 13px; }
  #family-continuity-view .continuity-person-data { gap: 20px; }
}
@media (max-width: 620px) {
  .page-shell:has(#family-continuity-view:not(.hidden)) { width: 100%; padding: 16px 0 4px; }
  .page-shell:has(#family-continuity-view:not(.hidden)) > .institutional-header { margin-inline: 16px; }
  #family-continuity-view { padding: 24px 16px; border-radius: 0; }
  #family-continuity-title { font-size: 28px; }
  #family-continuity-view .continuity-decision-actions { flex-direction: column; align-items: stretch; }
  #family-continuity-view .continuity-decision-button { width: 100%; min-width: 0; }
  #family-continuity-view .continuity-student-heading { gap: 4px 12px; }
  #family-continuity-view .continuity-student-heading > strong { grid-column: 1 / -1; }
  #family-continuity-view .continuity-student-state { grid-column: 1; grid-row: 2; justify-self: start; }
  #family-continuity-view .continuity-student-current { grid-column: 1 / -1; grid-row: 3; }
  #family-continuity-view .continuity-recorded-summary { grid-column: 1 / -1; grid-row: 4; justify-content: flex-start; }
  #family-continuity-view .prematricula-stepper { grid-template-columns: minmax(0, 1fr); gap: 0; }
  #family-continuity-view .prematricula-stepper::before {
    top: 16px;
    right: auto;
    bottom: 16px;
    left: 15px;
    width: 2px;
    height: auto;
  }
  #family-continuity-view .prematricula-step {
    grid-template-columns: 32px minmax(0, 1fr);
    grid-template-rows: auto;
    align-items: center;
    gap: 12px;
    padding: 6px 0;
  }
  #family-continuity-view .prematricula-step-copy { gap: 0; }
  #family-continuity-view .continuity-person-data,
  #family-continuity-view .continuity-information-form .continuity-person-data { grid-template-columns: minmax(0, 1fr); }
  #family-continuity-view .continuity-person-header { flex-wrap: wrap; }
  #family-continuity-view .continuity-section-status { margin-left: 0; }
  #family-continuity-view .continuity-final-actions { flex-direction: column; align-items: stretch; padding: 20px 16px; }
  #family-continuity-view .continuity-final-actions button { width: 100%; min-width: 0; }
}

/* Request inbox layout overrides follow the shared administrative shell rules. */
.admin-workspace.family-request-workspace { grid-template-columns: minmax(280px,35fr) minmax(0,65fr); }
.admin-workspace.family-request-workspace:not(.has-selection) { grid-template-columns: 1fr; }
.family-request-workspace:not(.has-selection) .admin-detail-pane { display: none; }
.family-request-admin .family-request-list-heading h2 { border: 0; padding: 0; }

@media (max-width:1000px) and (min-width:721px) {
  .admin-workspace.family-request-workspace { grid-template-columns: minmax(250px,40fr) minmax(0,60fr); }
}

@media (max-width:720px) {
  .family-request-admin .family-request-filters { grid-template-columns: 1fr 1fr; }
  .admin-workspace.family-request-workspace,
  .family-request-comparison { grid-template-columns: 1fr; }
  .family-request-workspace.has-selection .admin-list-pane { display: none; }
  .family-request-workspace:not(.has-selection) .admin-list-pane { display: block; }
  .family-request-workspace.has-selection .admin-detail-pane { display: block; }
}

@media (max-width:440px) {
  .family-request-admin .family-request-filters { grid-template-columns: 1fr; }
}

/* Prematrícula touch targets: preserve visual density while ensuring a 44px hit area. */
#family-continuity-view button,
.continuity-confirmation button {
  min-width: 44px;
  min-height: 44px;
}
#family-continuity-view summary,
#family-continuity-view .continuity-person-data-action,
#family-continuity-view .continuity-missing-field-action,
#family-continuity-view .continuity-document-support-action,
#family-continuity-view .continuity-address-copy-option,
.continuity-confirmation .continuity-preview-option,
.continuity-confirmation .continuity-preview-acknowledgment {
  min-width: 44px;
  min-height: 44px;
}
#family-continuity-view .input,
#family-continuity-view select,
#family-continuity-view textarea,
.continuity-confirmation .input,
.continuity-confirmation select,
.continuity-confirmation textarea {
  min-height: 44px;
}
.continuity-confirmation .continuity-preview-official-link {
  display: inline-flex;
  align-items: center;
  min-width: 44px;
  min-height: 44px;
}
.continuity-confirmation button:focus-visible,
.continuity-confirmation a:focus-visible,
#family-continuity-view .continuity-address-copy-option:focus-within,
#family-continuity-view .continuity-document-support-action:focus-within,
.continuity-confirmation .continuity-preview-acknowledgment:focus-within {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
