/* ======================================================================
   Theme Base — Alleato v2 (actividades_personal)
   Fase 1 de migracion: tokens --ln-* + puente hacia las variables v1.
   Los componentes Bootstrap NO se sobrescriben en esta fase; la app
   sigue consumiendo las variables v1 (--accent-primary, --page-bg, etc.)
   que aqui se remappean a los tokens v2.
   Doc canonico: ~/.claude/awesome-design-md/design-md/alleato/DESIGN.md
   ====================================================================== */

/* Design tokens — defaults Linear, aplicados a todos los temas curados */
:root[data-theme-curated] {
  /* Color */
  --ln-bg:            oklch(0.99 0.002 260);
  --ln-surface:       oklch(1 0 0);
  --ln-surface-2:     oklch(0.985 0.003 260);
  --ln-surface-3:     oklch(0.965 0.004 260);

  --ln-fg:            oklch(0.22 0.015 260);
  --ln-fg-muted:      oklch(0.5 0.01 260);
  --ln-fg-subtle:     oklch(0.65 0.008 260);
  --ln-fg-faint:      oklch(0.78 0.005 260);

  --ln-border:        oklch(0.92 0.005 260);
  --ln-border-strong: oklch(0.86 0.006 260);

  --ln-accent:        oklch(0.55 0.18 260);
  --ln-accent-hover:  oklch(0.48 0.2 260);
  --ln-accent-soft:   oklch(0.96 0.028 260);
  --ln-accent-bg:     oklch(0.92 0.04 260);
  --ln-accent-fg:     oklch(1 0 0);
  --ln-positive-fg:   oklch(1 0 0);  /* scaffolding for future .btn-themed-success */
  --ln-negative-fg:   oklch(1 0 0);
  --ln-warning-fg:    oklch(0.32 0.12 75);  /* text on warning-soft bg, WCAG AA light themes */

  --ln-positive:       oklch(0.52 0.14 150);
  --ln-positive-soft:  oklch(0.96 0.025 150);
  --ln-negative:       oklch(0.57 0.2 25);
  --ln-negative-hover: oklch(0.5 0.2 25);
  --ln-negative-soft:  oklch(0.97 0.025 25);
  --ln-warning:       oklch(0.7 0.15 75);
  --ln-warning-soft:  oklch(0.97 0.04 75);
  /* companion fg: --ln-warning-fg declarado arriba junto a los otros -fg tokens (linea 33). */

  /* Alert decorative borders — cada hue especifico. Cada tema curado puede overridearlos. */
  --ln-positive-border: oklch(0.85 0.08 150);
  --ln-negative-border: oklch(0.85 0.1 25);
  --ln-warning-border:  oklch(0.85 0.08 75);
  --ln-info-border:     oklch(0.85 0.08 260);

  /* Spacing (4pt) */
  --ln-space-1:  4px;
  --ln-space-2:  8px;
  --ln-space-3:  12px;
  --ln-space-4:  16px;
  --ln-space-5:  20px;
  --ln-space-6:  24px;
  --ln-space-8:  32px;
  --ln-space-12: 48px;
  --ln-space-16: 64px;

  /* Radius */
  --ln-radius-sm:  4px;
  --ln-radius-md:  6px;
  --ln-radius-lg:  8px;
  --ln-radius-xl:  12px;
  --ln-radius-2xl: 16px;

  /* Type */
  --ln-font-sans:    "Geist", "Inter", "Segoe UI", system-ui, sans-serif;
  --ln-font-display: var(--ln-font-sans);
  --ln-font-mono:    "Geist Mono", "JetBrains Mono", ui-monospace, monospace;

  /* Hover / Overlay — theme-aware */
  --ln-hover-bg:        oklch(0.93 0.012 260);
  --ln-hover-fg:        var(--ln-fg);
  --ln-menu-hover-bg:   var(--ln-fg);
  --ln-menu-hover-fg:   oklch(1 0 0);
  --ln-overlay-bg:      oklch(0.99 0.002 260 / 0.72);
  --ln-drawer-backdrop: oklch(0.22 0.02 260 / 0.2);

  /* Shadow */
  --ln-shadow-hover:    0 1px 2px oklch(0.22 0.02 260 / 0.05), 0 4px 12px oklch(0.22 0.02 260 / 0.04);
  --ln-shadow-drawer:   -8px 0 32px oklch(0.22 0.02 260 / 0.1);
  --ln-shadow-dropdown: 0 0 0 1px oklch(0.22 0.02 260 / 0.06), 0 8px 24px oklch(0.22 0.02 260 / 0.1);
  --ln-shadow-toast:    0 0 0 1px oklch(0.22 0.02 260 / 0.08), 0 12px 32px oklch(0.22 0.02 260 / 0.16);

  /* Motion — ease-out-quart */
  --ln-ease:     cubic-bezier(0.16, 1, 0.3, 1);
  --ln-dur-fast: 120ms;
  --ln-dur:      200ms;
  --ln-dur-slow: 320ms;

  /* Chart palette (Linear) — hex derivados de OKLCH */
  --ln-chart-1: #5b5cf0;
  --ln-chart-2: #2ba676;
  --ln-chart-3: #e0a534;
  --ln-chart-4: #de4a3f;
  --ln-chart-5: #39a4c6;
  --ln-chart-6: #c162c6;
  --ln-chart-7: #8d6b47;
  --ln-chart-8: #5e8f6f;
}

/* ======================================================================
   Puente v1 ← v2
   Reasigna las variables v1 del app.css a los tokens v2. Las pantallas
   existentes que consumen var(--accent-primary), var(--page-bg), etc.
   heredan los valores v2 sin necesidad de refactor.
   ====================================================================== */
:root[data-theme-curated] {
  --accent-primary:        var(--ln-accent);
  --accent-primary-hover:  var(--ln-accent-hover);
  --accent-secondary:      var(--ln-positive);
  --page-bg:               var(--ln-bg);
  --page-bg-secondary:     var(--ln-surface);
  --card-bg:               var(--ln-surface);
  --text-primary:          var(--ln-fg);
  --text-secondary:        var(--ln-fg-muted);
  --text-muted:            var(--ln-fg-subtle);
  --text-inverse:          oklch(1 0 0);
  --border-color:          var(--ln-border-strong);
  --border-color-light:    var(--ln-border);
  --sidebar-active-bg:     var(--ln-accent-bg);
  --sidebar-active-text:   var(--ln-accent);
  --sidebar-active-icon:   var(--ln-accent);
  --sidebar-active-border: var(--ln-accent);
  --sidebar-hover-bg:      var(--ln-hover-bg);
  --sidebar-hover-text:    var(--ln-hover-fg);
  --input-focus-border:    var(--ln-accent);
  --btn-primary-bg:        var(--ln-accent);
  --btn-primary-hover:     var(--ln-accent-hover);
}

/* ======================================================================
   Body base — solo tipografia (los colores los absorbe via el puente)
   ====================================================================== */
[data-theme-curated] body {
  font-family: var(--ln-font-sans);
  font-feature-settings: "cv11", "ss01";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ======================================================================
   Fase 4 oleada 1 — Forms + atomos UI
   Overrides Bootstrap bajo [data-theme-curated]. Aplica a los 4 curados
   (Linear, Stripe, Terminal, Editorial). Los 6 temas v1 NO se tocan.
   Adaptado del canonical dashboard_alleato/public/css/theme-base.css
   (lineas 1171-1437), omitiendo reglas dashboard-specific.
   ====================================================================== */

/* ----- Forms ----- */
[data-theme-curated] .form-label,
[data-theme-curated] .form-label.fw-semibold,
[data-theme-curated] .form-label.fw-medium {
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ln-fg-muted) !important;
  margin-bottom: 6px !important;
}

[data-theme-curated] .form-control,
[data-theme-curated] .form-select {
  font-family: var(--ln-font-sans);
  font-size: 13.5px !important;
  padding: 8px 10px !important;
  color: var(--ln-fg) !important;
  background-color: var(--ln-surface) !important;
  border: 1px solid var(--ln-border) !important;
  border-radius: var(--ln-radius-md) !important;
  box-shadow: none !important;
  transition: border-color var(--ln-dur-fast) var(--ln-ease),
              box-shadow var(--ln-dur-fast) var(--ln-ease);
}

[data-theme-curated] .form-control.form-control-sm,
[data-theme-curated] .form-select.form-select-sm {
  font-size: 12.5px !important;
  padding: 6px 8px !important;
}

[data-theme-curated] .form-control::placeholder { color: var(--ln-fg-faint); }

[data-theme-curated] .form-control:focus,
[data-theme-curated] .form-select:focus {
  border-color: var(--ln-accent) !important;
  box-shadow: 0 0 0 3px var(--ln-accent-soft) !important;
  outline: none;
}

[data-theme-curated] .form-control-color {
  padding: 3px !important;
  width: 38px !important;
  height: 32px !important;
  cursor: pointer;
}

[data-theme-curated] .form-text {
  font-size: 11.5px !important;
  color: var(--ln-fg-subtle) !important;
  letter-spacing: -0.005em;
  margin-top: 4px;
}

[data-theme-curated] .input-group-text {
  background: var(--ln-surface-2) !important;
  border: 1px solid var(--ln-border) !important;
  color: var(--ln-fg-muted) !important;
  font-size: 13px;
}

[data-theme-curated] .input-group-text.bg-light { background: var(--ln-surface-2) !important; }

[data-theme-curated] .form-check-input {
  width: 16px; height: 16px;
  border: 1px solid var(--ln-border-strong) !important;
  border-radius: 3px;
  cursor: pointer;
  transition: all var(--ln-dur-fast) var(--ln-ease);
}
[data-theme-curated] .form-check-input[type="radio"] { border-radius: 50%; }
[data-theme-curated] .form-check-input:checked {
  background-color: var(--ln-accent) !important;
  border-color: var(--ln-accent) !important;
}
[data-theme-curated] .form-check-input:focus {
  box-shadow: 0 0 0 3px var(--ln-accent-soft) !important;
}
[data-theme-curated] .form-check-label { font-size: 13px; color: var(--ln-fg); }

/* Select — custom arrow neutral que se ve bien en paletas crema, fria y oscura */
[data-theme-curated] .form-select {
  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='none' stroke='%238a8f98' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 1l4 4 4-4'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  padding-right: 28px !important;
}

/* ----- Buttons (Bootstrap + .btn-themed-* del proyecto) ----- */
[data-theme-curated] .btn {
  font-family: var(--ln-font-sans);
  font-size: 13px !important;
  font-weight: 500;
  padding: 7px 14px !important;
  border-radius: var(--ln-radius-md) !important;
  border: 1px solid transparent;
  transition: all var(--ln-dur-fast) var(--ln-ease);
  letter-spacing: -0.005em;
  box-shadow: none !important;
}

[data-theme-curated] .btn-sm { font-size: 12.5px !important; padding: 5px 10px !important; }

/* Primary — Bootstrap + proyecto */
[data-theme-curated] .btn-primary,
[data-theme-curated] .btn-themed-primary {
  background: var(--ln-accent) !important;
  border-color: var(--ln-accent) !important;
  color: var(--ln-accent-fg) !important;
}
[data-theme-curated] .btn-primary:hover,
[data-theme-curated] .btn-primary:focus,
[data-theme-curated] .btn-themed-primary:hover,
[data-theme-curated] .btn-themed-primary:focus {
  background: var(--ln-accent-hover) !important;
  border-color: var(--ln-accent-hover) !important;
  color: var(--ln-accent-fg) !important;
}

/* Secondary — Bootstrap + proyecto */
[data-theme-curated] .btn-secondary,
[data-theme-curated] .btn-themed-secondary {
  background: var(--ln-surface-2) !important;
  border-color: var(--ln-border) !important;
  color: var(--ln-fg) !important;
}
[data-theme-curated] .btn-secondary:hover,
[data-theme-curated] .btn-themed-secondary:hover {
  background: var(--ln-surface-3) !important;
  border-color: var(--ln-border-strong) !important;
  color: var(--ln-fg) !important;
}

/* Danger — solo proyecto (Bootstrap .btn-danger no se usa en views) */
[data-theme-curated] .btn-themed-danger {
  background: var(--ln-negative) !important;
  border-color: var(--ln-negative) !important;
  color: var(--ln-negative-fg) !important;
}
[data-theme-curated] .btn-themed-danger:hover {
  background: var(--ln-negative-hover) !important;
  border-color: var(--ln-negative-hover) !important;
  color: var(--ln-negative-fg) !important;
}

/* Outline variantes */
[data-theme-curated] .btn-outline-primary {
  color: var(--ln-accent) !important;
  border-color: var(--ln-border) !important;
  background: transparent !important;
}
[data-theme-curated] .btn-outline-primary:hover {
  background: var(--ln-accent-soft) !important;
  border-color: var(--ln-accent) !important;
  color: var(--ln-accent) !important;
}

[data-theme-curated] .btn-outline-secondary {
  color: var(--ln-fg-muted) !important;
  border-color: var(--ln-border) !important;
  background: transparent !important;
}
[data-theme-curated] .btn-outline-secondary:hover {
  background: var(--ln-surface-2) !important;
  border-color: var(--ln-border-strong) !important;
  color: var(--ln-fg) !important;
}

[data-theme-curated] .btn-outline-success {
  color: var(--ln-positive) !important;
  border-color: var(--ln-border) !important;
  background: transparent !important;
}
[data-theme-curated] .btn-outline-success:hover {
  background: var(--ln-positive-soft) !important;
  border-color: var(--ln-positive) !important;
  color: var(--ln-positive) !important;
}

[data-theme-curated] .btn-outline-danger {
  color: var(--ln-negative) !important;
  border-color: var(--ln-border) !important;
  background: transparent !important;
}
[data-theme-curated] .btn-outline-danger:hover {
  background: var(--ln-negative-soft) !important;
  border-color: var(--ln-negative) !important;
  color: var(--ln-negative) !important;
}

[data-theme-curated] .btn-outline-warning {
  color: var(--ln-warning) !important;
  border-color: var(--ln-border) !important;
  background: transparent !important;
}
[data-theme-curated] .btn-outline-warning:hover {
  background: var(--ln-warning-soft) !important;
  border-color: var(--ln-warning) !important;
  color: var(--ln-warning) !important;
}

[data-theme-curated] .btn-outline-info {
  color: var(--ln-accent) !important;
  border-color: var(--ln-border) !important;
  background: transparent !important;
}
[data-theme-curated] .btn-outline-info:hover {
  background: var(--ln-accent-soft) !important;
  border-color: var(--ln-accent) !important;
  color: var(--ln-accent) !important;
}

/* ----- Badges (Bootstrap .badge + .badge-themed del proyecto) ----- */
[data-theme-curated] .badge,
[data-theme-curated] .badge-themed {
  font-size: 10.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 3px 8px !important;
  border-radius: 999px !important;
  border: 1px solid transparent !important;
  display: inline-block;
}

/* Bootstrap .badge.bg-* variantes */
[data-theme-curated] .badge.bg-success,
[data-theme-curated] .badge.bg-success-subtle {
  background: var(--ln-positive-soft) !important;
  color: var(--ln-positive) !important;
}
[data-theme-curated] .badge.bg-primary,
[data-theme-curated] .badge.bg-primary-subtle {
  background: var(--ln-accent-soft) !important;
  color: var(--ln-accent) !important;
}
[data-theme-curated] .badge.bg-secondary,
[data-theme-curated] .badge.bg-secondary-subtle {
  background: var(--ln-surface-3) !important;
  color: var(--ln-fg-muted) !important;
}
[data-theme-curated] .badge.bg-warning,
[data-theme-curated] .badge.bg-warning-subtle {
  background: var(--ln-warning-soft) !important;
  color: var(--ln-warning) !important;
}
[data-theme-curated] .badge.bg-danger,
[data-theme-curated] .badge.bg-danger-subtle {
  background: var(--ln-negative-soft) !important;
  color: var(--ln-negative) !important;
}
[data-theme-curated] .badge.bg-info,
[data-theme-curated] .badge.bg-info-subtle {
  background: var(--ln-accent-soft) !important;
  color: var(--ln-accent) !important;
}
[data-theme-curated] .badge.bg-light,
[data-theme-curated] .badge.bg-light-subtle {
  background: var(--ln-surface-2) !important;
  color: var(--ln-fg-muted) !important;
}
[data-theme-curated] .badge.bg-dark,
[data-theme-curated] .badge.bg-dark-subtle {
  background: var(--ln-fg) !important;
  color: var(--ln-surface) !important;
}
[data-theme-curated] .badge.text-dark { color: var(--ln-fg) !important; }

/* Variantes custom del proyecto (app.css:502-506) */
[data-theme-curated] .badge-success {
  background: var(--ln-positive-soft) !important;
  color: var(--ln-positive) !important;
}
[data-theme-curated] .badge-info {
  background: var(--ln-accent-soft) !important;
  color: var(--ln-accent) !important;
}
[data-theme-curated] .badge-warning {
  background: var(--ln-warning-soft) !important;
  color: var(--ln-warning) !important;
}
[data-theme-curated] .badge-danger {
  background: var(--ln-negative-soft) !important;
  color: var(--ln-negative) !important;
}
[data-theme-curated] .badge-purple {
  background: var(--ln-accent-soft) !important;
  color: var(--ln-accent) !important;
}

/* ----- Alerts ----- */
/* NOTA: border-left-width: 1px explicito para anular cualquier Bootstrap variant
   que intente border-left grueso (mandato "sin border-left grueso" del spec). */
[data-theme-curated] .alert {
  padding: 10px 14px !important;
  border-radius: var(--ln-radius-md) !important;
  border: 1px solid var(--ln-border) !important;
  border-left-width: 1px !important;
  font-size: 13px !important;
  box-shadow: none !important;
}

[data-theme-curated] .alert-warning {
  background: var(--ln-warning-soft) !important;
  color: var(--ln-warning-fg) !important;
  border-color: var(--ln-warning-border) !important;
}
[data-theme-curated] .alert-success {
  background: var(--ln-positive-soft) !important;
  color: var(--ln-positive) !important;
  border-color: var(--ln-positive-border) !important;
}
[data-theme-curated] .alert-danger {
  background: var(--ln-negative-soft) !important;
  color: var(--ln-negative) !important;
  border-color: var(--ln-negative-border) !important;
}
[data-theme-curated] .alert-info {
  background: var(--ln-accent-soft) !important;
  color: var(--ln-accent) !important;
  border-color: var(--ln-info-border) !important;
}
[data-theme-curated] .alert strong { font-weight: 500; }
[data-theme-curated] .alert > .bi { font-size: 14px; flex-shrink: 0; }

/* ======================================================================
   Fase 4 oleada 2 — Containers + page headers
   Overrides Bootstrap bajo [data-theme-curated]. Aplica a los 4 curados.
   Los 6 temas v1 NO se tocan. Cierra bug latente del thead warm-minimal
   (ambar) que se filtraba a los curados via app.css:761.
   Adaptado del canonical dashboard_alleato/public/css/theme-base.css
   (lineas 1125-1366), omitiendo reglas dashboard-specific.
   ====================================================================== */

/* ----- Page header (custom del proyecto, variante A tipografica) ----- */
[data-theme-curated] .page-header {
  gap: var(--ln-space-3);
  margin-bottom: var(--ln-space-6);
}
[data-theme-curated] .page-header-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 36px; height: 36px;
  background: var(--ln-accent-bg) !important;
  color: var(--ln-accent) !important;
  border-radius: var(--ln-radius-lg) !important;
  box-shadow: none !important;
  font-size: 1rem;
}
[data-theme-curated] .page-header-text h4 {
  font-family: var(--ln-font-display);
  font-size: 22px !important;
  font-weight: 500 !important;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--ln-fg) !important;
  margin: 0 0 2px !important;
}
[data-theme-curated] .page-header-text small {
  font-size: 13px !important;
  color: var(--ln-fg-muted) !important;
  letter-spacing: -0.005em;
  line-height: 1.55;
}

/* ----- Cards ----- */
[data-theme-curated] .card {
  background: var(--ln-surface) !important;
  border: 1px solid var(--ln-border) !important;
  border-radius: var(--ln-radius-lg) !important;
  box-shadow: none !important;
  transition: none !important;
}
[data-theme-curated] .card.shadow-sm,
[data-theme-curated] .card.shadow { box-shadow: none !important; }
[data-theme-curated] .card:hover { box-shadow: none !important; }

[data-theme-curated] .card-header {
  background: var(--ln-surface) !important;
  color: var(--ln-fg) !important;
  border-bottom: 1px solid var(--ln-border) !important;
  padding: var(--ln-space-3) var(--ln-space-5) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}
[data-theme-curated] .card.border-0 > .card-header,
[data-theme-curated] .card-header.border-0 {
  border-bottom: 1px solid var(--ln-border) !important;
}
[data-theme-curated] .card-header.py-2 { padding-top: var(--ln-space-2) !important; padding-bottom: var(--ln-space-2) !important; }
[data-theme-curated] .card-header.py-2.px-3 { padding: var(--ln-space-2) var(--ln-space-3) !important; }

[data-theme-curated] .card-body { padding: var(--ln-space-5) !important; }
[data-theme-curated] .card-body.p-0 { padding: 0 !important; }
[data-theme-curated] .card-body.p-3 { padding: var(--ln-space-4) !important; }
[data-theme-curated] .card-body.py-2 { padding-top: var(--ln-space-2) !important; padding-bottom: var(--ln-space-2) !important; }
[data-theme-curated] .card-body.px-3 { padding-left: var(--ln-space-3) !important; padding-right: var(--ln-space-3) !important; }
[data-theme-curated] .card-body.py-2.px-3 { padding: var(--ln-space-2) var(--ln-space-3) !important; }

[data-theme-curated] .card-footer {
  background: var(--ln-surface-2) !important;
  color: var(--ln-fg-muted) !important;
  border-top: 1px solid var(--ln-border) !important;
  padding: var(--ln-space-2) var(--ln-space-4) !important;
  font-size: 12px;
  font-weight: 500;
}

/* ----- Tables ----- */
[data-theme-curated] .table {
  font-size: 13px;
  color: var(--ln-fg);
  --bs-table-bg: transparent;
}
[data-theme-curated] .table > :not(caption) > * > * {
  padding: 8px 12px;
  background: transparent;
  border-bottom-color: var(--ln-border);
}
/* thead + .table-light — duplicamos background y background-color por especificidad:
   app.css:761 usa `background-color: var(--thead-bg) !important` con !important; hay
   que ganar explicitando las dos propiedades. */
[data-theme-curated] .table > thead,
[data-theme-curated] .table .table-light,
[data-theme-curated] .table-light,
[data-theme-curated] thead.table-light {
  background: var(--ln-surface-2) !important;
  background-color: var(--ln-surface-2) !important;
  --bs-table-bg: var(--ln-surface-2);
  --bs-table-border-color: var(--ln-border);
}
[data-theme-curated] .table > thead > tr > th,
[data-theme-curated] thead.table-light th {
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
  color: var(--ln-fg-muted) !important;
  background: var(--ln-surface-2) !important;
  background-color: var(--ln-surface-2) !important;
  border-bottom: 1px solid var(--ln-border) !important;
}
[data-theme-curated] .table-hover tbody tr:hover {
  --bs-table-hover-bg: var(--ln-surface-2);
  background-color: var(--ln-surface-2) !important;
}
/* C1: app.css:781 targets > * (cells) with !important; match that selector + attr to win */
[data-theme-curated] .table-hover > tbody > tr:hover > * {
  background-color: var(--ln-surface-2) !important;
  color: var(--ln-fg) !important;
}
[data-theme-curated] .table-sm > :not(caption) > * > * { padding: 6px 10px; }
[data-theme-curated] .table-bordered > :not(caption) > * > * {
  border-color: var(--ln-border) !important;
  --bs-table-border-color: var(--ln-border);
}
[data-theme-curated] .table-borderless > :not(caption) > * > * {
  border-color: transparent;
}

/* ======================================================================
   Fase 4 oleada 3 — Command Palette (minimal override bajo curados)
   El bloque base vive en premium-ui.css:473-717 y sigue siendo la fuente
   de verdad para los 6 temas v1. Aqui solo tokenizamos radius, hovers,
   shadows y backdrop para los 4 curados — tipografia y colores ya heredan
   via el puente v1→v2.
   ====================================================================== */

/* ----- Trigger (en navbar) ----- */
[data-theme-curated] .cmd-trigger {
  border-radius: var(--ln-radius-md) !important;
}
[data-theme-curated] .cmd-trigger:hover {
  border-color: var(--ln-accent) !important;
  background: var(--ln-surface) !important;
  box-shadow: 0 0 0 3px var(--ln-accent-soft) !important;
}
[data-theme-curated] .cmd-trigger-kbd kbd {
  border-radius: var(--ln-radius-sm);
}

/* ----- Palette overlay ----- */
[data-theme-curated] .cmd-palette-backdrop {
  background: var(--ln-drawer-backdrop);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
/* NOTA: `.cmd-palette` no usa !important — la especificidad attribute+class
   (0,1,1) ya gana sobre `premium-ui.css .cmd-palette` (0,0,1). Si en el futuro
   una utility class Bootstrap (`bg-*`, `rounded-*`) se aplica directamente en
   el markup, este override perderia silenciosamente — revisar antes de agregar. */
[data-theme-curated] .cmd-palette {
  background: var(--ln-surface);
  border-radius: var(--ln-radius-lg);
  box-shadow: var(--ln-shadow-toast);
  border: 1px solid var(--ln-border);
}
[data-theme-curated] .cmd-palette-input-wrap {
  border-bottom-color: var(--ln-border);
}
[data-theme-curated] .cmd-palette-esc {
  border-radius: var(--ln-radius-sm);
  background: var(--ln-surface-2);
  border-color: var(--ln-border);
}

/* ----- Results + items ----- */
[data-theme-curated] .cmd-palette-section {
  letter-spacing: 0.04em;
  font-weight: 500;
  color: var(--ln-fg-muted);
}
[data-theme-curated] .cmd-item {
  border-radius: var(--ln-radius-md);
}
[data-theme-curated] .cmd-item:hover,
[data-theme-curated] .cmd-item.selected {
  background: var(--ln-accent-soft);
}
[data-theme-curated] .cmd-item-icon {
  border-radius: var(--ln-radius-md);
  background: var(--ln-surface-2);
  color: var(--ln-accent);
}

/* ----- Footer ----- */
[data-theme-curated] .cmd-palette-footer {
  border-top-color: var(--ln-border);
  background: var(--ln-surface-2);
}
[data-theme-curated] .cmd-palette-footer-hint kbd {
  background: var(--ln-surface);
  border-color: var(--ln-border);
  border-radius: var(--ln-radius-sm);
}

/* ======================================================================
   Fase 4 oleada 4 — Toasts + scrollbar (cierra deuda premium-ui.css)
   Los vars --badge-*-bg/text de toasts no estan en el puente v1→v2;
   sin este override los iconos pintan los tints warm-minimal en curados.
   Scrollbar custom light para Linear/Stripe/Editorial; Terminal ya tiene
   su propio bloque dark en theme-terminal.css que gana por carga posterior.
   ====================================================================== */

/* ----- Toasts ----- */
[data-theme-curated] .toast-custom {
  background: var(--ln-surface);
  border-color: var(--ln-border);
  border-radius: var(--ln-radius-md);
  color: var(--ln-fg);
}
[data-theme-curated] .toast-custom.toast-success .toast-custom-icon {
  background: var(--ln-positive-soft);
  color: var(--ln-positive);
}
[data-theme-curated] .toast-custom.toast-danger .toast-custom-icon {
  background: var(--ln-negative-soft);
  color: var(--ln-negative);
}
[data-theme-curated] .toast-custom.toast-warning .toast-custom-icon {
  background: var(--ln-warning-soft);
  color: var(--ln-warning-fg);
}
[data-theme-curated] .toast-custom-text { color: var(--ln-fg); }
[data-theme-curated] .toast-custom-close { color: var(--ln-fg-muted); }

/* ----- Scrollbar (light default; Terminal override en theme-terminal.css) ----- */
[data-theme-curated] ::-webkit-scrollbar { width: 10px; height: 10px; }
[data-theme-curated] ::-webkit-scrollbar-track { background: transparent; }
[data-theme-curated] ::-webkit-scrollbar-thumb {
  background: var(--ln-border-strong);
  border-radius: 5px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
[data-theme-curated] ::-webkit-scrollbar-thumb:hover {
  background: var(--ln-fg-faint);
  background-clip: padding-box;
}

/* ======================================================================
   Fase 5 — Superficies restantes de premium-ui.css bajo curados
   Slide panels, dropdowns, accordion, empty-state, skeleton, toggles.
   Cierra el resto de componentes que funcionaban via puente v1->v2 sin
   tokenizacion explicita. Los 6 temas v1 clasicos siguen sirviendo via
   premium-ui.css original.
   ====================================================================== */

/* ----- Slide panels (drawer CRUD) ----- */
[data-theme-curated] .slide-panel {
  background: var(--ln-surface);
  border-left: 1px solid var(--ln-border);
  box-shadow: var(--ln-shadow-drawer);
}
[data-theme-curated] .slide-panel-backdrop {
  background: var(--ln-drawer-backdrop);
}
[data-theme-curated] .slide-panel-header {
  border-bottom: 1px solid var(--ln-border);
  padding: var(--ln-space-4) var(--ln-space-5);
}
[data-theme-curated] .slide-panel-header h5 {
  font-weight: 500;
  font-size: 15px;
  color: var(--ln-fg);
  letter-spacing: -0.01em;
}
[data-theme-curated] .slide-panel-close {
  color: var(--ln-fg-muted);
  border-radius: var(--ln-radius-sm);
}
[data-theme-curated] .slide-panel-close:hover {
  background: var(--ln-surface-2);
  color: var(--ln-fg);
}
[data-theme-curated] .slide-panel-body { padding: var(--ln-space-5); }
[data-theme-curated] .slide-panel-footer {
  border-top: 1px solid var(--ln-border);
  padding: var(--ln-space-3) var(--ln-space-5);
}

/* ----- Dropdowns ----- */
[data-theme-curated] .dropdown-menu {
  background: var(--ln-surface);
  border: 1px solid var(--ln-border);
  border-radius: var(--ln-radius-md);
  box-shadow: var(--ln-shadow-dropdown);
  padding: 4px;
}
[data-theme-curated] .dropdown-item {
  color: var(--ln-fg);
  border-radius: var(--ln-radius-sm);
  padding: 6px 10px;
  font-size: 13px;
}
[data-theme-curated] .dropdown-item:hover,
[data-theme-curated] .dropdown-item:focus {
  background: var(--ln-surface-2);
  color: var(--ln-fg);
}
[data-theme-curated] .dropdown-item.text-danger,
[data-theme-curated] .dropdown-item.text-danger:hover {
  color: var(--ln-negative) !important;
}
[data-theme-curated] .dropdown-item.text-danger:hover {
  background: var(--ln-negative-soft);
}
[data-theme-curated] .dropdown-divider {
  border-color: var(--ln-border);
  margin: 2px 0;
}

/* ----- Accordion (pagina Ayuda) ----- */
[data-theme-curated] .accordion-item {
  border: 1px solid var(--ln-border);
  border-radius: var(--ln-radius-lg) !important;
  overflow: hidden;
  background: var(--ln-surface);
}
[data-theme-curated] .accordion-button {
  background: var(--ln-surface);
  color: var(--ln-fg);
  font-weight: 500;
  padding: var(--ln-space-3) var(--ln-space-4);
}
[data-theme-curated] .accordion-button:not(.collapsed) {
  background: var(--ln-accent-soft);
  color: var(--ln-accent);
  border-left: 3px solid var(--ln-accent);
  box-shadow: none;
}
[data-theme-curated] .accordion-body {
  background: var(--ln-surface);
  color: var(--ln-fg);
  padding: var(--ln-space-4);
}

/* ----- Empty states ----- */
[data-theme-curated] .empty-state-icon {
  background: var(--ln-accent-soft);
  color: var(--ln-accent);
}
[data-theme-curated] .empty-state h6 { color: var(--ln-fg); font-weight: 500; }
[data-theme-curated] .empty-state p { color: var(--ln-fg-muted); }

/* ----- Skeleton loaders ----- */
[data-theme-curated] .skeleton {
  background: linear-gradient(
    90deg,
    var(--ln-surface-2) 25%,
    var(--ln-surface-3) 50%,
    var(--ln-surface-2) 75%
  );
  background-size: 200% 100%;
}

/* ----- Toggle switch (form-check switch) ----- */
[data-theme-curated] .form-check.form-switch .form-check-input {
  background-color: var(--ln-surface-3);
  border-color: var(--ln-border);
  width: 2.25em;
}
[data-theme-curated] .form-check.form-switch .form-check-input:checked {
  background-color: var(--ln-accent) !important;
  border-color: var(--ln-accent) !important;
}

/* ----- Modal (Bootstrap base — raro en el proyecto pero cubre edge cases) ----- */
[data-theme-curated] .modal-content {
  background: var(--ln-surface);
  border: 1px solid var(--ln-border);
  border-radius: var(--ln-radius-lg);
  box-shadow: var(--ln-shadow-toast);
}
[data-theme-curated] .modal-header {
  border-bottom: 1px solid var(--ln-border);
  padding: var(--ln-space-3) var(--ln-space-5);
}
[data-theme-curated] .modal-header h5,
[data-theme-curated] .modal-title { color: var(--ln-fg); font-weight: 500; }
[data-theme-curated] .modal-body { padding: var(--ln-space-5); color: var(--ln-fg); }
[data-theme-curated] .modal-footer {
  border-top: 1px solid var(--ln-border);
  padding: var(--ln-space-3) var(--ln-space-5);
}
[data-theme-curated] .modal-backdrop.show { opacity: 0.4; }
