/* Mineral Verde: fuente de tokens compartida por Web y Identity. */
:root {
    --mineral-forest: #173f35;
    --mineral-primary: #087f6d;
    --mineral-primary-hover: #066555;
    --mineral-gold: #b59a62;
    --mineral-bg: #f5f4ee;
    --mineral-surface: #fff;
    --mineral-text: #253b35;
    --mineral-muted: #5c6b65;
    --mineral-border: #d8dfd9;
    --mineral-soft: #e8f1ed;
    --mineral-selected: #d8ebe3;
    --mineral-success: #27623e;
    --mineral-success-bg: #e6f2e8;
    --mineral-warning: #77500e;
    --mineral-warning-bg: #fbf1d9;
    --mineral-danger: #a52b38;
    --mineral-danger-bg: #fcebed;
    --mineral-info: #285d79;
    --mineral-info-bg: #eaf2f8;
    --mineral-radius: 10px;
    --mineral-shadow: 0 12px 32px #173f3512;
    --bs-body-bg: var(--mineral-bg);
    --bs-body-color: var(--mineral-text);
    --bs-primary: var(--mineral-primary);
    --bs-primary-rgb: 8, 127, 109;
    --bs-link-color: #076c5d;
    --bs-link-hover-color: #064e42;
    --bs-secondary-color: var(--mineral-muted);
    --bs-border-color: var(--mineral-border);
    --bs-tertiary-bg: #eef2ee;
    --bs-body-font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    --bs-border-radius: .5rem;
}
html { color-scheme: light; }
body { background: var(--mineral-bg); color: var(--mineral-text); font-family: var(--bs-body-font-family); font-size: .9375rem; line-height: 1.6; }
h1, h2, h3, h4, h5, h6 { color: var(--mineral-text); }
h1 { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.8rem, 2.5vw, 2.5rem); font-weight: 700; line-height: 1.2; letter-spacing: -.035em; }
h2 { font-size: 1.35rem; }
a { text-underline-offset: .2em; }
:focus-visible { outline: 3px solid var(--mineral-primary); outline-offset: 3px; }
h1:focus, #contenido:focus { outline: none; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 2100; padding: .75rem 1rem; background: #fff; color: var(--mineral-forest); border: 2px solid currentColor; border-radius: 6px; }
.skip-link:focus { top: .75rem; }
.btn { --bs-btn-border-radius: .45rem; font-weight: 600; padding: .55rem .9rem; min-height: 42px; }
.btn-sm { font-size: .8rem; padding: .35rem .7rem; min-height: 36px; }
.btn-primary { --bs-btn-bg: var(--mineral-primary); --bs-btn-border-color: var(--mineral-primary); --bs-btn-hover-bg: var(--mineral-primary-hover); --bs-btn-hover-border-color: var(--mineral-primary-hover); --bs-btn-active-bg: #065747; --bs-btn-active-border-color: #065747; --bs-btn-disabled-bg: #587c71; --bs-btn-disabled-border-color: #587c71; --bs-btn-focus-shadow-rgb: 8,127,109; }
.btn-outline-primary { --bs-btn-color: #076c5d; --bs-btn-border-color: #087f6d; --bs-btn-hover-bg: #087f6d; --bs-btn-hover-border-color: #087f6d; --bs-btn-active-bg: #066555; --bs-btn-active-border-color: #066555; }
.btn-outline-secondary { --bs-btn-color: var(--mineral-text); --bs-btn-border-color: #aab9b0; --bs-btn-hover-bg: var(--mineral-soft); --bs-btn-hover-color: var(--mineral-text); --bs-btn-hover-border-color: #829b8e; }
.btn-link { color: #076c5d; }
.btn:disabled { cursor: not-allowed; }
.form-control, .form-select { background-color: #fff; border-color: #c9d3cc; color: var(--mineral-text); min-height: 42px; padding-block: .5rem; }
.form-control-sm, .form-select-sm { min-height: 36px; font-size: .85rem; }
.form-control::placeholder { color: #66756e; opacity: 1; }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--mineral-primary); box-shadow: 0 0 0 .2rem #087f6d26; }
.form-check-input:checked { background-color: var(--mineral-primary); border-color: var(--mineral-primary); }
.form-label { font-weight: 600; font-size: .85rem; margin-bottom: .4rem; }
.form-text { color: var(--mineral-muted); }
.card { background: #fff; border-color: var(--mineral-border); border-radius: var(--mineral-radius); box-shadow: 0 3px 12px #173f3505; overflow-wrap: anywhere; }
.card-header { background: #fafbf8; border-color: var(--mineral-border); padding: 1rem 1.25rem; }
.card-body { padding: 1.25rem; }
.table { --bs-table-bg: #fff; --bs-table-color: var(--mineral-text); --bs-table-border-color: #e3e7e2; --bs-table-hover-bg: #f1f6f2; --bs-table-active-bg: var(--mineral-selected); font-size: .875rem; vertical-align: middle; margin-bottom: 0; }
.table > :not(caption) > * > * { padding: .85rem 1rem; }
.table thead th { background: #eeefea; color: #53635a; font-size: .75rem; font-weight: 600; white-space: nowrap; border-bottom: 1px solid var(--mineral-border); }
.table tbody tr:last-child td { border-bottom-width: 0; }
.table-responsive { border: 1px solid var(--mineral-border); border-radius: var(--mineral-radius); background: #fff; }
.list-group-item { --bs-list-group-bg: #fff; --bs-list-group-border-color: var(--mineral-border); padding: 1rem; }
.list-group-item.active { background: var(--mineral-soft); border-color: #adcaba; color: var(--mineral-forest); box-shadow: inset 3px 0 var(--mineral-primary); }
.nav-tabs { border-bottom-color: var(--mineral-border); gap: .5rem; flex-wrap: wrap; }
.nav-tabs .nav-link { border: none; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; color: var(--mineral-muted); padding: .8rem 1rem; min-height: 44px; }
.nav-tabs .nav-link.active { color: #076c5d; border-bottom-color: var(--mineral-primary); font-weight: 600; background: transparent; }
.badge { border-radius: 20px; padding: .45em .7em; line-height: 1.35; font-weight: 600; white-space: normal; }
.bg-success, .text-bg-success { background: var(--mineral-success-bg) !important; color: var(--mineral-success) !important; }
.bg-warning, .text-bg-warning { background: var(--mineral-warning-bg) !important; color: var(--mineral-warning) !important; }
.bg-danger, .text-bg-danger { background: var(--mineral-danger-bg) !important; color: var(--mineral-danger) !important; }
.bg-info, .text-bg-info { background: var(--mineral-info-bg) !important; color: var(--mineral-info) !important; }
.alert { border-radius: var(--mineral-radius); }
.alert-success { --bs-alert-bg: var(--mineral-success-bg); --bs-alert-color: var(--mineral-success); --bs-alert-border-color: #bcd6c0; }
.alert-danger { --bs-alert-bg: var(--mineral-danger-bg); --bs-alert-color: var(--mineral-danger); --bs-alert-border-color: #edc3c8; }
.alert-warning { --bs-alert-bg: var(--mineral-warning-bg); --bs-alert-color: var(--mineral-warning); --bs-alert-border-color: #e2cea0; }
.alert-info { --bs-alert-bg: var(--mineral-info-bg); --bs-alert-color: var(--mineral-info); --bs-alert-border-color: #c4d8e6; }
.invalid { border-color: var(--mineral-danger); }
.validation-message { color: var(--mineral-danger); font-size: .85rem; }
.blazor-error-boundary { padding: 1rem; background: var(--mineral-danger-bg); color: var(--mineral-danger); }
.blazor-error-boundary::after { content: 'No se pudo cargar esta sección. Recarga la página para reintentar.'; }
.page-heading { margin-bottom: 1.75rem; }
.breadcrumb-nav { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; font-size: .75rem; color: var(--mineral-muted); margin-bottom: 1.2rem; }
.breadcrumb-nav a { color: var(--mineral-muted); text-decoration: none; }
.breadcrumb-nav [aria-current] { color: var(--mineral-text); }
.page-heading-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.page-heading h1 { margin: 0 0 .4rem; }
.page-heading p { color: var(--mineral-muted); margin: 0; max-width: 75ch; }
.page-heading.sin-acceso ~ * { display: none !important; }
.breadcrumb-nav a:hover { color: var(--mineral-primary); }
.page-actions { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.filter-bar { display: flex; gap: .6rem; flex-wrap: wrap; align-items: end; padding: 1rem; margin-bottom: 1rem; background: #fff; border: 1px solid var(--mineral-border); border-radius: var(--mineral-radius); }
.filter-bar .search-field { flex: 1; min-width: min(220px, 100%); }
.view-state { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 1.5rem; border: 1px solid var(--mineral-border); border-radius: var(--mineral-radius); background: #fff; color: var(--mineral-muted); }
.view-state strong { color: var(--mineral-text); }
.view-state p { margin: .25rem 0 0; }
.state-symbol { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--mineral-soft); color: var(--mineral-forest); font-size: 1.5rem; }
.view-state-error { border-color: #edc3c8; background: var(--mineral-danger-bg); }
.pagination-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; font-size: .85rem; color: var(--mineral-muted); }
.form-section { border: none; padding: 0; margin: 0 0 1.25rem; }
.form-section legend { font-size: .9rem; font-weight: 700; border-bottom: 1px solid var(--mineral-border); padding-bottom: .6rem; margin-bottom: 1rem; }
.form-actions { border-top: 1px solid var(--mineral-border); padding-top: 1rem; display: flex; gap: .6rem; flex-wrap: wrap; }
.session-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--mineral-soft); color: var(--mineral-forest); font-weight: 700; }
.home-intro { padding: clamp(1.5rem, 4vw, 3rem); background: var(--mineral-forest); border-radius: 12px; color: #e0ece6; margin-bottom: 1.75rem; border-top: 3px solid var(--mineral-gold); }
.home-intro h1 { color: #fff; max-width: 650px; font-size: clamp(2rem, 3.2vw, 3rem); }
.eyebrow { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 1rem; }
.home-intro .eyebrow { color: #e5ce99; }
.home-intro p { max-width: 600px; }
.shortcut { display: block; height: 100%; padding: 1.5rem; color: var(--mineral-text); text-decoration: none; border: 1px solid var(--mineral-border); border-radius: var(--mineral-radius); background: #fff; }
.shortcut:hover { border-color: var(--mineral-primary); box-shadow: var(--mineral-shadow); color: var(--mineral-text); }
.shortcut h3 { font-size: 1.1rem; }
.shortcut p { color: var(--mineral-muted); margin-bottom: 1.25rem; font-size: .875rem; }
.shortcut span { color: #076c5d; font-size: .85rem; font-weight: 600; }
@media (max-width: 575.98px) {
    .btn, .btn-sm, .form-control, .form-select { min-height: 44px; }
    .page-heading { margin-bottom: 1.25rem; }
    .table > :not(caption) > * > * { padding: .65rem .75rem; }
    .input-group { flex-wrap: wrap; }
    .filter-bar { padding: .8rem; }
    .page-actions { width: 100%; }
    .session-avatar { display: none; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }
.navigation-icon { flex-shrink: 0; }
.permission-group { border: 1px solid var(--mineral-border); border-radius: 8px; margin-top: .65rem; background: #fff; }
.permission-group summary { padding: .8rem 1rem; cursor: pointer; font-weight: 600; background: #f7f9f5; min-height: 44px; }
.permission-group .form-check { padding-top: .4rem; padding-bottom: .4rem; }

/* ── Tokens complementarios (escala de espacio, tipografía, estados interactivos) ─────────────── */
:root {
    --mineral-forest-2: #1e4a3f;          /* superficie del menú al pasar o abierto */
    --mineral-gold-strong: #8a6f37;       /* dorado con contraste para texto (≥ 4.5:1 sobre blanco) */
    --mineral-gold-soft: #f3ecdc;
    --mineral-primary-soft: #e3f2ee;
    --mineral-text-2: #4f5f58;            /* texto secundario (≥ 6:1 sobre blanco) */
    --mineral-disabled: #9aa7a1;
    --mineral-overlay: #12302a8c;
    --mineral-shadow-sm: 0 1px 2px #173f3510, 0 2px 8px #173f350a;
    --mineral-shadow-lg: 0 24px 64px #12302a33;
    --mineral-radius-sm: 8px;
    --mineral-radius-lg: 14px;
    --esp-1: .25rem; --esp-2: .5rem; --esp-3: .75rem; --esp-4: 1rem; --esp-5: 1.5rem; --esp-6: 2rem;
    --fuente-marca: Georgia, 'Times New Roman', serif;
}

.icono { flex-shrink: 0; vertical-align: -.2em; }
.btn .icono { margin-right: .35rem; }
.btn-icono { display: inline-grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: var(--mineral-radius-sm); background: transparent; color: var(--mineral-text-2); }
.btn-icono:hover { background: var(--mineral-soft); color: var(--mineral-text); }

/* Estados con icono + texto (no solo color). */
.estado { display: inline-flex; align-items: center; gap: .35rem; padding: .25rem .65rem .25rem .5rem; border-radius: 999px; font-size: .78rem; font-weight: 600; line-height: 1.35; white-space: nowrap; border: 1px solid transparent; }
.estado-exito { background: var(--mineral-success-bg); color: var(--mineral-success); border-color: #c6dfcc; }
.estado-advertencia, .estado-pendiente { background: var(--mineral-warning-bg); color: var(--mineral-warning); border-color: #ead7a8; }
.estado-peligro, .estado-pausa { background: var(--mineral-danger-bg); color: var(--mineral-danger); border-color: #efc7cc; }
.estado-info { background: var(--mineral-info-bg); color: var(--mineral-info); border-color: #c9dbe8; }
.estado-activo { background: var(--mineral-primary-soft); color: #075f52; border-color: #b9ddd4; }
.estado-neutro { background: #eef0ec; color: var(--mineral-text-2); border-color: #dde2dc; }

/* Insignias heredadas: el mismo icono por tono en las pantallas que aún usan .badge. */
.badge:is([class*="text-bg-"], .bg-success, .bg-warning, .bg-danger, .bg-info, .bg-primary, .bg-secondary, .bg-dark, .bg-light)::before { content: ''; display: inline-block; width: .85em; height: .85em; margin-right: .3em; vertical-align: -.1em; background: currentColor;
    -webkit-mask: var(--icono-badge) center / contain no-repeat; mask: var(--icono-badge) center / contain no-repeat; }
.badge.text-bg-success, .badge.bg-success { --icono-badge: 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.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4.5 4.5L19 7'/%3E%3C/svg%3E"); }
.badge.text-bg-warning, .badge.bg-warning { --icono-badge: 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.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.badge.text-bg-danger, .badge.bg-danger { --icono-badge: 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.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 2 20h20L12 3Zm0 6v5m0 3v.01'/%3E%3C/svg%3E"); }
.badge.text-bg-info, .badge.text-bg-primary, .badge.bg-info, .badge.bg-primary { --icono-badge: 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.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6m0-9v.01'/%3E%3C/svg%3E"); }
.badge.text-bg-secondary, .badge.text-bg-light, .badge.text-bg-dark, .badge.bg-secondary, .badge.bg-dark, .badge.bg-light { --icono-badge: 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.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12h8'/%3E%3C/svg%3E"); }
.badge.text-bg-primary { background: var(--mineral-primary-soft) !important; color: #075f52 !important; }
.badge.text-bg-secondary { background: #eef0ec !important; color: var(--mineral-text-2) !important; }
.badge.rounded-pill.text-bg-danger::before { display: none; }

/* Indicadores de resumen (también filtros rápidos). */
.indicadores { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: var(--esp-4); margin-bottom: var(--esp-5); }
.indicador { display: flex; align-items: center; gap: var(--esp-4); padding: 1.1rem 1.25rem; background: #fff; border: 1px solid var(--mineral-border); border-radius: var(--mineral-radius); box-shadow: var(--mineral-shadow-sm); text-align: left; color: var(--mineral-text); width: 100%; }
button.indicador:hover { border-color: #9fc4b8; }
button.indicador.seleccionado { border-color: var(--mineral-primary); box-shadow: inset 0 0 0 1px var(--mineral-primary), var(--mineral-shadow-sm); }
.indicador-icono { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--mineral-primary-soft); color: var(--mineral-primary); flex-shrink: 0; }
.indicador-mineral .indicador-icono { background: var(--mineral-gold-soft); color: var(--mineral-gold-strong); }
.indicador-peligro .indicador-icono { background: var(--mineral-danger-bg); color: var(--mineral-danger); }
.indicador-info .indicador-icono { background: var(--mineral-info-bg); color: var(--mineral-info); }
.indicador-texto { display: flex; flex-direction: column; line-height: 1.2; }
.indicador-texto strong { font-size: 1.85rem; font-weight: 700; letter-spacing: -.02em; }
.indicador-texto span { color: var(--mineral-text-2); font-size: .875rem; margin-top: .2rem; }

/* Barra de filtros. */
.filter-bar .form-control, .filter-bar .form-select { width: auto; }
.filter-bar .search-field { position: relative; }
.filter-bar .search-field .icono { position: absolute; left: .75rem; top: 50%; transform: translateY(-50%); color: var(--mineral-text-2); pointer-events: none; }
.filter-bar .search-field input { width: 100%; }
.filter-bar .search-field .icono ~ input { padding-left: 2.3rem; }
.limpiar-filtros { margin-left: auto; }
.resultado-filtros { font-size: .8rem; color: var(--mineral-text-2); margin: -.25rem 0 .75rem; }

/* Tabla de trabajo. */
.tabla-trabajo .principal { font-weight: 600; color: var(--mineral-text); }
.tabla-trabajo .secundario { display: block; font-size: .78rem; color: var(--mineral-text-2); }
.tabla-trabajo tr.fila-alerta td:first-child { box-shadow: inset 3px 0 var(--mineral-danger); }
.tabla-trabajo tbody tr { cursor: default; }
.persona-celda { display: inline-flex; align-items: center; gap: .6rem; }
.persona-celda small { display: block; color: var(--mineral-text-2); font-size: .75rem; }
.iniciales { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #e8ece7; color: var(--mineral-forest); font-size: .75rem; font-weight: 700; flex-shrink: 0; }

/* Asistente por pasos. */
.pasos { display: flex; list-style: none; padding: 0; margin: 0 0 var(--esp-5); gap: var(--esp-2); }
.paso { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .4rem; position: relative; font-size: .8rem; color: var(--mineral-text-2); text-align: center; }
.paso:not(:first-child)::before { content: ''; position: absolute; top: 17px; right: calc(50% + 24px); left: calc(-50% + 24px); border-top: 1px solid var(--mineral-border); }
.paso-numero { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--mineral-border); background: #fff; font-weight: 600; }
.paso-actual { color: var(--mineral-forest); font-weight: 600; }
.paso-actual .paso-numero { background: var(--mineral-primary); border-color: var(--mineral-primary); color: #fff; }
.paso-hecho .paso-numero { background: var(--mineral-primary-soft); border-color: #9fcfc3; color: var(--mineral-primary); }
.paso-hecho:not(:first-child)::before, .paso-actual:not(:first-child)::before { border-top-color: var(--mineral-primary); }

/* Modal (dialog nativo). */
.dialogo { padding: 0; border: 0; border-radius: var(--mineral-radius-lg); box-shadow: var(--mineral-shadow-lg); color: var(--mineral-text); width: min(560px, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); overflow: hidden; }
.dialogo[open] { display: flex; flex-direction: column; }
.dialogo-lg { width: min(760px, calc(100vw - 2rem)); }
.dialogo::backdrop { background: var(--mineral-overlay); }
.dialogo-cabecera { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.5rem 1.5rem 1rem; }
.dialogo-titulo { font-family: var(--fuente-marca); font-size: 1.55rem; font-weight: 700; letter-spacing: -.02em; margin: 0; }
.dialogo-titulo:focus { outline: none; }
.dialogo-cabecera p { margin: .35rem 0 0; color: var(--mineral-text-2); }
.dialogo-cuerpo { padding: 1rem 1.5rem; overflow-y: auto; flex: 1; }
.dialogo-pie { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: flex-end; padding: 1rem 1.5rem 1.25rem; border-top: 1px solid var(--mineral-border); background: #fbfbf8; }
.dialogo-pie .separador { margin-right: auto; }
.campo-obligatorio::after { content: ' *'; color: var(--mineral-danger); }
.campo-opcional { font-weight: 400; color: var(--mineral-text-2); }
.campo-ayuda { font-size: .78rem; color: var(--mineral-text-2); margin-top: .3rem; }
.campo-error { display: block; font-size: .8rem; color: var(--mineral-danger); margin-top: .3rem; }
.resumen-revision { display: grid; grid-template-columns: max-content 1fr; gap: .45rem 1.25rem; margin: 0; font-size: .9rem; }
.resumen-revision dt { color: var(--mineral-text-2); font-weight: 500; }
.resumen-revision dd { margin: 0; }
details.avanzado { border: 1px solid var(--mineral-border); border-radius: var(--mineral-radius-sm); }
details.avanzado > summary { padding: .7rem 1rem; cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; gap: .5rem; }
details.avanzado > div { padding: 0 1rem 1rem; }

/* Ficha de detalle. */
.ficha { background: #fff; border: 1px solid var(--mineral-border); border-radius: var(--mineral-radius); box-shadow: var(--mineral-shadow-sm); padding: 1.5rem; }
.ficha-cabecera { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-bottom: .5rem; }
.ficha-cabecera h2 { margin: 0; font-size: 1.3rem; }
.ficha-meta { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; color: var(--mineral-text-2); font-size: .85rem; margin-bottom: 1rem; }
.ficha-meta span { display: inline-flex; align-items: center; gap: .35rem; }
.barra-acciones { display: flex; flex-wrap: wrap; gap: .6rem; padding-top: 1rem; margin-top: 1rem; border-top: 1px solid var(--mineral-border); align-items: center; }
.motivo-bloqueo { font-size: .85rem; color: var(--mineral-text-2); display: inline-flex; align-items: center; gap: .35rem; }

@media (max-width: 575.98px) {
    .dialogo, .dialogo-lg { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; border-radius: 0; margin: 0; }
    .dialogo-cabecera { padding: 1rem; }
    .dialogo-cuerpo { padding: .75rem 1rem; }
    .dialogo-pie { padding: .75rem 1rem; }
    .dialogo-pie .btn { flex: 1; }
    .pasos .paso-nombre { font-size: .72rem; }
    .indicadores { grid-template-columns: repeat(2, 1fr); gap: .6rem; }
    .indicador { padding: .8rem; gap: .6rem; }
    .indicador-icono { width: 38px; height: 38px; }
    .indicador-texto strong { font-size: 1.4rem; }
    .filter-bar .form-select, .filter-bar .form-control { width: 100%; }
    .limpiar-filtros { margin-left: 0; }
    .resumen-revision { grid-template-columns: 1fr; gap: .1rem; }
    .resumen-revision dd { margin-bottom: .5rem; }
    .ficha { padding: 1rem; }
}

/* Listas de verificación (condiciones, personas) y línea de tiempo. */
.lista-verificacion { list-style: none; margin: 0; padding: 0; border: 1px solid var(--mineral-border); border-radius: var(--mineral-radius); overflow: hidden; }
.lista-verificacion > li { padding: .75rem 1rem; border-bottom: 1px solid #e8ebe6; background: #fff; }
.lista-verificacion > li:last-child { border-bottom: 0; }
.linea-tiempo { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; list-style: none; padding: .6rem 1rem; margin: 0 0 1rem; background: #f7f8f4; border-radius: var(--mineral-radius-sm); font-size: .85rem; color: var(--mineral-text-2); }
.linea-tiempo li { display: inline-flex; gap: .35rem; align-items: center; }
.linea-tiempo li::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--mineral-primary); }
.linea-tiempo strong { color: var(--mineral-text); font-weight: 600; }
.lista-chips { list-style: none; display: flex; flex-direction: column; gap: .4rem; margin: .6rem 0 0; padding: 0; }
.lista-chips li { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .35rem .5rem .35rem .6rem; border: 1px solid var(--mineral-border); border-radius: var(--mineral-radius-sm); background: #fbfbf8; }
.tabla-trabajo .celda-ancha { min-width: 14rem; }
.tabla-trabajo td { overflow-wrap: normal; }
.etiqueta-control { display: inline-block; padding: .05rem .45rem; margin-right: .25rem; border: 1px solid var(--mineral-border); border-radius: 6px; background: #f7f8f4; font-size: .72rem; font-weight: 600; color: var(--mineral-text-2); }
.panel-pestana:focus-visible { outline-offset: 6px; }

/* El texto solo para lectores de pantalla (position:absolute) no debe escapar del contenedor con desplazamiento. */
.table-responsive { position: relative; }

/* Tablas que en celular se leen como tarjetas: cada fila es un bloque; las columnas ocultas siguen ocultas. */
@media (max-width: 575.98px) {
    .tarjetas-movil { border: 0; background: transparent; }
    .tarjetas-movil table, .tarjetas-movil tbody { display: block; }
    .tarjetas-movil thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .tarjetas-movil tbody tr { display: grid; grid-template-columns: 1fr; gap: .35rem .75rem; padding: .9rem 1rem; margin-bottom: .75rem; background: #fff; border: 1px solid var(--mineral-border); border-radius: var(--mineral-radius); box-shadow: var(--mineral-shadow-sm); }
    .tarjetas-movil tbody td { display: block; padding: 0 !important; border: 0; min-width: 0 !important; }
    .tarjetas-movil tbody td.d-none { display: none !important; }
    .tarjetas-movil tbody td.text-end { text-align: left !important; }
    .tarjetas-movil tbody td:last-child:not(:first-child) { display: flex; flex-wrap: wrap; gap: .4rem; padding-top: .5rem !important; border-top: 1px solid #e8ebe6; }
    .tarjetas-movil tbody td:last-child:empty { display: none; }
    .tarjetas-movil tbody tr.fila-alerta { border-left: 4px solid var(--mineral-danger); }
    .tarjetas-movil tbody tr.fila-alerta td:first-child { box-shadow: none; }
    .tarjetas-movil tbody td[colspan] { grid-column: 1 / -1 !important; grid-row: auto !important; }
    .tarjetas-movil tbody td .table-responsive { border: 0; }
}
@media (min-width: 1200px) { .panel-lateral > .card, .panel-lateral > .view-state { position: sticky; top: 88px; max-height: calc(100dvh - 104px); overflow-y: auto; } }
.inicio-dominio { display: flex; align-items: center; gap: .6rem; font-size: 1rem; font-weight: 600; color: var(--mineral-forest); margin-bottom: .9rem; }
.shortcut span { display: inline-flex; align-items: center; gap: .3rem; }
.badge { font-size: .76rem; }
.etiqueta-movil { display: none; }
@media (max-width: 575.98px) { .tarjetas-movil .etiqueta-movil { display: inline-block; min-width: 6.5rem; color: var(--mineral-text-2); font-size: .8rem; } }
/* Pulido 19/10: enlaces de fila sobrios, permisos legibles, insignias oscuras con el tono neutro. */
.table .btn-link.p-0 { font-weight: 600; text-decoration: none; }
.table .btn-link.p-0:hover, .table .btn-link.p-0:focus-visible { text-decoration: underline; }
.badge.bg-dark { background: #e6e9e5 !important; color: var(--mineral-text) !important; }
.lista-permisos { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; font-size: .875rem; }
.lista-permisos li { display: flex; gap: .45rem; align-items: baseline; }
.lista-permisos .icono { color: var(--mineral-primary); }
/* Filtros segmentados: superficie blanca, selección en verde suave (no un bloque sólido). */
.btn-group[role="group"] > .btn-outline-primary, .btn-group[role="group"] > .btn-primary { --bs-btn-padding-y: .35rem; --bs-btn-padding-x: .85rem; font-size: .82rem; min-height: 36px; }
.btn-group[role="group"] > .btn-outline-primary { background: #fff; border-color: var(--mineral-border); color: var(--mineral-text-2); }
.btn-group[role="group"] > .btn-outline-primary:hover { background: var(--mineral-soft); color: var(--mineral-text); border-color: var(--mineral-border); }
.btn-group[role="group"] > .btn-primary { background: var(--mineral-primary-soft); border-color: #9fcfc3; color: #075f52; box-shadow: none; z-index: 1; }
/* Alertas: estado | contenido | acción, siempre en la misma posición. */
.alerta-fila { display: grid; grid-template-columns: 11rem 1fr auto; gap: .5rem 1rem; align-items: start; }
.alerta-fila > .badge { justify-self: start; }
@media (max-width: 575.98px) { .alerta-fila { grid-template-columns: 1fr auto; } .alerta-fila > div { grid-column: 1 / -1; } }
/* Barras de desplazamiento finas y discretas (modales, tablas y página). */
html, .dialogo-cuerpo, .table-responsive, .panel-lateral > .card { scrollbar-width: thin; scrollbar-color: #c3cdc6 transparent; }
.dialogo-cuerpo { scrollbar-color: transparent transparent; }
.dialogo-cuerpo:hover, .dialogo-cuerpo:focus-within { scrollbar-color: #c3cdc6 transparent; }
