:root {
  --bg: #f1f5f9;
  --surface: #ffffff;
  --surface-2: #f8fafc;
  --border: #cbd5e1;
  --text: #1e293b;
  --text-muted: #64748b;
  --accent: #2563eb;
  --accent-hover: #1d4ed8;
  --success: #02a45a;
  --warning: #d97706;
  --danger: #dc2626;
  --shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08);
  --radius: 10px;
  --font: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --mono: 'JetBrains Mono', monospace;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  line-height: 1.5;
}

/* Portal de autenticación */
body.auth-required {
  overflow: hidden;
}

.auth-portal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
  background:
    radial-gradient(circle at 14% 10%, rgba(255, 255, 255, 0.9), transparent 30rem),
    radial-gradient(circle at 88% 88%, rgba(148, 163, 184, 0.2), transparent 34rem),
    #e5e7eb;
  overflow-y: auto;
}

.auth-portal[hidden] {
  display: none;
}

.auth-portal-shell {
  width: min(100%, 1040px);
  min-height: 650px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(390px, 0.95fr);
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.45);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 32px 90px rgba(15, 23, 42, 0.18);
}

.auth-portal-brand {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(2.5rem, 5vw, 4.5rem);
  color: var(--orizon-text);
  background:
    linear-gradient(145deg, rgba(4, 120, 87, 0.1), transparent 38%),
    var(--orizon-surface);
  isolation: isolate;
  overflow: hidden;
}

.auth-portal-brand::before,
.auth-portal-brand::after {
  content: "";
  position: absolute;
  z-index: -1;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 50%;
}

.auth-portal-brand::before {
  width: 360px;
  height: 360px;
  right: -190px;
  top: -130px;
}

.auth-portal-brand::after {
  width: 270px;
  height: 270px;
  left: -145px;
  bottom: -120px;
}

.auth-brand-mark {
  width: 52px;
  height: 52px;
  display: inline-grid;
  place-items: center;
  margin-bottom: 3rem;
  border-radius: 14px;
  background: #f8fafc;
  color: #202733;
  font-size: 1.35rem;
  font-weight: 700;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.22);
}

.auth-eyebrow {
  display: block;
  margin-bottom: 0.8rem;
  color: #94a3b8;
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.auth-portal-brand h1 {
  max-width: 490px;
  margin: 0 0 1.25rem;
  color: #fff;
  font-size: clamp(2.15rem, 4.2vw, 3.55rem);
  line-height: 1.06;
  letter-spacing: -0.045em;
}

.auth-portal-brand p {
  max-width: 460px;
  color: #cbd5e1;
  font-size: 1rem;
  line-height: 1.7;
}

.auth-trust-list {
  display: grid;
  gap: 0.8rem;
  margin: 2.5rem 0;
  list-style: none;
  color: #e2e8f0;
  font-size: 0.88rem;
}

.auth-trust-list li {
  display: flex;
  align-items: center;
  gap: 0.7rem;
}

.auth-trust-list li span {
  width: 23px;
  height: 23px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 0.72rem;
}

.auth-portal-brand small {
  color: #94a3b8;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
}

.auth-portal-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2.25rem, 5vw, 4.8rem);
  background: #fff;
}

.auth-mobile-brand {
  display: none;
}

.auth-panel-heading {
  margin-bottom: 2rem;
}

.auth-panel-heading .auth-eyebrow {
  color: #64748b;
}

.auth-panel-heading h2 {
  margin: 0 0 0.55rem;
  color: #111827;
  font-size: clamp(1.8rem, 3vw, 2.35rem);
  line-height: 1.15;
  letter-spacing: -0.035em;
}

.auth-panel-heading p {
  color: #6b7280;
  font-size: 0.92rem;
}

.auth-login-form {
  display: grid;
  gap: 1.25rem;
}

.auth-field {
  display: grid;
  gap: 0.5rem;
  color: #374151;
  font-size: 0.82rem;
  font-weight: 600;
}

.auth-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.auth-input-icon {
  position: absolute;
  left: 1rem;
  color: #9ca3af;
  font: 600 0.82rem var(--font);
  pointer-events: none;
}

.auth-lock-icon {
  font-size: 0.48rem;
}

.auth-input-wrap input {
  width: 100%;
  min-height: 52px;
  padding: 0.75rem 3.6rem 0.75rem 2.8rem;
  border: 1px solid #d1d5db;
  border-radius: 10px;
  background: #f9fafb;
  color: #111827;
  font: 500 0.92rem var(--font);
  outline: none;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.auth-input-wrap input::placeholder {
  color: #9ca3af;
  font-weight: 400;
}

.auth-input-wrap input:focus {
  border-color: #4b5563;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(75, 85, 99, 0.1);
}

.auth-password-toggle {
  position: absolute;
  right: 0.85rem;
  border: 0;
  background: transparent;
  color: #4b5563;
  font: 700 0.72rem var(--font);
  cursor: pointer;
}

.auth-form-options,
.auth-panel-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.auth-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #6b7280;
  font-size: 0.78rem;
  cursor: pointer;
}

.auth-check input {
  width: 16px;
  height: 16px;
  accent-color: #374151;
}

.auth-text-button {
  border: 0;
  background: none;
  color: #374151;
  font: 700 0.78rem var(--font);
  cursor: pointer;
}

.auth-text-button:hover {
  text-decoration: underline;
}

.auth-login-error,
.auth-help-message {
  margin: 0;
  padding: 0.75rem 0.85rem;
  border-radius: 8px;
  font-size: 0.79rem;
}

.auth-login-error {
  border: 1px solid #fecaca;
  background: #fef2f2;
  color: #b91c1c;
}

.auth-help-message {
  border: 1px solid #d1d5db;
  background: #f9fafb;
  color: #4b5563;
}

.auth-submit-btn {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.8rem 1.1rem 0.8rem 1.25rem;
  border: 1px solid #111827;
  border-radius: 10px;
  background: var(--orizon-green);
  color: #fff;
  font: 700 0.9rem var(--font);
  cursor: pointer;
  box-shadow: 0 9px 22px rgba(31, 41, 55, 0.16);
  transition: transform 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.auth-submit-btn:hover {
  transform: translateY(-1px);
  background: var(--orizon-green-hover);
  box-shadow: 0 12px 28px rgba(31, 41, 55, 0.22);
}

.auth-submit-btn:disabled {
  cursor: wait;
  opacity: 0.68;
  transform: none;
}

.auth-upload-entry {
  margin-top: 1.25rem;
  padding-top: 1.15rem;
  border-top: 1px solid #e5e7eb;
}

.auth-upload-entry-label {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6b7280;
}

.auth-upload-entry-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.85rem 1rem;
  border: 1px solid #d1d5db;
  border-radius: 12px;
  background: #f9fafb;
  color: inherit;
  text-decoration: none;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.auth-upload-entry-link:hover {
  border-color: color-mix(in srgb, var(--orizon-green, #0f766e) 55%, #d1d5db);
  background: color-mix(in srgb, var(--orizon-green, #0f766e) 7%, #fff);
}

.auth-upload-entry-link strong {
  display: block;
  font-size: 0.92rem;
  color: #111827;
}

.auth-upload-entry-link small {
  display: block;
  margin-top: 0.2rem;
  color: #6b7280;
  font-size: 0.78rem;
  font-weight: 500;
}

.auth-upload-entry-link > span:last-child {
  color: var(--orizon-green, #0f766e);
  font-weight: 700;
  flex-shrink: 0;
}

.auth-panel-footer {
  justify-content: center;
  margin-top: 1.5rem;
  color: #9ca3af;
  font-size: 0.7rem;
}

@media (max-width: 820px) {
  .auth-portal {
    align-items: start;
    padding: 1rem;
  }

  .auth-portal-shell {
    min-height: auto;
    grid-template-columns: 1fr;
  }

  .auth-portal-brand {
    display: none;
  }

  .auth-portal-panel {
    min-height: calc(100vh - 2rem);
    padding: 2rem clamp(1.3rem, 7vw, 3rem);
  }

  .auth-mobile-brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 3rem;
    color: #111827;
  }

  .auth-mobile-brand .auth-brand-mark {
    width: 38px;
    height: 38px;
    margin: 0;
    background: var(--orizon-green);
    color: #fff;
    border-radius: 10px;
    font-size: 1rem;
  }
}

/* Header */
.header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 2rem;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow);
  position: sticky;
  top: 0;
  z-index: 100;
  flex-wrap: wrap;
  gap: 1rem;
}

.header-brand {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.logo {
  background: linear-gradient(135deg, var(--accent), #6366f1);
  color: #fff;
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
}

.header h1 {
  font-size: 1.25rem;
  font-weight: 600;
}

.subtitle {
  font-size: 0.8rem;
  color: var(--text-muted);
}

.nav {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
  align-items: flex-end;
}

.nav-group {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.25rem 0.35rem 0.35rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface-2) 80%, transparent);
}

.nav-group.is-active {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--border));
  background: color-mix(in srgb, var(--accent) 8%, var(--surface-2));
}

.nav-group-label {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding: 0 0.35rem;
}

.nav-group-btns {
  display: flex;
  gap: 0.25rem;
  flex-wrap: wrap;
}

.nav-btn {
  background: var(--surface-2);
  border: 1px solid var(--border);
  color: var(--text-muted);
  padding: 0.45rem 0.9rem;
  border-radius: 8px;
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.85rem;
  transition: all 0.15s;
}

.nav-btn:hover { border-color: var(--accent); color: var(--accent); background: #eff6ff; }
.nav-btn.active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.subnav {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--border);
}

.subnav-btn {
  background: transparent;
  border: 1px solid transparent;
  color: var(--text-muted);
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.82rem;
}

.subnav-btn:hover { color: var(--accent); border-color: var(--border); }
.subnav-btn.active {
  color: var(--accent);
  border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  font-weight: 600;
}

.qms-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.75rem 0 1rem;
}
.qms-tab {
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted, #64748b);
  border-radius: 8px;
  padding: 0.4rem 0.75rem;
  cursor: pointer;
  font: inherit;
  font-size: 0.86rem;
}
.qms-tab:hover { color: var(--accent); border-color: var(--border); }
.qms-tab.active {
  color: var(--accent);
  border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  font-weight: 600;
}
.qms-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 0.75rem;
}
.qms-toolbar input,
.qms-toolbar select {
  min-width: 12rem;
}

.guide {
  margin-bottom: 1.25rem;
  padding: 1rem 1.15rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 6%, transparent), transparent 55%),
    var(--surface);
}

.guide.hidden { display: none; }

.guide-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.guide-header h3 { margin: 0 0 0.25rem; }

.guide-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}

.guide-step {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.55rem 0.65rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface-2);
}

.guide-step.is-done {
  border-color: color-mix(in srgb, #02A45A 35%, var(--border));
  background: color-mix(in srgb, #02A45A 8%, var(--surface-2));
}

.guide-step.is-optional .guide-idx {
  opacity: 0.7;
}

.guide-idx {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 0.8rem;
  font-weight: 700;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text-muted);
}

.guide-step.is-done .guide-idx {
  background: #02A45A;
  border-color: #02A45A;
  color: #fff;
}

.guide-body strong { display: block; font-size: 0.92rem; }
.guide-body p { margin: 0.15rem 0 0; font-size: 0.82rem; color: var(--text-muted); }
.guide-body em { font-style: normal; font-weight: 500; color: var(--text-muted); font-size: 0.8rem; }

.guide-progress-row {
  padding: 0.35rem 0.25rem 0;
}

@media (max-width: 720px) {
  .guide-step {
    grid-template-columns: auto 1fr;
  }
  .guide-step .guide-go {
    grid-column: 2;
    justify-self: start;
  }
}

/* Main */
.main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(1rem, 2vw, 2rem);
}

.panel-assets.active ~ * { }
.main:has(.panel-assets.active) { max-width: none; }

.panel-assets .badge {
  display: inline-block;
  background: #e2e8f0;
  border: 1px solid #cbd5e1;
  color: var(--text);
  padding: 0.1rem 0.45rem;
  border-radius: 20px;
  font-size: 0.7rem;
}

.panel { display: none; animation: fadeIn 0.2s ease; }
.panel.active { display: block; }

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

.hero {
  margin-bottom: 2rem;
}

.hero h2 {
  font-size: 1.75rem;
  margin-bottom: 0.5rem;
}

.hero p { color: var(--text-muted); max-width: 600px; }

/* Inicio: vista global compacta */
.home-overview-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.8rem;
}

.home-overview-header h2,
.home-overview-header p,
.home-command-card h3,
.home-command-card h4 {
  margin-top: 0;
}

.home-overview-header h2 { margin-bottom: 0.2rem; }
.home-overview-header p { margin: 0; color: var(--text-muted); }

.home-overview-status {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
  color: var(--text-muted);
  font-size: 0.8rem;
}

.home-overview-status .status-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  background: var(--success, #16a34a);
}

.home-kpi-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 0.8rem;
}

.home-kpi-card {
  min-width: 0;
  min-height: 72px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.15rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  color: inherit;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.home-kpi-card:hover {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 5%, var(--surface));
}

.home-kpi-warn { border-left: 3px solid #d97706; }
.home-kpi-danger { border-left: 3px solid var(--danger, #dc2626); }
.home-kpi-value { font: 700 1.35rem/1 var(--mono); }
.home-kpi-label { color: var(--text-muted); font-size: 0.76rem; }

.home-command-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
  grid-template-rows: minmax(250px, auto) minmax(230px, auto);
  gap: 0.8rem;
  align-items: stretch;
}

.home-command-card {
  min-width: 0;
  margin: 0;
  padding: 0.9rem;
  overflow: hidden;
}

.home-command-card > .row-between { gap: 0.75rem; }
.home-command-card h3 { margin-bottom: 0.2rem; }
.home-command-card h4 { font-size: 0.82rem; margin-bottom: 0.45rem; }
.home-command-card .hint { margin-top: 0; }

.home-command-card .audit-doc-dashboard-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.4rem;
  margin: 0.55rem 0;
}

.home-command-card .audit-doc-kpi { padding: 0.5rem; }
.home-command-card .audit-doc-kpi strong { font-size: 1rem; }
.home-command-card .audit-doc-dashboard-grid {
  grid-template-columns: minmax(0, 1.4fr) minmax(145px, 0.6fr);
  gap: 0.65rem;
  margin-bottom: 0.25rem;
}

.home-command-card #audit-doc-category-bars .audit-doc-category {
  margin-bottom: 0.4rem;
}

.home-command-card #audit-doc-category-bars .audit-doc-category:nth-child(n+5) {
  display: none;
}

.home-command-card .doc-control-explanation {
  display: none;
}

.home-card-link {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--accent);
  padding: 0;
  cursor: pointer;
  font: 600 0.78rem/1.2 inherit;
  white-space: nowrap;
}

.home-compliance-alerts { margin: 0; }
.home-compliance-alert-list ul { margin-bottom: 0; }
.home-compliance-alert-list li:nth-child(n+5) { display: none; }

.home-risk-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 0.8fr);
  gap: 0.8rem;
  align-items: start;
}

.home-top-risk-list {
  margin: 0;
  padding-left: 1.2rem;
  display: grid;
  gap: 0.45rem;
}

.home-top-risk-list li {
  padding-left: 0.15rem;
  font-size: 0.78rem;
}

.home-top-risk-list strong,
.home-top-risk-list span {
  display: block;
}

.home-top-risk-list span {
  color: var(--text-muted);
  margin-top: 0.1rem;
}

.home-guide-card { margin: 0; background: var(--surface); }
.home-guide-card #guide-steps { margin-bottom: 0; }
.home-guide-card #guide-steps > li:nth-child(n+5) { display: none; }

.home-more-details {
  margin-top: 0.8rem;
  border-top: 1px solid var(--border);
}

.home-more-details > summary {
  padding: 0.7rem 0;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 600;
}

.home-more-content { padding-top: 0.25rem; }

@media (max-width: 1050px) {
  .home-kpi-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-command-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: none;
  }
  .home-command-card .audit-doc-dashboard-grid,
  .home-risk-layout { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .home-overview-header { flex-direction: column; }
  .home-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-command-grid { grid-template-columns: 1fr; }
  .home-command-card .audit-doc-dashboard-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-command-card { overflow: visible; }
}

/* Stats */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.stat-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.stat-value {
  font-size: 2rem;
  font-weight: 700;
  font-family: var(--mono);
}

.stat-label { font-size: 0.8rem; color: var(--text-muted); }
.stat-alert .stat-value { color: var(--warning); }

/* Cards */
.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.card h3 {
  font-size: 0.95rem;
  margin-bottom: 1rem;
  color: var(--text-muted);
  font-weight: 500;
}

.level-bar-row {
  display: grid;
  grid-template-columns: 12px 120px 1fr 32px;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
  font-size: 0.85rem;
}

.level-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.level-bar-track {
  height: 8px;
  background: #e2e8f0;
  border-radius: 4px;
  overflow: hidden;
}

.level-bar-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.3s;
}

.level-count {
  text-align: right;
  font-family: var(--mono);
  color: var(--text-muted);
}

.wizard-hint {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-left: 3px solid var(--accent);
  padding: 1rem 1.25rem;
  border-radius: 0 var(--radius) var(--radius) 0;
  font-size: 0.9rem;
  color: var(--text);
}

/* Panel headers */
.panel-header {
  margin-bottom: 1.5rem;
}

.panel-header h2 { font-size: 1.4rem; margin-bottom: 0.25rem; }
.panel-header p { color: var(--text-muted); font-size: 0.9rem; }
.panel-header.row-between {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 1rem;
}

/* Tables */
.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.data-table th {
  background: #e2e8f0;
  text-align: left;
  padding: 0.75rem 1rem;
  font-weight: 600;
  color: var(--text);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.data-table td {
  padding: 0.65rem 1rem;
  border-top: 1px solid #e2e8f0;
}

.data-table tr:hover td { background: #f1f5f9; }
.row-alert td { background: #fef2f2; }

code {
  font-family: var(--mono);
  font-size: 0.8rem;
  background: #e2e8f0;
  color: #334155;
  padding: 0.15rem 0.4rem;
  border-radius: 4px;
}

.badge {
  display: inline-block;
  background: #e2e8f0;
  border: 1px solid #cbd5e1;
  color: var(--text);
  padding: 0.15rem 0.5rem;
  border-radius: 20px;
  font-size: 0.75rem;
}

.badge-type { color: var(--text-muted); }

/* Toolbar */
.toolbar {
  margin-bottom: 1rem;
}

.toolbar label, .inline-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--text-muted);
}

select, textarea, input[type="text"] {
  background: #ffffff;
  border: 1px solid var(--border);
  color: var(--text);
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  font-family: var(--font);
  font-size: 0.9rem;
}

select:focus, textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

/* Form */
.scenario-form { max-width: 800px; }

.form-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 1rem;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.85rem;
  color: var(--text-muted);
}

.field.span-2 { grid-column: span 2; }
.field.span-4 { grid-column: span 4; }

.field textarea, .field select { width: 100%; }

.fieldset {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 1.25rem;
  margin-bottom: 1.25rem;
}

.fieldset legend {
  padding: 0 0.5rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text);
}

.risk-preview-wrap { justify-content: flex-end; }
.field-label { font-size: 0.8rem; }

.risk-preview {
  padding: 0.6rem 1rem;
  border-radius: 8px;
  font-weight: 600;
  text-align: center;
  background: #e2e8f0;
  color: var(--text);
  border: 1px solid var(--border);
  min-height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Buttons */
.btn {
  padding: 0.6rem 1.25rem;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.9rem;
  font-weight: 500;
  transition: all 0.15s;
}

.btn-primary {
  background: var(--accent);
  color: #fff;
}
.btn-primary:hover { background: var(--accent-hover); }

.btn-secondary {
  background: #ffffff;
  color: var(--text);
  border: 1px solid var(--border);
}
.btn-secondary:hover { border-color: var(--accent); color: var(--accent); }

.btn-ghost {
  background: transparent;
  color: var(--text-muted);
  border: 1px solid var(--border);
}
.btn-ghost:hover { color: var(--danger); border-color: var(--danger); }

.btn-group { display: flex; gap: 0.5rem; flex-wrap: wrap; }

.btn-icon {
  background: transparent;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
}
.btn-icon:hover { background: rgba(255,26,0,0.15); color: var(--danger); }

/* Risk pills */
.risk-pill {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 600;
  color: #111;
  min-width: 2rem;
  text-align: center;
}

/* Matrix */
.matrix-norm-card {
  margin-bottom: 1.25rem;
  padding: 0.85rem 1.1rem;
}
.matrix-norm-card h3 {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
}
.matrix-norm-card p {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.matrix-legend {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.legend-item {
  padding: 0.3rem 0.7rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #111;
}

.matrix-wrapper {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: 1fr auto;
  gap: 0.5rem;
  align-items: center;
}

.matrix-y-label {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 0.8rem;
  color: var(--text-muted);
  text-align: center;
  padding: 0.5rem;
}

.matrix-x-label {
  grid-column: 2;
  text-align: center;
  font-size: 0.8rem;
  color: var(--text-muted);
  padding: 0.5rem;
}

.risk-matrix-grid {
  display: grid;
  gap: 3px;
  min-height: 400px;
}

.matrix-corner { background: transparent; }

.matrix-axis-x, .matrix-axis-y {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text);
  background: #e2e8f0;
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0.25rem;
}

.matrix-cell {
  border-radius: 6px;
  padding: 0.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
  position: relative;
  border: 1px solid rgba(0, 0, 0, 0.12);
  box-shadow: var(--shadow);
  transition: transform 0.1s;
}

.matrix-cell:hover { transform: scale(1.02); z-index: 1; }

.cell-level {
  font-weight: 700;
  font-size: 1.1rem;
}

.cell-bubbles {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  justify-content: center;
}

.bubble {
  border: 1px solid var(--orizon-border);
  background: rgba(255, 255, 255, 0.82);
  color: var(--orizon-ink);
  font-size: 0.6rem;
  padding: 1px 4px;
  border-radius: 3px;
  font-family: var(--mono);
}

.bubble.more { background: var(--orizon-surface-alt); }

.cell-count {
  position: absolute;
  top: 4px;
  right: 6px;
  font-size: 0.7rem;
  font-weight: 700;
  opacity: 0.7;
}

/* Footer */
.footer {
  text-align: center;
  padding: 2rem;
  color: var(--text-muted);
  font-size: 0.8rem;
  border-top: 1px solid var(--border);
  background: var(--surface);
  margin-top: 2rem;
}

@media (max-width: 768px) {
  .header { padding: 1rem; }
  .main { padding: 1rem; }
  .form-grid { grid-template-columns: 1fr; }
  .field.span-2, .field.span-4 { grid-column: span 1; }
  .assets-layout { grid-template-columns: 1fr; }
  .asset-detail { position: static; }
}

/* Assets panel — redesigned */
.assets-shell { display: flex; flex-direction: column; gap: 1.25rem; }

.assets-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 1rem;
}

.assets-header h2 { font-size: 1.5rem; margin-bottom: 0.25rem; }
.assets-header p { color: var(--text-muted); font-size: 0.9rem; }

.assets-kpis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

.kpi-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  box-shadow: var(--shadow);
}

.kpi-top { display: flex; align-items: baseline; gap: 0.5rem; margin-bottom: 0.35rem; }
.kpi-value { font-size: 1.75rem; font-weight: 700; font-family: var(--mono); line-height: 1; }
.kpi-label { font-size: 0.8rem; color: var(--text-muted); }
.kpi-sub { font-size: 0.8rem; color: var(--text-muted); }
.text-warn { color: var(--warning); font-weight: 600; }

.progress-track {
  height: 8px;
  background: #e2e8f0;
  border-radius: 99px;
  overflow: hidden;
  margin: 0.5rem 0;
}

.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--success), #34d399);
  border-radius: 99px;
  transition: width 0.35s ease;
  width: 0%;
}

.assets-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 0.85rem 1rem;
  box-shadow: var(--shadow);
}

.search-box {
  flex: 1 1 260px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: #f8fafc;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0 0.75rem;
}

.search-box:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(37,99,235,0.12); }
.search-icon { color: var(--text-muted); flex-shrink: 0; }

.search-box input {
  flex: 1;
  border: none;
  background: transparent;
  padding: 0.55rem 0;
  font-family: var(--font);
  font-size: 0.9rem;
  outline: none;
}

.filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.filter-chip {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  font-size: 0.7rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.filter-chip select {
  padding: 0.35rem 0.5rem;
  font-size: 0.8rem;
  min-width: 110px;
}

.view-toggle {
  display: flex;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}

.view-btn {
  border: none;
  background: var(--surface-2);
  color: var(--text-muted);
  padding: 0.4rem 0.75rem;
  font-size: 0.8rem;
  cursor: pointer;
  font-family: var(--font);
}

.view-btn:hover { background: #eff6ff; color: var(--accent); }
.view-btn.active { background: var(--accent); color: #fff; }

.btn-compact { padding: 0.4rem 0.75rem; font-size: 0.8rem; }

.assets-layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 1rem;
  align-items: start;
}

.assets-layout.detail-open { grid-template-columns: 1fr 380px; }
.assets-layout:not(.detail-open) { grid-template-columns: 1fr; }

.assets-list-panel { min-width: 0; }

.assets-table-wrap {
  max-height: calc(100vh - 340px);
  min-height: 420px;
  overflow: auto;
}

.assets-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #e8eef4;
}

.assets-table .col-ref { width: 130px; }
.assets-table .col-name { min-width: 220px; }
.assets-table .col-dept { width: 120px; }
.assets-table .col-cia { width: 140px; text-align: center; }
.assets-table .col-value { width: 90px; }
.assets-table .col-action { width: 44px; }

.asset-row { cursor: pointer; transition: background 0.1s; }
.asset-row:hover td { background: #f1f5f9; }
.asset-row.row-selected td { background: #dbeafe !important; box-shadow: inset 3px 0 0 var(--accent); }

.asset-cell-name { display: flex; flex-direction: column; gap: 0.2rem; }
.asset-name-line { display: flex; align-items: center; gap: 0.4rem; font-weight: 500; }
.asset-indent-0 { padding-left: 0; }
.asset-indent-1 { padding-left: 1.25rem; }
.asset-indent-2 { padding-left: 2rem; }

.type-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.6rem;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.type-pr { background: #dcfce7; color: #166534; }
.type-sp { background: #e0e7ff; color: #3730a3; }

.asset-meta-line {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  align-items: center;
}

.cia-mini {
  display: flex;
  gap: 3px;
  justify-content: center;
}

.cia-dot {
  width: 22px;
  height: 22px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 700;
  font-family: var(--mono);
  color: #111;
  border: 1px solid rgba(0,0,0,0.08);
}

.cia-dot.empty { background: #f1f5f9; color: #94a3b8; border-style: dashed; }

.value-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
  font-family: var(--mono);
  font-weight: 700;
  font-size: 0.85rem;
  color: #111;
}

.assets-footnote {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-top: 0.5rem;
  padding-left: 0.25rem;
}

/* Detail panel */
.asset-detail {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  padding: 0;
  position: sticky;
  top: 88px;
  max-height: calc(100vh - 110px);
  overflow-y: auto;
}

.asset-detail.hidden { display: none; }

.detail-header {
  padding: 1.25rem 1.25rem 0.75rem;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, #f8fafc, var(--surface));
}

.detail-badges { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.5rem; }
.detail-header h3 { font-size: 1.05rem; line-height: 1.35; margin-bottom: 0.25rem; }
.detail-ref { font-family: var(--mono); font-size: 0.75rem; color: var(--text-muted); }

.detail-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem 1rem;
  padding: 0.85rem 1.25rem;
  font-size: 0.8rem;
  border-bottom: 1px solid var(--border);
}

.detail-info-item { display: flex; flex-direction: column; gap: 0.1rem; }
.detail-info-item span:first-child { color: var(--text-muted); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.03em; }
.detail-info-item strong { font-weight: 500; }

.valuation-form { padding: 1rem 1.25rem; }
.detail-section-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  margin-bottom: 0.75rem;
}

.cia-cards { display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 1rem; }

.cia-card {
  background: #f8fafc;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.75rem 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.cia-card-head { display: flex; justify-content: space-between; align-items: center; font-size: 0.85rem; }
.cia-card-head strong { font-family: var(--mono); font-size: 1.1rem; }
.cia-card input[type="range"] { width: 100%; accent-color: var(--accent); }
.cia-card.cia-c input[type="range"] { accent-color: #2563eb; }
.cia-card.cia-i input[type="range"] { accent-color: #7c3aed; }
.cia-card.cia-a input[type="range"] { accent-color: #059669; }
.cia-scale { display: flex; justify-content: space-between; font-size: 0.65rem; color: var(--text-muted); }

.valor-hero {
  background: linear-gradient(135deg, #eff6ff, #f0fdf4);
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  padding: 1rem;
  text-align: center;
  margin-bottom: 1rem;
}

.valor-hero-label { font-size: 0.75rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.valor-hero-row { display: flex; align-items: center; justify-content: center; gap: 0.75rem; margin: 0.35rem 0; }
.valor-hero strong { font-size: 2.25rem; font-family: var(--mono); line-height: 1; }
.valor-formula { font-size: 0.75rem; color: var(--text-muted); }

.detail-type-field { margin-bottom: 1rem; }
.detail-type-field select { width: 100%; }

.detail-actions { display: flex; flex-direction: column; gap: 0.5rem; }
.btn-block { width: 100%; }

.ciso-advanced {
  border-top: 1px solid var(--border);
  padding: 0.75rem 1.25rem 1rem;
}

.ciso-advanced summary {
  cursor: pointer;
  font-size: 0.8rem;
  color: var(--text-muted);
  user-select: none;
}

.ciso-advanced pre { margin-top: 0.75rem; }

.parent-readonly-notice {
  background: #f0fdf4;
  border: 1px solid #86efac;
  border-radius: 8px;
  padding: 0.75rem;
  font-size: 0.8rem;
  color: #166534;
  margin-bottom: 1rem;
}

.value-pill {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 600;
  color: #111;
}

.badge-source { font-size: 0.65rem; }
.badge-lr_matrix { background: #dbeafe; border-color: #93c5fd; color: #1e40af; }
.badge-atenas_borrador { background: #dcfce7; border-color: #86efac; color: #166534; }
.badge-merged { background: #fef3c7; border-color: #fcd34d; color: #92400e; }
.badge-pending { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }

.row-pending td { background: #fffbeb; }
.row-parent td { background: #f8fafc; }
.row-parent .asset-name-line { font-weight: 600; }

.badge-parent { background: #dcfce7; border-color: #86efac; color: #166534; font-size: 0.7rem; }
.badge-synthetic_parent { background: #f3e8ff; border-color: #d8b4fe; color: #6b21a8; }

@media (max-width: 1100px) {
  .assets-kpis { grid-template-columns: 1fr; }
  .assets-layout,
  .assets-layout.detail-open { grid-template-columns: 1fr; }
  .asset-detail { position: static; max-height: none; }
  .assets-table-wrap { max-height: 50vh; }
}

@media (max-width: 768px) {
  .main:has(.panel-assets.active) { max-width: 100%; }
  .filter-group { width: 100%; }
  .filter-chip { flex: 1; }
  .filter-chip select { width: 100%; min-width: 0; }
}

.row-selected td { background: #eff6ff; }

.btn-ghost-sm {
  background: transparent;
  color: var(--text-muted);
  border: 1px solid var(--border);
}
.btn-ghost-sm:hover { color: var(--accent); border-color: var(--accent); }

.cia-cell { text-align: center; font-family: var(--mono); font-weight: 600; }
.asset-name { font-weight: 500; }

.btn-sm {
  padding: 0.3rem 0.65rem;
  font-size: 0.8rem;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 6px;
  cursor: pointer;
}
.btn-sm:hover { background: var(--accent-hover); }

.btn-icon-row {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-muted);
  width: 2rem;
  height: 2rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}
.btn-icon-row:hover { background: var(--accent); border-color: var(--accent); color: #fff; }

.grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}

.quality-list { list-style: none; font-size: 0.85rem; }
.quality-list li { padding: 0.4rem 0; border-bottom: 1px solid #e2e8f0; }
.qc-error { color: #b91c1c; }
.qc-warn { color: #b45309; }
.qc-info { color: var(--text-muted); }
.qc-ok { color: #166534; }

.analytics-inline { font-size: 0.9rem; color: var(--text-muted); }
.bar-row { display: grid; grid-template-columns: 1fr auto auto; gap: 0.5rem; align-items: center; margin-bottom: 0.35rem; font-size: 0.85rem; }
.bar-row.clickable { cursor: pointer; border-radius: 6px; padding: 0.25rem 0.35rem; }
.bar-row.clickable:hover { background: #f1f5f9; }
.work-queue-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.work-queue-list li {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px;
  background: var(--surface-2, #f8fafc);
}
.work-queue-list .wq-title { font-weight: 600; font-size: 0.92rem; }
.work-queue-list .wq-detail { font-size: 0.8rem; color: var(--text-muted, #64748b); margin-top: 0.15rem; }
.work-queue-list .wq-high { border-left: 3px solid #FF1A00; }
.work-queue-list .wq-medium { border-left: 3px solid #FFA600; }
.work-queue-list .wq-empty { color: var(--text-muted, #64748b); border-style: dashed; }
.audit-bridge-result { margin-bottom: 0.75rem; font-size: 0.85rem; }
.audit-bridge-result table { width: 100%; font-size: 0.8rem; }
.audit-bridge-result.hidden { display: none; }

/* Cabina fullscreen para completar controles de auditoría */
body.audit-cabin-open { overflow: hidden; }

.audit-review-cabin {
  position: fixed;
  inset: 0;
  z-index: 1600;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: 100%;
  height: 100dvh;
  background: var(--bg);
  color: var(--text);
}

.audit-review-cabin.hidden { display: none; }

.audit-cabin-header {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto;
  align-items: center;
  gap: 1rem;
  padding: 0.7rem 1rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.audit-cabin-title {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.audit-cabin-title strong {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.audit-cabin-eyebrow {
  color: var(--accent);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.audit-cabin-progress {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--text-muted);
  font-size: 0.75rem;
}

.audit-cabin-progress span { white-space: nowrap; }
.audit-cabin-progress strong { color: var(--text); }

.audit-cabin-save-state {
  padding: 0.28rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-2);
}

.audit-cabin-save-state[data-state="saving"] { color: var(--accent); }
.audit-cabin-save-state[data-state="error"] { color: var(--danger, #dc2626); }
.audit-cabin-save-state[data-state="pending"] { color: #b45309; }
.audit-cabin-save-state[data-state="complete"] { color: var(--success, #15803d); }

.audit-cabin-body {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(230px, 280px) minmax(540px, 1fr) minmax(310px, 380px);
}

.audit-cabin-sidebar {
  min-height: 0;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  border-right: 1px solid var(--border);
  background: var(--surface);
}

.audit-cabin-sidebar-head {
  display: grid;
  gap: 0.45rem;
  padding: 0.75rem;
}

.audit-cabin-sidebar-head input,
.audit-cabin-sidebar-head select { width: 100%; }

#audit-cabin-queue-summary { padding: 0 0.75rem 0.5rem; }

.audit-cabin-list {
  min-height: 0;
  overflow-y: auto;
  margin: 0;
  padding: 0 0.55rem 0.75rem;
  list-style: none;
}

.audit-cabin-list li { margin-bottom: 0.35rem; }

.audit-cabin-list button {
  width: 100%;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.5rem;
  align-items: center;
  padding: 0.55rem 0.6rem;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
  font: inherit;
}

.audit-cabin-list button:hover { background: var(--surface-2); }
.audit-cabin-list button.active {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
  background: color-mix(in srgb, var(--accent) 8%, var(--surface));
}

.audit-cabin-list-ref {
  color: var(--text-muted);
  font: 600 0.7rem/1 var(--mono);
}

.audit-cabin-list-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.78rem;
}

.audit-cabin-list-state {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 999px;
  background: var(--text-muted);
}

.audit-cabin-list-state[data-state="complete"] { background: var(--success, #16a34a); }
.audit-cabin-list-state[data-state="gap"] { background: #d97706; }
.audit-cabin-list-state[data-state="incomplete"] { background: var(--danger, #dc2626); }

.audit-cabin-main {
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  padding: 0 0.9rem 2rem;
}

.audit-cabin-steps {
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  gap: 0.25rem;
  padding: 0.65rem 0;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
}

.audit-cabin-steps button {
  padding: 0.38rem 0.58rem;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  font: 600 0.75rem/1.2 inherit;
}

.audit-cabin-steps button.active {
  border-color: var(--border);
  background: var(--surface);
  color: var(--accent);
}

.audit-cabin-steps button[hidden] { display: none; }

.audit-cabin-control-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  max-width: 920px;
  margin: 1rem auto 0.7rem;
}

.audit-cabin-control-head h2 {
  margin: 0.25rem 0;
  font-size: 1.25rem;
}

.audit-cabin-control-head p {
  max-width: 800px;
  margin-bottom: 0;
}

.audit-cabin-form-slot {
  max-width: 920px;
  margin: 0 auto;
}

.audit-cabin-form-slot .audit-req-form {
  display: block;
  margin: 0;
  padding: 0.9rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.audit-cabin-form-slot .audit-req-form.hidden { display: block; }
.audit-cabin-form-slot .audit-req-form > .tx-editor-head { display: none; }
.audit-cabin-form-slot .audit-req-extras { max-height: none; }
.audit-cabin-form-slot .audit-ai-guidance,
.audit-cabin-form-slot #audit-complete-chips,
.audit-cabin-form-slot .audit-evidence-add { display: none; }
.audit-cabin-form-slot .audit-evaluation-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.audit-cabin-form-slot .audit-form-submit { display: none; }

.audit-evaluation-summary {
  gap: 0.6rem;
}

.audit-summary-field {
  --audit-summary-color: #2563eb;
  min-width: 0;
  padding: 0.62rem;
  border: 1px solid color-mix(in srgb, var(--audit-summary-color) 28%, var(--border));
  border-top: 3px solid var(--audit-summary-color);
  border-radius: 9px;
  background: color-mix(in srgb, var(--audit-summary-color) 6%, var(--surface));
  color: color-mix(in srgb, var(--audit-summary-color) 78%, var(--text));
  font-size: 0.72rem;
  font-weight: 700;
}

.audit-summary-field select,
.audit-summary-field input {
  width: 100%;
  margin-top: 0.36rem;
  border-color: color-mix(in srgb, var(--audit-summary-color) 25%, var(--border));
  background: var(--surface);
  color: var(--text);
  font-weight: 600;
}

.audit-summary-result[data-result="compliant"] { --audit-summary-color: #16a34a; }
.audit-summary-result[data-result="partially_compliant"] { --audit-summary-color: #d97706; }
.audit-summary-result[data-result="non_compliant"] { --audit-summary-color: #dc2626; }
.audit-summary-result[data-result="not_applicable"] { --audit-summary-color: #64748b; }
.audit-summary-finding { --audit-summary-color: #7c3aed; }
.audit-summary-owner { --audit-summary-color: #0f766e; }
.audit-summary-due { --audit-summary-color: #ca8a04; }
.audit-summary-due.is-overdue { --audit-summary-color: #dc2626; }

/* Ayuda contextual sin ocupar alto: marcador en la misma línea del rótulo. */
.field-tip {
  display: inline-grid;
  place-items: center;
  width: 0.92rem;
  height: 0.92rem;
  margin-left: 0.28rem;
  vertical-align: text-top;
  border-radius: 50%;
  background: color-mix(in srgb, var(--audit-summary-color, #64748b) 20%, transparent);
  color: color-mix(in srgb, var(--audit-summary-color, #475569) 90%, var(--text));
  font-size: 0.6rem;
  font-weight: 700;
  line-height: 1;
  cursor: help;
  user-select: none;
}
.field-tip:hover,
.field-tip:focus-visible {
  background: color-mix(in srgb, var(--audit-summary-color, #64748b) 38%, transparent);
  outline: none;
}
.audit-summary-field.is-required-gap .field-tip {
  background: #fde68a;
  color: #92400e;
}

.audit-cabin-context {
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  border-left: 1px solid var(--border);
  background: var(--surface);
}

.audit-cabin-context-tabs {
  position: sticky;
  top: 0;
  z-index: 4;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.3rem;
  padding: 0.7rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.audit-cabin-context-tabs button {
  padding: 0.45rem 0.35rem;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  font: 600 0.7rem/1.2 inherit;
}

.audit-cabin-context-tabs button.active {
  border-color: var(--border);
  background: color-mix(in srgb, var(--accent) 8%, var(--surface));
  color: var(--accent);
}

.audit-cabin-context-content { padding: 0.85rem; }
.audit-context-heading {
  display: grid;
  gap: 0.2rem;
  margin-bottom: 0.55rem;
}
.audit-context-checklist,
.audit-context-list {
  display: grid;
  gap: 0.45rem;
  margin: 0.75rem 0;
  padding: 0;
  list-style: none;
}
.audit-context-checklist li,
.audit-context-list li {
  padding: 0.55rem;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface-2);
  font-size: 0.78rem;
}
.audit-context-checklist label {
  display: flex;
  gap: 0.45rem;
  align-items: flex-start;
}
.audit-context-definition {
  display: grid;
  gap: 0.65rem;
  margin: 0.75rem 0;
}
.audit-context-definition div {
  padding-bottom: 0.55rem;
  border-bottom: 1px solid var(--border);
}
.audit-context-definition dt {
  margin-bottom: 0.15rem;
  color: var(--text-muted);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
}
.audit-context-definition dd {
  margin: 0;
  font-size: 0.8rem;
}
.audit-cabin-context .audit-evidence-picker-layout { grid-template-columns: 1fr; }
.audit-cabin-context .audit-evidence-picker-preview { min-height: 150px; }
.audit-cabin-context .audit-evidence-picker-footer {
  align-items: stretch;
  flex-direction: column;
}

.audit-cabin-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.55rem;
  padding: 0.65rem 1rem;
  border-top: 1px solid var(--border);
  background: var(--surface);
}

.audit-cabin-footer .btn { min-width: 150px; }

.audit-advanced-fields,
.audit-standard-phrases {
  margin: 0.6rem 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface-2);
}

.audit-advanced-fields > summary,
.audit-standard-phrases > summary {
  cursor: pointer;
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 600;
}

.audit-advanced-fields[open] > summary,
.audit-standard-phrases[open] > summary { margin-bottom: 0.6rem; }

.audit-gap-fields {
  margin: 0.6rem 0;
  padding: 0.7rem;
  border-left: 3px solid #d97706;
  border-radius: 0 8px 8px 0;
  background: color-mix(in srgb, #d97706 6%, var(--surface));
}

.audit-suggestion-preview {
  display: grid;
  gap: 0.65rem;
  margin: 0.65rem 0;
  padding: 0.75rem;
  border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--border));
  border-radius: 8px;
  background: color-mix(in srgb, var(--accent) 5%, var(--surface));
}

.audit-suggestion-preview.hidden { display: none; }
.audit-suggestion-fields { display: grid; gap: 0.45rem; }
.audit-suggestion-field {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  padding: 0.5rem;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface);
}
.audit-suggestion-field span { display: grid; gap: 0.15rem; }
.audit-suggestion-field small {
  color: var(--text-muted);
  white-space: pre-wrap;
}

@media (max-width: 1200px) {
  .audit-cabin-body {
    grid-template-columns: 220px minmax(470px, 1fr) 300px;
  }
  .audit-cabin-form-slot .audit-evaluation-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 850px) {
  .audit-cabin-header {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .audit-cabin-progress {
    grid-column: 1 / -1;
    order: 3;
    overflow-x: auto;
  }
  .audit-cabin-body { grid-template-columns: 1fr; }
  .audit-cabin-context { display: none; }
  .audit-cabin-sidebar {
    position: fixed;
    inset: auto 0 58px 0;
    z-index: 5;
    max-height: 65dvh;
    border: 1px solid var(--border);
    transform: translateY(110%);
    transition: transform 0.2s ease;
  }
  .audit-cabin-sidebar.open { transform: translateY(0); }
  .audit-cabin-main { padding-inline: 0.65rem; }
  .audit-cabin-steps {
    overflow-x: auto;
    white-space: nowrap;
  }
  .audit-cabin-control-head { flex-direction: column; }
  .audit-cabin-footer .btn { padding-inline: 0.6rem; }
  .audit-cabin-form-slot .audit-ai-guidance { display: block; }
}


.analytics-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: flex-end;
  margin-bottom: 1rem;
}
.analytics-toolbar .an-search { flex: 1; min-width: 180px; }
.analytics-toolbar .an-search input {
  width: 100%;
  padding: 0.4rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-family: var(--font);
}

.analytics-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.an-kpi {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.75rem 0.9rem;
}
.an-kpi .an-kpi-label {
  display: block;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  margin-bottom: 0.25rem;
}
.an-kpi .an-kpi-value {
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}
.an-kpi.warn .an-kpi-value { color: #b45309; }
.an-kpi.danger .an-kpi-value { color: var(--danger); }
.an-kpi.ok .an-kpi-value { color: #0f766e; }
.an-kpi .an-kpi-sub { font-size: 0.75rem; color: var(--text-muted); margin-top: 0.15rem; }

.analytics-compare {
  font-size: 0.85rem;
  color: var(--text-muted);
  margin: -0.35rem 0 1rem;
  padding: 0.5rem 0.75rem;
  background: #f8fafc;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
}

.risk-mini-trio {
  display: inline-flex;
  gap: 0.2rem;
  margin-left: 0.35rem;
}
.risk-mini-trio .risk-pill {
  font-size: 0.65rem;
  padding: 0.1rem 0.35rem;
  min-width: 1.1rem;
  text-align: center;
}

.ciso-pre, #detail-ciso-json {
  font-family: var(--mono);
  font-size: 0.7rem;
  background: #f1f5f9;
  padding: 0.75rem;
  border-radius: 6px;
  overflow-x: auto;
  max-height: 200px;
}

.hint { font-size: 0.85rem; color: var(--text-muted); margin: 0.5rem 0; }

.ciso-proxy-warn {
  margin-top: 0.75rem;
  padding: 0.75rem 1rem;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 8px;
  color: #b91c1c;
  font-size: 0.85rem;
}

.ciso-proxy-warn.hidden { display: none; }

.ciso-sync-hero {
  display: grid;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
  padding: 1.5rem 1.75rem;
  border-radius: 16px;
  background:
    radial-gradient(ellipse 80% 60% at 0% 0%, rgba(14, 116, 144, 0.12), transparent 55%),
    linear-gradient(160deg, #f0f7fa 0%, #eef2f6 45%, #f7f8fa 100%);
  border: 1px solid #d7e3ea;
}
.ciso-sync-brand {
  margin: 0 0 0.35rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #0e7490;
}
.ciso-sync-copy h3 {
  margin: 0 0 0.4rem;
  font-size: 1.65rem;
  letter-spacing: -0.02em;
  color: #0f172a;
}
.ciso-sync-lead {
  margin: 0 0 1.1rem;
  max-width: 38rem;
  color: #475569;
  font-size: 0.95rem;
  line-height: 1.45;
}
.ciso-sync-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 1rem;
  max-width: 40rem;
}
.ciso-sync-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem 1.25rem;
  margin-bottom: 0.75rem;
}
.btn-lg {
  padding: 0.85rem 1.4rem;
  font-size: 1rem;
  font-weight: 600;
}
.ciso-sync-status {
  margin: 0;
  font-size: 0.9rem;
  color: #64748b;
}
.ciso-sync-status[data-kind="ok"] { color: #047857; font-weight: 600; }
.ciso-sync-status[data-kind="busy"] { color: #0e7490; }
.ciso-sync-status[data-kind="error"] { color: #b91c1c; font-weight: 600; }
.ciso-target-hint {
  margin: 0;
  font-size: 0.85rem;
  color: #64748b;
}
.ciso-advanced {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
}
.ciso-advanced summary {
  cursor: pointer;
  font-size: 0.85rem;
  color: #64748b;
  font-weight: 500;
}
.ciso-advanced .scenario-form { margin-top: 0.75rem; }
.ciso-log-card { margin-top: 0.5rem; }

.metrics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
.metrics-grid.hidden { display: none; }
.metric-block {
  background: rgba(255,255,255,0.72);
  border: 1px solid #dbe4ea;
  border-radius: 10px;
  padding: 0.75rem 0.9rem;
}
.metric-block h4 {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
}
.metric-block ul { list-style: none; margin: 0; padding: 0; }
.metric-block li {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.82rem;
  padding: 0.18rem 0;
  border-bottom: 1px solid #eef2f7;
}
.metric-block li:last-child { border-bottom: 0; }
.metric-block strong { font-variant-numeric: tabular-nums; }
@media (max-width: 900px) {
  .ciso-sync-fields { grid-template-columns: 1fr; }
  .metrics-grid { grid-template-columns: 1fr; }
}

.scenario-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.9fr);
  gap: 1.25rem;
  align-items: start;
}
.scenario-list-col .sc-list-wrap {
  max-height: min(70vh, 720px);
  overflow: auto;
}
.scenario-form-col h3 { margin: 0 0 0.25rem; }
#threat-context-hint { display: block; margin-top: 0.25rem; }
#sc-origin-badge {
  font-size: 0.78rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface-2, #f8fafc);
  color: var(--text-muted);
}
tr.row-active { background: color-mix(in srgb, var(--accent) 8%, transparent); }
#gen-threats { min-height: 7rem; }

.sc-tools {
  color: var(--text-muted);
  font-size: 0.82rem;
}
.sc-tools > summary {
  cursor: pointer;
  list-style: none;
  opacity: 0.75;
  padding: 0.25rem 0;
  user-select: none;
}
.sc-tools > summary::-webkit-details-marker { display: none; }
.sc-tools > summary::before { content: '▸ '; font-size: 0.7rem; }
.sc-tools[open] > summary::before { content: '▾ '; }
.sc-tools-body { margin-top: 0.4rem; }

.sc-audit-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1rem;
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border);
}
.sc-audit-kpi {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 4.5rem;
}
.sc-audit-kpi-v {
  font-size: 1.15rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  color: var(--text);
  line-height: 1.1;
}
.sc-audit-kpi-l {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}
.sc-audit-kpi.is-warn .sc-audit-kpi-v { color: #b45309; }
.sc-audit-kpi.is-muted .sc-audit-kpi-v { color: var(--text-muted); }

.sc-register {
  padding: 0.85rem 0 0;
}
.sc-filter-bar {
  margin-bottom: 0.65rem;
  gap: 0.4rem;
}
.sc-audit-table th {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--text-muted);
  white-space: nowrap;
}
.sc-audit-table td { vertical-align: middle; font-size: 0.86rem; }
.sc-ref code {
  font-size: 0.78rem;
  background: transparent;
  padding: 0;
}
.sc-pair { max-width: 18rem; line-height: 1.35; }
.sc-pair-sep {
  display: inline-block;
  margin: 0 0.3rem;
  color: var(--text-muted);
  opacity: 0.7;
}
.sc-plan-dot {
  display: inline-block;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  margin-left: 0.35rem;
  vertical-align: middle;
}
.sc-plan-pending { background: #f59e0b; }
.sc-plan-partial { background: #3b82f6; }
.sc-plan-complete { background: #16a34a; }
.sc-trace {
  display: inline-flex;
  gap: 0.25rem;
  white-space: nowrap;
}
.sc-trace-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 3px;
  font-size: 0.65rem;
  font-weight: 700;
  border: 1px solid var(--border);
  color: var(--text-muted);
}
.sc-trace-flag.ok {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #047857;
}
.sc-trace-flag.miss {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #c2410c;
  opacity: 0.85;
}

.sc-eval-panel {
  padding: 0.25rem 0 0.5rem;
}
.sc-generator {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border);
  color: var(--text-muted);
  font-size: 0.85rem;
}
.sc-generator > summary {
  cursor: pointer;
  list-style: none;
  opacity: 0.8;
  font-weight: 600;
  color: var(--text);
  user-select: none;
}
.sc-generator > summary::-webkit-details-marker { display: none; }
.sc-generator > summary::before { content: '▸ '; font-size: 0.7rem; color: var(--text-muted); }
.sc-generator[open] > summary::before { content: '▾ '; }
.sc-generator[open] { color: var(--text); }

@media (max-width: 1100px) {
  .scenario-layout { grid-template-columns: 1fr; }
  .scenario-form-col { order: 2; }
  .scenario-list-col { order: 1; }
}

.bulk-valuate-bar {
  margin: 0 0 0.65rem;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--text-muted);
  font-size: 0.8rem;
}
.bulk-valuate-summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.15rem 0;
  color: var(--text-muted);
  font-weight: 500;
  opacity: 0.72;
  user-select: none;
}
.bulk-valuate-summary::-webkit-details-marker { display: none; }
.bulk-valuate-summary::before {
  content: '▸';
  font-size: 0.7rem;
  opacity: 0.7;
}
.bulk-valuate-bar[open] .bulk-valuate-summary::before { content: '▾'; }
.bulk-valuate-bar[open] .bulk-valuate-summary { opacity: 0.9; }
.bulk-valuate-count:empty { display: none; }
.bulk-valuate-count:not(:empty)::before { content: '· '; }
.bulk-valuate-body {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
  margin-top: 0.35rem;
  padding: 0.4rem 0 0.15rem;
  border-top: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
}
.bulk-val-field {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  color: var(--text-muted);
}
.bulk-val-field input {
  width: 2.4rem;
  padding: 0.2rem 0.3rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
  color: var(--text);
  font-size: 0.78rem;
}
.bulk-valuate-body .btn-ghost {
  color: var(--text-muted);
  border-color: transparent;
  opacity: 0.85;
}
.bulk-valuate-body .btn-ghost:hover {
  opacity: 1;
  border-color: var(--border);
}

.assets-table .col-check {
  width: 2rem;
  text-align: center;
}
.assets-table .col-check input { cursor: pointer; opacity: 0.55; }
.assets-table .col-check input:checked { opacity: 1; }

/* Asset CRUD modal */
.asset-modal {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0;
  width: min(920px, calc(100vw - 1.5rem));
  max-height: calc(100vh - 1.5rem);
  box-shadow: 0 20px 50px rgba(15, 23, 42, 0.18);
  background: #fff;
  color: var(--text);
}
.asset-bulk-modal {
  width: min(760px, calc(100vw - 1.5rem));
}
.asset-bulk-modal .table-wrap {
  max-height: 220px;
  overflow: auto;
  margin-top: 0.5rem;
}
.asset-modal::backdrop {
  background: rgba(148, 163, 184, 0.32);
}
.asset-modal-form { display: flex; flex-direction: column; max-height: calc(100vh - 1.5rem); }
.asset-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.asset-modal-header h3 { margin: 0; font-size: 1.1rem; }
.asset-modal-sub {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  color: var(--text-muted);
}
.asset-editor-body {
  overflow: auto;
  padding: 0.75rem 1.25rem 0.25rem;
  flex: 1;
}
.ae-section {
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #eef2f7;
}
.ae-section:last-child { border-bottom: 0; margin-bottom: 0.25rem; }
.ae-section-title {
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}
.asset-editor-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem 0.85rem;
  padding: 0;
  margin: 0;
  overflow: visible;
}
.asset-editor-grid .field.span-3 { grid-column: span 3; }
.asset-editor-grid input[readonly] {
  background: #f8fafc;
  color: #475569;
  cursor: default;
}
.ae-cia-hint {
  margin: 0;
  font-size: 0.8rem;
  color: var(--text-muted);
}
.asset-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.85rem 1.25rem;
  border-top: 1px solid var(--border);
  flex-shrink: 0;
}
.asset-editor-error {
  margin: 0 1.25rem 0.75rem;
  color: #b91c1c;
  font-size: 0.85rem;
  flex-shrink: 0;
}
@media (max-width: 720px) {
  .asset-editor-grid { grid-template-columns: 1fr; }
  .asset-editor-grid .field.span-2,
  .asset-editor-grid .field.span-3 { grid-column: span 1; }
}
.btn-danger-text { color: var(--danger); }
.btn-danger-text:hover { border-color: var(--danger); color: var(--danger); }
.row-actions {
  display: flex;
  gap: 0.25rem;
  justify-content: flex-end;
  white-space: nowrap;
}
.btn-icon-row.danger:hover {
  background: var(--danger);
  border-color: var(--danger);
  color: #fff;
}
.col-action { width: 5.5rem; text-align: right; }

/* —— Plan de tratamiento —— */
.panel-treatment .tx-guide {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.tx-guide-card {
  background: linear-gradient(160deg, #f8fafc 0%, #eef2f7 100%);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.85rem 1rem;
}
.tx-guide-card h4 {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  color: var(--text);
}
.tx-guide-card p {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--text-muted);
}
.tx-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.tx-kpis .kpi-alert .kpi-value { color: #b45309; }
.tx-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  align-items: start;
}
.tx-layout.editor-open {
  grid-template-columns: minmax(0, 1.4fr) minmax(300px, 400px);
}
.tx-editor {
  position: sticky;
  top: 0.75rem;
  max-height: calc(100vh - 6rem);
  overflow: auto;
}
.tx-editor-empty {
  color: var(--text-muted);
  font-size: 0.9rem;
  margin: 0.5rem 0;
}
.tx-editor-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.tx-editor-head h3 { margin: 0; font-size: 1.05rem; }
.tx-risk-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.85rem;
}
.tx-risk-chip {
  font-size: 0.75rem;
  color: var(--text-muted);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.tx-risk-chip strong {
  padding: 0.15rem 0.45rem;
  border-radius: 6px;
  font-size: 0.75rem;
  color: #111;
}
.tx-criterio-hint { margin-top: -0.35rem; margin-bottom: 0.65rem; }
.tx-form-actions { margin-top: 0.75rem; }
.tx-table tbody tr { cursor: pointer; }
.tx-table tbody tr:hover { background: #f1f5f9; }
.tx-action-cell { max-width: 14rem; font-size: 0.82rem; color: var(--text-muted); }
.tx-criterio-badge {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  background: #e2e8f0;
  color: #334155;
}
.tx-criterio-badge.tx-open { background: #fef3c7; color: #92400e; }
.tx-criterio-badge.tx-mitigate { background: #dbeafe; color: #1e40af; }
.tx-criterio-badge.tx-accept { background: #dcfce7; color: #166534; }
.tx-criterio-badge.tx-avoid { background: #ede9fe; color: #5b21b6; }
.tx-criterio-badge.tx-transfer { background: #ffedd5; color: #9a3412; }
.tx-row.tx-pending td:first-child code { border-left: 3px solid #f59e0b; padding-left: 0.35rem; }
.tx-toolbar { margin-bottom: 0.75rem; }
.empty-row { text-align: center; color: var(--text-muted); padding: 1.5rem !important; }
@media (max-width: 960px) {
  .tx-layout.editor-open { grid-template-columns: 1fr; }
  .tx-editor { position: static; max-height: none; }
}

/* —— Auditorías (Compliance Assessment nativo) —— */
.panel-audits .main,
.main:has(.panel-audits.active) { max-width: none; }
.audit-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.audit-layout {
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}
.audit-layout.audit-focused {
  grid-template-columns: minmax(200px, 280px) minmax(0, 1fr);
}
.audit-layout.audit-list-hidden {
  grid-template-columns: 1fr;
}
.audit-layout.audit-list-hidden .audit-list-panel { display: none; }
.audit-list-panel { min-width: 0; }
.audit-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
}
.audit-list-title {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-muted);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.audit-list-wrap { max-height: min(58vh, 520px); overflow: auto; }
.audit-workspace {
  position: sticky;
  top: 0.75rem;
  max-height: calc(100vh - 5.5rem);
  overflow: auto;
}
.audit-workspace-bar {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
  margin: -0.25rem 0 0.75rem;
  padding: 0.45rem 0.55rem;
  background: color-mix(in srgb, var(--surface, #fff) 92%, #e2e8f0);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.audit-req-nav {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
}
.audit-req-nav #audit-req-pos {
  min-width: 4.5rem;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.audit-table tbody tr,
.audit-req-table tbody tr { cursor: pointer; }
.audit-table tbody tr:hover,
.audit-req-table tbody tr:hover { background: #f1f5f9; }
.audit-table tr.active,
.audit-req-table tr.active { background: #eff6ff; }
.audit-progress {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.82rem;
}
.audit-progress .progress-track { flex: 1; height: 6px; background: #e2e8f0; border-radius: 99px; overflow: hidden; }
.audit-progress .progress-fill { height: 100%; background: var(--accent); border-radius: 99px; }
.audit-donut {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin: 0.5rem 0 0.85rem;
  font-size: 0.82rem;
}
.audit-donut-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--text-muted);
}
.audit-donut-item i {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  display: inline-block;
}
.result-pill {
  display: inline-block;
  padding: 0.12rem 0.45rem;
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 600;
  color: #fff;
}
.audit-req-wrap { max-height: 280px; overflow: auto; margin-bottom: 0.75rem; }
.audit-req-form {
  border-top: 1px solid var(--border);
  padding-top: 0.85rem;
  margin-top: 0.25rem;
}
.audit-requirement-description {
  max-width: 85ch;
  margin: 0.35rem 0 0;
  color: var(--text);
  font-size: 0.94rem;
  line-height: 1.6;
  white-space: pre-line;
}
.audit-req-table tbody tr:focus-visible,
.audit-tree-group li:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}
.audit-ig-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.35rem;
}
.audit-ig-checks label {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.9rem;
}
# CSS minimal for GRC lists
#org-domains, #org-perimeters, #org-users, #org-groups {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}
#org-domains li, #org-perimeters li, #org-users li, #org-groups li {
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--border);
}
.org-switcher {
  margin-left: auto;
  margin-right: 1rem;
  min-width: 320px;
  display: flex;
  align-items: center;
  gap: 0.55rem;
}
.org-switcher .field { min-width: 130px; margin: 0; font-size: 0.8rem; }
.org-switcher select {
  margin-top: 0.2rem;
  width: 100%;
  padding: 0.35rem 0.5rem;
}

.rbac-role-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  background: color-mix(in srgb, var(--accent, #1f6feb) 12%, transparent);
  color: var(--text);
  white-space: nowrap;
}
.rbac-role-badge[data-role="administrador"] {
  background: color-mix(in srgb, #1a7f37 14%, transparent);
}
.rbac-role-badge[data-role="auditor"] {
  background: color-mix(in srgb, #9a6700 14%, transparent);
}
.rbac-role-badge[data-role="ciso"] {
  background: color-mix(in srgb, #0550ae 14%, transparent);
}
.rbac-role-badge[data-role="cliente"] {
  background: color-mix(in srgb, #8250df 12%, transparent);
}
.rbac-denied {
  opacity: 0.45;
  pointer-events: none;
  filter: grayscale(0.2);
}
.rbac-nav-hidden {
  display: none !important;
}
.workspace-sync-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface, #fff) 88%, var(--border));
  color: var(--muted, #5c6570);
  white-space: nowrap;
}
.workspace-sync-badge[data-sync="saving"] {
  color: #8a5a00;
  border-color: color-mix(in srgb, #ffb020 45%, var(--border));
  background: color-mix(in srgb, #ffb020 14%, transparent);
}
.workspace-sync-badge[data-sync="saved"] {
  color: #0f6b3c;
  border-color: color-mix(in srgb, #02a45a 40%, var(--border));
  background: color-mix(in srgb, #02a45a 12%, transparent);
}
.workspace-sync-badge[data-sync="error"] {
  color: #a11212;
  border-color: color-mix(in srgb, #ff1a00 35%, var(--border));
  background: color-mix(in srgb, #ff1a00 10%, transparent);
}
.establishment-banner {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  align-items: flex-start;
  margin: 0 0 1rem;
  padding: 0.9rem 1.05rem;
  border: 1px solid color-mix(in srgb, #b45309 35%, var(--border));
  border-radius: 0.55rem;
  background: color-mix(in srgb, #b45309 8%, var(--surface, #fff));
}
.establishment-banner.is-ready {
  border-color: color-mix(in srgb, #0f766e 32%, var(--border));
  background: color-mix(in srgb, #0f766e 8%, var(--surface, #fff));
}
.establishment-banner[hidden] { display: none !important; }
.establishment-banner-copy {
  display: grid;
  gap: 0.35rem;
  max-width: 48rem;
}
.establishment-banner-copy strong {
  font-size: 0.95rem;
}
.establishment-banner-copy p,
.establishment-banner-copy ul {
  margin: 0;
  font-size: 0.85rem;
  color: var(--muted, #5c6570);
}
.establishment-banner-copy ul {
  padding-left: 1.1rem;
}
button.is-establishment-locked {
  opacity: 0.72;
}

/* —— Wizard establecimiento SGSI —— */
body.estab-wizard-open { overflow: hidden; }
.estab-wizard {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 1rem;
}
.estab-wizard.hidden { display: none !important; }
.estab-wizard-backdrop {
  position: absolute;
  inset: 0;
  background: rgb(15 23 42 / 52%);
  backdrop-filter: blur(3px);
}
.estab-wizard-shell {
  position: relative;
  z-index: 1;
  width: min(1120px, 100%);
  height: min(860px, 100%);
  display: grid;
  grid-template-rows: auto 1fr;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface, #fff);
  box-shadow: 0 24px 60px rgb(15 23 42 / 28%);
  overflow: hidden;
}
.estab-wizard-header {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 1rem;
  align-items: center;
  padding: 0.95rem 1.1rem;
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 92%, var(--surface-2));
}
.estab-wizard-header h3 { margin: 0.1rem 0; }
.estab-wizard-header .hint { margin: 0; }
.estab-wizard-progress {
  display: grid;
  gap: 0.35rem;
  min-width: 140px;
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 700;
}
.estab-wizard-progress > div {
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--border);
}
.estab-wizard-progress i {
  display: block;
  width: 0;
  height: 100%;
  background: var(--accent);
  border-radius: inherit;
  transition: width 0.2s ease;
}
.estab-wizard-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: 250px 1fr;
}
.estab-wizard-rail {
  min-height: 0;
  overflow: auto;
  padding: 0.85rem 0.7rem;
  border-right: 1px solid var(--border);
  background: var(--surface);
  display: grid;
  gap: 0.35rem;
  align-content: start;
}
.estab-wizard-rail-item {
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.55rem;
  align-items: start;
  text-align: left;
  padding: 0.55rem 0.6rem;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
.estab-wizard-rail-item strong {
  display: block;
  font-size: 0.78rem;
}
.estab-wizard-rail-item small {
  display: block;
  margin-top: 0.15rem;
  color: var(--text-muted);
  font-size: 0.64rem;
}
.estab-wizard-rail-item.is-active {
  border-color: color-mix(in srgb, var(--accent) 28%, var(--border));
  background: color-mix(in srgb, var(--accent) 9%, var(--surface));
}
.estab-wizard-rail-item.is-done .estab-wizard-rail-idx {
  background: #0f766e;
  border-color: #0f766e;
  color: #fff;
}
.estab-wizard-rail-idx {
  width: 1.85rem;
  height: 1.85rem;
  display: grid;
  place-items: center;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface-2);
  font: 700 0.65rem/1 var(--mono, ui-monospace, monospace);
  color: var(--text-muted);
}
.estab-wizard-main {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
#estab-wizard-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 1rem;
}
.estab-wizard-panel-head {
  margin-bottom: 0.9rem;
}
.estab-wizard-panel-head h4 { margin: 0 0 0.25rem; }
.estab-wizard-panel-head p {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.86rem;
}
.estab-wizard-panel .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}
.estab-wizard-panel .field.span-2 { grid-column: 1 / -1; }
.estab-wizard-panel .field em {
  color: #b45309;
  font-style: normal;
}
.estab-wizard-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
  padding: 0.8rem 1rem;
  border-top: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 94%, transparent);
}
.estab-wizard-actions #estab-wizard-msg {
  margin-right: auto;
  min-height: 1.2em;
}
.estab-wizard-actions #estab-wizard-msg[data-tone="ok"] { color: #0f766e; }
.estab-wizard-actions #estab-wizard-msg[data-tone="warn"] { color: #b45309; }
.estab-wizard-actions #estab-wizard-msg[data-tone="error"] { color: #b42318; }
.estab-wizard-status {
  margin-bottom: 0.85rem;
  padding: 0.65rem 0.8rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  font-size: 0.86rem;
  font-weight: 600;
}
.estab-wizard-status.is-ok {
  border-color: color-mix(in srgb, #0f766e 35%, var(--border));
  background: color-mix(in srgb, #0f766e 8%, var(--surface));
  color: #0f766e;
}
.estab-wizard-status.is-warn {
  border-color: color-mix(in srgb, #b45309 35%, var(--border));
  background: color-mix(in srgb, #b45309 8%, var(--surface));
  color: #9a3412;
}
.estab-wizard-lists {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
  margin-top: 1rem;
}
.estab-wizard-lists h5 { margin: 0 0 0.4rem; font-size: 0.8rem; }
.estab-wizard-lists ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.estab-wizard-lists li {
  padding: 0.5rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface-2);
}
.estab-wizard-lists li strong { display: block; font-size: 0.84rem; }
.estab-wizard-lists li span,
.estab-wizard-lists li.hint {
  display: block;
  margin-top: 0.15rem;
  color: var(--text-muted);
  font-size: 0.74rem;
}
.estab-wizard-milestones {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}
.estab-wizard-milestones li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.65rem;
  align-items: start;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
}
.estab-wizard-milestones li.is-done {
  border-color: color-mix(in srgb, #0f766e 30%, var(--border));
  background: color-mix(in srgb, #0f766e 7%, var(--surface));
}
.estab-wizard-milestones strong { display: block; font-size: 0.86rem; }
.estab-wizard-milestones small {
  display: block;
  margin-top: 0.15rem;
  color: var(--text-muted);
}
.estab-wizard-cta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}
.estab-wizard-cta-grid .span-2 { grid-column: 1 / -1; }
.estab-wizard-blockers {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.estab-wizard-blockers li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid color-mix(in srgb, #b45309 28%, var(--border));
  background: color-mix(in srgb, #b45309 7%, var(--surface, #fff));
  border-radius: 8px;
}
.estab-wizard-blockers strong { display: block; font-size: 0.86rem; }
.estab-wizard-blockers small {
  color: var(--text-muted);
  font-size: 0.75rem;
}
.estab-wizard-milestones strong em {
  font-style: normal;
  font-weight: 500;
  color: var(--text-muted);
  font-size: 0.78rem;
}
.estab-wizard-audit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin-top: 0.35rem;
}
.estab-wizard-audit-card {
  text-align: left;
  padding: 0.9rem 1rem;
  border: 1px solid var(--border);
  background: var(--surface, #fff);
  border-radius: 10px;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.estab-wizard-audit-card:hover:not(:disabled) {
  border-color: color-mix(in srgb, #0f766e 45%, var(--border));
  background: color-mix(in srgb, #0f766e 6%, var(--surface, #fff));
}
.estab-wizard-audit-card:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.estab-wizard-audit-card strong {
  display: block;
  margin-bottom: 0.3rem;
  font-size: 0.92rem;
}
.estab-wizard-audit-card span {
  display: block;
  color: var(--text-muted);
  font-size: 0.8rem;
  line-height: 1.4;
}
.estab-wizard-actions #estab-wizard-auto {
  border-color: color-mix(in srgb, #0f766e 35%, var(--border));
  margin-left: auto;
}
.estab-wizard-auto-callout {
  margin: 0 0 1rem;
  padding: 0.9rem 1rem;
  border: 1px solid color-mix(in srgb, #0f766e 28%, var(--border));
  background: color-mix(in srgb, #0f766e 8%, var(--surface, #fff));
  border-radius: 10px;
}
.estab-wizard-auto-callout.compact { padding: 0.7rem 0.85rem; }
.estab-wizard-auto-callout strong { display: block; margin-bottom: 0.25rem; }
.estab-wizard-auto-callout p {
  margin: 0 0 0.65rem;
  color: var(--text-muted);
  font-size: 0.88rem;
  line-height: 1.4;
}
.estab-wizard-auto-callout .btn { width: 100%; }
@media (max-width: 860px) {
  .estab-wizard-header {
    grid-template-columns: 1fr auto;
  }
  .estab-wizard-progress { grid-column: 1 / -1; }
  .estab-wizard-layout { grid-template-columns: 1fr; }
  .estab-wizard-rail {
    display: flex;
    overflow-x: auto;
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }
  .estab-wizard-rail-item { min-width: 180px; }
  .estab-wizard-panel .form-grid,
  .estab-wizard-lists,
  .estab-wizard-cta-grid,
  .estab-wizard-audit-grid {
    grid-template-columns: 1fr;
  }
}
body.client-portal .audit-iso-tools,
body.client-portal [data-admin-tools],
body.client-portal #btn-bootstrap-scenarios,
body.client-portal .document-overview-grid,
body.client-portal .document-governance-note,
body.client-portal [data-doc-workspace-tab="overview"],
body.client-portal [data-doc-workspace-tab="matrix"],
body.client-portal [data-doc-workspace-tab="packages"],
body.client-portal [data-doc-workspace-view="overview"],
body.client-portal [data-doc-workspace-view="matrix"],
body.client-portal [data-doc-workspace-view="packages"],
body.client-portal .doc-control-explanation,
body.client-portal #evid-lib-semantic-rebuild,
body.client-portal [data-doc-action="reindex"] {
  display: none !important;
}
body.client-portal .document-workspace-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
body.client-portal .document-workspace-kpis article:nth-child(n+5) {
  display: none !important;
}
body.client-portal .doc-idx-explorer {
  grid-template-columns: 1fr;
}
body.client-portal #evid-lib-preview.has-preview {
  display: block;
  margin-top: 0.85rem;
  border-top: 1px solid var(--border);
  padding-top: 0.85rem;
}
body.client-portal #evid-lib-preview:not(.has-preview) {
  display: none;
}
body.client-portal .client-docs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 0.85rem;
}
body.client-portal .client-doc-card {
  display: grid;
  gap: 0.45rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--border);
  border-radius: 0.55rem;
  background: color-mix(in srgb, var(--surface, #fff) 94%, var(--border));
  text-align: left;
}
body.client-portal .client-doc-card.is-selected {
  border-color: color-mix(in srgb, var(--accent, #2563eb) 55%, var(--border));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent, #2563eb) 25%, transparent);
}
body.client-portal .client-doc-card header {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: center;
}
body.client-portal .client-doc-card h4 {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.3;
}
body.client-portal .client-doc-status {
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent, #2563eb) 12%, transparent);
}
body.client-portal .client-doc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  font-size: 0.78rem;
  color: var(--muted, #5c6570);
}
body.client-portal .client-doc-file {
  color: #0a7a45;
  font-weight: 600;
}
body.client-portal .client-doc-missing {
  color: #a15c12;
  font-weight: 600;
}
body.client-portal .client-docs-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0.35rem 0 0.75rem;
}
body.client-portal .client-docs-kpis > div {
  display: grid;
  gap: 0.15rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 0.45rem;
  background: var(--surface, #fff);
}
body.client-portal .client-docs-kpis strong {
  font-size: 1.15rem;
}
body.client-portal .client-docs-kpis span {
  font-size: 0.75rem;
  color: var(--muted, #5c6570);
}
body.client-portal .client-docs-kpis .is-warn strong {
  color: #a15c12;
}
body.client-portal .client-doc-facets {
  margin: 0.35rem 0 0.75rem;
}
body.client-portal .doc-idx-filters-row {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(7rem, 0.7fr));
  gap: 0.45rem;
  margin-bottom: 0.55rem;
}
@media (max-width: 900px) {
  body.client-portal .doc-idx-filters-row,
  body.client-portal .client-docs-kpis,
  body.client-portal .document-workspace-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.home-readiness-queues {
  margin: 0 0 1rem;
  padding: 1rem 1.1rem;
}
.home-readiness-body {
  margin-top: 0.75rem;
}
.home-readiness-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.65rem;
}
.home-readiness-card {
  text-align: left;
  border: 1px solid var(--border);
  border-radius: 0.45rem;
  background: color-mix(in srgb, var(--surface, #fff) 94%, var(--border));
  padding: 0.75rem 0.85rem;
  display: grid;
  gap: 0.35rem;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.home-readiness-card:hover,
.home-readiness-card:focus-visible {
  border-color: color-mix(in srgb, var(--accent, #2563eb) 45%, var(--border));
  outline: none;
}
.home-readiness-card strong {
  font-size: 0.92rem;
}
.home-readiness-card span {
  font-size: 0.8rem;
  color: var(--muted, #5c6570);
}
.home-readiness-card em {
  font-style: normal;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--accent, #2563eb);
}
.doc-version-panel {
  margin: 0.75rem 0;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 0.4rem;
  background: color-mix(in srgb, var(--surface, #fff) 92%, var(--border));
}
.doc-version-active {
  margin: 0.35rem 0 0.5rem;
  font-size: 0.85rem;
}
.doc-version-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.doc-version-list li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.5rem;
  align-items: center;
  font-size: 0.82rem;
  padding: 0.3rem 0;
  border-bottom: 1px dashed var(--border);
}
.doc-version-list li:last-child { border-bottom: 0; }
.doc-version-lock {
  opacity: 0.7;
  font-size: 0.75rem;
}

.global-org-logo {
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  object-fit: contain;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.2rem;
  background: var(--surface);
}

/* Organización: ficha corporativa sin dashboards duplicados */
.panel-organization {
  --org-logo-size: 112px;
  --org-accent-soft: color-mix(in srgb, var(--accent) 9%, var(--surface));
}

.org-page-header {
  margin-bottom: 1.1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}

.org-page-header h2 {
  margin: 0.15rem 0 0.2rem;
  font-size: clamp(1.55rem, 2vw, 2rem);
  letter-spacing: -0.025em;
}

.org-page-header p {
  max-width: 68ch;
  margin: 0;
  color: var(--text-muted);
}

.org-page-eyebrow,
.org-profile-section-label {
  color: var(--accent);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.org-action-menu {
  position: relative;
}

.org-action-menu > summary {
  list-style: none;
  cursor: pointer;
}

.org-action-menu > summary::-webkit-details-marker { display: none; }

.org-action-menu-body {
  position: absolute;
  z-index: 20;
  top: calc(100% + 0.35rem);
  right: 0;
  min-width: 190px;
  display: grid;
  padding: 0.4rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
}

.org-action-menu-body button {
  padding: 0.55rem 0.65rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.org-action-menu-body button:hover { background: var(--surface-2); }

.org-profile-logo {
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border));
  border-radius: 18px;
  background: var(--surface);
  color: var(--accent);
  font-weight: 700;
  box-shadow: 0 14px 30px color-mix(in srgb, #0f172a 12%, transparent);
}

.org-profile-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 0.5rem;
  background: #fff;
}

.org-profile-hero {
  position: relative;
  overflow: hidden;
  margin-bottom: 0.9rem;
  border: 1px solid color-mix(in srgb, var(--accent) 20%, var(--border));
  border-radius: 18px;
  background:
    radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--accent) 15%, transparent) 0, transparent 30%),
    linear-gradient(145deg, var(--surface) 0%, color-mix(in srgb, var(--accent) 4%, var(--surface)) 100%);
  box-shadow: 0 14px 38px color-mix(in srgb, #0f172a 7%, transparent);
}

.org-profile-hero::before {
  content: "";
  position: absolute;
  top: -90px;
  right: -70px;
  width: 230px;
  height: 230px;
  border: 1px solid color-mix(in srgb, var(--accent) 15%, transparent);
  border-radius: 50%;
  pointer-events: none;
}

.org-profile-brand {
  position: relative;
  display: grid;
  grid-template-columns: var(--org-logo-size) minmax(0, 1fr) auto;
  gap: 1.15rem;
  align-items: center;
  padding: 1.25rem 1.35rem;
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 12%, var(--border));
}

.org-profile-logo {
  width: var(--org-logo-size);
  height: var(--org-logo-size);
  font-size: 1.25rem;
}

.org-profile-identity {
  min-width: 0;
}

.org-profile-identity h3 {
  margin: 0.32rem 0 0.15rem;
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  line-height: 1.15;
  letter-spacing: -0.03em;
}

.org-profile-identity p {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.86rem;
}

.org-active-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  padding: 0.22rem 0.48rem;
  border: 1px solid color-mix(in srgb, var(--success, #16a34a) 30%, var(--border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--success, #16a34a) 8%, var(--surface));
  color: var(--success, #15803d);
  font-size: 0.68rem;
  font-weight: 700;
}

.org-active-badge i {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 12%, transparent);
}

.org-profile-hero-actions {
  position: relative;
  align-self: start;
}

.org-profile-content {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.85fr);
  gap: 1rem;
  padding: 1.2rem 1.35rem 1.35rem;
}

.org-profile-narrative {
  min-width: 0;
  padding: 0.9rem 1rem;
  border: 1px solid color-mix(in srgb, var(--accent) 10%, var(--border));
  border-radius: 12px;
  background: color-mix(in srgb, var(--surface) 88%, transparent);
}

.org-profile-narrative > p {
  margin: 0.55rem 0 0;
  color: var(--text);
  font-size: 0.9rem;
  line-height: 1.72;
  text-wrap: pretty;
}

.org-profile-purpose {
  display: grid;
  gap: 0.2rem;
  margin-top: 0.8rem;
  padding: 0.7rem 0.8rem;
  border-left: 3px solid var(--accent);
  border-radius: 0 8px 8px 0;
  background: var(--org-accent-soft);
}

.org-profile-purpose strong {
  color: var(--accent);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.org-profile-purpose span {
  font-size: 0.82rem;
  line-height: 1.5;
}

.org-profile-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  align-content: start;
}

.org-profile-fact {
  min-width: 0;
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--surface);
  box-shadow: 0 5px 14px color-mix(in srgb, #0f172a 4%, transparent);
}

.org-profile-fact-icon {
  width: 1.8rem;
  height: 1.8rem;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: var(--org-accent-soft);
  color: var(--accent);
  font: 700 0.62rem/1 var(--mono);
}

.org-profile-fact > span:last-child {
  min-width: 0;
  display: grid;
  gap: 0.14rem;
}

.org-profile-fact small {
  color: var(--text-muted);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.org-profile-fact strong {
  overflow-wrap: anywhere;
  font-size: 0.78rem;
  line-height: 1.35;
}

.org-overview-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.7rem;
  margin-bottom: 0.9rem;
}

.org-overview-kpi {
  min-width: 0;
  display: flex;
  gap: 0.7rem;
  align-items: center;
  padding: 0.85rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: linear-gradient(150deg, var(--surface), color-mix(in srgb, var(--accent) 2%, var(--surface)));
  box-shadow: 0 6px 18px color-mix(in srgb, #0f172a 4%, transparent);
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.org-overview-kpi:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
  box-shadow: 0 10px 24px color-mix(in srgb, #0f172a 8%, transparent);
}

.org-overview-kpi-icon {
  width: 2.4rem;
  height: 2.4rem;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--org-accent-soft);
  color: var(--accent);
  font: 700 0.7rem/1 var(--mono);
}

.org-overview-kpi > div {
  min-width: 0;
}

.org-overview-kpi strong,
.org-overview-kpi span,
.org-overview-kpi small { display: block; }
.org-overview-kpi strong {
  font-size: 1.35rem;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.org-overview-kpi span {
  margin-top: 0.18rem;
  font-size: 0.78rem;
  font-weight: 650;
}
.org-overview-kpi small {
  overflow: hidden;
  margin-top: 0.1rem;
  color: var(--text-muted);
  font-size: 0.65rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.org-readiness-card,
.org-profile-editor,
.org-resource-card,
.org-module-grid,
.org-danger-zone {
  margin-top: 0.8rem;
}

.org-profile-tabs,
.org-resource-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.8rem 0;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid var(--border);
}

.org-resource-guide {
  margin-top: 0.85rem;
  padding: 0.8rem 0.9rem;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border));
  border-radius: 11px;
  background: color-mix(in srgb, var(--accent) 5%, var(--surface));
}

.org-resource-guide > div {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  font-size: 0.8rem;
  line-height: 1.5;
}

.org-resource-guide-icon {
  width: 1.45rem;
  height: 1.45rem;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font: 700 0.72rem/1 var(--mono);
}

.org-resource-guide ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.45rem;
  margin: 0.65rem 0 0;
  padding: 0;
  list-style: none;
}

.org-resource-guide li {
  padding: 0.5rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  color: var(--text-muted);
  font-size: 0.7rem;
  line-height: 1.4;
}

.org-resource-guide li strong { color: var(--text); }

.org-resource-tab-item {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

.org-profile-tabs button,
.org-resource-tabs button {
  padding: 0.4rem 0.65rem;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  font: 600 0.8rem/1.2 var(--font);
}

.org-profile-tabs button.active,
.org-resource-tabs button.active {
  border-color: var(--border);
  background: var(--surface-2);
  color: var(--accent);
}

.org-resource-tabs span {
  margin-left: 0.25rem;
  padding: 0.05rem 0.3rem;
  border-radius: 999px;
  background: var(--surface-2);
  font-size: 0.68rem;
}

.org-info-dot {
  position: relative;
  width: 1.15rem;
  height: 1.15rem;
  display: inline-grid;
  place-items: center;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--border));
  border-radius: 50% !important;
  background: var(--surface) !important;
  color: var(--accent);
  cursor: help;
  font: 700 0.65rem/1 var(--mono) !important;
}

.org-info-dot::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 50;
  right: -0.4rem;
  bottom: calc(100% + 0.55rem);
  width: min(270px, 70vw);
  padding: 0.6rem 0.7rem;
  border: 1px solid var(--orizon-border);
  border-radius: 8px;
  background: var(--orizon-surface);
  color: var(--orizon-text);
  box-shadow: var(--shadow-elevated);
  font: 500 0.72rem/1.45 var(--font);
  text-align: left;
  opacity: 0;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity 0.16s ease, transform 0.16s ease;
}

.org-info-dot:hover::after,
.org-info-dot:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

.org-info-dot:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.org-resource-card #org-domains,
.org-resource-card #org-perimeters,
.org-resource-card #org-users,
.org-resource-card #org-groups {
  gap: 0.5rem;
}

.org-resource-card .org-resource-item {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.65rem;
  align-items: center;
  padding: 0.7rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface);
}

.org-resource-marker {
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: var(--org-accent-soft);
  color: var(--accent);
  font: 700 0.72rem/1 var(--mono);
}

.org-resource-item-copy {
  min-width: 0;
  display: grid;
  gap: 0.1rem;
}

.org-resource-item-copy strong {
  overflow: hidden;
  font-size: 0.82rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.org-resource-item-copy small {
  overflow: hidden;
  color: var(--text-muted);
  font-size: 0.72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.org-profile-tab-panel {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.org-profile-tab-panel .span-2 { grid-column: 1 / -1; }

.org-logo-editor {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.3rem;
}

.org-logo-editor img {
  width: 150px;
  height: 64px;
  object-fit: contain;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 0.25rem;
  background: #fff;
}

.org-profile-form-actions {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border);
}

.org-profile-editor {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: grid;
  justify-items: end;
  margin: 0;
}

.org-profile-editor-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(148, 163, 184, 0.32);
  backdrop-filter: blur(2px);
}

.org-profile-editor-shell {
  position: relative;
  width: min(1320px, calc(100vw - 2rem));
  height: 100%;
  max-height: 100dvh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  border-left: 1px solid var(--border);
  background: var(--surface-2);
  box-shadow: -22px 0 58px rgb(15 23 42 / 22%);
  overflow: hidden;
}

.org-profile-editor-header {
  min-height: 88px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 240px) auto;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.org-profile-editor-header h3 {
  margin: 0.15rem 0 0.1rem;
  font-size: 1.2rem;
}

.org-profile-editor-header p { margin: 0; }

.org-profile-editor-progress {
  display: grid;
  gap: 0.35rem;
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 700;
}

.org-profile-editor-progress > div {
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--border);
}

.org-profile-editor-progress i {
  width: 0;
  height: 100%;
  display: block;
  border-radius: inherit;
  background: var(--accent);
  transition: width 0.2s ease;
}

.org-profile-editor-body {
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-columns: 245px minmax(460px, 1fr) 260px;
  overflow: hidden;
}

.org-profile-editor .org-profile-tabs {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 0.35rem;
  margin: 0;
  padding: 1rem 0.75rem;
  border: 0;
  border-right: 1px solid var(--border);
  background: var(--surface);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.org-profile-editor .org-profile-tabs button {
  width: 100%;
  min-height: 62px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.55rem;
  align-items: center;
  padding: 0.6rem;
  border: 1px solid transparent;
  border-radius: 10px;
  text-align: left;
}

.org-profile-editor .org-profile-tabs button.active {
  border-color: color-mix(in srgb, var(--accent) 24%, var(--border));
  background: color-mix(in srgb, var(--accent) 8%, var(--surface));
}

.org-profile-tab-icon {
  width: 1.9rem;
  height: 1.9rem;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: var(--surface-2);
  color: var(--text-muted);
  font: 700 0.65rem/1 var(--mono);
}

.org-profile-tabs button.active .org-profile-tab-icon {
  background: var(--accent);
  color: #fff;
}

.org-profile-editor .org-profile-tabs button > span:nth-child(2) {
  min-width: 0;
  display: grid;
  gap: 0.15rem;
}

.org-profile-editor .org-profile-tabs strong { color: var(--text); font-size: 0.78rem; }
.org-profile-editor .org-profile-tabs small { color: var(--text-muted); font-size: 0.64rem; font-weight: 500; }
.org-profile-editor .org-profile-tabs i { color: var(--text-muted); font: 700 0.65rem/1 var(--mono); }

.org-profile-editor-main {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.org-profile-editor-main form {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.org-profile-editor .org-profile-tab-panel {
  flex: 1 1 auto;
  min-height: 0;
  align-content: start;
  gap: 0.8rem;
  padding: 1rem;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.org-profile-editor .org-profile-tab-panel.hidden {
  display: none !important;
}

.org-profile-field-card,
.org-profile-editor .org-profile-tab-panel:not([data-org-profile-panel="identity"]) {
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 3px 14px rgb(15 23 42 / 4%);
}

.org-profile-field-card {
  padding: 0.85rem;
}

.org-profile-field-card h4 {
  margin: 0 0 0.7rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid var(--border);
  font-size: 0.82rem;
}

.org-profile-field-card .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.org-profile-editor .org-profile-tab-panel:not([data-org-profile-panel="identity"]) {
  margin: 0;
  padding: 1rem;
}

.org-profile-editor .org-profile-form-actions {
  position: relative;
  z-index: 3;
  flex: 0 0 auto;
  min-height: 64px;
  margin: 0;
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  box-shadow: 0 -8px 22px rgb(15 23 42 / 5%);
  backdrop-filter: blur(8px);
}

.org-profile-change-state {
  margin-right: auto;
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 650;
}

.org-profile-change-state.is-dirty { color: #b45309; }

.org-profile-live-preview {
  min-width: 0;
  min-height: 0;
  padding: 1rem;
  border-left: 1px solid var(--border);
  background: var(--surface);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.org-profile-section-label {
  display: block;
  margin-bottom: 1rem;
  color: var(--text-muted);
  font: 700 0.66rem/1 var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.org-profile-live-logo {
  width: 74px;
  height: 74px;
  display: grid;
  place-items: center;
  overflow: hidden;
  margin-bottom: 0.85rem;
  border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--border));
  border-radius: 18px;
  background: color-mix(in srgb, var(--accent) 8%, var(--surface));
  color: var(--accent);
  font: 800 1.1rem/1 var(--font);
}

.org-profile-live-logo img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.org-profile-live-preview h4 { margin: 0; font-size: 1.08rem; line-height: 1.3; }
.org-profile-live-preview > p { margin: 0.25rem 0 1rem; color: var(--text-muted); font-size: 0.72rem; }

.org-profile-live-facts {
  display: grid;
  gap: 0.55rem;
}

.org-profile-live-facts span {
  display: grid;
  gap: 0.12rem;
  padding: 0.6rem;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface-2);
}

.org-profile-live-facts small { color: var(--text-muted); font-size: 0.62rem; text-transform: uppercase; }
.org-profile-live-facts strong { overflow-wrap: anywhere; font-size: 0.73rem; }

.org-profile-live-note {
  margin-top: 0.9rem;
  padding: 0.7rem;
  border-radius: 9px;
  background: color-mix(in srgb, var(--accent) 6%, var(--surface));
  color: var(--text-muted);
  font-size: 0.68rem;
  line-height: 1.45;
}

body.org-profile-editor-open { overflow: hidden; }

.iso-risk-summary {
  margin-bottom: 0.85rem;
  padding: 0.85rem;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border));
  border-radius: 12px;
  background: color-mix(in srgb, var(--accent) 4%, var(--surface));
}

.iso-risk-summary-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: end;
  margin-bottom: 0.65rem;
}

.iso-risk-summary-head h3 { margin: 0.15rem 0 0; font-size: 0.95rem; }
.iso-risk-eyebrow { color: var(--accent); font: 700 0.64rem/1 var(--mono); letter-spacing: 0.08em; }

.iso-risk-summary-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.5rem;
}

.iso-risk-summary-grid article {
  min-width: 0;
  display: grid;
  gap: 0.12rem;
  padding: 0.65rem;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface);
}

.iso-risk-summary-grid span { color: var(--text-muted); font-size: 0.64rem; font-weight: 650; }
.iso-risk-summary-grid strong { font-size: 1.25rem; line-height: 1.15; }
.iso-risk-summary-grid small { color: var(--text-muted); font-size: 0.59rem; line-height: 1.35; }

.cia-card > small {
  min-height: 2.3em;
  display: block;
  color: var(--text-muted);
  font-size: 0.63rem;
  line-height: 1.35;
}

.iso27005-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr) auto) minmax(0, 1fr);
  gap: 0.4rem;
  align-items: center;
  margin-bottom: 0.8rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  overflow-x: auto;
}

.iso27005-flow > span {
  min-width: 135px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.1rem 0.45rem;
  align-items: center;
}

.iso27005-flow b {
  grid-row: 1 / 3;
  width: 1.7rem;
  height: 1.7rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 10%, var(--surface));
  color: var(--accent);
  font-size: 0.68rem;
}

.iso27005-flow strong { font-size: 0.7rem; }
.iso27005-flow small { color: var(--text-muted); font-size: 0.59rem; }
.iso27005-flow > i { color: var(--text-muted); font-style: normal; }

.risk-criteria-guide {
  margin-bottom: 0.75rem;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--border));
  border-radius: 9px;
  background: color-mix(in srgb, var(--accent) 4%, var(--surface));
}

.risk-criteria-guide > summary {
  padding: 0.65rem 0.75rem;
  color: var(--accent);
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 700;
}

.risk-criteria-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  padding: 0 0.75rem 0.75rem;
}

.risk-criteria-columns h4 { margin: 0 0 0.4rem; font-size: 0.72rem; }
.risk-criterion-row { display: grid; grid-template-columns: 1.6rem 1fr; gap: 0.4rem; margin-top: 0.3rem; }
.risk-criterion-row b { color: var(--accent); font: 700 0.68rem/1.35 var(--mono); }
.risk-criterion-row span { display: grid; }
.risk-criterion-row strong { font-size: 0.65rem; }
.risk-criterion-row small { color: var(--text-muted); font-size: 0.59rem; line-height: 1.35; }
.fieldset-help { margin: -0.15rem 0 0.65rem; color: var(--text-muted); font-size: 0.65rem; line-height: 1.4; }

.matrix-information-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.6rem;
  margin: 0.75rem 0;
}

.matrix-information-grid article {
  display: grid;
  gap: 0.15rem;
  padding: 0.7rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
}

.matrix-information-grid span { color: var(--text-muted); font-size: 0.63rem; }
.matrix-information-grid strong { font-size: 0.9rem; }
.matrix-information-grid small { color: var(--text-muted); font-size: 0.62rem; line-height: 1.35; }
.matrix-cell-above { outline: 3px solid rgb(127 29 29 / 42%); outline-offset: -3px; }
.matrix-cell-tolerated { outline: 1px solid rgb(255 255 255 / 36%); outline-offset: -1px; }

.risk-register-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 0.7rem;
}

.risk-register-summary span {
  padding: 0.35rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text-muted);
  font-size: 0.68rem;
}

.risk-register-summary span.is-warn { border-color: #f59e0b; color: #92400e; background: #fffbeb; }
.risk-register-summary strong { color: var(--text); }

.risk-trace-pill {
  display: inline-flex;
  padding: 0.25rem 0.45rem;
  border-radius: 999px;
  font-size: 0.64rem;
  font-weight: 700;
  white-space: nowrap;
}

.risk-trace-pill.is-complete { background: #dcfce7; color: #166534; }
.risk-trace-pill.is-partial { background: #fef3c7; color: #92400e; }

#register-tbody .risk-pill {
  min-width: 92px;
  display: inline-flex;
  justify-content: center;
  font-size: 0.62rem;
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .iso-risk-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .iso-risk-summary-grid,
  .matrix-information-grid,
  .risk-criteria-columns { grid-template-columns: 1fr; }
}

@media (max-width: 1080px) {
  .org-profile-editor-body { grid-template-columns: 220px minmax(0, 1fr); overflow: hidden; }
  .org-profile-live-preview { display: none; }
}

@media (max-width: 720px) {
  .org-profile-editor-shell { width: 100vw; max-height: 100dvh; overflow: hidden; }
  .org-profile-editor-header { grid-template-columns: minmax(0, 1fr) auto; }
  .org-profile-editor-progress { display: none; }
  .org-profile-editor-body { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; }
  .org-profile-editor .org-profile-tabs {
    overflow-x: auto;
    overflow-y: hidden;
    flex-direction: row;
    padding: 0.55rem;
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }
  .org-profile-editor .org-profile-tabs button {
    width: auto;
    min-width: 130px;
    min-height: 48px;
    grid-template-columns: auto minmax(0, 1fr);
  }
  .org-profile-editor .org-profile-tabs button i,
  .org-profile-editor .org-profile-tabs small { display: none; }
  .org-profile-field-card .form-grid,
  .org-profile-editor .org-profile-tab-panel { grid-template-columns: 1fr; }
  .org-profile-field-card .span-2,
  .org-profile-editor .org-profile-tab-panel .span-2 { grid-column: 1; }
  .org-profile-editor .org-profile-form-actions { flex-wrap: wrap; }
  .org-profile-change-state { width: 100%; order: -1; }
}

.org-module-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
}

.org-module-card {
  min-width: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
}

.org-module-card h3 { margin: 0; font-size: 1rem; }
.org-module-card p {
  flex: 1;
  margin: 0;
  color: var(--text-muted);
  font-size: 0.78rem;
}

.org-module-kicker {
  color: var(--accent);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.org-module-metric {
  font-size: 1.15rem;
  font-weight: 700;
}

.org-danger-zone {
  border-color: color-mix(in srgb, var(--danger) 35%, var(--border));
}

.org-danger-zone > summary {
  cursor: pointer;
  color: var(--text-muted);
  font-weight: 600;
}

.org-danger-zone[open] > summary { margin-bottom: 0.8rem; }

@media (max-width: 1050px) {
  .org-profile-content { grid-template-columns: 1fr; }
  .org-profile-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .org-resource-guide ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .org-overview-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .org-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .org-switcher {
    width: 100%;
    min-width: 0;
    margin: 0;
  }
  .org-switcher .field { flex: 1; min-width: 0; }
  .panel-organization { --org-logo-size: 76px; }
  .org-profile-brand {
    grid-template-columns: var(--org-logo-size) minmax(0, 1fr);
    padding: 1rem;
  }
  .org-profile-hero-actions { grid-column: 1 / -1; }
  .org-profile-content { padding: 0.85rem 1rem 1rem; }
  .org-profile-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .org-resource-tabs { align-items: center; }
  .org-overview-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .org-profile-tab-panel,
  .org-module-grid { grid-template-columns: 1fr; }
  .org-page-header,
  .org-readiness-card .org-docs-header { align-items: flex-start; }
}

@media (max-width: 480px) {
  .org-profile-brand {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .org-profile-logo { margin: 0 auto; }
  .org-active-badge { justify-self: center; }
  .org-profile-facts,
  .org-overview-kpis,
  .org-resource-guide ul { grid-template-columns: 1fr; }
  .org-profile-hero-actions { justify-self: center; }
}
.audit-ops-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.75rem 1rem;
  align-items: start;
  margin: 0.75rem 0 1rem;
}
.audit-guide-details {
  margin: 0;
  padding: 0.55rem 0.85rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: color-mix(in srgb, var(--surface) 92%, #e2e8f0);
}
.audit-guide-details > summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  user-select: none;
}
.audit-guide-details > summary::-webkit-details-marker { display: none; }
.audit-guide-details > summary::before { content: '▸ '; font-size: 0.7rem; color: #64748b; }
.audit-guide-details[open] > summary::before { content: '▾ '; }
.audit-guide-details > summary .hint { margin-left: auto; }
.audit-ops-bar .audit-guide {
  grid-column: auto;
  padding: 0.65rem 0 0.15rem;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.audit-alert-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}
.audit-alert {
  display: grid;
  gap: 0.15rem;
  padding: 0.85rem 1rem;
  border-radius: 14px;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  min-height: 5.2rem;
}
.audit-alert-kicker {
  font: 800 0.68rem/1.2 var(--font, "DM Sans", sans-serif);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}
.audit-alert-title {
  font: 800 1.35rem/1.15 var(--font, "DM Sans", sans-serif);
  color: #0f172a;
  letter-spacing: -0.02em;
}
.audit-alert-meta {
  font-size: 0.82rem;
  color: #475569;
}
.audit-alert.is-critical {
  border-color: #fca5a5;
  background: linear-gradient(160deg, #fef2f2, #fff7ed);
}
.audit-alert.is-critical .audit-alert-kicker { color: #b91c1c; }
.audit-alert.is-critical .audit-alert-title { color: #991b1b; }
.audit-alert.is-warn {
  border-color: #fcd34d;
  background: linear-gradient(160deg, #fffbeb, #fff7ed);
}
.audit-alert.is-warn .audit-alert-kicker { color: #b45309; }
.audit-alert.is-warn .audit-alert-title { color: #92400e; }
.audit-alert.is-ok {
  border-color: #86efac;
  background: linear-gradient(160deg, #f0fdf4, #ecfdf5);
}
.audit-alert.is-ok .audit-alert-kicker { color: #047857; }
.audit-alert.is-ok .audit-alert-title { color: #065f46; }
.audit-req-filters {
  margin: 0;
}
.audit-req-filters > summary {
  cursor: pointer;
  list-style: none;
  font-size: 0.8rem;
  font-weight: 650;
  color: #64748b;
  padding: 0.35rem 0.55rem;
  border: 1px dashed #cbd5e1;
  border-radius: 999px;
  user-select: none;
}
.audit-req-filters > summary::-webkit-details-marker { display: none; }
.audit-req-filters[open] > summary {
  border-style: solid;
  color: #0f172a;
  margin-bottom: 0.45rem;
}
.audit-req-filters .filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.audit-auto-check {
  list-style: none;
  margin: 0.45rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.audit-auto-check li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.45rem;
  align-items: center;
  padding: 0.4rem 0.55rem;
  border-radius: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 0.82rem;
}
.audit-auto-check li[data-ok="1"] {
  background: #ecfdf5;
  border-color: #a7f3d0;
}
.audit-auto-check li[data-ok="0"] {
  background: #fff7ed;
  border-color: #fed7aa;
}
.audit-auto-check em {
  font-style: normal;
  color: #64748b;
  font-size: 0.75rem;
}
.audit-meta-ai-hint {
  margin: 0.45rem 0 0.75rem;
}
.audit-guide-head {
  display: grid;
  gap: 0.1rem;
  margin-bottom: 0.65rem;
}
.audit-guide-head h3 {
  margin: 0;
  font-size: 1rem;
}
.audit-guide-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.55rem;
}
.audit-guide-card {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 0.45rem;
  row-gap: 0.12rem;
  padding: 0.65rem 0.7rem;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
  min-height: 5.2rem;
}
.audit-guide-card-num {
  grid-row: 1 / span 2;
  align-self: start;
  width: 1.55rem;
  height: 1.55rem;
  display: inline-grid;
  place-items: center;
  border-radius: 8px;
  background: #e2e8f0;
  color: #334155;
  font-size: 0.72rem;
  font-weight: 700;
}
.audit-guide-card strong {
  font-size: 0.82rem;
  color: #0f172a;
  line-height: 1.25;
}
.audit-guide-card p {
  margin: 0;
  grid-column: 2;
  color: #64748b;
  font-size: 0.72rem;
  line-height: 1.35;
}
.audit-guide-card-client {
  border-color: #fdba74;
  background: #fff7ed;
}
.audit-guide-card-client .audit-guide-card-num { background: #fed7aa; color: #9a3412; }
.audit-guide-card-ai {
  border-color: #93c5fd;
  background: #eff6ff;
}
.audit-guide-card-ai .audit-guide-card-num { background: #bfdbfe; color: #1d4ed8; }
.audit-guide-card-role {
  border-color: #c4b5fd;
  background: #f5f3ff;
}
.audit-guide-card-role .audit-guide-card-num { background: #ddd6fe; color: #5b21b6; }
.audit-ops-bar .audit-reminders,
.audit-ops-bar .audit-iso-readiness {
  min-width: 0;
}
@media (max-width: 900px) {
  .audit-ops-bar { grid-template-columns: 1fr; }
  .audit-alert-strip { grid-template-columns: 1fr; }
}
.audit-guide ol { margin: 0.35rem 0 0 1.1rem; padding: 0; }

/* Toolbar por fase del ciclo de auditoría */
.audit-crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.4rem;
  margin-top: 0.35rem;
  font-size: 0.86rem;
  color: var(--text-muted);
}
.audit-crumb-link {
  border: 0;
  background: transparent;
  color: var(--accent);
  cursor: pointer;
  font: inherit;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.audit-crumb-link:hover { opacity: 0.85; }
.audit-crumb-sep { opacity: 0.5; }
.audit-crumb-current {
  color: var(--text);
  font-weight: 600;
  max-width: min(420px, 70vw);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.audit-phase-nav {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.4rem;
  margin-top: 0.9rem;
  padding: 0.35rem;
  background: color-mix(in srgb, var(--surface-2, #f8fafc) 80%, #e2e8f0);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.audit-phase-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.45rem 0.35rem;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  font-family: var(--font);
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.audit-phase-btn:hover {
  background: #fff;
  border-color: var(--border);
  color: var(--text);
}
.audit-phase-btn.active {
  background: #fff;
  border-color: var(--accent);
  color: var(--accent);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--accent) 20%, transparent);
}
.audit-phase-num {
  width: 1.45rem;
  height: 1.45rem;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  background: #e2e8f0;
  color: inherit;
}
.audit-phase-btn.active .audit-phase-num {
  background: var(--accent);
  color: #fff;
}
.audit-phase-txt {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}
@media (max-width: 720px) {
  .audit-phase-nav { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .audit-phase-txt { font-size: 0.65rem; }
}

.audit-flow-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem 1.25rem;
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--border);
}
.audit-flow-toolbar [data-phase-panel] { display: none; }
.audit-flow-toolbar[data-active-phase="start"] [data-phase-panel="start"],
.audit-flow-toolbar[data-active-phase="eval"] [data-phase-panel="eval"],
.audit-flow-toolbar[data-active-phase="docs"] [data-phase-panel="docs"],
.audit-flow-toolbar[data-active-phase="plan"] [data-phase-panel="plan"],
.audit-flow-toolbar[data-active-phase="report"] [data-phase-panel="report"] {
  display: flex;
}
.audit-meta-details {
  margin: 0 0 0.85rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.35rem 0.7rem 0.55rem;
  background: color-mix(in srgb, var(--surface, #fff) 96%, #e2e8f0);
}
.audit-meta-details > summary {
  cursor: pointer;
  list-style: none;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-muted);
  padding: 0.35rem 0;
  user-select: none;
}
.audit-meta-details > summary::-webkit-details-marker { display: none; }
.audit-meta-details > summary::before { content: '▸ '; font-size: 0.7rem; }
.audit-meta-details[open] > summary::before { content: '▾ '; }
.audit-meta-details .audit-meta { margin-top: 0.45rem; }
.audit-eval-anchor { scroll-margin-top: 4.5rem; }
.audit-table tbody tr.active {
  background: #dbeafe;
  outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent);
  outline-offset: -2px;
}
.audit-flow-group {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}
.audit-flow-label {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
  opacity: 0.85;
}
.audit-flow-tools {
  margin-left: auto;
  color: var(--text-muted);
  font-size: 0.8rem;
}
.audit-flow-tools > summary {
  cursor: pointer;
  list-style: none;
  padding: 0.35rem 0.15rem;
  opacity: 0.75;
  user-select: none;
}
.audit-flow-tools > summary::-webkit-details-marker { display: none; }
.audit-flow-tools > summary::before {
  content: '▸ ';
  font-size: 0.7rem;
}
.audit-flow-tools[open] > summary::before { content: '▾ '; }
.audit-flow-tools[open] > summary { opacity: 0.95; }
.audit-flow-tools-body {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin-top: 0.45rem;
  padding: 0.55rem 0 0.15rem;
  border-top: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
}
@media (max-width: 900px) {
  .audit-flow-tools { margin-left: 0; width: 100%; }
}

.audit-extra-kpis {
  display: none !important;
}
#audit-analytics-grid { margin-bottom: 1rem; }
.audit-analytics-details {
  margin: 0 0 1rem;
  color: var(--text-muted);
  font-size: 0.85rem;
}
.audit-analytics-details > summary {
  cursor: pointer;
  list-style: none;
  padding: 0.35rem 0;
  user-select: none;
  opacity: 0.8;
}
.audit-analytics-details > summary::-webkit-details-marker { display: none; }
.audit-analytics-details > summary::before { content: '▸ '; font-size: 0.7rem; }
.audit-analytics-details[open] > summary::before { content: '▾ '; }
.audit-analytics-details[open] > summary { margin-bottom: 0.5rem; opacity: 0.95; }

.audit-fill-panel {
  margin: 0.5rem 0 0.85rem;
  padding: 0.75rem 0.9rem;
}
.audit-fill-grid {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  margin: 0.5rem 0;
}
.audit-fill-grid .field {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
}
.audit-req-table-dense { font-size: 0.82rem; }
.audit-req-table-dense td,
.audit-req-table-dense th { padding: 0.28rem 0.4rem; vertical-align: middle; }
.audit-inline-result {
  font: inherit;
  font-size: 0.75rem;
  max-width: 5.5rem;
  padding: 0.15rem 0.25rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: #fff;
}
.audit-flash-suggest {
  margin: 0.5rem 0 0.75rem;
  padding: 0.45rem 0.6rem;
  background: color-mix(in srgb, var(--accent, #2563eb) 8%, #f8fafc);
  border-radius: 6px;
}
.audit-req-actions { flex-wrap: wrap; }
.audit-ai-block .btn-group { margin-top: 0.4rem; }
.audit-bars { display: grid; gap: 0.4rem; }
.audit-bar-row {
  display: grid;
  grid-template-columns: 3rem 1fr 5rem;
  gap: 0.5rem;
  align-items: center;
  font-size: 0.85rem;
}
.audit-heat { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.audit-heat-cell {
  font-size: 0.72rem;
  padding: 0.2rem 0.4rem;
  border-radius: 4px;
  color: #fff;
}
.audit-view-toggle { margin: 0.75rem 0; }

.audit-ai-guidance {
  margin: 0.65rem 0 0.85rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: color-mix(in srgb, var(--accent) 4%, var(--surface, #fff));
  font-size: 0.82rem;
}
.audit-ai-guidance.hidden { display: none; }
.audit-ai-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.65rem;
  margin-bottom: 0.35rem;
}
.audit-ai-tags { display: inline-flex; flex-wrap: wrap; gap: 0.25rem; }
.audit-ai-tag {
  font-size: 0.68rem;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  border: 1px solid var(--border);
  color: var(--text-muted);
  background: var(--surface, #fff);
}
.audit-ai-block { margin: 0.25rem 0; }
.audit-ai-block > summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--text);
  list-style: none;
}
.audit-ai-block > summary::-webkit-details-marker { display: none; }
.audit-ai-block > summary::before { content: '▸ '; font-size: 0.7rem; color: var(--text-muted); }
.audit-ai-block[open] > summary::before { content: '▾ '; }
.audit-ai-block p {
  margin: 0.35rem 0 0.15rem;
  color: var(--text-muted);
  line-height: 1.45;
  white-space: pre-wrap;
}

.audit-flash-card {
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: linear-gradient(160deg, #f8fafc, #eef2ff);
}
.audit-tree-group { margin-bottom: 0.5rem; }
.audit-tree-group ul { list-style: none; margin: 0.35rem 0 0; padding: 0; }
.audit-tree-group li {
  padding: 0.35rem 0.4rem;
  cursor: pointer;
  border-radius: 4px;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}
.audit-tree-group li:hover { background: #f1f5f9; }
.audit-check-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.35rem;
  margin-top: 0.4rem;
}
.audit-req-extras {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px dashed var(--border);
  display: grid;
  gap: 0.65rem;
}
.audit-evidence-panel {
  margin: 0.35rem 0 0.85rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: color-mix(in srgb, var(--accent, #2563eb) 3%, var(--surface, #fff));
}
.audit-evidence-panel-head,
.audit-evidence-card,
.audit-evidence-card-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.audit-evidence-panel-head {
  justify-content: space-between;
  margin-bottom: 0.6rem;
}
.audit-evidence-card {
  align-items: flex-start;
  justify-content: space-between;
  flex-direction: column;
  padding: 0.65rem 0;
  border-top: 1px solid var(--border);
}
.audit-evidence-card-main {
  min-width: 0;
  width: 100%;
}
.audit-evidence-card-title {
  align-items: flex-start;
  flex-wrap: wrap;
}
.audit-evidence-card-title strong {
  overflow-wrap: anywhere;
}
.audit-evidence-card-actions {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  width: 100%;
  padding-top: 0.5rem;
  gap: 0.35rem;
}
.audit-evidence-meta,
.audit-evidence-empty,
.audit-evidence-notes p {
  margin: 0.25rem 0 0;
  color: var(--text-muted);
  font-size: 0.78rem;
  line-height: 1.45;
}
.audit-evidence-id {
  margin: 0.2rem 0 0;
  color: var(--text-muted);
  font-size: 0.72rem;
}
.audit-evidence-status,
.audit-evidence-count {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.4rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface, #fff);
  color: var(--text-muted);
  font-size: 0.68rem;
  font-weight: 600;
  white-space: nowrap;
}
.audit-evidence-status[data-status="approved"] {
  color: #166534;
  background: #dcfce7;
  border-color: #bbf7d0;
}
.audit-evidence-status[data-status="in_review"] {
  color: #92400e;
  background: #fef3c7;
  border-color: #fde68a;
}
.audit-evidence-status[data-status="obsolete"],
.audit-evidence-status[data-status="rejected"] {
  color: #991b1b;
  background: #fee2e2;
  border-color: #fecaca;
}
.audit-evidence-notes summary,
.audit-evidence-add > summary {
  margin-top: 0.35rem;
  color: var(--accent);
  font-size: 0.78rem;
  cursor: pointer;
}
.audit-evidence-notes p {
  max-width: 90ch;
  overflow-wrap: anywhere;
}
.audit-evidence-add {
  padding: 0.35rem 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.audit-evidence-add-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.75rem;
  margin-top: 0.65rem;
}
.audit-evidence-add-grid .field { margin: 0; }
.audit-evidence-picker-intro {
  padding: 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
}
.audit-evidence-picker-intro p { margin: 0.25rem 0 0; }
.audit-evidence-picker {
  display: grid;
  gap: 0.65rem;
  margin-top: 0.75rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface, #fff) 96%, var(--accent, #2563eb));
}
.audit-evidence-picker-tabs {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.audit-evidence-picker-tabs .active {
  color: var(--accent);
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent, #2563eb) 10%, var(--surface, #fff));
}
.audit-evidence-picker-filters {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) repeat(2, minmax(150px, 0.32fr));
  gap: 0.5rem;
}
.audit-evidence-picker-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: 0.75rem;
  align-items: start;
}
.audit-evidence-picker-results {
  display: grid;
  gap: 0.5rem;
  max-height: 480px;
  overflow: auto;
  padding-right: 0.2rem;
}
.audit-evidence-candidate {
  padding: 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  transition: border-color 0.15s ease, background 0.15s ease;
}
.audit-evidence-candidate.is-selected {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent, #2563eb) 8%, var(--surface, #fff));
}
.audit-evidence-candidate.is-unavailable { opacity: 0.72; }
.audit-evidence-candidate-select {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  cursor: pointer;
}
.audit-evidence-candidate-select input { margin-top: 0.2rem; }
.audit-evidence-candidate-select span { min-width: 0; }
.audit-evidence-candidate-code {
  display: block;
  margin-top: 0.1rem;
  color: var(--muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.72rem;
}
.audit-evidence-candidate-meta,
.audit-evidence-candidate-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.45rem;
  font-size: 0.75rem;
}
.audit-evidence-candidate-meta > span {
  padding: 0.15rem 0.35rem;
  border: 1px solid var(--border);
  border-radius: 999px;
}
.audit-evidence-score {
  color: var(--accent);
  font-weight: 700;
}
.audit-evidence-candidate-reasons {
  margin: 0.4rem 0 0;
  color: var(--muted);
  font-size: 0.76rem;
}
.audit-evidence-picker-preview {
  min-height: 220px;
  max-height: 480px;
  overflow: auto;
  padding: 0.7rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
}
.audit-evidence-picker-preview-head,
.audit-evidence-picker-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
}
.audit-evidence-picker-preview-head h5 { margin: 0.15rem 0 0.5rem; }
.audit-evidence-picker-preview-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}
.audit-evidence-picker-preview-meta div {
  padding: 0.35rem;
  border-radius: 6px;
  background: color-mix(in srgb, var(--border) 30%, transparent);
}
.audit-evidence-picker-preview-meta dt {
  color: var(--muted);
  font-size: 0.7rem;
}
.audit-evidence-picker-preview-meta dd { margin: 0.1rem 0 0; }
.audit-evidence-picker-preview-content pre {
  max-height: 260px;
  overflow: auto;
  white-space: pre-wrap;
  font-size: 0.75rem;
}
.audit-evidence-picker-footer {
  align-items: end;
  justify-content: flex-end;
  padding-top: 0.6rem;
  border-top: 1px solid var(--border);
}
.audit-evidence-picker-footer label {
  display: grid;
  gap: 0.25rem;
  font-size: 0.75rem;
}
.audit-evidence-role {
  padding: 0.15rem 0.4rem;
  border-radius: 999px;
  color: var(--accent);
  background: color-mix(in srgb, var(--accent, #2563eb) 10%, transparent);
  font-size: 0.7rem;
  font-weight: 700;
}
.audit-evidence-link-trace {
  margin: 0.2rem 0;
  color: var(--muted);
  font-size: 0.72rem;
}
.audit-evidence-undo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  padding: 0.45rem 0.6rem;
  border: 1px solid color-mix(in srgb, var(--accent, #2563eb) 35%, var(--border));
  border-radius: 7px;
  background: color-mix(in srgb, var(--accent, #2563eb) 8%, var(--surface, #fff));
}
.audit-evidence-target {
  background: color-mix(in srgb, var(--accent, #2563eb) 14%, var(--surface, #fff)) !important;
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}

.audit-report-workspace {
  display: grid;
  grid-template-columns: minmax(320px, 0.8fr) minmax(420px, 1.2fr);
  gap: 1rem;
  align-items: start;
  margin: 0.75rem 0;
}
.audit-report-editor,
.audit-report-preview-pane {
  min-width: 0;
  padding: 0.9rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
}
.audit-report-readiness-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.55rem;
  border: 1px solid #f59e0b;
  border-radius: 999px;
  background: #fffbeb;
  color: #92400e;
  font-size: 0.75rem;
  font-weight: 700;
}
.audit-report-readiness-badge.is-ready {
  border-color: #10b981;
  background: #ecfdf5;
  color: #065f46;
}
.audit-report-validation {
  margin: 0.65rem 0;
  padding: 0.65rem;
  border-left: 3px solid #f59e0b;
  background: #fffbeb;
  color: #78350f;
  font-size: 0.8rem;
}
.audit-report-validation.is-ready {
  border-left-color: #10b981;
  background: #ecfdf5;
  color: #065f46;
}
.audit-report-validation ul { margin: 0.35rem 0 0; padding-left: 1.2rem; }
.audit-report-form {
  max-height: 62vh;
  overflow: auto;
  padding-right: 0.35rem;
}
.audit-report-preview-pane {
  position: sticky;
  top: 0.5rem;
  max-height: 78vh;
  overflow: auto;
}
.audit-report-preview {
  padding: 1.25rem;
  border: 1px solid var(--border);
  background: #fff;
  color: #1f2937;
}
.audit-report-document {
  max-width: 760px;
  margin: 0 auto;
  font-size: 0.84rem;
  line-height: 1.55;
}
.audit-report-document header {
  padding: 1rem 0 1.4rem;
  border-bottom: 2px solid #1f4f82;
  text-align: center;
}
.audit-report-document h1 { font-size: 1.35rem; }
.audit-report-document h2 {
  margin-top: 1.2rem;
  font-size: 1rem;
  color: #1f4f82;
}
.audit-report-document table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.74rem;
}
.audit-report-document th,
.audit-report-document td {
  padding: 0.35rem;
  border: 1px solid #cbd5e1;
  vertical-align: top;
  text-align: left;
}
.audit-report-document th { background: #f1f5f9; }
.audit-report-state {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border: 1px solid #d97706;
  border-radius: 999px;
  color: #92400e;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
}
.audit-report-artifacts { margin-top: 1rem; }
.audit-report-artifact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.55rem 0;
  border-top: 1px solid var(--border);
}
.audit-report-artifact > div:first-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
}
.audit-report-mode > .audit-meta-details,
.audit-report-mode > .audit-eval-anchor {
  display: none;
}
@media (max-width: 980px) {
  .audit-report-workspace { grid-template-columns: 1fr; }
  .audit-report-preview-pane { position: static; max-height: none; }
  .audit-report-form { max-height: none; }
}
@media print {
  body.audit-print .panel-audits > *:not(.audit-layout),
  body.audit-print .audit-list-panel,
  body.audit-print .audit-workspace-bar,
  body.audit-print .tx-editor-head,
  body.audit-print .audit-report-editor,
  body.audit-print .audit-report-preview-pane > .row-between {
    display: none !important;
  }
  body.audit-print .audit-layout,
  body.audit-print .audit-workspace,
  body.audit-print .audit-detail,
  body.audit-print .audit-report-workspace,
  body.audit-print .audit-report-preview-pane {
    display: block !important;
    max-height: none !important;
    border: 0 !important;
    padding: 0 !important;
  }
  body.audit-print .audit-report-preview {
    border: 0;
    padding: 0;
  }
  @page { size: A4; margin: 16mm; }
}
@media (max-width: 720px) {
  .audit-evidence-panel-head,
  .audit-evidence-card {
    align-items: flex-start;
    flex-direction: column;
  }
  .audit-evidence-card-actions {
    justify-content: flex-start;
    width: 100%;
  }
  .audit-evidence-picker-filters,
  .audit-evidence-picker-layout {
    grid-template-columns: 1fr;
  }
  .audit-evidence-picker-preview {
    max-height: 380px;
  }
  .audit-evidence-picker-footer {
    align-items: stretch;
    flex-direction: column;
  }
}
.audit-pager { margin: 0.35rem 0 0.75rem; display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }

.audit-scope-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.75rem;
  margin: 0.35rem 0 0.65rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: color-mix(in srgb, var(--accent, #2563eb) 6%, #f8fafc);
  font-size: 0.84rem;
}
.audit-scope-igs {
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 0.02em;
}
.audit-complete-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0.35rem 0 0.6rem;
}
.audit-complete-chips .audit-chip {
  font-size: 0.7rem;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  white-space: nowrap;
}
.audit-complete-chips .audit-chip.ok {
  color: #166534;
  background: #dcfce7;
  border-color: #bbf7d0;
}
.audit-complete-chips .audit-chip.missing {
  color: #92400e;
  background: #fef3c7;
  border-color: #fde68a;
}

.audit-complete-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.82rem;
  color: var(--text-muted);
  white-space: nowrap;
}

.panel-audits.audit-complete-only #audit-ops-bar,
.panel-audits.audit-complete-only #audit-analytics-details,
.panel-audits.audit-complete-only #audit-kpis,
.panel-audits.audit-complete-only #audit-extra-kpis,
.panel-audits.audit-complete-only .audit-meta-details {
  display: none !important;
}

.audit-flash-mini {
  margin: 0.5rem 0 0.85rem;
  padding: 0.7rem 0.9rem;
  display: grid;
  gap: 0.5rem;
}
.audit-flash-mini .field { margin: 0; }

.audit-inline-edit {
  width: 100%;
  font: inherit;
  font-size: 0.78rem;
  padding: 0.15rem 0.3rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: #fff;
}

.field.is-invalid {
  outline: 1px solid #dc2626;
  border-radius: 4px;
}

@media print {
  body.audit-print header,
  body.audit-print nav,
  body.audit-print .btn-group,
  body.audit-print .audit-list-panel,
  body.audit-print #audit-ops-bar,
  body.audit-print .panel:not(.panel-audits) { display: none !important; }
  body.audit-print .panel-audits { display: block !important; }
  body.audit-print .audit-layout { display: block; }
  body.audit-print .audit-workspace { max-height: none; position: static; }
}

/* Auditorías: workspace profesional con sidebar y tarjetas */
.panel-audits {
  --audit-sidebar-width: 310px;
}

.panel-audits > .panel-header {
  margin-bottom: 0.85rem;
  padding: 0.2rem 0 0.9rem;
  border-bottom: 1px solid var(--border);
}

.audit-page-eyebrow,
.audit-sidebar-eyebrow {
  color: var(--accent);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.audit-page-tools,
.audit-detail-more {
  position: relative;
  flex: 0 0 auto;
  align-self: flex-start;
}

.audit-page-tools > summary,
.audit-detail-more > summary {
  width: auto;
  display: inline-flex;
  list-style: none;
  cursor: pointer;
}

.audit-page-tools > summary::-webkit-details-marker,
.audit-detail-more > summary::-webkit-details-marker { display: none; }

.audit-page-tools-menu,
.audit-detail-more-menu {
  position: absolute;
  z-index: 30;
  top: calc(100% + 0.4rem);
  right: 0;
  min-width: 220px;
  display: grid;
  gap: 0.15rem;
  padding: 0.4rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: 0 18px 40px color-mix(in srgb, #0f172a 16%, transparent);
}

.audit-page-tools-menu button,
.audit-detail-more-menu button {
  padding: 0.55rem 0.65rem;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.audit-page-tools-menu button:hover,
.audit-detail-more-menu button:hover { background: var(--surface-2); }
.audit-detail-more-menu button.danger { color: var(--danger); }

.audit-layout,
.audit-layout.audit-focused {
  grid-template-columns: var(--audit-sidebar-width) minmax(0, 1fr);
  gap: 0.9rem;
  align-items: start;
}

.audit-layout.audit-list-hidden,
.audit-layout.audit-focused.audit-list-hidden {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}
.audit-layout.audit-list-hidden > .audit-list-panel { display: none; }

.audit-list-panel {
  position: sticky;
  top: 0.7rem;
  min-width: 0;
  max-height: calc(100dvh - 5.5rem);
  display: flex;
  flex-direction: column;
  padding: 0.8rem;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: color-mix(in srgb, var(--surface) 96%, var(--accent));
  box-shadow: 0 10px 28px color-mix(in srgb, #0f172a 6%, transparent);
}

.audit-list-head { margin-bottom: 0.65rem; }
.audit-list-title {
  margin-top: 0.12rem;
  color: var(--text);
  font-size: 1.05rem;
  letter-spacing: -0.01em;
  text-transform: none;
}

.audit-sidebar-new {
  width: 100%;
  justify-content: center;
  margin-bottom: 0.65rem;
}

.audit-list-panel .audit-toolbar {
  display: grid;
  gap: 0.45rem;
  margin-bottom: 0.55rem;
  padding: 0;
  border: 0;
  background: transparent;
}

.audit-list-panel .audit-toolbar .search-box,
.audit-list-panel .audit-toolbar .filter-group,
.audit-list-panel .audit-toolbar .filter-chip { width: 100%; }

.audit-list-panel .audit-toolbar .filter-chip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
}

.audit-sidebar-filters {
  display: flex;
  gap: 0.28rem;
  margin-bottom: 0.6rem;
  overflow-x: auto;
  scrollbar-width: none;
}

.audit-sidebar-filters button {
  flex: 0 0 auto;
  padding: 0.28rem 0.46rem;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  font: 600 0.66rem/1.2 var(--font);
}

.audit-sidebar-filters button.active {
  border-color: color-mix(in srgb, var(--accent) 25%, var(--border));
  background: color-mix(in srgb, var(--accent) 8%, var(--surface));
  color: var(--accent);
}

.audit-list-wrap.audit-card-list {
  min-height: 0;
  max-height: none;
  display: grid;
  gap: 0.55rem;
  overflow-y: auto;
  padding: 0.1rem 0.1rem 0.2rem;
}

.audit-sidebar-card {
  min-width: 0;
  padding: 0.7rem;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--surface);
  cursor: pointer;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.audit-sidebar-card:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
  box-shadow: 0 8px 18px color-mix(in srgb, #0f172a 7%, transparent);
}

.audit-sidebar-card.active {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 5%, var(--surface));
  box-shadow: inset 3px 0 0 var(--accent);
}

.audit-sidebar-card-head,
.audit-sidebar-card-foot,
.audit-sidebar-progress {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
}

.audit-sidebar-card h4 {
  margin: 0.48rem 0 0.16rem;
  overflow: hidden;
  font-size: 0.84rem;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.audit-sidebar-card p {
  margin: 0;
  overflow: hidden;
  color: var(--text-muted);
  font-size: 0.68rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.audit-sidebar-progress { margin-top: 0.6rem; }
.audit-sidebar-progress .progress-track {
  flex: 1;
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--surface-2);
}
.audit-sidebar-progress .progress-fill {
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
}
.audit-sidebar-progress strong { font-size: 0.68rem; }

.audit-sidebar-card-foot {
  margin-top: 0.45rem;
  color: var(--text-muted);
  font-size: 0.63rem;
}
.audit-sidebar-card-foot .has-gaps { color: #b45309; font-weight: 700; }
.audit-sidebar-card-badges {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.audit-sidebar-card-meta {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.2rem;
  min-width: 0;
}
.audit-fw-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.12rem 0.42rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  background: #e2e8f0;
  color: #334155;
  white-space: nowrap;
}
.audit-fw-chip.fw-27001 { background: #dbeafe; color: #1d4ed8; }
.audit-fw-chip.fw-9001 { background: #dcfce7; color: #15803d; }
.audit-fw-chip.fw-27002 { background: #e0e7ff; color: #4338ca; }
.audit-fw-chip.fw-nist { background: #ffedd5; color: #c2410c; }
.audit-sidebar-auditee,
.audit-sidebar-due {
  overflow: hidden;
  color: var(--text-muted);
  font-size: 0.62rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.audit-pin-btn {
  border: 0;
  background: transparent;
  color: #94a3b8;
  cursor: pointer;
  font-size: 0.9rem;
  line-height: 1;
  padding: 0.05rem 0.15rem;
}
.audit-pin-btn.is-pinned { color: #ca8a04; }
.audit-lock-badge,
.audit-draft-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.08rem 0.35rem;
  border-radius: 999px;
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.audit-lock-badge { background: #fee2e2; color: #b91c1c; }
.audit-draft-badge { background: #fef3c7; color: #b45309; }
.audit-sidebar-card.is-compact {
  padding: 0.45rem 0.55rem;
}
.audit-sidebar-card.is-compact h4 { margin: 0.25rem 0 0.1rem; font-size: 0.78rem; }
.audit-sidebar-card.is-compact .audit-sidebar-progress { margin-top: 0.35rem; }
.audit-sidebar-card.is-compact .audit-sidebar-card-foot { margin-top: 0.25rem; }
.audit-list-density-btn { margin-left: auto; }
.audit-sidebar-continue {
  width: 100%;
  margin: 0 0 0.45rem;
}
.audit-sidebar-empty {
  padding: 1.2rem 0.7rem;
  border: 1px dashed var(--border);
  border-radius: 10px;
  color: var(--text-muted);
  font-size: 0.78rem;
  text-align: center;
}

.audit-workspace {
  position: static;
  min-width: 0;
  max-height: none;
  overflow: visible;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.audit-workspace > .tx-editor-empty {
  min-height: 260px;
  display: grid;
  place-items: center;
  padding: 2rem;
  border: 1px dashed var(--border);
  border-radius: 14px;
  background: var(--surface);
  text-align: center;
}

.audit-workspace-bar[hidden] { display: none !important; }

.audit-detail-hero {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.05rem 1.15rem;
  border: 1px solid color-mix(in srgb, var(--accent) 20%, var(--border));
  border-radius: 14px;
  background:
    radial-gradient(circle at 96% 0, color-mix(in srgb, var(--accent) 13%, transparent), transparent 35%),
    var(--surface);
  box-shadow: 0 10px 28px color-mix(in srgb, #0f172a 6%, transparent);
}

.audit-detail-identity h3 {
  margin: 0.42rem 0 0.18rem;
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  letter-spacing: -0.025em;
}

.audit-detail-identity p { margin: 0; }
.audit-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: flex-end;
}

.audit-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.48rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--text-muted);
  font-size: 0.65rem;
  font-weight: 700;
}
.audit-status-in_progress { border-color: #bfdbfe; background: #eff6ff; color: #1d4ed8; }
.audit-status-in_review { border-color: #fde68a; background: #fffbeb; color: #92400e; }
.audit-status-done { border-color: #bbf7d0; background: #f0fdf4; color: #166534; }
.audit-status-deprecated { border-color: #fecaca; background: #fef2f2; color: #991b1b; }

.audit-kpis {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0.7rem 0;
}

.audit-workspace-kpi {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.55rem;
  align-items: center;
  padding: 0.7rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
}

.audit-workspace-kpi-dot {
  width: 0.55rem;
  height: 2.5rem;
  border-radius: 999px;
  background: var(--accent);
}
.audit-workspace-kpi-gaps .audit-workspace-kpi-dot,
.audit-workspace-kpi-overdue .audit-workspace-kpi-dot { background: #d97706; }
.audit-workspace-kpi > div { min-width: 0; }
.audit-workspace-kpi strong,
.audit-workspace-kpi span,
.audit-workspace-kpi small { display: block; }
.audit-workspace-kpi strong { font-size: 1.15rem; line-height: 1; }
.audit-workspace-kpi span { margin-top: 0.16rem; font-size: 0.72rem; font-weight: 700; }
.audit-workspace-kpi small {
  overflow: hidden;
  margin-top: 0.1rem;
  color: var(--text-muted);
  font-size: 0.61rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#audit-workspace-phase-slot {
  margin-bottom: 0.7rem;
  padding: 0.7rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
}

#audit-workspace-phase-slot .audit-phase-nav {
  margin: 0;
  padding: 0.28rem;
  border: 0;
  background: var(--surface-2);
}

#audit-workspace-phase-slot .audit-flow-toolbar {
  margin-top: 0.6rem;
  padding-top: 0.6rem;
}

#audit-workspace-insights-slot > * { margin-bottom: 0.7rem; }

.audit-control-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin: 0.7rem 0;
}

.audit-control-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.8rem;
  border: 1px solid var(--border);
  border-left: 4px solid var(--text-muted);
  border-radius: 11px;
  background: var(--surface);
  cursor: pointer;
  transition: transform 0.16s ease, box-shadow 0.16s ease;
}
.audit-control-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px color-mix(in srgb, #0f172a 8%, transparent);
}
.audit-control-card.active { outline: 2px solid color-mix(in srgb, var(--accent) 40%, transparent); }
.audit-control-compliant { border-left-color: #16a34a; }
.audit-control-partially_compliant { border-left-color: #d97706; }
.audit-control-non_compliant { border-left-color: #dc2626; }
.audit-control-not_applicable { border-left-color: #64748b; }
.audit-control-card-head,
.audit-control-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.audit-control-card h4 {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.35;
}
.audit-control-card > p {
  display: -webkit-box;
  flex: 1;
  overflow: hidden;
  margin: 0;
  color: var(--text-muted);
  font-size: 0.72rem;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.audit-control-completeness {
  padding: 0.16rem 0.38rem;
  border-radius: 999px;
  background: #fef3c7;
  color: #92400e;
  font-size: 0.62rem;
  font-weight: 700;
}
.audit-control-completeness.complete { background: #dcfce7; color: #166534; }
.audit-control-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.audit-control-card-tags span {
  padding: 0.16rem 0.35rem;
  border-radius: 999px;
  background: var(--surface-2);
  color: var(--text-muted);
  font-size: 0.61rem;
}
.audit-control-card-foot {
  padding-top: 0.45rem;
  border-top: 1px solid var(--border);
  color: var(--text-muted);
  font-size: 0.66rem;
}
.audit-control-card-empty {
  grid-column: 1 / -1;
  padding: 1.4rem;
  border: 1px dashed var(--border);
  border-radius: 10px;
  color: var(--text-muted);
  text-align: center;
}

@media (max-width: 1180px) {
  .panel-audits { --audit-sidebar-width: 280px; }
  .audit-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 850px) {
  .audit-layout,
  .audit-layout.audit-focused { grid-template-columns: 1fr; }
  .audit-list-panel {
    position: static;
    max-height: none;
  }
  .audit-list-wrap.audit-card-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: 420px;
  }
  .audit-detail-hero { flex-direction: column; }
  .audit-detail-actions { justify-content: flex-start; }
  .audit-control-card-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .audit-list-wrap.audit-card-list,
  .audit-kpis { grid-template-columns: 1fr; }
  .audit-phase-num { display: none; }
}

.modal.hidden { display: none; }
.modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(148, 163, 184, 0.32);
}
.modal-card {
  position: relative;
  z-index: 1;
  width: min(520px, 100%);
  max-height: calc(100vh - 2rem);
  overflow: auto;
  padding: 1.1rem 1.25rem;
}
.hidden { display: none !important; }
@media (max-width: 960px) {
  .audit-layout { grid-template-columns: 1fr; }
  .audit-workspace { position: static; max-height: none; }
}

/* —— Expediente documental (Organización) —— */
.org-docs-header {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 0.5rem;
}
.org-docs-header h3 { margin: 0 0 0.25rem; }
.org-docs-summary {
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #f8fafc;
  margin-bottom: 0.85rem;
  line-height: 1.45;
}
.org-docs-section-title {
  margin: 1rem 0 0.4rem;
  font-size: 0.95rem;
  letter-spacing: 0.01em;
}
.org-docs-group {
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 0.35rem 0.65rem 0.55rem;
  margin-bottom: 0.45rem;
  background: #fff;
}
.org-docs-group > summary {
  cursor: pointer;
  padding: 0.35rem 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}
.org-docs-table-wrap { overflow-x: auto; margin-top: 0.35rem; }
.org-docs-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}
.org-docs-table th,
.org-docs-table td {
  text-align: left;
  padding: 0.3rem 0.45rem;
  border-bottom: 1px solid #e2e8f0;
  vertical-align: top;
}
.org-docs-table th {
  font-weight: 600;
  color: var(--text-muted);
  background: #f8fafc;
}
.org-docs-table tr.is-missing td { background: #fff7ed; }
.org-doc-library-toolbar {
  display: flex;
  align-items: end;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin: 0.55rem 0 0.35rem;
}
.org-doc-library-search {
  flex: 1 1 340px;
  margin: 0;
}
.org-doc-library-search input {
  width: 100%;
}
.org-doc-library-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  min-width: 235px;
}
.org-doc-library-pager {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.55rem;
}
.evid-lib-card {
  border: 1px solid #cbd5e1;
  background: #f8fafc;
}
.evid-lib-scroll {
  max-height: 360px;
  overflow: auto;
  margin-top: 0.5rem;
}
.evid-lib-card .org-docs-table td .btn-group {
  flex-wrap: wrap;
  gap: 0.25rem;
}
.soa-mini-list li {
  margin: 0.15rem 0;
  line-height: 1.25;
  font-size: 0.8rem;
}
.soa-coverage-table td code {
  font-weight: 600;
}
#org-soa-coverage-card .filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.8rem;
}
.org-doc-pill {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  border: 1px solid transparent;
}
.org-doc-pill-ok { background: #ecfdf5; color: #047857; border-color: #a7f3d0; }
.org-doc-pill-partial { background: #fffbeb; color: #b45309; border-color: #fde68a; }
.org-doc-pill-gap { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }
.org-doc-pill-gen { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.doc-idx-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  margin: 0.65rem 0 0.4rem;
}
.doc-idx-queues,
.doc-idx-saved-views,
.doc-idx-active-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  margin: 0.45rem 0;
}
.doc-idx-saved-views {
  padding-top: 0.45rem;
  border-top: 1px solid var(--border);
}
.doc-idx-filter-pill {
  display: inline-flex;
  padding: 0.1rem 0.4rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
  color: var(--text-muted);
  font-size: 0.72rem;
}
.doc-idx-explorer {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
  gap: 0.75rem;
  align-items: start;
}
.doc-idx-results { min-width: 0; }
.doc-idx-explorer .evid-lib-scroll { max-height: 560px; }
.doc-idx-preview {
  position: sticky;
  top: 0.75rem;
  max-height: 70vh;
  overflow: auto;
  min-height: 220px;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
}
.doc-idx-preview-head,
.doc-idx-preview-actions {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.doc-idx-preview-head h4 { margin: 0.15rem 0 0.5rem; }
.doc-idx-preview-actions {
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-bottom: 0.7rem;
}
.doc-idx-preview-meta {
  display: grid;
  gap: 0.3rem;
  margin: 0 0 0.75rem;
}
.doc-idx-preview-meta > div {
  display: grid;
  grid-template-columns: minmax(90px, 0.35fr) minmax(0, 1fr);
  gap: 0.5rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 65%, transparent);
}
.doc-idx-preview-meta dt {
  color: var(--text-muted);
  font-size: 0.75rem;
  font-weight: 600;
}
.doc-idx-preview-meta dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 0.78rem;
}
.doc-idx-preview-content pre {
  max-height: 42vh;
  overflow: auto;
  padding: 0.65rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #f8fafc;
  color: var(--text);
  font-family: var(--font);
  font-size: 0.78rem;
  line-height: 1.5;
  white-space: pre-wrap;
}
.doc-idx-preview-family,
.doc-idx-family {
  margin: 0.35rem 0;
  color: var(--text-muted);
  font-size: 0.75rem;
}
.doc-idx-preview-family summary,
.doc-idx-family summary { cursor: pointer; }
.doc-idx-search-excerpt {
  max-width: 70ch;
  margin-top: 0.3rem;
  color: var(--text-muted);
  font-size: 0.75rem;
  line-height: 1.4;
}
@media (max-width: 980px) {
  .doc-idx-explorer { grid-template-columns: 1fr; }
  .doc-idx-preview {
    position: static;
    max-height: none;
  }
}
.doc-idx-quality { margin: 0.4rem 0; }
.doc-idx-kpis {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.doc-control-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
  gap: 0.5rem;
}
.doc-control-kpi {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  min-height: 68px;
  padding: 0.65rem 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  background: #fff;
  color: #334155;
  text-align: left;
}
button.doc-control-kpi { cursor: pointer; font: inherit; }
button.doc-control-kpi:hover { border-color: #2563eb; box-shadow: 0 2px 8px rgb(15 45 90 / 10%); }
.doc-control-kpi strong { font-size: 1.35rem; line-height: 1; }
.doc-control-kpi span { font-size: 0.76rem; font-weight: 650; }
.doc-control-kpi-primary { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.doc-control-kpi-ok { background: #ecfdf5; border-color: #a7f3d0; color: #047857; }
.doc-control-kpi-warn { background: #fffbeb; border-color: #fde68a; color: #b45309; }
.doc-control-kpi-danger { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
.doc-control-kpi-muted { background: #f8fafc; color: #64748b; }
.doc-control-explanation {
  margin-top: 0.5rem;
  padding: 0.55rem 0.7rem;
  border-left: 3px solid #2563eb;
  border-radius: 0 6px 6px 0;
  background: #f8fafc;
  color: #475569;
  font-size: 0.79rem;
  line-height: 1.45;
}

.audit-doc-dashboard-head {
  gap: 1rem;
  align-items: flex-end;
}

.audit-doc-dashboard-filter {
  min-width: min(360px, 100%);
  margin: 0;
}

.audit-doc-dashboard-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: 0.65rem;
  margin: 1rem 0;
}

.audit-doc-kpi {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface-2);
}

.audit-doc-kpi strong {
  color: var(--accent);
  font-size: 1.2rem;
}

.audit-doc-kpi span,
.audit-doc-category-meta,
.audit-doc-status-line {
  color: var(--text-muted);
  font-size: 0.78rem;
}

.audit-doc-dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
  gap: 1.25rem;
  margin-bottom: 1rem;
}

.audit-doc-dashboard-grid h4 {
  margin-bottom: 0.65rem;
}

.audit-doc-category {
  margin-bottom: 0.8rem;
}

.audit-doc-category-label {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.28rem;
  font-size: 0.82rem;
}

.audit-doc-category-label span {
  color: var(--text-muted);
  text-align: right;
}

.audit-doc-bar-track {
  position: relative;
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #e2e8f0;
}

.audit-doc-bar-prepared,
.audit-doc-bar-approved {
  position: absolute;
  inset: 0 auto 0 0;
  border-radius: inherit;
}

.audit-doc-bar-prepared {
  background: #93c5fd;
}

.audit-doc-bar-approved {
  background: var(--success);
}

.audit-doc-category-meta {
  margin-top: 0.2rem;
}

.audit-doc-rings {
  display: flex;
  justify-content: center;
  gap: 0.8rem;
  flex-wrap: wrap;
}

.audit-doc-ring {
  width: 104px;
  height: 104px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(
    var(--accent) calc(var(--ring-pct) * 1%),
    #e2e8f0 0
  );
}

.audit-doc-ring-approved {
  background: conic-gradient(
    var(--success) calc(var(--ring-pct) * 1%),
    #e2e8f0 0
  );
}

.audit-doc-ring-audit {
  background: conic-gradient(
    var(--warning) calc(var(--ring-pct) * 1%),
    #e2e8f0 0
  );
}

.audit-doc-ring > div {
  width: 76px;
  height: 76px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--surface);
}

.audit-doc-ring strong {
  font-size: 1rem;
}

.audit-doc-ring span {
  color: var(--text-muted);
  font-size: 0.7rem;
}

.audit-doc-status-line {
  margin-top: 0.75rem;
  text-align: center;
}

@media (max-width: 820px) {
  .audit-doc-dashboard-grid {
    grid-template-columns: 1fr;
  }

  .audit-doc-category-label {
    flex-direction: column;
    gap: 0.1rem;
  }

  .audit-doc-category-label span {
    text-align: left;
  }
}
.doc-idx-folders { margin: 0.35rem 0 0.5rem; }
.doc-idx-folder-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  margin-bottom: 0.25rem;
}
.doc-idx-chip {
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #334155;
  border-radius: 999px;
  padding: 0.15rem 0.55rem;
  font-size: 0.75rem;
  cursor: pointer;
}
.doc-idx-chip:hover { background: #e2e8f0; }
.doc-idx-dup-row { background: #fff7ed; }
.doc-confidentiality {
  display: inline-block;
  border-radius: 999px;
  padding: 0.12rem 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  border: 1px solid #cbd5e1;
}
.doc-confidentiality-public { background: #ecfdf5; color: #047857; }
.doc-confidentiality-internal { background: #eff6ff; color: #1d4ed8; }
.doc-confidentiality-confidential { background: #fff7ed; color: #c2410c; }
.doc-confidentiality-restricted { background: #fef2f2; color: #b91c1c; }
.doc-idx-related-views {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 0.75rem;
  margin-top: 0.8rem;
}
.doc-idx-related-views .card { padding: 0.75rem; }
.doc-idx-related-views h4 { margin: 0; }
.doc-process-package-grid { display: grid; gap: 0.4rem; }

.panel-documents {
  --doc-accent: #315b7d;
  background:
    radial-gradient(circle at 92% 0, color-mix(in srgb, var(--doc-accent) 9%, transparent), transparent 28rem),
    var(--bg);
}

.document-workspace-hero {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 0.8rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid color-mix(in srgb, var(--doc-accent) 22%, var(--border));
  border-radius: 14px;
  background: linear-gradient(135deg, var(--surface), color-mix(in srgb, var(--doc-accent) 6%, var(--surface)));
  box-shadow: 0 8px 28px rgb(15 23 42 / 6%);
}

.document-workspace-eyebrow {
  color: var(--doc-accent);
  font: 750 0.68rem/1 var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.document-workspace-hero h2 {
  margin: 0.25rem 0 0.25rem;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
}

.document-workspace-hero p {
  max-width: 760px;
  margin: 0;
  color: var(--text-muted);
}

.document-workspace-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
}

.document-workspace-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.55rem;
  margin-bottom: 0.8rem;
}

.document-workspace-kpis article {
  min-width: 0;
  display: grid;
  gap: 0.18rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--surface);
  box-shadow: 0 3px 12px rgb(15 23 42 / 4%);
}

.document-workspace-kpis span {
  overflow: hidden;
  color: var(--text-muted);
  font-size: 0.66rem;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.document-workspace-kpis strong {
  color: var(--text);
  font-size: 1.4rem;
  line-height: 1.1;
}

.document-workspace-kpis small {
  overflow: hidden;
  color: var(--text-muted);
  font-size: 0.61rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.document-workspace-tabs {
  position: sticky;
  z-index: 8;
  top: 0;
  display: flex;
  gap: 0.3rem;
  overflow-x: auto;
  margin-bottom: 0.75rem;
  padding: 0.4rem;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  box-shadow: 0 4px 16px rgb(15 23 42 / 5%);
  backdrop-filter: blur(9px);
}

.document-workspace-tabs button {
  flex: 0 0 auto;
  padding: 0.55rem 0.75rem;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  font: 680 0.75rem/1.2 var(--font);
}

.document-workspace-tabs button:hover {
  color: var(--text);
  background: var(--surface-2);
}

.document-workspace-tabs button.active {
  border-color: color-mix(in srgb, var(--doc-accent) 28%, var(--border));
  background: color-mix(in srgb, var(--doc-accent) 9%, var(--surface));
  color: var(--doc-accent);
}

.document-workspace-view {
  min-height: 180px;
}

.document-workspace-view > .evid-lib-card,
.document-workspace-view > .doc-lifecycle-card,
.document-workspace-view > .card {
  margin: 0 !important;
}

.document-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.document-overview-card {
  min-width: 0;
  min-height: 112px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.8rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: var(--surface);
  color: var(--text);
  cursor: pointer;
  text-align: left;
  box-shadow: 0 4px 16px rgb(15 23 42 / 4%);
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.document-overview-card:hover {
  border-color: color-mix(in srgb, var(--doc-accent) 35%, var(--border));
  box-shadow: 0 9px 24px rgb(15 23 42 / 8%);
  transform: translateY(-1px);
}

.document-overview-icon {
  width: 3rem;
  height: 3rem;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: color-mix(in srgb, var(--doc-accent) 10%, var(--surface));
  color: var(--doc-accent);
  font: 800 0.7rem/1 var(--mono);
}

.document-overview-card > span:nth-child(2) {
  display: grid;
  gap: 0.28rem;
}

.document-overview-card strong { font-size: 0.9rem; }
.document-overview-card small { color: var(--text-muted); font-size: 0.72rem; line-height: 1.45; }
.document-overview-card i { color: var(--doc-accent); font-size: 1.1rem; }

.document-governance-note {
  margin-top: 0.75rem;
  padding: 0.8rem 0.9rem;
  border: 1px solid color-mix(in srgb, var(--doc-accent) 22%, var(--border));
  border-radius: 10px;
  background: color-mix(in srgb, var(--doc-accent) 5%, var(--surface));
  color: var(--text-muted);
  font-size: 0.76rem;
}

@media (max-width: 1150px) {
  .document-workspace-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .document-workspace-hero { flex-direction: column; }
  .document-workspace-actions { width: 100%; justify-content: flex-start; }
  .document-workspace-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .document-overview-grid { grid-template-columns: 1fr; }
}

/* Repositorio documental (Drive) */
.doc-drive-card { margin-top: 0.25rem; }
.doc-drive-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  align-items: center;
  justify-content: space-between;
  margin: 0.55rem 0 0.75rem;
}
.doc-drive-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  align-items: center;
  font-size: 0.84rem;
}
.doc-drive-crumb {
  border: 0;
  background: transparent;
  color: var(--doc-accent, #0f766e);
  cursor: pointer;
  padding: 0.15rem 0.25rem;
  font: inherit;
  font-weight: 600;
}
.doc-drive-crumb:hover { text-decoration: underline; }
.doc-drive-sep { color: var(--text-muted); }
.doc-drive-dropzone {
  position: relative;
  border: 1px dashed color-mix(in srgb, var(--border) 80%, var(--doc-accent, #0f766e));
  border-radius: 10px;
  background: var(--surface);
  min-height: 220px;
  padding: 0.55rem;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.doc-drive-dropzone.is-dragover {
  border-color: var(--doc-accent, #0f766e);
  background: color-mix(in srgb, var(--doc-accent, #0f766e) 8%, var(--surface));
}
.doc-drive-drop-hint {
  margin: 0.55rem 0 0.15rem;
  text-align: center;
}
.doc-drive-empty {
  padding: 2.2rem 1rem;
  text-align: center;
  color: var(--text-muted);
}
.doc-drive-empty strong {
  display: block;
  color: var(--text);
  margin-bottom: 0.35rem;
}
.doc-drive-table td { vertical-align: middle; }
.doc-drive-row.is-folder { cursor: pointer; }
.doc-drive-row.is-folder:hover { background: color-mix(in srgb, var(--doc-accent, #0f766e) 6%, transparent); }
.doc-drive-icon {
  display: inline-block;
  width: 0.7rem;
  height: 0.7rem;
  margin-right: 0.4rem;
  border-radius: 2px;
  vertical-align: middle;
}
.doc-drive-icon.is-folder {
  background: color-mix(in srgb, #ca8a04 55%, var(--surface));
  border: 1px solid color-mix(in srgb, #a16207 40%, var(--border));
}
.doc-drive-icon.is-file {
  background: color-mix(in srgb, var(--doc-accent, #0f766e) 35%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--doc-accent, #0f766e) 40%, var(--border));
}
.doc-drive-actions {
  display: flex;
  gap: 0.25rem;
  justify-content: flex-end;
  white-space: nowrap;
}
#doc-drive-msg[data-tone="ok"] { color: #0f766e; }
#doc-drive-msg[data-tone="warn"] { color: #b45309; }
#doc-drive-msg[data-tone="error"] { color: #b42318; }

.doc-drive-ext-panel {
  margin: 0.5rem 0 0.75rem;
  padding: 0.85rem 1rem;
  border: 1px solid color-mix(in srgb, #0f766e 22%, #e2e8f0);
  border-radius: 10px;
  background: color-mix(in srgb, #0f766e 5%, #fff);
}
.doc-drive-ext-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}
.doc-drive-ext-head p { margin: 0.25rem 0 0; }
.doc-drive-ext-list {
  display: grid;
  gap: 0.55rem;
}
.doc-drive-ext-item {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.55rem 0.65rem;
  background: #fff;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
}
.doc-drive-ext-url {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.78rem;
  word-break: break-all;
  color: #0f766e;
}
.doc-drive-ext-actions {
  display: flex;
  gap: 0.35rem;
  flex-shrink: 0;
}

.doc-drive-dup-panel {
  margin: 0 0 0.75rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid color-mix(in srgb, #b45309 35%, var(--border));
  border-radius: 10px;
  background: color-mix(in srgb, #b45309 7%, var(--surface));
}
.doc-drive-dup-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: flex-start;
  margin-bottom: 0.55rem;
}
.doc-drive-dup-head p { margin: 0.2rem 0 0; }
.doc-drive-dup-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.doc-drive-dup-item {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: center;
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
}
.doc-drive-dup-item small {
  display: block;
  color: var(--text-muted);
  margin-top: 0.15rem;
}
.doc-drive-dup-actions {
  display: flex;
  gap: 0.35rem;
  align-items: center;
}
.doc-drive-dup-badge {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.15rem 0.4rem;
  border-radius: 999px;
  border: 1px solid var(--border);
}
.doc-drive-dup-item.severity-exact .doc-drive-dup-badge {
  color: #b42318;
  border-color: color-mix(in srgb, #b42318 40%, var(--border));
}
.doc-drive-dup-item.severity-high .doc-drive-dup-badge {
  color: #b45309;
  border-color: color-mix(in srgb, #b45309 40%, var(--border));
}

.doc-process-package {
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  padding: 0.5rem;
}
.doc-process-package summary {
  cursor: pointer;
  display: flex;
  gap: 0.45rem;
  align-items: center;
}
.doc-package-item { padding: 0.22rem 0; border-top: 1px solid #f1f5f9; }
.evid-lib-notes {
  margin-top: 0.2rem;
  max-width: 28rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.evid-lib-modal .form-grid label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.85rem;
  font-weight: 600;
}
.evid-lib-modal .form-grid input,
.evid-lib-modal .form-grid select,
.evid-lib-modal .form-grid textarea {
  font-weight: 400;
  font-size: 0.9rem;
  padding: 0.45rem 0.6rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
}
.org-docs-phases,
.org-docs-clauses {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.4rem 0 0.75rem;
}
.org-doc-phase,
.org-doc-clause {
  font-size: 0.75rem;
  padding: 0.2rem 0.45rem;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: #f8fafc;
  color: var(--text-muted);
}
.org-doc-phase.is-ok,
.org-doc-clause-ok { background: #ecfdf5; color: #047857; border-color: #a7f3d0; }
.org-doc-clause-partial { background: #fffbeb; color: #b45309; border-color: #fde68a; }
.org-doc-clause-gap { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }
.org-docs-list-simple {
  list-style: none;
  margin: 0.35rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.25rem;
}
.org-docs-list-simple li {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  padding: 0.2rem 0;
  border-bottom: 1px solid #f1f5f9;
}

.doc-lifecycle-card {
  border: 1px solid #cbd5e1;
  background: #f8fafc;
}
.doc-lifecycle-pdca-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0.65rem 0;
}
.doc-lifecycle-phase {
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #fff;
  padding: 0.55rem 0.65rem;
  display: grid;
  gap: 0.15rem;
}
.doc-lifecycle-phase span {
  font-size: 1.35rem;
  font-weight: 700;
}
.doc-lifecycle-phase em {
  font-style: normal;
  color: var(--text-muted);
  font-size: 0.75rem;
}
.doc-lifecycle-phase.is-warn { background: #fffbeb; border-color: #fde68a; }
.doc-lifecycle-phase.is-alert { background: #fef2f2; border-color: #fecaca; }
.doc-lifecycle-cycle {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.65rem;
}
.doc-lifecycle-chip {
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 6px;
  padding: 0.35rem 0.55rem;
  display: inline-flex;
  gap: 0.45rem;
  align-items: center;
  cursor: pointer;
  font: inherit;
}
.doc-lifecycle-chip span {
  font-weight: 700;
  color: var(--accent, #2563eb);
}
.doc-lifecycle-alert-summary {
  margin-bottom: 0.45rem;
}
.doc-lifecycle-alert-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.doc-lifecycle-alert-list li {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
  padding: 0.25rem 0;
  border-bottom: 1px solid #e2e8f0;
}
.compliance-alert-center {
  margin: 0.9rem 0;
  padding: 0.8rem;
  border: 1px solid var(--border, #cbd5e1);
  border-radius: 10px;
  background: var(--surface, #fff);
}
.home-compliance-alerts { margin: 1rem 0; }
.home-compliance-alert-summary { margin: 0.55rem 0; }
.home-compliance-alert-list ul {
  display: grid;
  gap: 0.3rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.home-compliance-alert-list li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.5rem;
  align-items: center;
  padding: 0.25rem 0;
  border-bottom: 1px solid var(--border, #e2e8f0);
}
.home-compliance-alert-list time {
  color: var(--muted, #64748b);
  font-size: 0.75rem;
}
.compliance-alert-head h4,
.compliance-alert-head p { margin: 0; }
.compliance-alert-head p { margin-top: 0.2rem; }
.compliance-alert-filters {
  display: grid;
  grid-template-columns: repeat(3, minmax(140px, 0.35fr)) minmax(180px, 1fr);
  gap: 0.45rem;
  margin: 0.7rem 0;
}
.compliance-radar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-bottom: 0.35rem;
  font-size: 0.75rem;
}
.compliance-radar-legend span::before {
  display: inline-block;
  width: 0.65rem;
  height: 0.65rem;
  margin-right: 0.25rem;
  border-radius: 2px;
  content: "";
  background: #64748b;
}
.compliance-radar-legend span[data-domain="document"]::before,
.compliance-radar-stack i[data-domain="document"] { background: #2563eb; }
.compliance-radar-legend span[data-domain="evidence"]::before,
.compliance-radar-stack i[data-domain="evidence"] { background: #0f766e; }
.compliance-radar-legend span[data-domain="control"]::before,
.compliance-radar-stack i[data-domain="control"] { background: #7c3aed; }
.compliance-radar-legend span[data-domain="action"]::before,
.compliance-radar-stack i[data-domain="action"] { background: #d97706; }
.compliance-radar-legend span[data-domain="audit"]::before,
.compliance-radar-stack i[data-domain="audit"] { background: #475569; }
.compliance-radar-chart {
  display: grid;
  grid-template-columns: repeat(7, minmax(64px, 1fr));
  gap: 0.55rem;
  align-items: end;
  min-height: 240px;
  padding: 0.65rem;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 8px;
  overflow-x: auto;
  background: var(--orizon-surface);
}
.compliance-radar-column {
  display: grid;
  grid-template-rows: 170px auto auto;
  gap: 0.2rem;
  align-items: end;
  min-width: 62px;
  padding: 0.3rem;
  border: 0;
  border-radius: 6px;
  color: inherit;
  background: transparent;
  cursor: pointer;
}
.compliance-radar-column:hover,
.compliance-radar-column:focus-visible {
  background: color-mix(in srgb, var(--accent, #2563eb) 8%, transparent);
  outline: 1px solid var(--accent, #2563eb);
}
.compliance-radar-stack {
  display: flex;
  flex-direction: column-reverse;
  align-self: end;
  width: min(54px, 82%);
  min-height: 4px;
  margin: 0 auto;
}
.compliance-radar-stack i {
  display: block;
  min-height: 3px;
}
.compliance-radar-column strong,
.compliance-radar-column small { text-align: center; }
.compliance-alert-list {
  display: grid;
  gap: 0.45rem;
  max-height: 560px;
  overflow: auto;
  margin-top: 0.7rem;
}
.compliance-alert-item {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem;
  border: 1px solid var(--border, #e2e8f0);
  border-left-width: 4px;
  border-radius: 8px;
  background: var(--surface, #fff);
}
.compliance-alert-item[data-severity="critical"] { border-left-color: var(--danger, #dc2626); }
.compliance-alert-item[data-severity="warning"] { border-left-color: #d97706; }
.compliance-alert-item[data-severity="info"] { border-left-color: var(--accent, #2563eb); }
.compliance-alert-title-row,
.compliance-alert-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.compliance-alert-item-main { min-width: 0; }
.compliance-alert-item-main p { margin: 0.25rem 0; }
.compliance-alert-severity {
  padding: 0.1rem 0.35rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--border, #cbd5e1) 55%, transparent);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
}
.audit-cycle-timeline-card { grid-column: 1 / -1; }
.audit-cycle-timeline {
  display: flex;
  gap: 0;
  overflow-x: auto;
  padding: 0.5rem 0.25rem;
}
.audit-cycle-node {
  position: relative;
  display: grid;
  gap: 0.2rem;
  flex: 1 0 170px;
  min-width: 170px;
  padding: 0.7rem 0.7rem 0.7rem 2rem;
  border: 0;
  border-top: 2px solid var(--border, #cbd5e1);
  text-align: left;
  color: inherit;
  background: transparent;
  cursor: pointer;
}
.audit-cycle-node.is-current {
  border-top-color: var(--accent, #2563eb);
  background: color-mix(in srgb, var(--accent, #2563eb) 7%, transparent);
}
.audit-cycle-index {
  position: absolute;
  top: -0.75rem;
  left: 0.35rem;
  display: grid;
  place-items: center;
  width: 1.45rem;
  height: 1.45rem;
  border: 2px solid var(--border, #cbd5e1);
  border-radius: 50%;
  background: var(--surface, #fff);
  font-size: 0.7rem;
  font-weight: 700;
}
.audit-cycle-node.is-current .audit-cycle-index { border-color: var(--accent, #2563eb); }
.audit-cycle-node small,
.audit-cycle-node em {
  color: var(--muted, #64748b);
  font-size: 0.72rem;
}
@media (max-width: 900px) {
  .doc-lifecycle-pdca-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compliance-alert-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compliance-alert-item { flex-direction: column; }
  .compliance-radar-chart { min-width: 650px; }
}

/* ── Legibilidad y jerarquía global (WCAG) ────────────────────────────────
   Clases reutilizables:
   .ui-secondary  texto explicativo
   .metric-card / .metric-value / .metric-label  indicadores
   .info-label    etiquetas compactas de fichas
   .section-heading / .section-description  encabezados de sección
   .system-alert  errores de sistema y conectividad
*/
:root {
  --text-muted: #4a5568;
  --text-secondary: #4a5568;
  --muted: #4a5568;
  --metric-emphasis: #1d4ed8;
  --alert-danger-bg: rgba(220, 38, 38, 0.07);
  --alert-danger-border: rgba(185, 28, 28, 0.28);
  --alert-danger-text: #991b1b;
}

.ui-secondary,
.subtitle,
.hint,
.stat-label,
.kpi-label,
.kpi-sub,
.home-kpi-label,
.an-kpi-label,
.an-kpi-sub,
.sc-audit-kpi-l,
.org-page-header p,
.org-profile-identity p,
.org-overview-kpi small,
.org-profile-editor .org-profile-tabs small,
.card > p,
.card header p {
  color: var(--text-secondary);
  font-weight: 500;
}

.subtitle,
.hint,
.org-page-header p,
.org-profile-identity p,
.card > p,
.card header p {
  line-height: 1.55;
}

/* Los indicadores siguen la misma lectura: número dominante, etiqueta debajo. */
.metric-card,
.stat-card,
.kpi-card,
.home-kpi-card,
.an-kpi,
.org-overview-kpi {
  min-height: 6.5rem;
}

.kpi-top {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
}

.metric-value,
.stat-value,
.kpi-value,
.home-kpi-value,
.an-kpi .an-kpi-value,
.org-overview-kpi strong {
  color: var(--metric-emphasis);
  font-family: var(--mono);
  font-size: clamp(1.75rem, 2.4vw, 2.25rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.035em;
  font-variant-numeric: tabular-nums;
}

.metric-label,
.stat-label,
.kpi-label,
.home-kpi-label,
.an-kpi .an-kpi-label,
.org-overview-kpi span {
  display: block;
  margin-top: 0.45rem;
  color: var(--text-secondary);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.35;
}

/* Etiquetas consistentes para las fichas informativas de la derecha. */
.info-label,
.org-profile-fact small,
.org-profile-purpose strong,
.metric-block h4,
.ae-section-title,
.org-profile-section-label {
  color: var(--text-secondary);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

/* Aire vertical entre títulos, descripciones y contenido. */
.section-heading,
.card > h2,
.card > h3,
.card header h2,
.card header h3,
.org-docs-header h3,
.org-profile-field-card h4 {
  margin-bottom: 0.65rem;
}

.section-description,
.card > h2 + p,
.card > h3 + p,
.card header h2 + p,
.card header h3 + p,
.org-docs-header h3 + p,
.org-profile-field-card h4 + p {
  margin-top: 0;
  margin-bottom: 1rem;
}

.org-readiness-card .org-docs-header {
  margin-bottom: 1rem;
}

/* Banner accesible para fallos de sistema/conectividad. */
.system-alert {
  position: relative;
  z-index: 99;
  width: min(1180px, calc(100% - 2rem));
  margin: 0.75rem auto 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.7rem;
  align-items: center;
  padding: 0.72rem 0.85rem;
  border: 1px solid var(--alert-danger-border);
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface) 72%, var(--alert-danger-bg));
  color: var(--alert-danger-text);
  box-shadow: var(--shadow);
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.45;
}

.system-alert[hidden] { display: none; }

.system-alert-icon {
  display: grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: rgba(220, 38, 38, 0.1);
  font-size: 0.95rem;
}

.system-alert-message {
  min-width: 0;
  overflow-wrap: anywhere;
}

.system-alert-close {
  width: 1.9rem;
  height: 1.9rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  font: 700 1.05rem/1 var(--font);
  cursor: pointer;
}

.system-alert-close:hover,
.system-alert-close:focus-visible {
  background: rgba(220, 38, 38, 0.1);
  outline: 2px solid rgba(185, 28, 28, 0.35);
  outline-offset: 1px;
}

@media (max-width: 720px) {
  .metric-card,
  .stat-card,
  .kpi-card,
  .home-kpi-card,
  .an-kpi,
  .org-overview-kpi {
    min-height: 5.75rem;
  }

  .system-alert {
    width: calc(100% - 1rem);
    margin-top: 0.5rem;
  }
}

@media print {
  .header,
  .auth-portal,
  .nav,
  .system-alert {
    display: none !important;
  }
}

/* ── Navegación modular (heredada por Minimalismo Cálido) ─────────────── */
.nav-btn {
  border-color: var(--orizon-border);
  background: var(--orizon-surface);
  color: var(--orizon-text);
  box-shadow: var(--shadow-base);
}

.nav-btn:hover {
  border-color: var(--orizon-green);
  background: var(--orizon-green-soft);
  color: var(--orizon-ink);
  box-shadow: var(--shadow-base);
}

.nav-btn.active {
  border-color: var(--orizon-green);
  background: var(--orizon-green);
  color: var(--orizon-white);
}

.nav-group {
  border-color: var(--orizon-border);
  background: var(--orizon-bg);
}

.nav-group.is-active {
  border-color: rgba(111, 242, 24, 0.38);
  background: var(--orizon-bg);
}

.nav-group-label {
  color: #6ff218;
}

.nav-admin-btn {
  margin-left: auto;
  border-color: rgba(111, 242, 24, 0.65);
}

.nav-admin-btn::before {
  content: "⚙";
  margin-right: 0.35rem;
  font-size: 0.72rem;
}

.nav-admin-btn.rbac-denied,
.nav-admin-btn[hidden] {
  display: none !important;
}

/* ── Administración de usuarios y roles ───────────────────────────────── */
.panel-admin {
  --admin-green: var(--orizon-green);
}

.admin-page-eyebrow {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--admin-green);
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.admin-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.admin-org-assign-callout {
  display: grid;
  gap: 0.25rem;
  margin: 0 0 1rem;
  padding: 0.75rem 0.9rem;
  border: 1px solid #bfdbfe;
  border-radius: 12px;
  background: #eff6ff;
}
.admin-org-assign-callout strong {
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #1d4ed8;
}
.admin-org-assign-callout > span {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
}
.admin-org-assign-callout .hint { margin: 0; }
.admin-org-assign-badge {
  margin: 0.35rem 0 0;
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  background: #dbeafe;
  color: #1e40af;
  font-size: 0.78rem;
  font-weight: 600;
}

.admin-summary-card {
  position: relative;
  min-width: 0;
  min-height: 120px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  padding: 1rem 1.1rem;
  border: 1px solid var(--orizon-border);
  border-radius: 16px;
  background: var(--orizon-surface);
  box-shadow: var(--shadow);
}

.admin-summary-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--admin-green);
}

.admin-summary-card > span {
  color: var(--orizon-muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.admin-summary-card strong {
  margin: 0.35rem 0;
  color: var(--admin-green);
  font: 750 2rem/1 var(--mono);
}

.admin-summary-card small {
  overflow: hidden;
  color: var(--orizon-muted);
  font-size: 0.72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(300px, 0.7fr);
  gap: 1rem;
  align-items: start;
}

.admin-users-card,
.admin-roles-card {
  min-width: 0;
  margin: 0;
}

.admin-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.admin-card-header h3 {
  margin: 0 0 0.25rem;
  color: var(--orizon-ink);
}

.admin-card-header p {
  margin: 0;
}

.admin-search {
  min-width: min(260px, 100%);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-left: 0.75rem;
  border: 1px solid var(--orizon-border);
  border-radius: 9px;
  background: var(--orizon-bg);
  color: var(--orizon-muted);
}

.admin-search:focus-within {
  border-color: var(--admin-green);
  box-shadow: 0 0 0 4px rgba(4, 120, 87, 0.08);
}

.admin-search input {
  min-width: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.admin-user-identity {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 190px;
}

.admin-user-avatar {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  flex: 0 0 36px;
  border-radius: 10px;
  background: rgba(4, 120, 87, 0.11);
  color: var(--admin-green);
  font-size: 0.8rem;
  font-weight: 800;
}

.admin-user-identity > span:last-child {
  min-width: 0;
}

.admin-user-identity strong,
.admin-user-identity small {
  display: block;
}

.admin-user-identity strong {
  overflow: hidden;
  color: var(--orizon-ink);
  text-overflow: ellipsis;
}

.admin-user-identity small {
  margin-top: 0.15rem;
  color: var(--orizon-muted);
}

.admin-role-pill,
.admin-status-pill,
.admin-superadmin-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.22rem 0.55rem;
  border: 1px solid var(--orizon-border);
  border-radius: 999px;
  background: var(--orizon-surface-alt);
  color: var(--orizon-muted);
  font-size: 0.68rem;
  font-weight: 700;
  white-space: nowrap;
}

.admin-role-pill[data-role="administrador"],
.admin-superadmin-pill {
  border-color: rgba(216, 30, 46, 0.22);
  background: var(--orizon-green-soft);
  color: var(--admin-green);
}

.admin-status-pill.is-active {
  border-color: rgba(216, 30, 46, 0.22);
  background: var(--orizon-green-soft);
  color: var(--orizon-green);
}

.admin-status-pill.is-inactive {
  border-color: rgba(185, 28, 28, 0.23);
  background: rgba(220, 38, 38, 0.08);
  color: var(--semantic-danger);
}

.admin-row-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.35rem;
  white-space: nowrap;
}

.admin-inline-message {
  margin-bottom: 0.75rem;
  padding: 0.65rem 0.8rem;
  border: 1px solid var(--orizon-border);
  border-radius: 9px;
  background: var(--orizon-surface-alt);
  color: var(--orizon-muted);
  font-size: 0.78rem;
}

.admin-inline-message[data-tone="success"] {
  border-color: rgba(4, 120, 87, 0.24);
  color: var(--orizon-green);
}

.admin-inline-message[data-tone="error"] {
  border-color: rgba(185, 28, 28, 0.24);
  color: var(--semantic-danger);
}

.admin-backup-card {
  margin: 0 0 1.25rem;
}

.admin-backup-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
  margin: 0.85rem 0 0.5rem;
}

.admin-backup-import-label {
  cursor: pointer;
  margin: 0;
}

.admin-backup-preview {
  margin: 0.75rem 0 0;
  padding: 0.75rem 0.9rem;
  max-height: 220px;
  overflow: auto;
  border: 1px solid var(--orizon-border-solid, #E6EAF0);
  border-radius: 10px;
  background: #F8FAFC;
  color: #334155;
  font: 500 0.75rem/1.45 "JetBrains Mono", ui-monospace, monospace;
  white-space: pre-wrap;
}

.admin-roles-list {
  display: grid;
  gap: 0.6rem;
}

.admin-role-card {
  padding: 0.75rem;
  border: 1px solid var(--orizon-border);
  border-radius: 12px;
  background: var(--orizon-bg);
}

.admin-role-card > div {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
}

.admin-role-card > div > span:nth-child(2) {
  min-width: 0;
  flex: 1;
}

.admin-role-system {
  padding: 0.16rem 0.38rem;
  border: 1px solid var(--orizon-border);
  border-radius: 999px;
  color: var(--orizon-muted);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admin-role-actions {
  display: flex;
  gap: 0.15rem;
}

.admin-role-actions .btn {
  padding: 0.2rem 0.35rem;
  font-size: 0.62rem;
}

.admin-role-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  margin-top: 0.32rem;
  border-radius: 50%;
  background: var(--orizon-muted);
}

.admin-role-card[data-role="administrador"] .admin-role-dot {
  background: var(--admin-green);
  box-shadow: 0 0 0 4px rgba(4, 120, 87, 0.08);
}

.admin-role-card strong,
.admin-role-card small {
  display: block;
}

.admin-role-card strong {
  color: var(--orizon-ink);
  font-size: 0.82rem;
}

.admin-role-card small {
  margin-top: 0.2rem;
  color: var(--orizon-muted);
  font-size: 0.7rem;
  line-height: 1.4;
}

.admin-role-card details {
  margin-top: 0.65rem;
  color: var(--orizon-muted);
  font-size: 0.7rem;
}

.admin-role-card summary {
  cursor: pointer;
  font-weight: 650;
}

.admin-role-card ul {
  max-height: 150px;
  overflow: auto;
  margin: 0.5rem 0 0;
  padding-left: 1.1rem;
}

.admin-role-card li {
  margin-bottom: 0.25rem;
}

.admin-user-editor {
  max-width: 980px;
  margin: 1rem auto 0;
  border-color: rgba(4, 120, 87, 0.24);
}

.admin-user-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-user-form-grid .field small {
  color: var(--orizon-muted);
  font-size: 0.68rem;
}

.admin-active-toggle {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.8rem;
  border: 1px solid var(--orizon-border);
  border-radius: 10px;
  background: var(--orizon-bg);
  cursor: pointer;
}

.admin-active-toggle input {
  width: 18px;
  height: 18px;
}

.admin-active-toggle strong,
.admin-active-toggle small {
  display: block;
}

.admin-active-toggle strong {
  color: var(--orizon-ink);
  font-size: 0.8rem;
}

.admin-active-toggle small {
  margin-top: 0.15rem;
  color: var(--orizon-muted);
  font-size: 0.68rem;
}

.admin-permissions-fieldset {
  margin: 0 0 1rem;
  padding: 0.8rem;
  border: 1px solid var(--orizon-border);
  border-radius: 12px;
}

.admin-permissions-fieldset legend {
  padding: 0 0.4rem;
  color: var(--orizon-ink);
  font-size: 0.78rem;
  font-weight: 700;
}

.admin-permissions-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem;
}

.admin-permission-option {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.6rem;
  border: 1px solid var(--orizon-border);
  border-radius: 9px;
  background: var(--orizon-bg);
  cursor: pointer;
}

.admin-permission-option:has(input:checked) {
  border-color: rgba(4, 120, 87, 0.32);
  background: rgba(4, 120, 87, 0.045);
}

.admin-permission-option input {
  width: 16px;
  height: 16px;
  margin-top: 0.05rem;
}

.admin-permission-option span {
  min-width: 0;
}

.admin-permission-option strong,
.admin-permission-option code {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-permission-option strong {
  color: var(--orizon-text);
  font-size: 0.68rem;
}

.admin-permission-option code {
  margin-top: 0.16rem;
  color: var(--orizon-muted);
  font-size: 0.6rem;
}

.admin-form-error {
  margin: 0 0 0.8rem;
  padding: 0.65rem 0.8rem;
  border: 1px solid rgba(185, 28, 28, 0.25);
  border-radius: 9px;
  background: rgba(220, 38, 38, 0.08);
  color: var(--semantic-danger);
  font-size: 0.78rem;
}

.admin-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

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

  .admin-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .nav-admin-btn {
    margin-left: 0;
  }

  .admin-summary-grid,
  .admin-user-form-grid {
    grid-template-columns: 1fr;
  }

  .admin-permissions-grid {
    grid-template-columns: 1fr;
  }

  .admin-card-header {
    flex-direction: column;
  }

  .admin-search {
    width: 100%;
  }

  .admin-row-actions {
    flex-direction: column;
  }
}

/* ── GAMR All Light · Minimalismo Cálido (Arena + Oliva) ─────────────── */
:root {
  color-scheme: only light !important;
  --bg: #F4F6F9;
  --surface: #FFFFFF;
  --surface-2: #EFECE6;
  --border: #E4E0D8;
  --text: #444643;
  --text-muted: #6F726C;
  --orizon-bg: #F4F6F9;
  --orizon-surface: #FFFFFF;
  --orizon-surface-alt: #EFECE6;
  --orizon-dark: #EFECE6;
}

html,
body,
body:not(.auth-required),
body:not(.auth-required) .main,
body:not(.auth-required) .panel,
body:not(.auth-required) .panel.active {
  background: #F4F6F9 !important;
  color: #444643;
}

/* Estructuras, marcos y zonas de navegación */
.header,
.footer,
.nav,
.nav-group,
.nav-group.is-active,
.system-alert,
.panel > .panel-header,
.panel > .home-overview-header,
.card,
.table-wrap,
.data-table,
.audit-workspace,
.audit-list-panel,
.audit-report-editor,
.audit-report-preview-pane,
.audit-cabin-sidebar,
.audit-cabin-main,
.audit-cabin-context,
.audit-review-cabin,
.audit-list-panel .audit-toolbar,
.document-workspace-hero,
.org-page-header,
.audit-detail-hero,
.asset-modal,
.asset-modal-header,
.asset-modal-footer,
.org-profile-editor-shell,
.org-profile-editor-header,
.org-profile-form-actions,
.admin-users-card,
.admin-roles-card,
.admin-user-editor {
  border-color: #e5e7eb !important;
  background: #ffffff !important;
  color: #1f2937 !important;
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.07);
}

/* Superficies secundarias: siempre grises claras */
.stat-card,
.kpi-card,
.home-kpi-card,
.metric-card,
.an-kpi,
.guide,
.fieldset,
.org-overview-kpi,
.document-workspace-kpis article,
.document-overview-card,
.home-readiness-card,
.audit-workspace-kpi,
.audit-control-card,
.audit-req-form,
.admin-summary-card,
.admin-role-card,
.admin-permission-option,
.admin-active-toggle,
.doc-control-kpi,
.compliance-alert-item,
.audit-cycle-node,
.org-resource-guide,
.admin-inline-message {
  border-color: #e5e7eb !important;
  background: #f8f9fa !important;
  color: #1f2937 !important;
}

/* Autenticación completamente clara */
.auth-portal {
  background: #f4f5f7 !important;
  color: #1f2937 !important;
}

.auth-portal-shell,
.auth-portal-panel {
  border-color: #dbe1e8 !important;
  background: #ffffff !important;
  color: #1f2937 !important;
}

.auth-portal-brand {
  border-right: 1px solid #e5e7eb;
  background:
    radial-gradient(circle at 88% 10%, rgba(216, 30, 46, 0.10), transparent 18rem),
    #f8f9fa !important;
  color: #1f2937 !important;
}

.auth-portal-brand h1,
.auth-portal-brand p,
.auth-portal-brand small,
.auth-trust-list,
.auth-panel-heading h2,
.auth-field,
.auth-mobile-brand {
  color: #1f2937 !important;
}

.auth-portal-brand p,
.auth-portal-brand small,
.auth-panel-heading p,
.auth-check,
.auth-panel-footer {
  color: #64748b !important;
}

.auth-trust-list li span {
  background: var(--orizon-green-soft) !important;
  color: var(--orizon-green) !important;
}

/* Header claro */
.header h1,
.header .header-brand h1,
.header .subtitle,
.header .org-switcher .field,
.header .nav-group-label,
.footer,
.system-alert {
  color: #1f2937 !important;
}

.header .subtitle,
.header .org-switcher .field,
.header .nav-group-label {
  color: #64748b !important;
}

.header .org-switcher select,
.header .rbac-role-badge,
.header .workspace-sync-badge {
  color-scheme: only light !important;
  border-color: #cbd5e1 !important;
  background: #ffffff !important;
  color: #1f2937 !important;
}

/* Todos los botones parten de una superficie blanca */
button,
.btn,
.btn-primary,
.btn-secondary,
.btn-ghost,
.nav-btn,
.subnav-btn,
.header .btn,
.header .btn-secondary,
.header .btn-ghost {
  border-color: #cbd5e1 !important;
  border-radius: 6px;
  background: #ffffff !important;
  color: #1f2937 !important;
  box-shadow: none;
}

button:hover,
.btn:hover,
.nav-btn:hover,
.subnav-btn:hover,
.header .btn:hover {
  border-color: #2563eb !important;
  background: #eff6ff !important;
  color: #1e3a8a !important;
}

/* Solo las acciones principales y estados activos usan verde, nunca oscuro */
.btn-primary,
.auth-submit-btn,
.nav-btn.active {
  border-color: var(--orizon-green) !important;
  background: var(--orizon-green) !important;
  color: #ffffff !important;
}

.btn-primary:hover,
.auth-submit-btn:hover,
.nav-btn.active:hover {
  border-color: var(--orizon-green-hover) !important;
  background: var(--orizon-green-hover) !important;
  color: #ffffff !important;
}

/* Global semantic helpers: replaces former inline presentation in index.html. */
.table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

.work-queue-heading,
.scenario-register-heading {
  align-items: center;
  flex-wrap: wrap;
}

.work-queue-heading {
  margin-bottom: var(--space-3);
}

.work-queue-title,
.scenario-register-title,
.org-group-description {
  margin: 0;
}

.panel-heading-layout {
  align-items: flex-start;
  gap: var(--space-4);
  flex-wrap: wrap;
}

.file-picker-action {
  margin: 0;
  cursor: pointer;
}

.scenario-register-heading {
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.scenario-register-description {
  margin: var(--space-1) 0 0;
}

.scenario-evaluation-heading,
.audit-meta-actions {
  margin-bottom: var(--space-3);
}

.scenario-control-action {
  align-self: end;
}

.scenario-generator-actions {
  margin-top: var(--space-3);
}

.risk-level-very-low {
  background: #d3ff4e;
  color: var(--orizon-ink);
}

.risk-level-low {
  background: #02a45a;
  color: var(--orizon-ink);
}

.risk-level-medium {
  background: #ffa600;
  color: var(--orizon-ink);
}

.risk-level-high {
  background: #ff1a00;
  color: var(--orizon-ink);
}

.risk-level-very-high {
  background: #c00000;
  color: var(--orizon-white);
}

.form-field-wide,
.role-description-field {
  grid-column: 1 / -1;
}

.governance-card-spacing {
  margin: var(--space-4) 0;
}

.document-search-field {
  min-width: 280px;
}

.document-filter-control {
  margin: 0;
}

.document-iso-field {
  min-width: 120px;
}

.inline-editor-card {
  margin-top: var(--space-4);
}

.organization-create-card {
  margin-bottom: var(--space-4);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1rem 1.1rem 1.15rem;
  background: var(--surface);
  transition: box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
.organization-create-card.is-highlighted {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--border));
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent),
    0 12px 28px color-mix(in srgb, #0f172a 8%, transparent);
  background: color-mix(in srgb, var(--surface) 92%, var(--accent));
  animation: org-create-pulse 1.1s ease-out 1;
}
@keyframes org-create-pulse {
  0% { transform: translateY(2px); opacity: 0.92; }
  100% { transform: none; opacity: 1; }
}
.org-create-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.org-create-head h3 { margin: 0.15rem 0 0.25rem; }
.org-create-eyebrow {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent, #0f766e);
}
.org-create-guide {
  margin: 0 0 1rem;
  padding: 0.65rem 0.75rem 0.65rem 1.5rem;
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface-2, #f8fafc) 88%, var(--accent));
  border: 1px solid color-mix(in srgb, var(--border) 80%, var(--accent));
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--text-muted, #475569);
}
.org-create-guide li { margin: 0.2rem 0; }
.org-create-guide strong { color: var(--text, #0f172a); }

.organization-activation-field {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.organization-group-heading {
  margin-bottom: var(--space-2);
}

.asset-bulk-actions {
  margin-bottom: var(--space-3);
  flex-wrap: wrap;
}

.asset-bulk-update-field {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-2);
}

.document-modal-body {
  padding: var(--space-4) var(--space-5);
}

.document-modal-body-scroll {
  overflow: auto;
}

.document-modal-form-grid {
  display: grid;
  gap: var(--space-3);
}

@media (min-width: 1200px) {
  .doc-idx-filters .document-search-field {
    min-width: 320px;
  }
}

@media (min-width: 980px) and (max-width: 1199px) {
  .doc-idx-filters .document-search-field {
    min-width: 240px;
  }
}

@media (min-width: 820px) and (max-width: 979px) {
  .doc-idx-filters .document-search-field {
    min-width: 220px;
  }
}

@media (min-width: 720px) and (max-width: 819px) {
  .panel-heading-layout,
  .scenario-register-heading {
    align-items: stretch;
  }

  .doc-idx-filters .document-search-field {
    min-width: 200px;
  }
}

@media (max-width: 560px) {
  .panel-heading-layout,
  .work-queue-heading,
  .scenario-register-heading {
    align-items: stretch;
  }

  .panel-heading-layout > *,
  .work-queue-heading > *,
  .scenario-register-heading > *,
  .document-search-field,
  .document-iso-field {
    min-width: 0;
    width: 100%;
  }

  .scenario-control-action {
    align-self: stretch;
  }

  .document-modal-body {
    padding: var(--space-3);
  }
}

/* Controles aplicados · navegación, métricas, filtros y estado vacío */
[data-step="9"] .tab-navigation-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-5);
  padding: var(--space-2);
  border: 1px solid var(--orizon-border);
  border-radius: var(--radius-card);
  background: var(--orizon-surface);
}

[data-step="9"] .tab-item {
  min-height: var(--height-compact);
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--orizon-border);
  border-radius: var(--radius-standard);
  background: var(--orizon-bg);
  color: var(--orizon-text);
  font-family: "Inter", system-ui, sans-serif;
  font-weight: 600;
  cursor: pointer;
}

[data-step="9"] .tab-item:hover {
  border-color: var(--orizon-green);
  color: var(--orizon-green);
}

[data-step="9"] .tab-item.active {
  border-color: var(--orizon-green);
  background: var(--orizon-green);
  color: var(--orizon-white);
}

[data-step="9"] .tab-item:focus-visible {
  outline: 3px solid var(--orizon-blue);
  outline-offset: 2px;
}

[data-step="9"] .metrics-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--space-3);
  margin: var(--space-4) 0 var(--space-5);
}

[data-step="9"] .card-kpi {
  min-width: 0;
  min-height: 85px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--orizon-border);
  border-left: 4px solid var(--orizon-green);
  border-radius: var(--radius-card);
  background: var(--orizon-bg);
  box-shadow: var(--shadow-base);
}

[data-step="9"] .card-kpi .kpi-number {
  color: var(--orizon-green);
  font-family: "JetBrains Mono", monospace;
  font-size: 28px;
  font-weight: 500;
  line-height: 1;
}

[data-step="9"] .card-kpi .kpi-label {
  color: var(--orizon-muted);
  font-family: "Inter", system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}

[data-step="9"] .controls-filter-bar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(160px, 0.35fr) minmax(160px, 0.35fr);
  gap: var(--space-3);
  align-items: end;
  margin: var(--space-5) 0 var(--space-4);
  padding: var(--space-4);
  border: 1px solid var(--orizon-border);
  border-radius: var(--radius-card);
  background: var(--orizon-surface-alt);
}

[data-step="9"] .controls-filter-bar label {
  min-width: 0;
  display: grid;
  gap: var(--space-2);
  color: var(--orizon-text);
  font-family: "Inter", system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
}

[data-step="9"] .controls-filter-bar input,
[data-step="9"] .controls-filter-bar select {
  width: 100%;
  height: var(--height-compact);
  min-height: var(--height-compact);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--orizon-border) !important;
  border-radius: var(--radius-standard);
  background: var(--orizon-bg) !important;
  color: var(--orizon-text) !important;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 14px;
}

[data-step="9"] .controls-filter-bar input::placeholder {
  color: var(--orizon-muted);
  opacity: 1;
}

[data-step="9"] .controls-filter-bar input:focus-visible,
[data-step="9"] .controls-filter-bar select:focus-visible {
  border-color: var(--orizon-blue) !important;
  outline: 3px solid var(--orizon-blue);
  outline-offset: 2px;
  box-shadow: none !important;
}

[data-step="9"] .empty-state-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  min-height: 260px;
  padding: var(--space-6);
  border: 1px dashed var(--orizon-border);
  border-radius: var(--radius-card);
  background: var(--orizon-bg);
  color: var(--orizon-text);
  text-align: center;
}

[data-step="9"] .empty-state-container svg {
  width: 64px;
  height: 64px;
  fill: none;
  stroke: var(--orizon-green);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

[data-step="9"] .empty-state-title {
  margin: 0;
  color: var(--orizon-text);
  font-family: "Inter", system-ui, sans-serif;
  font-size: 20px;
  line-height: 1.25;
}

[data-step="9"] .empty-state-desc {
  max-width: 52ch;
  margin: 0;
  color: var(--orizon-muted);
  font-family: "Inter", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.6;
}

@media (max-width: 1024px) {
  [data-step="9"] .metrics-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  [data-step="9"] .controls-filter-bar {
    grid-template-columns: minmax(0, 1fr) repeat(2, minmax(140px, 0.45fr));
  }
}

@media (max-width: 720px) {
  [data-step="9"] .tab-navigation-bar {
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  [data-step="9"] .tab-item {
    flex: 0 0 auto;
  }

  [data-step="9"] .metrics-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  [data-step="9"] .controls-filter-bar {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  [data-step="9"] .metrics-grid {
    grid-template-columns: 1fr;
  }

  [data-step="9"] .card-kpi,
  [data-step="9"] .controls-filter-bar,
  [data-step="9"] .empty-state-container {
    padding: var(--space-4);
  }
}

:root {
  /* Cristal Claro · tema profesional limpio y translúcido */
  --orizon-bg: #F4F6F9;
  --orizon-surface: #FFFFFF;
  --orizon-surface-alt: #EEF2F7;
  --orizon-glass: rgba(255, 255, 255, 0.72);
  --orizon-glass-strong: rgba(255, 255, 255, 0.88);
  --orizon-ink: #0B1220;
  --orizon-text: #3B4559;
  --orizon-muted: #6B778C;
  --orizon-border: rgba(15, 23, 42, 0.10);
  --orizon-border-solid: #E6EAF0;
  --orizon-green: #0F766E;
  --orizon-green-hover: #0D9488;
  --orizon-green-soft: #CCFBF1;
  --orizon-blue: #1D4ED8;
  --orizon-blue-dark: #1E3A8A;
  --orizon-white: #FFFFFF;
  --semantic-danger: #B91C1C;
  --semantic-danger-bg: #FEF2F2;
  --lh-success: #047857;
  --lh-success-bg: #ECFDF5;
  --lh-warning: #B45309;
  --lh-warning-bg: #FFFBEB;
  --lh-info: #0369A1;
  --lh-info-bg: #E0F2FE;
  --lh-input: #D0D7E2;
  --lh-ring: #0F766E;
  --lh-selection: #CCFBF1;
  --lh-row-hover: #F1F5F9;

  /* Compatibilidad con componentes heredados. */
  --bg: var(--orizon-bg);
  --surface: var(--orizon-surface);
  --surface-2: var(--orizon-surface-alt);
  --border: var(--orizon-border);
  --text: var(--orizon-text);
  --text-muted: var(--orizon-muted);
  --text-secondary: var(--orizon-muted);
  --muted: var(--orizon-muted);
  --accent: var(--orizon-green);
  --accent-hover: var(--orizon-green-hover);
  --metric-emphasis: var(--orizon-green);
  --shadow: var(--shadow-base);
  --shadow-md: var(--shadow-elevated);
  --radius: var(--radius-card);

  /* Lectura sostenida · arena cálida */
  --doc-bg-canvas: #F7F5F0;
  --doc-bg-surface: #EFECE6;
  --doc-ink-primary: #1C1D1B;
  --doc-ink-muted: #6F726C;

  /* Espaciado Base (Múltiplos de 4px) */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;

  /* Dimensiones de Control */
  --height-compact: 36px;
  --height-login: 52px;

  /* Radios de Curvatura y Elevación */
  --radius-standard: 6px;
  --radius-card: 10px;
  --radius-portal: 24px;
  --radius-pill: 999px;
  --shadow-base: 0 2px 14px rgba(15, 23, 42, 0.05);
  --shadow-elevated: 0 10px 28px rgba(15, 23, 42, 0.08);
}


.subnav-btn.active,
button[aria-pressed="true"] {
  border-color: #2563eb !important;
  background: #eff6ff !important;
  color: #1e3a8a !important;
}

.btn-danger-text,
.btn-danger-text:hover {
  border-color: #fecaca !important;
  background: #fff !important;
  color: #b91c1c !important;
}

/* Formularios, tablas y overlays claros */
input,
select,
textarea,
.auth-input-wrap input,
.admin-search {
  color-scheme: only light !important;
  border-color: #cbd5e1 !important;
  background: #ffffff !important;
  color: #1f2937 !important;
}

.data-table th {
  border-color: #e5e7eb !important;
  background: #f4f5f7 !important;
  color: #334155 !important;
}

.data-table td,
.data-table tbody tr:hover td {
  border-color: #e5e7eb !important;
  background: #ffffff !important;
  color: #1f2937 !important;
}

.asset-modal::backdrop,
.org-profile-editor-backdrop {
  background: rgba(148, 163, 184, 0.32) !important;
}

/* Texto que antes estaba preparado para superficies negras */
.panel-header h2,
.home-overview-header h2,
.document-workspace-hero h2,
.org-page-header h2,
.card h3,
.audit-detail-hero h2,
.audit-detail-hero h3,
.admin-card-header h3,
.admin-user-identity strong,
.admin-active-toggle strong,
.admin-permission-option strong {
  color: #111827 !important;
}

.panel-header p,
.home-overview-header p,
.card > p,
.card header p,
.hint,
.subtitle,
.admin-user-identity small,
.admin-role-card small {
  color: #64748b !important;
}

/* Verde accesible sobre blanco: Emerald 700 (contraste WCAG AA). */
.panel-admin {
  --admin-green: var(--orizon-green);
}

.metric-value,
.stat-value,
.kpi-value,
.home-kpi-value,
.an-kpi .an-kpi-value,
.org-overview-kpi strong,
.audit-workspace-kpi strong,
.audit-control-card strong,
.admin-summary-card strong,
.admin-page-eyebrow,
.admin-user-avatar,
.auth-eyebrow,
.auth-panel-heading .auth-eyebrow,
.auth-password-toggle,
.auth-text-button,
.home-card-link,
a {
  color: var(--orizon-green);
}

.header .logo,
.auth-brand-mark {
  border-color: var(--orizon-green) !important;
  background: var(--orizon-green) !important;
  color: #ffffff !important;
}

.home-kpi-card::before,
.stat-card::before,
.kpi-card::before,
.an-kpi::before,
.org-overview-kpi::before,
.admin-summary-card::before {
  background: var(--orizon-green) !important;
}

.header .workspace-sync-badge[data-sync="saved"],
.admin-role-pill[data-role="administrador"],
.admin-superadmin-pill,
.admin-status-pill.is-active {
  border-color: rgba(216, 30, 46, 0.22) !important;
  background: var(--orizon-green-soft) !important;
  color: var(--orizon-green) !important;
}

.auth-check input,
input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--orizon-green);
}

.auth-trust-list li span {
  background: var(--orizon-green-soft) !important;
  color: var(--orizon-green) !important;
}

.btn-primary,
.auth-submit-btn,
.nav-btn.active {
  border-color: var(--orizon-green) !important;
  background: var(--orizon-green) !important;
  color: #ffffff !important;
}

.btn-primary:hover,
.auth-submit-btn:hover,
.nav-btn.active:hover {
  border-color: var(--orizon-green-hover) !important;
  background: var(--orizon-green-hover) !important;
  color: #ffffff !important;
}

/* ── Sistema global definitivo de componentes claros ─────────────────── */
.header,
.footer,
.nav,
.subnav,
.qms-tabs,
.document-workspace-tabs,
.org-profile-tabs,
.org-resource-tabs,
.tab-navigation-bar {
  border-color: var(--orizon-border) !important;
  background: var(--orizon-bg) !important;
  color: var(--orizon-text) !important;
}

.nav-btn.active,
.subnav-btn.active,
.qms-tab.active,
.document-workspace-tabs button.active,
.org-profile-tabs button.active,
.org-resource-tabs button.active,
.tab-item.active,
button[aria-pressed="true"] {
  border-color: var(--orizon-green) !important;
  background: var(--orizon-green) !important;
  color: var(--orizon-white) !important;
}

.stat-card,
.kpi-card,
.home-kpi-card,
.an-kpi,
.metric-card,
.org-overview-kpi,
.audit-workspace-kpi,
.doc-control-kpi,
.admin-summary-card,
.card-kpi {
  min-height: 84px;
  border-left: 4px solid var(--orizon-green) !important;
  background: var(--orizon-bg) !important;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  font-weight: 700;
}

.metric-card:nth-child(even),
.audit-workspace-kpi:nth-child(even),
.doc-control-kpi:nth-child(even),
.card-kpi:nth-child(even) {
  border-left-color: var(--orizon-blue) !important;
}

.metric-value,
.stat-value,
.kpi-value,
.home-kpi-value,
.an-kpi .an-kpi-value,
.org-overview-kpi strong,
.audit-workspace-kpi strong,
.doc-control-kpi strong,
.admin-summary-card strong,
.card-kpi .kpi-number {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  font-weight: 700;
}

.table-wrap,
.admin-table-wrap,
.audit-table-wrap,
.document-table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

.data-table th,
table th {
  background: var(--orizon-surface-alt) !important;
  color: var(--orizon-ink) !important;
  font-weight: 600;
}

input:not([type="file"]):not([type="checkbox"]):not([type="radio"]),
select {
  height: var(--height-compact);
  min-height: var(--height-compact);
}

textarea {
  min-height: 88px;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--orizon-blue) !important;
  outline-offset: 2px;
}

dialog,
.modal,
.asset-modal,
.document-modal,
.org-profile-editor-shell,
.admin-user-editor {
  border-color: var(--orizon-border) !important;
  background: var(--orizon-surface) !important;
  color: var(--orizon-text) !important;
}

dialog::backdrop,
.modal-backdrop,
.asset-modal::backdrop,
.org-profile-editor-backdrop {
  background: rgba(148, 163, 184, 0.32) !important;
}

.empty-row,
.empty-state-container {
  border: 1px dashed var(--orizon-border) !important;
  background: var(--orizon-surface) !important;
  color: var(--orizon-muted) !important;
  text-align: center;
}

.empty-row {
  min-height: 72px;
  padding: var(--space-5);
}

.empty-state-container {
  min-height: 180px;
  padding: var(--space-6);
}

/* Rangos responsivos finales; conservan las reglas específicas de cada módulo. */
@media (min-width: 1200px) {
  .main {
    padding-inline: clamp(1.5rem, 2vw, 2.5rem);
  }
}

@media (min-width: 980px) and (max-width: 1199px) {
  .main {
    padding-inline: 1.5rem;
  }
}

@media (min-width: 820px) and (max-width: 979px) {
  .admin-summary-grid,
  [data-step="9"] .metrics-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 720px) and (max-width: 819px) {
  .nav,
  .subnav,
  .qms-tabs,
  .document-workspace-tabs,
  .org-profile-tabs,
  .org-resource-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
  }
}

@media (max-width: 560px) {
  .main {
    padding-inline: var(--space-3);
  }

  .admin-summary-grid,
  .admin-user-form-grid,
  .admin-permissions-grid,
  [data-step="9"] .metrics-grid {
    grid-template-columns: 1fr;
  }

  .nav,
  .subnav,
  .qms-tabs,
  .document-workspace-tabs,
  .org-profile-tabs,
  .org-resource-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
  }

  .empty-state-container {
    padding: var(--space-4);
  }
}

/* ── Aplicación Minimalismo Cálido · Arena + Oliva ─────────────────── */
html,
body,
body:not(.auth-required) .main,
body:not(.auth-required) .panel,
body:not(.auth-required) .panel.active {
  background: var(--orizon-bg) !important;
  color: var(--orizon-text) !important;
}

.header,
.footer,
.nav,
.nav-group,
.nav-group.is-active,
.subnav,
.qms-tabs,
.document-workspace-tabs,
.org-profile-tabs,
.org-resource-tabs,
.tab-navigation-bar,
.auth-portal {
  background: var(--orizon-bg) !important;
  border-color: var(--orizon-border) !important;
  color: var(--orizon-text) !important;
}

.card,
.table-wrap,
.data-table,
.stat-card,
.kpi-card,
.home-kpi-card,
.metric-card,
.an-kpi,
.org-overview-kpi,
.audit-workspace-kpi,
.doc-control-kpi,
.admin-summary-card,
.card-kpi,
.guide,
.fieldset,
.document-overview-card,
.home-readiness-card,
.audit-control-card,
.audit-req-form,
.admin-role-card,
.admin-permission-option,
.admin-users-card,
.admin-roles-card,
.admin-user-editor,
.asset-modal,
.asset-modal-header,
.asset-modal-footer,
.org-profile-editor-shell,
.org-profile-editor-header,
.auth-portal-shell,
.auth-portal-panel,
.panel > .panel-header,
.panel > .home-overview-header {
  background: var(--orizon-surface) !important;
  border-color: var(--orizon-border) !important;
  color: var(--orizon-text) !important;
  box-shadow: var(--shadow-base);
}

.auth-portal-brand {
  background:
    radial-gradient(circle at 88% 10%, rgba(216, 30, 46, 0.10), transparent 18rem),
    var(--orizon-surface-alt) !important;
  border-right: 1px solid var(--orizon-border);
  color: var(--orizon-text) !important;
}

.panel-header h2,
.home-overview-header h2,
.document-workspace-hero h2,
.org-page-header h2,
.card h3,
.audit-detail-hero h2,
.audit-detail-hero h3,
.admin-card-header h3,
.auth-panel-heading h2,
.auth-portal-brand h1,
.header h1,
.header .header-brand h1 {
  color: var(--orizon-ink) !important;
}

.hint,
.subtitle,
.panel-header p,
.home-overview-header p,
.card > p,
.auth-panel-heading p,
.auth-check,
.auth-panel-footer,
.admin-user-identity small,
.admin-role-card small {
  color: var(--orizon-muted) !important;
}

.btn-primary,
.auth-submit-btn,
.nav-btn.active,
.subnav-btn.active,
.qms-tab.active,
.tab-item.active,
.document-workspace-tabs button.active,
.org-profile-tabs button.active,
.org-resource-tabs button.active,
button[aria-pressed="true"],
.header .logo,
.auth-brand-mark {
  border-color: var(--orizon-green) !important;
  background: var(--orizon-green) !important;
  color: var(--orizon-white) !important;
}

.btn-primary:hover,
.auth-submit-btn:hover,
.nav-btn.active:hover {
  border-color: var(--orizon-green-hover) !important;
  background: var(--orizon-green-hover) !important;
  color: var(--orizon-white) !important;
}

.metric-value,
.stat-value,
.kpi-value,
.home-kpi-value,
.an-kpi .an-kpi-value,
.org-overview-kpi strong,
.audit-workspace-kpi strong,
.audit-control-card strong,
.admin-summary-card strong,
.admin-page-eyebrow,
.admin-user-avatar,
.auth-eyebrow,
.auth-panel-heading .auth-eyebrow,
.auth-password-toggle,
.auth-text-button,
.home-card-link,
a {
  color: var(--orizon-green);
}

.panel-admin { --admin-green: var(--orizon-green); }

.home-kpi-card::before,
.stat-card::before,
.kpi-card::before,
.an-kpi::before,
.org-overview-kpi::before,
.admin-summary-card::before {
  background: var(--orizon-green) !important;
}

.header .workspace-sync-badge[data-sync="saved"],
.admin-role-pill[data-role="administrador"],
.admin-superadmin-pill,
.admin-status-pill.is-active,
.auth-trust-list li span {
  border-color: rgba(216, 30, 46, 0.22) !important;
  background: var(--orizon-green-soft) !important;
  color: var(--orizon-green) !important;
}

.auth-check input,
input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--orizon-green);
}

.data-table th,
table th {
  background: var(--orizon-surface-alt) !important;
  color: var(--orizon-ink) !important;
}

.data-table td,
.data-table tbody tr:hover td {
  background: var(--orizon-surface) !important;
  color: var(--orizon-text) !important;
  border-color: var(--orizon-border) !important;
}

input,
select,
textarea,
.auth-input-wrap input,
.admin-search {
  border-color: var(--orizon-border) !important;
  background: var(--orizon-surface) !important;
  color: var(--orizon-text) !important;
}

button,
.btn,
.btn-secondary,
.btn-ghost,
.nav-btn,
.subnav-btn {
  border-color: var(--orizon-border) !important;
  background: var(--orizon-surface) !important;
  color: var(--orizon-text) !important;
}

button:hover,
.btn:hover,
.nav-btn:hover,
.subnav-btn:hover {
  border-color: var(--orizon-green) !important;
  background: var(--orizon-green-soft) !important;
  color: var(--orizon-ink) !important;
}

.btn-primary,
.auth-submit-btn,
.nav-btn.active,
.header .logo,
.auth-brand-mark {
  border-color: var(--orizon-green) !important;
  background: var(--orizon-green) !important;
  color: var(--orizon-white) !important;
}

.btn-primary:hover,
.auth-submit-btn:hover,
.nav-btn.active:hover {
  border-color: var(--orizon-green-hover) !important;
  background: var(--orizon-green-hover) !important;
  color: var(--orizon-white) !important;
}

.stat-card,
.kpi-card,
.home-kpi-card,
.an-kpi,
.metric-card,
.org-overview-kpi,
.audit-workspace-kpi,
.doc-control-kpi,
.admin-summary-card,
.card-kpi {
  background: var(--orizon-surface) !important;
  border-left: 4px solid var(--orizon-green) !important;
}

.empty-state-container,
.empty-row {
  background: var(--orizon-surface-alt) !important;
  border-color: var(--orizon-border) !important;
  color: var(--orizon-muted) !important;
}

.asset-modal::backdrop,
.org-profile-editor-backdrop,
dialog::backdrop {
  background: rgba(68, 70, 67, 0.28) !important;
}

/* ── Rediseño estructural moderno · 14″ ─────────────────────────────── */
/* Tipografía y lectura sostenida (auditorías largas en laptop 14"). */
.shell-modern {
  --font: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  --shell-pad-x: clamp(0.9rem, 1.6vw, 1.75rem);
  --shell-pad-y: clamp(0.75rem, 1.2vw, 1.25rem);
  --btn-height: 42px;
  --nav-height: 40px;
  --read-size: 0.965rem;
  --title-size: clamp(1.2rem, 1.5vw, 1.45rem);
}

.shell-modern,
.shell-modern body {
  font-family: var(--font);
}

html:has(.shell-modern),
.shell-modern {
  font-size: 15.5px;
}

.shell-modern {
  line-height: 1.6;
  letter-spacing: -0.011em;
  background: var(--orizon-bg) !important;
  color: var(--orizon-text) !important;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.shell-modern p,
.shell-modern .hint,
.shell-modern .subtitle,
.shell-modern td,
.shell-modern li,
.shell-modern label,
.shell-modern .field {
  font-size: var(--read-size);
  line-height: 1.62;
  color: var(--orizon-text);
}

.shell-modern .hint,
.shell-modern .subtitle {
  color: var(--orizon-muted) !important;
  font-weight: 500;
}

.shell-modern h1,
.shell-modern h2,
.shell-modern h3,
.shell-modern h4,
.shell-modern .panel-header h2,
.shell-modern .home-overview-header h2,
.shell-modern .assets-header h2,
.shell-modern .document-workspace-hero h2,
.shell-modern .org-page-header h2 {
  color: var(--orizon-ink) !important;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.25;
}

.shell-modern .panel-header h2,
.shell-modern .home-overview-header h2,
.shell-modern .assets-header h2,
.shell-modern .document-workspace-hero h2,
.shell-modern .org-page-header h2 {
  font-size: var(--title-size);
  margin-bottom: 0.35rem;
}

/* Shell: header en dos bandas claras, sticky y denso. */
.shell-modern .app-shell-header,
.shell-modern .header.app-shell-header {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0.65rem !important;
  padding: 0.7rem var(--shell-pad-x) 0.8rem !important;
  background: var(--orizon-surface) !important;
  border-bottom: 1px solid var(--orizon-border) !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05) !important;
}

.shell-modern .header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.shell-modern .header-brand {
  gap: 0.75rem;
  min-width: 0;
}

.shell-modern .header-titles {
  min-width: 0;
}

.shell-modern .header h1 {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: min(42vw, 28rem);
}

.shell-modern .header .subtitle {
  font-size: 0.78rem !important;
}

.shell-modern .logo {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  padding: 0 !important;
  border-radius: 10px !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.08em;
  box-shadow: 0 6px 16px rgba(216, 30, 46, 0.28) !important;
}

.shell-modern .org-switcher {
  display: flex;
  align-items: end;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.shell-modern .org-switcher .field {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--orizon-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.shell-modern .org-switcher select {
  min-width: 9.5rem;
  height: 38px !important;
  font-size: 0.88rem !important;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
}

.shell-modern .rbac-role-badge,
.shell-modern .workspace-sync-badge {
  height: 38px;
  display: inline-flex;
  align-items: center;
  padding: 0 0.75rem;
  border-radius: 999px !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
}

/* Navegación: botones resaltantes, agrupados y fáciles de escanear. */
.shell-modern .nav {
  display: flex !important;
  align-items: stretch !important;
  gap: 0.4rem !important;
  flex-wrap: nowrap !important;
  overflow-x: auto;
  padding: 0.35rem;
  border: 1px solid var(--orizon-border);
  border-radius: 14px;
  background: var(--orizon-bg) !important;
  scrollbar-width: thin;
}

.shell-modern .nav-group {
  flex-direction: row !important;
  align-items: center;
  gap: 0.35rem !important;
  padding: 0.2rem 0.35rem !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: transparent !important;
  flex: 0 0 auto;
}

.shell-modern .nav-group.is-active {
  background: var(--orizon-green-soft) !important;
}

.shell-modern .nav-group-label {
  display: none;
}

.shell-modern .nav-group-btns {
  gap: 0.3rem;
  flex-wrap: nowrap;
}

.shell-modern .nav-btn {
  flex: 0 0 auto;
  min-height: var(--nav-height) !important;
  padding: 0.45rem 0.95rem !important;
  border-radius: 10px !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  color: var(--orizon-ink) !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  white-space: nowrap;
  box-shadow: none !important;
}

.shell-modern .nav-btn:hover {
  background: var(--orizon-surface) !important;
  border-color: var(--orizon-border) !important;
  color: var(--orizon-ink) !important;
}

.shell-modern .nav-btn.active,
.shell-modern .nav-btn.active:hover {
  background: var(--orizon-green) !important;
  border-color: var(--orizon-green) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(216, 30, 46, 0.28) !important;
}

.shell-modern .nav-admin-btn {
  margin-left: auto;
}

/* Subnavegación modular: píldoras legibles. */
.shell-modern .subnav,
.shell-modern .tab-navigation-bar,
.shell-modern .qms-tabs,
.shell-modern .document-workspace-tabs {
  gap: 0.4rem !important;
  margin-bottom: 1rem !important;
  padding: 0.4rem !important;
  border: 1px solid var(--orizon-border) !important;
  border-radius: 12px !important;
  background: var(--orizon-surface) !important;
}

.shell-modern .subnav-btn,
.shell-modern .tab-item,
.shell-modern .qms-tab,
.shell-modern .document-workspace-tabs button {
  min-height: 36px !important;
  padding: 0.4rem 0.9rem !important;
  border-radius: 999px !important;
  font-size: 0.86rem !important;
  font-weight: 600 !important;
}

.shell-modern .subnav-btn.active,
.shell-modern .tab-item.active,
.shell-modern .qms-tab.active,
.shell-modern .document-workspace-tabs button.active {
  background: var(--orizon-green) !important;
  border-color: var(--orizon-green) !important;
  color: #fff !important;
  box-shadow: 0 6px 14px rgba(216, 30, 46, 0.22) !important;
}

/* Botones de acción: primarios muy visibles. */
.shell-modern .btn,
.shell-modern button.btn {
  min-height: var(--btn-height) !important;
  padding: 0.55rem 1.15rem !important;
  border-radius: 10px !important;
  font-size: 0.92rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em;
  border-width: 1.5px !important;
  transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.12s ease, border-color 0.12s ease !important;
}

.shell-modern .btn-primary,
.shell-modern .auth-submit-btn {
  background: var(--orizon-green) !important;
  border-color: var(--orizon-green) !important;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(216, 30, 46, 0.28) !important;
}

.shell-modern .btn-primary:hover,
.shell-modern .auth-submit-btn:hover {
  background: var(--orizon-green-hover) !important;
  border-color: var(--orizon-green-hover) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(216, 30, 46, 0.34) !important;
}

.shell-modern .btn-secondary {
  background: var(--orizon-surface) !important;
  border-color: var(--orizon-border) !important;
  color: var(--orizon-ink) !important;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04) !important;
}

.shell-modern .btn-secondary:hover {
  border-color: var(--orizon-green) !important;
  background: var(--orizon-green-soft) !important;
  color: var(--orizon-ink) !important;
}

.shell-modern .btn-compact {
  min-height: 36px !important;
  padding: 0.35rem 0.85rem !important;
  font-size: 0.84rem !important;
}

.shell-modern .btn-group {
  gap: 0.55rem;
}

/* Contenido principal: densidad moderna para 14". */
.shell-modern .main {
  width: 100%;
  max-width: 1480px;
  margin: 0 auto;
  padding: var(--shell-pad-y) var(--shell-pad-x) 2.5rem !important;
}

.shell-modern .panel-header,
.shell-modern .home-overview-header,
.shell-modern .assets-header,
.shell-modern .document-workspace-hero,
.shell-modern .org-page-header {
  margin-bottom: 1rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--orizon-border);
  border-radius: 14px;
  background: var(--orizon-surface) !important;
}

.shell-modern .card,
.shell-modern .fieldset,
.shell-modern .guide,
.shell-modern .table-wrap,
.shell-modern .controls-filter-bar {
  border-radius: 12px !important;
  border-color: var(--orizon-border) !important;
}

.shell-modern .card {
  padding: 1rem 1.1rem !important;
  margin-bottom: 1rem;
}

.shell-modern .home-kpi-strip,
.shell-modern .metrics-grid,
.shell-modern .stats {
  gap: 0.75rem !important;
}

.shell-modern .home-kpi-card,
.shell-modern .stat-card,
.shell-modern .kpi-card,
.shell-modern .card-kpi,
.shell-modern .an-kpi,
.shell-modern .admin-summary-card {
  min-height: 92px !important;
  padding: 0.9rem 1rem !important;
  border-radius: 12px !important;
}

.shell-modern .home-kpi-value,
.shell-modern .stat-value,
.shell-modern .kpi-value,
.shell-modern .kpi-number,
.shell-modern .an-kpi-value {
  font-size: clamp(1.45rem, 2vw, 1.85rem) !important;
  line-height: 1.05 !important;
}

.shell-modern .home-kpi-label,
.shell-modern .stat-label,
.shell-modern .kpi-label,
.shell-modern .an-kpi-label {
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  color: var(--orizon-muted) !important;
}

/* Tablas legibles en 14". */
.shell-modern .data-table,
.shell-modern table {
  font-size: 0.9rem;
}

.shell-modern .data-table th,
.shell-modern table th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 0.7rem 0.75rem !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.shell-modern .data-table td,
.shell-modern table td {
  padding: 0.72rem 0.75rem !important;
  vertical-align: middle;
}

.shell-modern .table-wrap {
  border: 1px solid var(--orizon-border);
  border-radius: 12px;
  background: var(--orizon-surface) !important;
}

.shell-modern input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.shell-modern select,
.shell-modern textarea {
  font-size: 0.92rem !important;
  border-radius: 10px !important;
}

.shell-modern input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.shell-modern select {
  min-height: 40px !important;
  height: 40px !important;
}

/* Home command grid: más clara en laptop. */
.shell-modern .home-command-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.shell-modern .home-kpi-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0.85rem 0 1rem;
}

/* Breakpoint principal: pantallas 14" (~1280–1512 CSS px). */
@media (max-width: 1512px) {
  .shell-modern {
    --read-size: 0.95rem;
    --shell-pad-x: 1rem;
  }

  .shell-modern .header h1 {
    max-width: 22rem;
  }

  .shell-modern .home-kpi-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .shell-modern .home-command-grid {
    grid-template-columns: 1fr 1fr;
  }

  .shell-modern .nav-btn {
    padding: 0.4rem 0.8rem !important;
    font-size: 0.84rem !important;
  }
}

@media (max-width: 1366px) {
  .shell-modern .header .subtitle {
    display: none;
  }

  .shell-modern .org-switcher .field {
    font-size: 0;
  }

  .shell-modern .org-switcher .field select {
    font-size: 0.86rem !important;
  }

  .shell-modern .home-command-grid {
    grid-template-columns: 1fr;
  }

  .shell-modern .panel-header,
  .shell-modern .home-overview-header,
  .shell-modern .assets-header {
    padding: 0.75rem 0.85rem;
  }
}

@media (max-width: 1100px) {
  .shell-modern .home-kpi-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .shell-modern .nav-admin-btn {
    margin-left: 0;
  }
}

@media (max-width: 820px) {
  .shell-modern .header-top {
    flex-direction: column;
    align-items: stretch;
  }

  .shell-modern .org-switcher {
    width: 100%;
  }

  .shell-modern .home-kpi-strip {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .shell-modern .btn,
  .shell-modern .btn-primary:hover {
    transition: none !important;
    transform: none !important;
  }
}

/* ── Cristal Claro · tema profesional limpio ─────────────────────────── */
/*
  Fondo claro translúcido, superficies glass, tipografía DM Sans.
  Acento teal corporativo #0F766E. Contraste AAA en texto continuo.
*/
:root {
  color-scheme: only light !important;
  --orizon-bg: #F4F6F9;
  --orizon-surface: #FFFFFF;
  --orizon-surface-alt: #EEF2F7;
  --orizon-glass: rgba(255, 255, 255, 0.72);
  --orizon-glass-strong: rgba(255, 255, 255, 0.88);
  --orizon-ink: #0B1220;
  --orizon-text: #3B4559;
  --orizon-muted: #6B778C;
  --orizon-border: rgba(15, 23, 42, 0.10);
  --orizon-border-solid: #E6EAF0;
  --orizon-green: #0F766E;
  --orizon-green-hover: #0D9488;
  --orizon-green-soft: #CCFBF1;
  --orizon-blue: #1D4ED8;
  --orizon-blue-dark: #1E3A8A;
  --orizon-white: #FFFFFF;
  --semantic-danger: #B91C1C;
  --semantic-danger-bg: #FEF2F2;
  --bg: #F4F6F9;
  --surface: #FFFFFF;
  --surface-2: #EEF2F7;
  --border: #E6EAF0;
  --text: #0B1220;
  --text-muted: #6B778C;
  --text-secondary: #3B4559;
  --muted: #6B778C;
  --accent: #0F766E;
  --accent-hover: #0D9488;
  --metric-emphasis: #0F766E;
  --success: #047857;
  --warning: #B45309;
  --danger: #B91C1C;
  --shadow-base: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px rgba(15, 23, 42, 0.05);
  --shadow-elevated: 0 12px 40px rgba(15, 23, 42, 0.08);
  --font: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
}

html,
body,
.shell-modern,
.shell-modern.nexus-dark,
body:not(.auth-required),
body:not(.auth-required) .main,
body:not(.auth-required) .panel,
body:not(.auth-required) .panel.active {
  font-family: var(--font) !important;
  background: transparent !important;
  color: var(--orizon-text) !important;
  color-scheme: only light !important;
}

html {
  background: #F7F9FC !important;
}

body,
.shell-modern {
  min-height: 100vh;
  background-color: transparent !important;
  background-image:
    linear-gradient(to right, rgba(15, 118, 110, 0.035) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(15, 118, 110, 0.035) 1px, transparent 1px),
    radial-gradient(ellipse at 18% 0%, rgba(15, 118, 110, 0.05) 0%, transparent 42%),
    radial-gradient(ellipse at 82% 100%, rgba(29, 78, 216, 0.04) 0%, transparent 42%) !important;
  background-size: 32px 32px, 32px 32px, 100% 100%, 100% 100% !important;
  background-attachment: fixed !important;
}

.shell-modern {
  --orizon-bg: #F7F9FC;
  --orizon-surface: #FFFFFF;
  --orizon-surface-alt: #EEF2F7;
  --orizon-ink: #0B1220;
  --orizon-text: #3B4559;
  --orizon-muted: #6B778C;
  --orizon-border: rgba(15, 23, 42, 0.10);
  --orizon-green: #0F766E;
  --orizon-green-hover: #0D9488;
  --orizon-green-soft: #CCFBF1;
  --orizon-blue: #1D4ED8;
  --font: "DM Sans", ui-sans-serif, system-ui, sans-serif;
}

/* Header / nav glass */
.header,
.shell-modern .app-shell-header,
.shell-modern .header.app-shell-header {
  background: var(--orizon-glass) !important;
  border-bottom: 1px solid var(--orizon-border) !important;
  box-shadow: 0 8px 30px rgba(15, 23, 42, 0.04) !important;
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
}

.shell-modern .nav,
.nav,
.subnav,
.tab-navigation-bar,
.qms-tabs,
.document-workspace-tabs {
  background: var(--orizon-glass-strong) !important;
  border: 1px solid var(--orizon-border) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.card,
.panel > .panel-header,
.panel > .home-overview-header,
.home-overview-header,
.assets-header,
.document-workspace-hero,
.org-page-header,
.table-wrap,
.stat-card,
.kpi-card,
.home-kpi-card,
.metric-card,
.an-kpi,
.card-kpi,
.admin-summary-card,
.admin-role-card,
.admin-users-card,
.admin-roles-card,
.admin-user-editor,
.asset-modal,
.asset-modal-header,
.asset-modal-footer,
.org-profile-editor-shell,
.guide,
.fieldset,
.controls-filter-bar,
.audit-workspace,
.audit-list-panel,
.audit-sidebar-card,
.auth-portal-shell,
.auth-portal-panel {
  background: var(--orizon-glass-strong) !important;
  border-color: var(--orizon-border) !important;
  color: var(--orizon-text) !important;
  box-shadow: var(--shadow-base) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.shell-modern .panel-header,
.shell-modern .home-overview-header,
.shell-modern .assets-header,
.shell-modern .document-workspace-hero,
.shell-modern .org-page-header,
.shell-modern .card {
  background: var(--orizon-glass-strong) !important;
  border: 1px solid var(--orizon-border) !important;
  border-radius: 14px !important;
}

/* Tipografía */
h1, h2, h3, h4,
.panel-header h2,
.home-overview-header h2,
.assets-header h2,
.document-workspace-hero h2,
.org-page-header h2,
.card h3,
.auth-portal-brand h1,
.auth-panel-heading h2,
.header h1,
.shell-modern h1,
.shell-modern h2,
.shell-modern h3 {
  color: var(--orizon-ink) !important;
}

.hint,
.subtitle,
.panel-header p,
.home-overview-header p,
.card > p,
.auth-panel-heading p,
.auth-check,
.auth-panel-footer,
.shell-modern .hint,
.shell-modern .subtitle {
  color: var(--orizon-muted) !important;
}

/* Botones limpios y resaltantes */
.btn-primary,
.auth-submit-btn,
.nav-btn.active,
.subnav-btn.active,
.tab-item.active,
.qms-tab.active,
.document-workspace-tabs button.active,
.org-profile-tabs button.active,
.org-resource-tabs button.active,
button[aria-pressed="true"],
.header .logo,
.auth-brand-mark,
.shell-modern .btn-primary,
.shell-modern .auth-submit-btn,
.shell-modern .nav-btn.active,
.shell-modern .nav-btn.active:hover,
.shell-modern .subnav-btn.active,
.shell-modern .tab-item.active,
.shell-modern .qms-tab.active {
  background: #0F766E !important;
  border-color: #0F766E !important;
  color: #FFFFFF !important;
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.22) !important;
  font-weight: 700 !important;
}

.btn-primary:hover,
.auth-submit-btn:hover,
.nav-btn.active:hover,
.shell-modern .btn-primary:hover,
.shell-modern .auth-submit-btn:hover {
  background: #0D9488 !important;
  border-color: #0D9488 !important;
  color: #FFFFFF !important;
}

button,
.btn,
.btn-secondary,
.btn-ghost,
.nav-btn,
.subnav-btn,
.shell-modern .nav-btn,
.shell-modern .btn-secondary {
  background: rgba(255, 255, 255, 0.78) !important;
  border: 1px solid var(--orizon-border) !important;
  color: var(--orizon-ink) !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04) !important;
  backdrop-filter: blur(8px);
}

button:hover,
.btn:hover,
.nav-btn:hover,
.subnav-btn:hover,
.btn-secondary:hover,
.shell-modern .nav-btn:hover,
.shell-modern .btn-secondary:hover {
  background: #CCFBF1 !important;
  border-color: rgba(15, 118, 110, 0.35) !important;
  color: var(--orizon-ink) !important;
}

.btn-primary,
.auth-submit-btn,
.nav-btn.active,
.header .logo,
.auth-brand-mark {
  background: #0F766E !important;
  border-color: #0F766E !important;
  color: #FFFFFF !important;
}

a,
.home-card-link,
.auth-eyebrow,
.auth-password-toggle,
.auth-text-button,
.metric-value,
.stat-value,
.kpi-value,
.home-kpi-value,
.kpi-number,
.admin-page-eyebrow,
.admin-user-avatar {
  color: #0F766E !important;
}

.home-kpi-card::before,
.stat-card::before,
.kpi-card::before,
.an-kpi::before,
.org-overview-kpi::before,
.admin-summary-card::before {
  background: #0F766E !important;
}

.shell-modern .home-kpi-card,
.shell-modern .stat-card,
.shell-modern .kpi-card,
.shell-modern .card-kpi,
.shell-modern .an-kpi,
.shell-modern .admin-summary-card,
.stat-card,
.kpi-card,
.home-kpi-card,
.card-kpi {
  background: var(--orizon-glass-strong) !important;
  border-left: 4px solid #0F766E !important;
}

.shell-modern .card-kpi:nth-child(even),
.shell-modern .metric-card:nth-child(even) {
  border-left-color: #1D4ED8 !important;
}

.shell-modern .nav-group.is-active {
  background: rgba(15, 118, 110, 0.08) !important;
}

/* Forms limpios */
input,
select,
textarea,
.auth-input-wrap input,
.admin-search,
.shell-modern input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.shell-modern select,
.shell-modern textarea {
  background: rgba(255, 255, 255, 0.92) !important;
  border-color: #D0D7E2 !important;
  color: #0B1220 !important;
  color-scheme: only light !important;
}

input::placeholder,
textarea::placeholder {
  color: #6B778C !important;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible {
  outline: 3px solid rgba(15, 118, 110, 0.35) !important;
  outline-offset: 2px;
}

.data-table th,
table th {
  background: rgba(238, 242, 247, 0.92) !important;
  color: #0B1220 !important;
  border-color: #E6EAF0 !important;
}

.data-table td,
.data-table tbody tr:hover td {
  background: rgba(255, 255, 255, 0.72) !important;
  color: #3B4559 !important;
  border-color: #E6EAF0 !important;
}

.data-table tbody tr:nth-child(even) td {
  background: rgba(244, 246, 249, 0.65) !important;
}

.data-table tbody tr:hover td {
  background: #F1F5F9 !important;
}

/* Auth portal cristal */
.auth-portal {
  background:
    radial-gradient(ellipse 70% 50% at 15% 10%, rgba(15, 118, 110, 0.10), transparent 50%),
    radial-gradient(ellipse 60% 45% at 90% 90%, rgba(29, 78, 216, 0.08), transparent 48%),
    linear-gradient(160deg, #F8FAFC, #EEF2F7) !important;
}

.auth-portal-shell {
  background: rgba(255, 255, 255, 0.55) !important;
  border: 1px solid rgba(255, 255, 255, 0.65) !important;
  box-shadow: 0 24px 80px rgba(15, 23, 42, 0.10) !important;
  backdrop-filter: blur(20px) saturate(1.15);
  -webkit-backdrop-filter: blur(20px) saturate(1.15);
}

.auth-portal-brand {
  background:
    linear-gradient(160deg, rgba(15, 118, 110, 0.08), transparent 55%),
    rgba(255, 255, 255, 0.45) !important;
  border-right: 1px solid rgba(15, 23, 42, 0.08) !important;
  color: var(--orizon-text) !important;
}

.auth-portal-panel {
  background: rgba(255, 255, 255, 0.72) !important;
}

.auth-trust-list li span,
.header .workspace-sync-badge[data-sync="saved"],
.admin-role-pill[data-role="administrador"],
.admin-superadmin-pill,
.admin-status-pill.is-active {
  background: #CCFBF1 !important;
  border-color: rgba(15, 118, 110, 0.25) !important;
  color: #0F766E !important;
}

.auth-check input,
input[type="checkbox"],
input[type="radio"] {
  accent-color: #0F766E;
}

.rbac-role-badge,
.workspace-sync-badge {
  background: rgba(255, 255, 255, 0.8) !important;
  border-color: var(--orizon-border) !important;
  color: var(--orizon-text) !important;
}

.empty-state-container,
.empty-row {
  background: rgba(238, 242, 247, 0.7) !important;
  border-color: var(--orizon-border) !important;
  color: var(--orizon-muted) !important;
}

.asset-modal::backdrop,
.org-profile-editor-backdrop,
dialog::backdrop,
.modal-backdrop {
  background: rgba(15, 23, 42, 0.28) !important;
  backdrop-filter: blur(4px);
}

::selection {
  background: #CCFBF1;
  color: #0B1220;
}

.panel-admin { --admin-green: #0F766E; }

.main,
.shell-modern .main {
  background: transparent !important;
}


/* ═══════════════════════════════════════════════════════════════════════
   UX Sprint · 50 mejoras visuales (Cristal Claro)
   Tipografía · botones · cards · nav · tablas · forms · feedback · layout
   ═══════════════════════════════════════════════════════════════════════ */

:root {
  --font: "Source Sans 3", "Source Sans Pro", ui-sans-serif, system-ui, sans-serif !important;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, monospace !important;
  --orizon-muted: #5B6577 !important;
  --text-muted: #5B6577 !important;
  --muted: #5B6577 !important;
  --ux-radius-card: 12px;
  --ux-radius-control: 10px;
  --ux-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 6px 18px rgba(15, 23, 42, 0.05);
  --ux-content-max: 1360px;
  --ux-space: 8px;
  --ux-focus: 0 0 0 3px rgba(15, 118, 110, 0.35);
}

html {
  font-size: 16px !important;
}

body.shell-modern.theme-cristal,
body.shell-modern {
  font-family: var(--font) !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
  letter-spacing: 0.01em;
}

body.shell-modern p,
body.shell-modern .hint,
body.shell-modern .empty-state-desc,
body.shell-modern .auth-portal p,
body.shell-modern .panel > p {
  line-height: 1.6 !important;
  color: var(--orizon-text);
}

body.shell-modern .hint,
body.shell-modern .subtitle,
body.shell-modern .stat-label,
body.shell-modern .home-kpi-label,
body.shell-modern .empty-state-desc,
body.shell-modern .text-muted {
  color: #5B6577 !important;
}

/* #5 titles */
body.shell-modern .panel > header h2,
body.shell-modern .home-overview-header h2,
body.shell-modern h2 {
  font-size: 1.25rem !important;
  font-weight: 650 !important;
  letter-spacing: -0.01em;
  color: var(--orizon-ink) !important;
  line-height: 1.3 !important;
}

body.shell-modern h3 {
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--orizon-ink) !important;
}

/* #6 form labels */
body.shell-modern label.field,
body.shell-modern .field > span:first-child,
body.shell-modern .auth-field > span:first-child,
body.shell-modern label.field {
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: #5B6577 !important;
}

/* #2 mono only KPIs / IDs / codes */
body.shell-modern,
body.shell-modern button,
body.shell-modern input,
body.shell-modern select,
body.shell-modern textarea,
body.shell-modern td,
body.shell-modern th {
  font-variant-numeric: proportional-nums;
}

body.shell-modern .home-kpi-value,
body.shell-modern .stat-value,
body.shell-modern .mono,
body.shell-modern code,
body.shell-modern .ctrl-code,
body.shell-modern .asset-id,
body.shell-modern .scenario-ref,
body.shell-modern td:first-child .mono,
body.shell-modern [data-mono] {
  font-family: var(--mono) !important;
  font-variant-numeric: tabular-nums;
}

/* ── Buttons #9–16 ─────────────────────────────────────────────────── */
body.shell-modern .btn,
body.shell-modern button.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 40px;
  padding: 0.55rem 1rem;
  border-radius: var(--ux-radius-control) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  line-height: 1.2;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}

body.shell-modern .btn-primary,
body.shell-modern button.btn-primary,
body.shell-modern .auth-submit-btn {
  min-height: 44px !important;
  padding: 0.7rem 1.25rem !important;
  border-radius: var(--ux-radius-control) !important;
  background: #0F766E !important;
  border: 1.5px solid #0F766E !important;
  color: #fff !important;
  box-shadow: 0 1px 2px rgba(15, 118, 110, 0.2);
}

body.shell-modern .btn-primary:hover,
body.shell-modern .auth-submit-btn:hover {
  background: #0D9488 !important;
  border-color: #0D9488 !important;
  transform: translateY(-1px);
}

body.shell-modern .btn-secondary,
body.shell-modern button.btn-secondary {
  min-height: 40px !important;
  padding: 0.55rem 1rem !important;
  background: #fff !important;
  border: 1.5px solid #CBD5E1 !important;
  color: var(--orizon-ink) !important;
}

body.shell-modern .btn-secondary:hover {
  border-color: #0F766E !important;
  color: #0F766E !important;
  background: #F0FDFA !important;
}

body.shell-modern .btn-ghost {
  min-height: 40px;
  background: transparent !important;
  border: 1.5px solid transparent !important;
  color: #3B4559 !important;
}

body.shell-modern .btn-ghost:hover {
  background: #F1F5F9 !important;
  border-color: #E2E8F0 !important;
}

body.shell-modern .btn-compact {
  min-height: 32px !important;
  padding: 0.35rem 0.7rem !important;
  font-size: 0.8125rem !important;
}

/* #14 disabled */
body.shell-modern .btn:disabled,
body.shell-modern button:disabled,
body.shell-modern .btn[aria-disabled="true"] {
  opacity: 0.4 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

/* #15 danger outline */
body.shell-modern .btn-danger,
body.shell-modern .btn-danger-text,
body.shell-modern button.btn-danger {
  background: transparent !important;
  border: 1.5px solid #B91C1C !important;
  color: #B91C1C !important;
  box-shadow: none !important;
}

body.shell-modern .btn-danger:hover,
body.shell-modern .btn-danger-text:hover {
  background: #FEF2F2 !important;
  color: #991B1B !important;
}

/* #16 button groups */
body.shell-modern .btn-group,
body.shell-modern .row-between > .btn-group,
body.shell-modern .toolbar,
body.shell-modern .table-actions,
body.shell-modern .filters-row {
  gap: 0.55rem !important;
}

/* #12 one primary per toolbar: demote siblings */
body.shell-modern .toolbar .btn-primary ~ .btn-primary,
body.shell-modern .row-between > .btn-group .btn-primary ~ .btn-primary,
body.shell-modern .card > .row-between .btn-primary ~ .btn-primary {
  background: #fff !important;
  border: 1.5px solid #CBD5E1 !important;
  color: var(--orizon-ink) !important;
  box-shadow: none !important;
  min-height: 40px !important;
}

/* ── Cards #17–24 ──────────────────────────────────────────────────── */
body.shell-modern .card,
body.shell-modern .stat-card,
body.shell-modern .home-command-card,
body.shell-modern .guide,
body.shell-modern .audit-doc-dashboard {
  background: #FFFFFF !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid var(--orizon-border-solid) !important;
  border-radius: var(--ux-radius-card) !important;
  box-shadow: var(--ux-shadow) !important;
  padding: 1rem 1.15rem !important;
}

body.shell-modern .card .card,
body.shell-modern .card .stat-card,
body.shell-modern .nested-card {
  border-color: #EEF2F7 !important;
  box-shadow: none !important;
  background: #FAFBFC !important;
}

body.shell-modern .filters-card,
body.shell-modern .card.filters,
body.shell-modern [data-role="filters"],
body.shell-modern .ctrl-filters,
body.shell-modern .filter-bar {
  background: #F8FAFC !important;
  border-style: dashed !important;
  box-shadow: none !important;
}

body.shell-modern .home-kpi-card {
  min-height: 88px !important;
  padding: 0.9rem 1rem !important;
  border-radius: var(--ux-radius-card) !important;
  border: 1px solid var(--orizon-border-solid) !important;
  border-left-width: 3px !important;
  background: #fff !important;
  box-shadow: var(--ux-shadow) !important;
}

body.shell-modern .home-kpi-value,
body.shell-modern .stat-value {
  font-size: 1.75rem !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  color: var(--orizon-ink) !important;
}

body.shell-modern .header,
body.shell-modern .header.app-shell-header,
body.shell-modern .nav {
  background: var(--orizon-glass-strong) !important;
  backdrop-filter: blur(14px) saturate(1.2) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.2) !important;
}

/* ── Nav #25–30 ────────────────────────────────────────────────────── */
body.shell-modern .header {
  position: sticky;
  top: 0;
  z-index: 40;
}

body.shell-modern .nav {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 0.35rem !important;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  padding: 0.45rem 1rem 0.55rem !important;
  border-top: 1px solid var(--orizon-border);
}

body.shell-modern .nav-btn {
  flex: 0 0 auto;
  min-height: 36px !important;
  height: 36px !important;
  padding: 0 0.75rem !important;
  border-radius: 8px !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  white-space: nowrap;
}

body.shell-modern .nav-group {
  display: inline-flex !important;
  align-items: center;
  gap: 0.3rem;
  padding: 0 0.35rem 0 0.55rem !important;
  margin: 0 !important;
  border: 0 !important;
  border-left: 1px solid #D5DBE5 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.shell-modern .nav-group-label {
  font-size: 0.65rem !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #5B6577 !important;
  padding: 0 0.25rem 0 0;
}

body.shell-modern .nav-group-btns {
  display: inline-flex;
  gap: 0.25rem;
}

body.shell-modern .nav-btn .nav-badge,
body.shell-modern .nav-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.15rem;
  height: 1.15rem;
  margin-left: 0.3rem;
  padding: 0 0.28rem;
  border-radius: 999px;
  background: #CCFBF1;
  color: #0F766E;
  font-size: 0.65rem;
  font-weight: 700;
  font-family: var(--mono);
  line-height: 1;
}

body.shell-modern .nav-badge.is-warn {
  background: #FEF3C7;
  color: #B45309;
}

body.shell-modern .nav-badge.is-danger {
  background: #FEE2E2;
  color: #B91C1C;
}

body.shell-modern .nav-more {
  position: relative;
  flex: 0 0 auto;
  display: none;
}

body.shell-modern .nav-more > summary {
  list-style: none;
  cursor: pointer;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: 0 0.75rem;
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #3B4559;
  border: 1px solid transparent;
}

body.shell-modern .nav-more > summary::-webkit-details-marker { display: none; }

body.shell-modern .nav-more[open] > summary,
body.shell-modern .nav-more > summary:hover {
  background: #F1F5F9;
  border-color: #E2E8F0;
}

body.shell-modern .nav-more-panel {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  min-width: 180px;
  padding: 0.4rem;
  background: #fff;
  border: 1px solid var(--orizon-border-solid);
  border-radius: 10px;
  box-shadow: var(--ux-shadow);
  z-index: 50;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

@media (max-width: 1365px) {
  body.shell-modern .nav-admin-btn.nav-admin-inline { display: none !important; }
  body.shell-modern .nav-more { display: inline-block; }
}

@media (min-width: 1366px) {
  body.shell-modern .nav-more { display: none !important; }
  body.shell-modern .nav-admin-btn.nav-admin-inline { display: inline-flex !important; }
}

/* Breadcrumb #27 */
.ux-context-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: var(--ux-content-max);
  margin: 0 auto;
  padding: 0.55rem 1.25rem 0.15rem;
}

.ux-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8125rem;
  color: #5B6577;
  min-height: 28px;
}

.ux-crumb-group { font-weight: 500; }
.ux-crumb-sep { opacity: 0.5; }
.ux-crumb-current {
  color: var(--orizon-ink);
  font-weight: 650;
}

.ux-context-actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

/* Subnav sticky #28 */
body.shell-modern .subnav,
body.shell-modern .panel-tabs,
body.shell-modern .tab-bar,
body.shell-modern .audit-subnav,
body.shell-modern .filters-sticky {
  position: sticky;
  top: 7.5rem;
  z-index: 20;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(8px);
  padding: 0.45rem 0;
  border-bottom: 1px solid #EEF2F7;
}

/* ── Tables #31–36 ─────────────────────────────────────────────────── */
body.shell-modern table {
  font-size: 0.875rem !important;
  border-collapse: separate;
  border-spacing: 0;
}

body.shell-modern thead th,
body.shell-modern th {
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  color: #5B6577 !important;
  background: #F8FAFC !important;
  border-bottom: 1px solid #E2E8F0 !important;
  padding: 0.65rem 0.75rem !important;
  white-space: nowrap;
}

body.shell-modern tbody td {
  padding: 0.65rem 0.75rem !important;
  border-bottom: 1px solid #F1F5F9 !important;
  vertical-align: middle;
}

body.shell-modern tbody tr:nth-child(even) td {
  background: rgba(15, 23, 42, 0.02);
}

body.shell-modern tbody tr:hover td {
  background: #F1F5F9 !important;
}

body.shell-modern .table-wrap,
body.shell-modern .table-scroll,
body.shell-modern .data-table-wrap {
  overflow: auto;
  border-radius: 10px;
  border: 1px solid #E6EAF0;
  background: #fff;
}

body.shell-modern .table-wrap table,
body.shell-modern .table-scroll table {
  min-width: 720px;
}

body.shell-modern .table-wrap th:first-child,
body.shell-modern .table-wrap td:first-child,
body.shell-modern .table-scroll th:first-child,
body.shell-modern .table-scroll td:first-child,
body.shell-modern .sticky-col th:first-child,
body.shell-modern .sticky-col td:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  background: inherit;
  box-shadow: 1px 0 0 #E6EAF0;
}

body.shell-modern .table-wrap thead th:first-child,
body.shell-modern .table-scroll thead th:first-child {
  z-index: 3;
  background: #F8FAFC !important;
}

/* Row kebab #33 */
.ux-row-menu {
  position: relative;
  display: inline-flex;
}

.ux-row-menu > summary {
  list-style: none;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  border: 1px solid #E2E8F0;
  background: #fff;
  cursor: pointer;
  color: #3B4559;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.ux-row-menu > summary::-webkit-details-marker { display: none; }

.ux-row-menu[open] > summary,
.ux-row-menu > summary:hover {
  border-color: #0F766E;
  color: #0F766E;
  background: #F0FDFA;
}

.ux-row-menu-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 4px);
  min-width: 160px;
  padding: 0.35rem;
  background: #fff;
  border: 1px solid #E6EAF0;
  border-radius: 10px;
  box-shadow: var(--ux-shadow);
  z-index: 15;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.ux-row-menu-panel .btn,
.ux-row-menu-panel button {
  width: 100%;
  justify-content: flex-start !important;
  min-height: 34px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ux-row-menu-panel .btn:hover,
.ux-row-menu-panel button:hover {
  background: #F1F5F9 !important;
}

/* Empty + skeleton #35 #36 */
body.shell-modern .empty-state-container,
body.shell-modern .empty-row {
  background: #F8FAFC !important;
  color: #5B6577 !important;
  border-color: #E6EAF0 !important;
}

body.shell-modern .empty-state-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.5rem;
  padding: 2rem 1.25rem !important;
  border-radius: 12px;
  border: 1px dashed #CBD5E1;
}

.ux-skeleton {
  display: grid;
  gap: 0.55rem;
  padding: 0.75rem 0;
}

.ux-skeleton-line {
  height: 12px;
  border-radius: 6px;
  background: linear-gradient(90deg, #EEF2F7 25%, #F8FAFC 50%, #EEF2F7 75%);
  background-size: 200% 100%;
  animation: ux-shimmer 1.2s ease-in-out infinite;
}

.ux-skeleton-line.w-40 { width: 40%; }
.ux-skeleton-line.w-60 { width: 60%; }
.ux-skeleton-line.w-80 { width: 80%; }
.ux-skeleton-line.w-100 { width: 100%; }

@keyframes ux-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .ux-skeleton-line { animation: none; }
}

/* ── Forms #37–40 ──────────────────────────────────────────────────── */
body.shell-modern input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
body.shell-modern select,
body.shell-modern .auth-input-wrap input {
  min-height: 40px !important;
  height: 40px;
  padding: 0.45rem 0.7rem !important;
  border-radius: var(--ux-radius-control) !important;
  border: 1.5px solid #D5DBE5 !important;
  background: #fff !important;
  font-size: 0.9375rem !important;
  color: var(--orizon-ink) !important;
}

body.shell-modern textarea {
  min-height: 96px !important;
  padding: 0.65rem 0.75rem !important;
  border-radius: var(--ux-radius-control) !important;
  border: 1.5px solid #D5DBE5 !important;
  line-height: 1.55 !important;
}

body.shell-modern input:focus,
body.shell-modern select:focus,
body.shell-modern textarea:focus,
body.shell-modern .btn:focus-visible,
body.shell-modern .nav-btn:focus-visible,
body.shell-modern a:focus-visible {
  outline: none !important;
  box-shadow: var(--ux-focus) !important;
  border-color: #0F766E !important;
}

.ux-field-error {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.75rem;
  color: #B91C1C;
  font-weight: 600;
}

body.shell-modern .is-invalid,
body.shell-modern input.aria-invalid,
body.shell-modern [aria-invalid="true"] {
  border-color: #B91C1C !important;
  box-shadow: 0 0 0 3px rgba(185, 28, 28, 0.15) !important;
}

body.shell-modern details.ux-collapse,
body.shell-modern .editor-long details {
  border: 1px solid #E6EAF0;
  border-radius: 10px;
  padding: 0.35rem 0.75rem;
  background: #FAFBFC;
  margin-bottom: 0.75rem;
}

body.shell-modern details.ux-collapse > summary,
body.shell-modern .editor-long details > summary {
  cursor: pointer;
  font-weight: 650;
  color: var(--orizon-ink);
  padding: 0.45rem 0;
}

/* Sync badge #40 */
body.shell-modern .workspace-sync-badge {
  min-height: 28px;
  padding: 0.25rem 0.65rem !important;
  border-radius: 999px !important;
  font-size: 0.75rem !important;
  font-weight: 650 !important;
  border: 1px solid #E2E8F0 !important;
}

body.shell-modern .workspace-sync-badge[data-sync="saving"] {
  background: #FEF3C7 !important;
  color: #92400E !important;
  border-color: #F59E0B !important;
}

body.shell-modern .workspace-sync-badge[data-sync="saved"] {
  background: #D1FAE5 !important;
  color: #065F46 !important;
  border-color: #10B981 !important;
}

body.shell-modern .workspace-sync-badge[data-sync="error"] {
  background: #FEE2E2 !important;
  color: #991B1B !important;
  border-color: #EF4444 !important;
}

body.shell-modern .workspace-sync-badge[data-sync="idle"],
body.shell-modern .workspace-sync-badge[data-sync="offline"] {
  background: #F1F5F9 !important;
  color: #475569 !important;
}

/* ── Feedback #41–44 ───────────────────────────────────────────────── */
.ux-toast-host {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: min(360px, calc(100vw - 2rem));
  pointer-events: none;
}

.ux-toast {
  pointer-events: auto;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.8rem 0.85rem;
  border-radius: 12px;
  border: 1px solid #E2E8F0;
  background: #fff;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);
  color: var(--orizon-ink);
  font-size: 0.875rem;
  line-height: 1.45;
  animation: ux-toast-in 0.18s ease-out;
}

.ux-toast.is-leaving {
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.16s ease, transform 0.16s ease;
}

.ux-toast-info { border-left: 3px solid #0F766E; }
.ux-toast-success { border-left: 3px solid #047857; background: #F0FDF4; }
.ux-toast-error { border-left: 3px solid #B91C1C; background: #FEF2F2; }
.ux-toast-msg { flex: 1; }
.ux-toast-close {
  border: 0;
  background: transparent;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  color: #5B6577;
  padding: 0 0.15rem;
}

@keyframes ux-toast-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Semantic status chips with text #44 */
body.shell-modern .badge,
body.shell-modern .status-pill,
body.shell-modern .result-badge,
body.shell-modern .risk-level {
  font-weight: 650 !important;
  letter-spacing: 0.01em;
}

body.shell-modern .badge::after,
body.shell-modern .status-pill::after { content: none; }

/* ── Layout #45–50 ─────────────────────────────────────────────────── */
body.shell-modern .main {
  max-width: var(--ux-content-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 1rem 1.25rem 2.5rem !important;
}

body.shell-modern .header-top,
body.shell-modern .nav {
  max-width: var(--ux-content-max);
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

body.shell-modern .panel {
  display: none;
}

body.shell-modern .panel.active {
  display: grid !important;
  gap: 1rem !important;
}

body.shell-modern .home-command-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1rem !important;
}

body.shell-modern .home-kpi-strip {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0.75rem !important;
}

@media (max-width: 1366px) {
  body.shell-modern .home-kpi-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  body.shell-modern .home-command-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 1100px) {
  body.shell-modern .home-kpi-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.shell-modern .home-command-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 820px) {
  body.shell-modern .home-kpi-strip {
    grid-template-columns: 1fr !important;
  }
  .ux-context-bar {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Compact mode #48 */
body.ux-compact .main { padding-top: 0.65rem !important; padding-bottom: 1.5rem !important; }
body.ux-compact .card,
body.ux-compact .home-command-card,
body.ux-compact .guide { padding: 0.7rem 0.85rem !important; }
body.ux-compact .home-kpi-card { min-height: 72px !important; padding: 0.65rem 0.75rem !important; }
body.ux-compact .home-kpi-value { font-size: 1.4rem !important; }
body.ux-compact tbody td,
body.ux-compact thead th { padding: 0.45rem 0.55rem !important; }
body.ux-compact .btn:not(.btn-compact):not(.btn-primary) { min-height: 34px !important; }
body.ux-compact .nav-btn { min-height: 32px !important; height: 32px !important; }
body.ux-compact .panel.active { gap: 0.7rem !important; }

/* Optional Nexus dark #49 */
body.shell-modern.theme-nexus-dark {
  color-scheme: dark !important;
  --orizon-bg: #0A1428 !important;
  --orizon-surface: #111C33 !important;
  --orizon-surface-alt: #16233F !important;
  --orizon-glass: rgba(17, 28, 51, 0.82) !important;
  --orizon-glass-strong: rgba(17, 28, 51, 0.92) !important;
  --orizon-ink: #F8FAFC !important;
  --orizon-text: #D7DEEA !important;
  --orizon-muted: #9AA6BA !important;
  --orizon-border-solid: #243352 !important;
  --orizon-green: #7CFF4D !important;
  --orizon-green-hover: #A6FF7A !important;
  --bg: #0A1428 !important;
  --surface: #111C33 !important;
  --text: #F8FAFC !important;
  --text-muted: #9AA6BA !important;
  --accent: #7CFF4D !important;
}

body.shell-modern.theme-nexus-dark,
body.shell-modern.theme-nexus-dark .main {
  background: #0A1428 !important;
  color: #D7DEEA !important;
}

body.shell-modern.theme-nexus-dark .card,
body.shell-modern.theme-nexus-dark .home-kpi-card,
body.shell-modern.theme-nexus-dark .stat-card,
body.shell-modern.theme-nexus-dark .guide {
  background: #111C33 !important;
  border-color: #243352 !important;
  color: #D7DEEA !important;
}

body.shell-modern.theme-nexus-dark .btn-primary {
  background: #7CFF4D !important;
  border-color: #7CFF4D !important;
  color: #0A1428 !important;
}

body.shell-modern.theme-nexus-dark .nav,
body.shell-modern.theme-nexus-dark .header {
  background: rgba(10, 20, 40, 0.9) !important;
}

#ux-theme-select,
#ux-compact-toggle {
  min-height: 32px !important;
  font-size: 0.75rem !important;
}

#ux-compact-toggle[aria-pressed="true"] {
  background: #CCFBF1 !important;
  border-color: #0F766E !important;
  color: #0F766E !important;
}


.visually-hidden {
  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;
}

body.shell-modern .ux-theme-field {
  display: inline-flex;
  flex-direction: column;
  gap: 0.15rem;
  margin: 0;
  min-width: 7.5rem;
}

body.shell-modern .ux-theme-field > span,
body.shell-modern label.ux-theme-field {
  font-size: 0.65rem !important;
}

body.shell-modern #ux-theme-select {
  min-height: 32px !important;
  height: 32px !important;
  padding: 0 0.45rem !important;
  font-size: 0.75rem !important;
  text-transform: none !important;
  letter-spacing: normal !important;
}

/* #24 filter vs result surfaces */
body.shell-modern .controls-filter-bar,
body.shell-modern .filter-group,
body.shell-modern .sc-filter-bar,
body.shell-modern .assets-toolbar,
body.shell-modern .audit-sidebar-filters,
body.shell-modern .doc-idx-filters,
body.shell-modern .compliance-alert-filters {
  background: #F8FAFC !important;
  border: 1px dashed #D5DBE5 !important;
  border-radius: 12px !important;
  padding: 0.75rem 0.9rem !important;
  box-shadow: none !important;
}

/* #13: critical actions keep visible text labels (no icon-only) */
body.shell-modern .btn-primary,
body.shell-modern .btn-danger,
body.shell-modern .btn-danger-text {
  letter-spacing: 0.01em;
}


/* ── Slate Blue · tema corporativo (default) ─────────────────────────── */
body.shell-modern.theme-slate {
  color-scheme: only light !important;
  --orizon-bg: #F3F5F8 !important;
  --orizon-surface: #FFFFFF !important;
  --orizon-surface-alt: #E8EDF4 !important;
  --orizon-glass: rgba(255, 255, 255, 0.78) !important;
  --orizon-glass-strong: rgba(255, 255, 255, 0.92) !important;
  --orizon-ink: #0F172A !important;
  --orizon-text: #334155 !important;
  --orizon-muted: #475569 !important;
  --orizon-border: rgba(15, 23, 42, 0.10) !important;
  --orizon-border-solid: #E2E8F0 !important;
  --orizon-green: #1D4ED8 !important;
  --orizon-green-hover: #2563EB !important;
  --orizon-green-soft: #DBEAFE !important;
  --orizon-blue: #1D4ED8 !important;
  --orizon-blue-dark: #1E3A8A !important;
  --semantic-danger: #B91C1C !important;
  --semantic-danger-bg: #FEF2F2 !important;
  --bg: #F3F5F8 !important;
  --surface: #FFFFFF !important;
  --surface-2: #E8EDF4 !important;
  --border: #E2E8F0 !important;
  --text: #0F172A !important;
  --text-muted: #475569 !important;
  --text-secondary: #334155 !important;
  --muted: #475569 !important;
  --accent: #1D4ED8 !important;
  --accent-hover: #2563EB !important;
  --metric-emphasis: #1D4ED8 !important;
  --success: #047857 !important;
  --warning: #B45309 !important;
  --danger: #B91C1C !important;
  --ux-focus: 0 0 0 3px rgba(29, 78, 216, 0.32) !important;
}

html:has(body.theme-slate),
body.shell-modern.theme-slate,
body.shell-modern.theme-slate .main {
  background: #F3F5F8 !important;
  color: #334155 !important;
}

body.shell-modern.theme-slate .hint,
body.shell-modern.theme-slate .subtitle,
body.shell-modern.theme-slate .stat-label,
body.shell-modern.theme-slate .home-kpi-label,
body.shell-modern.theme-slate .empty-state-desc,
body.shell-modern.theme-slate .text-muted {
  color: #475569 !important;
}

body.shell-modern.theme-slate .btn-primary,
body.shell-modern.theme-slate button.btn-primary,
body.shell-modern.theme-slate .auth-submit-btn {
  background: #1D4ED8 !important;
  border-color: #1D4ED8 !important;
  color: #fff !important;
  box-shadow: 0 1px 2px rgba(29, 78, 216, 0.22);
}

body.shell-modern.theme-slate .btn-primary:hover,
body.shell-modern.theme-slate .auth-submit-btn:hover {
  background: #2563EB !important;
  border-color: #2563EB !important;
}

body.shell-modern.theme-slate .btn-secondary:hover {
  border-color: #1D4ED8 !important;
  color: #1D4ED8 !important;
  background: #EFF6FF !important;
}

body.shell-modern.theme-slate input:focus,
body.shell-modern.theme-slate select:focus,
body.shell-modern.theme-slate textarea:focus,
body.shell-modern.theme-slate .btn:focus-visible,
body.shell-modern.theme-slate .nav-btn:focus-visible,
body.shell-modern.theme-slate a:focus-visible {
  box-shadow: var(--ux-focus) !important;
  border-color: #1D4ED8 !important;
}

body.shell-modern.theme-slate .nav-btn.active,
body.shell-modern.theme-slate .nav-btn[aria-current="page"] {
  background: #DBEAFE !important;
  color: #1E3A8A !important;
  border-color: #BFDBFE !important;
}

body.shell-modern.theme-slate .nav-badge {
  background: #DBEAFE !important;
  color: #1D4ED8 !important;
}

body.shell-modern.theme-slate .ux-toast-info {
  border-left-color: #1D4ED8 !important;
}

body.shell-modern.theme-slate #ux-compact-toggle[aria-pressed="true"] {
  background: #DBEAFE !important;
  border-color: #1D4ED8 !important;
  color: #1D4ED8 !important;
}

body.shell-modern.theme-slate .workspace-sync-badge[data-sync="saved"] {
  background: #D1FAE5 !important;
  color: #065F46 !important;
  border-color: #10B981 !important;
}

body.shell-modern.theme-slate .home-kpi-card {
  border-left-color: #1D4ED8 !important;
}

body.shell-modern.theme-slate .home-kpi-warn {
  border-left-color: #D97706 !important;
}

body.shell-modern.theme-slate .home-kpi-danger {
  border-left-color: #B91C1C !important;
}

body.shell-modern.theme-slate .status-dot,
body.shell-modern.theme-slate .panel-admin {
  --admin-green: #1D4ED8;
}

body.shell-modern.theme-slate ::selection {
  background: #DBEAFE !important;
  color: #0F172A !important;
}

body.shell-modern.theme-slate .ux-row-menu[open] > summary,
body.shell-modern.theme-slate .ux-row-menu > summary:hover {
  border-color: #1D4ED8 !important;
  color: #1D4ED8 !important;
  background: #EFF6FF !important;
}

body.shell-modern.theme-slate .auth-brand-mark,
body.shell-modern.theme-slate .auth-submit-btn {
  background: #1D4ED8 !important;
}

body.shell-modern.theme-slate .auth-portal {
  --accent: #1D4ED8;
}

body.shell-modern.theme-slate input[type="checkbox"],
body.shell-modern.theme-slate input[type="radio"] {
  accent-color: #1D4ED8;
}


/* ── Shell chrome · logo / theme badge / user dock ───────────────────── */
body.shell-modern .org-switcher-top {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.55rem;
  flex-wrap: wrap;
}

body.shell-modern .org-logo-badge {
  position: relative;
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  border-radius: 12px;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(135deg, var(--accent, #1D4ED8), color-mix(in srgb, var(--accent, #1D4ED8) 40%, #93C5FD)) border-box;
  border: 2px solid transparent;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #1D4ED8) 18%, transparent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

body.shell-modern .global-org-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0.3rem !important;
  background: #fff !important;
}

body.shell-modern .global-org-logo-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font: 700 0.72rem/1 var(--mono);
  letter-spacing: 0.04em;
  color: var(--accent, #1D4ED8);
  background: color-mix(in srgb, var(--accent, #1D4ED8) 10%, #fff);
}

body.shell-modern .org-select-field {
  min-width: 148px;
  margin: 0;
}

body.shell-modern .ux-theme-badge {
  position: relative;
}

body.shell-modern .ux-theme-badge > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.28rem 0.75rem;
  border-radius: 999px;
  border: 1.5px solid color-mix(in srgb, var(--accent, #1D4ED8) 35%, #E2E8F0);
  background: color-mix(in srgb, var(--accent, #1D4ED8) 10%, #fff);
  color: var(--accent, #1D4ED8);
  font-size: 0.75rem;
  font-weight: 700;
  white-space: nowrap;
}

body.shell-modern .ux-theme-badge > summary::-webkit-details-marker { display: none; }

body.shell-modern .ux-theme-badge[open] > summary,
body.shell-modern .ux-theme-badge > summary:hover {
  background: color-mix(in srgb, var(--accent, #1D4ED8) 16%, #fff);
  border-color: var(--accent, #1D4ED8);
}

body.shell-modern .ux-theme-badge-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  min-width: 160px;
  padding: 0.35rem;
  background: #fff;
  border: 1px solid var(--orizon-border-solid, #E2E8F0);
  border-radius: 12px;
  box-shadow: var(--ux-shadow, 0 8px 24px rgba(15, 23, 42, 0.08));
  z-index: 60;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

body.shell-modern .ux-theme-option {
  border: 0;
  background: transparent;
  text-align: left;
  padding: 0.55rem 0.7rem;
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--orizon-ink, #0F172A);
  cursor: pointer;
}

body.shell-modern .ux-theme-option:hover,
body.shell-modern .ux-theme-option.is-active {
  background: color-mix(in srgb, var(--accent, #1D4ED8) 12%, #fff);
  color: var(--accent, #1D4ED8);
}

/* User insignia in page footer */
body.shell-modern .app-footer,
body.shell-modern footer.footer.app-footer {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: var(--ux-content-max, 1360px);
  margin: 1.5rem auto 0 !important;
  padding: 0.85rem 1.25rem !important;
  width: 100%;
  box-sizing: border-box;
  text-align: left !important;
  border-top: 1px solid var(--orizon-border-solid, #E2E8F0);
  background: transparent !important;
}

body.shell-modern .footer-brand {
  color: #64748B;
  font-size: 0.78rem;
  font-weight: 500;
}

body.shell-modern .ux-user-insignia,
body.shell-modern .ux-user-dock {
  position: static !important;
  left: auto !important;
  bottom: auto !important;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
  max-width: min(340px, 100%);
  padding: 0.35rem 0.45rem 0.35rem 0.35rem;
  border-radius: 999px;
  background: #fff;
  border: 1.5px solid color-mix(in srgb, var(--accent, #1D4ED8) 28%, #E2E8F0);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 0 0 3px color-mix(in srgb, var(--accent, #1D4ED8) 10%, transparent);
}

body.auth-required .ux-user-insignia,
body.auth-required .ux-user-dock {
  visibility: hidden;
  pointer-events: none;
}

body.shell-modern .ux-user-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--accent, #1D4ED8);
  color: #fff;
  font-weight: 700;
  font-size: 0.82rem;
  flex: 0 0 auto;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,0.25);
}

body.shell-modern .ux-user-copy {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
  flex: 1;
  padding-right: 0.15rem;
}

body.shell-modern .ux-user-copy strong {
  font-size: 0.78rem;
  color: var(--orizon-ink, #0F172A);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.15;
}

body.shell-modern .ux-user-insignia .rbac-role-badge,
body.shell-modern .ux-user-dock .rbac-role-badge {
  width: fit-content;
  max-width: 100%;
  min-height: 18px;
  padding: 0.05rem 0.4rem !important;
  font-size: 0.65rem !important;
  border-radius: 999px !important;
}

body.shell-modern .ux-user-menu {
  position: relative;
  flex: 0 0 auto;
}

body.shell-modern .ux-user-menu > summary {
  list-style: none;
  cursor: pointer;
  min-height: 26px;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--accent, #1D4ED8) 22%, #E2E8F0);
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--accent, #1D4ED8);
  background: color-mix(in srgb, var(--accent, #1D4ED8) 8%, #fff);
}

body.shell-modern .ux-user-menu > summary::-webkit-details-marker { display: none; }

body.shell-modern .ux-user-menu-panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + 8px);
  width: 240px;
  padding: 0.75rem;
  background: #fff;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
  z-index: 70;
  display: grid;
  gap: 0.55rem;
}

@media (max-width: 820px) {
  body.shell-modern .app-footer,
  body.shell-modern footer.footer.app-footer {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }
  body.shell-modern .ux-user-insignia,
  body.shell-modern .ux-user-dock {
    width: 100%;
    max-width: none;
    justify-content: flex-start;
  }
}

/* Highlight Riesgos + Documentación */
body.shell-modern .nav-group-emphasis {
  background: color-mix(in srgb, var(--accent, #1D4ED8) 10%, #fff) !important;
  border-left: 3px solid var(--accent, #1D4ED8) !important;
  border-radius: 10px !important;
  padding-left: 0.45rem !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent, #1D4ED8) 18%, transparent);
}

body.shell-modern .nav-group-emphasis .nav-group-label {
  color: var(--accent, #1D4ED8) !important;
  font-weight: 700 !important;
}

body.shell-modern .nav-doc-emphasis {
  background: color-mix(in srgb, var(--accent, #1D4ED8) 12%, #fff) !important;
  color: var(--accent, #1D4ED8) !important;
  border: 1px solid color-mix(in srgb, var(--accent, #1D4ED8) 28%, #E2E8F0) !important;
  font-weight: 700 !important;
}

body.shell-modern .home-risk-emphasis,
body.shell-modern .home-docs-emphasis {
  border-color: color-mix(in srgb, var(--accent, #1D4ED8) 28%, #E2E8F0) !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent, #1D4ED8) 10%, transparent), var(--ux-shadow) !important;
}

body.shell-modern .home-risk-emphasis h3,
body.shell-modern .home-docs-emphasis h3 {
  color: var(--accent, #1D4ED8) !important;
}

/* Home charts restored */
body.shell-modern .home-charts-grid {
  display: grid !important;
  grid-template-columns: 1.2fr 1.2fr 0.9fr;
  gap: 1rem !important;
}

body.shell-modern .home-chart-card {
  min-height: 100%;
}

body.shell-modern .home-grc-kpis,
body.shell-modern #grc-dash.audit-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.65rem;
}

body.shell-modern .home-sla-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

body.shell-modern .home-sla-metric {
  padding: 0.7rem 0.75rem;
  border-radius: 10px;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  display: grid;
  gap: 0.15rem;
}

body.shell-modern .home-sla-metric strong {
  font: 700 1.35rem/1.1 var(--mono);
  color: var(--orizon-ink, #0F172A);
}

body.shell-modern .home-sla-metric span {
  font-size: 0.78rem;
  font-weight: 650;
  color: #334155;
}

body.shell-modern .home-sla-metric small {
  font-size: 0.7rem;
  color: #64748B;
}

body.shell-modern .home-sla-bar {
  margin-top: 0.35rem;
  height: 6px;
  border-radius: 99px;
  background: #E2E8F0;
  overflow: hidden;
}

body.shell-modern .home-sla-bar i {
  display: block;
  height: 100%;
  background: var(--accent, #1D4ED8);
  border-radius: inherit;
}

body.shell-modern .home-sla-bar.is-warn i { background: #D97706; }
body.shell-modern .home-sla-bar.is-danger i { background: #B91C1C; }
body.shell-modern .home-sla-metric.is-warn { border-color: #F59E0B; background: #FFFBEB; }
body.shell-modern body.shell-modern .home-sla-metric.is-danger { border-color: #FCA5A5; background: #FEF2F2; }

body.shell-modern .home-docs-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin-bottom: 0.55rem;
}

body.shell-modern .home-docs-metrics div {
  padding: 0.55rem;
  border-radius: 10px;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  display: grid;
  gap: 0.15rem;
}

body.shell-modern .home-docs-metrics strong {
  font: 700 1.15rem/1 var(--mono);
  color: var(--orizon-ink, #0F172A);
}

body.shell-modern .home-docs-metrics span {
  font-size: 0.7rem;
  color: #64748B;
}

@media (max-width: 1366px) {
  body.shell-modern .home-charts-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  body.shell-modern .home-sla-card {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  body.shell-modern .home-charts-grid {
    grid-template-columns: 1fr !important;
  }
  body.shell-modern .home-docs-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ── Header org strip · solo logo/org/sync/tema/auth ─────────────────── */
body.shell-modern .org-switcher-top {
  display: inline-flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem !important;
  flex-wrap: nowrap !important;
  margin-left: auto;
}

/* Header derecho: solo logo + código + selector organización */
body.shell-modern .org-switcher-top > :not(.org-code-badge):not(.org-select-field):not(#global-org-select) {
  display: none !important;
}
body.shell-modern .org-switcher-top .org-logo-badge,
body.shell-modern .org-switcher-top .global-org-logo,
body.shell-modern .org-switcher-top .global-org-logo-fallback {
  display: none !important;
}

body.shell-modern #ux-theme-select[hidden],
body.shell-modern .org-switcher-top #ux-theme-select {
  display: none !important;
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

body.shell-modern .org-logo-badge {
  width: 40px;
  height: 40px;
  border-radius: 10px;
}

body.shell-modern .org-code-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent, #1D4ED8) 12%, #fff);
  border: 1px solid color-mix(in srgb, var(--accent, #1D4ED8) 28%, #E2E8F0);
  color: var(--accent, #1D4ED8);
  font: 700 0.72rem/1 var(--mono);
  letter-spacing: 0.04em;
  white-space: nowrap;
}

body.shell-modern .org-select-field {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

body.shell-modern .org-select-label {
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #64748B !important;
  white-space: nowrap;
}

body.shell-modern .org-select-field select {
  min-height: 32px !important;
  height: 32px !important;
  min-width: 88px;
  max-width: 140px;
  padding: 0 0.55rem !important;
  border-radius: 999px !important;
  border: 1.5px solid #E2E8F0 !important;
  background: #fff !important;
  font-size: 0.78rem !important;
  font-weight: 650 !important;
}

body.shell-modern .org-switcher-top .workspace-sync-badge,
body.shell-modern .org-switcher-top .ux-theme-badge > summary,
body.shell-modern .org-switcher-top .auth-chip-btn {
  min-height: 32px !important;
  border-radius: 999px !important;
}

body.shell-modern .org-switcher-top .auth-chip-btn[hidden] {
  display: none !important;
}

body.shell-modern .org-switcher-top .ux-theme-badge-panel {
  display: none;
}

body.shell-modern .org-switcher-top .ux-theme-badge[open] > .ux-theme-badge-panel {
  display: flex;
}

@media (max-width: 1100px) {
  body.shell-modern .org-select-label { display: none; }
  body.shell-modern .org-select-field select { max-width: 110px; }
}


body.shell-modern .app-footer {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

body.shell-modern .footer-controls {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
  margin-left: auto;
}

body.shell-modern .footer-controls .workspace-sync-badge,
body.shell-modern .footer-controls .ux-theme-badge > summary,
body.shell-modern .footer-controls .auth-chip-btn {
  min-height: 30px !important;
  border-radius: 999px !important;
}

body.shell-modern .footer-controls .auth-chip-btn[hidden] {
  display: none !important;
}

body.shell-modern .footer-controls #ux-theme-select[hidden] {
  display: none !important;
}


body.shell-modern .footer-controls { display: none !important; }
body.shell-modern #ux-hidden-controls {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
}


/* Administración en footer (fuera de la nav principal) */
body.shell-modern .nav .nav-admin-btn,
body.shell-modern .nav .nav-more {
  display: none !important;
}

body.shell-modern .app-footer {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

body.shell-modern .footer-nav {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-left: auto;
}

body.shell-modern .footer-admin-btn.nav-btn,
body.shell-modern .footer-admin-btn {
  min-height: 30px !important;
  height: auto !important;
  padding: 0.3rem 0.75rem !important;
  border-radius: 999px !important;
  border: 1.5px solid #E2E8F0 !important;
  background: #fff !important;
  color: #475569 !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  white-space: nowrap;
}

body.shell-modern .footer-admin-btn.nav-btn.active,
body.shell-modern .footer-admin-btn:hover {
  border-color: var(--accent, #1D4ED8) !important;
  color: var(--accent, #1D4ED8) !important;
  background: color-mix(in srgb, var(--accent, #1D4ED8) 8%, #fff) !important;
}

body.shell-modern .footer-admin-btn.rbac-denied,
body.shell-modern .footer-admin-btn[hidden] {
  display: none !important;
}


/* Nav por zonas GRC */
body.shell-modern .nav {
  gap: 0.55rem !important;
}

body.shell-modern .nav-group {
  display: inline-flex !important;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem 0.4rem 0.2rem 0.5rem !important;
  border-left: 1px solid #D5DBE5 !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.shell-modern .nav-group[data-group="core"] {
  border-left: 0 !important;
  padding-left: 0 !important;
}

body.shell-modern .nav-group-label {
  font-size: 0.62rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #64748B !important;
  white-space: nowrap;
}

body.shell-modern .nav-group.is-active .nav-group-label {
  color: var(--accent, #1D4ED8) !important;
}

body.shell-modern .nav-group-emphasis {
  background: color-mix(in srgb, var(--accent, #1D4ED8) 8%, #fff) !important;
  border-radius: 10px !important;
  border-left: 3px solid var(--accent, #1D4ED8) !important;
}

body.shell-modern .footer-zone-admin,
body.shell-modern .footer-nav {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

body.shell-modern .footer-zone-label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #64748B;
}


/* ── Inicio sprint visual ─────────────────────────────────────────────── */
/* Nunca forzar display en .panel-home sin .active: ocultaría mal el resto de módulos. */
body.shell-modern .panel-home.active {
  gap: 1rem !important;
}

body.shell-modern .home-overview-header {
  align-items: center;
  gap: 1rem;
}

body.shell-modern .home-kpi-strip-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0.75rem !important;
}

body.shell-modern .home-kpi-tone {
  margin-top: 0.35rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748B;
}

body.shell-modern .home-kpi-card[data-kpi="gaps"] .home-kpi-tone,
body.shell-modern .home-kpi-card[data-kpi="due"] .home-kpi-tone { color: #B45309; }
body.shell-modern .home-kpi-card[data-kpi="risk"] .home-kpi-tone { color: #B91C1C; }
body.shell-modern .home-kpi-card[data-kpi="progress"] .home-kpi-tone { color: #047857; }

body.shell-modern .home-kpi-delta {
  display: block;
  font-size: 0.72rem;
  font-weight: 650;
  margin-top: 0.15rem;
  min-height: 1em;
}
body.shell-modern .home-kpi-delta.is-up { color: #047857; }
body.shell-modern .home-kpi-delta.is-down { color: #B91C1C; }

/* Foco ejecutivo */
body.shell-modern .home-focus-grid {
  display: grid !important;
  grid-template-columns: 1.55fr 1fr !important;
  gap: 1rem !important;
}

body.shell-modern .home-focus-trend,
body.shell-modern .home-focus-side {
  min-height: 260px;
}

body.shell-modern .home-donut-layout {
  display: grid;
  grid-template-columns: 112px 1fr;
  gap: 0.85rem;
  align-items: center;
  margin-top: 0.65rem;
}

body.shell-modern .home-donut {
  width: 112px;
  height: 112px;
  border-radius: 50%;
  mask: radial-gradient(circle, transparent 42%, #000 43%);
  -webkit-mask: radial-gradient(circle, transparent 42%, #000 43%);
}

body.shell-modern .home-donut-legend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
  font-size: 0.8rem;
}

body.shell-modern .home-donut-legend li {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

body.shell-modern .home-focus-actions-title {
  margin: 0.85rem 0 0.35rem;
  font-size: 0.82rem;
}

body.shell-modern .home-focus-actions {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.35rem;
}

body.shell-modern .home-command-grid-2 {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1rem !important;
}

body.shell-modern .home-ops-strip {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1rem !important;
}

body.shell-modern .home-insights-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1rem !important;
}

body.shell-modern .home-insights-grid .hm-card {
  min-height: 200px;
}

body.shell-modern .hm-area {
  width: 100%;
  height: auto;
  display: block;
}

body.shell-modern .hm-heat-bars {
  display: grid;
  gap: 0.4rem;
}

body.shell-modern .hm-heat-bar-row {
  display: grid;
  grid-template-columns: 4.5rem 1fr 1.6rem;
  gap: 0.45rem;
  align-items: center;
  font-size: 0.78rem;
}

body.shell-modern .hm-heat-bar-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #475569;
}

body.shell-modern .hm-heat-bar-track {
  height: 8px;
  border-radius: 999px;
  background: #FEE2E2;
  overflow: hidden;
}

body.shell-modern .hm-heat-bar-fill {
  height: 100%;
  border-radius: inherit;
  background: #B91C1C;
}

body.shell-modern .hm-caption {
  margin-top: 0.45rem;
  font-size: 0.72rem;
}

body.shell-modern .home-grc-more .home-grc-kpis {
  margin-top: 0.65rem;
}

body.shell-modern .audit-doc-home-moved {
  margin-bottom: 1rem;
}

body.shell-modern .audit-doc-dashboard-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: baseline;
  cursor: pointer;
  list-style: none;
}

body.shell-modern .audit-doc-dashboard-summary::-webkit-details-marker { display: none; }

body.shell-modern .home-readiness-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

body.shell-modern .home-readiness-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 36px;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  border: 1px solid #E2E8F0;
  background: #F8FAFC;
  cursor: pointer;
  font: inherit;
}

body.shell-modern .home-readiness-chip:hover {
  border-color: var(--accent, #1D4ED8);
  background: color-mix(in srgb, var(--accent, #1D4ED8) 8%, #fff);
}

body.shell-modern .home-readiness-chip strong {
  font-size: 0.78rem;
  color: var(--orizon-ink, #0F172A);
}

body.shell-modern .home-readiness-chip span {
  font-size: 0.72rem;
  color: var(--accent, #1D4ED8);
  font-weight: 650;
}

@media (max-width: 1100px) {
  body.shell-modern .home-focus-grid,
  body.shell-modern .home-insights-grid,
  body.shell-modern .home-command-grid-2,
  body.shell-modern .home-ops-strip {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 700px) {
  body.shell-modern .home-kpi-strip-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.shell-modern .home-donut-layout {
    grid-template-columns: 96px 1fr;
  }
}

body.shell-modern .home-sla-semaphore {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

body.shell-modern .home-sla-status {
  display: inline-flex;
  width: fit-content;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin-bottom: 0.25rem;
}

body.shell-modern .home-sla-metric.is-ok {
  border-color: #A7F3D0 !important;
  background: #ECFDF5 !important;
}
body.shell-modern .home-sla-metric.is-ok .home-sla-status {
  background: #D1FAE5;
  color: #065F46;
}
body.shell-modern .home-sla-metric.is-warn .home-sla-status {
  background: #FEF3C7;
  color: #92400E;
}
body.shell-modern .home-sla-metric.is-danger .home-sla-status {
  background: #FEE2E2;
  color: #991B1B;
}

body.shell-modern .home-docs-metrics-compact {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  margin-bottom: 0.75rem;
}

body.shell-modern .work-queue-list-compact {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.45rem;
}

body.shell-modern .work-queue-list-compact > li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid #E2E8F0;
  border-radius: 10px;
  background: #F8FAFC;
}

body.shell-modern .wq-more {
  justify-content: center !important;
  border-style: dashed !important;
}

@media (max-width: 1200px) {
  body.shell-modern .home-kpi-strip-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.shell-modern .home-focus-grid,
  body.shell-modern .home-insights-grid,
  body.shell-modern .home-command-grid-2,
  body.shell-modern .home-ops-strip {
    grid-template-columns: 1fr !important;
  }
}


/* ── Home insights charts ─────────────────────────────────────────────── */
body.shell-modern .hm-card {
  min-height: 200px;
}

body.shell-modern .hm-card h3 {
  margin: 0 0 0.15rem;
}

body.shell-modern .hm-body {
  margin-top: 0.65rem;
}

body.shell-modern .hm-spark,
body.shell-modern .hm-area,
body.shell-modern .hm-funnel,
body.shell-modern .hm-radar {
  width: 100%;
  height: auto;
  display: block;
}

body.shell-modern .hm-svg-label {
  font-size: 9px;
  fill: #64748B;
  font-family: inherit;
}

body.shell-modern .hm-trend-meta {
  display: flex;
  align-items: baseline;
  gap: 0.65rem;
  margin-top: 0.35rem;
}

body.shell-modern .hm-trend-meta strong {
  font: 700 1.25rem/1 var(--mono);
  color: var(--orizon-ink, #0F172A);
}

body.shell-modern .hm-trend-meta .is-up { color: #047857; font-weight: 650; font-size: 0.8rem; }
body.shell-modern .hm-trend-meta .is-down { color: #B91C1C; font-weight: 650; font-size: 0.8rem; }

body.shell-modern .hm-heat {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
  gap: 0.4rem;
}

body.shell-modern .hm-heat-cell {
  display: grid;
  gap: 0.1rem;
  padding: 0.55rem 0.45rem;
  border: 0;
  border-radius: 10px;
  text-align: left;
  cursor: default;
  font: inherit;
  color: #7F1D1D;
}

body.shell-modern .hm-heat-cell strong {
  font-size: 0.78rem;
}

body.shell-modern .hm-heat-cell span {
  font: 700 1.05rem/1 var(--mono);
}

body.shell-modern .hm-heat-cell small {
  font-size: 0.65rem;
  opacity: 0.8;
}

body.shell-modern .hm-burn-bars {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.45rem;
  align-items: end;
  min-height: 140px;
}

body.shell-modern .hm-burn-col {
  display: grid;
  gap: 0.25rem;
  justify-items: center;
}

body.shell-modern .hm-burn-stack {
  position: relative;
  width: 100%;
  height: 110px;
  background: #F1F5F9;
  border-radius: 8px 8px 4px 4px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
}

body.shell-modern .hm-burn-bar {
  display: block;
  width: 100%;
  background: #1D4ED8;
  border-radius: 6px 6px 0 0;
}

body.shell-modern .hm-burn-bar.is-warn { background: #D97706; }
body.shell-modern .hm-burn-bar.is-danger { background: #B91C1C; }

body.shell-modern .hm-burn-line {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: #0F172A;
  opacity: 0.55;
}

body.shell-modern .hm-burn-col strong {
  font: 700 0.85rem/1 var(--mono);
}

body.shell-modern .hm-burn-col small {
  font-size: 0.65rem;
  color: #64748B;
  text-align: center;
}

body.shell-modern .hm-radar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.35rem;
  font-size: 0.72rem;
  color: #64748B;
}

@media (max-width: 1100px) {
  body.shell-modern .home-insights-grid {
    grid-template-columns: 1fr !important;
  }
  body.shell-modern .hm-burn-bars {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* ── Cumplimiento IA · hub Gobierno / Mejora / SoA / work modes (2026-07-31) ── */
:root {
  --font: "DM Sans", "Source Sans 3", ui-sans-serif, system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, monospace;
}

body.shell-modern {
  font-family: var(--font);
}

.ux-work-modes {
  display: inline-flex;
  gap: 4px;
  padding: 2px;
  border: 1px solid var(--border, #e6eaf0);
  border-radius: 8px;
  background: var(--surface, #fff);
}

.ux-work-mode-btn {
  border: 0;
  background: transparent;
  color: var(--text-muted, #6b778c);
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 6px;
  cursor: pointer;
}

.ux-work-mode-btn.active,
.ux-work-mode-btn[aria-pressed="true"] {
  background: color-mix(in srgb, var(--accent, #1d4ed8) 12%, #fff);
  color: var(--accent, #1d4ed8);
}

.home-kpi-strip-5 {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 1100px) {
  .home-kpi-strip-5 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.gobierno-hub-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 16px;
}

.gobierno-hub-card {
  text-align: left;
  border: 1px solid var(--border, #e6eaf0);
  background: var(--surface, #fff);
  border-radius: 10px;
  padding: 14px 16px;
  cursor: pointer;
  display: grid;
  gap: 4px;
}

.gobierno-hub-card strong {
  font-size: 14px;
  color: var(--text, #1f2937);
}

.gobierno-hub-card span {
  font-size: 12px;
  color: var(--text-muted, #6b778c);
}

.gobierno-hub-card.active,
.gobierno-hub-card:hover {
  border-color: color-mix(in srgb, var(--accent, #1d4ed8) 45%, var(--border, #e6eaf0));
  background: color-mix(in srgb, var(--accent, #1d4ed8) 6%, #fff);
}

.mejora-board {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (max-width: 960px) {
  .mejora-board,
  .gobierno-hub-links {
    grid-template-columns: 1fr;
  }
}

.audit-flow-hint {
  align-self: center;
  font-size: 12px;
}

/* Work modes: hide advanced audit chrome for executive / owner focus */
body[data-work-mode="executive"] .audit-advanced-only,
body[data-work-mode="executive"] .audit-page-tools,
body[data-work-mode="executive"] .audit-flow-tools,
body[data-work-mode="owner"] .audit-advanced-only {
  display: none !important;
}

body[data-work-mode="executive"] .nav-group[data-group="risks"] .nav-group-btns .nav-btn:not([data-step="5"]),
body[data-work-mode="executive"] .nav-group[data-group="ops"],
body[data-work-mode="executive"] .nav-group[data-group="more"] {
  opacity: 0.55;
}

body[data-work-mode="owner"] .audit-secondary-eval {
  display: none;
}


/* ── Auditorías · workspace Evidencias + cabina steps (2026-07-31) ── */
.audit-docs-workspace {
  display: grid;
  gap: 16px;
  margin-top: 8px;
}

.audit-docs-workspace.hidden {
  display: none !important;
}

#audit-eval-workspace.hidden {
  display: none !important;
}

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

.audit-docs-bulk-candidates {
  display: grid;
  gap: 8px;
  max-height: 360px;
  overflow: auto;
  margin: 8px 0 12px;
}

.audit-docs-matrix-wrap tr.is-gap {
  background: color-mix(in srgb, #dc2626 6%, #fff);
}

.audit-cabin-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 12px;
}

.audit-cabin-step {
  border: 1px solid var(--border, #e6eaf0);
  background: #fff;
  color: var(--text-muted, #6b778c);
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 10px;
  border-radius: 8px;
  cursor: pointer;
}

.audit-cabin-step.active {
  border-color: color-mix(in srgb, var(--accent, #1d4ed8) 50%, #e6eaf0);
  background: color-mix(in srgb, var(--accent, #1d4ed8) 10%, #fff);
  color: var(--accent, #1d4ed8);
}

.audit-expected-checklist li.is-matched { color: #047857; }
.audit-expected-checklist li.is-missing { color: #b45309; }

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

/* ── Inicio · Intro tarjetas + PDCA (2026-07-31) ── */
.home-section-eyebrow {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted, #6b778c);
  margin-bottom: 4px;
}

.home-section-title {
  margin: 0 0 4px;
  font-size: 1.15rem;
  font-weight: 650;
  color: var(--text, #1f2937);
}

.home-section-label-row {
  margin: 8px 0 12px;
}

.home-intro {
  margin: 0 0 1.25rem;
}

.home-intro-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.home-intro.is-collapsed .home-intro-grid {
  display: none;
}

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

.home-intro-card {
  display: grid;
  gap: 6px;
  text-align: left;
  padding: 16px 16px 14px;
  border: 1px solid var(--border, #e6eaf0);
  border-radius: 12px;
  background: var(--surface, #fff);
  color: var(--text, #1f2937);
  cursor: pointer;
  font: inherit;
  min-height: 132px;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.home-intro-card:hover,
.home-intro-card:focus-visible {
  border-color: color-mix(in srgb, var(--accent, #1d4ed8) 45%, var(--border, #e6eaf0));
  background: color-mix(in srgb, var(--accent, #1d4ed8) 5%, #fff);
  outline: none;
}

.home-intro-code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.04em;
  color: var(--accent, #1d4ed8);
  background: color-mix(in srgb, var(--accent, #1d4ed8) 10%, #fff);
}

.home-intro-card strong {
  font-size: 0.98rem;
  font-weight: 650;
}

.home-intro-card span {
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--text-muted, #6b778c);
}

.home-intro-card i {
  font-style: normal;
  font-size: 0.78rem;
  font-weight: 650;
  color: var(--accent, #1d4ed8);
  margin-top: auto;
}

.home-guide-promoted {
  margin-bottom: 1.25rem;
  border: 1px solid var(--border, #e6eaf0);
  border-radius: 12px;
  background: var(--surface, #fff);
  padding: 14px 16px;
}

.home-day-block,
.home-pdca,
.home-phva,
.home-focus-block,
.home-exec-charts {
  margin-bottom: 1.35rem;
}

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

.home-pdca-card {
  display: grid;
  gap: 4px;
  text-align: left;
  padding: 14px 16px;
  border: 1px solid var(--border, #e6eaf0);
  border-radius: 12px;
  background: var(--surface, #fff);
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.home-pdca-card:hover {
  border-color: color-mix(in srgb, var(--accent, #1d4ed8) 40%, var(--border, #e6eaf0));
}

.home-pdca-letter {
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 750;
  color: #fff;
  background: var(--accent, #1d4ed8);
}

.home-pdca-card[data-pdca="plan"] .home-pdca-letter { background: #1d4ed8; }
.home-pdca-card[data-pdca="do"] .home-pdca-letter { background: #0f766e; }
.home-pdca-card[data-pdca="check"] .home-pdca-letter { background: #b45309; }
.home-pdca-card[data-pdca="act"] .home-pdca-letter { background: #be123c; }

.home-pdca-card strong {
  font-size: 0.92rem;
}

.home-pdca-card em {
  font-style: normal;
  font-size: 1.35rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.home-pdca-card span {
  font-size: 0.78rem;
  color: var(--text-muted, #6b778c);
  line-height: 1.4;
}

/* Mando ejecutivo: KPIs + FODA + SoA */
.home-exec-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(200px, 260px) auto;
  gap: 12px;
  align-items: stretch;
}

.home-exec-row .home-kpi-strip {
  margin: 0;
}

.home-foda-card {
  display: grid;
  gap: 4px;
  align-content: start;
  padding: 14px 16px;
  border: 1px solid var(--border, #e6eaf0);
  border-radius: 12px;
  background:
    linear-gradient(160deg, color-mix(in srgb, var(--accent, #1d4ed8) 6%, #fff) 0%, #fff 70%);
}

.home-foda-card strong {
  font-size: 0.95rem;
}

.home-foda-card em {
  font-style: normal;
  font-size: 1.15rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

.home-foda-card em[data-tone="ok"],
.home-foda-card[data-tone="ok"] em { color: #047857; }
.home-foda-card em[data-tone="warn"],
.home-foda-card[data-tone="warn"] em { color: #b45309; }
.home-foda-card em[data-tone="muted"],
.home-foda-card[data-tone="muted"] em { color: #64748b; }

.home-foda-card .hint {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.35;
}

.home-foda-meta {
  font-size: 0.72rem;
  color: var(--text-muted, #6b778c);
}

.home-soa-chip {
  display: grid;
  place-content: center;
  gap: 2px;
  min-width: 88px;
  padding: 12px 14px;
  border: 1px solid var(--border, #e6eaf0);
  border-radius: 12px;
  background: var(--surface, #fff);
  cursor: pointer;
  font: inherit;
  color: inherit;
}

.home-soa-chip span {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted, #6b778c);
}

.home-soa-chip strong {
  font-size: 1.35rem;
  font-variant-numeric: tabular-nums;
}

.home-soa-chip:hover {
  border-color: color-mix(in srgb, var(--accent, #1d4ed8) 40%, var(--border, #e6eaf0));
}

/* PHVA anillo + cards */
.home-phva {
  margin-bottom: 1.35rem;
}

.home-phva-layout {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  align-items: center;
}

.home-phva-ring {
  width: 168px;
  height: 168px;
  flex-shrink: 0;
}

.home-phva-ring svg {
  display: block;
  width: 100%;
  height: auto;
}

.home-phva-ring-letter {
  font-size: 11px;
  font-weight: 750;
}

.home-phva-ring-avg {
  font-size: 22px;
  font-weight: 750;
  fill: var(--text, #0f172a);
}

.home-phva-ring-caption {
  font-size: 10px;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  fill: var(--text-muted, #6b778c);
}

.home-exec-charts {
  margin-bottom: 1.35rem;
}

.home-exec-charts .home-focus-grid {
  margin-bottom: 12px;
}

.home-readiness-inline {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--border, #e6eaf0);
}

.home-intro.is-collapsed .home-intro-head {
  margin-bottom: 0;
}

@media (max-width: 1100px) {
  .home-exec-row {
    grid-template-columns: 1fr 1fr;
  }
  .home-soa-chip {
    grid-column: 2;
    justify-self: end;
  }
  .home-phva-layout {
    grid-template-columns: 1fr;
    justify-items: center;
  }
}

@media (max-width: 640px) {
  .home-exec-row {
    grid-template-columns: 1fr;
  }
  .home-soa-chip {
    grid-column: auto;
    justify-self: stretch;
  }
}

.home-ops-strip-compact {
  margin-top: 12px;
}

.home-more-details {
  margin-top: 0.5rem;
  border: 1px solid var(--border, #e6eaf0);
  border-radius: 12px;
  background: var(--surface, #fff);
  padding: 0 4px 4px;
}

.home-more-details > summary {
  cursor: pointer;
  padding: 12px 12px;
  font-weight: 650;
  color: var(--text-muted, #6b778c);
}

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

@media (max-width: 640px) {
  .home-intro-grid,
  .home-pdca-grid {
    grid-template-columns: 1fr;
  }
}

/* Ejecutivo: intro más compacta */
body[data-work-mode="executive"] .home-intro-card {
  min-height: 112px;
}

.audit-pdca-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 8px;
}
.audit-pdca-chip {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid var(--border, #e6eaf0);
  color: var(--text-muted, #6b778c);
  background: #fff;
}
.audit-pdca-chip.is-active {
  color: var(--accent, #1d4ed8);
  border-color: color-mix(in srgb, var(--accent, #1d4ed8) 40%, #e6eaf0);
  background: color-mix(in srgb, var(--accent, #1d4ed8) 8%, #fff);
}
.audit-phase-pdca {
  display: block;
  font-size: 0.65rem;
  font-weight: 600;
  color: var(--text-muted, #6b778c);
}
.audit-phase-btn.active .audit-phase-pdca {
  color: var(--accent, #1d4ed8);
}

/* ═══ App shell · sidebar izquierda + topbar (2026-07-31) ═══════════════ */
:root {
  --sb-w: 244px;
  --sb-w-collapsed: 68px;
  --tb-h: 52px;
  --header-sticky-offset: calc(var(--tb-h) + 4px);

  --sb-bg: #0F1B2E;
  --sb-bg-soft: #17253B;
  --sb-line: #24344E;
  --sb-ink: #F1F5F9;
  --sb-muted: #93A4BD;
  --sb-accent: #60A5FA;

  --app-bg: #F7F9FC;
  --app-wallpaper-grid: rgba(15, 118, 110, 0.035);
  --app-wallpaper-glow-a: rgba(15, 118, 110, 0.05);
  --app-wallpaper-glow-b: rgba(29, 78, 216, 0.04);
  --app-panel: #FFFFFF;
  --app-line: #CBD5E1;
  --app-ink: #0F172A;
  --app-muted: #52627A;

  --dom-core: #64748B;
  --dom-comms: #38BDF8;
  --dom-compliance: #14B8A6;
  --dom-risks: #F59E0B;
  --dom-ops: #F472B6;
  --dom-admin: #A78BFA;
}

/* ── Wallpaper «portal suave»: grilla táctica del login en tono claro ─── */
html:has(body.shell-modern),
html:has(body.theme-slate) {
  background: var(--app-bg) !important;
}

body.shell-modern,
body.shell-modern.theme-slate {
  background-color: var(--app-bg) !important;
  background-image:
    linear-gradient(to right, var(--app-wallpaper-grid) 1px, transparent 1px),
    linear-gradient(to bottom, var(--app-wallpaper-grid) 1px, transparent 1px),
    radial-gradient(ellipse at 18% 0%, var(--app-wallpaper-glow-a) 0%, transparent 42%),
    radial-gradient(ellipse at 82% 100%, var(--app-wallpaper-glow-b) 0%, transparent 42%) !important;
  background-size: 32px 32px, 32px 32px, 100% 100%, 100% 100% !important;
  background-attachment: fixed !important;
  color: #1E293B !important;
}

body.shell-modern.theme-slate .main,
body.shell-modern .main {
  background: transparent !important;
  color: #1E293B !important;
}

body.shell-modern.theme-slate {
  --orizon-bg: #F7F9FC !important;
  --bg: #F7F9FC !important;
  --orizon-surface-alt: #EEF2F8 !important;
  --surface-2: #EEF2F8 !important;
  --border: #CBD5E1 !important;
  --orizon-border-solid: #CBD5E1 !important;
  --orizon-border: rgba(15, 23, 42, 0.14) !important;
  --text-muted: #52627A !important;
  --orizon-muted: #52627A !important;
}

/* Login: el portal oscuro cubre todo; evitamos que asome la grilla clara */
body.auth-required.shell-modern {
  background-image: none !important;
  background-color: #0A1428 !important;
}

@media (max-width: 720px) {
  body.shell-modern,
  body.shell-modern.theme-slate {
    --app-wallpaper-grid: rgba(15, 118, 110, 0.022);
    --app-wallpaper-glow-a: rgba(15, 118, 110, 0.035);
    --app-wallpaper-glow-b: rgba(29, 78, 216, 0.028);
  }
}

/* Tarjetas y superficies: blanco puro + borde definido = separación clara */
body.shell-modern .card,
body.shell-modern .panel > .panel-header,
body.shell-modern .home-overview-header,
body.shell-modern .home-kpi-card,
body.shell-modern .home-command-card,
body.shell-modern .guide,
body.shell-modern .table-wrap,
body.shell-modern .stat-card,
body.shell-modern .kpi-card,
body.shell-modern .home-chart-card,
body.shell-modern .home-intro-card,
body.shell-modern .home-pdca-card {
  background: var(--app-panel) !important;
  border: 1px solid var(--app-line) !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05) !important;
}

/* ── Sidebar ─────────────────────────────────────────────────────────── */
/* z-index bajo .modal (80) para no tapar diálogos y cabinas. */
#app-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 70;
  width: var(--sb-w);
  display: flex;
  flex-direction: column;
  background: var(--sb-bg);
  border-right: 1px solid var(--sb-line);
  color: var(--sb-ink);
  overflow: hidden;
  transition: width 0.16s ease, transform 0.18s ease;
}

body.shell-modern:not(.auth-required) {
  padding-left: var(--sb-w);
  transition: padding-left 0.16s ease;
}

body.sidebar-collapsed:not(.auth-required) { padding-left: var(--sb-w-collapsed); }
body.sidebar-collapsed #app-sidebar { width: var(--sb-w-collapsed); }
body.auth-required #app-sidebar,
body.auth-required .app-topbar { display: none !important; }

#app-sidebar .sb-head {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-height: var(--tb-h);
  padding: 0.5rem 0.6rem;
  border-bottom: 1px solid var(--sb-line);
}

#app-sidebar .sb-brand {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
  flex: 1;
}

#app-sidebar .sb-mark {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  display: inline-grid;
  place-items: center;
  border-radius: 8px;
  background: #2563EB;
  color: #fff;
  font: 800 0.95rem/1 var(--font, "DM Sans", sans-serif);
}

#app-sidebar .sb-brand-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.15;
}

#app-sidebar .sb-brand-copy strong {
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #fff;
}

#app-sidebar .sb-brand-copy small {
  font-size: 0.62rem;
  color: var(--sb-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#app-sidebar .sb-collapse {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--sb-line);
  border-radius: 7px;
  background: var(--sb-bg-soft);
  color: var(--sb-muted);
  font-size: 0.75rem;
  cursor: pointer;
}

#app-sidebar .sb-collapse:hover { color: #fff; border-color: #35496B; }

#app-sidebar .sb-org {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0.6rem 0.6rem 0.35rem;
  padding: 0.2rem 0.35rem 0.2rem 0.25rem;
  border: 1px solid var(--sb-line);
  border-radius: 9px;
  background: var(--sb-bg-soft);
  cursor: pointer;
}

#app-sidebar .sb-org-code {
  flex: 0 0 auto;
  padding: 0.15rem 0.4rem;
  border-radius: 6px;
  background: rgba(96, 165, 250, 0.16);
  color: var(--sb-accent);
  font: 700 0.62rem/1.4 var(--mono, ui-monospace, monospace);
  letter-spacing: 0.04em;
  white-space: nowrap;
}

#app-sidebar .sb-org select,
#app-sidebar #global-org-select {
  flex: 1;
  min-width: 0;
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  height: 26px !important;
  min-height: 26px !important;
  padding: 0 1rem 0 0.2rem !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #E2E8F0 !important;
  font: 600 0.8rem/1 var(--font, "DM Sans", sans-serif) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2393A4BD' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 0.15rem center !important;
  background-size: 8px 5px !important;
}

#app-sidebar #global-org-select option { color: #0F172A; }

/* Nav vertical */
#app-sidebar .sb-nav.nav,
#app-sidebar #app-primary-nav {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 0.15rem !important;
  flex: 1 1 auto;
  min-height: 0;
  margin: 0 !important;
  padding: 0.35rem 0.5rem 0.75rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: #2B3C57 transparent;
}

#app-sidebar .nav-group {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0.1rem !important;
  margin: 0 0 0.35rem !important;
  padding: 0.35rem 0 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#app-sidebar .nav-group[data-group="core"] { --dom: var(--dom-core); }
#app-sidebar .nav-group[data-group="comms"] { --dom: var(--dom-comms); }
#app-sidebar .nav-group[data-group="compliance"] { --dom: var(--dom-compliance); }
#app-sidebar .nav-group[data-group="risks"] { --dom: var(--dom-risks); }
#app-sidebar .nav-group[data-group="ops"] { --dom: var(--dom-ops); }
#app-sidebar .nav-group[data-group="admin"] { --dom: var(--dom-admin); }

#app-sidebar .nav-group-label {
  display: block !important;
  padding: 0 0.55rem 0.25rem !important;
  font: 700 0.6rem/1 var(--font, "DM Sans", sans-serif) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #7A8CA8 !important;
  white-space: nowrap;
}

#app-sidebar .nav-group.is-active .nav-group-label { color: var(--dom) !important; }

#app-sidebar .nav-group-btns {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.1rem !important;
  flex-wrap: nowrap !important;
}

#app-sidebar .nav-btn {
  display: flex !important;
  align-items: center !important;
  gap: 0.6rem;
  width: 100%;
  min-height: 34px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0.4rem 0.55rem !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: #C7D3E4 !important;
  font: 600 0.83rem/1.2 var(--font, "DM Sans", sans-serif) !important;
  text-align: left;
  white-space: nowrap;
  box-shadow: none !important;
  cursor: pointer;
  position: relative;
}

#app-sidebar .nav-btn::before {
  content: attr(data-icon);
  flex: 0 0 auto;
  width: 18px;
  text-align: center;
  font-size: 0.8rem;
  color: #7A8CA8;
}

#app-sidebar .nav-btn:hover {
  background: var(--sb-bg-soft) !important;
  color: #fff !important;
}

#app-sidebar .nav-btn:hover::before { color: var(--dom, #93A4BD); }

#app-sidebar .nav-btn.active,
#app-sidebar .nav-btn.active:hover {
  background: color-mix(in srgb, var(--dom, #60A5FA) 20%, #17253B) !important;
  color: #fff !important;
  box-shadow: inset 3px 0 0 var(--dom, #60A5FA) !important;
}

#app-sidebar .nav-btn.active::before { color: var(--dom, #60A5FA); }

#app-sidebar .nav-btn .nav-badge {
  margin-left: auto;
  background: #DC2626 !important;
  color: #fff !important;
  border: 0 !important;
}

#app-sidebar .nav-btn.rbac-denied,
#app-sidebar .nav-btn[hidden] { display: none !important; }

#app-sidebar .nav-group-admin { margin-top: auto !important; }

/* Pie del sidebar: usuario */
#app-sidebar .sb-foot {
  flex: 0 0 auto;
  padding: 0.5rem;
  border-top: 1px solid var(--sb-line);
}

#app-sidebar .sb-user { position: relative; }

#app-sidebar .sb-user > summary {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.35rem 0.4rem;
  border-radius: 9px;
  cursor: pointer;
}

#app-sidebar .sb-user > summary::-webkit-details-marker { display: none; }
#app-sidebar .sb-user > summary:hover { background: var(--sb-bg-soft); }

#app-sidebar .ux-user-avatar {
  flex: 0 0 auto;
  width: 30px !important;
  height: 30px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #2563EB !important;
  color: #fff !important;
  font: 700 0.78rem/1 var(--font, "DM Sans", sans-serif);
  box-shadow: none !important;
}

#app-sidebar .sb-user-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
  line-height: 1.15;
}

#app-sidebar .sb-user-meta strong {
  font-size: 0.78rem;
  color: #F1F5F9;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#app-sidebar .rbac-role-badge {
  width: fit-content;
  max-width: 100%;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--sb-muted) !important;
  font: 600 0.64rem/1.3 var(--font, "DM Sans", sans-serif) !important;
  text-transform: capitalize;
}

#app-sidebar .sb-user-caret { color: var(--sb-muted); font-size: 0.6rem; }
#app-sidebar .sb-user[open] .sb-user-caret { transform: rotate(180deg); }

#app-sidebar .sb-user-panel {
  position: absolute;
  left: 0;
  bottom: calc(100% + 8px);
  z-index: 5;
  width: 232px;
  display: grid;
  gap: 0.5rem;
  padding: 0.7rem;
  border-radius: 11px;
  background: #fff;
  border: 1px solid var(--app-line);
  box-shadow: 0 16px 32px rgba(2, 8, 23, 0.28);
  color: var(--app-ink);
}

#app-sidebar .sb-user-panel .ux-user-email { margin: 0; font-size: 0.75rem; }

/* Colapsado: solo iconos */
body.sidebar-collapsed #app-sidebar .sb-brand-copy,
body.sidebar-collapsed #app-sidebar .sb-org-code,
body.sidebar-collapsed #app-sidebar .nav-group-label,
body.sidebar-collapsed #app-sidebar .sb-user-meta,
body.sidebar-collapsed #app-sidebar .sb-user-caret { display: none !important; }

body.sidebar-collapsed #app-sidebar .sb-head { justify-content: center; padding: 0.5rem 0.35rem; }
body.sidebar-collapsed #app-sidebar .sb-brand { flex: 0 0 auto; }
body.sidebar-collapsed #app-sidebar .sb-collapse { position: absolute; top: 0.6rem; right: 0.35rem; opacity: 0; }
body.sidebar-collapsed #app-sidebar:hover .sb-collapse { opacity: 1; }
body.sidebar-collapsed #app-sidebar .sb-collapse span { transform: rotate(180deg); display: block; }
body.sidebar-collapsed #app-sidebar .sb-org { justify-content: center; margin: 0.5rem 0.5rem 0.35rem; }
body.sidebar-collapsed #app-sidebar .sb-org select { display: none !important; }
body.sidebar-collapsed #app-sidebar .sb-org::after {
  content: "ORG";
  font: 700 0.6rem/1 var(--mono, ui-monospace, monospace);
  color: var(--sb-accent);
}
body.sidebar-collapsed #app-sidebar .nav-btn {
  justify-content: center;
  font-size: 0;
  padding: 0.45rem 0 !important;
  gap: 0;
}
body.sidebar-collapsed #app-sidebar .nav-btn::before { font-size: 0.95rem; width: auto; }
body.sidebar-collapsed #app-sidebar .nav-group { border-top: 1px solid var(--sb-line); }
body.sidebar-collapsed #app-sidebar .nav-group:first-child { border-top: 0; }
body.sidebar-collapsed #app-sidebar .sb-user > summary { justify-content: center; }
body.sidebar-collapsed #app-sidebar .sb-user-panel { left: calc(100% + 8px); bottom: 0; }

/* ── Topbar ──────────────────────────────────────────────────────────── */
.app-topbar {
  position: sticky;
  top: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-height: var(--tb-h);
  padding: 0.4rem 1.25rem;
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid var(--app-line);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: box-shadow 0.16s ease;
}

.app-topbar.is-elevated { box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08); }

.app-topbar .tb-menu {
  display: none;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid var(--app-line);
  border-radius: 8px;
  background: #fff;
  color: var(--app-ink);
  font-size: 0.95rem;
  cursor: pointer;
}

.app-topbar .tb-crumb {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
  font-size: 0.82rem;
  color: var(--app-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.app-topbar .tb-crumb .ux-crumb-current { color: var(--app-ink); font-weight: 650; }
.app-topbar .tb-crumb .ux-crumb-sep { opacity: 0.55; }

.app-topbar .tb-spacer { flex: 1 1 auto; }

.app-topbar .tb-cmd {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex: 0 1 15rem;
  min-width: 0;
  min-height: 34px;
  padding: 0 0.4rem 0 0.75rem;
  border: 1px solid var(--app-line);
  border-radius: 999px;
  background: #fff;
  color: var(--app-muted);
  font: 500 0.8rem/1 var(--font, "DM Sans", sans-serif);
  cursor: pointer;
}

.app-topbar .tb-cmd:hover { border-color: #94A3B8; color: #334155; }

.app-topbar .tb-cmd-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
}

.app-topbar .tb-kbd {
  flex: 0 0 auto;
  padding: 0.2rem 0.35rem;
  border: 1px solid var(--app-line);
  border-radius: 5px;
  background: #F1F5F9;
  color: var(--app-muted);
  font: 600 0.65rem/1 var(--mono, ui-monospace, monospace);
}

.app-topbar .tb-modes.ux-work-modes {
  display: inline-flex;
  gap: 2px;
  padding: 2px;
  border: 1px solid var(--app-line);
  border-radius: 999px;
  background: #EEF2F8;
}

.app-topbar .tb-modes .ux-work-mode-btn {
  border: 0;
  background: transparent;
  color: var(--app-muted);
  font: 650 0.72rem/1 var(--font, "DM Sans", sans-serif);
  padding: 0.35rem 0.6rem;
  border-radius: 999px;
  cursor: pointer;
}

.app-topbar .tb-modes .ux-work-mode-btn.active,
.app-topbar .tb-modes .ux-work-mode-btn[aria-pressed="true"] {
  background: #fff;
  color: #1D4ED8;
  box-shadow: 0 0 0 1px #BFDBFE;
}

.app-topbar .tb-sync.workspace-sync-badge {
  flex: 0 0 auto;
  width: 9px !important;
  height: 9px !important;
  min-height: 9px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  overflow: hidden;
  background: #94A3B8 !important;
}

.app-topbar .tb-sync[data-sync="saved"] { background: #059669 !important; }
.app-topbar .tb-sync[data-sync="saving"] { background: #D97706 !important; }
.app-topbar .tb-sync[data-sync="error"] { background: #DC2626 !important; }

.sb-scrim {
  position: fixed;
  inset: 0;
  z-index: 68;
  background: rgba(2, 8, 23, 0.45);
  border: 0;
}
.sb-scrim[hidden] { display: none; }

/* Contenido: sin doble centrado ahora que hay rail */
body.shell-modern .main,
body.shell-modern .app-footer,
body.shell-modern footer.footer.app-footer {
  max-width: 1280px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.shell-modern .subnav,
body.shell-modern .panel-tabs,
body.shell-modern .tab-bar,
body.shell-modern .audit-subnav,
body.shell-modern .filters-sticky {
  top: var(--header-sticky-offset) !important;
}

body[data-work-mode="executive"] #app-sidebar .nav-group[data-group="risks"] .nav-btn:not([data-step="5"]),
body[data-work-mode="executive"] #app-sidebar .nav-group[data-group="ops"] .nav-btn[data-step="11"],
body[data-work-mode="executive"] #app-sidebar .nav-group[data-group="ops"] .nav-btn[data-step="12"] {
  opacity: 0.5;
}

/* ── Command palette ─────────────────────────────────────────────────── */
.header-cmd-dialog {
  width: min(32rem, calc(100vw - 2rem));
  padding: 0;
  border: 1px solid var(--app-line);
  border-radius: 14px;
  box-shadow: 0 24px 48px rgba(2, 8, 23, 0.28);
  background: #fff;
}
.header-cmd-dialog::backdrop { background: rgba(2, 8, 23, 0.45); }
.header-cmd-form { display: grid; gap: 0; }
.header-cmd-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0.85rem 0.35rem;
}
.header-cmd-head h2 { margin: 0; font-size: 0.85rem; font-weight: 700; color: var(--app-ink); }
.header-cmd-input {
  margin: 0 0.85rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--app-line);
  border-radius: 10px;
  font: inherit;
  font-size: 0.95rem;
}
.header-cmd-list {
  list-style: none;
  margin: 0.55rem 0 0;
  padding: 0;
  max-height: min(50vh, 22rem);
  overflow: auto;
}
.header-cmd-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.65rem 1rem;
  cursor: pointer;
  border-top: 1px solid #EEF2F8;
}
.header-cmd-item.is-active,
.header-cmd-item:hover { background: #F1F5F9; }
.header-cmd-item-label { font-weight: 650; color: var(--app-ink); }
.header-cmd-item-group {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--app-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.header-cmd-empty { padding: 1rem; text-align: center; color: var(--app-muted); font-size: 0.85rem; }
.header-cmd-hint { margin: 0; padding: 0.55rem 1rem 0.75rem; font-size: 0.7rem; color: #94A3B8; }

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 1180px) {
  .app-topbar .tb-cmd { flex-basis: 2.8rem; padding: 0 0.55rem; justify-content: center; }
  .app-topbar .tb-cmd-label { display: none; }
  .app-topbar .tb-kbd { border: 0; background: transparent; padding: 0; }
}

@media (max-width: 960px) {
  body.shell-modern:not(.auth-required),
  body.sidebar-collapsed:not(.auth-required) { padding-left: 0; }

  #app-sidebar {
    width: var(--sb-w) !important;
    transform: translateX(-100%);
    box-shadow: none;
  }

  body.sidebar-open #app-sidebar {
    transform: translateX(0);
    box-shadow: 0 24px 48px rgba(2, 8, 23, 0.35);
  }

  body.sidebar-collapsed #app-sidebar .sb-brand-copy,
  body.sidebar-collapsed #app-sidebar .nav-group-label,
  body.sidebar-collapsed #app-sidebar .sb-user-meta { display: flex !important; }
  body.sidebar-collapsed #app-sidebar .nav-btn { font-size: 0.83rem; justify-content: flex-start; padding: 0.4rem 0.55rem !important; gap: 0.6rem; }
  body.sidebar-collapsed #app-sidebar .sb-org select { display: block !important; }
  body.sidebar-collapsed #app-sidebar .sb-org::after { content: none; }

  #app-sidebar .sb-collapse { display: none; }
  .app-topbar .tb-menu { display: inline-grid; }
  .app-topbar .tb-modes { display: none; }
}

@media (max-width: 640px) {
  .app-topbar { padding: 0.4rem 0.85rem; }
  body.shell-modern .main { padding-left: 0.85rem !important; padding-right: 0.85rem !important; }
}

/* ── Búsqueda semántica ISO emb (Gobierno · Índice Maestro) ──────────── */
.evid-lib-semantic {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex: 1 1 100%;
  min-width: min(100%, 28rem);
  flex-wrap: wrap;
}

.evid-lib-semantic-input {
  flex: 1 1 14rem;
  min-width: 12rem;
}

.evid-lib-semantic-panel {
  margin: 0.65rem 0 0.85rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid #BFDBFE;
  border-radius: 12px;
  background: #F8FBFF;
}

.evid-lib-semantic-head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin-bottom: 0.55rem;
}

.evid-lib-semantic-head strong {
  color: #1E3A8A;
  font-size: 0.85rem;
}

.evid-lib-semantic-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}

.evid-lib-semantic-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  text-align: left;
  padding: 0.55rem 0.65rem;
  border: 1px solid #E2E8F0;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  font: inherit;
}

.evid-lib-semantic-item:hover {
  border-color: #93C5FD;
  background: #EFF6FF;
}

.evid-lib-semantic-rank {
  flex: 0 0 auto;
  width: 1.5rem;
  height: 1.5rem;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: #DBEAFE;
  color: #1D4ED8;
  font: 700 0.72rem/1 var(--mono, ui-monospace, monospace);
}

.evid-lib-semantic-copy {
  flex: 1 1 auto;
  min-width: 0;
  display: grid;
  gap: 0.1rem;
}

.evid-lib-semantic-copy strong {
  font-size: 0.84rem;
  color: #0F172A;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.evid-lib-semantic-copy small {
  font-size: 0.72rem;
  color: #64748B;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.evid-lib-semantic-score {
  flex: 0 0 auto;
  font: 700 0.78rem/1 var(--mono, ui-monospace, monospace);
  color: #047857;
  background: #ECFDF5;
  border: 1px solid #A7F3D0;
  border-radius: 999px;
  padding: 0.28rem 0.5rem;
}

/* Evidence picker · ISO embedding badges */
.audit-evidence-emb {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  font: 700 0.7rem/1 var(--mono, ui-monospace, monospace);
  color: #1D4ED8;
  background: #DBEAFE;
  border: 1px solid #93C5FD;
}
.audit-evidence-emb.is-strong {
  color: #047857;
  background: #ECFDF5;
  border-color: #6EE7B7;
}
.audit-evidence-candidate.is-ai-strong {
  border-color: #6EE7B7;
  box-shadow: inset 3px 0 0 #10B981;
}
#audit-evidence-picker-ai-top {
  white-space: nowrap;
}


/* Biblioteca · solo búsqueda IA */
.doc-idx-filters-ai-only {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
  padding: 0.75rem 0 0.25rem;
}
.doc-idx-filters-ai-only .evid-lib-semantic {
  flex: 1 1 28rem;
  min-width: min(100%, 18rem);
}
.doc-idx-filters-ai-only .evid-lib-semantic-input {
  flex: 1 1 auto;
  min-width: 12rem;
}


/* Compact facets + AI improve panel */
.doc-idx-folders-compact { margin: 0.35rem 0 0.5rem; }
.doc-idx-facets > summary {
  cursor: pointer;
  list-style: none;
  font-size: 0.82rem;
  color: #475569;
  user-select: none;
}
.doc-idx-facets > summary::-webkit-details-marker { display: none; }
.doc-idx-facets > summary::before {
  content: "▸ ";
  color: #94A3B8;
}
.doc-idx-facets[open] > summary::before { content: "▾ "; }
.doc-idx-facet-grid {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-top: 0.45rem;
}
.doc-idx-facet-row {
  display: grid;
  grid-template-columns: 4.2rem 1fr;
  gap: 0.4rem;
  align-items: start;
}
.doc-idx-facet-row > span {
  font-size: 0.72rem;
  font-weight: 700;
  color: #64748B;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding-top: 0.28rem;
}
.doc-idx-facet-row > div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}
.doc-idx-folders-compact .doc-idx-chip {
  font-size: 0.72rem;
  padding: 0.18rem 0.45rem;
  line-height: 1.2;
}
.doc-idx-active-filters {
  margin: 0.25rem 0 0.4rem;
  font-size: 0.78rem;
}
.doc-control-explanation { display: none; }
.doc-preview-ai-panel {
  margin-top: 0.75rem;
  padding: 0.75rem;
  border: 1px solid #BFDBFE;
  background: #F8FBFF;
  border-radius: 8px;
}
.doc-preview-ai-head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.doc-preview-ai-text {
  max-height: 22rem;
  overflow: auto;
  white-space: pre-wrap;
  font-size: 0.8rem;
  line-height: 1.45;
  margin: 0 0 0.65rem;
}

.doc-idx-missing-file {
  display: inline-block;
  margin-top: 0.25rem;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  color: #B45309;
  background: #FFFBEB;
  border: 1px solid #FCD34D;
}
.doc-preview-ai-empty {
  margin: 0.5rem 0 0.75rem;
  padding: 0.75rem;
  border: 1px dashed #F59E0B;
  background: #FFFBEB;
  border-radius: 8px;
}
.doc-preview-ai-empty strong { display: block; margin-bottom: 0.25rem; }

/* Evidence picker IA status */
.audit-evidence-picker-ai-status {
  margin: 0.35rem 0 0;
  padding: 0.35rem 0.55rem;
  border-radius: 8px;
  border: 1px solid #334155;
  background: #0F172A;
  color: #CBD5E1;
  font-size: 0.78rem;
}
.audit-evidence-picker-ai-status[data-state="ready"] {
  border-color: #166534;
  background: #052e16;
  color: #BBF7D0;
}
.audit-evidence-picker-ai-status[data-state="empty"],
.audit-evidence-picker-ai-status[data-state="error"] {
  border-color: #92400E;
  background: #451A03;
  color: #FDE68A;
}
#audit-evidence-picker-ai-top:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.audit-expected-checklist li {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  flex-wrap: wrap;
  margin: 0.35rem 0;
}
.audit-expected-checklist .audit-expected-label {
  flex: 1 1 12rem;
  min-width: 0;
}
.audit-expected-checklist .is-missing {
  padding: 0.4rem 0.5rem;
  border-radius: 8px;
  background: #FFF7ED;
  border: 1px solid #FED7AA;
}
.audit-expected-checklist .is-matched {
  padding: 0.35rem 0.5rem;
  border-radius: 8px;
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
}
#audit-expected-ai-status {
  margin-top: 0.5rem;
  color: #334155;
}

.audit-cabin-context-head {
  padding: 0.75rem 0.85rem 0.35rem;
  border-bottom: 1px solid #E2E8F0;
}
.audit-cabin-context-head .audit-cabin-eyebrow {
  display: block;
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748B;
}
.audit-cabin-context-unified {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem 1rem;
  overflow-y: auto;
}
.audit-guide-section {
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  background: #F8FAFC;
  padding: 0.65rem 0.75rem 0.8rem;
  transition: opacity 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}
.audit-guide-section.is-active {
  border-color: color-mix(in srgb, var(--accent) 45%, #E2E8F0);
  box-shadow: inset 3px 0 0 var(--accent);
  background: #fff;
}
.audit-guide-section.is-dimmed {
  opacity: 0.58;
}
.audit-guide-section.is-drop-target {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 8%, #fff);
}
.audit-guide-section header {
  display: grid;
  gap: 0.1rem;
  margin-bottom: 0.45rem;
}
.audit-guide-section header strong {
  font-size: 0.92rem;
  color: #0F172A;
}
.audit-cabin-context-head-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.audit-guide-only-missing {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.72rem;
  color: #475569;
  white-space: nowrap;
}
.audit-guide-mini-complete {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-top: 0.45rem;
}
.audit-guide-shortcuts {
  margin: 0.35rem 0 0;
  font-size: 0.68rem;
}
.audit-guide-shortcuts kbd {
  display: inline-block;
  padding: 0.05rem 0.28rem;
  border: 1px solid #CBD5E1;
  border-radius: 4px;
  background: #fff;
  font-size: 0.65rem;
}
.audit-guide-resolve {
  margin-bottom: 0.15rem;
}
.audit-guide-ai-top {
  margin-top: 0.55rem;
  padding-top: 0.45rem;
  border-top: 1px dashed #CBD5E1;
}
.audit-guide-ai-list {
  list-style: none;
  margin: 0.35rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.audit-guide-ai-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.78rem;
}
.audit-guide-ai-list em {
  color: #1d4ed8;
  font-style: normal;
  font-weight: 700;
  margin-left: 0.25rem;
}
.audit-guide-drop-hint {
  margin-top: 0.45rem;
}
.audit-cabin-library-inline {
  margin-top: 0.55rem;
  border-top: 1px dashed #CBD5E1;
  padding-top: 0.55rem;
}

/* —— Sidebar visualization upgrades —— */
#app-sidebar .sb-org-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  margin: 0.65rem 0.6rem 0.4rem;
}

#app-sidebar .sb-org-logo {
  flex: 0 0 auto;
  width: 66px; /* +200% vs 22px original */
  height: 66px;
  display: inline-grid;
  place-items: center;
  border-radius: 14px;
  background: rgba(148, 163, 184, 0.18);
  color: #E2E8F0;
  font: 700 1.05rem/1 var(--mono, ui-monospace, monospace);
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(148, 163, 184, 0.22);
}
#app-sidebar .sb-org-logo.has-image { background: #fff; }
#app-sidebar .sb-org-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  padding: 4px;
}

#app-sidebar .sb-org-block .sb-org {
  width: 100%;
  margin: 0;
}

#app-sidebar .nav-group-label {
  display: block !important;
  width: auto;
  cursor: default;
  pointer-events: none;
}

#app-sidebar .nav-btn:focus-visible,
#app-sidebar .sb-collapse:focus-visible,
#app-sidebar .sb-org select:focus-visible {
  outline: 2px solid #60A5FA;
  outline-offset: 2px;
}

#app-sidebar .rbac-role-badge[data-role="administrador"] {
  background: rgba(59, 130, 246, 0.22);
  color: #93C5FD;
}
#app-sidebar .rbac-role-badge[data-role="auditor"] {
  background: rgba(16, 185, 129, 0.2);
  color: #6EE7B7;
}
#app-sidebar .rbac-role-badge[data-role="ciso"] {
  background: rgba(168, 85, 247, 0.22);
  color: #D8B4FE;
}
#app-sidebar .rbac-role-badge[data-role="cliente"] {
  background: rgba(148, 163, 184, 0.18);
  color: #CBD5E1;
}

body.sidebar-collapsed #app-sidebar .sb-org-block { display: none !important; }

/* SoA checklist process */
.soa-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  margin: 0.55rem 0 0.45rem;
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: color-mix(in srgb, var(--surface) 94%, #0f766e);
}
.soa-strip-progress {
  display: grid;
  grid-template-columns: auto minmax(88px, 140px) auto;
  gap: 0.4rem;
  align-items: center;
  min-width: min(240px, 100%);
}
.soa-strip-pct {
  font: 800 1rem/1 var(--font, "DM Sans", sans-serif);
  color: #0f766e;
  letter-spacing: -0.02em;
}
.soa-strip-progress .progress-track {
  height: 0.45rem;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}
.soa-strip-progress .progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #0f766e, #14b8a6);
}
.soa-strip-caption {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
}
.soa-strip-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
  align-items: center;
  font-size: 0.78rem;
  color: #475569;
}
.soa-strip-metrics b {
  color: #0f172a;
  font-weight: 750;
}
.soa-strip-metrics .is-warn b { color: #b45309; }
.soa-status-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #334155;
}
.soa-status-chip[data-status="approved"] {
  border-color: #6ee7b7;
  background: #ecfdf5;
  color: #047857;
}
.soa-status-chip[data-status="pending_approval"] {
  border-color: #fcd34d;
  background: #fffbeb;
  color: #b45309;
}
.soa-status-chip[data-status="reopen_requested"] {
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1d4ed8;
}
.soa-seal-banner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.85rem;
  align-items: center;
  margin: 0 0 0.65rem;
  padding: 0.65rem 0.85rem;
  border-radius: 12px;
  border: 1px solid #a7f3d0;
  background: linear-gradient(160deg, #ecfdf5, #f0fdfa);
}
.soa-seal-banner.is-pending {
  border-color: #fcd34d;
  background: linear-gradient(160deg, #fffbeb, #fff7ed);
}
.soa-seal-banner.is-reopen {
  border-color: #93c5fd;
  background: linear-gradient(160deg, #eff6ff, #f8fafc);
}
.soa-seal-banner strong {
  font-size: 0.88rem;
  color: #065f46;
}
.soa-seal-banner.is-pending strong { color: #92400e; }
.soa-seal-banner.is-reopen strong { color: #1e40af; }
.soa-seal-banner span {
  flex: 1;
  min-width: 180px;
  font-size: 0.8rem;
  color: #475569;
}
.panel-soa.soa-sealed .soa-checklist-table textarea,
.panel-soa.soa-sealed .soa-switch {
  opacity: 0.85;
}
.soa-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: center;
  margin: 0.75rem 0 0.35rem;
}
.soa-toolbar .input {
  min-width: min(280px, 100%);
  flex: 1;
}
.soa-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  width: 100%;
}
.soa-filters .chip {
  border: 1px solid var(--border);
  background: var(--surface, #fff);
  border-radius: 999px;
  padding: 0.25rem 0.7rem;
  font-size: 0.78rem;
  cursor: pointer;
}
.soa-filters .chip.is-active {
  border-color: color-mix(in srgb, #0f766e 45%, var(--border));
  background: color-mix(in srgb, #0f766e 12%, var(--surface, #fff));
  color: #0f766e;
  font-weight: 600;
}
.soa-checklist-table textarea {
  width: 100%;
  min-width: 180px;
  resize: vertical;
  font: inherit;
  padding: 0.4rem 0.5rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface, #fff);
}
.soa-checklist-table textarea.is-invalid {
  border-color: #b45309;
  background: #fffbeb;
}
.soa-row.is-excluded td { background: color-mix(in srgb, #b45309 6%, transparent); }
.soa-row.is-dirty td { box-shadow: inset 3px 0 0 #0f766e; }
.soa-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.84rem;
}
.soa-badge {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
}
.soa-badge.ok { color: #0f766e; background: #ecfdf5; }
.soa-badge.warn { color: #b45309; background: #fffbeb; }
.soa-lib-picker {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
  padding: 0.75rem;
  background: color-mix(in srgb, var(--surface, #fff) 92%, #0f766e);
  border: 1px dashed color-mix(in srgb, #0f766e 25%, var(--border));
  border-radius: 10px;
}
.soa-lib-group h5 { margin: 0 0 0.4rem; font-size: 0.8rem; }
.soa-lib-group ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.3rem;
  max-height: 220px;
  overflow: auto;
}
.soa-lib-group li label {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.45rem;
  align-items: start;
  font-size: 0.8rem;
}
.soa-msg.is-ok { color: #0f766e; }
.soa-msg.is-warn { color: #b45309; }
.soa-msg.is-error { color: #b91c1c; }
@media (max-width: 900px) {
  .soa-lib-picker { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Encabezados de sección unificados (page-hero) + paleta de datos
   ========================================================================== */

:root {
  --chart-1: #1D4ED8;
  --chart-2: #0EA5E9;
  --chart-3: #0F766E;
  --chart-4: #7C3AED;
  --chart-5: #D97706;
  --chart-6: #BE123C;
  --chart-neutral: #94A3B8;
  --chart-grid: #E6EBF2;
  --chart-axis: #7A889C;
  --chart-track: #EDF1F7;
  --chart-ok: #047857;
  --chart-warn: #B45309;
  --chart-danger: #BE123C;
}

/* --- Encabezado de página centrado ------------------------------------- */

/* Clase duplicada a propósito: gana a `.panel-header.row-between`
   y a los headers propios de cada módulo sin recurrir a !important. */
.page-hero.page-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  gap: 0.55rem;
  margin: 0 auto 1.85rem;
  padding: 0 0 1.35rem;
  width: 100%;
  max-width: 68rem;
  position: relative;
}

.page-hero.page-hero > * {
  max-width: 100%;
}

.page-hero::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: min(100%, 22rem);
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    color-mix(in srgb, var(--accent, #1D4ED8) 38%, transparent),
    transparent
  );
}

.page-hero-eyebrow,
.page-hero .audit-page-eyebrow,
.page-hero .org-page-eyebrow,
.page-hero .admin-page-eyebrow,
.page-hero .document-workspace-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0.28rem 0.75rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--accent, #1D4ED8) 22%, transparent);
  background: color-mix(in srgb, var(--accent, #1D4ED8) 8%, #fff);
  color: color-mix(in srgb, var(--accent, #1D4ED8) 82%, #0F172A);
  font: 700 0.68rem/1.1 var(--font);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-hero h2 {
  margin: 0.15rem 0 0;
  font-size: clamp(1.5rem, 1.15rem + 1vw, 2rem);
  line-height: 1.18;
  letter-spacing: -0.015em;
  font-weight: 700;
  text-wrap: balance;
}

.page-hero > div > p {
  margin: 0.15rem auto 0;
  max-width: 58ch;
  font-size: 0.9rem;
  line-height: 1.55;
  text-wrap: pretty;
}

.page-hero.page-hero > div:first-child,
.page-hero.page-hero .panel-heading-layout > div,
.page-hero.page-hero .assets-header-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  text-align: center;
}

.page-hero .btn-group,
.page-hero .document-workspace-actions,
.page-hero > .row-between {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.page-hero.page-hero .panel-heading-layout {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  gap: 0.7rem;
}

.page-hero .audit-crumb,
.page-hero > div > nav {
  justify-content: center;
}

@media (max-width: 720px) {
  .page-hero {
    margin-bottom: 1.35rem;
    padding-bottom: 1.1rem;
  }
  .page-hero .btn-group { width: 100%; }
}

/* --- Encabezados internos del Inicio ------------------------------------ */

body.shell-modern .home-section-label-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.3rem;
  margin-bottom: 0.9rem;
}

body.shell-modern .home-section-label-row .hint {
  max-width: 54ch;
  margin-inline: auto;
}

body.shell-modern .home-section-eyebrow {
  display: inline-block;
  padding: 0.22rem 0.65rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent, #1D4ED8) 9%, #fff);
  border: 1px solid color-mix(in srgb, var(--accent, #1D4ED8) 18%, transparent);
  color: color-mix(in srgb, var(--accent, #1D4ED8) 80%, #0F172A);
  font: 700 0.66rem/1.1 var(--font);
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

body.shell-modern .home-section-title {
  margin: 0;
  font-size: 1.12rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* --- Gráficas del Inicio ------------------------------------------------ */

body.shell-modern .hm-svg-label {
  font-size: 9px;
  fill: var(--chart-axis);
  font-family: inherit;
  font-weight: 600;
}

body.shell-modern .hm-heat-bar-track,
body.shell-modern .hm-burn-stack {
  background: var(--chart-track);
}

body.shell-modern .hm-heat-bar-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--chart-1), var(--chart-6));
  box-shadow: 0 1px 3px color-mix(in srgb, var(--chart-6) 28%, transparent);
  transition: width 0.35s ease;
}

body.shell-modern .hm-heat-bar-row strong {
  font: 700 0.78rem/1 var(--mono);
  color: var(--chart-6);
  text-align: right;
}

body.shell-modern .hm-burn-stack {
  border-radius: 10px 10px 5px 5px;
}

body.shell-modern .hm-burn-col .hm-burn-stack {
  background: linear-gradient(180deg, var(--chart-1), color-mix(in srgb, var(--chart-1) 62%, #fff));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

body.shell-modern .hm-burn-col.is-warn .hm-burn-stack {
  background: linear-gradient(180deg, var(--chart-5), color-mix(in srgb, var(--chart-5) 60%, #fff));
}

body.shell-modern .hm-burn-col.is-danger .hm-burn-stack {
  background: linear-gradient(180deg, var(--chart-6), color-mix(in srgb, var(--chart-6) 60%, #fff));
}

body.shell-modern .hm-burn {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.45rem;
  align-items: end;
  min-height: 148px;
}

body.shell-modern .hm-burn-col {
  display: grid;
  grid-template-rows: 1fr auto auto;
  gap: 0.3rem;
  justify-items: center;
  align-content: end;
  height: 128px;
}

body.shell-modern .hm-burn-col strong {
  font: 700 0.85rem/1 var(--mono);
  color: var(--text);
}

body.shell-modern .hm-burn-col span {
  font-size: 0.66rem;
  color: var(--chart-axis);
  text-align: center;
}

body.shell-modern .hm-trend-meta strong {
  font: 700 1.5rem/1 var(--mono);
  color: var(--chart-1);
}

body.shell-modern .hm-trend-meta .is-up { color: var(--chart-ok); }
body.shell-modern .hm-trend-meta .is-down { color: var(--chart-danger); }

body.shell-modern .home-risk-donut {
  filter: drop-shadow(0 6px 16px rgba(15, 23, 42, 0.1));
}

body.shell-modern .hm-card {
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

body.shell-modern .hm-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.09);
}

/* --- Donut de riesgo y KPIs del Inicio ---------------------------------- */

body.shell-modern .home-donut-wrap {
  position: relative;
  width: 112px;
  height: 112px;
}

body.shell-modern .home-donut-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.05rem;
  pointer-events: none;
}

body.shell-modern .home-donut-center strong {
  font: 700 1.35rem/1 var(--mono);
  color: var(--text);
}

body.shell-modern .home-donut-center span {
  font-size: 0.6rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--chart-axis);
}

body.shell-modern .home-donut-legend li {
  display: grid;
  grid-template-columns: 0.6rem 1fr auto auto;
  gap: 0.45rem;
  align-items: center;
}

body.shell-modern .home-donut-legend-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.shell-modern .home-donut-legend strong {
  font: 700 0.82rem/1 var(--mono);
}

body.shell-modern .home-donut-legend em {
  font-style: normal;
  font-size: 0.7rem;
  color: var(--chart-axis);
  min-width: 2.4rem;
  text-align: right;
}

/* Acento propio por indicador para leer el tablero de un vistazo */
body.shell-modern.theme-slate .home-kpi-card[data-kpi="progress"] { border-left-color: var(--chart-ok) !important; }
body.shell-modern.theme-slate .home-kpi-card[data-kpi="gaps"] { border-left-color: var(--chart-5) !important; }
body.shell-modern.theme-slate .home-kpi-card[data-kpi="mejora"] { border-left-color: var(--chart-4) !important; }
body.shell-modern.theme-slate .home-kpi-card[data-kpi="soa"] { border-left-color: var(--chart-2) !important; }
body.shell-modern.theme-slate .home-kpi-card[data-kpi="due"] { border-left-color: var(--chart-6) !important; }

body.shell-modern .home-kpi-card {
  transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

body.shell-modern .home-kpi-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.1) !important;
}

body.shell-modern .home-kpi-tone {
  display: inline-block;
  margin-top: 0.15rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

body.shell-modern .level-bar-fill {
  box-shadow: inset 0 -1px 0 rgba(15, 23, 42, 0.08);
}

body.shell-modern .level-bar-track {
  background: var(--chart-track);
  border-radius: 999px;
}

.doc-drive-ext-badge {
  display: inline-block;
  margin: 0.25rem 0;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.doc-drive-ext-badge.is-guest {
  background: #fff7ed;
  color: #c2410c;
  border: 1px solid #fdba74;
}
.doc-drive-ext-badge.is-auth {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #93c5fd;
}
.doc-drive-pending {
  margin: 0.75rem 0 1rem;
  padding: 0.75rem 0.85rem;
  border: 1px dashed #fdba74;
  border-radius: 10px;
  background: #fffbeb;
}
.doc-drive-pending-head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.55rem;
}
.doc-drive-pending-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.doc-drive-pending-list li {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: space-between;
  align-items: center;
  padding: 0.45rem 0.55rem;
  background: #fff;
  border-radius: 8px;
  border: 1px solid #fde68a;
}
.doc-drive-row.is-pending {
  background: color-mix(in srgb, #f59e0b 6%, #fff);
}


/* Home: buzón + analytics fusionados */
.home-command-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.home-mailbox-card .home-mailbox-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0 12px;
}
.home-mailbox-card .home-mailbox-kpis div {
  display: grid;
  gap: 2px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px solid var(--border, #e6eaf0);
}
.home-mailbox-card .home-mailbox-kpis strong {
  font-size: 1.15rem;
  font-variant-numeric: tabular-nums;
}
.home-mailbox-card .home-mailbox-kpis span {
  font-size: 0.72rem;
  color: var(--text-muted, #6b778c);
}
.home-mailbox-actions { margin-bottom: 8px; }
.home-an-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 12px 0;
}
.home-an-kpi-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}
.home-an-kpi {
  display: grid;
  gap: 2px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid var(--border, #e6eaf0);
  background: #fff;
}
.home-an-kpi em {
  font-style: normal;
  font-size: 1.1rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}
.home-an-kpi span {
  font-size: 0.7rem;
  color: var(--text-muted, #6b778c);
}
.home-an-kpi.is-danger em { color: #b91c1c; }
.home-an-kpi.is-warn em { color: #b45309; }
.home-an-top {
  display: grid;
  gap: 4px;
  max-height: 280px;
  overflow: auto;
}
.home-an-risk-row {
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 6px 4px;
}
.home-an-field-chip select { min-width: 110px; }
.home-hero-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}
@media (max-width: 1100px) {
  .home-command-grid-3,
  .home-an-grid { grid-template-columns: 1fr; }
  .home-an-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* —— Dictámenes de tratamiento —— */
.tx-directives { margin: 0.75rem 0 1rem; padding: 1rem; }
.tx-directives-list { display: grid; gap: 0.65rem; margin-top: 0.75rem; }
.tx-directive-row {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: flex-start;
  justify-content: space-between; padding: 0.65rem 0.75rem;
  border: 1px solid var(--border, #e2e8f0); border-radius: 8px;
  background: var(--surface-2, #f8fafc);
}
.tx-directive-row .meta { flex: 1 1 220px; }
.tx-directive-row .actions { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.tx-dir-preview { margin-top: 0.75rem; padding: 0.75rem; }
#tx-directive-modal:not(.hidden) { display: flex; align-items: center; justify-content: center; }
