:root {
  --cert-navy: #032f68;
  --cert-navy-2: #064a8d;
  --cert-blue: #1267d8;
  --cert-ink: #08235f;
  --cert-muted: #61749c;
  --cert-border: #dce4f0;
  --cert-bg: #f7f9fd;
  --cert-success: #149647;
  --cert-warning: #e98911;
  --cert-danger: #d63838;
}

.certificates-body {
  overflow-x: hidden;
  background: var(--cert-bg);
  color: var(--cert-ink);
  font-family: 'Segoe UI', Arial, sans-serif;
}

.certificates-body > .skip-link + .topbar { display: none; }

.certificate-app {
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  min-height: 100vh;
}

.certificate-sidebar {
  position: sticky;
  top: 0;
  display: flex;
  z-index: 20;
  height: 100vh;
  flex-direction: column;
  padding: 22px 12px 18px;
  background:
    radial-gradient(circle at 0 0, rgba(22, 107, 196, .36), transparent 30%),
    linear-gradient(180deg, #063a77 0%, #032d66 52%, #022554 100%);
  color: #fff;
}

.certificate-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 112px;
  margin-bottom: 22px;
}

.certificate-logo img {
  width: 172px;
  max-height: 105px;
  object-fit: contain;
}

.certificate-logo--text {
  flex-direction: column;
  align-items: flex-start;
  padding: 0 18px;
  color: #fff;
  text-decoration: none;
}

.certificate-logo--text strong {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 1.35rem;
  line-height: 1.02;
}

.certificate-logo--text small {
  margin-top: 7px;
  color: rgba(255,255,255,.65);
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.certificate-brand-wordmark {
  color: inherit;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 1.15rem;
  font-weight: 750;
  letter-spacing: -.02em;
}

.certificate-sidebar nav {
  display: grid;
  gap: 5px;
}

.certificate-sidebar nav a,
.certificate-sidebar__footer a,
.certificate-sidebar__footer button {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 50px;
  padding: 12px 15px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: rgba(255,255,255,.88);
  font: inherit;
  font-size: .82rem;
  font-weight: 650;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  gap: 13px;
}

.certificate-sidebar nav a span,
.certificate-sidebar__footer span {
  display: grid;
  width: 22px;
  place-items: center;
  font-size: 1.15rem;
}

.certificate-sidebar nav a:hover,
.certificate-sidebar nav a.is-active {
  background: linear-gradient(90deg, rgba(17, 105, 198, .92), rgba(17, 105, 198, .58));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
  color: #fff;
}

.certificate-sidebar__account {
  display: grid;
  grid-template-columns: 42px 1fr;
  align-items: center;
  margin-top: auto;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 8px;
  gap: 10px;
}

.certificate-sidebar__account > span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: var(--cert-navy);
  font-size: .76rem;
  font-weight: 900;
}

.certificate-sidebar__account b,
.certificate-sidebar__account small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.certificate-sidebar__account b { font-size: .68rem; }
.certificate-sidebar__account small { margin-top: 4px; color: rgba(255,255,255,.67); font-size: .62rem; }

.certificate-sidebar__footer {
  display: grid;
  margin-top: 10px;
  gap: 2px;
}

.certificate-sidebar__footer form { margin: 0; }
.certificate-sidebar__footer a,
.certificate-sidebar__footer button { min-height: 42px; font-size: .72rem; }
.certificate-sidebar__footer a:hover,
.certificate-sidebar__footer button:hover { background: rgba(255,255,255,.08); }

.certificate-content {
  min-width: 0;
  padding: 26px 30px 50px;
}

.certificate-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 24px;
  gap: 30px;
}

.certificate-page-header h1 {
  margin: 0;
  color: #092866;
  font-size: clamp(1.75rem, 2.5vw, 2.35rem);
  letter-spacing: -.035em;
}

.certificate-page-header p {
  margin: 7px 0 0;
  color: var(--cert-muted);
  font-size: .82rem;
}

.certificate-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.certificate-button,
.table-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid #b9cae0;
  border-radius: 6px;
  background: #fff;
  color: #0a4a9a;
  font: inherit;
  font-size: .7rem;
  font-weight: 760;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

.certificate-button:hover,
.table-action:hover {
  border-color: #4f89ce;
  box-shadow: 0 6px 16px rgba(26,76,144,.1);
  transform: translateY(-1px);
}

.certificate-button--primary {
  border-color: #063b7d;
  background: linear-gradient(135deg, #073e82, #0756a1);
  color: #fff;
}

.certificate-alert {
  margin-bottom: 18px;
  padding: 12px 15px;
  border: 1px solid;
  border-radius: 7px;
  font-size: .76rem;
}

.certificate-alert--success { border-color:#a7dfbc; background:#eefaf2; color:#13733b; }
.certificate-alert--error { border-color:#edb4b4; background:#fff1f1; color:#a92b2b; }

.certificate-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 20px;
  gap: 13px;
}

.certificate-kpis article {
  display: grid;
  grid-template-columns: 58px 1fr;
  align-items: center;
  min-height: 105px;
  padding: 17px;
  border: 1px solid var(--cert-border);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 5px 14px rgba(24,58,105,.035);
  gap: 14px;
}

.certificate-kpi-icon {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 50%;
  font-size: 1.45rem;
  font-weight: 900;
}

.certificate-kpi-icon--blue { background:#eaf2ff; color:#0f65dc; }
.certificate-kpi-icon--green { background:#eaf8ee; color:#12923c; }
.certificate-kpi-icon--purple { background:#f1ecff; color:#6530d7; }
.certificate-kpi-icon--orange { background:#fff3e2; color:#e58208; }
.certificate-kpis small,
.certificate-kpis strong,
.certificate-kpis em { display:block; }
.certificate-kpis small { color:#536893; font-size:.69rem; }
.certificate-kpis strong { margin-top:2px; color:#092763; font-size:1.65rem; }
.certificate-kpis em { margin-top:3px; color:#5f77a0; font-size:.61rem; font-style:normal; }

.certificate-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  align-items: start;
  margin-bottom: 18px;
  gap: 18px;
}

.certificate-panel {
  overflow: hidden;
  margin-bottom: 18px;
  border: 1px solid var(--cert-border);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(24,58,105,.025);
}

.certificate-panel__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 70px;
  padding: 17px 20px;
  border-bottom: 1px solid #e5ebf3;
  gap: 20px;
}

.certificate-panel__heading h2 {
  margin: 0;
  color: #0a2c68;
  font-size: .95rem;
}

.certificate-panel__heading p {
  margin: 5px 0 0;
  color: #7081a1;
  font-size: .64rem;
}

.certificate-panel__heading > a {
  color: #0c60c5;
  font-size: .68rem;
  font-weight: 750;
  text-decoration: none;
}

.certificate-table-wrap {
  overflow-x: auto;
}

.certificate-table {
  width: 100%;
  border-collapse: collapse;
  color: #17346d;
  font-size: .68rem;
}

.certificate-table th {
  padding: 11px 13px;
  border-bottom: 1px solid #dce4ef;
  background: #fbfcfe;
  color: #183c79;
  font-size: .62rem;
  font-weight: 800;
  text-align: left;
  white-space: nowrap;
}

.certificate-table td {
  padding: 11px 13px;
  border-bottom: 1px solid #e8edf4;
  vertical-align: middle;
}

.certificate-table tbody tr:hover { background:#f7faff; }
.certificate-table tbody tr:last-child td { border-bottom:0; }
.certificate-table b,
.certificate-table small { display:block; }
.certificate-table b { color:#123671; font-size:.69rem; }
.certificate-table small { margin-top:3px; color:#7487a7; font-size:.58rem; }
.certificate-table code { color:#0a519f; font-family:Consolas,monospace; font-size:.61rem; }
.certificate-table .table-action { min-height:29px; padding:5px 8px; font-size:.58rem; }

.certificate-row-actions { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.certificate-row-actions form { margin:0; }

.certificate-status {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 4px 9px;
  border-radius: 999px;
  background:#edf2f7;
  color:#5d6f8a;
  font-size:.57rem;
  font-weight:800;
  white-space:nowrap;
}

.certificate-status--active,
.certificate-status--valid,
.certificate-status--ready { background:#e7f8eb; color:#158239; }
.certificate-status--blocked,
.certificate-status--annulled,
.certificate-status--expired { background:#ffe9e9; color:#cc3636; }
.certificate-status--expiring,
.certificate-status--pending { background:#fff2de; color:#ce7410; }
.certificate-status--completed { background:#eaf1ff; color:#1760be; }
.certificate-status--superseded { background:#edf1f5; color:#69778c; }

.certificate-activity ul { margin:0; padding:7px 18px 15px; list-style:none; }
.certificate-activity li { display:grid; grid-template-columns:30px 1fr; align-items:start; padding:13px 0; border-bottom:1px solid #e8edf4; gap:10px; }
.certificate-activity li:last-child { border-bottom:0; }
.certificate-activity li > span { display:grid; width:28px; height:28px; place-items:center; border-radius:50%; background:#e7f8ed; color:#188b45; font-size:.67rem; }
.certificate-activity b,.certificate-activity small { display:block; }
.certificate-activity b { color:#173a76; font-size:.63rem; line-height:1.35; }
.certificate-activity small { margin-top:4px; color:#7c8daa; font-size:.55rem; }
.certificate-activity li.certificate-empty { display:block; }

.certificate-empty {
  padding:28px 18px;
  color:#7486a3;
  font-size:.7rem;
  text-align:center;
}

.certificate-empty--card { grid-column:1/-1; border:1px dashed #cfdbea; border-radius:8px; background:#fbfcfe; }

.certificate-card-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  padding:18px;
  gap:14px;
}

.course-card {
  padding:18px;
  border:1px solid #dce5f0;
  border-radius:7px;
  background:linear-gradient(145deg,#fff,#fafcff);
}

.course-card > div { display:flex; align-items:center; justify-content:space-between; }
.course-card > div small { color:#7084a3; font-size:.61rem; }
.course-card h3 { min-height:44px; margin:17px 0 8px; color:#12356f; font-size:.88rem; line-height:1.35; }
.course-card p { min-height:34px; margin:0; color:#7082a0; font-size:.65rem; line-height:1.5; }
.course-card footer { display:flex; justify-content:space-between; margin-top:18px; padding-top:13px; border-top:1px solid #e4eaf2; color:#41618c; font-size:.61rem; }

.certificate-settings-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:start;
  gap:18px;
}

.certificate-form {
  display:grid;
  padding:20px;
  gap:15px;
}

.certificate-form--two { grid-template-columns:1fr 1fr; }
.certificate-form label { display:grid; gap:6px; }
.certificate-form label > span { color:#294b7e; font-size:.66rem; font-weight:800; }
.certificate-form input,
.certificate-form select { min-height:42px; border-color:#cdd8e8; border-radius:6px; color:#12366d; font-size:.74rem; }
.form-span-2 { grid-column:span 2; }
.dialog-help { margin:0; padding:13px; border-radius:6px; background:#f0f6fd; color:#5d7294; font-size:.69rem; line-height:1.55; }

.template-list { display:grid; padding:14px; gap:10px; }
.template-list article { display:grid; grid-template-columns:42px minmax(160px,1fr) auto minmax(220px,auto); align-items:center; padding:13px; border:1px solid #e0e7f0; border-radius:7px; gap:12px; }
.template-list article > span { display:grid; width:42px; height:42px; place-items:center; border-radius:7px; background:#eaf2ff; color:#1765cc; font-size:.59rem; font-weight:900; }
.template-list b,.template-list small { display:block; }
.template-list b { font-size:.69rem; }
.template-list small { margin-top:4px; color:#7486a2; font-size:.58rem; }
.template-list em { color:#4d6a91; font-size:.58rem; font-style:normal; }
.template-list__actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:7px; }
.template-list__actions form { margin:0; }
.template-list__actions strong { color:#188447; font-size:.6rem; }
.course-card__company { margin:10px 0 0 !important; color:#31577d !important; }
.certificate-form [hidden] { display:none !important; }

.certificate-dialog {
  width:min(660px,calc(100% - 28px));
  max-height:90vh;
  padding:0;
  border:0;
  border-radius:10px;
  box-shadow:0 30px 90px rgba(3,30,69,.28);
  color:var(--cert-ink);
}

.certificate-dialog::backdrop { background:rgba(2,27,63,.58); backdrop-filter:blur(2px); }
.certificate-dialog > form > header { display:flex; align-items:start; justify-content:space-between; padding:22px 24px; border-bottom:1px solid #e0e7f0; }
.certificate-dialog h2 { margin:4px 0 0; font-size:1.35rem; }
.dialog-kicker { color:#0d65c4; font-size:.61rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.certificate-dialog header button { display:grid; width:34px; height:34px; place-items:center; border:1px solid #d4deeb; border-radius:6px; background:#fff; color:#5b7190; font-size:1.2rem; cursor:pointer; }
.certificate-dialog > form > footer { display:flex; justify-content:flex-end; padding:16px 24px; border-top:1px solid #e0e7f0; background:#fafcff; gap:8px; }

@media (max-width: 1220px) {
  .certificate-app { grid-template-columns:210px minmax(0,1fr); }
  .certificate-sidebar { padding-inline:8px; }
  .certificate-logo img { width:150px; }
  .certificate-content { padding-inline:20px; }
  .certificate-kpis { grid-template-columns:repeat(2,1fr); }
  .certificate-dashboard-grid { grid-template-columns:1fr; }
  .certificate-card-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 840px) {
  .certificate-app { width:100%; max-width:100%; grid-template-columns:minmax(0,1fr); }
  .certificate-sidebar { position:relative; min-width:0; max-width:100%; height:auto; padding:10px; }
  .certificate-logo { height:65px; margin:0; }
  .certificate-logo img { width:125px; height:60px; }
  .certificate-sidebar nav { display:flex; min-width:0; max-width:100%; overflow-x:auto; padding:8px 0; }
  .certificate-sidebar nav { scrollbar-width:none; -ms-overflow-style:none; }
  .certificate-sidebar nav::-webkit-scrollbar { display:none; }
  .certificate-sidebar nav a { flex:0 0 auto; width:auto; min-height:42px; padding:9px 12px; }
  .certificate-sidebar__account { display:none; }
  .certificate-sidebar__footer { grid-template-columns:1fr 1fr; margin-top:4px; }
  .certificate-content { padding:22px 14px 45px; }
  .certificate-page-header { align-items:flex-start; flex-direction:column; }
  .certificate-actions { justify-content:flex-start; }
  .certificate-settings-grid { grid-template-columns:1fr; }
}

@media (max-width: 600px) {
  .certificate-sidebar nav a { font-size:0; gap:0; }
  .certificate-sidebar nav a span { font-size:1.1rem; }
  .certificate-page-header h1 { font-size:1.7rem; }
  .certificate-kpis { grid-template-columns:1fr; }
  .certificate-kpis article { min-height:90px; }
  .certificate-card-grid { grid-template-columns:1fr; padding:12px; }
  .certificate-form--two { grid-template-columns:1fr; }
  .form-span-2 { grid-column:auto; }
  .certificate-dialog > form > footer { flex-direction:column-reverse; }
  .certificate-dialog .certificate-button { width:100%; }
}
/* Acceso local e independiente de SOEI Competence */
.certificate-login-body {
  min-height: 100vh;
  background: #f5f8fc;
}

.certificate-login {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(360px, 1.05fr) minmax(420px, .95fr);
  color: #10234a;
}

.certificate-login__brand {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(32px, 6vw, 88px);
  color: #fff;
  background:
    radial-gradient(circle at 82% 18%, rgba(48, 201, 190, .28), transparent 30%),
    linear-gradient(145deg, #061c4c 0%, #073d75 58%, #087b88 100%);
}

.certificate-login__brand::after {
  content: "";
  position: absolute;
  width: 560px;
  height: 560px;
  right: -260px;
  bottom: -260px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  box-shadow: 0 0 0 70px rgba(255, 255, 255, .035), 0 0 0 140px rgba(255, 255, 255, .025);
}

.certificate-login__logo,
.certificate-login__copy {
  position: relative;
  z-index: 1;
}

.certificate-login__logo img {
  width: min(270px, 72%);
  filter: brightness(0) invert(1);
}

.certificate-login__logo {
  color: #fff;
  text-decoration: none;
}

.certificate-context-brand {
  color: var(--cert-navy);
  text-decoration: none;
}

.certificate-login__copy {
  max-width: 650px;
  padding-top: 80px;
}

.certificate-login__copy > span,
.certificate-login__eyebrow {
  display: block;
  margin-bottom: 14px;
  color: #46d2cf;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.certificate-login__copy h1 {
  max-width: 720px;
  margin: 0 0 22px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.4rem, 4.6vw, 4.8rem);
  line-height: 1.03;
}

.certificate-login__copy p {
  max-width: 610px;
  color: rgba(255, 255, 255, .82);
  font-size: 1.05rem;
  line-height: 1.7;
}

.certificate-login__copy ul {
  display: grid;
  gap: 12px;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
}

.certificate-login__copy li::before {
  content: "✓";
  margin-right: 10px;
  color: #55e0c5;
  font-weight: 900;
}

.certificate-login__access {
  display: grid;
  place-items: center;
  padding: 40px;
  background:
    linear-gradient(rgba(255, 255, 255, .88), rgba(255, 255, 255, .96)),
    radial-gradient(circle at 30% 30%, #cceef0, transparent 42%);
}

.certificate-login__card {
  width: min(100%, 510px);
  padding: clamp(34px, 5vw, 58px);
  border: 1px solid #dce5f0;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(16, 35, 74, .13);
}

.certificate-login__badge {
  display: grid;
  width: 64px;
  height: 64px;
  margin-bottom: 28px;
  place-items: center;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(145deg, #0c4381, #109899);
  font-weight: 900;
  box-shadow: 0 12px 28px rgba(7, 83, 125, .24);
}

.certificate-login__card h2 {
  margin: 0 0 8px;
  color: #10234a;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 2.15rem;
}

.certificate-login__card > p {
  margin: 0 0 28px;
  color: #6a7994;
}

.certificate-login__form {
  display: grid;
  gap: 20px;
}

.certificate-login__form label {
  display: grid;
  gap: 8px;
  color: #1c3157;
  font-weight: 750;
}

.certificate-login__form input {
  width: 100%;
  min-height: 52px;
  padding: 0 16px;
  border: 1px solid #cbd7e7;
  border-radius: 10px;
  color: #12264a;
  background: #fff;
  font: inherit;
}

.certificate-login__form input:focus {
  border-color: #087b88;
  outline: 3px solid rgba(8, 123, 136, .14);
}

.certificate-login__form .certificate-button {
  min-height: 52px;
  justify-content: center;
}

.certificate-login__security {
  margin-top: 24px;
  padding: 14px 16px;
  border-radius: 10px;
  color: #536581;
  background: #f2f7fb;
  font-size: .84rem;
  line-height: 1.5;
}

.certificate-login__back {
  display: inline-block;
  margin-top: 22px;
  color: #075aa0;
  font-weight: 750;
  text-decoration: none;
}

@media (max-width: 900px) {
  .certificate-login {
    grid-template-columns: 1fr;
  }

  .certificate-login__brand {
    min-height: 430px;
    padding: 34px 26px 46px;
  }

  .certificate-login__copy {
    padding-top: 70px;
  }

  .certificate-login__copy h1 {
    font-size: clamp(2.2rem, 10vw, 3.5rem);
  }

  .certificate-login__access {
    padding: 28px 18px 48px;
  }
}

.certificate-access-options {
  display: grid;
  gap: 14px;
}

.certificate-access-options > a {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  align-items: center;
  min-height: 92px;
  padding: 16px;
  border: 1px solid #d4e0ed;
  border-radius: 14px;
  color: #10234a;
  text-decoration: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
  gap: 14px;
}

.certificate-access-options > a:hover {
  border-color: #5a99c8;
  box-shadow: 0 12px 25px rgba(16, 61, 112, .1);
  transform: translateY(-2px);
}

/* Acceso SOEI 2026: composición clara, alineada con el centro de productos. */
.certificate-login-body { background: #fbfcfd; }
.certificate-login {
  grid-template-columns: minmax(0, 1.18fr) minmax(520px, .82fr);
  background: linear-gradient(90deg, rgba(21,88,166,.025) 1px, transparent 1px), linear-gradient(rgba(8,127,140,.02) 1px, transparent 1px), #fbfcfd;
  background-size: 48px 48px;
}
.certificate-login__brand {
  justify-content: flex-start;
  padding: clamp(28px, 4.6vw, 72px);
  color: #0f2345;
  background: radial-gradient(circle at 49% 57%, rgba(8,127,140,.065), transparent 28%), #fbfcfd;
}
.certificate-login__brand::after {
  width: 620px; height: 620px; right: 10%; bottom: -280px;
  border-color: rgba(8,127,140,.09);
  box-shadow: 0 0 0 72px rgba(8,127,140,.025), 0 0 0 144px rgba(21,88,166,.018);
}
.certificate-soei-wordmark { display:inline-flex; align-items:center; gap:18px; color:#102f59; }
.certificate-soei-wordmark strong { padding-right:18px; border-right:1px solid #d8e0e8; font-size:clamp(2rem,3vw,3rem); letter-spacing:.06em; }
.certificate-soei-wordmark small { color:#596477; font-size:.82rem; line-height:1.45; }
.certificate-login__copy { max-width:780px; padding-top:clamp(58px,9vh,120px); }
.certificate-login__copy > span, .certificate-login__eyebrow { color:#087f8c; }
.certificate-login__copy h1 {
  max-width:720px; color:#102b52;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:clamp(2.6rem,4.15vw,4.45rem); font-weight:640; letter-spacing:-.045em;
}
.certificate-login__copy p { color:#596477; }
.certificate-login__network {
  position:relative; width:min(560px,92%); height:180px; margin:28px 0 4px;
  border:1px solid rgba(8,127,140,.14); border-radius:50%;
  box-shadow:inset 0 0 0 38px rgba(8,127,140,.018),inset 0 0 0 76px rgba(21,88,166,.018);
}
.certificate-login__network::before,.certificate-login__network::after { content:""; position:absolute; inset:50% 4%; height:1px; background:linear-gradient(90deg,transparent,rgba(8,127,140,.32),transparent); }
.certificate-login__network::after { transform:rotate(-18deg); }
.certificate-login__network span { position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); color:#087f8c; font-size:1.5rem; font-weight:800; }
.certificate-login__network i,.certificate-login__network b,.certificate-login__network em { position:absolute; width:11px; height:11px; border-radius:50%; background:#087f8c; box-shadow:0 0 0 7px rgba(8,127,140,.08); }
.certificate-login__network i { left:14%; top:61%; }
.certificate-login__network b { right:16%; top:25%; }
.certificate-login__network em { right:5%; bottom:25%; }
.certificate-login__copy ul { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.certificate-login__copy li { display:grid; gap:5px; min-width:0; color:#102b52; font-size:.86rem; }
.certificate-login__copy li::before { content:none; }
.certificate-login__copy li small { color:#697488; line-height:1.45; }
.certificate-login__access { padding:clamp(26px,5vw,70px); background:rgba(255,255,255,.68); }
.certificate-login__card { width:min(100%,620px); padding:clamp(34px,4.8vw,66px); border-color:#e0e5eb; border-radius:22px; box-shadow:0 18px 48px rgba(25,45,66,.11); }
.certificate-login--chooser .certificate-login__card { text-align:center; }
.certificate-login__badge { width:70px; height:70px; margin:0 auto 20px; border-radius:50%; color:#102f59; background:#eef2f7; box-shadow:none; }
.certificate-login__card h2 { color:#102b52; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; font-size:clamp(2rem,3vw,2.85rem); letter-spacing:-.035em; }
.certificate-access-options { margin-top:28px; text-align:left; }
.certificate-access-options > a { min-height:104px; border-color:#cad9ea; border-radius:13px; }
.certificate-access-options > a:hover { border-color:#1558a6; }
.certificate-access-options__icon { display:grid; width:52px; height:52px; place-items:center; border-radius:50%; color:#1558a6; background:#edf4fd; font-size:1.4rem; }
.certificate-access-options__icon--reader { color:#087f8c; background:#edf8f7; }
.certificate-access-options small { display:block; margin-top:4px; color:#68758a; line-height:1.45; }
.certificate-public-link { display:flex; justify-content:space-between; margin-top:20px; padding:20px 4px 0; border-top:1px solid #e2e6eb; color:#087f8c; font-weight:760; text-decoration:none; }
@media (max-width:1120px) {
  .certificate-login { grid-template-columns:1fr; }
  .certificate-login__brand { min-height:auto; }
  .certificate-login__copy { padding-top:54px; }
  .certificate-login__network { height:145px; }
}
@media (max-width:640px) {
  .certificate-soei-wordmark small,.certificate-login__network { display:none; }
  .certificate-login__copy h1 { font-size:2.3rem; }
  .certificate-login__copy ul { grid-template-columns:1fr; }
  .certificate-login__access { padding:18px 12px 36px; }
  .certificate-login__card { padding:30px 20px; }
  .certificate-access-options > a { grid-template-columns:46px minmax(0,1fr) auto; padding:14px 10px; }
}

.certificate-access-options__icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(145deg, #0b4f91, #087b88);
  font-size: 1.35rem;
}

.certificate-access-options__icon--reader {
  background: linear-gradient(145deg, #5f39a8, #844fc2);
}

.certificate-access-options strong,
.certificate-access-options small {
  display: block;
}

.certificate-access-options strong {
  margin-bottom: 5px;
  color: #102f64;
}

.certificate-access-options small {
  color: #697a96;
  line-height: 1.4;
}

.certificate-access-options b {
  color: #0b669c;
  font-size: 1.2rem;
}

.certificate-public-link {
  display: block;
  margin-top: 20px;
  color: #075aa0;
  font-weight: 750;
  text-align: center;
  text-decoration: none;
}

.certificate-context-page {
  display: grid;
  min-height: 100vh;
  padding: 32px 18px;
  place-items: center;
  color: #10234a;
  background:
    linear-gradient(rgba(246, 250, 253, .9), rgba(246, 250, 253, .96)),
    radial-gradient(circle at 20% 10%, #c8e7ef, transparent 35%);
}

.certificate-context-card {
  width: min(100%, 760px);
  padding: clamp(28px, 5vw, 52px);
  border: 1px solid #d7e2ee;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(16, 35, 74, .13);
}

.certificate-context-card--narrow {
  width: min(100%, 590px);
}

.certificate-context-brand {
  display: inline-block;
  margin-bottom: 30px;
}

.certificate-context-brand img {
  width: 210px;
}

.certificate-context-card h1 {
  margin: 0 0 12px;
  color: #10234a;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 5vw, 3.1rem);
}

.certificate-context-card > p {
  margin: 0 0 28px;
  color: #657692;
  line-height: 1.65;
}

.certificate-context-list {
  display: grid;
  gap: 12px;
}

.certificate-context-list > button {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  width: 100%;
  padding: 15px 17px;
  border: 1px solid #d4e0ed;
  border-radius: 12px;
  color: #10234a;
  background: #fff;
  text-align: left;
  cursor: pointer;
  gap: 14px;
}

.certificate-context-list > button:hover {
  border-color: #4f89ce;
  background: #f6faff;
}

.certificate-context-list > button > span {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(145deg, #0c4381, #109899);
}

.certificate-context-list strong,
.certificate-context-list small {
  display: block;
}

.certificate-context-list small {
  margin-top: 4px;
  color: #70809a;
}

.certificate-link-button {
  margin-top: 22px;
  padding: 0;
  border: 0;
  color: #075aa0;
  background: transparent;
  font: inherit;
  font-weight: 750;
  cursor: pointer;
}

.certificate-kpis--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.certificate-page-kicker {
  display: block;
  margin-bottom: 7px;
  color: #087b88;
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.certificate-governance-note {
  margin-top: 18px;
  padding: 18px 20px;
  border: 1px solid #cde2e5;
  border-radius: 10px;
  color: #21445e;
  background: #f0faf9;
}

.certificate-governance-note p {
  margin: 6px 0 0;
  font-size: .78rem;
  line-height: 1.55;
}

.certificate-actions-menu,
.certificate-inline-action {
  position: relative;
}

.certificate-actions-menu summary,
.certificate-inline-action summary {
  color: #0a4a9a;
  font-size: .65rem;
  font-weight: 800;
  cursor: pointer;
}

.certificate-actions-menu form {
  position: absolute;
  right: 0;
  z-index: 30;
  display: grid;
  width: 285px;
  padding: 16px;
  border: 1px solid #d5e1ee;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 42px rgba(15, 44, 91, .18);
  gap: 10px;
}

.certificate-admin-companies {
  overflow: visible;
}

.certificate-admin-companies .certificate-actions-menu[open]::before {
  position: fixed;
  z-index: 80;
  inset: 0;
  background: rgba(2, 27, 63, .48);
  content: "";
}

.certificate-admin-companies .certificate-actions-menu form {
  position: fixed;
  z-index: 81;
  top: 50%;
  left: 50%;
  right: auto;
  width: min(480px, calc(100vw - 32px));
  max-height: calc(100vh - 48px);
  overflow: auto;
  transform: translate(-50%, -50%);
}

.certificate-actions-menu label,
.certificate-inline-action form {
  display: grid;
  gap: 5px;
}

.certificate-actions-menu select,
.certificate-actions-menu textarea,
.certificate-inline-action input {
  width: 100%;
  padding: 8px 10px;
  border: 1px solid #cbd7e7;
  border-radius: 6px;
  font: inherit;
}

.certificate-actions-menu textarea {
  min-height: 72px;
  resize: vertical;
}

.certificate-inline-action form {
  min-width: 210px;
  margin-top: 8px;
}

.table-action--danger {
  border-color: #e4a6a6;
  color: #b42f2f;
  background: #fff5f5;
}

.certificate-filter-form {
  display: grid;
  grid-template-columns: minmax(150px, 1.2fr) minmax(150px, 1.2fr) minmax(130px, .8fr) minmax(130px, .8fr) auto auto;
  align-items: end;
  padding: 16px 20px;
  border-top: 1px solid #e4ebf3;
  background: #f9fbfd;
  gap: 10px;
}

.certificate-filter-form label {
  display: grid;
  gap: 5px;
  color: #344a70;
  font-size: .63rem;
  font-weight: 760;
}

.certificate-filter-form input,
.certificate-filter-form select {
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid #cbd7e7;
  border-radius: 6px;
  background: #fff;
  font: inherit;
}

.certificate-bulk-form {
  border-top: 1px solid #e4ebf3;
}

.certificate-bulk-editor > summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:13px 20px;
  background:#f7f9fc;
  color:#62748e;
  cursor:not-allowed;
  list-style:none;
  gap:12px;
}

.certificate-bulk-editor > summary::-webkit-details-marker { display:none; }
.certificate-bulk-editor > summary span { font-weight:850; }
.certificate-bulk-editor > summary small { font-size:.64rem; }
.certificate-bulk-editor.is-enabled > summary { background:#eaf4ff; color:#164d8a; cursor:pointer; }

.certificate-bulk-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(120px, .35fr) minmax(140px, .4fr) auto;
  align-items: end;
  padding: 14px 20px;
  background: #eef6ff;
  gap: 12px;
}

.certificate-bulk-toolbar strong,
.certificate-bulk-toolbar small {
  display: block;
}

.certificate-bulk-toolbar small {
  margin-top: 4px;
  color: #617693;
  font-size: .64rem;
}

.certificate-bulk-toolbar label {
  display: grid;
  gap: 5px;
  color: #344a70;
  font-size: .63rem;
  font-weight: 760;
}

.certificate-bulk-toolbar input {
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid #cbd7e7;
  border-radius: 6px;
  background: #fff;
  font: inherit;
}

.certificate-bulk-toolbar button:disabled {
  opacity: .55;
  cursor: not-allowed;
}

.certificate-branding-fields {
  display: grid;
  gap: 12px;
  margin: 4px 0;
  padding: 16px;
  border: 1px solid #d5e1ee;
  border-radius: 10px;
}

.certificate-branding-fields legend {
  padding: 0 8px;
  color: #153b68;
  font-weight: 800;
}

.certificate-check {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 9px !important;
  font-weight: 650 !important;
}

.certificate-check input {
  width: 18px !important;
  height: 18px;
}

.certificate-template-upload {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid #e4ebf3;
}

.certificate-result-groups {
  display: grid;
  padding: 18px;
  background: #f7fafd;
  gap: 14px;
}

.certificate-result-group {
  overflow: hidden;
  border: 1px solid #d7e2ef;
  border-radius: 10px;
  background: #fff;
}

.certificate-result-group > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 18px;
  color: #173b69;
  background: linear-gradient(90deg, #edf6ff, #f8fbfe);
  cursor: pointer;
  gap: 18px;
}

.certificate-result-group > summary div,
.certificate-result-group > summary strong,
.certificate-result-group > summary span {
  display: block;
}

.certificate-result-group > summary div:last-child {
  text-align: right;
}

.certificate-result-group > summary span {
  margin-top: 4px;
  color: #617693;
  font-size: .67rem;
}

.certificate-result-group [data-enrollment-row] {
  cursor: default;
}

.certificate-result-group [data-enrollment-row]:hover {
  background: #f5faff;
}

.certificate-global-template {
  margin-bottom: 18px;
}

.certificate-template-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 16px 20px;
  border-top: 1px solid #e3ebf4;
  border-bottom: 1px solid #e3ebf4;
  background: #f7fbff;
  gap: 14px;
}

.certificate-template-summary small,
.certificate-template-summary strong {
  display: block;
}

.certificate-template-summary small {
  color: #70809a;
  font-size: .62rem;
}

.certificate-template-summary strong {
  margin-top: 4px;
  color: #143862;
  font-size: .76rem;
}

.certificate-global-template__form {
  padding: 18px 20px 20px;
}

.certificate-global-template__action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.certificate-global-template__action p {
  margin: 0;
  color: #61728a;
  font-size: .7rem;
}

.certificate-creation-flow {
  margin-bottom: 18px;
  overflow: hidden;
  border: 1px solid #cfddeb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(20, 56, 98, .06);
}

.certificate-creation-flow__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 18px;
  border-bottom: 1px solid #dbe6f0;
  background: linear-gradient(90deg, #edf7fc, #f8fbfe);
  gap: 18px;
}

.certificate-creation-flow__heading span,
.certificate-creation-flow__heading h2 {
  display: block;
  margin: 0;
}

.certificate-creation-flow__heading span {
  color: #168398;
  font-size: .62rem;
  font-weight: 850;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.certificate-creation-flow__heading h2 {
  margin-top: 3px;
  color: #12365f;
  font-size: 1rem;
}

.certificate-creation-flow__heading a {
  color: #075f8d;
  font-size: .7rem;
  font-weight: 800;
}

.certificate-creation-flow ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 14px;
  list-style: none;
  gap: 10px;
}

.certificate-creation-flow li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  min-height: 84px;
  padding: 11px;
  border: 1px solid #d8e3ee;
  border-radius: 9px;
  background: #fafcfe;
  gap: 4px 9px;
}

.certificate-creation-flow li > span {
  display: grid;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: #fff;
  background: #7890aa;
  font-weight: 850;
  place-items: center;
}

.certificate-creation-flow li b,
.certificate-creation-flow li small {
  display: block;
}

.certificate-creation-flow li b {
  color: #173b69;
  font-size: .72rem;
}

.certificate-creation-flow li small {
  margin-top: 2px;
  color: #6c7e96;
  font-size: .61rem;
}

.certificate-creation-flow li button {
  grid-column: 2;
  justify-self: start;
  padding: 5px 9px;
  border: 1px solid #8db2ce;
  border-radius: 5px;
  color: #075f8d;
  background: #fff;
  cursor: pointer;
  font: inherit;
  font-size: .62rem;
  font-weight: 800;
}

.certificate-creation-flow li.is-complete > span {
  background: #15803d;
}

.certificate-creation-flow li.is-current {
  border-color: #2b91b1;
  background: #eefaff;
}

.certificate-creation-flow li.is-current > span {
  background: #087ca0;
}

.certificate-creation-flow li.is-locked {
  opacity: .62;
}

.certificate-creation-flow li button:disabled {
  cursor: not-allowed;
  opacity: .55;
}

.certificate-row-actions {
  display: flex;
  align-items: center;
  gap: 7px;
}

.certificate-row-actions form {
  margin: 0;
}

.certificate-row-actions button {
  white-space: nowrap;
}

.certificate-dialog--wide form {
  width: min(760px, calc(100vw - 32px));
}

.certificate-inline-filter { display:flex; justify-content:flex-end; margin:0 0 12px; }
.certificate-inline-filter label { display:flex; align-items:center; gap:8px; color:#5d7294; font-size:.68rem; font-weight:750; }
.certificate-inline-filter select { min-height:36px; padding:7px 32px 7px 10px; border:1px solid #cbd7e6; border-radius:6px; background:#fff; color:#112b52; font:inherit; }
.certificate-admin-companies .certificate-actions-menu { display:none; }
.certificate-admin-companies th:last-child,
.certificate-admin-companies td:last-child { position:sticky; right:0; z-index:2; min-width:245px; background:#fff; box-shadow:-8px 0 12px rgba(12,43,83,.05); }
.certificate-admin-companies th:last-child { z-index:3; background:#f5f8fc; }
.certificate-row-actions--admin { display:flex; flex-wrap:wrap; gap:5px; }
.certificate-button--compact { min-height:30px; padding:5px 8px; font-size:.62rem; }
.certificate-button--danger { border-color:#c83b46; background:#fff5f5; color:#a51f2c; }
.certificate-button--danger:hover { background:#a51f2c; color:#fff; }
.certificate-danger-summary { display:grid; padding:14px; gap:4px; border:1px solid #efb6bb; border-radius:7px; background:#fff5f5; color:#7f1d28; }
.certificate-danger-summary strong { font-size:1rem; }
.certificate-danger-summary span,.certificate-danger-summary small { color:#9b3b44; }
.certificate-danger-summary p { margin:7px 0 0; line-height:1.5; }

@media (max-width: 720px) {
  .certificate-inline-filter,.certificate-inline-filter label { align-items:stretch; flex-direction:column; }
  .certificate-admin-companies th:last-child,.certificate-admin-companies td:last-child { min-width:190px; }
  .certificate-row-actions--admin { display:grid; grid-template-columns:1fr 1fr; }
}

.certificate-import-guide {
  display: grid;
  grid-template-columns: minmax(210px, .75fr) minmax(0, 1.5fr);
  align-items: center;
  margin: 18px 20px 0;
  padding: 15px;
  border: 1px solid #cce0ed;
  border-radius: 9px;
  background: #f3f9fc;
  gap: 16px;
}

.certificate-import-guide ol {
  margin: 0;
  padding-left: 19px;
  color: #405b78;
  font-size: .68rem;
  line-height: 1.65;
}

@media (max-width: 1100px) {
  .certificate-filter-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .certificate-template-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .certificate-bulk-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .certificate-creation-flow ol {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .certificate-kpis--three,
  .certificate-filter-form {
    grid-template-columns: 1fr;
  }

  .certificate-access-options > a {
    grid-template-columns: 46px minmax(0, 1fr);
  }

  .certificate-access-options > a > b {
    display: none;
  }

  .certificate-actions-menu form {
    position: static;
    width: min(270px, 75vw);
  }

  .certificate-result-group > summary,
  .certificate-global-template__action {
    align-items: flex-start;
    flex-direction: column;
  }

  .certificate-result-group > summary div:last-child {
    text-align: left;
  }

  .certificate-template-summary {
    grid-template-columns: 1fr;
  }

  .certificate-bulk-toolbar,
  .template-list article {
    grid-template-columns: 1fr;
  }

  .certificate-creation-flow__heading,
  .certificate-import-guide {
    align-items: flex-start;
    grid-template-columns: 1fr;
  }

  .certificate-creation-flow__heading {
    flex-direction: column;
  }

  .certificate-creation-flow ol {
    grid-template-columns: 1fr;
  }

  .template-list__actions {
    justify-content:flex-start;
  }

  .template-list article > span {
    display: none;
  }
}
