/* =========================================================
   MiOposición — PREMIUM SaaS UI v2
   - Paleta de colores azul + cyan degradada premium
   - Efectos visuales sofisticados (sombras, blur, gradientes)
   - Dark mode automático optimizado
   - Componentes interactivos mejorados con micro-animaciones
   - Tipografía profesional optimizada
   ========================================================= */

/* ---------- THEME TOKENS (PALETA PREMIUM MEJORADA) ---------- */
:root{
  color-scheme: light;

  /* Colores primarios - Azul degradado premium */
  --primary: #1e63ff;
  --primary-2: #1f7db5;
  --primary-dark: #0d47a1;
  --primary-light: #5d9cff;
  --color-primary: var(--primary);
  --color-primary-soft: rgba(30,99,255,.1);
  
  /* Colores secundarios - Cyan y acentos */
  --secondary: #00d4ff;
  --secondary-light: #3de8ff;
  --accent: #7c3aed;
  --accent-light: #a855f7;
  --color-purple: var(--accent);
  
  /* Estados */
  --success: #10b981;
  --warning: #f59e0b;
  --danger: #ef4444;
  --color-success: var(--success);
  --color-warning: var(--warning);
  --color-danger: var(--danger);
  
  /* Escala neutral - Grises profesionales */
  --text: #0f172a;
  --text-secondary: #3b4356;
  --muted: #64748b;
  --muted-light: #94a3b8;

  --bg: #f8fafd;
  --surface: rgba(255,255,255,.94);
  --surface-soft: #f8fafd;
  --card: #ffffff;
  --color-muted: var(--muted);
  
  --border: rgba(15,23,42,.08);
  --border-light: rgba(15,23,42,.05);
  --input-border: rgba(15,23,42,.2);
  --input-bg: #f1f5f9;
  --shadow: 0 10px 30px rgba(30,99,255,.12);
  --shadow-lg: 0 20px 50px rgba(30,99,255,.15);
  --shadow-sm: 0 2px 8px rgba(15,23,42,.06);

  --radius: 16px;
  --radius-lg: 24px;
  --radius-md: 12px;
  --max: 1180px;

  --header-height: 70px;
  --page-top-spacing: 24px;
  --page-top-spacing-mobile: 16px;
  --brand-logo-height: 38px;
  --brand-logo-width: auto;
  --brand-logo-max-width: 210px;
  --brand-mark-size: 38px;
  --footer-logo-height: 34px;
  --footer-logo-max-width: 155px;
  --nav-item-height: 42px;
  --nav-item-padding-x: 16px;
  --surface-card: #ffffff;
  --border-soft: rgba(15,23,42,.08);
  --shadow-dropdown: 0 24px 70px rgba(15,23,42,.16);
  --radius-xl: 22px;
  --header-h: var(--header-height);
  --logo-h: var(--brand-logo-height);
  --home-section-gap: 60px;
  --home-section-gap-compact: 44px;
  --home-title-gap: 24px;
  --home-card-gap: 22px;
  --home-card-padding: 22px;
  --home-card-padding-compact: 18px;
  
  /* Transiciones suave */
  --transition: all .24s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-fast: all .15s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ---------- DASHBOARD PRIVADO 2026 ---------- */
.inicio-layout:not(.inicio-layout--landing) .inicio-main.card {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.dashboard-app {
  display: grid;
  grid-template-columns: minmax(170px, 210px) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.dashboard-nav {
  position: sticky;
  top: calc(var(--header-height, 72px) + 18px);
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px;
  border: 1px solid rgba(30, 99, 255, 0.12);
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(248,250,253,.9));
  box-shadow: 0 18px 44px rgba(2, 17, 48, 0.08);
}

.dashboard-nav__item,
.dashboard-quick__item,
.dashboard-card__link,
.dashboard-metric {
  text-decoration: none;
}

.dashboard-nav__item {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  color: var(--text-secondary);
  font-weight: 700;
  font-size: 14px;
  transition: var(--transition-fast);
}

.dashboard-nav__item:hover,
.dashboard-nav__item:focus-visible,
.dashboard-nav__item.is-active {
  color: var(--primary);
  background: rgba(30, 99, 255, 0.1);
}

.dashboard-nav__motivation{
  display:grid;
  justify-items:center;
  gap:8px;
  margin-top:14px;
  padding:18px 14px;
  border:1px solid rgba(30,99,255,.14);
  border-radius:18px;
  background:
    radial-gradient(circle at 50% 0%, rgba(30,99,255,.16), transparent 42%),
    linear-gradient(180deg, rgba(239,246,255,.95), rgba(255,255,255,.96));
  color:var(--text);
  text-align:center;
}

.dashboard-nav__motivation strong{
  font-size:14px;
  line-height:1.25;
}

.dashboard-nav__motivation p{
  margin:0;
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.45;
}

.dashboard-nav__trophy{
  width:58px;
  height:58px;
  border-radius:20px;
  background:
    linear-gradient(135deg, rgba(30,99,255,.18), rgba(245,158,11,.16)),
    #fff;
  box-shadow:inset 0 0 0 1px rgba(30,99,255,.1);
  position:relative;
}

.dashboard-nav__trophy::before{
  content:"";
  position:absolute;
  inset:14px;
  background:linear-gradient(135deg, #1e63ff, #f59e0b);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8 21h8v-2H8v2Zm4-4a5 5 0 0 0 5-5V4H7v8a5 5 0 0 0 5 5ZM5 6H3v3a4 4 0 0 0 4 4v-2a2 2 0 0 1-2-2V6Zm16 0h-2v3a2 2 0 0 1-2 2v2a4 4 0 0 0 4-4V6Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8 21h8v-2H8v2Zm4-4a5 5 0 0 0 5-5V4H7v8a5 5 0 0 0 5 5ZM5 6H3v3a4 4 0 0 0 4 4v-2a2 2 0 0 1-2-2V6Zm16 0h-2v3a2 2 0 0 1-2 2v2a4 4 0 0 0 4-4V6Z'/%3E%3C/svg%3E") center/contain no-repeat;
}

.dashboard-icon {
  position: relative;
  display: inline-flex;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  color: currentColor;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.dashboard-icon::before {
  content: "";
  width: 100%;
  height: 100%;
  background: currentColor;
  -webkit-mask: var(--dashboard-icon-mask) center / contain no-repeat;
  mask: var(--dashboard-icon-mask) center / contain no-repeat;
}

.dashboard-icon::after { display: none; }

.dashboard-icon--panel {
  --dashboard-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M4 5a1 1 0 0 1 1-1h5v7H4V5Zm10-1h5a1 1 0 0 1 1 1v3h-6V4ZM4 15h6v5H5a1 1 0 0 1-1-1v-4Zm10-3h6v7a1 1 0 0 1-1 1h-5v-8Z'/%3E%3C/svg%3E");
}

.dashboard-icon--tracking {
  --dashboard-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M12 21a9 9 0 1 1 9-9M12 17a5 5 0 1 1 5-5m-5 0 8-8m-3 0h3v3'/%3E%3C/svg%3E");
}

.dashboard-icon--calendar {
  --dashboard-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M7 3v3m10-3v3M4 9h16M5 5h14a1 1 0 0 1 1 1v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1Zm7 8v3l2 1.2'/%3E%3C/svg%3E");
}

.dashboard-icon--search {
  --dashboard-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='m21 21-4.3-4.3M10.8 18a7.2 7.2 0 1 1 0-14.4 7.2 7.2 0 0 1 0 14.4Z'/%3E%3C/svg%3E");
}

.dashboard-icon--practice {
  --dashboard-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M10 2h4m-2 7v4l3 2m4-6 1.5-1.5M12 22a8 8 0 1 1 0-16 8 8 0 0 1 0 16Z'/%3E%3C/svg%3E");
}

.dashboard-icon--exam {
  --dashboard-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M7 3h7l5 5v13H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Zm7 0v6h5m-9 6 2 2 4-5'/%3E%3C/svg%3E");
}

.dashboard-icon--account {
  --dashboard-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M18 20a6 6 0 0 0-12 0M12 13a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm0 9a10 10 0 1 0 0-20 10 10 0 0 0 0 20Z'/%3E%3C/svg%3E");
}

.dashboard-icon--warning {
  --dashboard-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M12 9v4m0 4h.01M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20Z'/%3E%3C/svg%3E");
}

.dashboard-icon--progress {
  --dashboard-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M4 19V5m0 14h16M7 15l4-4 3 3 5-7m-3 0h3v3'/%3E%3C/svg%3E");
}

.dashboard-icon--next {
  --dashboard-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20Zm-2-6 6-4-6-4v8Z'/%3E%3C/svg%3E");
}

.dashboard-panel {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dashboard-hero {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  padding: 24px;
  border:1px solid rgba(30,99,255,.12);
  border-radius:20px;
  background:
    radial-gradient(circle at 0% 0%, rgba(30,99,255,.1), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,250,253,.92));
  box-shadow:0 18px 42px rgba(2,17,48,.07);
}

.dashboard-kicker {
  margin: 0 0 7px;
  color: var(--primary);
  font-weight: 800;
  font-size: 12px;
  text-transform: uppercase;
}

.dashboard-hero h1 {
  margin: 0;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.08;
  color: var(--text);
  letter-spacing: 0;
}

.dashboard-hero p {
  margin: 8px 0 0;
  color: var(--text-secondary);
  font-size: 16px;
}

.dashboard-hero__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.dashboard-metrics,
.dashboard-grid,
.dashboard-quick__grid {
  display: grid;
  gap: 16px;
}

.dashboard-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

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

.dashboard-card,
.dashboard-side-card,
.dashboard-quick {
  border: 1px solid rgba(15, 23, 42, 0.09);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 18px 42px rgba(2, 17, 48, 0.07);
}

.dashboard-card {
  padding: 20px;
  color: var(--text);
}

.dashboard-card--accent-blue,
.dashboard-card--accent-green,
.dashboard-card--accent-orange,
.dashboard-card--accent-red,
.dashboard-card--accent-purple{
  --dashboard-accent: var(--primary);
  --dashboard-accent-soft: rgba(30,99,255,.1);
  border-color: color-mix(in srgb, var(--dashboard-accent) 22%, transparent);
  background:
    linear-gradient(135deg, var(--dashboard-accent-soft), rgba(255,255,255,.96) 58%),
    #fff;
}

.dashboard-card--accent-green{
  --dashboard-accent: var(--success);
  --dashboard-accent-soft: rgba(16,185,129,.11);
}

.dashboard-card--accent-orange{
  --dashboard-accent: var(--warning);
  --dashboard-accent-soft: rgba(245,158,11,.12);
}

.dashboard-card--accent-red{
  --dashboard-accent: #f43f5e;
  --dashboard-accent-soft: rgba(244,63,94,.12);
}

.dashboard-card--accent-purple{
  --dashboard-accent: var(--accent);
  --dashboard-accent-soft: rgba(124,58,237,.12);
}

.dashboard-card--large {
  min-height: 100%;
}

.dashboard-card--danger {
  background: linear-gradient(135deg, rgba(255, 241, 242, 0.95), rgba(255, 255, 255, 0.96));
  border-color: rgba(248, 113, 113, 0.24);
}

.dashboard-card--success {
  background: linear-gradient(135deg, rgba(236, 253, 245, 0.96), rgba(255, 255, 255, 0.96));
  border-color: rgba(16, 185, 129, 0.18);
}

.dashboard-card__head {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.dashboard-card__head--between {
  justify-content: space-between;
}

.dashboard-card__head .dashboard-icon,
.dashboard-metric__icon,
.dashboard-profile__icon,
.dashboard-quick__item .dashboard-icon {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
  flex-shrink: 0;
  padding: 10px;
  border-radius: 14px;
  color: var(--dashboard-accent, var(--primary));
  background: var(--dashboard-accent-soft, rgba(30, 99, 255, 0.1));
}

.dashboard-card h2,
.dashboard-quick h2,
.dashboard-profile h2 {
  margin: 0;
  color: var(--text);
  font-size: 18px;
  line-height: 1.25;
}

.dashboard-card p,
.dashboard-profile p {
  margin: 5px 0 0;
  color: var(--text-secondary);
  line-height: 1.5;
}

.dashboard-card__link,
.dashboard-metric__link,
.dashboard-side-card__head a {
  color: var(--primary);
  font-weight: 800;
  font-size: 14px;
}

.dashboard-card__link:hover,
.dashboard-metric:hover .dashboard-metric__link,
.dashboard-side-card__head a:hover {
  text-decoration: underline;
}

.dashboard-metric {
  display: grid;
  gap: 8px;
  align-content: start;
  min-height: 142px;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.dashboard-metric:hover,
.dashboard-metric:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(30, 99, 255, 0.22);
  box-shadow: 0 20px 48px rgba(30, 99, 255, 0.12);
}

.dashboard-metric__label {
  margin-top: 2px;
  color: var(--text);
  font-weight: 800;
  line-height: 1.25;
}

.dashboard-metric strong {
  color: var(--dashboard-accent, var(--primary));
  font-size: 32px;
  line-height: 1;
}

.dashboard-profile {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 18px 20px;
  border-color: rgba(30, 99, 255, 0.18);
  background: linear-gradient(135deg, rgba(30, 99, 255, 0.08), rgba(255, 255, 255, 0.96));
}

.dashboard-status-list,
.dashboard-exam-list,
.dashboard-hits__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.dashboard-status-list {
  display: grid;
  gap: 10px;
  margin-bottom: 16px;
}

.dashboard-status-list li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  color: var(--text-secondary);
}

.dashboard-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #94a3b8;
}

.dashboard-dot--success { background: #10b981; }
.dashboard-dot--warning { background: #f59e0b; }
.dashboard-dot--neutral { background: #64748b; }

.dashboard-kpi-list {
  display: grid;
  gap: 10px;
  margin: 0 0 16px;
}

.dashboard-kpi-list div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}

.dashboard-kpi-list dt {
  color: var(--text-secondary);
}

.dashboard-kpi-list dd {
  margin: 0;
  color: var(--text);
  font-weight: 800;
}

.dashboard-kpi-list .is-success { color: #059669; }
.dashboard-kpi-list .is-danger { color: #e11d48; }

.dashboard-fail-counter {
  display: inline-grid;
  gap: 4px;
  min-width: 100px;
  margin: 0 14px 0 0;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.75);
  color: var(--text-secondary);
  font-size: 12px;
  text-transform: uppercase;
}

.dashboard-fail-counter strong {
  color: #e11d48;
  font-size: 30px;
  line-height: 1;
}

.dashboard-exam-list {
  display: grid;
  gap: 12px;
}

.dashboard-exam-list li {
  display: grid;
  gap: 3px;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--border);
}

.dashboard-exam-list li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.dashboard-exam-list a {
  color: var(--primary);
  font-weight: 800;
}

.dashboard-exam-list span {
  color: var(--text-secondary);
  font-size: 13px;
}

.dashboard-quick {
  padding: 20px;
}

.dashboard-quick h2 {
  margin-bottom: 14px;
}

.dashboard-quick__grid {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.dashboard-quick__item {
  min-height: 74px;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  color: var(--text);
  font-weight: 800;
  line-height: 1.25;
  background: rgba(255, 255, 255, 0.8);
  overflow-wrap: anywhere;
}

.dashboard-quick__item:hover,
.dashboard-quick__item:focus-visible {
  color: var(--primary);
  border-color: rgba(30, 99, 255, 0.24);
  background: rgba(30, 99, 255, 0.06);
}

.dashboard-tip {
  margin: 0;
  padding: 12px 16px;
  border: 1px solid rgba(30, 99, 255, 0.18);
  border-radius: 14px;
  color: var(--text-secondary);
  background: rgba(30, 99, 255, 0.05);
}

.dashboard-side-card {
  padding: 20px;
}

.dashboard-side-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.dashboard-side-card__head h2,
.dashboard-side-card__head h3 {
  margin: 0;
  color: var(--text);
  font-size: 18px;
}

.dashboard-hits {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.dashboard-hits__list {
  display: grid;
  gap: 12px;
}

.dashboard-hits__list li {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 3px 12px;
  align-items: start;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}

.dashboard-hits__list li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.dashboard-hits__list time {
  color: var(--primary);
  font-weight: 800;
  font-size: 12px;
  line-height: 1.25;
  padding-top: 1px;
}

.dashboard-hits__list a {
  color: var(--text);
  font-weight: 800;
  font-size: 13px;
  line-height: 1.35;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.dashboard-hits__list span {
  grid-column: 2;
  color: var(--text-secondary);
  font-size: 12px;
  line-height: 1.35;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.dashboard-empty {
  margin: 0;
  color: var(--text-secondary);
  font-size: 14px;
}

.dashboard-empty--soft{
  margin:0 0 14px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(30,99,255,.055);
}

.dashboard-side-card .inicio-novedades-list li {
  border-bottom: 1px solid var(--border);
}

.dashboard-side-card .inicio-novedades-meta {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 3px 12px;
  align-items: start;
}

.dashboard-side-card .inicio-novedades-fecha {
  line-height: 1.25;
  padding-top: 1px;
}

.dashboard-side-card .inicio-novedades-meta > a:first-of-type {
  color: var(--primary);
  font-weight: 800;
  display:-webkit-box;
  overflow:hidden;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}

.dashboard-side-card .inicio-novedades-admin,
.dashboard-side-card .inicio-novedades-tipo {
  grid-column: 2;
}

@media (max-width: 1080px) {
  .dashboard-app {
    grid-template-columns: 1fr;
  }

  .dashboard-nav {
    position: static;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  }

  .dashboard-nav__motivation{
    grid-column:1 / -1;
  }
}

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

  .dashboard-grid--two {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1101px) and (max-width: 1500px) {
  .dashboard-quick__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .dashboard-hero,
  .dashboard-profile {
    display: grid;
    grid-template-columns: 1fr;
  }

  .dashboard-hero__actions,
  .dashboard-profile .btn {
    justify-content: stretch;
    width: 100%;
  }

  .dashboard-hero__actions .btn,
  .dashboard-profile .btn {
    width: 100%;
  }

  .dashboard-metrics,
  .dashboard-quick__grid {
    grid-template-columns: 1fr;
  }

  .dashboard-nav {
    display: none;
  }

  .dashboard-card,
  .dashboard-side-card,
  .dashboard-quick {
    border-radius: 14px;
    padding: 16px;
  }
}

/* ---------- DETALLE DE OPOSICION 2026 ---------- */
.oposition-hero {
  padding: 26px 0 22px;
  background: #f7faff;
  border-bottom: 1px solid rgba(30, 99, 255, 0.14);
}

.oposition-hero__breadcrumbs {
  margin-bottom: 18px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.oposition-hero__breadcrumbs .breadcrumbs__list {
  flex-wrap: nowrap;
  min-width: 0;
}

.oposition-hero__breadcrumbs .breadcrumbs__current {
  display: inline-block;
  max-width: min(52vw, 520px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: bottom;
}

.oposition-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.oposition-badges,
.oposition-hero-actions,
.oposition-nav-actions,
.oposition-staff-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.oposition-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.78);
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 800;
}

.oposition-title {
  max-width: 980px;
  margin: 14px 0 10px;
  color: var(--text);
  font-size: 52px;
  line-height: 1.08;
  letter-spacing: 0;
}

.oposition-agency {
  margin: 0 0 18px;
  color: var(--text);
  font-size: 18px;
  font-weight: 800;
}

.oposition-agency a {
  color: var(--text);
  text-decoration: none;
}

.oposition-agency a:hover {
  color: var(--primary);
}

.oposition-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.oposition-hero-actions {
  margin-top: 18px;
}

.oposition-meta li {
  display: grid;
  gap: 2px;
  min-width: 108px;
  padding: 11px 12px;
  border: 1px solid rgba(30, 99, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.76);
}

.oposition-meta span,
.oposition-data-item span,
.oposition-quick-list dt {
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 700;
}

.oposition-meta strong,
.oposition-data-item strong,
.oposition-quick-list dd {
  color: var(--text);
  font-size: 14px;
  font-weight: 900;
}

.oposition-follow-card,
.oposition-side-card {
  display: grid;
  gap: 12px;
  padding: 20px;
  border: 1px solid rgba(16, 185, 129, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 18px 42px rgba(2, 17, 48, 0.08);
}

.oposition-follow-card__eyebrow {
  margin: 0;
  color: #059669;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.oposition-follow-card h2,
.oposition-side-card h2,
.oposition-section h2 {
  margin: 0;
  color: var(--text);
  font-size: 20px;
  line-height: 1.25;
}

.oposition-follow-card p,
.oposition-side-card p,
.oposition-section__intro {
  margin: 0;
  color: var(--text-secondary);
  line-height: 1.55;
}

.oposition-follow-card form,
.oposition-side-card form {
  margin: 0;
}

.oposition-follow-card .btn,
.oposition-side-card .btn {
  width: 100%;
}

.oposition-nav-actions {
  margin-top: 22px;
}

.oposition-nav-actions a,
.oposition-related-grid a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 10px 14px;
  border: 1px solid rgba(30, 99, 255, 0.18);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--primary);
  font-weight: 800;
  text-decoration: none;
}

.oposition-nav-actions a:hover,
.oposition-related-grid a:hover {
  background: rgba(30, 99, 255, 0.08);
  text-decoration: none;
}

.oposition-staff-actions {
  margin-top: 16px;
  padding: 12px;
  border: 1px solid rgba(30, 99, 255, 0.16);
  border-radius: 8px;
  background: rgba(30, 99, 255, 0.05);
}

.oposition-staff-actions span {
  margin-right: auto;
  color: var(--text);
  font-weight: 900;
}

.oposition-staff-actions form {
  margin: 0;
}

.oposition-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 320px);
  gap: 24px;
  align-items: start;
}

.oposition-main {
  min-width: 0;
  display: grid;
  gap: 20px;
}

.oposition-sidebar {
  position: sticky;
  top: calc(var(--header-height, 72px) + 18px);
  display: grid;
  gap: 20px;
}

.oposition-section {
  padding: 22px;
  border-radius: 8px;
}

.oposition-section h2 {
  margin-bottom: 18px;
}

.oposition-data-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 24px;
}

.oposition-data-item {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}

.oposition-data-item a {
  color: var(--primary);
  text-decoration: none;
}

.oposition-data-item a:hover {
  text-decoration: underline;
}

.oposition-link-grid,
.oposition-related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}

.oposition-link-grid .oposition-document-card {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 4px 12px;
  min-height: 116px;
  padding: 14px;
  border: 1px solid rgba(30, 99, 255, 0.14);
  border-radius: 8px;
  background: rgba(248, 250, 253, 0.72);
  color: var(--text);
  text-decoration: none;
}

.oposition-link-grid .oposition-document-card:hover {
  border-color: rgba(30, 99, 255, 0.28);
  background: rgba(30, 99, 255, 0.06);
}

.oposition-document-card__icon {
  grid-row: 1 / span 2;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: rgba(30, 99, 255, 0.09);
  color: var(--primary);
}

.oposition-document-card__icon::before {
  content: "";
  width: 20px;
  height: 20px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M9 13h6M9 17h6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M9 13h6M9 17h6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.oposition-document-card--bulletin .oposition-document-card__icon::before,
.oposition-document-card--call .oposition-document-card__icon::before,
.oposition-document-card--document .oposition-document-card__icon::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M9 13h6M9 17h6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M9 13h6M9 17h6'/%3E%3C/svg%3E");
}

.oposition-document-card--office .oposition-document-card__icon::before,
.oposition-document-card--portal .oposition-document-card__icon::before,
.oposition-document-card--website .oposition-document-card__icon::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20'/%3E%3C/svg%3E");
}

.oposition-document-card__body {
  display: grid;
  gap: 3px;
}

.oposition-link-grid .oposition-document-card__body strong {
  font-weight: 900;
}

.oposition-link-grid .oposition-document-card__body small {
  color: var(--text-secondary);
  font-weight: 700;
}

.oposition-document-card__action {
  grid-column: 2;
  align-self: end;
  color: var(--primary);
  font-size: 12px;
  font-weight: 900;
}

.oposition-document-card--primary {
  border-color: rgba(30, 99, 255, 0.32);
  background: rgba(30, 99, 255, 0.06);
}

.oposition-timeline {
  position: relative;
  display: grid;
  gap: 0;
  padding: 0;
  margin: 0;
  list-style: none;
}

.oposition-timeline::before {
  content: "";
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 9px;
  width: 2px;
  background: rgba(30, 99, 255, 0.18);
}

.oposition-timeline li {
  position: relative;
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 20px;
  padding: 0 0 18px 30px;
}

.oposition-timeline li::before {
  content: "";
  position: absolute;
  top: 7px;
  left: 3px;
  width: 14px;
  height: 14px;
  border: 3px solid #fff;
  border-radius: 999px;
  background: var(--primary);
  box-shadow: 0 0 0 1px rgba(30, 99, 255, 0.3);
}

.oposition-timeline time {
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 800;
}

.oposition-timeline__arrow,
.oposition-timeline__note {
  margin: 0 8px;
  color: var(--text-secondary);
  font-weight: 800;
}

.oposition-description {
  max-width: 920px;
  color: var(--text);
  font-size: 16px;
  line-height: 1.75;
}

.oposition-description.long-form-text {
  text-align: left;
  text-justify: auto;
  hyphens: none;
}

.long-form-text {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  line-height: 1.7;
}

.modern-card,
.sidebar-card,
.summary-card {
  min-width: 0;
}

.entity-hero__card,
.modern-card {
  border: 1px solid rgba(30, 99, 255, 0.12);
}

.entity-badge {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
}

.link-card-grid a,
.final-cta a,
.staff-actions a {
  overflow-wrap: anywhere;
}

.danger-zone {
  border-top-color: rgba(239, 68, 68, 0.18);
}

.oposition-description p:first-child {
  margin-top: 0;
}

.oposition-description p:last-child {
  margin-bottom: 0;
}

.oposition-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.oposition-section-heading h2 { margin: 4px 0 0; }

.oposition-section-heading > a,
.oposition-side-card__text-link {
  color: var(--primary);
  font-size: 13px;
  font-weight: 850;
  text-decoration: none;
}

.oposition-section-heading > a:hover,
.oposition-side-card__text-link:hover { text-decoration: underline; }

.oposition-exam-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.oposition-exam-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--border-light);
  border-radius: 8px;
  background: #fff;
}

.oposition-exam-card__icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 8px;
  background: rgba(124, 58, 237, .09);
  color: #7c3aed;
}

.oposition-exam-card__icon::before {
  content: "";
  width: 22px;
  height: 22px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M9 13h6M9 17h3'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M9 13h6M9 17h3'/%3E%3C/svg%3E") center / contain no-repeat;
}

.oposition-exam-card time {
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 800;
}

.oposition-exam-card h3 {
  margin: 4px 0;
  font-size: 16px;
  line-height: 1.35;
}

.oposition-exam-card h3 a { color: var(--text); text-decoration: none; }
.oposition-exam-card h3 a:hover { color: var(--primary); }

.oposition-exam-card p {
  margin: 0;
  color: var(--text-secondary);
  font-size: 12px;
}

.oposition-exam-card > .btn {
  grid-column: 2;
  justify-self: start;
}

.oposition-exams-empty {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 18px;
  border: 1px dashed rgba(37, 99, 235, .24);
  border-radius: 8px;
  background: #f8fbff;
}

.oposition-exams-empty h3 { margin: 0 0 4px; font-size: 17px; }
.oposition-exams-empty p { margin: 0; color: var(--text-secondary); }
.oposition-exams-empty__actions { display: flex; flex-wrap: wrap; gap: 8px; }

.oposition-quick-list {
  display: grid;
  gap: 0;
  margin: 0;
}

.oposition-quick-list div {
  display: grid;
  grid-template-columns: minmax(92px, 1fr) minmax(0, 1.25fr);
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}

.oposition-quick-list div:last-child {
  border-bottom: 0;
}

.oposition-quick-list dd {
  min-width: 0;
  margin: 0;
  text-align: right;
}

.oposition-quick-list dd .pill {
  max-width: 100%;
  justify-content: center;
  text-align: center;
  white-space: normal;
}

.oposition-related-grid a {
  position: relative;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 112px;
  padding: 16px;
  border-radius: 8px;
  background: #f8fbff;
}

.oposition-related-card__icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: var(--category-icon-bg);
}

.oposition-related-card__copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.oposition-related-card__copy strong {
  color: var(--primary);
}

.oposition-related-card__copy small {
  color: var(--text-secondary);
  font-weight: 650;
  line-height: 1.4;
}

.oposition-related-card__arrow { align-self: center; }

@media (max-width: 1100px) {
  .oposition-hero__grid,
  .oposition-layout {
    grid-template-columns: 1fr;
  }

  .oposition-sidebar {
    position: static;
  }

  .oposition-title {
    font-size: 42px;
  }
}

@media (max-width: 760px) {
  .oposition-hero {
    padding: 20px 0;
  }

  .oposition-title {
    font-size: 31px;
  }

  .oposition-hero__breadcrumbs {
    overflow: visible;
  }

  .oposition-hero__breadcrumbs .breadcrumbs__list {
    flex-wrap: wrap;
  }

  .oposition-hero__breadcrumbs .breadcrumbs__current {
    max-width: 100%;
    white-space: normal;
  }

  .oposition-hero-actions,
  .oposition-hero-actions .btn {
    width: 100%;
  }

  .oposition-data-grid,
  .oposition-exam-grid,
  .oposition-timeline li,
  .oposition-quick-list div {
    grid-template-columns: 1fr;
  }

  .oposition-section-heading,
  .oposition-exams-empty {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  .oposition-section-heading { flex-direction: column; }

  .oposition-exams-empty__actions,
  .oposition-exams-empty__actions .btn {
    width: 100%;
  }

  .oposition-exam-card > .btn { grid-column: 1 / -1; width: 100%; }

  .oposition-timeline li {
    gap: 8px;
  }

  .oposition-quick-list dd {
    text-align: left;
  }

  .oposition-staff-actions {
    align-items: stretch;
    flex-direction: column;
  }

}

/* ---------- DETALLE DE ORGANISMO 2026 ---------- */
.organism-hero {
  padding: var(--page-top-spacing) 0 22px;
  background:
    radial-gradient(circle at 70% 12%, rgba(30, 99, 255, 0.09), transparent 32%),
    linear-gradient(180deg, rgba(248, 250, 253, 0.98), rgba(239, 246, 255, 0.72));
  border-bottom: 1px solid rgba(30, 99, 255, 0.14);
}

.organism-hero__topline {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-bottom: 18px;
}

.organism-hero__breadcrumbs {
  overflow-x: auto;
  scrollbar-width: thin;
}

.organism-hero__breadcrumbs .breadcrumbs__list {
  flex-wrap: nowrap;
}

.organism-hero__breadcrumbs .breadcrumbs__current {
  display: inline-block;
  max-width: min(50vw, 460px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: bottom;
}

.organism-hero__card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: 24px;
  padding: 28px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 18px 42px rgba(2, 17, 48, 0.07);
}

.organism-badges,
.organism-hero__actions,
.organism-hero__chips,
.organism-final-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.organism-badges span {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(30, 99, 255, 0.1);
  color: var(--primary);
  font-size: 12px;
  font-weight: 900;
}

.organism-hero h1 {
  max-width: 820px;
  margin: 12px 0 12px;
  color: var(--text);
  font-size: clamp(34px, 4.8vw, 54px);
  line-height: 1.08;
  letter-spacing: 0;
}

.organism-hero p {
  max-width: 760px;
  margin: 0 0 18px;
  color: var(--text-secondary);
  font-size: 17px;
  line-height: 1.55;
}

.organism-hero__chips {
  padding: 0;
  margin: 20px 0 0;
  list-style: none;
}

.organism-hero__chips li {
  display: grid;
  gap: 2px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(30, 99, 255, 0.06);
  border: 1px solid rgba(30, 99, 255, 0.12);
}

.organism-hero__chips span,
.organism-summary-list dt,
.organism-call-row__date span {
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 700;
}

.organism-hero__chips strong {
  color: var(--text);
  font-size: 13px;
  font-weight: 900;
}

.organism-metrics-card {
  display: grid;
  gap: 0;
  align-self: start;
  padding: 10px 18px;
  border: 1px solid rgba(30, 99, 255, 0.12);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 18px 42px rgba(2, 17, 48, 0.06);
}

.organism-metrics-card a,
.organism-metrics-card div {
  display: grid;
  grid-template-columns: 42px minmax(64px, max-content) minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  min-height: 64px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  text-decoration: none;
}

.organism-metrics-card a:last-child,
.organism-metrics-card div:last-child {
  border-bottom: 0;
}

.organism-metrics-card strong {
  color: var(--text);
  font-size: clamp(20px, 2vw, 24px);
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.organism-metrics-card div strong {
  font-size: clamp(18px, 1.65vw, 21px);
}

.organism-metrics-card span {
  color: var(--text-secondary);
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.entity-metrics__icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(30, 99, 255, 0.12), rgba(30, 99, 255, 0.04));
  border: 1px solid rgba(30, 99, 255, 0.16);
  position: relative;
}

.entity-metrics__icon::before,
.entity-metrics__icon::after {
  content: "";
  position: absolute;
  border: 2px solid var(--primary);
}

.entity-metrics__icon::before {
  inset: 9px 10px 8px;
  border-radius: 3px;
}

.entity-metrics__icon::after {
  width: 10px;
  height: 2px;
  border-width: 2px 0 0;
  top: 8px;
  left: 12px;
}

.entity-metrics__icon--green {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.14), rgba(16, 185, 129, 0.04));
  border-color: rgba(16, 185, 129, 0.18);
}

.entity-metrics__icon--green::before,
.entity-metrics__icon--green::after {
  border-color: #10b981;
}

.entity-metrics__icon--orange {
  background: linear-gradient(135deg, rgba(249, 115, 22, 0.14), rgba(249, 115, 22, 0.04));
  border-color: rgba(249, 115, 22, 0.18);
}

.entity-metrics__icon--orange::before,
.entity-metrics__icon--orange::after {
  border-color: #f97316;
}

.entity-metrics__icon--purple {
  background: linear-gradient(135deg, rgba(124, 58, 237, 0.14), rgba(124, 58, 237, 0.04));
  border-color: rgba(124, 58, 237, 0.18);
}

.entity-metrics__icon--purple::before,
.entity-metrics__icon--purple::after {
  border-color: #7c3aed;
}

.organism-metrics-card a:hover span {
  color: var(--primary);
}

.organism-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  gap: 24px;
  align-items: start;
}

.organism-main,
.organism-sidebar {
  display: grid;
  gap: 20px;
  min-width: 0;
}

.organism-sidebar {
  position: sticky;
  top: calc(var(--header-height, 72px) + 18px);
}

.organism-section,
.organism-side-card {
  min-width: 0;
  padding: 22px;
  border-radius: 18px;
}

.organism-section h2,
.organism-side-card h2,
.organism-final-cta h2 {
  margin: 0;
  color: var(--text);
  font-size: 20px;
  line-height: 1.25;
}

.organism-section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.organism-section__head a {
  color: var(--primary);
  font-weight: 900;
  text-decoration: none;
}

.organism-section__head a:hover {
  text-decoration: underline;
}

.organism-about {
  margin-top: 16px;
}

.organism-about::after {
  content: "";
  display: block;
  clear: both;
}

.organism-about__logo {
  float: left;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 260px;
  max-width: 40%;
  min-height: 150px;
  margin: 0 24px 16px 0;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(248, 250, 253, 0.78);
}

.organism-about__logo img {
  max-width: 100%;
  max-height: 120px;
  object-fit: contain;
}

.organism-about__copy {
  color: var(--text);
}

.organism-about__copy p:first-child {
  margin-top: 0;
}

.organism-about__copy p:last-child {
  margin-bottom: 0;
}

.organism-official-links,
.organism-resource-grid,
.organism-explore-links,
.organism-related-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.organism-official-links a,
.organism-resource-grid a,
.organism-explore-links a,
.organism-related-links a {
  display: grid;
  gap: 5px;
  min-height: 50px;
  align-content: center;
  padding: 12px 14px;
  border: 1px solid rgba(30, 99, 255, 0.14);
  border-radius: 14px;
  background: rgba(248, 250, 253, 0.72);
  color: var(--primary);
  font-weight: 900;
  text-decoration: none;
}

.organism-official-links a,
.organism-explore-links a,
.organism-resource-grid a,
.organism-related-links a {
  position: relative;
  padding-right: 36px;
}

.organism-official-links a::after,
.organism-explore-links a::after,
.organism-resource-grid a::after,
.organism-related-links a::after {
  content: "→";
  position: absolute;
  right: 14px;
  top: 50%;
  color: var(--primary);
  font-weight: 900;
  transform: translateY(-50%);
}

.organism-resource-grid a {
  color: var(--text);
}

.organism-resource-grid span {
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 700;
}

.organism-official-links a:hover,
.organism-resource-grid a:hover,
.organism-explore-links a:hover,
.organism-related-links a:hover {
  border-color: rgba(30, 99, 255, 0.28);
  background: rgba(30, 99, 255, 0.06);
}

.organism-seo-links p {
  max-width: 760px;
  margin: 10px 0 0;
  color: var(--text-secondary);
  line-height: 1.65;
}

.organism-related-links {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.organism-seo-links--compact {
  padding-top: 20px;
  padding-bottom: 20px;
}

.organism-seo-links--compact p {
  line-height: 1.5;
}

.organism-seo-links--compact .organism-related-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.organism-seo-links--compact .organism-related-links a {
  display: block;
  width: auto;
  min-height: 0;
  padding: 9px 32px 9px 12px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.25;
}

.organism-seo-links--compact .organism-related-links a::after {
  right: 11px;
}

.organism-call-row__title,
.organism-process-list a,
.organism-news-list a,
.organism-oep-list a {
  color: var(--primary);
  font-weight: 900;
  text-decoration: none;
}

.organism-calls-list {
  display: grid;
  gap: 0;
  margin-top: 2px;
}

.organism-call-row {
  display: grid;
  grid-template-columns: minmax(92px, 120px) minmax(0, 1fr) minmax(120px, auto) auto;
  gap: 18px;
  align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid var(--border);
}

.organism-call-row:last-child {
  border-bottom: 0;
}

.organism-call-row__date {
  display: grid;
  gap: 3px;
  color: var(--text);
  font-size: 13px;
  font-weight: 850;
  line-height: 1.25;
}

.organism-call-row__date span {
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 700;
}

.organism-call-row__main {
  min-width: 0;
}

.organism-call-row__title {
  display: inline;
  line-height: 1.45;
  overflow-wrap: anywhere;
  word-break: normal;
}

.organism-call-row__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 8px;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.35;
}

.organism-call-row__meta a {
  color: var(--primary);
  font-weight: 850;
  text-decoration: none;
}

.organism-call-row__status {
  min-width: 0;
}

.organism-call-row__status .pill {
  white-space: normal;
}

.organism-call-row__actions {
  display: flex;
  justify-content: flex-end;
}

.organism-call-row__title:hover,
.organism-call-row__meta a:hover,
.organism-process-list a:hover,
.organism-news-list a:hover,
.organism-oep-list a:hover {
  text-decoration: underline;
}

.organism-admin-link,
.organism-row-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 9px;
}

.organism-row-action {
  color: var(--primary);
  font-weight: 900;
  white-space: nowrap;
}

.organism-row-action::after {
  content: "→";
  margin-left: 7px;
}

.organism-empty-state {
  display: grid;
  justify-items: start;
  gap: 14px;
  padding: 18px;
  border: 1px dashed rgba(30, 99, 255, 0.2);
  border-radius: 14px;
  background: rgba(30, 99, 255, 0.04);
}

.organism-empty-state p {
  margin: 0;
  color: var(--text-secondary);
  font-weight: 750;
}

.organism-process-list,
.organism-oep-list,
.organism-oep-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.organism-process-list,
.organism-oep-list {
  display: grid;
  gap: 12px;
}

.organism-process-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}

.organism-process-list li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.organism-process-list span {
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 800;
}

/* ---------- PROCESOS POR ORGANISMO 2026 ---------- */
.organism-process-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: 28px;
  align-items: stretch;
  padding: 28px;
  margin-top: 0;
  border-color: rgba(30, 99, 255, .14);
  background:
    radial-gradient(circle at top right, rgba(30, 99, 255, .08), transparent 34%),
    linear-gradient(135deg, #fff, #f7fbff);
}

.organism-process-hero h1 {
  max-width: 860px;
  margin: 14px 0 10px;
  color: var(--text);
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.04;
  letter-spacing: 0;
}

.organism-process-hero p {
  max-width: 760px;
  margin: 0;
  color: var(--text-secondary);
  font-size: 16px;
  line-height: 1.55;
}

.organism-process-hero__actions,
.organism-process-links,
.organism-process-facts,
.organism-process-empty__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.organism-process-hero__actions {
  margin-top: 18px;
}

.organism-process-metrics {
  display: grid;
  gap: 0;
  align-self: stretch;
  margin: 0;
  padding: 16px 18px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 16px 42px rgba(15, 23, 42, .08);
}

.organism-process-metrics div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}

.organism-process-metrics div:last-child {
  border-bottom: 0;
}

.organism-process-metrics dt {
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 800;
}

.organism-process-metrics dd {
  margin: 0;
  color: var(--text);
  font-size: 24px;
  font-weight: 900;
  text-align: right;
}

.organism-process-metrics div:last-child dd {
  max-width: 190px;
  font-size: 14px;
  line-height: 1.25;
}

.organism-process-intro {
  margin-top: 18px;
}

.organism-process-facts,
.organism-process-links {
  margin-top: 14px;
}

.organism-process-empty {
  margin-top: 18px;
  border: 1px dashed rgba(30, 99, 255, .28);
  background: linear-gradient(135deg, rgba(30, 99, 255, .06), rgba(20, 184, 166, .04));
}

.organism-process-empty p {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

.organism-process-empty__actions {
  justify-content: center;
  margin-top: 18px;
}

.organism-news-list {
  display: flex;
  flex-direction: column;
  margin-top: 2px;
}

.news-item {
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}

.news-item:first-child {
  padding-top: 0;
}

.news-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.news-item time {
  display: block;
  margin-bottom: 6px;
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 800;
}

.news-title {
  display: block;
  color: var(--primary);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.45;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.news-meta {
  margin: 6px 0 0;
  color: var(--text-secondary);
  font-size: 12px;
  line-height: 1.4;
}

.organism-oep-list article {
  display: grid;
  gap: 7px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(248, 250, 253, 0.62);
}

.organism-oep-list article > span {
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 800;
}

.organism-oep-list article > strong {
  color: var(--text);
}

.organism-oep-list ul {
  display: grid;
  gap: 5px;
  margin-top: 4px;
}

.organism-oep-list li {
  color: var(--text-secondary);
  font-size: 13px;
}

.organism-summary-list {
  display: grid;
  gap: 0;
  margin: 14px 0 0;
}

.organism-summary-list div {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) minmax(0, 1.2fr);
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid var(--border);
}

.organism-summary-list div:last-child {
  border-bottom: 0;
}

.organism-summary-list dd {
  margin: 0;
  color: var(--text);
  font-weight: 900;
  text-align: right;
}

.organism-summary-list a {
  color: var(--primary);
}

.organism-final-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding: 20px 24px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(30, 99, 255, 0.08), rgba(255, 255, 255, 0.95));
}

.organism-final-cta p {
  margin: 7px 0 0;
  color: var(--text-secondary);
}

.organism-final-cta__actions {
  justify-content: flex-end;
}

.organism-staff-panel {
  margin-top: 18px;
  padding: 18px;
  border-radius: 18px;
  border-color: rgba(30, 99, 255, 0.18);
  background: linear-gradient(135deg, rgba(30, 99, 255, 0.06), rgba(255, 255, 255, 0.96));
}

.organism-staff-panel__main,
.organism-staff-danger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.organism-staff-panel h2,
.organism-staff-panel h3 {
  margin: 0;
  color: var(--text);
}

.organism-staff-panel h2 {
  font-size: 18px;
}

.organism-staff-panel h3 {
  font-size: 15px;
}

.organism-staff-panel p {
  margin: 5px 0 0;
  color: var(--text-secondary);
  font-size: 13px;
}

.organism-staff-panel__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.organism-staff-danger {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(239, 68, 68, 0.18);
}

.organism-staff-danger form {
  margin: 0;
}

@media (max-width: 1100px) {
  .organism-process-hero {
    grid-template-columns: 1fr;
  }

  .organism-hero__card,
  .organism-layout {
    grid-template-columns: 1fr;
  }

  .organism-sidebar {
    position: static;
  }
}

@media (max-width: 760px) {
  .organism-process-hero {
    padding: 20px;
    border-radius: 16px;
  }

  .organism-process-hero h1 {
    font-size: 31px;
  }

  .organism-process-metrics {
    grid-template-columns: 1fr;
  }

  .organism-process-metrics div {
    grid-template-columns: 1fr auto;
    padding: 12px 0;
  }

  .organism-process-metrics dd,
  .organism-process-metrics div:last-child dd {
    max-width: 180px;
    font-size: 20px;
    text-align: right;
  }

  .organism-hero__topline,
  .organism-section__head,
  .organism-final-cta {
    align-items: stretch;
    flex-direction: column;
  }

  .organism-hero__card,
  .organism-section,
  .organism-side-card {
    padding: 18px;
    border-radius: 16px;
  }

  .organism-hero h1 {
    font-size: 32px;
  }

  .organism-hero {
    padding-top: var(--page-top-spacing-mobile);
  }

  .organism-metrics-card a,
  .organism-metrics-card div {
    grid-template-columns: 38px minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 2px;
  }

  .organism-metrics-card strong,
  .organism-metrics-card span:not(.entity-metrics__icon) {
    grid-column: 2;
  }

  .organism-metrics-card .entity-metrics__icon {
    grid-row: 1 / span 2;
  }

  .organism-hero__actions .btn,
  .organism-final-cta__actions,
  .organism-final-cta__actions .btn {
    width: 100%;
  }

  .organism-summary-list div,
  .organism-process-list li {
    grid-template-columns: 1fr;
  }

  .organism-about__logo {
    float: none;
    width: 100%;
    max-width: 320px;
    margin: 0 0 20px;
  }

  .long-form-text {
    text-align: left;
    hyphens: none;
  }

  .organism-staff-panel__main,
  .organism-staff-danger {
    align-items: stretch;
    flex-direction: column;
  }

  .organism-staff-panel__actions {
    justify-content: flex-start;
  }

  .organism-call-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: rgba(248, 250, 253, 0.72);
  }

  .organism-call-row + .organism-call-row {
    margin-top: 12px;
  }

  .organism-call-row__date {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
  }

  .organism-call-row__date span::before {
    content: "· ";
  }

  .organism-call-row__actions .organism-row-action {
    width: 100%;
  }

  .organism-summary-list dd {
    text-align: left;
  }
}

/* Dark mode stays disabled until every shared and feature surface has a complete theme. */
@media (prefers-color-scheme: dark) and (min-width: 99999px){
  :root{
    --text: #f0f4f8;
    --text-secondary: #c5d4e8;
    --muted: #8fa3b8;
    --muted-light: #6b7985;

    --bg: #0a0e1a;
    --surface: rgba(20,30,58,.85);
    --card: rgba(20,30,58,.65);
    --surface-card: #111a31;
    --border-soft: rgba(230,238,255,.1);
    --shadow-dropdown: 0 24px 80px rgba(0,0,0,.36);
    
    --border: rgba(230,238,255,.08);
    --border-light: rgba(230,238,255,.04);
    --input-border: rgba(230,238,255,.2);
    --input-bg: rgba(255,255,255,.08);
    --shadow: 0 10px 40px rgba(30,99,255,.2);
    --shadow-lg: 0 20px 60px rgba(30,99,255,.25);
    --shadow-sm: 0 2px 12px rgba(0,0,0,.3);
  }
}

/* ---------- BASE ---------- */
*{ box-sizing:border-box; }
html{ height: 100%; }
body{ min-height: 100%; }

body{
  margin:0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1;
  color: var(--text);
  background:
    radial-gradient(1200px 600px at 25% -5%, rgba(30,99,255,.15), transparent 65%),
    radial-gradient(1000px 600px at 90% 5%, rgba(31,125,181,.12), transparent 62%),
    var(--bg);
  background-attachment: fixed;
  line-height: 1.6;
}

a{ color: inherit; text-decoration: none; transition: var(--transition); }
a:hover{ text-decoration: none; }

/* Tipografía mejorada */
h1, h2, h3, h4, h5, h6 { 
  line-height: 1.2; 
  letter-spacing: -0.02em;
  margin-top: 0;
  font-weight: 700;
}

p { margin: 1em 0; }
strong { font-weight: 700; }

.container{
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 24px;
}

@media (min-width: 1024px){
  .container{ padding-inline: 32px; }
}

@media (max-width: 640px){
  .container{ padding-inline: 20px; }
}

.no-scroll{ overflow: hidden; }

/* ---------- HEADER PREMIUM ---------- */
.topbar{
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--surface);
  backdrop-filter: blur(25px);
  border-bottom: 1px solid var(--border);
  transition: box-shadow .3s ease, background .3s ease;
}

.topbar.is-scrolled{
  box-shadow: 0 8px 28px rgba(30,99,255,.1);
  background: rgba(255,255,255,.98);
}

@media (prefers-color-scheme: dark) and (min-width: 99999px){
  .topbar.is-scrolled{
    background: rgba(20,30,58,.98);
    box-shadow: 0 8px 28px rgba(30,99,255,.2);
  }
}

.topbar__inner{
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

/* Línea de acento premium con animación suave */
.topbar__accent{
  height: 4px;
  background: linear-gradient(90deg, var(--primary) 0%, var(--secondary) 50%, var(--primary-2) 100%);
  opacity: .95;
  animation: shimmer 4s ease-in-out infinite;
}

@keyframes shimmer {
  0%, 100% { opacity: 0.95; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
}

/* ---------- LOGO PREMIUM ---------- */
.brand{
  display:flex;
  align-items:center;
  flex: 0 0 auto;
  min-width: 0;
  border-radius: 14px;
}

.brand--header{
  min-height: var(--header-height);
}

.brand-picture{
  display: flex;
  align-items: center;
  height: var(--logo-h);
  max-width: var(--brand-logo-max-width);
}

.brand-logo,
.brand__logo{
  height: var(--logo-h);
  width: var(--brand-logo-width);
  max-width: var(--brand-logo-max-width);
  display: block;
  object-fit: contain;
  transition: var(--transition);
}

.brand-mark{
  display: inline-flex;
  width: var(--brand-mark-size);
  height: var(--brand-mark-size);
  flex: 0 0 var(--brand-mark-size);
  align-items: center;
  justify-content: center;
}

.brand-name{
  color: var(--text);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1;
}

.brand-logo:hover,
.brand__logo:hover{
  transform: translateY(-1px);
}

.brand:focus-visible,
.nav__link:focus-visible,
.nav__dropdown-trigger:focus-visible,
.nav__dropdown-item:focus-visible,
.nav__cta:focus-visible,
.iconbtn:focus-visible{
  outline: 3px solid rgba(30,99,255,.24);
  outline-offset: 3px;
}

/* ---------- NAV (DESKTOP) ---------- */
.nav{
  display:flex;
  align-items:center;
  gap: 14px;
}

.nav--desktop{
  justify-content: flex-end;
  flex: 1;
}

.nav__link{
  position: relative;
  min-height: var(--nav-item-height);
  display: inline-flex;
  align-items: center;
  font-weight: 600;
  font-size: 15px;
  color: var(--text);
  padding: 10px var(--nav-item-padding-x);
  border-radius: 12px;
  transition: var(--transition-fast);
  white-space: nowrap;
}

.nav__link::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(30,99,255,.05);
  border-radius: 12px;
  opacity: 0;
  transition: var(--transition-fast);
  z-index: -1;
}

.nav__link:hover{
  color: var(--primary);
}

.nav__link:hover::before {
  opacity: 1;
}

.nav__link.is-active{
  background: linear-gradient(135deg, rgba(30,99,255,.12), rgba(30,99,255,.08));
  color: var(--primary);
  font-weight: 700;
  box-shadow: 0 0 0 3px rgba(30,99,255,.08);
}

/* Resaltado azul del menú actual cuando el usuario está logueado */
body.user-authenticated .nav__link.is-active,
body.user-authenticated .nav__dropdown-trigger.is-active{
  background: linear-gradient(135deg, rgba(30,99,255,.18), rgba(30,99,255,.12));
  color: var(--primary);
  font-weight: 700;
  box-shadow: 0 0 0 2px rgba(30,99,255,.2);
}
body.user-authenticated .nav__dropdown-item.is-active{
  background: rgba(30,99,255,.15);
  color: var(--primary);
  font-weight: 700;
  border-left: 3px solid var(--primary);
  padding-left: 13px;
}

body.user-authenticated .nav__dropdown--mega .nav__dropdown-item.is-active{
  border-left: 0;
  padding-left: 10px;
}

/* CTA Button Premium */
.nav__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;

  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  color:#fff;
  padding: 10px 18px;
  border-radius: 12px;
  font-weight: 800;
  font-size: 14px;
  border: none;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(30,99,255,.25);
  transition: var(--transition);
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}

.nav__cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.2), transparent);
  opacity: 0;
  transition: opacity .3s ease;
}

.nav__cta:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 36px rgba(30,99,255,.32);
  filter: brightness(1.05);
}

.nav__cta:hover::before {
  opacity: 1;
}

.nav__cta--ghost{
  background: rgba(30,99,255,.1);
  color: var(--primary);
  box-shadow: 0 0 0 1px rgba(30,99,255,.2);
  border: none;
}
.nav__cta--ghost:hover{
  background: rgba(30,99,255,.14);
  box-shadow: 0 0 0 1px rgba(30,99,255,.35);
  transform: translateY(-2px);
}

.nav__logout{ margin: 0; }

/* ---------- LOGIN FORM IN HEADER ---------- */
.nav__login-form{
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 0;
  padding: 0 12px 0 14px;
  border-left: 1px solid rgba(30,99,255,.15);
}

.nav__login-input{
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--border);
  font-size: 13px;
  background: rgba(255,255,255,.96);
  color: var(--text);
  font-family: inherit;
  font-weight: 500;
  width: 130px;
  transition: var(--transition-fast);
}

.nav__login-input:hover{
  background: rgba(255,255,255,1);
  border-color: rgba(30,99,255,.25);
}

.nav__login-input:focus{
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(30,99,255,.12);
  background: rgba(255,255,255,1);
}

.nav__login-input::placeholder{
  color: var(--muted);
  font-weight: 500;
}

@media (prefers-color-scheme: dark) and (min-width: 99999px){
  .nav__login-form{
    border-left-color: rgba(230,238,255,.12);
  }
  .nav__login-input{
    background: rgba(16,24,42,.65);
    border-color: rgba(230,238,255,.12);
    color: #e6eeff;
  }
  .nav__login-input:hover{
    background: rgba(16,24,42,.75);
    border-color: rgba(30,99,255,.35);
  }
  .nav__login-input:focus{
    background: rgba(16,24,42,.85);
    box-shadow: 0 0 0 3px rgba(30,99,255,.15);
  }
}

/* ---------- DROPDOWN ---------- */
.nav__dropdown{
  position: relative;
}

.nav__dropdown-trigger{
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  padding: 10px 14px;
  font-weight: 600;
  font-size: 15px;
  color: var(--text);
  border-radius: 12px;
  cursor: pointer;
  transition: var(--transition-fast);
  white-space: nowrap;
}

.nav__dropdown-trigger:hover{
  color: var(--primary);
  background: rgba(30,99,255,.05);
}

.nav__dropdown-trigger.is-active{
  background: linear-gradient(135deg, rgba(30,99,255,.12), rgba(30,99,255,.08));
  color: var(--primary);
  font-weight: 700;
}

.nav__dropdown-icon{
  transition: transform .3s cubic-bezier(0.4, 0, 0.2, 1);
  display: inline-block;
}

.nav__dropdown-trigger.is-open .nav__dropdown-icon{
  transform: rotate(180deg);
}

.nav__dropdown-menu{
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right:auto;
  background: var(--surface-card);
  border: 1px solid var(--border-soft);
  border-radius: 16px;
  box-shadow: var(--shadow-dropdown);
  min-width: 220px;
  max-width: min(280px, calc(100vw - 24px));
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease;
  z-index: 110;
  overflow: hidden;
  backdrop-filter: blur(10px);
}

.nav__dropdown[data-dropdown="cuenta"] .nav__dropdown-menu,
.nav__dropdown[data-dropdown="staff"] .nav__dropdown-menu{
  left:auto;
  right:0;
}

.nav__dropdown--mega{
  position: static;
}

.nav__dropdown--mega .nav__mega-menu{
  left: 50%;
  top: calc(100% - 1px);
  width: min(920px, calc(100vw - 48px));
  max-width: calc(100vw - 48px);
  min-width: 0;
  padding: 18px;
  display: grid;
  grid-template-columns: 1.25fr 1fr 1.15fr;
  gap: 12px;
  overflow: visible;
  transform: translate(-50%, -8px);
}

.nav__dropdown.is-open .nav__dropdown-menu{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.nav__dropdown--mega.is-open .nav__mega-menu{
  transform: translate(-50%, 0);
}

.nav__mega-col{
  display: grid;
  align-content: start;
  gap: 6px;
  min-width: 0;
  padding: 4px 10px 4px 4px;
}

.nav__mega-col + .nav__mega-col{
  border-left: 1px solid rgba(15,23,42,.07);
  padding-left: 16px;
}

.nav__dropdown-section-label{
  margin: 0 0 8px;
  padding: 0 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.nav__dropdown-item{
  display: block;
  width: 100%;
  padding: 12px 16px;
  text-align: left;
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: var(--transition-fast);
  white-space: nowrap;
  text-decoration: none;
}

.nav__mega-item{
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 11px 10px;
  border-radius: 12px;
  white-space: normal;
}

.nav__mega-item:hover{
  padding-left: 10px;
  transform: translateY(-1px);
}

.nav__mega-item span:last-child{
  display: grid;
  gap: 2px;
  min-width: 0;
}

.nav__mega-item strong{
  color: var(--text);
  font-size: 14px;
  line-height: 1.2;
}

.nav__mega-item small{
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
}

.nav__mega-item:hover strong,
.nav__mega-item.is-active strong{
  color: var(--primary);
}

.nav__item-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: rgba(30,99,255,.08);
  color: var(--primary);
  font-size: 0;
  line-height: 1;
  position: relative;
}

.nav__item-icon::before {
  content: "";
  width: 18px;
  height: 18px;
  background: currentColor;
  -webkit-mask: var(--nav-icon-mask) center / contain no-repeat;
  mask: var(--nav-icon-mask) center / contain no-repeat;
}

.nav__item-icon--overview { --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 13h6a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1Zm0 8h6a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1Zm10 0h6a1 1 0 0 0 1-1v-8a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1Zm-1-17v4a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1h-6a1 1 0 0 0-1 1Z'/%3E%3C/svg%3E"); }
.nav__item-icon--oposiciones { --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M12 21a9 9 0 1 1 9-9M12 16a4 4 0 1 1 4-4m-4 0 9-9m-3 0h3v3'/%3E%3C/svg%3E"); }
.nav__item-icon--bolsas { --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M10 6V5a2 2 0 0 1 2-2h0a2 2 0 0 1 2 2v1m-9 0h14a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a1 1 0 0 1 1-1Zm4 6h6'/%3E%3C/svg%3E"); }
.nav__item-icon--plazo { --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M7 3v3m10-3v3M4 9h16M5 5h14a1 1 0 0 1 1 1v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1Zm7 7v4l3 2'/%3E%3C/svg%3E"); }
.nav__item-icon--calendar { --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M7 3v3m10-3v3M4 9h16M5 5h14a1 1 0 0 1 1 1v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1Zm3 8h3v3H8z'/%3E%3C/svg%3E"); }
.nav__item-icon--oep { --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M7 3h7l5 5v13H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Zm7 0v6h5M9 13h6M9 17h6'/%3E%3C/svg%3E"); }
.nav__item-icon--organismos { --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3 21h18M5 21V9l7-5 7 5v12M9 21v-6h6v6M9 10h.01M15 10h.01'/%3E%3C/svg%3E"); }
.nav__item-icon--tipos { --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M4 7h16M4 12h10M4 17h7m7-1 2 2 3-4'/%3E%3C/svg%3E"); }
.nav__item-icon--novedades { --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9ZM10 21h4'/%3E%3C/svg%3E"); }
.nav__item-icon--territorio { --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M12 21s7-5.2 7-11a7 7 0 1 0-14 0c0 5.8 7 11 7 11Zm0-8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3C/svg%3E"); }

.nav__dropdown-item:hover{
  background: rgba(30,99,255,.08);
  color: var(--primary);
  padding-left: 18px;
}

.nav__dropdown-item.is-active{
  background: rgba(30,99,255,.12);
  color: var(--primary);
  font-weight: 700;
}

.nav__dropdown--mega .nav__dropdown-item.is-active{
  border-left: 0;
  padding-left: 10px;
}

.nav__dropdown-form{
  margin: 0;
  display: block;
}

.nav__dropdown-form .nav__dropdown-item{
  width: 100%;
}

/* ---------- MOBILE NAV ---------- */
.nav__toggle{
  display:none;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.6);
  cursor: pointer;
  align-items:center;
  justify-content:center;
  transition: var(--transition-fast);
}

.nav__toggle:hover {
  background: rgba(255,255,255,.8);
  border-color: rgba(30,99,255,.2);
}

@media (prefers-color-scheme: dark) and (min-width: 99999px){
  .nav__toggle { background: rgba(16,24,42,.6); }
  .nav__toggle:hover { background: rgba(16,24,42,.8); }
}

.hamburger{
  width: 18px;
  height: 2px;
  background: var(--text);
  border-radius: 2px;
  position: relative;
  transition: var(--transition-fast);
}

.hamburger:before,
.hamburger:after{
  content:"";
  position:absolute;
  left:0;
  width: 18px;
  height: 2px;
  background: var(--text);
  border-radius: 2px;
  transition: var(--transition-fast);
}

.hamburger:before{ top:-6px; }
.hamburger:after{ top: 6px; }

/* Drawer menú móvil (solo visible ≤980px) */
.navdrawer{
  display: none;
  position: fixed;
  inset: 0;
  z-index: 120;
  background: rgba(2, 6, 23, 0.42);
  backdrop-filter: blur(5px);
}
.navdrawer.is-open { display: block; }

.navdrawer__panel{
  position: absolute;
  top: calc(var(--header-h) + 3px);
  right: 16px;
  left: 16px;
  max-height: calc(100vh - var(--header-h) - 24px);
  border: 1px solid var(--border);
  border-radius: 18px;
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  background: var(--card);
  display: flex;
  flex-direction: column;
}
.navdrawer__head{
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.navdrawer__panel .nav--mobile{
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Móvil: fondo opaco para legibilidad (no afecta a PC) */
@media (max-width: 1080px) {
  .navdrawer {
    top: var(--header-h);
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(2, 6, 23, 0.78);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
  .navdrawer.is-open .navdrawer__panel,
  .navdrawer.is-open .nav--mobile { background: #fff; }
  .navdrawer.is-open .navdrawer__head { background: #f8fafc; }
}
@media (max-width: 1080px) and (prefers-color-scheme: dark) and (min-width: 99999px) {
  .navdrawer.is-open .navdrawer__panel,
  .navdrawer.is-open .nav--mobile { background: #141e3a; }
  .navdrawer.is-open .navdrawer__head { background: #1a2442; }
}

.navdrawer__title{
  font-weight: 800;
  letter-spacing: -.2px;
}

.iconbtn{
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: transparent;
  cursor: pointer;
  color: var(--text);
  transition: var(--transition-fast);
}

.iconbtn:hover {
  background: rgba(30,99,255,.08);
  border-color: rgba(30,99,255,.2);
}

.nav--mobile{
  display:flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px;
}

.nav__section{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  padding: 8px 10px 2px;
  font-weight: 700;
}

.nav__subsection{
  padding: 6px 10px 0;
  color: var(--primary);
  font-size: 12px;
  font-weight: 850;
}

.navdrawer__hr{
  height: 1px;
  background: var(--border);
  margin: 10px 0;
}

.nav__cta--full{
  width: 100%;
}

/* responsive */
@media (max-width: 1080px){
  .nav--desktop{ display:none; }
  .nav__toggle{ display:flex; }
  .nav__login-form{ display:none; }
  :root{
    --header-height: 68px;
    --brand-logo-height: 38px;
    --brand-logo-max-width: 190px;
    --brand-mark-size: 38px;
    --nav-item-height: 40px;
  }
}

@media (max-width: 640px){
  :root{
    --header-height: 66px;
    --page-top-spacing: var(--page-top-spacing-mobile);
    --brand-logo-height: 36px;
    --brand-logo-max-width: 176px;
    --brand-mark-size: 36px;
  }
}

/* ---------- PAGE HEADER ---------- */
.pagehead{
  padding: var(--page-top-spacing) 0 12px;
}

.pagehead__row{
  display:flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}

.pagetitle{
  margin: 0;
  font-size: 28px;
  font-weight: 900;
  letter-spacing: -0.5px;
  background: linear-gradient(135deg, var(--text), var(--text-secondary));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.pagesubtitle{
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 16px;
  font-weight: 500;
}
.pagesubtitle:empty{
  display: none;
}
.pagesubtitle__link { color: var(--primary); font-weight: 600; text-decoration: none; }
.pagesubtitle__link:hover { text-decoration: underline; }

.pageactions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}

/* Links externos en detalle de organismo: mejor en columna en móvil */
@media (max-width: 640px) {
  .organismo-links {
    flex-direction: column;
    align-items: stretch;
  }
  .organismo-links .btn {
    flex: 0 0 auto;
    width: 100%;
    justify-content: flex-start;
  }
}

/* ---------- BREADCRUMBS ---------- */
.breadcrumbs {
  margin-bottom: 10px;
}

.breadcrumbs__list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 0;
  margin: 0;
  font-size: 13px;
}

.breadcrumbs__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.breadcrumbs__item:not(:last-child)::after {
  content: "›";
  color: var(--muted);
  font-weight: 700;
  font-size: 14px;
  opacity: 0.7;
}

.breadcrumbs__link {
  color: var(--muted);
  text-decoration: none;
  transition: var(--transition-fast);
  padding: 4px 8px;
  border-radius: 8px;
}

.breadcrumbs__link:hover {
  color: var(--primary);
  background: rgba(30, 99, 255, 0.08);
}

.breadcrumbs__current {
  font-weight: 700;
  color: var(--text);
  padding: 4px 10px;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(30, 99, 255, 0.08), rgba(31, 125, 181, 0.06));
  border: 1px solid rgba(30, 99, 255, 0.15);
}

/* ---------- MAIN ---------- */
.main{
  padding: 14px 0 28px;
}

/* ---------- CARDS PREMIUM ---------- */
.card{
  background: var(--card);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
  padding: 24px;
  transition: var(--transition-fast);
}

.card:hover {
  border-color: rgba(30,99,255,.12);
  box-shadow: 0 4px 16px rgba(30,99,255,.08);
}

/* ---------- LEGACY TEMPLATE MODERNIZATION LAYER ---------- */
.content-panel,
.legal-doc,
.oep-overview,
.oep-prose,
.hub-nav,
.exam-detail-card {
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,255,.94));
  box-shadow: 0 14px 38px rgba(15,23,42,.06);
}

.content-panel,
.oep-overview,
.oep-prose,
.hub-nav,
.exam-detail-card {
  padding: 24px;
}

.legal-doc {
  padding: clamp(22px, 3vw, 34px);
}

.legal-doc__updated,
.content-kicker {
  color: var(--muted);
  font-size: 14px;
  font-weight: 700;
}

.legal-doc h2,
.content-panel h2 {
  margin: 28px 0 12px;
  color: var(--text);
  font-size: 20px;
  line-height: 1.25;
  letter-spacing: 0;
}

.legal-doc h2:first-of-type,
.content-panel h2:first-child {
  margin-top: 0;
}

.legal-doc p,
.legal-doc li,
.content-panel p,
.oep-prose p,
.exam-detail-card p {
  color: var(--text-secondary);
  font-size: 15px;
  line-height: 1.7;
}

.legal-doc a,
.content-panel a,
.oep-prose a,
.exam-detail-card a {
  font-weight: 700;
}

.legal-doc table {
  width: 100%;
  margin: 18px 0;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.legal-doc th,
.legal-doc td {
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}

.legal-doc tr:last-child td {
  border-bottom: 0;
}

.legal-doc th {
  color: var(--text);
  font-size: 13px;
  font-weight: 850;
  background: rgba(30,99,255,.06);
}

.content-grid,
.oep-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px;
}

.meta-item {
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid rgba(30,99,255,.12);
  border-radius: 12px;
  background: rgba(255,255,255,.78);
}

.meta-item__label {
  display: block;
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
}

.meta-item__value {
  color: var(--text);
  font-size: 15px;
  font-weight: 750;
}

.status-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}

.status-strip__summary {
  color: var(--text);
  font-size: 16px;
  font-weight: 800;
}

.status-strip__summary strong {
  color: var(--primary);
}

.inline-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.stack-links {
  display: grid;
  gap: 5px;
}

.stack-links a,
.table .table-link {
  color: var(--primary);
  font-weight: 750;
  text-decoration: none;
}

.stack-links a:hover,
.table .table-link:hover {
  text-decoration: underline;
}

.exam-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 12px;
}

.exam-list__item {
  border: 1px solid rgba(30,99,255,.12);
  border-radius: 12px;
  background: rgba(255,255,255,.86);
  box-shadow: var(--shadow-sm);
  transition: var(--transition-fast);
}

.exam-list__item a {
  display: grid;
  gap: 3px;
  padding: 13px 14px;
  color: var(--text);
  text-decoration: none;
}

.exam-list__title {
  font-weight: 800;
  font-size: 14px;
  line-height: 1.35;
}

.exam-list__meta {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.35;
}

.exam-list__item:hover {
  transform: translateY(-2px);
  border-color: rgba(30,99,255,.26);
  box-shadow: var(--shadow);
}

.hub-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.hub-nav strong {
  color: var(--text);
}

.hub-nav a,
.hub-nav span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 11px;
  border-radius: 999px;
  border: 1px solid rgba(30,99,255,.14);
  background: rgba(30,99,255,.06);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.hub-nav span {
  color: var(--text);
  background: rgba(15,23,42,.05);
  border-color: var(--border);
}

/* ---------- BUTTONS PREMIUM ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.8);
  color: var(--text);
  font-weight: 700;
  font-size: 14px;
  cursor:pointer;
  transition: var(--transition-fast);
  white-space: nowrap;
}

.btn:hover{ 
  background: rgba(255,255,255,.95);
  border-color: rgba(30,99,255,.2);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(30,99,255,.12);
}

.btn-primary{
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  border-color: transparent;
  color: #fff;
  box-shadow: 0 8px 20px rgba(30,99,255,.22);
}

.btn-primary:hover{
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  color: #fff;
  box-shadow: 0 12px 32px rgba(30,99,255,.28);
  transform: translateY(-2px);
}

.btn-secondary{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: rgba(30,99,255,.08);
  color: var(--primary);
  border: 1px solid rgba(30,99,255,.18);
  padding: 10px 16px;
  border-radius: 12px;
  font-weight: 650;
  font-size: 14px;
  cursor: pointer;
  transition: var(--transition-fast);
  text-decoration: none;
}

/* Danger variant for destructive actions */
.btn-danger{
  background: linear-gradient(135deg, #ef4444, #f97316);
  color: #fff;
  border: none;
  box-shadow: 0 8px 20px rgba(239,68,68,.18);
}

.btn-danger:hover{
  background: linear-gradient(135deg, #ef4444, #f97316);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(239,68,68,.22);
}

.btn-secondary:hover{
  background: rgba(30,99,255,.12);
  border-color: rgba(30,99,255,.3);
  transform: translateY(-1px);
}

/* ---------- FORMS ---------- */
.filters{
  display:flex;
  gap: 12px;
  flex-wrap:wrap;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}

.filters > div{
  flex:1;
  min-width: 160px;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.filters label{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  font-weight: 700;
}

input, select, button{
  width:100%;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid var(--input-border);
  font-size: 14px;
  font-weight: 500;
  box-sizing:border-box;
  background: var(--input-bg);
  color: var(--text);
  font-family: inherit;
  transition: var(--transition-fast);
}

input:hover, select:hover {
  border-color: rgba(30,99,255,.25);
}

input:focus, select:focus{
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(30,99,255,.12);
}

button{
  cursor:pointer;
  border:none;
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  color:#fff;
  font-weight: 700;
  box-shadow: 0 8px 16px rgba(30,99,255,.2);
}

button:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(30,99,255,.28);
  filter: brightness(1.05);
}

button:disabled{ 
  opacity: .6; 
  cursor: not-allowed;
  transform: none;
}

/* ---------- FILTER MULTI (dropdowns con checkboxes) ---------- */
.filter-multi { position: relative; }
.filter-multi__wrap { position: relative; }
.filter-multi__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-width: 160px;
  padding: 10px 14px;
  font-size: 14px;
  font-weight: 500;
  text-align: left;
  background: var(--input-bg, #fff);
  border: 1px solid var(--input-border, #e2e8f0);
  border-radius: 12px;
  cursor: pointer;
  color: var(--text, #1e293b);
  font-family: inherit;
  appearance: none;
  box-sizing: border-box;
}
.filter-multi__trigger:hover { border-color: rgba(30,99,255,.25); }
.filter-multi__trigger[aria-expanded="true"] { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(30,99,255,.12); }
.filter-multi__trigger .filter-multi__arrow { margin-left: 8px; font-size: 10px; color: var(--muted); transition: transform .2s; }
.filter-multi__trigger[aria-expanded="true"] .filter-multi__arrow { transform: rotate(180deg); }
.filter-multi__panel {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 50;
  margin-top: 6px;
  min-width: 260px;
  background: var(--card, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
  overflow: hidden;
  display: none;
  flex-direction: column;
}
.filter-multi__panel:not([hidden]) {
  display: flex;
}
.filter-multi__list {
  max-height: 280px;
  overflow-y: auto;
  padding: 8px 0;
}
.filter-multi__option {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  cursor: pointer;
  font-size: 14px;
  color: var(--text);
  transition: background .15s;
}
.filter-multi__option:hover { background: rgba(0,0,0,.05); }
.filter-multi__option input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  flex-shrink: 0;
  cursor: pointer;
  accent-color: var(--primary);
}
.filter-multi__footer {
  display: flex;
  gap: 10px;
  padding: 12px 14px;
  border-top: 1px solid var(--border);
  background: var(--surface, #f8fafc);
}
.filter-multi__footer .btn { flex: 1; padding: 8px 12px; font-size: 13px; }
.filter-multi__footer .btn--ghost { background: #fff; border: 1px solid var(--border); color: var(--text); }
.filter-multi__footer .btn--ghost:hover { background: var(--surface); }

/* ---------- TABLES PREMIUM ---------- */
.table{
  width:100%;
  border-collapse: collapse;
  background: transparent;
}

.table th,
.table td{
  text-align:left;
  padding: 14px 12px;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}

.table th{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  font-weight: 700;
  background: rgba(30,99,255,.02);
}

.table th .sort-link {
  margin: 0 2px;
  text-decoration: none;
  color: var(--muted, #666);
  font-weight: bold;
}
.table th .sort-link:hover {
  color: var(--primary, #2563eb);
}

.table td{
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
}

.table tbody tr {
  transition: var(--transition-fast);
}

.table tbody tr:hover {
  background: rgba(30,99,255,.04);
}

/* Contenedor de tablas: scroll horizontal en móvil/tablet */
.tablewrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.tablewrap .table { min-width: 400px; }

.pagination{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 18px;
  flex-wrap: wrap;
}

.pagination__status{
  color: var(--muted, #64748b);
  font-size: 14px;
}

.btn.disabled,
.btn[aria-disabled="true"]{
  opacity: .55;
  pointer-events: none;
}

.mobile-card-list{
  display: none;
}

.mobile-list-card{
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.92));
  box-shadow: var(--shadow-sm);
}

.mobile-list-card__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.mobile-list-card__title{
  min-width: 0;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 800;
  color: var(--text);
}

.mobile-list-card__title a{
  color: inherit;
}

.mobile-list-card__title a:hover{
  color: var(--primary);
}

.mobile-list-card__meta{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.mobile-list-card__detail{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.mobile-list-card__field{
  min-width: 0;
}

.mobile-list-card__label{
  display: block;
  margin-bottom: 2px;
  font-size: 11px;
  line-height: 1.2;
  color: var(--muted);
  font-weight: 800;
  text-transform: uppercase;
}

.mobile-list-card__value{
  min-width: 0;
  font-size: 13px;
  line-height: 1.35;
  color: var(--text);
  font-weight: 600;
  overflow-wrap: anywhere;
}

.mobile-list-card__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding-top: 2px;
}

.mobile-list-card__actions .btn,
.mobile-list-card__actions .btn-exam{
  width: auto;
  min-height: 40px;
}

.oposicion-summary{
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin-bottom: 24px;
  padding: 20px;
  border: 1px solid rgba(30,99,255,.16);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(30,99,255,.08), rgba(16,185,129,.06) 52%, rgba(255,255,255,.86));
  box-shadow: var(--shadow-sm);
}

.oposicion-summary__status{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 12px;
}

.oposicion-summary__line{
  margin: 0;
  color: var(--text);
  font-size: 17px;
  line-height: 1.45;
  font-weight: 800;
}

.oposicion-summary__line span{
  color: var(--text-secondary);
  font-weight: 700;
}

.oposicion-summary__facts{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.oposicion-summary__fact{
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 13px;
  font-weight: 700;
}

.oposicion-summary__actions{
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  min-width: 190px;
}

.oposicion-summary__actions .inline-form{
  display: flex;
}

.oposicion-summary__actions .btn{
  white-space: nowrap;
}

.pill{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(30,99,255,.1), rgba(31,125,181,.08));
  border: 1px solid rgba(30,99,255,.2);
  font-size: 12px;
  font-weight: 700;
  color: var(--primary);
  transition: var(--transition-fast);
  white-space: nowrap;
}

.result-card__chips .pill{
  max-width: 100%;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.25;
}

.pill:hover {
  background: linear-gradient(135deg, rgba(30,99,255,.15), rgba(31,125,181,.12));
  border-color: rgba(30,99,255,.3);
  transform: translateY(-1px);
}

.pill--success {
  background: rgba(16,185,129,.12);
  border-color: rgba(16,185,129,.28);
  color: #047857;
}

.pill--warning {
  background: rgba(245,158,11,.12);
  border-color: rgba(245,158,11,.28);
  color: #92400e;
}

.pill--danger {
  background: rgba(239,68,68,.12);
  border-color: rgba(239,68,68,.26);
  color: #b91c1c;
}

/* Estado del proceso: colores específicos por estado */
/* Borrador: gris suave */
.pill--estado-borrador {
  background: rgba(148, 163, 184, 0.14);
  border-color: rgba(148, 163, 184, 0.4);
  color: #475569;
}
.pill--estado-borrador:hover {
  background: rgba(148, 163, 184, 0.22);
  border-color: rgba(148, 163, 184, 0.55);
}

/* Convocada: azul */
.pill--estado-convocada {
  background: rgba(59, 130, 246, 0.16);
  border-color: rgba(59, 130, 246, 0.42);
  color: #1d4ed8;
}
.pill--estado-convocada:hover {
  background: rgba(59, 130, 246, 0.22);
  border-color: rgba(59, 130, 246, 0.55);
}

/* Pendiente de BOE: violeta */
.pill--estado-pendiente_de_boe {
  background: rgba(139, 92, 246, 0.16);
  border-color: rgba(139, 92, 246, 0.42);
  color: #6d28d9;
}
.pill--estado-pendiente_de_boe:hover {
  background: rgba(139, 92, 246, 0.22);
  border-color: rgba(139, 92, 246, 0.55);
}

/* Plazo abierto: verde */
.pill--estado-plazo_abierto {
  background: rgba(34, 197, 94, 0.16);
  border-color: rgba(34, 197, 94, 0.42);
  color: #059669;
}
.pill--estado-plazo_abierto:hover {
  background: rgba(34, 197, 94, 0.22);
  border-color: rgba(34, 197, 94, 0.55);
}

/* Lista provisional: naranja */
.pill--estado-lista_provisional {
  background: rgba(249, 115, 22, 0.16);
  border-color: rgba(249, 115, 22, 0.45);
  color: #c2410c;
}
.pill--estado-lista_provisional:hover {
  background: rgba(249, 115, 22, 0.22);
  border-color: rgba(249, 115, 22, 0.55);
}

/* Lista definitiva: teal */
.pill--estado-lista_definitiva {
  background: rgba(20, 184, 166, 0.16);
  border-color: rgba(20, 184, 166, 0.45);
  color: #0f766e;
}
.pill--estado-lista_definitiva:hover {
  background: rgba(20, 184, 166, 0.22);
  border-color: rgba(20, 184, 166, 0.55);
}

/* Plantilla provisional: amarillo */
.pill--estado-plantilla_provisional {
  background: rgba(234, 179, 8, 0.18);
  border-color: rgba(234, 179, 8, 0.48);
  color: #a16207;
}
.pill--estado-plantilla_provisional:hover {
  background: rgba(234, 179, 8, 0.24);
  border-color: rgba(234, 179, 8, 0.6);
}

/* Plantilla definitiva: lima */
.pill--estado-plantilla_definitiva {
  background: rgba(132, 204, 22, 0.18);
  border-color: rgba(132, 204, 22, 0.5);
  color: #4d7c0f;
}
.pill--estado-plantilla_definitiva:hover {
  background: rgba(132, 204, 22, 0.24);
  border-color: rgba(132, 204, 22, 0.62);
}

/* Pendiente de listas: ámbar oscuro */
.pill--estado-pendiente_de_listas {
  background: rgba(245, 158, 11, 0.17);
  border-color: rgba(245, 158, 11, 0.48);
  color: #b45309;
}
.pill--estado-pendiente_de_listas:hover {
  background: rgba(245, 158, 11, 0.24);
  border-color: rgba(245, 158, 11, 0.62);
}

/* Pendiente de notas: cian */
.pill--estado-pendiente_de_notas {
  background: rgba(6, 182, 212, 0.16);
  border-color: rgba(6, 182, 212, 0.45);
  color: #0e7490;
}
.pill--estado-pendiente_de_notas:hover {
  background: rgba(6, 182, 212, 0.22);
  border-color: rgba(6, 182, 212, 0.58);
}

/* Primer examen: dorado */
.pill--estado-examen {
  background: rgba(250, 204, 21, 0.18);
  border-color: rgba(250, 204, 21, 0.5);
  color: #92400e;
}
.pill--estado-examen:hover {
  background: rgba(250, 204, 21, 0.24);
  border-color: rgba(250, 204, 21, 0.6);
}

/* Segundo examen: índigo */
.pill--estado-segundo_examen {
  background: rgba(99, 102, 241, 0.18);
  border-color: rgba(99, 102, 241, 0.5);
  color: #4338ca;
}
.pill--estado-segundo_examen:hover {
  background: rgba(99, 102, 241, 0.24);
  border-color: rgba(99, 102, 241, 0.6);
}

/* Tercer examen: lavanda */
.pill--estado-tercer_examen {
  background: rgba(129, 140, 248, 0.18);
  border-color: rgba(129, 140, 248, 0.5);
  color: #4f46e5;
}
.pill--estado-tercer_examen:hover {
  background: rgba(129, 140, 248, 0.24);
  border-color: rgba(129, 140, 248, 0.6);
}

/* Resultados primer examen: morado */
.pill--estado-resultados {
  background: rgba(147, 51, 234, 0.18);
  border-color: rgba(147, 51, 234, 0.5);
  color: #6d28d9;
}
.pill--estado-resultados:hover {
  background: rgba(147, 51, 234, 0.24);
  border-color: rgba(147, 51, 234, 0.6);
}

/* Resultados segundo examen: fucsia */
.pill--estado-resultados_segundo_examen {
  background: rgba(217, 70, 239, 0.17);
  border-color: rgba(217, 70, 239, 0.48);
  color: #a21caf;
}
.pill--estado-resultados_segundo_examen:hover {
  background: rgba(217, 70, 239, 0.23);
  border-color: rgba(217, 70, 239, 0.6);
}

/* Finalizada: rojo */
.pill--estado-finalizada {
  background: rgba(239, 68, 68, 0.18);
  border-color: rgba(239, 68, 68, 0.5);
  color: #dc2626;
}
.pill--estado-finalizada:hover {
  background: rgba(239, 68, 68, 0.24);
  border-color: rgba(239, 68, 68, 0.65);
}

/* Fallback genérico */
.pill--estado-otro {
  background: rgba(100, 116, 139, 0.12);
  border-color: rgba(100, 116, 139, 0.25);
  color: var(--muted);
}
.pill--estado-otro:hover {
  background: rgba(100, 116, 139, 0.18);
  border-color: rgba(100, 116, 139, 0.35);
}

.muted{ 
  color: var(--muted);
  font-size: 13px;
  font-weight: 500;
}

/* Login prompt (detalle examen/oposición para no registrados) */
.login-prompt{
  margin-top: 16px;
  padding: 16px 20px;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, rgba(30,99,255,.08), rgba(31,125,181,.06));
  border: 1px solid rgba(30,99,255,.22);
  color: var(--text-secondary);
  font-size: 15px;
  line-height: 1.5;
}
.login-prompt a{
  color: var(--primary);
  font-weight: 700;
  text-decoration: none;
}
.login-prompt a:hover{
  text-decoration: underline;
}
@media (prefers-color-scheme: dark) and (min-width: 99999px){
  .login-prompt{
    background: linear-gradient(135deg, rgba(30,99,255,.14), rgba(31,125,181,.08));
    border-color: rgba(30,99,255,.35);
    color: var(--text-secondary);
  }
}

/* ---------- EXAM BUTTON PREMIUM ---------- */
.btn-exam{
  padding: 9px 14px;
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  color: #fff;
  border: none;
  border-radius: 10px;
  font-weight: 700;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: var(--transition-fast);
  box-shadow: 0 6px 16px rgba(30,99,255,.16);
  position: relative;
  overflow: hidden;
}

/* Botones compactos en línea (no ocupar todo el ancho) */
.btn--inline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
}

.btn-exam::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.2), transparent);
  opacity: 0;
  transition: opacity .3s ease;
}

.btn-exam:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(30,99,255,.24);
  filter: brightness(1.05);
}

.btn-exam:hover::before {
  opacity: 1;
}

.btn-exam:disabled{
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

/* ---------- TOAST PREMIUM ---------- */
.toast{
  margin-top: 16px;
  padding: 14px 18px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(30,99,255,.08), rgba(31,125,181,.06));
  border: 1px solid rgba(30,99,255,.2);
  color: var(--primary);
  display: none;
  font-size: 14px;
  font-weight: 600;
  animation: slideIn .24s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 4px 16px rgba(30,99,255,.1);
}

.toast.bad{
  background: linear-gradient(135deg, rgba(239,68,68,.08), rgba(239,68,68,.06));
  border-color: rgba(239,68,68,.3);
  color: #dc2626;
}

@keyframes slideIn{
  from{
    opacity: 0;
    transform: translateY(-12px);
  }
  to{
    opacity: 1;
    transform: translateY(0);
  }
}

/* ---------- FOOTER ---------- */
.footer{
  border-top: 1px solid var(--border);
  background: var(--surface);
  backdrop-filter: blur(14px);
  margin-top: 0;
}

.footer__inner{
  display:grid;
  grid-template-columns: minmax(280px, 1.45fr) repeat(4, minmax(145px, 1fr));
  align-items: flex-start;
  padding: 36px 0 28px;
  gap: 36px;
}

.footer-brand,
.footer__brand{
  display:grid;
  gap: 14px;
  align-items: flex-start;
  min-width: 0;
  max-width: 340px;
}

.brand--footer{
  flex: 0 0 auto;
}

.brand--footer .brand-picture{
  height: var(--footer-logo-height);
  max-width: var(--footer-logo-max-width);
}

.footer-brand__logo,
.footer__logo{
  width: auto;
  max-width: var(--footer-logo-max-width);
  height: var(--footer-logo-height);
  border-radius: 0;
  object-fit: contain;
  border: 0;
  transition: var(--transition-fast);
}

.footer-brand__logo:hover,
.footer__logo:hover {
  transform: scale(1.05);
}

.footer__name{
  font-weight: 900;
  letter-spacing: -.2px;
  font-size: 16px;
}

.footer__email{
  display: inline-block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
  margin-top: 12px;
  overflow-wrap: anywhere;
  text-decoration: none;
  transition: var(--transition-fast);
}
.footer__email:hover{
  color: var(--primary);
}

.footer__small{
  color: var(--muted);
  font-size: 13px;
  margin: 0;
  font-weight: 500;
  line-height: 1.55;
  max-width: 310px;
}

.footer__small--secondary {
  margin-top: 4px;
}

.footer__bottom{
  padding-top: 16px;
  padding-bottom: 24px;
  border-top: 1px solid var(--border);
  margin-top: 8px;
  text-align: center;
}
.footer__copyright{
  font-size: 13px;
  color: var(--muted);
  font-weight: 600;
}
.footer__aviso {
  margin-top: 8px;
  font-size: 12px;
  color: var(--muted);
  font-weight: 400;
  line-height: 1.4;
}
.footer__tagline {
  margin-top: 10px;
  font-size: 11px;
  color: var(--muted);
  opacity: 0.9;
  font-weight: 400;
}
.footer__tagline-link {
  color: var(--muted);
  text-decoration: none;
  font-weight: 600;
  transition: var(--transition-fast);
}
.footer__tagline-link:hover {
  color: var(--primary);
}

.footer__social{
  display: flex;
  gap: 12px;
  margin-top: 14px;
  align-items: center;
}

.footer__social-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgba(248, 250, 253, 0.72);
  color: var(--muted);
  transition: var(--transition-fast);
}

.footer__social-link:hover{
  border-color: rgba(30, 99, 255, 0.28);
  background: rgba(30, 99, 255, 0.06);
  color: var(--primary);
  transform: translateY(-2px);
}

.footer__social-icon{
  width: 16px;
  height: 16px;
}

.footer__social .footer__social-icon-wrap{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  opacity: 0.7;
  cursor: default;
}

.footer__cols{
  display:flex;
  gap: 40px;
  flex-wrap: wrap;
}

.footer__col{
  display:flex;
  flex-direction: column;
  gap: 9px;
  min-width: 0;
}

.footer__title{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
  font-weight: 800;
  margin: 0 0 8px 0;
}

.footer__link{
  color: var(--muted);
  font-weight: 600;
  font-size: 14px;
  line-height: 1.45;
  transition: var(--transition-fast);
}

.footer__link:hover{
  color: var(--primary);
  transform: translateX(2px);
}

/* Shared media query for small screens */
@media (max-width: 900px){
  .pagetitle{ 
    font-size: 24px; 
    -webkit-text-fill-color: var(--text);
    background: none;
  }
  
  .pagesubtitle {
    font-size: 15px;
  }
  
  .filters {
    flex-direction: column;
  }
  
  .filters > div {
    min-width: 100%;
  }
}

/* Grid cards helper */
.grid-cards{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}

/* /organismos/: filtros siempre por encima del grid (stacking) y menos “jank” al cargar logos */
.organismos-filters-card {
  position: relative;
  z-index: 30;
  isolation: isolate;
}
.organismos-grid-card {
  position: relative;
  z-index: 1;
}
.organismos-filters-card .filter-multi__panel {
  z-index: 60;
}
.organismos-grid-card .organismo-card-logo__img {
  pointer-events: none;
}

.organismos-tile__body{
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.organismo-card-logo{
  flex-shrink: 0;
  text-decoration: none;
}

.organismo-card-logo__img{
  width: 64px;
  height: 64px;
  object-fit: contain;
  border-radius: 8px;
  background: var(--surface);
  padding: 8px;
}

.organismos-tile__content{
  flex: 1;
  min-width: 0;
}

.organismos-tile__actions{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
}

.admin-inline-edit{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(148,163,184,.6);
  border-radius: 6px;
  color: #64748b;
  font-size: 14px;
  text-decoration: none;
}

.admin-inline-edit:hover,
.admin-inline-edit:focus-visible{
  border-color: rgba(30,99,255,.45);
  color: var(--primary);
}

.organismos-grid-card .organismos-tile.card--compact:hover {
  transform: none;
  box-shadow: var(--shadow-md, 0 8px 22px rgba(15, 23, 42, 0.08));
}

.organismos-hero .public-hero__grid{
  grid-template-columns: minmax(0, .95fr) minmax(360px, 560px);
  gap: 44px;
}

.organismos-directory-layout{
  display: grid;
  grid-template-columns: minmax(250px, 320px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.organismos-directory-layout .organismos-filters-card{
  position: sticky;
  top: calc(var(--header-height, 72px) + 18px);
}

.organismos-sidebar-filters{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.organismos-sidebar-filters .public-filters__actions{
  grid-column: auto;
  justify-content: stretch;
}

.organismos-sidebar-filters .public-filters__actions .btn{
  flex: 1;
  min-width: 0;
}

.organismos-extra-filters{
  display: grid;
  gap: 10px;
  margin: 4px 0 0;
  padding: 16px 0 0;
  border: 0;
  border-top: 1px solid var(--border);
}

.organismos-extra-filters legend{
  width: 100%;
  margin-bottom: 8px;
  color: var(--text);
  font-size: 13px;
  font-weight: 850;
}

.organismos-extra-filters .organismos-filter-check{
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
}

.organismos-filter-check input[type="checkbox"]{
  width: 18px;
  height: 18px;
  margin: 0;
  justify-self: start;
  accent-color: var(--primary);
}

.organismos-filter-check__label{
  min-width: 0;
  color: var(--text-secondary);
}

.organismos-filter-check .organismos-filter-check__count{
  margin: 0;
  justify-self: end;
  color: var(--muted);
  font-size: 12px;
}

.organismos-results-section{
  min-width: 0;
  margin-top: 0;
}

.organismos-results-toolbar{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.organismos-results-toolbar h2{
  margin: 0;
  color: var(--text);
  font-size: 21px;
}

.organismos-results-toolbar p{
  margin: 4px 0 0;
  color: var(--muted);
}

.organismos-sort-form{
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 800;
}

.organismos-sort-form select{
  min-width: 170px;
  min-height: 42px;
  padding: 8px 36px 8px 12px;
  border: 1px solid rgba(30,99,255,.18);
  border-radius: 8px;
  background: rgba(255,255,255,.94);
  color: var(--text);
  font: inherit;
}

.organismos-view-toggle{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(30,99,255,.16);
  border-radius: 8px;
  background: rgba(30,99,255,.08);
  color: var(--primary);
}

.organismos-modern-grid{
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.organismos-card{
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow-sm);
}

.organismos-card:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.organismos-card .organismos-tile__body{
  align-items: center;
  gap: 14px;
}

.organismos-card__title{
  margin: 0;
  font-size: 16px;
  line-height: 1.25;
}

.organismos-card__title a{
  color: var(--text);
}

.organismos-card__title a:hover{
  color: var(--primary);
}

.organismos-card__meta{
  margin-top: 4px;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.35;
}

.organismos-card__meta a{
  color: var(--primary);
  font-weight: 750;
}

.organismos-card .organismo-card-logo{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border: 1px solid rgba(148,163,184,.25);
  border-radius: 8px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.55);
  overflow: hidden;
}

.organismos-card .organismo-card-logo__img{
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  padding: 8px;
  object-fit: contain;
  border-radius: 8px;
  background: #fff;
}

.organismo-card-logo__fallback{
  position: absolute;
  inset: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--primary);
  background: linear-gradient(135deg, rgba(30,99,255,.12), rgba(20,184,166,.1));
  font-size: 14px;
  font-weight: 900;
}

.organismo-card-logo:has(.organismo-card-logo__img) .organismo-card-logo__fallback{
  display: none;
}

.organismo-card-logo--fallback-visible .organismo-card-logo__fallback{
  display: inline-flex !important;
}

.organismos-card__metrics{
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}

.organismos-metric{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(30,99,255,.08);
  color: var(--primary);
  font-size: 11px;
  font-weight: 850;
  line-height: 1;
}

.organismos-metric::before{
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: currentColor;
}

.organismos-metric--bolsas{
  color: #059669;
  background: rgba(5,150,105,.09);
}

.organismos-metric--examenes{
  color: #7c3aed;
  background: rgba(124,58,237,.09);
}

.organismos-card .organismos-tile__actions{
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-top: auto;
  padding-top: 12px;
}

.organismos-card .card__action-link{
  align-self: auto;
}

.organismos-pagination{
  margin-top: 18px;
}

.organismos-value-strip{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 28px;
  padding: 18px;
  border: 1px solid rgba(30,99,255,.12);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(239,246,255,.82), rgba(255,255,255,.92));
  box-shadow: var(--shadow-sm);
}

.organismos-value-strip article{
  min-width: 0;
  padding: 12px;
}

.organismos-value-strip h2{
  margin: 0 0 6px;
  color: var(--text);
  font-size: 16px;
  line-height: 1.25;
}

.organismos-value-strip p{
  margin: 0;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.5;
}

.organismos-value-strip__icon{
  display: inline-flex;
  width: 42px;
  height: 42px;
  margin-bottom: 10px;
  border-radius: 8px;
  background: rgba(30,99,255,.1);
  color: var(--primary);
}

.organismos-value-strip__icon::before{
  content: "";
  width: 22px;
  height: 22px;
  margin: auto;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='m9 16 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='m9 16 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.organismos-value-strip__icon--people::before{
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
}

.organismos-value-strip__icon--exam::before{
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='m9 15 2 2 4-4'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='m9 15 2 2 4-4'/%3E%3C/svg%3E");
}

.organismos-value-strip__cta{
  border: 1px solid rgba(30,99,255,.16);
  border-radius: 8px;
  background: rgba(255,255,255,.76);
}

.organismos-value-strip__cta a{
  display: inline-flex;
  margin-top: 10px;
  color: var(--primary);
  font-weight: 850;
}

.card--compact{
  padding: 16px;
  border-radius: 14px;
  transition: box-shadow .18s ease, transform .18s ease;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.card--compact:hover{
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
}

.card__action-link {
  align-self: flex-start;
}

@media (max-width: 600px) {
  .pagetitle {
    font-size: 22px;
  }
  
  .card {
    padding: 18px;
  }
  
  .table th,
  .table td {
    padding: 10px 8px;
    font-size: 13px;
  }
}

/* ---------- RESPONSIVE: MÓVIL Y TABLET ---------- */
/* Tablet (768px): márgenes y espaciado */
@media (max-width: 768px) {
  .container { padding-left: 20px; padding-right: 20px; }
  .pagehead { padding-top: 20px; }
  .pagehead__row { gap: 12px; }
  .pageactions { gap: 10px; }
  .section-heading { font-size: 18px; }
  .footer__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 28px 0;
    gap: 28px;
  }
  .footer__cols { gap: 28px; }
  .footer__brand {
    min-width: 0;
    max-width: none;
  }
}

/* Móvil (640px): touch targets y contenido */
@media (max-width: 640px) {
  .container { padding-left: 16px; padding-right: 16px; }
  .main { padding-top: 12px; padding-bottom: 24px; }
  .btn {
    min-height: 44px;
    padding: 12px 18px;
  }
  .nav--mobile .nav__link {
    min-height: 44px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
  }
  .pagehead__row { flex-direction: column; align-items: stretch; gap: 14px; }
  .pageactions { width: 100%; }
  .pageactions .btn { flex: 1; min-width: 0; }
  .grid-cards { grid-template-columns: 1fr; gap: 12px; }
  .footer__inner { grid-template-columns: 1fr; text-align: left; padding: 28px 0; }
  .footer__brand { align-items: flex-start; }
  .footer__small { max-width: none; }
  .footer__social { justify-content: flex-start; }
  .footer__cols { justify-content: center; gap: 24px; }
  .footer__col { min-width: 0; align-items: flex-start; }
}

/* Móvil pequeño (480px) */
@media (max-width: 760px) {
  .responsive-table-to-cards{
    display: none;
  }

  .mobile-card-list{
    display: grid;
    gap: 12px;
  }

  .mobile-list-card__detail{
    grid-template-columns: 1fr;
  }

  .mobile-list-card__actions .btn,
  .mobile-list-card__actions .btn-exam,
  .mobile-list-card__actions form{
    flex: 1 1 auto;
  }

  .mobile-list-card__actions .btn,
  .mobile-list-card__actions .btn-exam{
    width: 100%;
  }

  .oposicion-summary{
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 16px;
    border-radius: 14px;
  }

  .oposicion-summary__line{
    font-size: 15px;
  }

  .oposicion-summary__actions{
    justify-content: stretch;
    min-width: 0;
    width: 100%;
  }

  .oposicion-summary__actions .btn,
  .oposicion-summary__actions .inline-form{
    width: 100%;
  }
}

@media (max-width: 480px) {
  .container { padding-left: 14px; padding-right: 14px; }
  .pagetitle { font-size: 20px; }
  .card { padding: 16px; }
  .navdrawer__panel { left: 12px; right: 12px; }
}

/* Revisión simulacro: resumen más compacto en móvil */
@media (max-width: 640px) {
  .simulacro-review-summary__row {
    gap: 14px;
    margin-bottom: 14px;
  }
  .simulacro-review-summary__row .pageactions {
    width: 100%;
    flex-wrap: wrap;
  }
  .simulacro-review-summary__row .pageactions .btn {
    flex: 1 1 auto;
    min-width: 140px;
  }
  .simulacro-review-summary__badges {
    gap: 8px;
  }
}

/* ---------- UTILITIES ---------- */
.inline-form{ display: inline; }
.text-center{ text-align: center; }
.table__actions{ text-align: right; white-space: nowrap; }
.exam-actions-soon {
  color: var(--danger);
  font-weight: 700;
  font-size: 14px;
}

/* ---------- INICIO: layout dos columnas + calendario ---------- */
.inicio-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
}
@media (min-width: 900px) {
  .inicio-layout:not(.inicio-layout--landing) {
    grid-template-columns: 1fr 320px;
  }
}
.inicio-layout--landing .inicio-calendar-wrap { display: none; }
.inicio-main { min-width: 0; }
.inicio-calendar-wrap { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 20px; }
.inicio-novedades {
  padding: 20px;
}
.inicio-novedades-title {
  margin: 0 0 2px 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
}
.inicio-novedades-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.inicio-novedades-list li {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 0;
  border-bottom: 2px solid var(--primary);
}
.inicio-novedades-list li:first-child {
  padding-top: 4px;
}
.inicio-novedades-list li:last-of-type {
  border-bottom: none;
}
.inicio-novedades-list a {
  font-weight: 600;
  color: var(--primary);
  font-size: 13px;
  line-height: 1.4;
}
.inicio-novedades-list a:hover {
  text-decoration: underline;
}
.inicio-novedades-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--muted);
}
.inicio-novedades-admin::before {
  content: " · ";
}
.inicio-novedades-tipo::before {
  content: " · ";
}
.inicio-novedades-admin {
  font-size: 11px;
  color: var(--muted);
  font-weight: normal;
}
.inicio-novedades-list a.inicio-novedades-admin {
  font-size: 11px;
  color: var(--muted);
  font-weight: normal;
}
.inicio-novedades-list a.inicio-novedades-admin:hover {
  color: var(--primary);
}
.inicio-novedades-tipo {
  font-size: 12px;
  color: var(--muted);
}
.inicio-novedades-fecha {
  font-size: 12px;
  color: var(--muted);
}
.inicio-novedades-ver-todas {
  margin: 8px 0 0 0;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}
.inicio-calendar {
  padding: 20px;
}
.inicio-calendar-title {
  margin: 0 0 16px 0;
  font-size: 18px;
}
.inicio-calendar-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.inicio-calendar-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: rgba(30, 99, 255, 0.1);
  color: var(--primary);
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
  transition: var(--transition-fast);
}
.inicio-calendar-arrow:hover {
  background: rgba(30, 99, 255, 0.2);
  color: var(--primary);
}
.inicio-calendar-month-name {
  font-weight: 700;
  color: var(--primary);
  font-size: 14px;
}
.inicio-calendar-month {
  margin-bottom: 0;
}
.inicio-calendar-month .inicio-calendar-weekdays {
  margin-bottom: 6px;
}
.inicio-calendar-weekdays {
  font-weight: 600;
}
.inicio-calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  text-align: center;
}
.inicio-calendar-week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  margin-bottom: 2px;
}
.inicio-calendar-day {
  aspect-ratio: 1;
  max-width: 36px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text);
  background: var(--bg);
  border: 1px solid transparent;
  transition: var(--transition-fast);
  position: relative;
}
.inicio-calendar-day-num { line-height: 1; }
.inicio-calendar-day:not(.inicio-calendar-day--empty):hover {
  background: rgba(30, 99, 255, 0.08);
  border-color: rgba(30, 99, 255, 0.2);
}
.inicio-calendar-day--today {
  background: rgba(30, 99, 255, 0.12);
  border-color: var(--primary);
  color: var(--primary);
  font-weight: 700;
}
.inicio-calendar-day--today.inicio-calendar-day--has-events {
  background: rgba(239, 68, 68, 0.18);
  border-color: rgba(239, 68, 68, 0.5);
  color: var(--danger);
}
.inicio-calendar-day--has-events {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.4);
  color: var(--danger);
  font-weight: 700;
}
.inicio-calendar-day--has-events:hover {
  background: rgba(239, 68, 68, 0.2);
  border-color: rgba(239, 68, 68, 0.55);
}
.inicio-calendar-day-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 100%;
  text-decoration: none;
  color: inherit;
  border-radius: inherit;
}
.inicio-calendar-day-link:hover {
  color: inherit;
  text-decoration: none;
}
.inicio-calendar-day--has-events .inicio-calendar-day-dot {
  position: absolute;
  bottom: 3px;
  left: 50%;
  transform: translateX(-50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--danger);
}
.inicio-calendar-day--has-events.inicio-calendar-day--today .inicio-calendar-day-dot {
  background: var(--danger);
}

.card__footer{ display:flex; gap:10px; align-items:center; justify-content:space-between; margin-top:16px; }

/* small spacing and display utilities */
.d-none{ display:none !important; }
.mt-sm{ margin-top:14px !important; }
.gap-sm{ gap:8px; }
.mb-sm{ margin-bottom:10px !important; }
.narrow-container{ max-width:520px; margin: 0 auto; padding: 1rem 0; }
.section-title{ margin:0 0 .75rem; }
.stack{ display:flex; flex-direction:column; gap:12px; }
.form-grid{ display:grid; gap:1rem; }
.form-grid--2col { grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .form-grid--2col { grid-template-columns: 1fr; } }
.empty-state{ padding: 40px 20px; }
.lead{ font-size:16px; margin-bottom:20px; color:var(--muted); }
.mb-lg{ margin-bottom:24px !important; }
.mt-lg{ margin-top:24px !important; }
.mb-md{ margin-bottom:16px !important; }
.mb-0{ margin-bottom:0 !important; }
.section-heading{ margin: 0 0 20px 0; font-size:20px; font-weight:700; }
.section-heading--small { font-size: 17px; font-weight: 600; margin-bottom: 16px; }
.card--lgpad{ padding: 48px 28px; }
/* Contacto */
.contact-hero{
  padding-block: 30px 34px;
}

.contact-hero__grid{
  align-items:center;
}

.contact-hero__visual{
  position:relative;
  min-height:230px;
  border:1px solid rgba(30,99,255,.14);
  border-radius:18px;
  background:
    radial-gradient(circle at 22% 22%, rgba(34,211,238,.18), transparent 30%),
    radial-gradient(circle at 78% 70%, rgba(30,99,255,.14), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(239,246,255,.86));
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}

.contact-hero__visual::after{
  content:"";
  position:absolute;
  inset:28px 42px;
  border-radius:28px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(30,99,255,.1);
}

.contact-hero__bubble,
.contact-hero__target{
  position:absolute;
  z-index:1;
  display:grid;
  place-items:center;
  background:#fff;
  border:1px solid rgba(30,99,255,.16);
  box-shadow:0 18px 42px rgba(30,99,255,.12);
}

.contact-hero__bubble::before,
.contact-hero__target::before{
  content:"";
  width:34px;
  height:34px;
  background:var(--primary);
  -webkit-mask:center/contain no-repeat;
  mask:center/contain no-repeat;
}

.contact-hero__bubble--mail{ width:96px; height:72px; left:17%; top:34%; border-radius:18px; }
.contact-hero__bubble--mail::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.contact-hero__bubble--chat{ width:88px; height:88px; right:18%; top:20%; border-radius:24px; }
.contact-hero__bubble--chat::before{ background:#10b981; -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z'/%3E%3Cpath d='M8 9h8M8 13h5'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z'/%3E%3Cpath d='M8 9h8M8 13h5'/%3E%3C/svg%3E"); }
.contact-hero__bubble--file{ width:74px; height:90px; left:50%; bottom:24px; border-radius:16px; }
.contact-hero__bubble--file::before{ background:#7c3aed; -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E"); }
.contact-hero__target{ width:72px; height:72px; left:38%; top:20%; border-radius:999px; }
.contact-hero__target::before{ background:#1e63ff; -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Cpath d='M18 6l3-3M21 3v5M21 3h-5'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Cpath d='M18 6l3-3M21 3v5M21 3h-5'/%3E%3C/svg%3E"); }

.section-heading-block{ margin-bottom:18px; }
.section-heading-block h2{ margin:0; font-size:clamp(22px,2vw,30px); line-height:1.15; }

.contact-help{ margin-bottom:24px; }
.contact-reason-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.contact-reason-card{
  padding:18px;
  border:1px solid var(--border-light);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--shadow-sm);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.contact-reason-card:hover{ transform:translateY(-2px); border-color:rgba(30,99,255,.24); box-shadow:var(--shadow-md); }
.contact-reason-card__icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:12px;
  background:rgba(30,99,255,.1);
  color:var(--primary);
  margin-bottom:14px;
}
.contact-reason-card__icon::before{
  content:"";
  width:22px;
  height:22px;
  background:currentColor;
  -webkit-mask:center/contain no-repeat;
  mask:center/contain no-repeat;
}
.contact-reason-card h3{ margin:0 0 7px; font-size:17px; }
.contact-reason-card p{ margin:0; color:var(--text-secondary); line-height:1.55; }
.contact-reason-card--question .contact-reason-card__icon::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.1 9a3 3 0 1 1 5.8 1c-.8 1.1-2.1 1.3-2.5 2.7M12 17h.01'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M9.1 9a3 3 0 1 1 5.8 1c-.8 1.1-2.1 1.3-2.5 2.7M12 17h.01'/%3E%3C/svg%3E"); }
.contact-reason-card--exam .contact-reason-card__icon{ color:#7c3aed; background:rgba(124,58,237,.1); }
.contact-reason-card--exam .contact-reason-card__icon::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M9 13h6M9 17h4'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M9 13h6M9 17h4'/%3E%3C/svg%3E"); }
.contact-reason-card--notice .contact-reason-card__icon{ color:#059669; background:rgba(16,185,129,.11); }
.contact-reason-card--notice .contact-reason-card__icon::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M4 4v16M4 5h12l-1 4 1 4H4'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M4 4v16M4 5h12l-1 4 1 4H4'/%3E%3C/svg%3E"); }
.contact-reason-card--fix .contact-reason-card__icon{ color:#ea580c; background:rgba(249,115,22,.11); }
.contact-reason-card--fix .contact-reason-card__icon::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M12 20h9M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M12 20h9M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E"); }
.contact-reason-card--account .contact-reason-card__icon{ color:#0f766e; background:rgba(15,118,110,.1); }
.contact-reason-card--account .contact-reason-card__icon::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E"); }
.contact-reason-card--collab .contact-reason-card__icon{ color:#db2777; background:rgba(219,39,119,.1); }
.contact-reason-card--collab .contact-reason-card__icon::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5zM19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5zM19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8z'/%3E%3C/svg%3E"); }

.contact-layout{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:20px; align-items:start; margin-top:24px; }
.contact-form-card{ padding:26px; }
.contact-form-card__head{ margin-bottom:18px; }
.contact-form-card__head h2{ margin:0 0 8px; font-size:26px; }
.contact-form-card__head p{ margin:0; color:var(--text-secondary); line-height:1.6; }
.contact-side{ display:grid; gap:16px; }

.contact-collab-card,
.contact-independence-card{
  padding:22px;
  border-radius:16px;
  border:1px solid rgba(30,99,255,.14);
  background:linear-gradient(135deg, rgba(239,246,255,.95), rgba(255,255,255,.95));
  box-shadow:var(--shadow-sm);
}
.contact-collab-card__icon,
.contact-independence-card__icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:14px;
  background:rgba(30,99,255,.1);
  color:var(--primary);
  margin-bottom:14px;
}
.contact-collab-card__icon::before,
.contact-independence-card__icon::before{
  content:"";
  width:24px;
  height:24px;
  background:currentColor;
  -webkit-mask:center/contain no-repeat;
  mask:center/contain no-repeat;
}
.contact-collab-card__icon::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M4 4v16M4 5h12l-1 4 1 4H4'/%3E%3Cpath d='M19 15v6M16 18h6'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M4 4v16M4 5h12l-1 4 1 4H4'/%3E%3Cpath d='M19 15v6M16 18h6'/%3E%3C/svg%3E"); }
.contact-independence-card__icon::before{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8h.01M11 12h1v4h1'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8h.01M11 12h1v4h1'/%3E%3C/svg%3E"); }
.contact-collab-card h2,
.contact-independence-card h2{ margin:0 0 8px; font-size:21px; }
.contact-collab-card p,
.contact-independence-card p{ margin:0; color:var(--text-secondary); line-height:1.6; }
.contact-collab-card__actions{ display:grid; gap:10px; margin-top:16px; }
.contact-collab-card__actions .btn{ width:100%; }

.contact-faq{ margin-top:24px; padding:24px; }

.contacto-card { padding: 22px 24px; }
.contacto-card__intro {
  margin: 0 0 10px 0;
  font-size: 15px;
  color: var(--text);
  font-weight: 600;
}
.contacto-card__list {
  list-style: none;
  padding: 0;
  margin: 0 0 18px 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--text);
}
.contacto-card__list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 5px;
}
.contacto-card__list li:last-child { margin-bottom: 0; }
.contacto-card__icon { font-size: 1.1rem; flex-shrink: 0; }
.contacto-card__cta { margin: 0; }
.contacto-captcha{
  display:flex;
  justify-content:center;
  margin-top:16px;
}
.contacto-card__cta{
  margin-top:16px;
}
.contacto-form-title { margin: 24px 0 16px 0; padding-top: 20px; border-top: 1px solid var(--border); }
.contacto-form { display: flex; flex-direction: column; gap: 16px; }
.contacto-form label { display: block; font-size: 14px; font-weight: 600; color: var(--text); margin-bottom: 6px; }
.contacto-form input[type="text"],
.contacto-form input[type="email"],
.contacto-form input[type="url"],
.contacto-form select,
.contacto-form textarea { width: 100%; padding: 12px 13px; border: 1px solid var(--input-border); border-radius: 10px; font-size: 15px; background: var(--input-bg); }
.contacto-form select{ appearance:auto; }
.contacto-form input:focus,
.contacto-form select:focus,
.contacto-form textarea:focus{ outline:3px solid rgba(30,99,255,.16); border-color:rgba(30,99,255,.5); }
.contacto-form textarea { resize: vertical; min-height: 120px; }
.contacto-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .contacto-form-grid { grid-template-columns: 1fr; } }
.contacto-form-cta { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin: 8px 0 0 0; }
.contacto-form-cta p{ margin:0; color:var(--text-secondary); font-size:14px; }
.contacto-form .field-error { font-size: 13px; color: var(--danger); margin-top: 4px; }
@media (max-width: 1024px){
  .contact-reason-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-layout{ grid-template-columns:1fr; }
}
@media (max-width: 760px){
  .contact-hero{ padding-block:22px 26px; }
  .contact-hero__visual{ min-height:190px; }
  .contact-reason-grid{ grid-template-columns:1fr; }
  .contact-form-card,
  .contact-faq{ padding:20px; }
  .contacto-form-cta{ display:grid; }
  .contacto-form-cta .btn,
  .contact-hero .btn{ width:100%; }
}
@media (max-width: 430px){
  .contact-hero__visual{ min-height:160px; }
  .contact-hero__bubble--mail{ left:10%; top:38%; transform:scale(.82); }
  .contact-hero__bubble--chat{ right:10%; top:18%; transform:scale(.78); }
  .contact-hero__bubble--file{ left:48%; bottom:12px; transform:scale(.76); }
  .contact-hero__target{ left:34%; top:18%; transform:scale(.78); }
}
.faq-footer__note{ margin:0; }
.pt-md{ padding-top: 1rem; }
.mb-xxsmall{ margin-bottom: .75rem; }
.mb-xs{ margin-bottom:8px !important; }
.card__title{ font-weight:700; font-size:15px; margin-bottom:6px; }
.hero-para{ font-size:17px; line-height:1.7; margin-bottom:28px; color:var(--text-secondary); }
.feature-grid{ display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin-bottom:40px; }
.inicio-differential-grid {
  margin-bottom: 0;
  grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 900px) {
  .inicio-differential-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 500px) {
  .inicio-differential-grid {
    grid-template-columns: 1fr;
  }
}
.feature-box{ padding:24px; border-radius:14px; transition: var(--transition-fast); cursor:default; position: relative; }
.feature-box__icon {
  display: block;
  width: 40px;
  height: 40px;
  margin-bottom: 12px;
  color: var(--primary);
  opacity: 0.9;
}
.feature-box__icon svg { width: 100%; height: 100%; }
.feature-box--blue{ background: linear-gradient(135deg, rgba(30,99,255,.06), rgba(30,99,255,.03)); border:1px solid rgba(30,99,255,.12); }
.feature-box--teal{ background: linear-gradient(135deg, rgba(31,125,181,.06), rgba(31,125,181,.03)); border:1px solid rgba(31,125,181,.12); }
.feature-box--green{ background: linear-gradient(135deg, rgba(16,185,129,.06), rgba(16,185,129,.03)); border:1px solid rgba(16,185,129,.12); }
.feature-title{ font-weight:800; font-size:15px; margin-bottom:10px; }
.feature-list{ list-style:none; padding:0; margin:0; font-size:14px; line-height:1.6; }
.feature-list li{ position:relative; padding-left:1em; margin-bottom:4px; }
.feature-list li::before{ content:"·"; position:absolute; left:0; font-weight:700; color:var(--primary); }
.profile-panel{ padding:28px; border-radius:14px; }
.inicio-stats{ margin:0 0 10px 0; }
.inicio-stats a{ color:var(--primary); text-decoration:none; font-weight:600; }
.inicio-stats a:hover{ text-decoration:underline; }
/* Panel inicio usuario logueado */
.inicio-dashboard {
  padding: 24px;
  border-radius: 16px;
  background: linear-gradient(160deg, rgba(30,99,255,.04) 0%, rgba(31,125,181,.03) 100%);
  border: 1px solid rgba(30,99,255,.12);
}
.inicio-dashboard-greeting {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}
.inicio-dashboard-emoji { font-size: 1.5rem; }
.inicio-dashboard-hola {
  margin: 0;
  font-size: 18px;
  color: var(--text);
}
.inicio-dashboard-hola strong { color: var(--text); font-weight: 700; }
.inicio-dashboard-stats {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 20px;
  padding: 14px 16px;
  background: rgba(255,255,255,.6);
  border-radius: 12px;
  border: 1px solid var(--border);
}
.inicio-dashboard-stat {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  color: var(--muted);
}
.inicio-dashboard-stat-icon { font-size: 1.1rem; }
.inicio-dashboard-stat--block { align-items: flex-start; }
.inicio-ultima-semana-list {
  margin: 6px 0 0 0;
  padding-left: 1.2em;
  font-size: 14px;
}
.inicio-dashboard-stat-text a { color: var(--primary); text-decoration: none; font-weight: 600; }
.inicio-dashboard-stat-text a:hover { text-decoration: underline; }
.inicio-dashboard-section {
  margin-bottom: 18px;
  padding: 14px 16px;
  background: rgba(255,255,255,.5);
  border-radius: 12px;
  border: 1px solid var(--border);
}
.inicio-dashboard-section--warning {
  background: linear-gradient(135deg, rgba(245,158,11,.06), rgba(245,158,11,.03));
  border-color: rgba(245,158,11,.2);
}

@media (prefers-color-scheme: dark) and (min-width: 99999px) {
  .inicio-dashboard {
    background: linear-gradient(160deg, rgba(30,99,255,.12) 0%, rgba(31,125,181,.08) 100%);
    border-color: rgba(30,99,255,.25);
  }
  .inicio-dashboard-hola,
  .inicio-dashboard-hola strong {
    color: var(--text);
  }
  .inicio-dashboard-stats {
    background: rgba(255,255,255,.06);
    border-color: var(--border);
  }
  .inicio-dashboard-stat {
    color: var(--text-secondary);
  }
  .inicio-dashboard-section {
    background: rgba(255,255,255,.06);
    border-color: var(--border);
  }
  .inicio-dashboard-section--warning {
    background: linear-gradient(135deg, rgba(245,158,11,.12), rgba(245,158,11,.06));
    border-color: rgba(245,158,11,.35);
  }
  .inicio-dashboard-section-title {
    color: var(--text);
  }
  .inicio-proximas-fechas-list {
    color: var(--text-secondary);
  }
  .inicio-proxima-fecha {
    color: var(--text);
  }
}
.inicio-dashboard-section-title {
  margin: 0 0 10px 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 6px;
}
.inicio-proximas-fechas-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 13px;
  color: var(--muted);
}
.inicio-proximas-fechas-list li {
  padding: 6px 0;
  border-bottom: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
}
.inicio-proximas-fechas-list li:last-child { border-bottom: none; }
.inicio-proxima-fecha {
  font-weight: 600;
  color: var(--text);
  min-width: 82px;
}
.inicio-proximo-organismo {
  font-size: 0.9em;
  color: var(--text-secondary, #64748b);
  font-weight: 500;
  margin-right: 0.25em;
}
.inicio-proximo-organismo::after { content: " · "; color: var(--border); font-weight: 400; }
.inicio-proximo-evento { color: var(--primary); text-decoration: none; font-weight: 500; }
.inicio-proximo-evento:hover { text-decoration: underline; }
.inicio-pregunta-fallada-text {
  margin: 0 0 8px 0;
  font-size: 13px;
  line-height: 1.45;
  color: var(--text);
}
.inicio-pregunta-fallada-meta {
  margin: 0;
  font-size: 12px;
  color: var(--muted);
}
.inicio-pregunta-fallada-meta a { color: var(--primary); font-weight: 600; text-decoration: none; }
.inicio-pregunta-fallada-meta a:hover { text-decoration: underline; }
.inicio-dashboard-cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 4px;
}
.hero-cta{ display:flex; gap:12px; flex-wrap:wrap; }

/* ---------- LANDING PÚBLICA (home no logueado) ---------- */
.inicio-hero { padding: 0 0 32px 0; }
.inicio-hero__inner {
  display: block;
  max-width: 640px;
}
.inicio-hero__title {
  margin: 0 0 16px 0;
  font-size: 28px;
  font-weight: 900;
  letter-spacing: -0.5px;
  line-height: 1.2;
  background: linear-gradient(135deg, var(--text), var(--text-secondary));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.inicio-hero__subtitle {
  margin: 0 0 24px 0;
  font-size: 17px;
  line-height: 1.6;
  color: var(--text-secondary);
}
.inicio-hero__cta { margin-bottom: 16px; }
.inicio-hero__checks {
  margin: 0 0 12px 0;
  font-size: 14px;
  color: var(--text-secondary);
}
.inicio-hero__disclaimer {
  margin: 0;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
}

/* Cómo funciona - 3 pasos */
.inicio-pasos__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 600px) {
  .inicio-pasos__grid { grid-template-columns: repeat(3, 1fr); }
}
.inicio-paso {
  padding: 20px;
  background: rgba(255,255,255,.6);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  text-align: center;
}
@media (prefers-color-scheme: dark) and (min-width: 99999px) {
  .inicio-paso { background: rgba(255,255,255,.04); }
}
.inicio-paso__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  margin: 0 auto 12px;
  font-size: 18px;
  font-weight: 800;
  color: var(--primary);
  background: rgba(30,99,255,.12);
  border-radius: 50%;
  line-height: 1;
}
.inicio-paso__title {
  margin: 0 0 8px 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}
.inicio-paso__text {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}

/* Novedades en main (secundario) */
.inicio-novedades-block .section-heading { margin-bottom: 16px; }
.inicio-novedades-block .inicio-novedades-list { border-bottom: none; }
.inicio-novedades-block .inicio-novedades-list li { border-bottom: 1px solid var(--border); }
.inicio-novedades-block .inicio-novedades-list li:last-of-type { border-bottom: none; }

/* Ad slots - ocultos por defecto */
.ad-slot {
  display: none;
  margin: 24px 0;
}
body.show-ads .ad-slot {
  display: block;
}
.ad-slot__placeholder {
  padding: 20px;
  background: linear-gradient(135deg, rgba(30,99,255,.06), rgba(31,125,181,.04));
  border: 1px solid rgba(30,99,255,.12);
  border-radius: var(--radius-md);
  text-align: center;
}
.ad-slot__title {
  margin: 0 0 8px 0;
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
}
.ad-slot__text {
  margin: 0 0 12px 0;
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.5;
}

/* CTA final */
.inicio-cta-final .section-heading { margin-top: 0; }

/* Responsive: botones full width en móvil */
@media (max-width: 480px) {
  .inicio-hero__cta.hero-cta {
    flex-direction: column;
  }
  .inicio-hero__cta .btn {
    width: 100%;
    justify-content: center;
  }
}

/* Racha badge */
.inicio-racha-badge {
  margin-left: auto;
  padding: 10px 18px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.inicio-racha-badge--active {
  background: linear-gradient(135deg, rgba(255,87,34,.1), rgba(255,152,0,.1));
  border: 1px solid rgba(255,87,34,.2);
}
.inicio-racha-badge--broken {
  background: rgba(255,87,34,.08);
  border: 1px solid rgba(255,87,34,.2);
}
.inicio-racha-badge--empty {
  background: rgba(30,99,255,.06);
  border: 1px solid rgba(30,99,255,.15);
}

/* Último simulacro con iconos */
.inicio-simulacro-result {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
}
.inicio-icon-correcta {
  font-size: 20px;
  color: var(--success, #10b981);
  font-weight: 700;
  line-height: 1;
}
.inicio-num-correcta {
  color: var(--success, #10b981);
  font-weight: 700;
  font-size: 15px;
}
.inicio-icon-fallada {
  font-size: 20px;
  color: var(--danger, #ef4444);
  font-weight: 700;
  line-height: 1;
  margin-left: 4px;
}
.inicio-num-fallada {
  color: var(--danger, #ef4444);
  font-weight: 700;
  font-size: 15px;
}

/* Días restantes badge */
.inicio-dias-restantes-badge {
  font-size: 11px;
  color: var(--text-secondary);
  margin-left: 8px;
  padding: 4px 10px;
  background: rgba(30,99,255,.08);
  border-radius: 6px;
  font-weight: 500;
  white-space: nowrap;
}

/* Pregunta que más fallas - card mejorada */
.inicio-pregunta-fallada-card {
  background: linear-gradient(135deg, rgba(239,68,68,.08), rgba(251,191,36,.08));
  border: 1px solid rgba(239,68,68,.2);
  border-radius: 12px;
  padding: 20px;
}
.inicio-dashboard-section-title--large {
  margin-bottom: 14px;
  font-size: 15px;
}
.inicio-pregunta-fallada-text--large {
  margin-bottom: 16px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--text);
}
.inicio-pregunta-fallada-stats {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.inicio-pregunta-fallada-counter {
  padding: 14px 22px;
  background: rgba(239,68,68,.15);
  border-radius: 10px;
  border: 1px solid rgba(239,68,68,.3);
}
.inicio-pregunta-fallada-counter-label {
  font-size: 11px;
  color: var(--text-secondary);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
}
.inicio-pregunta-fallada-counter-value {
  font-size: 32px;
  font-weight: 800;
  color: var(--danger, #ef4444);
  line-height: 1;
}
.inicio-btn-large {
  font-size: 15px;
  padding: 12px 24px;
  font-weight: 700;
}

/* Tema recomendado - card */
.inicio-tema-recomendado-card {
  background: linear-gradient(135deg, rgba(30,99,255,.06), rgba(31,125,181,.06));
  border: 1px solid rgba(30,99,255,.2);
  border-radius: 12px;
  padding: 20px;
}
.inicio-tema-recomendado-text {
  margin: 0 0 12px 0;
  font-size: 15px;
  color: var(--text);
  line-height: 1.6;
}
.inicio-tema-recomendado-subtext {
  margin: 0 0 18px 0;
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.5;
}
.inicio-btn-medium {
  font-size: 14px;
  padding: 10px 20px;
  font-weight: 600;
}

/* Exámenes interesantes */
.inicio-examenes-interesantes-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.inicio-examen-interesante-item {
  padding: 14px 0;
  border-bottom: 1px solid var(--border-light);
}
.inicio-examenes-interesantes-list li:last-child {
  border-bottom: none;
}
.inicio-examen-interesante-link {
  color: var(--primary);
  text-decoration: none;
  font-weight: 600;
  font-size: 15px;
  display: block;
  line-height: 1.4;
}
.inicio-examen-interesante-link:hover {
  text-decoration: underline;
}
.inicio-examen-interesante-meta {
  font-size: 13px;
  color: var(--text-secondary);
  margin-top: 6px;
  line-height: 1.4;
}
.inicio-examenes-ver-mas {
  margin-top: 16px;
  text-align: center;
  padding-top: 12px;
  border-top: 1px solid var(--border-light);
}
.inicio-dashboard-section--muted {
  opacity: 0.7;
}
.inicio-empty-message {
  color: var(--text-secondary);
  font-size: 14px;
  margin: 0;
  line-height: 1.5;
}
.muted-lead{ color:var(--muted); font-size:15px; margin:0 0 18px 0; }
.label-strong{ font-size:14px; font-weight:700; color:var(--text); }
.alert--danger{ padding: 14px 16px; background: linear-gradient(135deg, rgba(239,68,68,.08), rgba(239,68,68,.06)); border: 1px solid rgba(239,68,68,.2); border-radius:12px; color:#dc2626; font-weight:600; font-size:14px; }
.p-20{ padding:20px; }
.strong-text{ color: var(--text); font-weight:700; }
.section-divider-top{ padding-top:28px; border-top:1px solid var(--border); text-align:center; }
.link-primary{ color: var(--primary); font-weight:700; text-decoration:none; transition: var(--transition-fast); }
.stack-sm{ display:flex; flex-direction:column; gap:8px; }
.error-text{ color:#dc2626; font-size:13px; font-weight:600; }
.mt-xxs{ margin-top:8px !important; }

/* Public landing/home alignment */
.inicio-layout--landing .inicio-main.card{
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.inicio-layout--landing .inicio-hero{
  margin-bottom: 22px;
  padding: 36px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(244,248,255,.92)),
    radial-gradient(760px 320px at 82% 10%, rgba(30,99,255,.12), transparent 64%);
  box-shadow: var(--shadow-sm);
}

.inicio-layout--landing .inicio-section,
.inicio-layout--landing .ad-slot,
.inicio-layout--landing .inicio-cta-final{
  border-radius: 8px;
}

.inicio-layout--landing .feature-box,
.inicio-layout--landing .inicio-paso{
  border-radius: 8px;
}

.inicio-layout--landing{
  display: block;
}

.inicio-layout--landing .inicio-main{
  width: 100%;
}

.inicio-layout--landing .inicio-calendar-wrap{
  display: none;
}

.home-hero{
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, .95fr);
  gap: clamp(24px, 3.4vw, 40px);
  align-items: center;
  padding: 30px 0 54px;
}

.home-eyebrow{
  display: inline-flex;
  margin: 0 0 16px;
  padding: 5px 9px;
  border-radius: 6px;
  background: rgba(30,99,255,.08);
  color: var(--primary);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.home-hero__title{
  max-width: 680px;
  margin: 0;
  color: var(--text);
  font-size: clamp(48px, 4.3vw, 56px);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: 0;
}

.home-hero__subtitle{
  max-width: 610px;
  margin: 16px 0 0;
  color: var(--text-secondary);
  font-size: 18px;
  line-height: 1.6;
}

.home-hero__actions,
.home-final-cta__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.home-hero__actions .btn,
.home-final-cta__actions .btn{
  min-height: 46px;
  padding-inline: 22px;
}

.home-trust-list{
  display: flex;
  flex-wrap: wrap;
  gap: 12px 22px;
  padding: 0;
  margin: 18px 0 0;
  list-style: none;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 700;
}

.home-trust-list li{
  position: relative;
  padding-left: 18px;
}

.home-trust-list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: .5em;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--primary);
  box-shadow: 0 0 0 4px rgba(30,99,255,.1);
}

.home-disclaimer{
  max-width: 620px;
  margin: 20px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.home-stats-card{
  padding: var(--home-card-padding);
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.95);
  box-shadow: 0 18px 48px rgba(15,23,42,.08);
}

.home-stats-card__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.home-stats-card__head h2{
  margin: 0;
  color: var(--text);
  font-size: 18px;
  letter-spacing: 0;
}

.home-stats-card__head span{
  color: var(--success);
  font-size: 12px;
  font-weight: 800;
}

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

.home-stat{
  display: block;
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fff;
  color: inherit;
  text-decoration: none;
}

.home-stat--link{
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.home-stat--link:hover{
  transform: translateY(-2px);
  border-color: rgba(30,99,255,.22);
  box-shadow: 0 14px 30px rgba(15,23,42,.08);
}

.home-stat--link:focus-visible{
  outline: 3px solid rgba(30,99,255,.24);
  outline-offset: 3px;
}

.home-stat strong{
  display: block;
  color: var(--primary);
  font-size: clamp(32px, 3vw, 38px);
  line-height: 1;
}

.home-stat span{
  display: block;
  margin-top: 8px;
  color: var(--text);
  font-size: 14px;
  font-weight: 750;
  line-height: 1.35;
}

.home-stat--green strong{ color: #10b981; }
.home-stat--purple strong{ color: #7c3aed; }
.home-stat--orange strong{ color: #f97316; }

.home-data-card{
  align-self: stretch;
}

.home-data-groups{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.home-data-group{
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 12px;
  padding: var(--home-card-padding-compact);
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
}

.home-data-group h3{
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: var(--primary);
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 0;
}

.home-data-group--practice h3{
  color: #059669;
}

.home-data-group__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 10px;
  background: rgba(30,99,255,.09);
  color: var(--primary);
}

.home-data-group__icon--green{
  background: rgba(16,185,129,.11);
  color: #059669;
}

.home-data-group__icon svg{
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

.home-data-metrics{
  display: grid;
  gap: 10px;
}

.home-data-metric{
  display: block;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.home-data-metric strong{
  display: block;
  color: var(--primary);
  font-size: 26px;
  line-height: 1;
}

.home-data-metric span{
  display: block;
  margin-top: 5px;
  color: var(--text);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.25;
}

.home-data-metric:hover span,
.home-data-metric:focus-visible span{
  color: var(--primary);
}

.home-data-metric:focus-visible{
  outline: 3px solid rgba(30,99,255,.24);
  outline-offset: 3px;
  border-radius: 8px;
}

.home-data-metric--green strong{ color: #10b981; }
.home-data-metric--purple strong{ color: #7c3aed; }
.home-data-metric--orange strong{ color: #f97316; }

.home-data-empty{
  margin: 0;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.45;
}

.home-stats-card__link{
  display: inline-flex;
  margin-top: 16px;
  color: var(--primary);
  font-size: 14px;
  font-weight: 850;
}

.home-quick-search{
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  margin-top: -16px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 18px 42px rgba(15,23,42,.08);
}

.home-quick-search__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: rgba(30,99,255,.08);
  color: var(--primary);
}

.home-quick-search__icon svg{
  width: 27px;
  height: 27px;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

.home-quick-search__body{
  min-width: 0;
}

.home-quick-search__input{
  width: 100%;
  min-width: 0;
  border: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-weight: 800;
  outline: 0;
}

.home-quick-search__input::placeholder{
  color: var(--text-secondary);
  opacity: 1;
}

.home-quick-search p{
  margin: 4px 0 0;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.35;
}

.home-quick-search .btn{
  min-height: 44px;
  min-width: 132px;
}

.home-section{
  margin-top: var(--home-section-gap);
}

.home-section__title{
  margin: 0 0 var(--home-title-gap);
  color: var(--text);
  text-align: center;
  font-size: clamp(28px, 2.5vw, 32px);
  font-weight: 900;
  letter-spacing: 0;
}

#inicio-diferencial-heading{
  margin-top: 8px;
}

.home-section__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: var(--home-title-gap);
}

.home-section__head .home-section__title{
  margin: 0;
  text-align: left;
}

.home-section__head a{
  color: var(--primary);
  font-weight: 850;
  white-space: nowrap;
}

.home-card-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--home-card-gap);
}

.home-practice-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--home-card-gap);
}

.home-feature-card{
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  gap: 10px;
  padding: var(--home-card-padding);
  border: 1px solid var(--border);
  border-radius: 18px;
  background: rgba(255,255,255,.95);
  box-shadow: var(--shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.home-feature-card:hover{
  transform: translateY(-2px);
  border-color: rgba(30,99,255,.18);
  box-shadow: 0 14px 34px rgba(15,23,42,.08);
}

.home-feature-card__icon,
.home-benefit > span{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 14px;
  background: rgba(30,99,255,.09);
  color: var(--primary);
  font-weight: 900;
}

.home-feature-card__icon svg,
.home-benefit > span svg,
.home-final-cta__icon svg{
  width: 24px;
  height: 24px;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

.home-feature-card__icon--green{ background: rgba(16,185,129,.1); color: #059669; }
.home-feature-card__icon--orange{ background: rgba(249,115,22,.11); color: #ea580c; }
.home-feature-card__icon--purple{ background: rgba(124,58,237,.1); color: #7c3aed; }

.home-feature-card h3,
.home-benefit h3,
.home-step h3{
  margin: 0;
  color: var(--text);
  font-size: 17px;
  letter-spacing: 0;
}

.home-feature-card p,
.home-benefit p,
.home-step p,
.home-final-cta p{
  margin: 0;
  color: var(--text-secondary);
  font-size: 14px;
  line-height: 1.55;
}

.home-feature-card a{
  margin-top: auto;
  color: var(--primary);
  font-size: 14px;
  font-weight: 850;
}

.home-benefit-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.home-benefit{
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.home-benefit > span{
  font-size: 0;
}

.home-benefit > span::before,
.home-final-cta__icon::before{
  content: "";
  width: 24px;
  height: 24px;
  background: currentColor;
  -webkit-mask: var(--home-icon-mask) center / contain no-repeat;
  mask: var(--home-icon-mask) center / contain no-repeat;
}

.home-benefit:nth-child(1) > span{ --home-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 19V5M5 19h14'/%3E%3Crect x='8' y='11' width='3' height='5' rx='.5' fill='black'/%3E%3Crect x='12' y='7' width='3' height='9' rx='.5' fill='black'/%3E%3Crect x='16' y='9' width='3' height='7' rx='.5' fill='black'/%3E%3C/svg%3E"); }
.home-benefit:nth-child(2) > span{ --home-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9M10 20a2 2 0 0 0 4 0'/%3E%3C/svg%3E"); }
.home-benefit:nth-child(3) > span{ --home-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='m4 17 5-5 4 4 7-8M14 8h6v6'/%3E%3C/svg%3E"); }
.home-benefit:nth-child(4) > span{ --home-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M7 3h7l4 4v14H7zM14 3v5h4M9.5 13h5M9.5 17h5M9.5 9h2'/%3E%3C/svg%3E"); }

.home-steps{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  align-items: stretch;
}

.home-step{
  position: relative;
  padding: 20px 20px 20px 68px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.95);
  box-shadow: var(--shadow-sm);
}

.home-step__num{
  position: absolute;
  left: 20px;
  top: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: rgba(30,99,255,.08);
  color: var(--primary);
  font-weight: 900;
}

.home-news-list{
  display: grid;
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  background: rgba(255,255,255,.95);
  box-shadow: var(--shadow-sm);
}

.home-news-item{
  display: grid;
  grid-template-columns: 80px minmax(0, 1.25fr) minmax(150px, .75fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
}

.home-news-item:last-child{ border-bottom: 0; }

.home-news-item time{
  color: var(--primary);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.home-news-item__title{
  color: var(--text);
  font-weight: 800;
  line-height: 1.35;
}

.home-news-item__title:hover,
.home-news-item__org:hover{
  color: var(--primary);
}

.home-news-item__org{
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 700;
}

.home-faq-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.home-faq-item{
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,.95);
  box-shadow: var(--shadow-sm);
}

.home-faq-item summary{
  cursor: pointer;
  padding: 14px 16px;
  color: var(--text);
  font-size: 14px;
  font-weight: 850;
  line-height: 1.35;
}

.home-faq-item summary:focus-visible{
  outline: 3px solid rgba(30,99,255,.24);
  outline-offset: 3px;
  border-radius: 10px;
}

.home-faq-item p{
  margin: 0;
  padding: 0 16px 14px;
  color: var(--text-secondary);
  font-size: 14px;
  line-height: 1.55;
}

.home-final-cta{
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin-top: var(--home-section-gap-compact);
  padding: var(--home-card-padding);
  border: 1px solid rgba(30,99,255,.16);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(30,99,255,.08), rgba(255,255,255,.96));
}

.home-final-cta__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 999px;
  background: rgba(30,99,255,.12);
  color: var(--primary);
  font-weight: 900;
  font-size: 0;
}

.home-final-cta__icon{ --home-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9M10 20a2 2 0 0 0 4 0'/%3E%3C/svg%3E"); }

.home-final-cta h2{
  margin: 0 0 5px;
  color: var(--text);
  font-size: 20px;
  letter-spacing: 0;
}

.home-final-cta__actions{
  justify-content: flex-end;
  margin-top: 0;
}

@media (prefers-color-scheme: dark) and (min-width: 99999px){
  .home-stats-card,
  .home-stat,
  .home-data-group,
  .home-quick-search,
  .home-feature-card,
  .home-step,
  .home-news-list,
  .home-faq-item{
    background: rgba(20,30,58,.9);
  }
  .home-final-cta{
    background: linear-gradient(135deg, rgba(30,99,255,.14), rgba(20,30,58,.9));
  }
}

@media (max-width: 980px){
  .home-hero{
    grid-template-columns: 1fr;
    gap: 26px;
    padding: 40px 0 46px;
  }
  .home-hero__title{ font-size: 40px; }
  .home-stats-card{ max-width: 640px; }
  .home-card-grid,
  .home-benefit-grid,
  .home-practice-grid,
  .home-faq-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-steps{
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .home-news-item{
    grid-template-columns: 72px minmax(0, 1fr);
  }
  .home-news-item .pill{
    justify-self: start;
  }
  .home-final-cta{
    grid-template-columns: 54px minmax(0, 1fr);
  }
  .home-final-cta__actions{
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@media (max-width: 640px){
  .home-hero{
    padding: 32px 0 40px;
  }
  .home-hero__title{
    font-size: 36px;
    line-height: 1.1;
  }
  .home-hero__subtitle{
    font-size: 16px;
  }
  .home-data-groups{
    grid-template-columns: 1fr;
  }
  .home-quick-search{
    grid-template-columns: 44px minmax(0, 1fr);
    padding: 15px;
  }
  .home-quick-search .btn{
    grid-column: 1 / -1;
    width: 100%;
  }
  .home-stats-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-card-grid,
  .home-benefit-grid,
  .home-practice-grid,
  .home-faq-grid{
    grid-template-columns: 1fr;
  }
  .home-section{
    margin-top: 44px;
  }
  .home-section__title{
    margin-bottom: 20px;
    font-size: 26px;
  }
  .home-benefit{
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
  }
  .home-section__head{
    align-items: flex-start;
    flex-direction: column;
  }
  .home-news-item{
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 14px 16px;
  }
  .home-final-cta{
    grid-template-columns: 1fr;
    margin-top: 38px;
    padding: 20px;
  }
  .home-hero__actions .btn,
  .home-final-cta__actions .btn{
    width: 100%;
  }
}

@media (max-width: 420px){
  .home-hero__title{ font-size: 34px; }
  .home-stats-card{ padding: var(--home-card-padding-compact); }
  .home-stats-grid{ grid-template-columns: 1fr; }
  .home-data-group{ padding: 15px; }
  .home-data-metric strong{ font-size: 25px; }
  .home-quick-search{
    grid-template-columns: 1fr;
    margin-top: -10px;
  }
  .home-quick-search__icon{
    display: none;
  }
  .home-stat strong{ font-size: 32px; }
  .home-feature-card{ padding: var(--home-card-padding-compact); }
  .home-step{ padding: 18px 18px 18px 64px; }
  .home-step__num{ left: 18px; top: 18px; }
}

/* ---------- PUBLIC CALENDAR ---------- */
.public-hero.public-hero--calendar{
  padding:18px 0 18px;
  overflow:hidden;
}
.public-hero--calendar .container{ position:relative; }
.public-hero--calendar .container::after{
  content:"";
  position:absolute;
  right:-44px;
  top:24px;
  width:112px;
  height:112px;
  opacity:.32;
  background-image:radial-gradient(circle, rgba(30,99,255,.5) 1.6px, transparent 1.8px);
  background-size:14px 14px;
  pointer-events:none;
}
.public-hero--calendar .public-hero__breadcrumbs{ margin-bottom:28px; }
.public-hero--calendar .breadcrumbs__list{ flex-wrap:nowrap; overflow-x:auto; white-space:nowrap; scrollbar-width:none; }
.public-hero--calendar .breadcrumbs__list::-webkit-scrollbar{ display:none; }
.public-hero--calendar .breadcrumbs__current{ display:inline-block; max-width:min(48vw,420px); overflow:hidden; text-overflow:ellipsis; vertical-align:bottom; }
.public-hero--calendar .public-eyebrow{ margin-bottom:12px; font-size:13px; }
.public-hero--calendar .public-hero__title{ font-size:clamp(42px,4.6vw,64px); line-height:.96; max-width:620px; }
.public-hero--calendar .public-hero__subtitle{ max-width:560px; margin-top:16px; font-size:18px; line-height:1.42; }
.public-hero.public-hero--compact-calendar{
  padding:12px 0 10px;
}
.public-hero--compact-calendar .public-hero__breadcrumbs{
  margin-bottom:12px;
}
.public-hero--compact-calendar .public-eyebrow{
  margin-bottom:7px;
}
.public-hero--compact-calendar .public-hero__title{
  font-size:clamp(38px,4vw,54px);
  line-height:1;
}
.public-hero--compact-calendar .public-hero__subtitle{
  margin-top:10px;
  font-size:16px;
  line-height:1.4;
}
.public-hero--compact-calendar .calendar-hero{
  gap:clamp(24px,3.5vw,48px);
}
.public-hero--compact-calendar .calendar-hero__visual,
.public-hero--compact-calendar .calendar-hero__visual .public-hero__mark{
  min-height:218px;
}
.public-hero--compact-calendar .calendar-hero__visual{
  width:min(100%,580px);
}
.public-hero--compact-calendar .calendar-hero__stats{
  margin-top:-20px;
}
.public-hero--compact-calendar .calendar-stat{
  grid-template-columns:32px minmax(0,1fr);
  column-gap:8px;
  min-height:64px;
  padding:10px 12px;
}
.public-hero--compact-calendar .calendar-stat__icon{
  width:32px;
  height:32px;
  background-size:19px;
}
.public-hero--compact-calendar .calendar-stat strong{
  font-size:22px;
}
.public-hero--compact-calendar .calendar-stat span:not(.calendar-stat__icon){
  font-size:11px;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

@media (min-width:1101px){
  .public-hero.public-hero--compact-calendar{
    padding:6px 0;
  }
  .public-hero--compact-calendar .public-hero__breadcrumbs{
    margin-bottom:4px;
  }
  .public-hero--compact-calendar .calendar-hero{
    align-items:center;
    gap:clamp(20px,3vw,40px);
  }
  .public-hero--compact-calendar .public-eyebrow{
    margin-bottom:5px;
  }
  .public-hero--compact-calendar .public-hero__title{
    font-size:clamp(36px,3.5vw,48px);
  }
  .public-hero--compact-calendar .public-hero__subtitle{
    margin-top:8px;
    font-size:15px;
  }
  .public-hero--compact-calendar .calendar-hero__visual,
  .public-hero--compact-calendar .calendar-hero__visual .public-hero__mark{
    min-height:158px;
  }
  .public-hero--compact-calendar .calendar-hero__visual{
    width:min(100%,470px);
  }
  .public-hero--compact-calendar .calendar-hero__stats{
    margin-top:-12px;
  }
  .public-hero--compact-calendar .calendar-stat{
    min-height:58px;
    padding:8px 10px;
  }
}

.calendar-hero{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(520px,1.05fr);
  align-items:end;
  gap:clamp(28px,5vw,70px);
}
.calendar-hero__copy{ min-width:0; }
.calendar-hero__media{
  position:relative;
  min-width:0;
  display:grid;
  justify-items:center;
  gap:0;
}
.calendar-hero__visual{
  width:min(100%,660px);
  min-height:285px;
  border-radius:0;
  align-self:end;
}
.calendar-hero__visual .public-hero__mark{
  inset:0;
  min-height:285px;
  border:0;
  border-radius:0;
  background:
    radial-gradient(ellipse at 48% 55%, rgba(30,99,255,.13), transparent 66%),
    var(--public-hero-image) center/contain no-repeat;
  box-shadow:none;
}
.calendar-hero__stats{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  width:min(100%,720px);
  margin-top:-28px;
}
.calendar-stat{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  grid-template-areas:"icon value" "icon label";
  align-items:center;
  column-gap:10px;
  min-width:0;
  min-height:74px;
  padding:13px 15px;
  border:1px solid rgba(30,99,255,.12);
  border-radius:8px;
  background:rgba(255,255,255,.96);
  color:var(--text);
  text-decoration:none;
  box-shadow:0 16px 34px rgba(15,23,42,.09);
  overflow:hidden;
}
.calendar-stat:hover{
  transform:translateY(-1px);
  border-color:rgba(30,99,255,.22);
}
.calendar-stat__icon{
  grid-area:icon;
  width:38px;
  height:38px;
  border-radius:10px;
  background-color:rgba(16,185,129,.12);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%2310B981' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:22px;
}
.calendar-stat strong{
  grid-area:value;
  color:var(--success);
  font-size:26px;
  line-height:1;
}
.calendar-stat span:not(.calendar-stat__icon){
  grid-area:label;
  color:var(--text);
  font-size:12px;
  font-weight:850;
  line-height:1.18;
  min-width:0;
  overflow-wrap:anywhere;
}
.calendar-stat--orange .calendar-stat__icon{
  background-color:rgba(249,115,22,.13);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23F97316' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}
.calendar-stat--orange strong{ color:#f97316; }
.calendar-stat--purple .calendar-stat__icon{
  background-color:rgba(124,58,237,.12);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%237C3AED' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5Z'/%3E%3Cpath d='M6 12v5c3 2 9 2 12 0v-5'/%3E%3C/svg%3E");
}
.calendar-stat--purple strong{ color:#7c3aed; }
.calendar-stat--blue .calendar-stat__icon{
  background-color:rgba(30,99,255,.1);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%231E63FF' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='M9 13h6'/%3E%3Cpath d='M9 17h4'/%3E%3C/svg%3E");
}
.calendar-stat--blue strong{ color:var(--primary); }
.calendar-wide-shell{
  width:min(1540px,calc(100vw - clamp(32px,6vw,112px)));
  margin-left:50%;
  margin-top:0;
  transform:translateX(-50%);
}
.calendar-filters{ margin-top:18px; margin-bottom:0; padding:0; overflow:hidden; }
.calendar-filters__summary{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px; cursor:pointer; list-style:none; }
.calendar-filters__summary::-webkit-details-marker{ display:none; }
.calendar-filters__summary strong,.calendar-filters__summary small{ display:block; }
.calendar-filters__summary strong{ color:var(--text); font-size:17px; }
.calendar-filters__summary small{ margin-top:3px; color:var(--text-secondary); font-size:13px; font-weight:700; }
.calendar-filters .public-section-heading,.calendar-filters .calendar-filter-form{ padding:0 18px 18px; }
.calendar-filter-form{ grid-template-columns:minmax(220px,1.2fr) repeat(4,minmax(140px,1fr)) minmax(132px,.8fr) minmax(132px,.8fr); }
.calendar-check{ display:flex; align-items:center; gap:8px; min-height:44px; padding:0 12px; border:1px solid var(--border); border-radius:12px; color:var(--text-secondary); font-size:13px; font-weight:800; }
.calendar-check input{ width:16px; height:16px; }
.private-calendar-tabs{
  margin:0 0 8px;
  padding:4px;
}
.private-calendar-tabs .section-tabs__item{
  padding:8px 14px;
}
.calendar-layout{ display:block; }
.calendar-main,.calendar-sidebar{ min-width:0; }
.calendar-sidebar{ display:grid; gap:18px; position:sticky; top:calc(var(--header-height) + 18px); }
.calendar-card{ padding:18px; overflow:hidden; border-radius:18px; box-shadow:0 18px 46px rgba(15,23,42,.08); }
.calendar-toolbar,.calendar-side-card__head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.calendar-toolbar__title{ display:flex; align-items:flex-start; gap:10px; min-width:0; }
.calendar-toolbar__icon{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; flex:0 0 34px; border-radius:11px; background:rgba(30,99,255,.1); color:var(--primary); }
.calendar-toolbar__icon svg{ width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.calendar-toolbar h2,.calendar-side-card h2,.calendar-private-cta h2{ margin:0; color:var(--text); font-size:20px; letter-spacing:0; }
.calendar-toolbar p,.calendar-muted,.calendar-private-cta p{ margin:4px 0 0; color:var(--text-secondary); font-size:13px; line-height:1.4; }
.calendar-toolbar__actions{ display:grid; justify-items:end; gap:6px; }
.calendar-legend{ display:flex; flex-wrap:wrap; gap:6px; margin:-2px 0 10px; }
.calendar-legend__item{ display:inline-flex; align-items:center; gap:5px; padding:4px 7px; border:1px solid var(--border); border-radius:999px; background:rgba(255,255,255,.88); color:var(--text-secondary); font-size:10px; font-weight:850; line-height:1; }
.calendar-legend__item span{ width:8px; height:8px; border-radius:999px; background:var(--primary); }
.calendar-legend__item--green span{ background:#10b981; }
.calendar-legend__item--orange span{ background:#f97316; }
.calendar-legend__item--purple span{ background:#7c3aed; }
.calendar-legend__item--teal span{ background:#14b8a6; }
.calendar-legend__item--indigo span{ background:#4f46e5; }
.calendar-view-switch{ display:inline-flex; gap:3px; padding:3px; border:1px solid var(--border); border-radius:999px; background:rgba(248,250,253,.9); }
.calendar-view-switch a{ padding:7px 12px; border-radius:999px; color:var(--text-secondary); font-size:12px; font-weight:900; text-decoration:none; }
.calendar-view-switch a.is-active{ background:#fff; color:var(--primary); box-shadow:0 8px 20px rgba(15,23,42,.08); }
.calendar-month-nav{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.calendar-grid{ display:grid; gap:6px; }
.calendar-weekdays,.calendar-week{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)) minmax(112px,.36fr); gap:6px; }
.calendar-grid:not(.calendar-grid--compact-weekends) .calendar-weekdays,
.calendar-grid:not(.calendar-grid--compact-weekends) .calendar-week{ grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-weekdays span{ color:var(--muted); font-size:12px; font-weight:900; text-align:center; text-transform:uppercase; }
.calendar-day{ min-width:0; min-height:176px; padding:8px; border:1px solid var(--border); border-radius:12px; background:rgba(255,255,255,.92); }
.calendar-day.is-muted{ opacity:.58; background:rgba(248,250,253,.68); }
.calendar-day.is-weekend:not(.has-events){ min-height:74px; opacity:.38; background:rgba(248,250,253,.48); }
.calendar-grid--compact-weekends .calendar-day.is-weekend:not(.has-events) .calendar-day__events{ display:none; }
.calendar-grid--compact-weekends .calendar-day.is-weekend:not(.has-events){ border-style:dashed; }
.calendar-day.is-today{ border-color:rgba(30,99,255,.42); box-shadow:inset 0 0 0 1px rgba(30,99,255,.18); }
.calendar-day.is-selected{ border-color:rgba(30,99,255,.62); box-shadow:0 0 0 2px rgba(30,99,255,.12),0 14px 30px rgba(15,23,42,.08); }
.calendar-day__head{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.calendar-day__head time{ color:var(--text); font-size:14px; font-weight:900; }
.calendar-day__date{ display:inline-flex; align-items:center; justify-content:center; min-width:26px; min-height:26px; border-radius:9px; color:var(--text); text-decoration:none; }
.calendar-day__date:hover,.calendar-day__date:focus-visible{ background:rgba(30,99,255,.08); color:var(--primary); outline:none; }
.calendar-day__events{ display:grid; gap:5px; }
.calendar-event{ display:grid; grid-template-columns:34px minmax(0,1fr); gap:7px; min-width:0; min-height:54px; padding:6px; border:1px solid rgba(30,99,255,.12); border-radius:10px; background:rgba(30,99,255,.06); color:var(--text); text-decoration:none; }
.calendar-event--green{ border-color:rgba(16,185,129,.18); background:rgba(16,185,129,.08); }
.calendar-event--orange{ border-color:rgba(249,115,22,.2); background:rgba(249,115,22,.08); }
.calendar-event--purple{ border-color:rgba(124,58,237,.18); background:rgba(124,58,237,.08); }
.calendar-event--teal{ border-color:rgba(20,184,166,.2); background:rgba(20,184,166,.08); }
.calendar-event--indigo{ border-color:rgba(79,70,229,.18); background:rgba(79,70,229,.08); }
.calendar-event--slate{ border-color:rgba(100,116,139,.18); background:rgba(100,116,139,.08); }
.calendar-event.is-deadline,
.calendar-week-event.is-deadline{ border-color:rgba(249,115,22,.5); background:rgba(255,247,237,.96); }
.calendar-event.is-deadline-today,
.calendar-week-event.is-deadline-today{
  border-color:#dc2626;
  background:linear-gradient(135deg,#fff1f2,#fff);
  box-shadow:0 0 0 1px rgba(220,38,38,.16),0 10px 24px rgba(220,38,38,.12);
  animation:calendarDeadlinePulse 1.55s ease-in-out infinite;
}
.calendar-week-event.is-deadline-today{ box-shadow:0 0 0 1px rgba(220,38,38,.16),0 12px 28px rgba(220,38,38,.13); }
.calendar-event:hover,.calendar-event:focus-visible{ border-color:rgba(30,99,255,.36); box-shadow:0 10px 24px rgba(15,23,42,.08); }
.calendar-event.is-deadline-today:hover,
.calendar-event.is-deadline-today:focus-visible,
.calendar-week-event.is-deadline-today:hover,
.calendar-week-event.is-deadline-today:focus-visible{
  border-color:#dc2626;
  box-shadow:0 0 0 2px rgba(220,38,38,.18),0 14px 30px rgba(220,38,38,.2);
}
.calendar-event__logo,.calendar-list-card__fallback{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border:1px solid rgba(30,99,255,.08); border-radius:9px; background:#fff; color:var(--primary); font-size:9px; font-weight:900; }
.calendar-event__logo img,.calendar-list-card__logo{ width:100%; height:100%; object-fit:contain; }
.calendar-event__text{ display:grid; gap:1px; min-width:0; align-content:start; }
.calendar-event__text strong,.calendar-event__text small{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.calendar-event__text strong{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; white-space:normal; color:var(--text); font-size:11.5px; font-weight:850; line-height:1.18; }
.calendar-event.is-deadline-today .calendar-event__text strong,
.calendar-week-event.is-deadline-today strong{ color:#991b1b; }
.calendar-event__text small{ color:var(--text-secondary); font-size:9.5px; font-weight:650; line-height:1.18; }
.calendar-event__badge{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin-top:0;
  padding:2px 5px;
  border-radius:999px;
  background:rgba(30,99,255,.1);
  color:var(--primary);
  font-size:8.5px;
  font-weight:850;
  line-height:1.2;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.calendar-event__badge--green{ background:rgba(16,185,129,.12); color:#047857; }
.calendar-event__badge--orange{ background:rgba(249,115,22,.14); color:#c2410c; }
.calendar-event__badge--purple{ background:rgba(124,58,237,.12); color:#6d28d9; }
.calendar-event__badge--teal{ background:rgba(20,184,166,.14); color:#0f766e; }
.calendar-event__badge--indigo{ background:rgba(79,70,229,.12); color:#4338ca; }
.calendar-event__badge--slate{ background:rgba(100,116,139,.14); color:#475569; }
.calendar-deadline-alert{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  margin:3px 0 2px;
  padding:2px 6px;
  border-radius:999px;
  background:#dc2626;
  color:#fff;
  font-size:9px;
  font-style:normal;
  font-weight:950;
  letter-spacing:.02em;
  line-height:1.2;
  text-transform:uppercase;
  box-shadow:0 6px 16px rgba(220,38,38,.22);
}
.calendar-more{ display:inline-flex; justify-self:start; color:var(--primary); font-size:12px; font-weight:900; text-decoration:none; }
.calendar-more:hover,.calendar-more:focus-visible{ color:var(--primary-dark); text-decoration:underline; }
.calendar-weekend-compact{ display:grid; align-content:start; justify-items:center; gap:8px; min-width:0; min-height:176px; padding:12px 6px; border:1px dashed rgba(148,163,184,.36); border-radius:12px; background:rgba(248,250,253,.54); text-align:center; }
.calendar-weekend-compact strong{ color:var(--text-secondary); font-size:14px; font-weight:850; line-height:1; }
.calendar-weekend-compact span{ color:var(--muted); font-size:10px; font-weight:750; }
.calendar-weekend-compact a{ margin-top:auto; color:var(--primary); font-size:11px; font-weight:850; line-height:1.2; text-decoration:none; }
.calendar-weekend-compact a:hover,.calendar-weekend-compact a:focus-visible{ text-decoration:underline; }
.calendar-weekend-compact.has-events{ background:linear-gradient(180deg, rgba(30,99,255,.055), rgba(16,185,129,.045)); border-style:solid; border-color:rgba(30,99,255,.24); box-shadow:inset 0 0 0 1px rgba(30,99,255,.05); }
.calendar-weekend-compact.has-events span{ color:var(--text); font-weight:900; }
.calendar-weekend-compact.has-events a{ display:inline-flex; align-items:center; justify-content:center; min-height:28px; padding:5px 8px; border-radius:999px; background:rgba(30,99,255,.1); }
.calendar-week-view{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; }
.calendar-week-day{ min-width:0; min-height:260px; padding:12px; border:1px solid var(--border); border-radius:14px; background:rgba(255,255,255,.94); }
.calendar-week-day.is-today{ border-color:rgba(30,99,255,.42); box-shadow:inset 0 0 0 1px rgba(30,99,255,.16); }
.calendar-week-day.is-weekend:not(:has(.calendar-week-event)){ opacity:.48; background:rgba(248,250,253,.68); }
.calendar-week-day header{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; color:var(--text); font-weight:900; }
.calendar-week-day header span{ color:var(--text-secondary); font-size:12px; text-transform:uppercase; }
.calendar-week-day p{ margin:0; color:var(--muted); font-size:13px; font-weight:750; }
.calendar-week-day__events{ display:grid; gap:8px; }
.calendar-week-event{ display:grid; grid-template-columns:28px minmax(0,1fr); gap:9px; min-width:0; padding:10px; border:1px solid rgba(30,99,255,.14); border-radius:12px; background:rgba(30,99,255,.06); color:var(--text); text-decoration:none; }
.calendar-week-event .calendar-event__logo{ width:28px; height:28px; border-radius:9px; font-size:10px; }
.calendar-week-event span:last-child{ min-width:0; }
.calendar-week-event strong,.calendar-week-event small{ display:block; overflow:hidden; text-overflow:ellipsis; }
.calendar-week-event strong{ color:var(--text); font-size:13px; font-weight:950; line-height:1.25; }
.calendar-week-event small{ color:var(--text-secondary); font-size:11px; font-weight:650; line-height:1.3; }
.calendar-empty{ display:grid; gap:14px; margin-top:18px; padding:18px; border:1px dashed rgba(30,99,255,.24); border-radius:14px; background:rgba(30,99,255,.04); }
.calendar-empty p{ margin:0; color:var(--text-secondary); font-weight:750; }
.calendar-empty__actions{ display:flex; flex-wrap:wrap; gap:10px; }
.calendar-weekend-notice,.calendar-list-note{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:14px; padding:14px 16px; border:1px solid rgba(30,99,255,.14); border-radius:14px; background:rgba(30,99,255,.05); color:var(--text-secondary); font-size:14px; font-weight:800; }
.calendar-weekend-notice p,.calendar-list-note span{ margin:0; }
.calendar-list-note a{ color:var(--primary); font-weight:900; text-decoration:none; }
.calendar-day-panel{ margin-top:18px; padding:22px; }
.calendar-day-panel__head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.calendar-day-panel__head h2{ margin:0; color:var(--text); font-size:22px; letter-spacing:0; }
.calendar-day-panel__head p:not(.public-eyebrow){ margin:6px 0 0; color:var(--text-secondary); font-size:14px; font-weight:700; }
.calendar-day-panel__list{ display:grid; gap:10px; }
.calendar-day-panel__event{ display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px; border:1px solid var(--border); border-left:4px solid var(--primary); border-radius:14px; background:rgba(255,255,255,.95); box-shadow:var(--shadow-sm); }
.calendar-day-panel__event--green{ border-left-color:#10b981; }
.calendar-day-panel__event--orange{ border-left-color:#f97316; }
.calendar-day-panel__event--purple{ border-left-color:#7c3aed; }
.calendar-day-panel__event--teal{ border-left-color:#14b8a6; }
.calendar-day-panel__event--indigo{ border-left-color:#4f46e5; }
.calendar-day-panel__event.is-deadline-today{ border-color:rgba(220,38,38,.28); border-left-color:#dc2626; background:linear-gradient(135deg,#fff1f2,#fff); }
.calendar-day-panel__logo{ display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid var(--border); border-radius:12px; background:#fff; color:var(--primary); font-size:12px; font-weight:950; }
.calendar-day-panel__logo img{ width:100%; height:100%; object-fit:contain; }
.calendar-day-panel__body{ min-width:0; }
.calendar-day-panel__body h3{ margin:7px 0 5px; color:var(--text); font-size:16px; letter-spacing:0; line-height:1.25; }
.calendar-day-panel__body h3 a{ color:inherit; text-decoration:none; }
.calendar-day-panel__body h3 a:hover{ color:var(--primary); }
.calendar-day-panel__body p{ margin:0; color:var(--text-secondary); font-size:13px; font-weight:750; }
.calendar-day-panel__actions{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.calendar-side-card,.calendar-private-cta{ padding:22px; }
.calendar-side-card__head a{ color:var(--primary); font-size:13px; font-weight:900; }
.calendar-upcoming-strip{ margin-top:22px; }
.calendar-upcoming-strip .calendar-upcoming-list{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 18px; }
.calendar-upcoming-list{ display:grid; }
.calendar-upcoming{ display:grid; grid-template-columns:54px minmax(0,1fr); gap:12px; padding:14px 0; border-bottom:1px solid var(--border); color:var(--text); text-decoration:none; }
.calendar-upcoming:last-child{ border-bottom:0; padding-bottom:0; }
.calendar-upcoming time{ display:grid; justify-items:center; align-content:center; min-height:48px; border-radius:12px; background:rgba(30,99,255,.08); color:var(--primary); text-transform:uppercase; }
.calendar-upcoming time strong{ font-size:18px; line-height:1; }
.calendar-upcoming time span{ font-size:11px; font-weight:900; }
.calendar-upcoming > span{ min-width:0; }
.calendar-upcoming > span strong,.calendar-upcoming > span small{ display:block; }
.calendar-upcoming > span strong{ color:var(--text); font-size:14px; font-weight:900; line-height:1.35; }
.calendar-upcoming > span small{ margin-top:4px; color:var(--text-secondary); font-size:12px; font-weight:700; line-height:1.35; }
.calendar-private-cta{ margin-top:28px; background:linear-gradient(135deg,rgba(30,99,255,.08),rgba(255,255,255,.96)); border-color:rgba(30,99,255,.14); }
.calendar-private-cta__actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.calendar-private-cta ul{ display:grid; gap:7px; margin:16px 0 0; padding:0; list-style:none; color:var(--text-secondary); font-size:13px; font-weight:750; }
.calendar-private-cta li::before{ content:""; display:inline-block; width:7px; height:7px; margin-right:8px; border-radius:999px; background:var(--success); }
.calendar-event-list{ display:grid; gap:12px; }
.calendar-list-card{ display:grid; grid-template-columns:86px minmax(0,1fr) auto; gap:16px; align-items:center; padding:18px; border:1px solid var(--border); border-left:4px solid var(--primary); border-radius:16px; background:rgba(255,255,255,.96); box-shadow:var(--shadow-sm); }
.calendar-list-card--green{ border-left-color:#10b981; }
.calendar-list-card--orange{ border-left-color:#f97316; }
.calendar-list-card--purple{ border-left-color:#7c3aed; }
.calendar-list-card--teal{ border-left-color:#14b8a6; }
.calendar-list-card--indigo{ border-left-color:#4f46e5; }
.calendar-list-card--slate{ border-left-color:#64748b; }
.calendar-list-card--deadline{ border-left-color:#f97316; }
.calendar-list-card--deadline-today{
  border-color:rgba(220,38,38,.32);
  border-left-color:#dc2626;
  background:linear-gradient(135deg,#fff1f2,#fff);
  box-shadow:0 18px 42px rgba(220,38,38,.12);
}
.calendar-list-card--deadline-today .calendar-list-card__date time{ background:#dc2626; color:#fff; }
.calendar-list-card__date time{ display:grid; justify-items:center; gap:3px; padding:12px 8px; border-radius:12px; background:rgba(30,99,255,.08); color:var(--primary); text-transform:uppercase; }
.calendar-list-card__date strong{ font-size:24px; line-height:1; }
.calendar-list-card__date span{ font-size:11px; font-weight:900; }
.calendar-list-card__body{ min-width:0; }
.calendar-list-card h3{ margin:8px 0 6px; color:var(--text); font-size:17px; letter-spacing:0; }
.calendar-list-card h3 a{ color:inherit; text-decoration:none; }
.calendar-list-card h3 a:hover{ color:var(--primary); }
.calendar-list-card p{ display:flex; align-items:center; gap:8px; margin:0; color:var(--text-secondary); font-size:13px; font-weight:750; }
.calendar-list-card__logo,.calendar-list-card__fallback{ width:28px; height:28px; flex:0 0 28px; border:1px solid var(--border); border-radius:9px; background:#fff; }
.calendar-list-card__meta{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.calendar-list-card__meta span{ padding:4px 8px; border:1px solid var(--border); border-radius:999px; color:var(--text-secondary); font-size:12px; font-weight:800; }
.calendar-list-card__actions{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.calendar-badge{ display:inline-flex; padding:5px 9px; border-radius:999px; background:rgba(30,99,255,.08); color:var(--primary); font-size:12px; font-weight:900; }
.calendar-badge--green{ background:rgba(16,185,129,.1); color:#047857; }
.calendar-badge--orange{ background:rgba(249,115,22,.12); color:#c2410c; }
.calendar-badge--purple{ background:rgba(124,58,237,.1); color:#6d28d9; }
.calendar-badge--teal{ background:rgba(20,184,166,.12); color:#0f766e; }
.calendar-badge--indigo{ background:rgba(79,70,229,.1); color:#4338ca; }
.calendar-badge--slate{ background:rgba(100,116,139,.12); color:#475569; }
.calendar-deadline-alert--list{ margin-left:8px; vertical-align:middle; animation:calendarDeadlinePulse 1.25s ease-in-out infinite; }
.calendar-seo,.calendar-faq{ margin-top:44px; }
.calendar-seo-links{ display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.calendar-seo-links a{ padding:8px 12px; border:1px solid rgba(30,99,255,.16); border-radius:999px; color:var(--primary); font-size:13px; font-weight:850; text-decoration:none; }

@keyframes calendarDeadlinePulse{
  0%,100%{ transform:scale(1); filter:saturate(1); }
  50%{ transform:scale(1.018); filter:saturate(1.35); }
}

@media (max-width:1100px){
  .calendar-wide-shell{ width:calc(100vw - 32px); }
  .calendar-hero{
    grid-template-columns:1fr;
    gap:12px;
  }
  .calendar-hero__media{
    justify-items:stretch;
  }
  .calendar-hero__visual{
    display:none;
  }
  .calendar-hero__stats{
    width:100%;
    margin-top:4px;
  }
  .calendar-filter-form{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .calendar-sidebar{ position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .calendar-week-view{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .calendar-upcoming-strip .calendar-upcoming-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:820px){
  .calendar-wide-shell{ width:100%; transform:none; margin-left:0; margin-top:6px; }
  .public-hero.public-hero--calendar{ padding:12px 0 8px; }
  .public-hero--calendar .public-hero__breadcrumbs{ margin-bottom:2px; }
  .public-hero--calendar .breadcrumbs__current{ max-width:46vw; }
  .public-hero--calendar .public-eyebrow{ margin-bottom:3px; }
  .public-hero--calendar .public-hero__title{ font-size:28px; line-height:1.02; }
  .public-hero--calendar .public-hero__subtitle{ margin-top:3px; font-size:14px; line-height:1.32; }
  .calendar-hero{ gap:5px; }
  .calendar-hero__visual{ display:none; }
  .calendar-hero__stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:12px;
  }
  .calendar-stat{
    min-height:64px;
    padding:10px;
    grid-template-columns:32px minmax(0,1fr);
  }
  .calendar-stat__icon{
    width:32px;
    height:32px;
    background-size:19px;
  }
  .calendar-stat strong{ font-size:22px; }
  .calendar-stat span:not(.calendar-stat__icon){ font-size:11px; }
  .calendar-filter-form{ grid-template-columns:1fr; }
  .calendar-card{ padding:14px; }
  .calendar-toolbar{ flex-direction:column; }
  .calendar-toolbar__title{ width:100%; }
  .calendar-toolbar__actions{ justify-items:start; width:100%; }
  .calendar-legend{ margin-top:0; }
  .calendar-view-switch{ width:100%; }
  .calendar-view-switch a{ flex:1; text-align:center; }
  .calendar-month-nav{ justify-content:flex-start; }
  .calendar-grid{ gap:6px; }
  .calendar-weekdays{ display:none; }
  .calendar-week{ grid-template-columns:1fr; }
  .calendar-grid:not(.calendar-grid--compact-weekends) .calendar-week{ grid-template-columns:1fr; }
  .calendar-day{ min-height:auto; }
  .calendar-weekend-compact{ min-height:auto; justify-items:start; text-align:left; }
  .calendar-weekend-compact a{ margin-top:0; }
  .calendar-day.is-muted:not(.has-events){ display:none; }
  .calendar-event__text strong,.calendar-event__text small{ white-space:normal; }
  .calendar-week-view{ grid-template-columns:1fr; }
  .calendar-week-day{ min-height:auto; }
  .calendar-sidebar{ grid-template-columns:1fr; }
  .calendar-upcoming-strip .calendar-upcoming-list{ grid-template-columns:1fr; }
  .calendar-list-card{ grid-template-columns:1fr; align-items:start; }
  .calendar-day-panel{ padding:18px; }
  .calendar-day-panel__head{ flex-direction:column; }
  .calendar-day-panel__event{ grid-template-columns:1fr; align-items:start; }
  .calendar-day-panel__actions{ justify-content:flex-start; }
  .calendar-list-card__date time{ justify-items:start; display:inline-grid; min-width:92px; }
  .calendar-list-card__actions{ justify-content:flex-start; }
}

@media (max-width:480px){
  .calendar-hero__stats,.calendar-side-card,.calendar-private-cta{ padding:18px; }
  .calendar-hero__stats{ padding:0; }
  .calendar-stat strong{ font-size:16px; }
  .calendar-stat span{ font-size:11px; }
  .calendar-month-nav .btn{ flex:1 1 auto; }
  .calendar-empty__actions .btn,.calendar-private-cta__actions .btn,.calendar-list-card__actions .btn{ width:100%; }
  .calendar-weekend-notice,.calendar-list-note{ align-items:flex-start; flex-direction:column; }
}

@media (prefers-reduced-motion:reduce){
  .calendar-event.is-deadline-today,
  .calendar-week-event.is-deadline-today,
  .calendar-deadline-alert--list{ animation:none; }
}

/* ---------- PUBLIC EMPLOYMENT SYSTEM 2026 ---------- */
.public-hero{
  position: relative;
  overflow: hidden;
  padding: var(--page-top-spacing) 0 34px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(244,248,255,.9)),
    radial-gradient(820px 360px at 76% 18%, rgba(30,99,255,.12), transparent 64%);
  border-bottom: 1px solid var(--border);
}

.public-hero::after{
  content: "";
  position: absolute;
  right: 6%;
  top: 18px;
  width: 120px;
  height: 120px;
  background-image: radial-gradient(rgba(30,99,255,.18) 1px, transparent 1px);
  background-size: 12px 12px;
  opacity: .7;
  pointer-events: none;
}

.public-hero__breadcrumbs{ margin-bottom: 18px; }

.public-hero__grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
  gap: 36px;
  align-items: center;
}

.public-eyebrow,
.public-hero__eyebrow{
  display: block;
  margin: 0 0 10px;
  color: var(--primary);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: 0;
  text-transform: uppercase;
}

.public-hero__title{
  margin: 0;
  max-width: 760px;
  color: var(--text);
  font-size: clamp(32px, 4vw, 54px);
  line-height: 1.02;
  letter-spacing: 0;
}

.public-hero__subtitle{
  max-width: 720px;
  margin: 18px 0 0;
  color: var(--text-secondary);
  font-size: 17px;
  line-height: 1.65;
}

.public-hero__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.public-hero__actions .inline-form,
.result-card__actions .inline-form{ margin: 0; }

.public-hero__visual{
  position: relative;
  min-height: 250px;
  border-radius: 8px;
  --public-hero-image: url("/static/img/hero/hero-generico.e52446ccf0df.svg");
}

.public-hero__visual--empleo-publico{ --public-hero-image: url("/static/img/hero/hero-empleo-publico.275054073059.svg"); }
.public-hero__visual--oposiciones{ --public-hero-image: url("/static/img/hero/hero-oposiciones.162a934f25da.svg"); }
.public-hero__visual--bolsas{ --public-hero-image: url("/static/img/hero/hero-bolsas.2907b04f9cb9.svg"); }
.public-hero__visual--tipos-plaza{ --public-hero-image: url("/static/img/hero/hero-tipos-plaza.6f2323183b35.svg"); }
.public-hero__visual--organismos{ --public-hero-image: url("/static/img/hero/hero-organismos.d0eaf57aa892.svg"); }
.public-hero__visual--calendario{ --public-hero-image: url("/static/img/hero/hero-calendario.7d83bded4103.svg"); }
.public-hero__visual--oep{ --public-hero-image: url("/static/img/hero/hero-oep.3f0531fb8b88.svg"); }
.public-hero__visual--examenes{ --public-hero-image: url("/static/img/hero/hero-examenes.68dae83fc50e.svg"); }
.public-hero__visual--simulacros{ --public-hero-image: url("/static/img/hero/hero-simulacros.56102bc425c5.svg"); }
.public-hero__visual--niveles{ --public-hero-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 520 320'%3E%3Cdefs%3E%3ClinearGradient id='b' x1='0' x2='1' y1='0' y2='1'%3E%3Cstop stop-color='%232563eb'/%3E%3Cstop offset='1' stop-color='%230ea5e9'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='58' y='204' width='92' height='52' rx='16' fill='%23dbeafe'/%3E%3Crect x='164' y='164' width='92' height='92' rx='16' fill='%23bfdbfe'/%3E%3Crect x='270' y='118' width='92' height='138' rx='16' fill='%2393c5fd'/%3E%3Crect x='376' y='74' width='92' height='182' rx='16' fill='url(%23b)'/%3E%3Cpath d='M94 90h168M94 118h120M94 146h92' stroke='%231e63ff' stroke-width='14' stroke-linecap='round' opacity='.35'/%3E%3Ccircle cx='122' cy='96' r='38' fill='%23fff' opacity='.9'/%3E%3Cpath d='M110 98l10 10 24-28' fill='none' stroke='%231e63ff' stroke-width='10' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M393 52l44 44M437 52l-44 44' stroke='%23fff' stroke-width='10' stroke-linecap='round' opacity='.9'/%3E%3C/svg%3E"); }
.public-hero__visual--asturias{ --public-hero-image: url("/static/img/asturias-map-preview.6ab8b736445c.png"); }

.tipos-hero .public-hero__grid{
  grid-template-columns: minmax(0,1fr) minmax(300px,360px);
}
.tipos-hero .public-hero__title{ font-size:clamp(36px,3.5vw,48px); }

.public-hero__mark{
  position: absolute;
  inset: 8px 0 18px 20px;
  border-radius: 44% 56% 42% 58% / 52% 38% 62% 48%;
  background:
    linear-gradient(135deg, rgba(30,99,255,.18), rgba(16,185,129,.14)),
    var(--public-hero-image) center/86% no-repeat;
  border: 1px solid rgba(30,99,255,.14);
  box-shadow: var(--shadow-sm);
}

.public-hero__visual--territory-asturias,
.public-hero__visual--map{
  --public-hero-image: url("/static/img/asturias-map-preview.6ab8b736445c.png");
}

.public-hero__visual--territory-asturias .public-hero__mark,
.public-hero__visual--map .public-hero__mark{
  background:
    linear-gradient(135deg, rgba(30,99,255,.18), rgba(16,185,129,.14)),
    var(--public-hero-image) center/76% no-repeat;
}

.public-hero__mini-card{
  position: absolute;
  left: 0;
  bottom: 0;
  display: grid;
  gap: 2px;
  min-width: 190px;
  padding: 16px 18px;
  border-radius: 8px;
  background: rgba(255,255,255,.94);
  border: 1px solid var(--border);
  box-shadow: 0 18px 36px rgba(15,23,42,.12);
}

.public-hero__mini-kicker{
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.public-hero__mini-card strong{
  color: var(--primary);
  font-size: 34px;
  line-height: 1;
}

.public-hero__mini-card span:last-child{
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 700;
}

.territory-hub-hero .public-hero__grid,
.employment-hub-hero .public-hero__grid{
  grid-template-columns: minmax(0, .95fr) minmax(360px, 560px);
  gap: 44px;
}

.public-hero__visual--stats{
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: 315px;
  padding: 22px;
  overflow: hidden;
  border: 1px solid rgba(30,99,255,.18);
  background:
    linear-gradient(180deg, rgba(245,249,255,.9), rgba(232,240,255,.72)),
    radial-gradient(420px 220px at 70% 12%, rgba(255,255,255,.82), transparent 62%);
  box-shadow: var(--shadow-sm);
}

.public-hero__visual--stats .public-hero__mark{
  inset: 12px 12px 58px;
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(239,246,255,.58), rgba(219,234,254,.4)),
    var(--public-hero-image) center/78% no-repeat;
  border: 0;
  box-shadow: none;
  opacity: .98;
}

.public-hero__visual--territory-asturias.public-hero__visual--stats .public-hero__mark{
  background:
    linear-gradient(180deg, rgba(239,246,255,.6), rgba(219,234,254,.42)),
    var(--public-hero-image) center/78% no-repeat;
}

.territory-hero-stats{
  position: relative;
  z-index: 1;
  display: grid;
  width: min(100%, 470px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding: 16px 18px;
  border: 1px solid rgba(30,99,255,.12);
  border-radius: 8px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 18px 38px rgba(15,23,42,.12);
}

.public-stat-card{
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  column-gap: 12px;
  align-items: center;
  min-width: 0;
  padding: 6px 14px;
}

.public-stat-card + .public-stat-card{
  border-left: 1px solid var(--border);
}

.public-stat-card__icon{
  grid-row: span 2;
  display: inline-flex;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  color: var(--primary);
  background: rgba(30,99,255,.1);
}

.public-stat-card__icon::before,
.territory-main-card__icon::before{
  content: "";
  display: block;
  width: 22px;
  height: 22px;
  margin: auto;
  background: currentColor;
  mask: var(--icon-url) center / contain no-repeat;
  -webkit-mask: var(--icon-url) center / contain no-repeat;
}

.public-stat-card__icon--oposiciones,
.territory-main-card__icon--oposiciones{
  --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='M9 13h6'/%3E%3Cpath d='M9 17h4'/%3E%3C/svg%3E");
}

.public-stat-card__icon--bolsas,
.territory-main-card__icon--bolsas{
  --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3Crect width='20' height='14' x='2' y='6' rx='2'/%3E%3Cpath d='M2 13h20'/%3E%3C/svg%3E");
}

.public-stat-card__icon--organismos{
  --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M3 21h18'/%3E%3Cpath d='M5 21V8l7-4 7 4v13'/%3E%3Cpath d='M9 21v-6h6v6'/%3E%3C/svg%3E");
}

.public-stat-card__icon--plazo-abierto{
  --icon-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='m9 16 2 2 4-4'/%3E%3C/svg%3E");
}

.public-stat-card strong{
  color: var(--text);
  font-size: 25px;
  line-height: 1;
}

.public-stat-card__label{
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 750;
}

.section-tabs{
  display: inline-flex;
  gap: 4px;
  padding: 5px;
  margin-bottom: 18px;
  border: 1px solid rgba(30,99,255,.18);
  border-radius: 8px;
  background: rgba(255,255,255,.84);
  box-shadow: var(--shadow-sm);
}

.section-tabs__item{
  padding: 10px 16px;
  border-radius: 6px;
  color: var(--text-secondary);
  font-size: 14px;
  font-weight: 800;
}

.section-tabs__item:hover,
.section-tabs__item.is-active{
  color: var(--primary);
  background: rgba(30,99,255,.1);
}

.quick-links{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.quick-link{
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 13px;
  border: 1px solid rgba(30,99,255,.18);
  border-radius: 8px;
  background: rgba(255,255,255,.86);
  color: var(--primary);
  font-size: 13px;
  font-weight: 800;
  box-shadow: var(--shadow-sm);
}

.quick-link:hover{
  background: rgba(30,99,255,.08);
  transform: translateY(-1px);
}

/* Tipos de plaza: iconos de una sola familia y componentes reutilizables. */
.category-icon{
  --category-icon-color: #1e63ff;
  --category-icon-bg: rgba(30,99,255,.1);
  --category-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h6l2 2h10v10H3z'/%3E%3Cpath d='M3 7V5h6l2 2'/%3E%3C/svg%3E");
}

.category-icon__glyph{
  display: block;
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  background: var(--category-icon-color);
  -webkit-mask: var(--category-icon) center/contain no-repeat;
  mask: var(--category-icon) center/contain no-repeat;
}

.category-icon--briefcase{ --category-icon-color:#2563eb; --category-icon-bg:rgba(37,99,235,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M8 7V5h8v2M3 12h18M10 12v2h4v-2'/%3E%3C/svg%3E"); }
.category-icon--clipboard{ --category-icon-color:#059669; --category-icon-bg:rgba(16,185,129,.11); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='2'/%3E%3Cpath d='M9 4V2h6v2M9 11l2 2 4-4M9 17h6'/%3E%3C/svg%3E"); }
.category-icon--building{ --category-icon-color:#7c3aed; --category-icon-bg:rgba(124,58,237,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V9h14v12M4 9l8-6 8 6M9 13v4M15 13v4'/%3E%3C/svg%3E"); }
.category-icon--shield{ --category-icon-color:#1d4ed8; --category-icon-bg:rgba(29,78,216,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v5c0 5-3.4 8.5-8 10-4.6-1.5-8-5-8-10V6z'/%3E%3Cpath d='M9 12l2 2 4-5'/%3E%3C/svg%3E"); }
.category-icon--key{ --category-icon-color:#ea580c; --category-icon-bg:rgba(249,115,22,.11); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='15' r='4'/%3E%3Cpath d='M11 12l8-8M16 7l2 2M14 9l2 2'/%3E%3C/svg%3E"); }
.category-icon--code{ --category-icon-color:#2563eb; --category-icon-bg:rgba(37,99,235,.12); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 9l-4 3 4 3M16 9l4 3-4 3M14 5l-4 14'/%3E%3C/svg%3E"); }
.category-icon--life-buoy{ --category-icon-color:#ef4444; --category-icon-bg:rgba(239,68,68,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M5.6 5.6l3.6 3.6M14.8 14.8l3.6 3.6M18.4 5.6l-3.6 3.6M9.2 14.8l-3.6 3.6'/%3E%3C/svg%3E"); }
.category-icon--users{ --category-icon-color:#db2777; --category-icon-bg:rgba(219,39,119,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Cpath d='M3 20v-2a6 6 0 0 1 12 0v2M16 5a3 3 0 0 1 0 6M17 14a5 5 0 0 1 4 5v1'/%3E%3C/svg%3E"); }
.category-icon--ruler{ --category-icon-color:#7c3aed; --category-icon-bg:rgba(124,58,237,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 18L18 4l2 2L6 20H4zM12 10l2 2M9 13l2 2M15 7l2 2'/%3E%3C/svg%3E"); }
.category-icon--trending-up{ --category-icon-color:#059669; --category-icon-bg:rgba(16,185,129,.11); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17l6-6 4 4 7-8M15 7h5v5'/%3E%3C/svg%3E"); }
.category-icon--book,.category-icon--book-users{ --category-icon-color:#db2777; --category-icon-bg:rgba(219,39,119,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5a3 3 0 0 1 3-2h5v17H7a3 3 0 0 0-3 2zM20 5a3 3 0 0 0-3-2h-5v17h5a3 3 0 0 1 3 2z'/%3E%3C/svg%3E"); }
.category-icon--sparkles{ --category-icon-color:#0ea5e9; --category-icon-bg:rgba(14,165,233,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5zM19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8z'/%3E%3C/svg%3E"); }
.category-icon--wrench{ --category-icon-color:#ea580c; --category-icon-bg:rgba(249,115,22,.11); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 6a4 4 0 0 0-5 5L3 17l4 4 6-6a4 4 0 0 0 5-5l-3 3-3-3z'/%3E%3C/svg%3E"); }
.category-icon--health{ --category-icon-color:#e11d48; --category-icon-bg:rgba(225,29,72,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21S4 16 4 9a4 4 0 0 1 7-2.6A4 4 0 0 1 20 9c0 7-8 12-8 12zM8 13h2l1-3 2 6 1-3h2'/%3E%3C/svg%3E"); }
.category-icon--scale{ --category-icon-color:#475569; --category-icon-bg:rgba(71,85,105,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v18M6 6h12M6 6l-3 7h6zM18 6l-3 7h6zM8 21h8'/%3E%3C/svg%3E"); }
.category-icon--calculator{ --category-icon-color:#0f766e; --category-icon-bg:rgba(15,118,110,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M8 7h8M8 11h2M12 11h2M16 11h0M8 15h2M12 15h2M16 15h0M8 18h2M12 18h4'/%3E%3C/svg%3E"); }
.category-icon--leaf{ --category-icon-color:#16a34a; --category-icon-bg:rgba(22,163,74,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 21c8-1 14-7 15-17-10 1-16 7-17 15'/%3E%3Cpath d='M9 15c2-2 4-4 8-6'/%3E%3C/svg%3E"); }
.category-icon--search{ --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='6'/%3E%3Cpath d='M14.5 14.5L21 21M4 21c1.2-3 3.2-4.5 6-4.5'/%3E%3C/svg%3E"); }
.category-icon--target{ --category-icon-color:#7c3aed; --category-icon-bg:rgba(124,58,237,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3C/svg%3E"); }
.category-icon--map{ --category-icon-color:#059669; --category-icon-bg:rgba(16,185,129,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 21s7-5 7-12a7 7 0 1 0-14 0c0 7 7 12 7 12z'/%3E%3Ccircle cx='12' cy='9' r='2'/%3E%3C/svg%3E"); }
.category-icon--calendar{ --category-icon-color:#ef4444; --category-icon-bg:rgba(239,68,68,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18M8 14h2M14 14h2M8 18h2'/%3E%3C/svg%3E"); }
.category-icon--clock{ --category-icon-color:#ea580c; --category-icon-bg:rgba(249,115,22,.1); --category-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }

.category-chips{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 22px;
}

.category-chip{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid rgba(30,99,255,.15);
  border-radius: 9px;
  background: #fff;
  color: var(--text);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 5px 18px rgba(15,23,42,.05);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.category-chip:hover,
.category-chip:focus-visible{
  border-color: color-mix(in srgb, var(--category-icon-color) 36%, transparent);
  box-shadow: 0 10px 24px rgba(30,99,255,.1);
  transform: translateY(-1px);
}

.category-chips--inline{
  margin: 12px 0 0;
}

.taxonomy-context{
  margin-top: -6px;
}

.taxonomy-context__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

.category-anchor-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:-4px 0 18px;
}

.category-anchor-nav a{
  padding:8px 12px;
  border:1px solid rgba(30,99,255,.14);
  border-radius:999px;
  background:rgba(255,255,255,.86);
  color:var(--primary);
  font-size:12px;
  font-weight:850;
  text-decoration:none;
  box-shadow:0 5px 16px rgba(15,23,42,.04);
}

.category-anchor-nav a:hover,
.category-anchor-nav a:focus-visible{
  border-color:rgba(30,99,255,.3);
  background:rgba(30,99,255,.08);
}

.category-profile-metrics{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:10px;
  margin:0 0 18px;
}

.category-profile-metric{
  min-width:0;
  padding:13px 14px;
  border:1px solid rgba(30,99,255,.12);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 22px rgba(15,23,42,.045);
}

.category-profile-metric strong,
.category-profile-metric span{
  display:block;
  min-width:0;
}

.category-profile-metric strong{
  overflow:hidden;
  color:var(--primary);
  font-size:24px;
  line-height:1.05;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.category-profile-metric span{
  margin-top:6px;
  color:var(--text);
  font-size:12px;
  line-height:1.25;
  font-weight:800;
}

.category-profile-metric--green strong{ color:#10b981; }
.category-profile-metric--purple strong{ color:#7c3aed; }
.category-profile-metric--orange strong{ color:#f97316; }
.category-profile-metric--family strong,
.category-profile-metric--level strong{
  color:var(--text);
  font-size:16px;
}

.category-profile-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(300px,.75fr);
  gap:16px;
  margin-bottom:20px;
}

.category-profile-card{
  border-radius:12px;
}

.category-profile-card h2{
  margin:0;
  color:var(--text);
  font-size:22px;
  line-height:1.22;
}

.category-profile-card p{
  margin:8px 0 0;
  color:var(--text-secondary);
  line-height:1.65;
}

.category-resource-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:20px;
}

.category-resource-grid--secondary{
  align-items:start;
}

.category-resource-card{
  scroll-margin-top:96px;
  border-radius:12px;
}

.category-resource-card--bolsas{
  background:linear-gradient(135deg,#fff,rgba(16,185,129,.05));
}

.category-resource-card--examenes{
  background:linear-gradient(135deg,#fff,rgba(124,58,237,.05));
}

.category-mini-list{
  display:grid;
  gap:10px;
}

.category-mini-item,
.category-organism-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:center;
  min-width:0;
  padding:11px;
  border:1px solid rgba(30,99,255,.1);
  border-radius:10px;
  background:rgba(255,255,255,.88);
  color:var(--text);
  text-decoration:none;
}

.category-mini-item:hover,
.category-organism-card:hover,
.category-mini-item:focus-visible,
.category-organism-card:focus-visible{
  border-color:rgba(30,99,255,.28);
  box-shadow:0 8px 22px rgba(30,99,255,.08);
}

.category-mini-item__logo{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  overflow:hidden;
  border:1px solid rgba(30,99,255,.13);
  border-radius:10px;
  background:#fff;
  color:var(--primary);
  font-size:12px;
  font-weight:900;
}

.category-mini-item__logo img{
  display:block;
  width:100%;
  height:100%;
  padding:6px;
  object-fit:contain;
}

.category-mini-item__logo--exam{
  color:var(--category-icon-color, #7c3aed);
  background:var(--category-icon-bg, rgba(124,58,237,.08));
  border-color:color-mix(in srgb, var(--category-icon-color, #7c3aed) 24%, transparent);
}

.category-mini-item__logo--exam .category-icon__glyph{
  width:22px;
  height:22px;
}

.category-mini-item strong,
.category-organism-card strong{
  display:-webkit-box;
  overflow:hidden;
  color:var(--text);
  font-size:13px;
  line-height:1.28;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}

.category-mini-item small,
.category-organism-card small{
  display:block;
  margin-top:4px;
  overflow:hidden;
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.category-organism-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.category-empty-box{
  padding:18px;
  border:1px dashed rgba(30,99,255,.24);
  border-radius:12px;
  background:rgba(239,245,255,.55);
}

.category-empty-box p{
  margin:0;
  color:var(--text-secondary);
  line-height:1.55;
}

.category-empty-box a{
  display:inline-block;
  margin-top:10px;
  color:var(--primary);
  font-size:13px;
  font-weight:850;
  text-decoration:none;
}

.category-empty-box a:hover{ text-decoration:underline; }

.empty-state__actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin:14px 0;
}

.level-selector a.is-active{
  border-color:rgba(30,99,255,.36);
  background:rgba(30,99,255,.12);
  color:var(--primary-dark);
  box-shadow:0 8px 20px rgba(30,99,255,.1);
}

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

.level-card{
  display:flex;
  flex-direction:column;
  gap:14px;
  min-width:0;
  min-height:100%;
  padding:18px;
  border:1px solid rgba(30,99,255,.12);
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 24px rgba(15,23,42,.055);
}

.level-card__head{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:14px;
  align-items:start;
}

.level-card__code{
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:14px;
  background:rgba(30,99,255,.1);
  color:var(--primary);
  font-size:18px;
  font-weight:950;
}

.level-card h3{
  margin:0;
  color:var(--text);
  font-size:18px;
  line-height:1.22;
}

.level-card p{
  display:-webkit-box;
  margin:7px 0 0;
  overflow:hidden;
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.5;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
}

.level-card__metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:0;
}

.level-card__metrics div{
  padding:10px;
  border-radius:10px;
  background:rgba(239,245,255,.75);
}

.level-card__metrics dt{
  color:var(--muted);
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
}

.level-card__metrics dd{
  margin:2px 0 0;
  color:var(--text);
  font-size:18px;
  font-weight:950;
}

.level-card > .btn{
  margin-top:auto;
  align-self:flex-start;
}

.public-filters--level{
  grid-template-columns:minmax(220px,1.25fr) minmax(150px,.7fr) repeat(4,minmax(150px,1fr));
}

.category-intro{
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) 100px;
  gap: 18px;
  align-items: center;
  margin-bottom: 26px;
  padding: 18px 22px;
  overflow: hidden;
  border: 1px solid rgba(30,99,255,.14);
  border-radius: 14px;
  background: linear-gradient(105deg,rgba(255,255,255,.98),rgba(239,245,255,.9));
  box-shadow: var(--shadow-sm);
}

.category-intro__icon{
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: var(--category-icon-bg);
}
.category-intro__icon .category-icon__glyph{ width:26px; height:26px; }
.category-intro h2,.category-section__heading h2{ margin:0; color:var(--text); font-size:21px; line-height:1.25; }
.category-intro p,.category-section__heading p{ margin:5px 0 0; color:var(--muted); line-height:1.55; }
.category-intro__decoration{ justify-self:end; width:76px; height:52px; border:8px solid rgba(30,99,255,.08); border-radius:12px; transform:rotate(-4deg); }

.category-section{ margin-top: 28px; scroll-margin-top: 96px; }
.category-section__heading{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:16px; }
.category-section__all-link{ flex:0 0 auto; color:var(--primary); font-size:13px; font-weight:850; text-decoration:none; }
.category-section__all-link:hover{ text-decoration:underline; }

.category-featured-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.category-featured-card{ display:flex; flex-direction:column; min-width:0; min-height:238px; padding:18px; border:1px solid rgba(30,99,255,.13); border-radius:14px; background:#fff; box-shadow:0 8px 24px rgba(15,23,42,.055); transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.category-featured-card:hover{ transform:translateY(-2px); border-color:rgba(30,99,255,.28); box-shadow:0 14px 32px rgba(30,99,255,.1); }
.category-featured-card__top{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:13px; }
.category-featured-card__icon{ display:grid; place-items:center; width:48px; height:48px; border-radius:13px; background:var(--category-icon-bg); }
.category-featured-card__icon .category-icon__glyph{ width:25px; height:25px; }
.category-featured-card h3{ margin:2px 0 7px; color:var(--text); font-size:17px; line-height:1.25; }
.category-featured-card__top p{ display:-webkit-box; margin:0; overflow:hidden; color:var(--text-secondary); font-size:13px; line-height:1.45; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.category-featured-card__meta{ margin:auto 0 0; padding-top:14px; color:var(--muted); font-size:12px; font-weight:750; }
.category-featured-card__link{ margin-top:10px; color:var(--primary); font-size:13px; font-weight:850; text-decoration:none; }
.category-featured-card__link:hover{ text-decoration:underline; }

.category-compact-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.category-compact-card{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:11px; align-items:center; min-height:68px; padding:11px 13px; border:1px solid rgba(30,99,255,.11); border-radius:11px; background:#fff; color:var(--text); text-decoration:none; box-shadow:0 4px 16px rgba(15,23,42,.04); transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.category-compact-card:hover,.category-compact-card:focus-visible{ transform:translateY(-1px); border-color:rgba(30,99,255,.27); box-shadow:0 9px 22px rgba(30,99,255,.08); }
.category-compact-card__icon{ display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:var(--category-icon-bg); }
.category-compact-card__body{ min-width:0; }
.category-compact-card__body strong{ display:block; overflow:hidden; font-size:13px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.category-compact-card__body small{ display:block; margin-top:4px; color:var(--muted); font-size:11px; }
.category-compact-card__arrow{ color:var(--primary); font-size:22px; line-height:1; }

.category-bottom-grid{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(320px,.8fr); gap:24px; margin-top:30px; padding:26px 0 4px; border-top:1px solid var(--border); }
.category-explore-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.category-explore-card{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:11px; align-items:center; min-height:70px; padding:12px; border:1px solid rgba(30,99,255,.11); border-radius:11px; background:#fff; color:var(--text); text-decoration:none; }
.category-explore-card:hover,.category-explore-card:focus-visible{ border-color:rgba(30,99,255,.28); box-shadow:0 8px 22px rgba(30,99,255,.08); }
.category-explore-card > .category-icon__glyph{ width:24px; height:24px; padding:10px; box-sizing:content-box; border-radius:11px; background-color:var(--category-icon-color); background-clip:content-box; }
.category-explore-card strong,.category-explore-card small{ display:block; }
.category-explore-card strong{ font-size:13px; }
.category-explore-card small{ margin-top:3px; color:var(--muted); font-size:11px; }
.category-explore-card b{ color:var(--primary); font-size:20px; }

.category-faq__list{ overflow:hidden; border:1px solid rgba(30,99,255,.12); border-radius:12px; background:#fff; }
.category-faq details+details{ border-top:1px solid var(--border); }
.category-faq summary{ position:relative; padding:14px 42px 14px 15px; cursor:pointer; color:var(--text); font-size:13px; font-weight:800; list-style:none; }
.category-faq summary::-webkit-details-marker{ display:none; }
.category-faq summary::after{ content:"+"; position:absolute; right:16px; top:12px; color:var(--primary); font-size:19px; }
.category-faq details[open] summary::after{ content:"−"; }
.category-faq details p{ margin:0; padding:0 15px 15px; color:var(--text-secondary); font-size:13px; line-height:1.55; }

@media (max-width: 1080px){
  .category-profile-metrics{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .level-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .public-filters--level{
    grid-template-columns:repeat(2,minmax(180px,1fr));
  }
  .category-resource-grid,
  .category-profile-grid{
    grid-template-columns:1fr;
  }
  .category-featured-grid,
  .category-compact-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .category-bottom-grid{ grid-template-columns:1fr; }
}

@media (max-width: 780px){
  .tipos-hero .public-hero__grid{ grid-template-columns:1fr; }
  .tipos-hero .public-hero__title{ font-size:32px; }
  .tipos-hero .public-hero__visual{ min-height:215px; }
  .category-anchor-nav{
    flex-wrap:nowrap;
    margin-inline:-16px;
    padding:0 16px 6px;
    overflow-x:auto;
  }
  .category-anchor-nav a{ flex:0 0 auto; }
  .category-profile-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .level-card-grid{
    grid-template-columns:1fr;
  }
  .category-organism-grid{
    grid-template-columns:1fr;
  }
  .category-chips{ flex-wrap:nowrap; margin-inline:-16px; padding:0 16px 7px; overflow-x:auto; scrollbar-width:thin; }
  .category-chip{ flex:0 0 auto; }
  .category-intro{ grid-template-columns:auto minmax(0,1fr); }
  .category-intro__decoration{ display:none; }
  .category-featured-grid,
  .category-compact-grid{ grid-template-columns:1fr; }
}

@media (max-width: 520px){
  .tipos-hero .public-hero__visual{ min-height:185px; }
  .tipos-hero .public-hero__mini-card{ min-width:155px; padding:13px 15px; }
  .category-profile-metrics{
    gap:8px;
  }
  .category-profile-metric{
    padding:11px 12px;
  }
  .category-profile-metric strong{
    font-size:22px;
  }
  .category-profile-metric--family strong,
  .category-profile-metric--level strong{
    font-size:14px;
  }
  .category-intro{ align-items:start; padding:16px; }
  .category-intro__icon{ width:42px; height:42px; }
  .category-section__heading{ align-items:flex-start; flex-direction:column; gap:8px; }
  .category-featured-card{ min-height:0; }
  .category-explore-grid{ grid-template-columns:1fr; }
  .category-bottom-grid{ padding-top:20px; }
}

.quick-link--bolsas,
.quick-link--oposiciones{
  border-color: rgba(16,185,129,.2);
}

.quick-link--bolsas:hover,
.quick-link--oposiciones:hover{
  background: rgba(16,185,129,.08);
}

.public-filters-card{
  margin-bottom: 20px;
  border-radius: 8px;
}

.public-section-heading{
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.public-section-heading h2,
.public-results-toolbar h2,
.seo-block h2,
.faq-strip h2,
.signup-cta h2{
  margin: 0;
  color: var(--text);
  font-size: 21px;
  line-height: 1.25;
  letter-spacing: 0;
}

.public-section-heading p,
.public-results-toolbar p,
.seo-block p,
.signup-cta p{
  margin: 5px 0 0;
  color: var(--muted);
}

.public-filters{
  display: grid;
  grid-template-columns: minmax(220px, 1.35fr) repeat(4, minmax(160px, 1fr));
  align-items: end;
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}

.public-filters > div{ min-width: 0; }

.public-filters--compact,
.public-filters--organismos,
.public-filters--novedades{
  grid-template-columns: repeat(3, minmax(180px, 1fr));
}

.public-filters__actions{
  grid-column: 1 / -1;
  display: flex !important;
  flex-direction: row !important;
  justify-content: flex-end;
  gap: 10px !important;
}

.public-filters__actions .btn{ width: auto; min-width: 150px; }

.public-results-section{ margin-top: 20px; }

.public-results-toolbar{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.public-sort-links{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.public-sort-links a{
  padding: 8px 11px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.82);
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.public-sort-links a:hover{
  color: var(--primary);
  border-color: rgba(30,99,255,.2);
}

.public-sort-links a.is-active{
  color: var(--primary);
  border-color: rgba(30,99,255,.28);
  background: rgba(30,99,255,.1);
  box-shadow: var(--shadow-sm);
}

.public-results-list{
  display: grid;
  gap: 12px;
}

.result-card{
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) minmax(132px, auto);
  gap: 18px;
  align-items: center;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow-sm);
  transition: var(--transition-fast);
}

.result-card:hover{
  border-color: rgba(30,99,255,.2);
  box-shadow: 0 12px 28px rgba(30,99,255,.1);
  transform: translateY(-1px);
}

.result-card__logo,
.result-card__icon{
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: 8px;
  background: #fff;
  color: var(--primary);
  font-weight: 900;
  border: 1px solid rgba(30,99,255,.14);
  box-shadow: 0 8px 20px rgba(15,23,42,.06);
  overflow: hidden;
}

.result-card__logo img{
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 8px;
}

.result-card__logo span{
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 7px;
  background: rgba(30,99,255,.08);
  color: var(--primary);
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0;
}

.result-card__icon--exam,
.result-card__icon--news{
  position: relative;
  background: rgba(30,99,255,.08);
}

.result-card__icon--exam::before,
.result-card__icon--news::before{
  content:"";
  width:28px;
  height:28px;
  border:2px solid currentColor;
  border-radius:7px;
}

.result-card__icon--exam::after{
  content:"";
  position:absolute;
  width:14px;
  height:2px;
  background:currentColor;
  box-shadow:0 7px 0 currentColor, 0 14px 0 currentColor;
}

.result-card__icon--news::before{
  border-radius:50%;
}

.result-card__icon--news::after{
  content:"";
  position:absolute;
  width:6px;
  height:20px;
  border-radius:4px;
  background:currentColor;
  box-shadow:0 -11px 0 -2px currentColor;
}

.result-card__date-badge{
  width:58px;
  min-width:58px;
  height:58px;
  border-radius:14px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:2px;
  background:linear-gradient(180deg, rgba(30,99,255,.1), rgba(255,255,255,.96));
  border:1px solid rgba(30,99,255,.18);
  color:var(--primary);
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}

.result-card__date-badge span{
  font-size:20px;
  line-height:1;
  font-weight:900;
}

.result-card__date-badge small{
  font-size:11px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
}

.result-card__kicker{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:8px;
}

.news-type-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  width:max-content;
  padding:5px 9px;
  border-radius:999px;
  font-size:12px;
  line-height:1;
  font-weight:900;
  background:rgba(30,99,255,.1);
  color:var(--primary);
}

.news-type-badge::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:currentColor;
}

.news-type-badge--bolsa{ background:rgba(16,185,129,.12); color:#059669; }
.news-type-badge--examen{ background:rgba(124,58,237,.12); color:#7c3aed; }
.news-type-badge--listas{ background:rgba(20,184,166,.12); color:#0f766e; }
.news-type-badge--plazo{ background:rgba(249,115,22,.13); color:#ea580c; }
.news-type-badge--novedad{ background:rgba(79,70,229,.11); color:#4f46e5; }

.result-card--news .result-card__chips{
  display:none;
}

.oep-state-intro p{
  line-height:1.65;
  margin-top:0;
}

.oep-state-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:16px;
}

.oep-state-value{
  color:var(--text);
  font-size:28px;
  font-weight:800;
  line-height:1.1;
  margin-top:4px;
}

.oep-state-danger{ color:#b42318; }
.oep-state-success{ color:#137333; }

.oep-state-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.filters--oep-state{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(160px,220px) auto;
  gap:12px;
  align-items:end;
}

.oep-state-link{
  color:var(--primary);
  font-weight:700;
  text-decoration:none;
}

.oep-state-link:hover{
  text-decoration:underline;
}

.oep-state-table .pill{
  white-space:nowrap;
}

.oep-pending-count{
  color:#b06000;
  font-weight:800;
}

.oep-meta-label{
  color:var(--text-secondary);
  display:block;
  font-size:14px;
  font-weight:800;
}

.oep-meta-value{
  color:var(--text);
  margin-top:4px;
}

.oep-associated-list{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.oep-associated-count{
  font-size:12px;
  margin-left:6px;
}

.staff-note{
  font-size:.9rem;
}

.exam-results-toolbar{
  margin-top:22px;
}

.exam-result-pill{
  display:inline-flex;
  margin-left:6px;
  padding:2px 7px;
  border-radius:999px;
  font-size:12px;
  font-weight:850;
  background:rgba(239,68,68,.1);
  color:var(--danger);
}

.exam-result-pill.is-pass{
  background:rgba(16,185,129,.12);
  color:var(--success);
}

.exam-empty-state{
  margin-top:18px;
}

.result-card__body{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, .44fr);
  gap: 18px;
  align-items: center;
  min-width: 0;
}

.result-card__title{
  margin: 0;
  font-size: 17px;
  line-height: 1.3;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.result-card__title a{ color: var(--primary); }
.result-card__title a:hover{ color: var(--primary-dark); }

.result-card__organism{
  margin-top: 4px;
  color: var(--text-secondary);
  font-size: 14px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.result-card__organism a:hover{ color: var(--primary); }

.result-card__chips{
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.pill--category-icon{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-color: color-mix(in srgb, var(--category-icon-color) 26%, var(--border));
  background: var(--category-icon-bg);
  color: var(--category-icon-color);
}

.pill--category-icon .category-icon__glyph{
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
}

.result-card__meta{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.result-card__meta dt{
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
  text-transform: uppercase;
}

.result-card__meta dd{
  margin: 2px 0 0;
  color: var(--text);
  font-size: 13px;
  font-weight: 800;
}

.result-card__deadline-note{
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.result-card__deadline-note.is-soon{
  color: #f97316;
}

.result-card__deadline-note.is-urgent{
  color: #ef4444;
}

.result-card__deadline-note.is-closed{
  color: var(--muted);
}

.result-card__actions{
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 132px;
  max-width: 100%;
}

.result-card__actions .btn,
.result-card__actions .btn-exam{ width: 100%; }

.result-card__staff-action{
  opacity: .82;
}

.result-card--bolsa{
  border-color: rgba(16,185,129,.14);
}

.result-card--bolsa:hover{
  border-color: rgba(16,185,129,.26);
  box-shadow: 0 12px 28px rgba(16,185,129,.1);
}

.result-card--bolsa .result-card__title a,
.result-card--bolsa .result-card__organism a:hover{
  color: #008c78;
}

.result-card--bolsa .result-card__logo{
  border-color: rgba(16,185,129,.18);
}

.result-card--bolsa .result-card__logo span{
  background: rgba(16,185,129,.1);
  color: #008c78;
}

.signup-cta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 24px 0;
  padding: 22px 24px;
  border: 1px solid rgba(30,99,255,.16);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(30,99,255,.09), rgba(255,255,255,.92));
  box-shadow: var(--shadow-sm);
}

.signup-cta__actions{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.seo-block,
.faq-strip{
  margin-top: 22px;
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255,255,255,.92);
  box-shadow: var(--shadow-sm);
}

.seo-block p{
  color: var(--text-secondary);
  line-height: 1.7;
}

.internal-links-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}

.internal-link-card{
  padding: 13px 14px;
  border: 1px solid rgba(30,99,255,.14);
  border-radius: 8px;
  background: rgba(30,99,255,.05);
  color: var(--primary);
  font-weight: 800;
}

.internal-link-card:hover{ background: rgba(30,99,255,.1); }

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

.public-card-grid--featured{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 22px;
}

.public-card-grid--contact{
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
  align-items: start;
}

.featured-link-card{
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow-sm);
}

.featured-link-card h2,
.featured-link-card h3{
  margin: 0;
  color: var(--text);
  font-size: 18px;
  line-height: 1.28;
  letter-spacing: 0;
}

.featured-link-card h3 a:hover{ color: var(--primary); }

.featured-link-card p{
  margin: 8px 0 0;
  color: var(--text-secondary);
  font-size: 14px;
  line-height: 1.6;
}

.featured-link-card__meta{
  color: var(--primary);
  font-size: 13px;
  font-weight: 850;
}

.featured-link-card--compact{
  min-height: 0;
}

.territory-tabs{
  margin-bottom: 22px;
}

.territory-main-cards{
  align-items: stretch;
}

.territory-main-card{
  padding: 24px;
}

.territory-main-card__body{
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.territory-main-card__icon{
  display: inline-flex;
  width: 68px;
  height: 68px;
  border-radius: 999px;
  color: var(--primary);
  background: rgba(30,99,255,.1);
}

.territory-main-card--bolsas .featured-link-card__meta,
.territory-main-card--bolsas .territory-main-card__icon{
  color: #059669;
}

.territory-main-card--bolsas .territory-main-card__icon{
  background: rgba(5,150,105,.11);
}

.territory-main-card__button{
  width: 100%;
  justify-content: center;
}

.territory-main-card__button--teal{
  border-color: #059669;
  background: linear-gradient(135deg, #10b981, #0f8f7d);
}

.territory-main-card__button--teal:hover{
  background: linear-gradient(135deg, #059669, #0f766e);
}

.territory-quick-links .quick-link::before,
.internal-link-card::before{
  content: "";
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

.territory-quick-links .quick-link{
  gap: 8px;
}

.territory-explore{
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr);
  gap: 28px;
  align-items: end;
}

.territory-explore::after{
  content: "";
  position: absolute;
  right: 24px;
  top: 28px;
  width: 260px;
  height: 130px;
  opacity: .14;
  background:
    linear-gradient(180deg, transparent 46%, currentColor 47% 50%, transparent 51%),
    linear-gradient(90deg, transparent 10%, currentColor 10% 12%, transparent 12% 34%, currentColor 34% 36%, transparent 36% 58%, currentColor 58% 60%, transparent 60%),
    linear-gradient(135deg, transparent 22%, currentColor 22% 24%, transparent 24%),
    linear-gradient(225deg, transparent 22%, currentColor 22% 24%, transparent 24%);
  color: var(--primary);
  pointer-events: none;
}

.territory-explore__copy{
  position: relative;
  z-index: 1;
}

.territory-explore .internal-links-grid{
  position: relative;
  z-index: 1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 0;
}

.territory-explore .internal-link-card{
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.hub-quick-links{
  margin-bottom: 22px;
}

.hub-quick-link{
  gap: 8px;
}

.hub-quick-link::before,
.hub-link-card::before{
  display: none;
}

.hub-quick-link > span,
.hub-link-card > span,
.value-strip__item > span{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: var(--hub-icon-color, var(--primary));
  background: var(--hub-icon-bg, rgba(30,99,255,.09));
}

.hub-quick-link > span{
  width: 22px;
  height: 22px;
  border-radius: 7px;
}

.hub-link-card > span{
  width: 28px;
  height: 28px;
  border-radius: 9px;
}

.hub-quick-link > span::before,
.hub-link-card > span::before,
.value-strip__item > span::before{
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  mask: var(--hub-icon) center / contain no-repeat;
  -webkit-mask: var(--hub-icon) center / contain no-repeat;
}

.hub-link-card > span::before{
  width: 18px;
  height: 18px;
}

.hub-link-card{
  min-height: 58px;
  justify-content: space-between;
  padding: 14px 16px;
}

.hub-link-card::after{
  content: "";
  width: 18px;
  height: 18px;
  margin-left: auto;
  flex: 0 0 auto;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

.hub-quick-link--plazo,
.value-strip__item--plazo{ --hub-icon-color:#f97316; --hub-icon-bg:rgba(249,115,22,.1); }
.hub-quick-link--calendario,
.hub-link-card--calendario{ --hub-icon-color:var(--primary); --hub-icon-bg:rgba(30,99,255,.1); }
.hub-quick-link--oep{ --hub-icon-color:#7c3aed; --hub-icon-bg:rgba(124,58,237,.1); }
.hub-quick-link--organismos,
.hub-link-card--organismos,
.value-strip__item--organismos{ --hub-icon-color:#2563eb; --hub-icon-bg:rgba(37,99,235,.1); }
.hub-quick-link--tipos{ --hub-icon-color:#10b981; --hub-icon-bg:rgba(16,185,129,.1); }
.hub-quick-link--novedades{ --hub-icon-color:#7c3aed; --hub-icon-bg:rgba(124,58,237,.1); }
.hub-quick-link--territorio{ --hub-icon-color:#0ea5e9; --hub-icon-bg:rgba(14,165,233,.1); }
.hub-link-card--oposiciones,
.value-strip__item--info{ --hub-icon-color:var(--primary); --hub-icon-bg:rgba(30,99,255,.1); }
.hub-link-card--bolsas{ --hub-icon-color:#059669; --hub-icon-bg:rgba(5,150,105,.11); }
.hub-link-card--examenes{ --hub-icon-color:#f97316; --hub-icon-bg:rgba(249,115,22,.1); }
.hub-link-card--simulacros{ --hub-icon-color:#7c3aed; --hub-icon-bg:rgba(124,58,237,.1); }
.value-strip__item--todo{ --hub-icon-color:var(--primary); --hub-icon-bg:rgba(30,99,255,.1); }

.hub-quick-link--plazo,
.value-strip__item--plazo{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='m9 16 2 2 4-4'/%3E%3C/svg%3E"); }
.hub-quick-link--calendario,
.hub-link-card--calendario{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E"); }
.hub-quick-link--oep{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h9l5 5v15H6z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cpath d='M9 14h6'/%3E%3Cpath d='M9 18h4'/%3E%3C/svg%3E"); }
.hub-quick-link--organismos,
.hub-link-card--organismos,
.value-strip__item--organismos{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M3 21h18'/%3E%3Cpath d='M5 21V8l7-4 7 4v13'/%3E%3Cpath d='M9 21v-6h6v6'/%3E%3C/svg%3E"); }
.hub-quick-link--tipos{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M4 7h16'/%3E%3Cpath d='M4 12h10'/%3E%3Cpath d='M4 17h7'/%3E%3Cpath d='M18 14v6'/%3E%3Cpath d='M15 17h6'/%3E%3C/svg%3E"); }
.hub-quick-link--novedades{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9Z'/%3E%3Cpath d='M10 21h4'/%3E%3C/svg%3E"); }
.hub-quick-link--territorio{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s7-5.3 7-12a7 7 0 1 0-14 0c0 6.7 7 12 7 12Z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E"); }
.hub-link-card--oposiciones,
.value-strip__item--info{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='M9 13h6'/%3E%3Cpath d='M9 17h4'/%3E%3C/svg%3E"); }
.hub-link-card--bolsas{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3Crect width='20' height='14' x='2' y='6' rx='2'/%3E%3Cpath d='M2 13h20'/%3E%3C/svg%3E"); }
.hub-link-card--examenes{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M8 3h8l4 4v14H8z'/%3E%3Cpath d='M16 3v5h4'/%3E%3Cpath d='M12 13h4'/%3E%3Cpath d='M12 17h4'/%3E%3Cpath d='m9 13 1 1 2-2'/%3E%3C/svg%3E"); }
.hub-link-card--simulacros{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M12 21a9 9 0 1 1 9-9'/%3E%3Cpath d='M12 16a4 4 0 1 1 4-4'/%3E%3Cpath d='m14 10 7-7'/%3E%3Cpath d='M18 3h3v3'/%3E%3C/svg%3E"); }
.value-strip__item--todo{ --hub-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M12 21a9 9 0 1 1 9-9'/%3E%3Cpath d='M12 16a4 4 0 1 1 4-4'/%3E%3Cpath d='m12 12 6-6'/%3E%3C/svg%3E"); }

.employment-value-strip{
  margin-top: 26px;
}

.value-strip{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  padding: 22px;
  border: 1px solid rgba(30,99,255,.12);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(239,246,255,.82), rgba(255,255,255,.95)),
    radial-gradient(360px 160px at 90% 30%, rgba(30,99,255,.11), transparent 72%);
  box-shadow: var(--shadow-sm);
}

.value-strip__item{
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  column-gap: 14px;
  align-items: start;
}

.value-strip__item > span{
  grid-row: span 2;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  border: 1px solid rgba(30,99,255,.12);
}

.value-strip__item h3{
  margin: 0;
  color: var(--text);
  font-size: 15px;
  line-height: 1.25;
  letter-spacing: 0;
}

.value-strip__item p{
  margin: 6px 0 0;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.5;
}

.table-link{
  color: var(--primary);
  font-weight: 700;
  text-decoration: none;
}

.table-link:hover{ text-decoration: underline; }

.dashboard-summary-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}

.dashboard-summary-card{
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow-sm);
}

.dashboard-summary-card span{
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 750;
}

.dashboard-summary-card strong{
  color: var(--text);
  font-size: 28px;
  line-height: 1;
}

.private-hero__meta{
  margin-top: 14px;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 750;
}

.private-hero__visual{
  display: grid;
  gap: 12px;
}

.private-hero__stat{
  padding: 18px;
  border: 1px solid rgba(30,99,255,.16);
  border-radius: 8px;
  background: rgba(255,255,255,.9);
  box-shadow: var(--shadow-sm);
}

.private-hero__stat span{
  display: block;
  color: var(--primary);
  font-size: 30px;
  font-weight: 900;
  line-height: 1;
}

.private-hero__stat strong{
  display: block;
  margin-top: 7px;
  color: var(--text);
  font-size: 13px;
}

.private-tracking-card{
  overflow: visible;
}

.private-table-actions{
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.private-page-hero{
  padding-top: 20px;
  padding-bottom: 24px;
}

.private-page-hero__grid{
  grid-template-columns: minmax(0, 1.25fr) minmax(420px, .75fr);
  align-items: center;
}

.private-page-hero .public-hero__subtitle{
  max-width: 680px;
}

.private-metric-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.private-metric-card{
  display: grid;
  grid-template-columns: 42px 1fr;
  grid-template-rows: auto auto;
  column-gap: 12px;
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(30,99,255,.14);
  border-radius: 8px;
  background: rgba(255,255,255,.92);
  box-shadow: var(--shadow-sm);
}

.private-metric-card__icon{
  grid-row: 1 / 3;
  align-self: center;
  width: 42px;
  height: 42px;
  border-radius: 8px;
  background: rgba(30,99,255,.1);
}

.private-metric-card__icon svg{
  width: 21px;
  height: 21px;
  margin: 10px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.private-metric-card strong{
  align-self: end;
  color: var(--primary);
  font-size: 27px;
  line-height: 1;
}

.private-metric-card > span:last-child{
  margin-top: 5px;
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
}

.private-metric-card--teal strong,
.private-metric-card--teal .private-metric-card__icon{ color: #079d7d; }
.private-metric-card--teal .private-metric-card__icon{ background: rgba(7,157,125,.1); }
.private-metric-card--orange strong,
.private-metric-card--orange .private-metric-card__icon{ color: #e66c13; }
.private-metric-card--orange .private-metric-card__icon{ background: rgba(230,108,19,.1); }
.private-metric-card--purple strong,
.private-metric-card--purple .private-metric-card__icon{ color: #7c3aed; }
.private-metric-card--purple .private-metric-card__icon{ background: rgba(124,58,237,.1); }

.private-section-tabs{
  margin-bottom: 14px;
}

.private-filter-panel{
  margin-bottom: 16px;
  overflow: visible;
}

.private-filter-panel__header{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.private-filter-panel__header h2{
  margin: 0;
  font-size: 17px;
  line-height: 1.25;
}

.private-filter-panel__header p{
  margin: 5px 0 0;
  color: var(--text-secondary);
  font-size: 13px;
}

.private-filter-panel__clear{
  flex: 0 0 auto;
  color: var(--primary);
  font-size: 13px;
  font-weight: 800;
}

.private-tracking-filters{
  grid-template-columns: repeat(3, minmax(180px, 1fr));
}

.private-tracking-filters label,
.private-tracking-filters .filter-label{
  display: block;
  margin-bottom: 7px;
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 800;
}

.filter-multi__empty{
  display: block;
  padding: 12px;
  color: var(--text-secondary);
  font-size: 13px;
}

.tracked-process-table{
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-sm);
}

.tracked-process-table .table{
  min-width: 1120px;
  margin: 0;
}

.tracked-process-table th{
  white-space: nowrap;
}

.tracked-process-table td{
  vertical-align: middle;
}

.tracked-process-table td:first-child{
  width: 29%;
}

.sort-link{
  color: inherit;
  text-decoration: none;
}

.sort-link:hover{
  color: var(--primary);
}

.tracked-process-identity,
.tracked-process-card__identity{
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  min-width: 0;
}

.organism-avatar{
  position: relative;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  overflow: hidden;
  border: 1px solid rgba(30,99,255,.15);
  border-radius: 8px;
  background: rgba(30,99,255,.08);
  color: var(--primary);
  font-size: 12px;
  font-weight: 900;
}

.organism-avatar img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 5px;
  object-fit: contain;
}

.tracked-process-identity__title{
  display: -webkit-box;
  overflow: hidden;
  color: var(--primary);
  font-size: 14px;
  font-weight: 850;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.tracked-process-identity__organism{
  display: block;
  margin-top: 4px;
  overflow: hidden;
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  text-overflow: ellipsis;
}

.tracked-process-plaza,
.tracked-hito,
.source-link{
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.35;
}

.tracked-process-plaza:hover,
.source-link:hover{
  color: var(--primary);
}

.btn--small{
  min-height: 32px;
  padding: 6px 10px;
  font-size: 12px;
}

.tracked-process-card-list{
  gap: 12px;
}

.tracked-process-card{
  border-radius: 8px;
}

.tracked-process-card .mobile-list-card__title{
  margin: 0;
}

.tracked-process-card__details{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.tracked-process-card__details div{
  min-width: 0;
  padding: 10px;
  border-radius: 6px;
  background: var(--surface-subtle, #f7f9fc);
}

.tracked-process-card__details dt{
  color: var(--text-secondary);
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
}

.tracked-process-card__details dd{
  margin: 4px 0 0;
  color: var(--text);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.35;
}

.private-empty-state{
  padding: 44px 24px;
  text-align: center;
}

.private-empty-state h2{
  margin: 0;
  font-size: 22px;
}

.private-empty-state p{
  max-width: 620px;
  margin: 9px auto 20px;
  color: var(--text-secondary);
}

@media (max-width: 1040px){
  .private-page-hero__grid{
    grid-template-columns: 1fr;
  }

  .private-metric-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .tracked-process-table{
    display: none;
  }

  .tracked-process-card-list{
    display: grid;
  }
}

@media (max-width: 760px){
  .private-page-hero{
    padding-top: 14px;
    padding-bottom: 20px;
  }

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

  .private-section-tabs{
    width: 100%;
    overflow-x: auto;
  }

  .private-section-tabs .section-tabs__item{
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .private-filter-panel__header{
    display: block;
  }

  .private-filter-panel__clear{
    display: inline-block;
    margin-top: 8px;
  }

  .private-tracking-filters{
    grid-template-columns: 1fr;
  }

  .tracked-process-card__details{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px){
  .private-metric-card{
    grid-template-columns: 34px 1fr;
    column-gap: 9px;
    padding: 12px;
  }

  .private-metric-card__icon{
    width: 34px;
    height: 34px;
  }

  .private-metric-card__icon svg{
    width: 18px;
    height: 18px;
    margin: 8px;
  }

  .private-metric-card strong{
    font-size: 23px;
  }

  .tracked-process-card__identity{
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .organism-avatar{
    width: 42px;
    height: 42px;
  }

  .tracked-process-card .mobile-list-card__actions .btn,
  .tracked-process-card .mobile-list-card__actions .inline-form{
    width: 100%;
  }

  .tracked-process-card .mobile-list-card__actions .inline-form .btn{
    width: 100%;
  }
}

.public-feature-split{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 360px);
  gap: 24px;
  align-items: center;
  margin-bottom: 20px;
  border-radius: 8px;
}

.public-feature-split h2{
  margin: 0 0 10px;
  font-size: 22px;
  letter-spacing: 0;
}

.public-feature-split p{
  margin: 0;
  color: var(--text-secondary);
  line-height: 1.7;
}

.public-feature-split__media{
  display: block;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: rgba(30,99,255,.05);
}

.public-feature-split__media img{
  display: block;
  width: 100%;
  height: auto;
}

.public-check-list{
  display: grid;
  gap: 10px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.public-check-list li{
  position: relative;
  padding-left: 22px;
  color: var(--text-secondary);
  line-height: 1.55;
}

.public-check-list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--primary);
  box-shadow: 0 0 0 4px rgba(30,99,255,.1);
}

.public-form-stack{
  display: grid;
  gap: 16px;
}

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

.organismo-profile{
  overflow: hidden;
}

.organismo-profile__logo{
  float: left;
  max-width: 180px;
  max-height: 180px;
  object-fit: contain;
  margin: 0 24px 16px 0;
  padding: 16px;
  border-radius: 12px;
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.organismo-profile__description{
  margin-bottom: 24px;
  color: var(--text);
  font-size: 16px;
  line-height: 1.5;
  overflow-wrap: break-word;
}

.filters--oep{
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(160px, 220px) auto;
  gap: 12px;
  align-items: end;
}

.public-filters__actions--inline{
  grid-column: auto;
  justify-content: flex-start;
  align-items: end;
}

.oep-intro{
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .85fr);
  gap: 24px;
  align-items: start;
}

.oep-intro p{
  margin: 0 0 12px;
  color: var(--text-secondary);
  line-height: 1.65;
}

.oep-intro__list{
  margin: 0;
  padding-left: 18px;
  color: var(--text-secondary);
  line-height: 1.6;
}

.oep-intro__list li{
  margin-bottom: 8px;
}

.oep-stats{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

.oep-stat-card{
  min-height: 118px;
  padding: 18px;
  border-color: rgba(30,99,255,.12);
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,251,255,.98));
}

.oep-stat-link{
  display: block;
  color: inherit;
  text-decoration: none;
}

.oep-stat-link:hover{
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

.oep-stat-card--blue{
  background: linear-gradient(135deg, rgba(30,99,255,.1), rgba(255,255,255,.98));
}

.oep-stat-card--purple{
  background: linear-gradient(135deg, rgba(124,58,237,.1), rgba(255,255,255,.98));
}

.oep-stat-card--green{
  background: linear-gradient(135deg, rgba(16,185,129,.11), rgba(255,255,255,.98));
  border-color: rgba(16,185,129,.18);
}

.oep-stat-card--orange{
  background: linear-gradient(135deg, rgba(249,115,22,.12), rgba(255,255,255,.98));
  border-color: rgba(249,115,22,.2);
}

.oep-stat-value{
  color: var(--text);
  font-size: 28px;
  font-weight: 800;
  line-height: 1.15;
}

.oep-stat-card--green .oep-stat-value{ color: #059669; }
.oep-stat-card--orange .oep-stat-value{ color: #f97316; }
.oep-stat-card--purple .oep-stat-value{ color: #7c3aed; }

.table-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.oep-table th,
.oep-table td{
  vertical-align: middle;
}

.table-link{
  color: var(--text);
  text-decoration: none;
}

.table-link--primary{
  color: var(--primary);
  font-weight: 700;
}

.table-link:hover,
.table-link:focus-visible{
  color: var(--primary);
}

@media (max-width: 860px){
  .filters--oep,
  .filters--oep-state{
    grid-template-columns: 1fr;
  }

  .public-filters__actions--inline{
    grid-column: 1 / -1;
    flex-direction: column !important;
    align-items: stretch;
  }
}

@media (max-width: 720px){
  .tablewrap .public-table--responsive{
    min-width: 0;
  }

  .public-table--responsive thead{
    display: none;
  }

  .public-table--responsive,
  .public-table--responsive tbody,
  .public-table--responsive tr,
  .public-table--responsive td{
    display: block;
    width: 100%;
  }

  .public-table--responsive tr{
    padding: 14px;
    border-bottom: 1px solid var(--border);
  }

  .public-table--responsive td{
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 12px;
    padding: 8px 0;
    border: 0;
  }

  .public-table--responsive td::before{
    content: attr(data-label);
    color: var(--muted);
    font-size: 12px;
    font-weight: 850;
    text-transform: uppercase;
  }

  .table-actions .btn{
    width: 100%;
  }

  .organismo-profile__logo{
    float: none;
    display: block;
    margin: 0 0 18px;
  }
}

@media (max-width: 1080px){
  .oep-stats{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .oep-intro{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px){
  .oep-stats{
    grid-template-columns: 1fr;
  }
}

.public-table-panel{
  margin-top: 16px;
  border: 1px solid rgba(30,99,255,.1);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(250,253,255,.98));
  box-shadow: 0 14px 34px rgba(15, 23, 42, .06);
}

.public-table-panel .table{
  margin: 0;
}

.public-table-panel .table th{
  background: rgba(30,99,255,.045);
  color: var(--text);
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
}

.public-table-panel .table td{
  vertical-align: middle;
}

.faq-page { padding-bottom: 2rem; }
.faq-intro { margin-bottom: 24px; border-radius: 8px; }
.faq-intro__lead {
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--text-secondary);
  margin: 0 0 20px 0;
}
.faq-intro__notice {
  padding: 16px 20px;
  background: rgba(30, 99, 255, 0.08);
  border: 1px solid rgba(30, 99, 255, 0.2);
  border-radius: 8px;
  border-left: 4px solid var(--primary);
}
.faq-intro__notice-title {
  display: block;
  font-weight: 700;
  color: var(--primary);
  font-size: 14px;
  margin-bottom: 8px;
}
.faq-intro__notice-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: var(--text-secondary);
}
.faq-list { display: flex; flex-direction: column; gap: 0; }
.faq-item {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 20px 24px;
  margin-bottom: 16px;
  box-shadow: var(--shadow-sm);
  transition: var(--transition-fast);
}
.faq-item:hover {
  border-color: rgba(30, 99, 255, 0.15);
  box-shadow: 0 4px 16px rgba(30, 99, 255, 0.08);
}
.faq-item__q {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--primary);
  margin: 0 0 12px 0;
  line-height: 1.4;
  letter-spacing: 0;
}
.faq-item__a {
  font-size: 15px;
  line-height: 1.6;
  color: var(--text);
}
.faq-item__a p { margin: 0 0 10px 0; }
.faq-item__a p:last-child { margin-bottom: 0; }
.faq-item__bullets {
  margin: 10px 0;
  padding-left: 1.4rem;
}
.faq-item__bullets li { margin-bottom: 6px; }
.faq-footer { margin-top: 8px; border-radius: 8px; }

.year-chip-list{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.year-chip{
  display: inline-flex;
  gap: 8px;
  align-items: center;
  padding: 9px 13px;
  border-radius: 8px;
  border: 1px solid rgba(30,99,255,.18);
  background: rgba(30,99,255,.06);
  color: var(--primary);
  font-weight: 850;
}

.year-chip span{
  color: var(--muted);
  font-size: 12px;
}

.year-chip.is-active{
  background: var(--primary);
  color: #fff;
}

.year-chip.is-active span{ color: rgba(255,255,255,.82); }

.faq-strip{
  display: grid;
  gap: 8px;
}

.faq-strip details{
  padding: 14px 0;
  border-top: 1px solid var(--border);
}

.faq-strip summary{
  cursor: pointer;
  color: var(--text);
  font-weight: 850;
}

.faq-strip details p{
  margin: 8px 0 0;
  color: var(--text-secondary);
  line-height: 1.6;
}

@media (max-width: 980px){
  .public-hero__grid{
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .territory-hub-hero .public-hero__grid,
  .employment-hub-hero .public-hero__grid,
  .organismos-hero .public-hero__grid{
    grid-template-columns: 1fr;
  }
  .public-hero__visual{ display: none; }
  .public-filters{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .dashboard-summary-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .public-card-grid,
  .public-card-grid--contact{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .public-feature-split{
    grid-template-columns: 1fr;
  }
  .result-card,
  .result-card__body{
    grid-template-columns: 1fr;
  }
  .result-card{
    align-items: start;
  }
  .result-card__main,
  .result-card__meta,
  .result-card__actions{
    min-width: 0;
    width: 100%;
  }
  .result-card__logo,
  .result-card__icon{
    width: 54px;
    height: 54px;
  }
  .result-card__actions{
    flex-direction: row;
    flex-wrap: wrap;
    min-width: 0;
  }
  .result-card__actions .btn,
  .result-card__actions .btn-exam{ width: auto; }
  .internal-links-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .territory-explore{
    grid-template-columns: 1fr;
  }
  .territory-explore .internal-links-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .organismos-directory-layout{
    grid-template-columns: 1fr;
  }
  .organismos-directory-layout .organismos-filters-card{
    position: relative;
    top: auto;
  }
  .organismos-sidebar-filters{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .organismos-sidebar-filters .organismos-extra-filters,
  .organismos-sidebar-filters .public-filters__actions{
    grid-column: 1 / -1;
  }
  .organismos-modern-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .organismos-value-strip{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .value-strip{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px){
  .public-hero{ padding: var(--page-top-spacing-mobile) 0 24px; }
  .public-hero__title{ font-size: 32px; }
  .public-hero__subtitle{ font-size: 15px; }
  .public-hero__actions,
  .signup-cta,
  .public-results-toolbar{
    align-items: stretch;
    flex-direction: column;
  }
  .public-hero__actions .btn,
  .public-hero__actions .inline-form,
  .public-hero__actions .inline-form .btn,
  .signup-cta__actions,
  .signup-cta__actions .btn{
    width: 100%;
  }
  .section-tabs{
    display: flex;
    width: 100%;
  }
  .section-tabs__item{
    flex: 1;
    text-align: center;
  }
  .quick-links{
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .quick-link{ flex: 0 0 auto; }
  .public-filters{
    grid-template-columns: 1fr;
  }
  .public-card-grid,
  .public-card-grid--contact{
    grid-template-columns: 1fr;
  }
  .territory-main-card__body{
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .territory-main-card__icon{
    width: 56px;
    height: 56px;
  }
  .dashboard-summary-grid{
    grid-template-columns: 1fr;
  }
  .public-filters__actions{
    flex-direction: column !important;
  }
  .public-filters__actions .btn{ width: 100%; }
  .result-card{
    padding: 15px;
  }
  .result-card__logo,
  .result-card__icon{
    width: 48px;
    height: 48px;
  }
  .result-card__logo span{
    font-size: 15px;
  }
  .result-card__meta{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .result-card__actions .btn,
  .result-card__actions .btn-exam,
  .result-card__actions form{
    width: 100%;
  }
  .internal-links-grid{ grid-template-columns: 1fr; }
  .territory-explore .internal-links-grid{ grid-template-columns: 1fr; }
  .territory-explore::after{ display: none; }
  .organismos-results-toolbar,
  .organismos-sort-form{
    align-items: stretch;
    flex-direction: column;
  }
  .organismos-sort-form select,
  .organismos-view-toggle{
    width: 100%;
  }
  .organismos-sidebar-filters,
  .organismos-modern-grid,
  .organismos-value-strip,
  .value-strip{
    grid-template-columns: 1fr;
  }
  .organismos-card .organismos-tile__body{
    align-items: flex-start;
  }
  .organismos-card .organismos-tile__actions .btn{
    flex: 1 1 100%;
  }
}
/* Public exam SEO pages */
.exam-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.exam-category-card{display:flex;gap:14px;padding:20px;border:1px solid var(--border-light);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.exam-category-card:hover{transform:translateY(-2px);border-color:rgba(37,99,235,.32);box-shadow:var(--shadow-md)}
.exam-category-card__icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:12px;background:var(--category-icon-bg);position:relative}
.exam-category-card__icon .category-icon__glyph{width:23px;height:23px}
.exam-category-card__body{display:flex;flex-direction:column;gap:6px}
.exam-category-card__body strong{font-size:17px;line-height:1.2}
.exam-category-card__body span{color:var(--text-secondary);font-size:14px;line-height:1.45}
.exam-category-card__body em{color:var(--primary);font-size:13px;font-style:normal;font-weight:700}
.exam-category-card__body small{color:var(--text-muted);font-size:12px;font-weight:700}
.exam-landing-section{margin-bottom:18px}
.exam-landing-section h2{margin:0 0 10px;font-size:22px;line-height:1.2;color:var(--text)}
.exam-landing-section h3{margin:0 0 8px;font-size:16px;line-height:1.25;color:var(--text)}
.exam-landing-section p{margin:0;color:var(--text-secondary);font-size:15px;line-height:1.55}
.exam-landing-section__head{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:18px}
.exam-landing-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.exam-info-grid,.exam-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.exam-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.exam-info-grid article,.exam-related-grid article{padding:16px;border:1px solid var(--border-light);border-radius:14px;background:linear-gradient(180deg,#fff,rgba(248,250,252,.72))}
.exam-info-grid a,.exam-related-grid a{color:var(--primary);font-weight:800;text-decoration:none}
.exam-info-grid a:hover,.exam-related-grid a:hover{text-decoration:underline}
.exam-category-stats{display:grid;gap:8px;min-width:220px}
.exam-category-stats span{display:block;padding:10px 12px;border:1px solid var(--border-light);border-radius:12px;background:#fff;color:var(--text-secondary);font-size:13px;font-weight:700}
.exam-category-stats strong{display:block;color:var(--primary);font-size:18px;line-height:1.1}
.exam-related-grid ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.exam-related-grid li{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;color:var(--text-secondary);font-size:14px}
.exam-related-grid li span{flex:0 0 auto;color:var(--text-muted);font-size:12px;font-weight:800}
.public-exam{margin-top:24px;border-top:1px solid var(--border-light);padding-top:24px}
.public-exam__intro{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}
.public-exam__intro .section-heading{margin-bottom:6px}
.public-exam__actions{flex:0 0 auto}
.public-exam-result{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.public-exam-result>div{padding:14px;border:1px solid var(--border-light);border-radius:12px;background:linear-gradient(180deg,#fff,rgba(248,250,252,.86))}
.public-exam-result strong{display:block;color:var(--primary);font-size:24px;line-height:1}
.public-exam-result span{display:block;margin-top:6px;color:var(--text-secondary);font-size:13px;font-weight:700}
.public-exam-form{display:flex;flex-direction:column;gap:14px}
.public-exam-question{margin:0;padding:18px;border:1px solid var(--border-light);border-radius:14px;background:#fff}
.public-exam-question legend{display:flex;gap:10px;align-items:flex-start;width:100%;padding:0 0 2px;font-size:15px;font-weight:800;line-height:1.45;color:var(--text);text-align:left}
.public-exam-question legend span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border-radius:999px;background:rgba(37,99,235,.1);color:var(--primary);font-size:13px}
.public-exam-options{display:grid;gap:10px;margin-top:14px}
.public-exam-option{display:flex;gap:12px;align-items:flex-start;min-height:52px;padding:13px 14px;border:1px solid var(--border-light);border-radius:12px;background:#fff;cursor:pointer;text-align:left;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.public-exam-option:hover{border-color:rgba(37,99,235,.28);background:rgba(37,99,235,.035);box-shadow:var(--shadow-sm)}
.public-exam-option input,
.public-exam-option input[type="radio"]{flex:0 0 auto;width:auto;min-width:0;height:auto;margin:4px 0 0;accent-color:var(--primary)}
.public-exam-option span{display:block;flex:1 1 auto;min-width:0;color:var(--text);font-size:15px;line-height:1.45}
.public-exam-option.is-correct{border-color:rgba(16,185,129,.45);background:rgba(16,185,129,.08)}
.public-exam-option.is-wrong{border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.07)}
.public-exam-form__footer{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:6px}
@media (max-width:720px){.public-exam__intro{flex-direction:column}.public-exam-result{grid-template-columns:repeat(2,minmax(0,1fr))}}
.practice-hero{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  gap:24px;
  align-items:stretch;
  margin:-10px 0 18px;
}
.practice-hero__copy,
.practice-stats-grid,
.practice-filter-card,
.practice-history-card,
.practice-question-card{
  border:1px solid var(--border-light);
  background:linear-gradient(180deg,#fff,rgba(248,250,252,.78));
  box-shadow:var(--shadow-sm);
}
.practice-hero__copy{
  padding:28px;
  border-radius:18px;
}
.practice-hero__title{
  margin:8px 0 10px;
  color:var(--text);
  font-size:clamp(34px,4vw,52px);
  line-height:1.02;
  letter-spacing:0;
}
.practice-hero__subtitle{
  max-width:680px;
  margin:0;
  color:var(--text-secondary);
  font-size:17px;
  line-height:1.55;
}
.practice-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}
.practice-stats-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  padding:16px;
  border-radius:18px;
}
.practice-stat-card{
  display:grid;
  gap:8px;
  min-height:126px;
  padding:18px;
  border:1px solid var(--border-light);
  border-radius:14px;
  background:#fff;
}
.practice-stat-card span{
  color:var(--text-secondary);
  font-size:13px;
  font-weight:850;
}
.practice-stat-card strong{
  color:var(--primary);
  font-size:34px;
  line-height:1;
}
.practice-stat-card small{
  color:var(--text-muted);
  font-size:12px;
  font-weight:750;
}
.practice-stat-card small a{
  color:var(--primary);
  text-decoration:none;
}
.practice-stat-card--success strong{color:var(--success)}
.practice-stat-card--warning strong{color:var(--warning)}
.practice-stat-card--danger strong{color:var(--danger)}
.practice-filter-card{
  margin-bottom:18px;
  border-radius:18px;
}
.practice-filter-form{
  grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;
  align-items:end;
}
.practice-filter-form__actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.practice-results-section{
  display:grid;
  gap:16px;
}
.practice-results-section__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:18px;
}
.practice-results-section__head h2{
  margin:0 0 4px;
  color:var(--text);
  font-size:24px;
}
.practice-results-section__head p{
  margin:0;
  color:var(--text-secondary);
}
.practice-results-section__links{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.practice-results-section__links a{
  color:var(--primary);
  font-weight:850;
  text-decoration:none;
}
.practice-history-grid{
  display:grid;
  gap:14px;
}
.practice-history-card{
  display:grid;
  gap:16px;
  padding:18px;
  border-radius:18px;
}
.practice-history-card__top{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
}
.practice-history-card h3{
  margin:8px 0 0;
  color:var(--text);
  font-size:20px;
  line-height:1.25;
}
.practice-history-card__meta{
  margin:0;
  color:var(--text-secondary);
  font-weight:750;
}
.practice-badge,
.practice-status{
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:28px;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:850;
}
.practice-badge--exam{background:rgba(37,99,235,.1);color:var(--primary)}
.practice-badge--sim{background:rgba(124,58,237,.1);color:var(--accent)}
.practice-status--ok{background:rgba(16,185,129,.12);color:var(--success)}
.practice-status--review{background:rgba(245,158,11,.14);color:#b45309}
.practice-status--muted{background:rgba(100,116,139,.12);color:var(--text-secondary)}
.practice-history-card__stats{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin:0;
}
.practice-history-card__stats div{
  padding:12px;
  border:1px solid var(--border-light);
  border-radius:12px;
  background:rgba(248,250,252,.7);
}
.practice-history-card__stats dt{
  margin-bottom:6px;
  color:var(--text-muted);
  font-size:11px;
  font-weight:850;
  text-transform:uppercase;
}
.practice-history-card__stats dd{
  margin:0;
  color:var(--text);
  font-size:14px;
  font-weight:850;
}
.practice-history-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.practice-danger-zone{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:16px;
  border:1px solid rgba(239,68,68,.2);
  border-radius:16px;
  background:rgba(239,68,68,.045);
}
.practice-danger-zone strong,
.practice-danger-zone span{
  display:block;
}
.practice-danger-zone span{
  margin-top:4px;
  color:var(--text-secondary);
}
.practice-question-list{
  display:grid;
  gap:12px;
}
.practice-question-card{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  padding:16px;
  border-radius:14px;
}
.practice-question-card__title{
  color:var(--primary);
  font-weight:850;
  line-height:1.35;
  text-decoration:none;
}
.practice-question-card__title:hover{text-decoration:underline}
.practice-question-card__body p{
  margin:8px 0 0;
  color:var(--text-secondary);
  font-size:13px;
  font-weight:700;
}
.practice-question-card__meta{
  display:grid;
  justify-items:end;
  gap:8px;
  flex:0 0 auto;
}
.practice-question-card__meta small{
  color:var(--text-muted);
  font-size:12px;
  font-weight:750;
  white-space:nowrap;
}
.pagination-strip{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:14px 0;
}
@media (max-width:980px){
  .practice-hero{grid-template-columns:1fr}
  .practice-filter-form{grid-template-columns:1fr}
  .practice-history-card__stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .practice-hero__copy{padding:22px}
  .practice-stats-grid{grid-template-columns:1fr}
  .practice-history-card__top,
  .practice-results-section__head,
  .practice-danger-zone,
  .practice-question-card{
    flex-direction:column;
    align-items:stretch;
  }
  .practice-history-card__stats{grid-template-columns:1fr}
  .practice-question-card__meta{justify-items:start}
  .practice-question-card__meta small{white-space:normal}
  .practice-history-card__actions .btn,
  .practice-history-card__actions form,
  .practice-history-card__actions button,
  .practice-hero__actions .btn{
    width:100%;
  }
}
.exam-detail-card{
  margin-top:-12px;
}
.exam-option-panel{
  display:grid;
  gap:8px;
  margin-bottom:16px;
  padding:14px 16px;
  border:1px solid var(--border-light);
  border-radius:12px;
  background:rgba(30,99,255,.045);
}
.exam-action-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}
.exam-actions-soon{
  display:inline-flex;
  align-items:center;
  padding:10px 16px;
  border:1px solid rgba(239,68,68,.22);
  border-radius:10px;
  background:rgba(239,68,68,.09);
  color:var(--danger);
  font-weight:850;
}
.question-preview-item{
  margin-bottom:16px;
}
.sim-landing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:-12px}
.sim-landing-card h2,.sim-landing-section h2{margin:0 0 10px;font-size:20px;line-height:1.2;color:var(--text)}
.sim-landing-card p,.sim-landing-section p{margin:0;color:var(--text-secondary);font-size:15px;line-height:1.55}
.sim-landing-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.sim-landing-section{margin-top:18px}
.sim-landing-section__head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px}
.sim-landing-section__head p{max-width:560px}
.faq-list{display:grid;gap:10px}
.faq-list details{border:1px solid var(--border-light);border-radius:12px;background:#fff;padding:14px 16px}
.faq-list summary{cursor:pointer;font-weight:800;color:var(--text)}
.faq-list details p{margin-top:10px}
@media (max-width:840px){.sim-landing-grid,.exam-info-grid,.exam-related-grid{grid-template-columns:1fr}.sim-landing-section__head,.exam-landing-section__head{display:block}.sim-landing-actions .btn,.exam-landing-actions .btn{width:100%}.exam-landing-actions{margin-top:14px}.exam-category-stats{margin-top:14px}}

/* 2026 shared page families */
.page-shell{
  display:grid;
  gap:22px;
}

.page-shell--compact{
  gap:18px;
}

.public-hero--compact{
  padding: 24px 0 10px;
}

.public-hero--compact .public-hero__grid{
  gap: 24px;
}

.public-hero--compact .public-hero__title{
  font-size: clamp(34px, 5vw, 56px);
}

.public-hero--compact .public-hero__subtitle{
  max-width: 760px;
}

.layout-split{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 300px;
  gap:22px;
  align-items:start;
}

.layout-split__aside{
  position:sticky;
  top:calc(var(--header-height, 72px) + 18px);
}

.info-nav-card{
  padding:18px;
}

.info-nav-card h2{
  margin:0 0 12px;
  color:var(--text);
  font-size:17px;
  line-height:1.2;
}

.info-nav-list{
  display:grid;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}

.info-nav-list a,
.info-nav-list span{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border:1px solid var(--border-light);
  border-radius:10px;
  background:#fff;
  color:var(--text-secondary);
  font-size:14px;
  font-weight:750;
  text-decoration:none;
}

.info-nav-list a:hover,
.info-nav-list a.is-active{
  color:var(--primary);
  border-color:rgba(30,99,255,.24);
  background:rgba(30,99,255,.06);
}

.legal-layout .legal-doc{
  padding:clamp(22px, 4vw, 40px);
}

.legal-doc{
  box-shadow:var(--shadow-sm);
}

.legal-doc__updated{
  display:inline-flex;
  margin:0 0 18px;
  padding:8px 12px;
  border:1px solid rgba(30,99,255,.18);
  border-radius:999px;
  background:rgba(30,99,255,.06);
  color:var(--primary);
  font-size:13px;
  font-weight:850;
}

.legal-note-card{
  padding:18px;
  background:linear-gradient(180deg, rgba(30,99,255,.07), rgba(255,255,255,.95));
}

.legal-note-card p{
  margin:0;
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.55;
}

.settings-shell{
  display:grid;
  gap:18px;
}

.settings-card{
  overflow:hidden;
}

.settings-section{
  padding:22px 24px;
  border-top:1px solid var(--border-light);
}

.settings-section:first-child{
  border-top:0;
}

.settings-section__title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin:0 0 14px;
  color:var(--text);
  font-size:18px;
  font-weight:900;
  line-height:1.2;
}

.settings-section__copy{
  margin:0 0 14px;
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.55;
}

.settings-section--danger{
  background:linear-gradient(180deg, rgba(239,68,68,.055), rgba(255,255,255,.96));
}

.settings-section--danger .settings-section__title{
  color:#b91c1c;
}

.mi-cuenta-section{
  margin-bottom:28px;
}

.mi-cuenta-section:last-of-type{
  margin-bottom:0;
}

.mi-cuenta-section--separated,
.mi-cuenta-consent{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid var(--border);
}

.mi-cuenta-section-title{
  margin:0 0 14px;
  padding-bottom:8px;
  border-bottom:1px solid var(--border);
  color:var(--text);
  font-size:18px;
  font-weight:800;
}

.mi-cuenta-form .form-grid{
  display:grid;
  gap:1rem;
}

.mi-cuenta-form .form-grid-2{
  grid-template-columns:1fr 1fr;
}

.mi-cuenta-form label{
  display:block;
  margin-bottom:6px;
  color:var(--text);
  font-size:14px;
  font-weight:700;
}

.mi-cuenta-form .field-error{
  margin-top:4px;
  color:var(--danger);
  font-size:13px;
}

.mi-cuenta-danger{
  margin-top:32px;
  padding-top:24px;
  border-top:1px solid var(--border);
}

.mi-cuenta-danger .mi-cuenta-section-title{
  color:var(--danger);
}

.mi-cuenta-danger p{
  margin:0 0 12px;
  color:var(--muted);
  font-size:14px;
}

.mi-cuenta-actions{
  margin-top:20px;
}

.mi-cuenta-actions .btn{
  width:auto;
  min-width:180px;
}

.checkbox-label-full{
  display:flex;
  align-items:flex-start;
  gap:12px;
  width:100%;
  color:var(--text);
  font-size:14px;
  cursor:pointer;
}

.checkbox-label-full span{
  flex:1;
  min-width:0;
  text-align:left;
}

.label-strong--spaced{
  display:block;
  margin-top:16px;
}

.dual-panel-widget{
  display:flex;
  align-items:stretch;
  gap:16px;
  margin:8px 0 20px;
}

.dual-panel-col{
  display:flex;
  flex:1;
  flex-direction:column;
  min-width:0;
  border:1px solid var(--input-border);
  border-radius:12px;
  background:var(--input-bg);
}

.dual-panel-title{
  padding:10px 12px;
  border-bottom:1px solid var(--border);
  color:var(--muted);
  font-size:13px;
  font-weight:700;
}

.dual-panel-list{
  flex:1;
  min-height:140px;
  max-height:200px;
  overflow-y:auto;
  padding:8px;
}

.dual-panel-item{
  display:block;
  width:100%;
  box-sizing:border-box;
  margin-bottom:4px;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:8px;
  background:#fff;
  color:var(--text);
  font-size:14px;
  text-align:left;
  cursor:pointer;
  transition:background .15s, border-color .15s;
}

.dual-panel-item:hover{
  border-color:rgba(30,99,255,.2);
  background:rgba(30,99,255,.08);
}

.dual-panel-item:last-child{
  margin-bottom:0;
}

.dual-panel-col--right .dual-panel-item{
  border-color:rgba(30,99,255,.2);
  background:rgba(30,99,255,.06);
}

.dual-panel-col--right .dual-panel-item:hover{
  background:rgba(30,99,255,.12);
}

.modal-overlay{
  display:none;
  position:fixed;
  inset:0;
  z-index:1000;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(0,0,0,.4);
}

.modal-overlay.show{
  display:flex;
}

.modal-box{
  width:100%;
  max-width:400px;
  padding:24px;
  border-radius:14px;
  background:#fff;
  box-shadow:0 20px 40px rgba(0,0,0,.15);
  text-align:center;
}

.modal-box p{
  margin:0 0 20px;
  color:var(--text);
  font-size:16px;
}

.modal-box .btn{
  width:auto;
  min-width:120px;
}

.form-stack{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.form-error{
  color:var(--danger);
  font-size:13px;
  font-weight:750;
}

.auth-shell{
  max-width:560px;
  margin:0 auto;
}

.auth-shell--wide{
  max-width:860px;
}

.auth-card{
  padding:clamp(22px, 4vw, 34px);
}

.auth-card__header{
  margin-bottom:18px;
  text-align:center;
}

.auth-card__title{
  margin:0;
  color:var(--text);
  font-size:26px;
  font-weight:950;
  line-height:1.15;
}

.auth-card__subtitle{
  margin:8px 0 0;
  color:var(--text-secondary);
  font-size:15px;
  line-height:1.5;
}

.auth-field{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.auth-field input,
.auth-field select,
.auth-field textarea,
.auth-card input[type="text"],
.auth-card input[type="email"],
.auth-card input[type="password"]{
  width:100%;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--card);
  color:var(--text);
  font:inherit;
  font-size:14px;
  font-weight:550;
  box-sizing:border-box;
}

.auth-field input:focus,
.auth-card input:focus{
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(30,99,255,.12);
}

.auth-divider{
  display:flex;
  align-items:center;
  gap:12px;
  margin:18px 0;
  color:var(--muted);
  font-size:13px;
}

.auth-divider::before,
.auth-divider::after{
  content:"";
  flex:1;
  height:1px;
  background:var(--border);
}

.auth-footer{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid var(--border);
  text-align:center;
}

.social-login{
  margin-bottom:18px;
}

.login-remember{
  display:flex;
  align-items:center;
  gap:10px;
}

.login-remember input[type="checkbox"]{
  width:18px;
  height:18px;
  margin:0;
  flex-shrink:0;
  accent-color:var(--primary);
  cursor:pointer;
}

.login-remember__label{
  margin:0;
  color:var(--text-secondary);
  font-size:14px;
  line-height:18px;
  cursor:pointer;
  user-select:none;
}

.btn-google{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  padding:12px 16px;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--card);
  color:var(--text);
  font-size:15px;
  font-weight:750;
  text-decoration:none;
  transition:var(--transition-fast);
  box-sizing:border-box;
}

.btn-google:hover{
  border-color:rgba(30,99,255,.28);
  background:rgba(30,99,255,.045);
}

.btn-sm,
.btn.btn-sm{
  min-height:34px;
  padding:7px 12px;
  border-radius:9px;
  font-size:13px;
  line-height:1.2;
}

.data-list-card{
  overflow:hidden;
}

.data-list-card__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding:20px 22px;
  border-bottom:1px solid var(--border-light);
}

.data-list-card__head h2{
  margin:0;
  color:var(--text);
  font-size:20px;
  line-height:1.2;
}

.data-list-card__head p{
  margin:6px 0 0;
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.5;
}

.data-list-card .tablewrap{
  border:0;
  border-radius:0;
  box-shadow:none;
}

.data-list-card > .filters{
  margin:0;
  padding:18px 22px;
  border-bottom:1px solid var(--border-light);
}

.chart-panel{
  position:relative;
  height:300px;
  margin-bottom:16px;
}

.pill--fallo-top{
  background:rgba(239,68,68,.25);
  color:#b91c1c;
  border-color:rgba(239,68,68,.5);
  font-weight:850;
}

.pill--fallo-medium{
  background:rgba(245,158,11,.25);
  color:#b45309;
  border-color:rgba(245,158,11,.5);
  font-weight:850;
}

.pill--fallo-low{
  background:rgba(30,99,255,.15);
  color:#1e63ff;
  border-color:rgba(30,99,255,.35);
}

.registro-section{
  max-width:100%;
}

.registro-terms{
  display:flex;
  justify-content:center;
}

.registro-terms__label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--text-secondary);
  font-size:14px;
  cursor:pointer;
  text-align:left;
}

.registro-terms__label .registro-terms__text{
  white-space:nowrap;
}

.registro-terms__link{
  color:var(--primary);
  font-weight:750;
  text-decoration:none;
}

.registro-terms__link:hover{
  text-decoration:underline;
}

.registro-actions{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  margin-top:12px;
}

.registro-actions .btn,
.registro-actions button[type="submit"]{
  width:auto;
  min-width:180px;
}

.registro-login{
  margin-top:16px;
  text-align:center;
}

.field-required::after{
  content:" *";
  color:var(--danger);
}

.required-mark{
  color:var(--danger);
  font-weight:850;
}

.form-help{
  margin:4px 0 0;
  color:var(--text-muted);
  font-size:12px;
  line-height:1.4;
}

.table-actions-nowrap{
  white-space:nowrap;
}

.table-actions-col{
  width:120px;
}

.inline-form{
  display:inline-block;
}

.inline-form + .inline-form,
.inline-form--spaced{
  margin-left:8px;
}

@media (max-width:420px){
  .registro-terms__label .registro-terms__text{
    white-space:normal;
  }
}

.modern-empty-state{
  padding:clamp(34px, 6vw, 64px) 22px;
  text-align:center;
}

.modern-empty-state h2,
.modern-empty-state .lead{
  margin:0 0 10px;
  color:var(--text);
  font-size:22px;
  font-weight:900;
}

.modern-empty-state p{
  max-width:620px;
  margin:0 auto 18px;
  color:var(--text-secondary);
  line-height:1.6;
}

.asturias-map-shell{
  display:grid;
  gap:18px;
}

.asturias-map-card{
  overflow:hidden;
}

.asturias-map-card__legend{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding:16px 18px;
  border-bottom:1px solid var(--border-light);
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.5;
}

.map-legend-dot{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:750;
}

.map-legend-dot::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--dot-color, #64748b);
}

.map-legend-dot--open{ --dot-color:#16a34a; }
.map-legend-dot--has{ --dot-color:#1e63ff; }
.map-legend-dot--empty{ --dot-color:#64748b; }

#asturias-map.leaflet-container{
  height:min(72vh, 720px);
  min-height:460px;
  width:100%;
  font:inherit;
  background:#e8eef5;
  z-index:1;
}

#asturias-map .leaflet-control-attribution{
  max-width:100%;
  font-size:11px;
}

.asturias-map-card__source{
  margin:0;
  padding:12px 18px;
  border-top:1px solid var(--border-light);
  color:var(--text-muted);
  font-size:12px;
  line-height:1.45;
}

.map-popup-muted{
  color:#64748b;
}

.inline-note{
  margin:0;
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.55;
}

.compact-list{
  display:grid;
  gap:6px;
  margin:8px 0 0 18px;
  padding:0;
}

.leaflet-popup-content ul{
  margin:6px 0 0 18px;
  padding:0;
}

.status-success{ color:var(--success); font-weight:850; }
.status-danger{ color:var(--danger); font-weight:850; }
.status-muted{ color:var(--muted); }

/* Keep directory filters contained in their sidebar. */
.organismos-directory-layout .organismos-sidebar-filters{
  display:grid;
  grid-template-columns:1fr;
  width:100%;
  max-width:100%;
}

.organismos-sidebar-filters > *,
.organismos-sidebar-filters .filter-multi,
.organismos-sidebar-filters .filter-multi__wrap,
.organismos-sidebar-filters input,
.organismos-sidebar-filters select,
.organismos-sidebar-filters button{
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}

.organismos-sidebar-filters .filter-multi__panel{
  left:0;
  right:0;
  width:auto;
  max-width:100%;
}

@media (max-width: 980px){
  .layout-split{
    grid-template-columns:1fr;
  }
  .layout-split__aside{
    position:relative;
    top:auto;
    order:-1;
  }
}

@media (max-width: 640px){
  .public-hero--compact{
    padding:16px 0 6px;
  }
  .settings-section,
  .data-list-card__head{
    padding:18px;
  }
  .mi-cuenta-form .form-grid-2{
    grid-template-columns:1fr;
  }
  .dual-panel-widget{
    flex-direction:column;
  }
  .data-list-card__head{
    flex-direction:column;
  }
  #asturias-map.leaflet-container{
    min-height:380px;
  }
}

/* Organism context and exam directory */
.organism-context-tabs{
  display:flex;
  gap:4px;
  margin:0 0 18px;
  padding:5px;
  overflow-x:auto;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
  scrollbar-width:none;
}
.organism-context-tabs::-webkit-scrollbar{display:none}
.organism-context-tabs a{
  flex:0 0 auto;
  padding:10px 15px;
  border-radius:6px;
  color:var(--text-muted);
  font-weight:700;
  text-decoration:none;
}
.organism-context-tabs a:hover,
.organism-context-tabs a:focus-visible,
.organism-context-tabs a.is-active{
  color:var(--primary);
  background:var(--primary-soft);
}
.organism-exams-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);
  gap:28px;
  padding:30px;
  background:linear-gradient(125deg,rgba(238,245,255,.92),rgba(255,255,255,.98) 58%),#fff;
}
.organism-exams-hero h1{
  margin:8px 0 10px;
  font-size:clamp(2rem,3.6vw,3.25rem);
  line-height:1.05;
}
.organism-exams-hero__copy>p:not(.public-eyebrow){
  max-width:720px;
  color:var(--text-muted);
  font-size:1.05rem;
}
.organism-exams-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:20px;
}
.organism-exams-metrics{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin:0;
  overflow:hidden;
  align-self:stretch;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:rgba(255,255,255,.9);
}
.organism-exams-metrics div{
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
  padding:20px;
  border-right:1px solid var(--border-light);
  border-bottom:1px solid var(--border-light);
}
.organism-exams-metrics div:nth-child(2n){border-right:0}
.organism-exams-metrics div:nth-last-child(-n+2){border-bottom:0}
.organism-exams-metrics dt{
  color:var(--text-muted);
  font-size:.78rem;
  font-weight:700;
  text-transform:uppercase;
}
.organism-exams-metrics dd{
  margin:5px 0 0;
  color:var(--text);
  font-size:1.45rem;
  font-weight:800;
  overflow-wrap:anywhere;
}
.organism-exam-filters{margin-top:18px}
.organism-exam-filter-grid{
  grid-template-columns:minmax(210px,1.3fr) repeat(4,minmax(130px,1fr)) auto;
  align-items:end;
}
.organism-exam-filter-grid__actions{
  display:flex;
  gap:8px;
}
.organism-exams-results{margin-top:22px}
.pagination-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:20px;
}
@media (max-width:1100px){
  .organism-exams-hero{grid-template-columns:1fr}
  .organism-exam-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .organism-exams-hero{padding:22px 18px}
  .organism-exams-metrics,
  .organism-exam-filter-grid{grid-template-columns:1fr}
  .organism-exams-metrics div,
  .organism-exams-metrics div:nth-child(2n),
  .organism-exams-metrics div:nth-last-child(-n+2){
    border-right:0;
    border-bottom:1px solid var(--border-light);
  }
  .organism-exams-metrics div:last-child{border-bottom:0}
  .organism-exam-filter-grid__actions,
  .organism-exam-filter-grid__actions .btn{width:100%}
  .pagination-actions{flex-wrap:wrap}
}

/* Shared 2026 surfaces: private progress, account settings and OEP detail. */
.private-page-hero{
  margin-bottom:16px;
}
.practice-stats-grid--six{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.practice-stats-grid--six .practice-stat-card{
  min-height:104px;
  padding:15px;
}
.review-metric-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px;
}
.review-metric-grid--four{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.review-metric-card{
  display:grid;
  gap:8px;
  min-height:96px;
  padding:16px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.review-metric-card span{
  color:var(--text-secondary);
  font-size:13px;
  font-weight:850;
}
.review-metric-card strong{
  color:var(--primary);
  font-size:30px;
  line-height:1;
}
.review-metric-card--success strong{color:var(--success)}
.review-metric-card--warning strong{color:var(--warning)}
.review-metric-card--danger strong{color:var(--danger)}
.review-filter-panel{
  margin-bottom:16px;
}
.review-filter-panel h2{
  margin:0 0 4px;
  font-size:20px;
}
.review-filter-panel > p{
  margin:0 0 14px;
  color:var(--text-secondary);
}
.review-filter-form{
  display:flex;
  align-items:end;
  gap:12px;
}
.review-filter-form--wide{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr)) auto;
}
.review-filter-form > div{
  min-width:150px;
}
.review-filter-form label{
  display:block;
  margin-bottom:6px;
  color:var(--text);
  font-size:13px;
  font-weight:800;
}
.review-filter-form__grow{flex:1}
.review-filter-form__actions{
  display:flex;
  gap:8px;
}
.review-origin{
  display:grid;
  gap:3px;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid var(--border-light);
}
.review-origin strong{
  color:var(--text);
  font-size:13px;
}
.review-origin span{
  color:var(--text-muted);
  font-size:12px;
}
.review-card-actions{
  display:flex;
  align-items:center;
}
.category-badge,
.level-chip,
.status-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:26px;
  margin:2px 5px 2px 0;
  padding:5px 9px;
  border:1px solid rgba(37,99,235,.14);
  border-radius:999px;
  background:rgba(37,99,235,.07);
  color:var(--primary);
  font-size:12px;
  font-weight:850;
  line-height:1.1;
}
.status-badge--pendiente{border-color:rgba(245,158,11,.25);background:rgba(245,158,11,.11);color:#a95808}
.status-badge--revisada{background:rgba(37,99,235,.09);color:var(--primary)}
.status-badge--aceptada{border-color:rgba(16,185,129,.25);background:rgba(16,185,129,.1);color:#087f5b}
.status-badge--rechazada{border-color:rgba(239,68,68,.24);background:rgba(239,68,68,.09);color:#b42318}
.claims-list{
  display:grid;
  gap:12px;
}
.claim-card{
  display:grid;
  gap:10px;
  padding:18px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.claim-card__head,
.claim-card__footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.claim-card__head time,
.claim-card__footer span{
  color:var(--text-muted);
  font-size:12px;
  font-weight:750;
}
.claim-card h2{
  margin:0;
  color:var(--text);
  font-size:18px;
  line-height:1.3;
}
.claim-card > p{
  margin:0;
  color:var(--text-secondary);
}
.claim-card__response{
  padding:12px;
  border-left:3px solid var(--primary);
  background:rgba(37,99,235,.04);
  color:var(--text-secondary);
  font-size:14px;
}
.account-quick-links{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:16px;
}
.account-quick-links a{
  padding:13px 14px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
  color:var(--primary);
  font-weight:850;
  text-align:center;
  text-decoration:none;
  box-shadow:var(--shadow-sm);
}
.account-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,320px);
  gap:16px;
  align-items:start;
}
.account-sidebar{
  display:grid;
  gap:12px;
  position:sticky;
  top:calc(var(--header-height,72px) + 16px);
}
.account-side-card{
  padding:18px;
  border-radius:8px;
}
.account-side-card h2{
  margin:0 0 8px;
  font-size:18px;
}
.account-side-card p{
  margin:0 0 14px;
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.5;
}
.account-side-links{
  display:grid;
  gap:8px;
}
.account-side-links a{
  color:var(--primary);
  font-weight:800;
  text-decoration:none;
}
.account-side-card--danger{
  border-color:rgba(239,68,68,.2);
  background:linear-gradient(180deg,rgba(239,68,68,.05),#fff);
}
.account-side-card--danger h2{color:#b42318}
.oep-detail-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(230px,300px);
  gap:20px;
  align-items:center;
}
.oep-hero-organism{
  display:grid;
  justify-items:center;
  gap:8px;
  padding:20px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
  text-align:center;
}
.organism-avatar--large{
  display:grid;
  place-items:center;
  width:78px;
  height:78px;
  overflow:hidden;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:rgba(37,99,235,.06);
  color:var(--primary);
  font-size:24px;
  font-weight:900;
}
.organism-avatar--large img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.oep-hero-organism span{
  color:var(--text-secondary);
  font-size:13px;
}
.oep-metric-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin:16px 0;
}
.oep-metric-card{
  display:grid;
  gap:7px;
  padding:15px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.oep-metric-card span{
  color:var(--text-secondary);
  font-size:12px;
  font-weight:800;
}
.oep-metric-card strong{
  color:var(--primary);
  font-size:28px;
}
.oep-metric-card--teal strong{color:#0f9f78}
.oep-metric-card--orange strong{color:#e76f00}
.oep-metric-card--purple strong{color:#7c3aed}
.oep-metric-card--slate strong{color:#475569}
.oep-summary-card,
.oep-data-card,
.oep-seo-copy{
  margin-top:16px;
}
.oep-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:0;
}
.oep-summary-grid div{
  padding:12px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:rgba(248,250,252,.7);
}
.oep-summary-grid dt{
  margin-bottom:5px;
  color:var(--text-muted);
  font-size:11px;
  font-weight:850;
  text-transform:uppercase;
}
.oep-summary-grid dd{
  margin:0;
  color:var(--text);
  font-weight:800;
}
.oep-summary-description{
  margin-top:14px;
  color:var(--text-secondary);
  line-height:1.6;
}
.oep-associated-list{
  display:grid;
  gap:5px;
  margin-top:7px;
}
.oep-associated-list a{
  color:var(--primary);
  font-weight:800;
  text-decoration:none;
}
.oep-associated-list small{
  display:block;
  color:var(--text-muted);
}
.oep-convocation-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.oep-convocation-card{
  display:grid;
  gap:10px;
  padding:16px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
}
.oep-convocation-card h3{
  margin:0;
  font-size:17px;
}
.oep-convocation-card h3 a{
  color:var(--primary);
  text-decoration:none;
}
.oep-convocation-card p{
  margin:0;
  color:var(--text-secondary);
  font-size:13px;
}
.oep-seo-copy h2{margin-top:0}
.oep-seo-copy p{color:var(--text-secondary);line-height:1.6}
.empty-state-actions{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}

/* Shared exam detail: available, scheduled and empty exams */
.exam-detail-hero{
  padding:28px 0 30px;
  border-bottom:1px solid var(--border-light);
  background:#f8fbff;
}
.exam-detail-hero__breadcrumbs{margin-bottom:22px}
.exam-detail-hero__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 390px;
  gap:34px;
  align-items:center;
}
.exam-detail-hero__copy{min-width:0}
.exam-detail-hero__badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 12px;
}
.exam-status-badge{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 10px;
  border:1px solid rgba(37,99,235,.18);
  border-radius:999px;
  background:rgba(37,99,235,.07);
  color:var(--primary);
  font-size:12px;
  font-weight:800;
}
.exam-status-badge--ready{border-color:rgba(16,185,129,.24);background:rgba(16,185,129,.10);color:#087a5a}
.exam-status-badge--pending{border-color:rgba(234,88,12,.22);background:rgba(249,115,22,.10);color:#c34b08}
.exam-status-badge--scheduled{border-color:rgba(124,58,237,.20);background:rgba(124,58,237,.09);color:#6d28d9}
.exam-detail-hero__title{
  max-width:900px;
  margin:0;
  color:var(--text);
  font-size:44px;
  line-height:1.08;
  letter-spacing:0;
  overflow-wrap:anywhere;
}
.exam-detail-hero__agency{margin:14px 0 0;color:var(--text-secondary);font-size:17px;font-weight:750}
.exam-detail-hero__agency a{color:var(--primary);text-decoration:none}
.exam-detail-hero__agency a:hover{text-decoration:underline}
.exam-detail-hero__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.exam-detail-summary{
  overflow:hidden;
  border:1px solid rgba(37,99,235,.16);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-md);
}
.exam-detail-summary__visual{
  display:grid;
  place-items:center;
  height:118px;
  overflow:hidden;
  border-bottom:1px solid var(--border-light);
  background:linear-gradient(135deg,rgba(219,234,254,.8),rgba(236,254,255,.7));
}
.exam-detail-summary__visual img{width:100%;height:145px;object-fit:contain;object-position:center}
.exam-detail-summary__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0}
.exam-detail-summary__grid>div{min-width:0;padding:14px 16px}
.exam-detail-summary__grid>div:nth-child(odd){border-right:1px solid var(--border-light)}
.exam-detail-summary__grid>div:nth-child(n+3){border-top:1px solid var(--border-light)}
.exam-detail-summary dt{margin:0 0 4px;color:var(--text-muted);font-size:11px;font-weight:800;text-transform:uppercase}
.exam-detail-summary dd{margin:0;color:var(--text);font-size:15px;font-weight:850;overflow-wrap:anywhere}
.exam-detail-page{display:grid;gap:18px}
.exam-detail-overview,.exam-attempts,.exam-start-panel,.public-exam,.exam-staff-preview{padding:24px;border-radius:8px}
.exam-detail-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}
.exam-detail-section-head h2{margin:2px 0 0;color:var(--text);font-size:23px;line-height:1.2}
.exam-detail-section-head>a:not(.btn){color:var(--primary);font-size:14px;font-weight:800;text-decoration:none}
.exam-detail-data-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border-top:1px solid var(--border-light);border-left:1px solid var(--border-light)}
.exam-detail-data-grid>div{
  position:relative;
  min-width:0;
  min-height:112px;
  padding:18px 16px 16px 58px;
  border-right:1px solid var(--border-light);
  border-bottom:1px solid var(--border-light);
}
.exam-detail-data-grid__icon{
  position:absolute;
  top:18px;
  left:16px;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:7px;
  background:rgba(37,99,235,.08);
  color:var(--primary);
}
.exam-detail-data-grid__icon svg,.exam-start-panel__icon svg,.exam-empty-state__icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.exam-detail-data-grid dt{margin:0 0 6px;color:var(--text-muted);font-size:12px;font-weight:800}
.exam-detail-data-grid dd{margin:0;color:var(--text);font-size:15px;font-weight:800;line-height:1.35;overflow-wrap:anywhere}
.exam-detail-data-grid dd a{color:var(--primary);text-decoration:none}
.exam-detail-data-grid dd a:hover{text-decoration:underline}
.exam-detail-notice{display:flex;gap:12px;align-items:flex-start;margin-top:16px;padding:13px 15px;border-left:3px solid #f59e0b;background:rgba(245,158,11,.075);color:var(--text-secondary);font-size:13px;line-height:1.45}
.exam-detail-notice strong{flex:0 0 auto;color:var(--text)}
.exam-attempts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.exam-attempt-card{padding:16px;border:1px solid var(--border-light);border-radius:8px;background:#fff}
.exam-attempt-card__head{display:flex;justify-content:space-between;gap:10px;margin-bottom:14px}
.exam-attempt-card__head span{color:var(--primary);font-size:20px;font-weight:850}
.exam-attempt-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0 0 14px}
.exam-attempt-card dl div{padding:9px;background:var(--surface-soft);border-radius:6px}
.exam-attempt-card dt{color:var(--text-muted);font-size:11px;font-weight:750}
.exam-attempt-card dd{margin:3px 0 0;color:var(--text);font-weight:850}
.exam-start-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);gap:18px;align-items:center}
.exam-start-panel__copy{display:flex;gap:14px;align-items:flex-start}
.exam-start-panel__copy h2{margin:3px 0 6px;font-size:24px}
.exam-start-panel__copy p:last-child{margin:0;color:var(--text-secondary)}
.exam-start-panel__icon,.exam-empty-state__icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:8px;background:rgba(37,99,235,.10);color:var(--primary)}
.exam-shuffle-control{display:flex;gap:11px;align-items:flex-start;padding:14px;border:1px solid var(--border-light);border-radius:8px;background:var(--surface-soft);cursor:pointer}
.exam-shuffle-control input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:var(--primary)}
.exam-shuffle-control span{display:grid;gap:3px}.exam-shuffle-control strong{font-size:14px}.exam-shuffle-control small{color:var(--text-secondary);line-height:1.35}
.exam-start-panel .exam-action-row{grid-column:1/-1;justify-content:flex-end;padding-top:2px}
.exam-detail-page>.public-exam{margin-top:0;border-top:1px solid var(--border-light)}
.exam-detail-page .public-exam-question{border-radius:8px;background:rgba(248,250,252,.64)}
.exam-detail-page .public-exam-option{border-radius:7px}
.exam-empty-state,.exam-account-state{display:grid;justify-items:center;min-height:300px;padding:42px 28px;border-radius:8px;text-align:center}
.exam-empty-state__icon{width:58px;height:58px;margin-bottom:14px;background:rgba(37,99,235,.09)}
.exam-empty-state__icon svg{width:27px;height:27px}
.exam-empty-state h2,.exam-account-state h2{max-width:680px;margin:4px 0 10px;font-size:26px}
.exam-empty-state>p:not(.public-eyebrow),.exam-account-state>p{max-width:690px;margin:0;color:var(--text-secondary);font-size:15px;line-height:1.55}
.exam-empty-state .empty-state__actions,.exam-account-state .empty-state__actions{justify-content:center;margin-top:22px}
.exam-staff-preview ol{margin:0;padding-left:22px}

@media (max-width:960px){
  .exam-detail-hero__grid{grid-template-columns:1fr;gap:22px}
  .exam-detail-summary{display:grid;grid-template-columns:240px 1fr}
  .exam-detail-summary__visual{height:100%;min-height:150px;border-right:1px solid var(--border-light);border-bottom:0}
  .exam-detail-data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .exam-start-panel{grid-template-columns:1fr}
  .exam-start-panel .exam-action-row{grid-column:auto}
}
@media (max-width:640px){
  .exam-detail-hero{padding:18px 0 22px}
  .exam-detail-hero__breadcrumbs{margin-bottom:16px}
  .exam-detail-hero__title{font-size:34px}
  .exam-detail-hero__agency{font-size:15px}
  .exam-detail-hero__actions,.exam-action-row,.public-exam-form__footer{align-items:stretch;flex-direction:column}
  .exam-detail-hero__actions .btn,.exam-action-row .btn,.public-exam-form__footer .btn{width:100%}
  .exam-detail-summary{display:block}
  .exam-detail-summary__visual{height:104px;min-height:0;border-right:0;border-bottom:1px solid var(--border-light)}
  .exam-detail-summary__visual img{height:126px}
  .exam-detail-overview,.exam-attempts,.exam-start-panel,.public-exam,.exam-staff-preview{padding:18px}
  .exam-detail-section-head{display:grid;gap:12px}
  .exam-detail-data-grid{grid-template-columns:1fr}
  .exam-detail-data-grid>div{min-height:96px}
  .exam-detail-notice{display:grid}
  .exam-attempts-grid{grid-template-columns:1fr}
  .exam-empty-state,.exam-account-state{min-height:270px;padding:34px 18px}
  .exam-empty-state .empty-state__actions,.exam-account-state .empty-state__actions{width:100%;align-items:stretch;flex-direction:column}
  .exam-empty-state .btn,.exam-account-state .btn{width:100%}
}
@media (max-width:1024px){
  .review-filter-form--wide{grid-template-columns:repeat(2,minmax(0,1fr))}
  .account-layout,
  .oep-detail-hero{grid-template-columns:1fr}
  .account-sidebar{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}
  .oep-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .oep-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:768px){
  .practice-stats-grid--six,
  .review-metric-grid,
  .review-metric-grid--four,
  .account-quick-links,
  .account-sidebar,
  .oep-metric-grid,
  .oep-convocation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .review-filter-form{
    display:grid;
    grid-template-columns:1fr;
  }
  .review-filter-form--wide{grid-template-columns:1fr}
  .review-filter-form__actions{width:100%}
  .review-filter-form__actions .btn{flex:1}
  .oep-summary-grid{grid-template-columns:1fr}
}
@media (max-width:520px){
  .practice-stats-grid--six,
  .review-metric-grid,
  .review-metric-grid--four,
  .account-quick-links,
  .account-sidebar,
  .oep-metric-grid,
  .oep-convocation-grid{grid-template-columns:1fr}
  .claim-card__head,
  .claim-card__footer{align-items:flex-start;flex-direction:column}
  .claim-card__footer .btn,
  .review-card-actions,
  .review-card-actions .btn,
  .review-card-actions form{width:100%}
  .dual-panel-widget{flex-direction:column}
}

/* Public exam hub */
.exam-hub-hero .public-hero__grid{
  grid-template-columns:minmax(0,1fr) minmax(390px,520px);
}
.exam-hub-visual{
  min-height:310px;
}
.exam-hub-visual .public-hero__mark{
  inset:0 0 56px;
  background:var(--public-hero-image) center/contain no-repeat;
  border:0;
  box-shadow:none;
}
.exam-hub-metrics{
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  overflow:hidden;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:rgba(255,255,255,.96);
  box-shadow:0 14px 30px rgba(15,23,42,.12);
}
.exam-hub-metrics div{
  display:grid;
  align-content:center;
  min-width:0;
  min-height:84px;
  padding:13px 16px;
  border-left:1px solid var(--border-light);
}
.exam-hub-metrics div:first-child{border-left:0}
.exam-hub-metrics strong{
  overflow:hidden;
  color:var(--primary);
  font-size:25px;
  line-height:1.1;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.exam-hub-metrics div:nth-child(2) strong{color:#059669}
.exam-hub-metrics div:nth-child(3) strong{color:#7c3aed}
.exam-hub-metrics span{
  margin-top:5px;
  color:var(--text-secondary);
  font-size:12px;
  font-weight:800;
}
.exam-category-intro{
  display:flex;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}
.exam-category-intro h2{
  margin:0 0 8px;
  font-size:24px;
}
.exam-category-intro p:not(.public-eyebrow){
  margin:0;
  color:var(--text-secondary);
}
.exam-search-panel,
.exam-results-panel,
.exam-related-panel,
.exam-faq-panel{
  margin-bottom:18px;
  border-radius:8px;
}
.exam-section-heading{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:16px;
}
.exam-section-heading__icon{
  display:grid;
  place-items:center;
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:8px;
  background:rgba(37,99,235,.08);
}
.exam-section-heading__icon .category-icon__glyph{
  width:22px;
  height:22px;
}
.exam-section-heading h2,
.exam-directory-section h2,
.exam-collaboration-card h2,
.exam-faq-panel h2{
  margin:0;
  color:var(--text);
  font-size:22px;
}
.exam-section-heading p,
.exam-directory-section__head p{
  margin:4px 0 0;
  color:var(--text-secondary);
  font-size:14px;
}
.exam-search-form{
  display:grid;
  grid-template-columns:minmax(190px,1.25fr) repeat(5,minmax(130px,1fr));
  gap:12px;
  align-items:end;
}
.exam-search-form label{
  display:block;
  margin-bottom:6px;
  color:var(--text);
  font-size:12px;
  font-weight:850;
}
.exam-search-form input,
.exam-search-form .filter-multi__trigger{
  min-height:44px;
}
.exam-search-form__actions{
  display:flex;
  grid-column:1/-1;
  justify-content:flex-end;
  gap:10px;
}
.exam-directory-section{
  margin-bottom:18px;
}
.exam-directory-section__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:18px;
  margin-bottom:12px;
}
.exam-directory-section__head > a:not(.btn){
  color:var(--primary);
  font-size:14px;
  font-weight:850;
  text-decoration:none;
}
.exam-featured-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.exam-featured-card{
  display:flex;
  gap:13px;
  min-width:0;
  padding:16px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.exam-featured-card__icon{
  display:grid;
  place-items:center;
  flex:0 0 44px;
  width:44px;
  height:44px;
  border-radius:8px;
  background:var(--category-icon-bg);
}
.exam-featured-card__icon .category-icon__glyph{
  width:23px;
  height:23px;
}
.exam-featured-card h3{
  margin:0;
  color:var(--text);
  font-size:16px;
  line-height:1.25;
}
.exam-featured-card p{
  margin:6px 0;
  color:var(--text-secondary);
  font-size:12px;
}
.exam-featured-card a{
  color:var(--primary);
  font-size:13px;
  font-weight:850;
  text-decoration:none;
}
.exam-how-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.exam-how-grid article{
  display:flex;
  gap:12px;
  padding:15px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:linear-gradient(180deg,#fff,rgba(248,250,252,.7));
}
.exam-how-grid article > span{
  display:grid;
  place-items:center;
  flex:0 0 36px;
  width:36px;
  height:36px;
  border-radius:8px;
  background:rgba(37,99,235,.1);
  color:var(--primary);
  font-weight:900;
}
.exam-how-grid article:nth-child(2)>span{background:rgba(16,185,129,.1);color:#07865f}
.exam-how-grid article:nth-child(3)>span{background:rgba(124,58,237,.1);color:#7c3aed}
.exam-how-grid h3{
  margin:0 0 5px;
  font-size:16px;
}
.exam-how-grid p{
  margin:0;
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.45;
}
.exam-results-panel{
  padding:0;
  overflow:hidden;
}
.exam-results-panel .exam-results-toolbar{
  padding:18px 20px;
  border-bottom:1px solid var(--border-light);
}
.exam-results-panel .exam-results-list{
  gap:0;
}
.exam-directory-card{
  border:0;
  border-bottom:1px solid var(--border-light);
  border-radius:0;
  box-shadow:none;
}
.exam-directory-card:last-child{border-bottom:0}
.exam-directory-card .result-card__logo img{
  object-fit:contain;
}
.exam-directory-card .category-badge,
.exam-directory-card .level-chip{
  margin:0;
}
.exam-directory-card .category-icon__glyph{
  width:15px;
  height:15px;
  margin-right:5px;
}
.exam-collaboration-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  margin-bottom:18px;
  padding:18px 20px;
  border:1px solid rgba(37,99,235,.18);
  border-radius:8px;
  background:linear-gradient(90deg,rgba(37,99,235,.07),rgba(255,255,255,.98));
}
.exam-collaboration-card__icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:8px;
  background:rgba(37,99,235,.1);
  color:var(--primary);
  font-size:28px;
  font-weight:500;
}
.exam-collaboration-card p{
  margin:5px 0 0;
  color:var(--text-secondary);
  font-size:14px;
}
.exam-faq-panel .faq-list{
  margin-top:12px;
}
@media (max-width:1180px){
  .exam-hub-hero .public-hero__grid{grid-template-columns:minmax(0,1fr) minmax(330px,430px)}
  .exam-search-form{grid-template-columns:repeat(3,minmax(0,1fr))}
  .exam-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .exam-hub-hero .public-hero__grid{grid-template-columns:1fr}
  .exam-hub-visual{display:block}
  .exam-hub-visual{min-height:285px}
  .exam-search-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .exam-how-grid{grid-template-columns:1fr}
  .exam-collaboration-card{grid-template-columns:auto minmax(0,1fr)}
  .exam-collaboration-card .btn{grid-column:1/-1;width:100%}
}
@media (max-width:560px){
  .exam-hub-visual{min-height:72px}
  .exam-hub-visual .public-hero__mark{display:none}
  .exam-hub-metrics div{min-height:68px;padding:10px 8px;text-align:center}
  .exam-hub-metrics strong{font-size:20px}
  .exam-hub-metrics span{font-size:10px}
  .exam-search-form,
  .exam-featured-grid{grid-template-columns:1fr}
  .exam-search-form__actions{flex-direction:column}
  .exam-search-form__actions .btn{width:100%}
  .exam-directory-section__head{align-items:flex-start;flex-direction:column}
  .exam-featured-card{align-items:flex-start}
  .exam-results-panel .exam-results-toolbar{padding:16px}
  .exam-directory-card{padding:16px}
  .exam-directory-card .result-card__body{width:100%}
  .exam-directory-card .result-card__meta{grid-template-columns:1fr 1fr}
  .exam-collaboration-card{grid-template-columns:1fr;text-align:center}
  .exam-collaboration-card__icon{margin:0 auto}
}

/* Simulacros de exámenes */
.sim-wrap{
  display:grid;
  gap:18px;
  margin:0 auto;
}
.sim-wrap > .card,
.sim-wrap .sim-builder{
  border-radius:8px;
}
.sim-intro-panel{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);
  gap:28px;
  align-items:center;
}
.sim-intro-panel h2,
.sim-official-comparison h2,
.sim-how-section h2,
.sim-private-support h2{
  margin:8px 0 8px;
  font-size:22px;
}
.sim-intro-panel p,
.sim-official-comparison p,
.sim-how-card p,
.sim-private-support p{
  margin:0;
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.55;
}
.sim-section-icon{
  display:block;
  width:42px;
  height:42px;
  border-radius:8px;
  background-color:rgba(124,58,237,.1);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%237c3aed' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M12 21a9 9 0 1 1 9-9'/%3E%3Cpath d='M12 16a4 4 0 1 1 4-4'/%3E%3Cpath d='m14 10 7-7M18 3h3v3'/%3E%3C/svg%3E");
  background-position:center;
  background-repeat:no-repeat;
  background-size:23px;
}
.sim-section-icon--blue{
  background-color:rgba(37,99,235,.09);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E");
}
.sim-access-callout{
  padding:18px;
  border:1px solid rgba(124,58,237,.16);
  border-radius:8px;
  background:linear-gradient(135deg,rgba(124,58,237,.055),rgba(37,99,235,.035));
}
.sim-access-callout > strong{
  display:block;
  margin-bottom:5px;
  font-size:16px;
}
.sim-how-section{
  padding:4px 0;
}
.sim-how-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.sim-how-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:start;
  min-height:106px;
  padding:16px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.sim-how-card__number{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:8px;
  background:rgba(37,99,235,.1);
  color:var(--primary);
  font-weight:900;
}
.sim-how-card__number--orange{background:rgba(249,115,22,.1);color:#ea580c}
.sim-how-card__number--green{background:rgba(16,185,129,.1);color:#059669}
.sim-how-card h3{
  margin:2px 0 5px;
  font-size:15px;
}
.sim-available-content{
  display:grid;
  grid-template-columns:minmax(250px,.6fr) minmax(0,1fr);
  gap:28px;
  align-items:start;
}
.sim-available-content__intro h2{
  margin:6px 0 8px;
  font-size:22px;
}
.sim-available-content__intro p{
  margin:0;
  color:var(--text-secondary);
  font-size:14px;
  line-height:1.55;
}
.sim-available-content__groups{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.sim-available-content__groups > div{
  min-width:0;
  padding:14px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:rgba(248,250,252,.7);
}
.sim-available-content__groups h3{
  margin:0 0 9px;
  font-size:13px;
}
.sim-available-list{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:0;
  padding:0;
  list-style:none;
}
.sim-available-list li{
  display:inline-flex;
  align-items:center;
  gap:5px;
  max-width:100%;
  padding:6px 8px;
  border:1px solid rgba(37,99,235,.14);
  border-radius:6px;
  background:#fff;
  color:var(--text-secondary);
  font-size:11px;
  font-weight:750;
}
.sim-available-list li span{
  color:var(--primary);
  font-size:10px;
}
.sim-official-comparison{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:22px;
  align-items:center;
}
.sim-official-comparison .btn{white-space:nowrap}
.sim-builder{
  display:grid;
  gap:20px;
  padding:22px;
}
.sim-builder__heading{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:start;
}
.sim-builder__heading h2{
  margin:2px 0 5px;
  font-size:22px;
}
.sim-builder__heading p,
.sim-topic-picker__heading p{
  margin:0;
  color:var(--text-secondary);
  font-size:14px;
}
.sim-builder-fields{
  display:grid;
  grid-template-columns:minmax(150px,.9fr) minmax(120px,.65fr) minmax(140px,.75fr) minmax(190px,1.15fr) auto;
  gap:12px;
  align-items:end;
}
.sim-field{min-width:0}
.sim-field label{
  display:block;
  margin-bottom:6px;
  color:var(--text-secondary);
  font-size:12px;
  font-weight:800;
}
.sim-builder .sim-builder-fields input,
.sim-builder .sim-builder-fields select{
  width:100%;
  min-height:44px;
  border-radius:7px;
}
.sim-builder .sim-builder__submit{
  display:inline-flex;
  width:auto;
  min-height:44px;
  padding-inline:20px;
  white-space:nowrap;
}
.sim-builder__submit svg{
  width:17px;
  height:17px;
  fill:currentColor;
  stroke:none;
}
.sim-topic-picker{
  padding-top:18px;
  border-top:1px solid var(--border-light);
}
.sim-topic-picker__heading{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:start;
  margin-bottom:12px;
}
.sim-topic-picker__heading h3{
  margin:0 0 4px;
  font-size:17px;
}
.sim-topic-picker__status{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--text-secondary);
  font-size:12px;
}
.sim-topic-clear{
  width:auto;
  padding:0;
  border:0;
  background:transparent;
  color:var(--primary);
  font-size:12px;
  font-weight:800;
}
.sim-topic-native{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.sim-topic-picker__grid{
  display:grid;
  grid-template-columns:minmax(250px,.42fr) minmax(0,1fr);
  min-height:238px;
  overflow:hidden;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:rgba(248,250,252,.65);
}
.sim-topic-browser{
  padding:12px;
  border-right:1px solid var(--border-light);
  background:#fff;
}
.sim-topic-search{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:8px;
  align-items:center;
  margin-bottom:9px;
  padding:0 10px;
  border:1px solid var(--border);
  border-radius:7px;
  background:#fff;
}
.sim-topic-search:focus-within{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(37,99,235,.1);
}
.sim-topic-search svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:var(--muted);
  stroke-width:2;
}
.sim-topic-search input{
  width:100%;
  min-width:0;
  padding:9px 0;
  border:0;
  outline:0;
  background:transparent;
}
.sim-topic-options{
  max-height:178px;
  overflow:auto;
  scrollbar-width:thin;
}
.sim-topic-option{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  width:100%;
  padding:8px 9px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--text);
  text-align:left;
}
.sim-topic-option[hidden]{display:none}
.sim-topic-option:hover,
.sim-topic-option:focus-visible{
  background:rgba(37,99,235,.06);
}
.sim-topic-option.is-selected{
  background:rgba(37,99,235,.1);
  color:var(--primary);
}
.sim-topic-option span{
  overflow:hidden;
  font-size:12px;
  font-weight:750;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sim-topic-option small{
  color:var(--muted);
  font-size:10px;
}
.sim-topic-no-results{
  margin:12px 4px 0;
  color:var(--muted);
  font-size:12px;
}
.sim-topic-selection{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:16px;
}
.sim-topic-chips{
  display:flex;
  align-content:flex-start;
  flex-wrap:wrap;
  gap:8px;
  min-height:116px;
}
.sim-topic-empty{
  margin:4px 0;
  color:var(--muted);
  font-size:13px;
}
.topic-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  width:auto;
  min-height:32px;
  padding:6px 10px;
  border:1px solid rgba(37,99,235,.18);
  border-radius:7px;
  background:#fff;
  color:var(--primary);
  font-size:11px;
  font-weight:800;
}
.topic-chip--selected{
  align-self:flex-start;
  background:rgba(37,99,235,.07);
}
.topic-chip--selected span{
  font-size:16px;
  line-height:1;
}
.topic-chip--suggestion:disabled{
  opacity:.45;
  cursor:default;
}
.sim-topic-suggestions{
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid var(--border-light);
}
.sim-topic-suggestions > span{
  display:block;
  margin-bottom:8px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}
.sim-topic-suggestions > div{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.sim-builder-tip{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:12px 14px;
  border:1px solid rgba(37,99,235,.18);
  border-radius:8px;
  background:rgba(37,99,235,.05);
}
.sim-builder-tip p{
  margin:0;
  color:var(--text-secondary);
  font-size:12px;
  line-height:1.5;
}
.sim-builder-tip .info-alert__icon{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--primary);
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.sim-private-support{
  display:grid;
  gap:18px;
  margin-top:4px;
}
@media (max-width:1120px){
  .sim-builder-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sim-builder .sim-builder__submit{width:100%}
}
@media (max-width:820px){
  .sim-intro-panel,
  .sim-available-content,
  .sim-official-comparison{grid-template-columns:1fr}
  .sim-how-grid{grid-template-columns:1fr}
  .sim-topic-picker__grid{grid-template-columns:1fr}
  .sim-topic-browser{border-right:0;border-bottom:1px solid var(--border-light)}
}
@media (max-width:560px){
  .sim-wrap{gap:14px}
  .sim-builder{padding:16px}
  .sim-builder-fields{grid-template-columns:1fr}
  .sim-available-content__groups{grid-template-columns:1fr}
  .sim-builder__heading,
  .sim-topic-picker__heading{display:block}
  .sim-topic-picker__status{justify-content:space-between;margin-top:10px}
  .sim-topic-picker__grid{min-height:0}
  .sim-topic-options{max-height:220px}
  .sim-topic-chips{min-height:76px}
  .sim-official-comparison .btn,
  .sim-intro-panel .btn{width:100%}
}

/* Preguntas por tema */
.topic-practice-hero .public-hero__grid{
  grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);
  align-items:center;
}
.topic-practice-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.topic-practice-stats article{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:12px;
  align-items:center;
  padding:18px;
  border:1px solid rgba(37,99,235,.14);
  border-radius:8px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow-sm);
}
.topic-practice-stats__icon{
  grid-row:1 / 3;
  display:block;
  width:42px;
  height:42px;
  border-radius:8px;
  background-color:rgba(37,99,235,.09);
  background-position:center;
  background-repeat:no-repeat;
  background-size:22px;
}
.topic-practice-stats__icon--topics{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 1 6.5 17H20'/%3E%3Cpath d='M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z'/%3E%3C/svg%3E");
}
.topic-practice-stats__icon--questions{
  background-color:rgba(16,185,129,.1);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23059669' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M9.1 9a3 3 0 1 1 5.83 1c0 2-3 2-3 4'/%3E%3Cpath d='M12 18h.01'/%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3C/svg%3E");
}
.topic-practice-stats strong{
  color:var(--primary);
  font-size:27px;
  line-height:1;
}
.topic-practice-stats article:last-child strong{color:#059669}
.topic-practice-stats small{
  color:var(--text-secondary);
  font-size:12px;
  font-weight:750;
}
.topic-practice-directory{
  display:grid;
  gap:20px;
}
.topic-practice-directory__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.7fr);
  gap:24px;
  align-items:end;
  padding:20px;
  border-radius:8px;
}
.topic-practice-directory__head h2{
  margin:5px 0 5px;
  font-size:24px;
}
.topic-practice-directory__head p{
  margin:0;
  color:var(--text-secondary);
  font-size:14px;
}
.topic-practice-search label{
  display:block;
  margin-bottom:6px;
  color:var(--text-secondary);
  font-size:12px;
  font-weight:800;
}
.topic-practice-search > div{
  display:flex;
  gap:8px;
}
.topic-practice-search input{
  min-width:0;
  min-height:44px;
  flex:1;
  padding-left:42px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E");
  background-position:14px center;
  background-repeat:no-repeat;
  background-size:18px;
}
.topic-practice-search .btn{
  width:auto;
  min-height:44px;
}
.topic-practice-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.topic-practice-card{
  display:flex;
  min-width:0;
  min-height:186px;
  flex-direction:column;
  justify-content:space-between;
  gap:18px;
  padding:16px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.topic-practice-card__heading{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:start;
}
.topic-practice-card__icon{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:8px;
  background:var(--category-icon-bg,rgba(124,58,237,.09));
}
.topic-practice-card__icon .category-icon__glyph{width:21px;height:21px}
.topic-practice-card h3{
  margin:1px 0 5px;
  overflow-wrap:anywhere;
  font-size:15px;
  line-height:1.35;
}
.topic-practice-card p{
  margin:0;
  color:var(--text-secondary);
  font-size:12px;
}
.topic-practice-card p strong{color:var(--primary)}
.topic-practice-card__form{
  display:grid;
  grid-template-columns:minmax(72px,.36fr) minmax(0,1fr);
  gap:8px;
  align-items:end;
}
.topic-practice-card__form label{
  grid-column:1 / -1;
  margin:0;
  color:var(--text-secondary);
  font-size:11px;
  font-weight:800;
}
.topic-practice-card__form input{
  width:100%;
  min-height:40px;
  padding:8px 10px;
  border-radius:7px;
}
.topic-practice-card__form .btn{
  display:inline-flex;
  width:100%;
  min-height:40px;
  padding-inline:12px;
  white-space:nowrap;
}
.topic-practice-card__play{
  width:0;
  height:0;
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
  border-left:8px solid currentColor;
}
.topic-practice-note{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  margin-top:18px;
  padding:18px;
  border:1px solid rgba(37,99,235,.16);
  border-radius:8px;
  background:rgba(37,99,235,.045);
}
.topic-practice-note__icon{
  display:block;
  width:40px;
  height:40px;
  border-radius:50%;
  background-color:rgba(37,99,235,.1);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E");
  background-position:center;
  background-repeat:no-repeat;
  background-size:21px;
}
.topic-practice-note h2{
  margin:0 0 4px;
  font-size:16px;
}
.topic-practice-note p{
  margin:0;
  color:var(--text-secondary);
  font-size:13px;
}
@media (max-width:1100px){
  .topic-practice-hero .public-hero__grid,
  .topic-practice-directory__head{grid-template-columns:1fr}
  .topic-practice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:680px){
  .topic-practice-grid{grid-template-columns:1fr}
  .topic-practice-search > div,
  .topic-practice-note{display:flex;flex-direction:column;align-items:stretch}
  .topic-practice-search .btn,
  .topic-practice-note .btn{width:100%}
  .topic-practice-note__icon{flex:0 0 40px}
}
@media (max-width:390px){
  .topic-practice-stats{grid-template-columns:1fr}
  .topic-practice-card__form{grid-template-columns:1fr}
  .topic-practice-card__form label{grid-column:auto}
}

/* Private practice history */
.practice-history-hero{
  padding-bottom:22px;
}
.practice-history-hero__grid{
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(430px,.96fr);
  gap:18px;
  align-items:stretch;
}
.practice-history-hero__copy,
.practice-history-summary{
  border:1px solid var(--border-light);
  border-radius:8px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow-sm);
}
.practice-history-hero__copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:26px;
}
.practice-history-hero__copy h1{
  max-width:650px;
  margin:8px 0 10px;
  color:var(--text);
  font-size:clamp(34px,3.6vw,50px);
  line-height:1.04;
  letter-spacing:0;
}
.practice-history-hero__copy p{
  max-width:650px;
  margin:0;
  color:var(--text-secondary);
  font-size:16px;
  line-height:1.55;
}
.practice-history-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-top:20px;
}
.practice-history-hero__text-link{
  padding:10px 4px;
  color:var(--primary);
  font-size:14px;
  font-weight:800;
  text-decoration:none;
}
.practice-history-hero__text-link:hover{text-decoration:underline}
.practice-history-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:12px;
}
.practice-history-metric{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:11px;
  align-items:start;
  min-width:0;
  min-height:118px;
  padding:16px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
}
.practice-history-metric > .dashboard-icon{
  width:42px;
  height:42px;
}
.practice-history-metric div{
  display:grid;
  gap:5px;
  min-width:0;
}
.practice-history-metric div > span{
  color:var(--text-secondary);
  font-size:12px;
  font-weight:800;
}
.practice-history-metric strong{
  color:var(--primary);
  font-size:31px;
  line-height:1;
}
.practice-history-metric small{
  color:var(--text-muted);
  font-size:11px;
  font-weight:700;
  line-height:1.35;
}
.practice-history-metric small a{
  color:var(--primary);
  text-decoration:none;
}
.practice-history-metric--average strong{color:#059669}
.practice-history-metric--best strong{color:#d97706}
.practice-history-metric--failed strong{color:#e11d48}

.practice-history-filter{
  margin-bottom:20px;
  padding:18px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.practice-history-filter__head{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-bottom:16px;
}
.practice-history-filter__head > .dashboard-icon{
  flex:0 0 38px;
  width:38px;
  height:38px;
}
.practice-history-filter__head h2{
  margin:0 0 3px;
  font-size:21px;
}
.practice-history-filter__head p{
  margin:0;
  color:var(--text-secondary);
  font-size:14px;
}
.practice-history-filter__form{
  display:grid;
  grid-template-columns:repeat(3,minmax(160px,1fr)) auto;
  gap:12px;
  align-items:end;
}
.practice-history-filter__form label{
  display:block;
  margin-bottom:6px;
  color:var(--text-secondary);
  font-size:12px;
  font-weight:800;
}
.practice-history-filter__actions{
  display:flex;
  gap:8px;
}
.practice-history-filter__actions .btn{
  min-height:44px;
  white-space:nowrap;
}

.practice-result-card{
  display:grid;
  gap:15px;
  padding:18px;
  border:1px solid var(--border-light);
  border-radius:8px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}
.practice-result-card__header{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
}
.practice-result-card__identity{
  min-width:0;
}
.practice-result-card__identity h3{
  margin:8px 0 4px;
  color:var(--text);
  font-size:19px;
  line-height:1.3;
}
.practice-result-card__identity p{
  margin:0;
  color:var(--text-secondary);
  font-size:13px;
  font-weight:700;
}
.practice-status--finished{background:rgba(16,185,129,.12);color:#047857}
.practice-status--incomplete{background:rgba(245,158,11,.15);color:#a0470b}
.practice-status--empty{background:rgba(100,116,139,.12);color:#475569}
.practice-result-card__stats{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:9px;
  margin:0;
}
.practice-result-card__stats > div{
  min-width:0;
  padding:11px 12px;
  border:1px solid var(--border-light);
  border-radius:7px;
  background:#f8fafc;
}
.practice-result-card__stats dt{
  margin:0 0 5px;
  color:var(--text-muted);
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
}
.practice-result-card__stats dd{
  margin:0;
  overflow-wrap:anywhere;
  color:var(--text);
  font-size:14px;
  font-weight:850;
}
.practice-result-card__stats small{
  display:block;
  margin-top:4px;
  color:var(--text-muted);
  font-size:10px;
  font-weight:750;
  line-height:1.3;
}
.practice-result-card__score--good{background:rgba(16,185,129,.07)!important}
.practice-result-card__score--good dd{color:#047857}
.practice-result-card__score--medium{background:rgba(245,158,11,.07)!important}
.practice-result-card__score--medium dd{color:#b45309}
.practice-result-card__score--low{background:rgba(239,68,68,.06)!important}
.practice-result-card__score--low dd{color:#dc2626}
.practice-result-card__score--empty dd{color:#64748b}
.practice-result-card__actions{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding-top:1px;
}
.practice-result-card__primary-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.practice-result-card__actions .btn-danger{
  background:rgba(239,68,68,.06);
  color:#dc2626;
  box-shadow:none;
}
.practice-result-card__actions .btn-danger:hover{
  background:rgba(239,68,68,.12);
}
.practice-history-empty{
  border-radius:8px;
}
.practice-history-empty__actions{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}

@media (max-width:1100px){
  .practice-history-hero__grid{grid-template-columns:1fr}
  .practice-history-filter__form{grid-template-columns:repeat(3,minmax(0,1fr))}
  .practice-history-filter__actions{grid-column:1 / -1}
  .practice-result-card__stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:720px){
  .practice-history-hero{padding-bottom:16px}
  .practice-history-hero__copy{padding:20px}
  .practice-history-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .practice-history-metric{
    grid-template-columns:1fr;
    min-height:132px;
    padding:14px;
  }
  .practice-history-filter__form{grid-template-columns:1fr}
  .practice-history-filter__actions{grid-column:auto}
  .practice-result-card__header,
  .practice-result-card__actions{
    flex-direction:column;
    align-items:stretch;
  }
  .practice-result-card__stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .practice-result-card__primary-actions,
  .practice-result-card__actions form,
  .practice-result-card__actions .btn,
  .practice-history-filter__actions .btn{
    width:100%;
  }
  .practice-history-filter__actions{flex-direction:column}
}
@media (max-width:340px){
  .practice-history-summary,
  .practice-result-card__stats{grid-template-columns:1fr}
  .practice-history-metric{min-height:0}
}

/* Organism process directories: shared 2026 layout */
.organism-process-page{
  display:grid;
  gap:14px;
  padding-bottom:34px;
}
.organism-process-breadcrumbs{margin:2px 0 0}
.organism-process-hero--modern{
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
  gap:28px;
  align-items:center;
  margin:0;
  padding:24px 28px;
  border:1px solid rgba(30,99,255,.15);
  border-radius:8px;
  background:
    linear-gradient(105deg,rgba(255,255,255,.98),rgba(244,248,255,.94)),
    #fff;
  box-shadow:0 12px 30px rgba(15,23,42,.06);
}
.organism-process-page--bolsa .organism-process-hero--modern{
  border-color:rgba(16,185,129,.18);
  background:linear-gradient(105deg,rgba(255,255,255,.98),rgba(240,253,248,.86));
}
.organism-process-hero--modern h1{
  max-width:720px;
  margin:10px 0 8px;
  font-size:clamp(30px,3.2vw,44px);
  line-height:1.04;
}
.organism-process-hero--modern p{
  max-width:690px;
  font-size:15px;
  line-height:1.55;
}
.organism-process-hero--modern .organism-process-hero__actions{margin-top:16px}
.organism-process-hero--modern .organism-process-metrics{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  align-self:center;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.organism-process-hero--modern .organism-process-metrics div,
.organism-process-hero--modern .organism-process-metrics div:last-child{
  display:flex;
  min-width:0;
  min-height:102px;
  padding:16px 12px;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  border:1px solid var(--border);
  border-radius:8px;
  background:rgba(255,255,255,.94);
  text-align:center;
  box-shadow:0 8px 20px rgba(15,23,42,.04);
}
.organism-process-hero--modern .organism-process-metrics dd,
.organism-process-hero--modern .organism-process-metrics div:last-child dd{
  max-width:none;
  font-size:27px;
  line-height:1;
  color:var(--primary);
  text-align:center;
}
.organism-process-page--bolsa .organism-process-hero--modern .organism-process-metrics dd{
  color:#008c78;
}
.organism-process-hero--modern .organism-process-metrics dt{
  font-size:12px;
  line-height:1.25;
  color:var(--text-secondary);
}
.organism-process-page .organism-context-tabs{
  margin:0;
  overflow-x:auto;
  scrollbar-width:thin;
}
.organism-process-summary,
.organism-process-filter-panel{
  margin:0;
  padding:18px 20px;
  border-radius:8px;
}
.organism-process-summary__heading,
.organism-process-filter-panel__heading,
.organism-process-results__heading{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
}
.organism-process-summary h2,
.organism-process-filter-panel h2,
.organism-process-results h2{
  margin:0;
  font-size:18px;
  line-height:1.25;
}
.organism-process-summary p,
.organism-process-filter-panel p,
.organism-process-results__heading p{
  margin:5px 0 0;
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.5;
}
.organism-process-summary__updated{
  flex:0 0 auto;
  text-align:right;
}
.organism-process-summary__updated time{
  display:block;
  color:var(--text);
  font-weight:850;
}
.organism-process-fact-groups{
  display:flex;
  flex-wrap:wrap;
  gap:12px 24px;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--border);
}
.organism-process-fact-group{min-width:180px}
.organism-process-fact-group>strong{
  display:block;
  margin-bottom:7px;
  color:var(--text-secondary);
  font-size:11px;
  text-transform:uppercase;
}
.organism-process-fact-group>div{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.pill--muted{
  color:var(--text-secondary);
  background:#f7f9fc;
}
.organism-process-years{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  margin-top:14px;
  padding-top:13px;
  border-top:1px solid var(--border);
}
.organism-process-years strong{
  margin-right:3px;
  font-size:12px;
  color:var(--text-secondary);
}
.organism-process-years a{
  display:inline-flex;
  min-height:30px;
  padding:5px 11px;
  align-items:center;
  border:1px solid var(--border);
  border-radius:7px;
  color:var(--text-secondary);
  background:#fff;
  font-size:12px;
  font-weight:800;
}
.organism-process-years a:hover,
.organism-process-years a.is-active{
  border-color:rgba(30,99,255,.28);
  color:var(--primary);
  background:rgba(30,99,255,.07);
}
.organism-process-page--bolsa .organism-process-years a:hover,
.organism-process-page--bolsa .organism-process-years a.is-active{
  border-color:rgba(16,185,129,.3);
  color:#007c6b;
  background:rgba(16,185,129,.08);
}
.organism-process-filters{
  display:grid;
  grid-template-columns:minmax(210px,1.35fr) repeat(3,minmax(150px,1fr)) minmax(120px,.7fr) minmax(150px,.8fr) auto;
  gap:12px;
  align-items:end;
  margin-top:15px;
}
.organism-process-filters label,
.organism-process-filter label{
  display:block;
  margin-bottom:6px;
  color:var(--text-secondary);
  font-size:12px;
  font-weight:800;
}
.organism-process-filters input[type="text"],
.organism-process-filters input:not([type]),
.organism-process-filters select{
  width:100%;
  min-height:44px;
}
.organism-process-filter__actions{
  display:flex;
  gap:7px;
}
.organism-process-filter__actions .btn{min-height:44px}
.organism-process-advanced-filters{
  grid-column:1/-1;
  margin-top:2px;
  padding-top:10px;
  border-top:1px solid var(--border);
}
.organism-process-advanced-filters summary{
  width:max-content;
  color:var(--primary);
  font-size:13px;
  font-weight:850;
  cursor:pointer;
}
.organism-process-advanced-filters>div{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:12px;
}
.organism-process-advanced-filters fieldset{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  margin:0;
  padding:12px;
  border:1px solid var(--border);
  border-radius:8px;
}
.organism-process-advanced-filters legend{
  padding:0 5px;
  color:var(--text);
  font-size:12px;
  font-weight:850;
}
.organism-process-advanced-filters fieldset label{
  display:flex;
  gap:6px;
  align-items:center;
  margin:0;
  color:var(--text-secondary);
  font-weight:700;
}
.organism-process-results{scroll-margin-top:90px}
.organism-process-results__heading{margin:4px 0 10px}
.organism-process-results .public-results-list{gap:8px}
.organism-process-results .result-card{padding:14px 16px}
.organism-process-results .result-card__logo{
  width:58px;
  height:58px;
}
.organism-process-results .result-card__title a{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.organism-process-results .result-card__meta .muted{
  display:block;
  margin-top:2px;
}
.organism-process-empty{
  margin:0;
  padding:32px 24px;
  border-radius:8px;
  text-align:center;
}
.organism-process-empty h3{margin:0 0 8px}
.organism-process-empty__actions{
  justify-content:center;
  margin-top:16px;
}

@media (max-width:1180px){
  .organism-process-hero--modern{grid-template-columns:1fr}
  .organism-process-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
  .organism-process-filter__actions{grid-column:auto}
}
@media (max-width:760px){
  .organism-process-page{gap:12px}
  .organism-process-hero--modern{
    grid-template-columns:1fr;
    gap:20px;
    padding:20px;
  }
  .organism-process-hero--modern h1{font-size:32px}
  .organism-process-hero--modern .organism-process-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .organism-process-hero--modern .organism-process-metrics div,
  .organism-process-hero--modern .organism-process-metrics div:last-child{min-height:88px;padding:13px 10px}
  .organism-process-summary,
  .organism-process-filter-panel{padding:16px}
  .organism-process-summary__heading,
  .organism-process-filter-panel__heading{display:block}
  .organism-process-summary__updated{text-align:left}
  .organism-process-fact-groups{display:grid;grid-template-columns:1fr}
  .organism-process-filters{grid-template-columns:1fr}
  .organism-process-filter__actions{display:grid;grid-template-columns:1fr 1fr}
  .organism-process-advanced-filters>div{grid-template-columns:1fr}
  .organism-process-results .result-card{padding:14px}
}
@media (max-width:430px){
  .organism-process-breadcrumbs{margin-top:0}
  .organism-process-hero--modern{padding:17px}
  .organism-process-hero--modern h1{font-size:29px}
  .organism-process-hero--modern .organism-process-hero__actions,
  .organism-process-hero--modern .organism-process-hero__actions .btn{width:100%}
  .organism-process-hero--modern .organism-process-metrics dd,
  .organism-process-hero--modern .organism-process-metrics div:last-child dd{font-size:23px}
  .organism-process-filter__actions{grid-template-columns:1fr}
  .organism-process-summary__heading,
  .organism-process-results__heading{display:block}
}
