/*
 * Tema AP automático.
 * Sigue la preferencia claro/oscuro configurada en el sistema operativo.
 */

:root {
  color-scheme: light;
  --ap-section-header: #0b0b0b;
}

/*
 * Encabezados primarios 1-2-3 y secundarios A-B-C:
 * comparten exactamente el mismo negro sólido AP.
 */
.ap-primary-header,
.ap-secondary-header,
.valuation-layout .valuation-panel > .valuation-heading,
.results-panel > .valuation-heading,
.planning-panel > .planning-heading,
.client-card > .client-title,
.client-grid > .client-section,
.results-dashboard .results-group-head,
.planning-subsection-title,
.projection-card-title {
  background: var(--ap-section-header) !important;
  background-image: none !important;
  border-color: #292929 !important;
  color: #ffffff !important;
}

.results-dashboard .results-group-head small {
  color: #d0ccc7 !important;
}

/*
 * Contrato visual para nuevas vistas:
 * .ap-tab-page, .ap-page-header, .ap-primary-header,
 * .ap-secondary-header y .ap-surface.
 */
.ap-page-header {
  background: linear-gradient(135deg, #181818 0%, #080909 72%) !important;
  border-color: #292929 !important;
  border-bottom-color: #b88622 !important;
  color: #ffffff !important;
}

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --ap-dark-bg: #0b0b0b;
    --ap-dark-tab-bg: #0b0b0b;
    --ap-dark-canvas: #101111;
    --ap-dark-surface: #181817;
    --ap-dark-surface-raised: #20201e;
    --ap-dark-field: #252421;
    --ap-dark-border: #3e3a34;
    --ap-dark-text: #f2ede6;
    --ap-dark-muted: #b8b1a8;
    --ap-dark-gold: #cba977;
  }

  html,
  body {
    background: var(--ap-dark-bg) !important;
    color: var(--ap-dark-text) !important;
  }

  @media (max-width: 760px) {
    ap-sidebar {
      background: var(--ap-sidebar);
      color: #ffffff;
    }

    ap-sidebar .brand {
      flex-basis: 48px;
      width: 48px;
      padding: 6px 4px;
      border-color: transparent;
      background: var(--ap-sidebar);
      box-shadow: 8px 0 10px var(--ap-sidebar);
    }

    ap-sidebar .brand img {
      content: url("assets/ap-isotype-dark-transparent.png?v=1");
      width: 40px;
      max-width: 40px;
      height: 26px;
      max-height: 26px;
      object-fit: contain;
    }

    ap-sidebar .ap-nav-item {
      color: #ffffff;
    }

    ap-sidebar .ap-nav-item:hover,
    ap-sidebar .ap-nav-item:focus-visible {
      background: var(--ap-sidebar-hover);
    }

    ap-sidebar .ap-nav-item.active {
      background: var(--ap-sidebar-active);
    }
  }

  body,
  main,
  .wrapper,
  .advisor-home,
  .planning-view,
  .config-view,
  .existing-view,
  .welcome {
    color: var(--ap-dark-text);
  }

  /* Fondo principal uniforme: Valoración define el estándar nocturno. */
  .asesorados-content,
  .ap-tab-page,
  .advisor-home,
  .valuation-view,
  .planning-view,
  .config-view,
  .existing-view,
  .home-card {
    background: var(--ap-dark-tab-bg) !important;
  }

  /* Superficies generales */
  .home-panel,
  .ap-surface,
  .home-dashboard-action,
  .home-status-grid,
  .advisor-action,
  .card,
  .client-card,
  .config-panel,
  .existing-filters,
  .existing-results,
  .existing-footer,
  .valuation-panel,
  .method-rule,
  .planning-panel,
  .planning-client,
  .database-status,
  .excel-drop,
  .projection-card,
  .planning-split,
  .planning-split > div,
  .planning-energy .energy-grid,
  .planning-energy .energy-grid > div,
  .planning-view .macros-grid,
  .planning-view .macros-grid > div,
  .body-projection-content,
  .planning-view .body-projection-grid > .projection-card {
    background: var(--ap-dark-surface) !important;
    border-color: var(--ap-dark-border) !important;
    color: var(--ap-dark-text) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .24) !important;
  }

  .client-card > .client-grid {
    background: var(--ap-dark-surface) !important;
    border-color: var(--ap-dark-border) !important;
  }

  .advisor-action:hover,
  .advisor-action:focus-visible,
  .home-dashboard-action:hover,
  .home-dashboard-action:focus-visible,
  .home-action:hover,
  .home-action:focus-visible {
    border-color: var(--ap-dark-gold) !important;
  }

  .advisor-action-icon,
  .home-icon,
  .home-action-icon {
    background: rgba(203, 169, 119, .12) !important;
  }

  /* Texto */
  h1, h2, h3, h4,
  label,
  strong,
  .advisor-action,
  .home-dashboard-action,
  .home-panel h1,
  .planning-hero h1,
  .result-name,
  .client-field label {
    color: var(--ap-dark-text);
  }

  p,
  small,
  .advisor-kicker,
  .advisor-welcome p:not(.advisor-kicker),
  .advisor-action small,
  .home-dashboard-action small,
  .advisor-footer,
  .home-panel p,
  .planning-hero p,
  .planning-client small,
  .method-rule p,
  .quick-label,
  .macro-status,
  .macro-legend,
  .projection-values > .projection-delta {
    color: var(--ap-dark-muted) !important;
  }

  a {
    color: var(--ap-dark-gold);
  }

  /* Formularios */
  input,
  select,
  textarea,
  output,
  .field,
  .result-value input,
  .result-value textarea,
  .planning-field input,
  .planning-field select,
  .planning-field output {
    background: var(--ap-dark-field) !important;
    border-color: var(--ap-dark-border) !important;
    color: var(--ap-dark-text) !important;
  }

  input::placeholder,
  textarea::placeholder {
    color: #99938b !important;
    opacity: 1;
  }

  input[readonly],
  input:disabled,
  select:disabled,
  textarea:disabled,
  .macro-input-card input[readonly] {
    background: #1d1c1a !important;
    color: #aaa39a !important;
  }

  option {
    background: var(--ap-dark-field);
    color: var(--ap-dark-text);
  }

  .home-action.secondary,
  .client-button,
  .valuation-button,
  .existing-clear,
  .recent-searches button,
  .existing-footer button,
  .prescription-input-wrap input {
    background: var(--ap-dark-field) !important;
    border-color: var(--ap-dark-border) !important;
    color: var(--ap-dark-text) !important;
  }

  .home-action.secondary:hover,
  .client-button:hover,
  .valuation-button:hover,
  .existing-clear:hover,
  .recent-searches button:hover,
  .existing-footer button:hover {
    background: #302a22 !important;
    border-color: var(--ap-dark-gold) !important;
  }

  /* Divisiones, tablas y bloques informativos */
  .client-actions,
  .valuation-row,
  .valuation-row > label,
  .valuation-row > .result-name,
  .metric-summary,
  .metric-item,
  .planning-split > div + div,
  .energy-grid > div + div,
  .macros-grid > div + div,
  .formula-description,
  .formula-guide,
  table,
  th,
  td {
    border-color: var(--ap-dark-border) !important;
  }

  .valuation-note,
  .planning-note,
  .phase-note,
  .projection-important,
  .planning-view .projection-phase .phase-duration,
  .formula-guide {
    background: #211d18 !important;
    border-color: #5d4930 !important;
    color: #d8d0c7 !important;
  }

  .planning-view .projection-phase .phase-duration strong,
  .activity-contribution-legend .activity-share,
  .macro-chart-row .macro-legend,
  .macro-summary-table thead th,
  .macro-ring text {
    color: var(--ap-dark-text) !important;
    fill: var(--ap-dark-text);
  }

  .projection-objectives-head,
  .macro-summary-table thead,
  .plan-table th {
    background: rgba(203, 169, 119, .14) !important;
    color: var(--ap-dark-text) !important;
  }

  .macro-ring-center {
    background: var(--ap-dark-surface-raised) !important;
    box-shadow: 0 0 0 1px var(--ap-dark-border) !important;
  }

  .bar {
    background: #353330 !important;
  }

  .planning-choice .selected,
  .energy-total {
    background: #2a241c !important;
    border-color: #675035 !important;
    color: var(--ap-dark-text) !important;
  }

  .phase-scroll button,
  .phase-weeks i,
  .phase-dot,
  .legend-dot {
    background: #2d2c29 !important;
    border-color: #5a554d !important;
    color: var(--ap-dark-gold) !important;
  }

  .phase-legend {
    background: #242320 !important;
    border: 1px solid #45413b !important;
    color: var(--ap-dark-muted) !important;
  }

  .phase-scroll-track {
    background: #35332f !important;
    border: 1px solid #48443e !important;
  }

  .phase-scroll-track i {
    background: #8b857c !important;
  }

  .phase-line {
    background: #746f67 !important;
  }

  .phase-point b,
  .phase-point small,
  .projection-phase-dates {
    color: var(--ap-dark-text) !important;
  }

  .phase-point.start .phase-dot,
  .legend-dot.black {
    background: #8f8a83 !important;
    border-color: #8f8a83 !important;
  }

  .legend-dot.gold,
  .legend-dot.flag,
  .phase-point.goal .phase-dot {
    background: #2d2c29 !important;
    border-color: var(--ap-dark-gold) !important;
    color: var(--ap-dark-gold) !important;
  }

  /* Bloques de actividad */
  .activity-contribution {
    background: #242320 !important;
    border-color: #45413b !important;
    color: var(--ap-dark-text) !important;
  }

  .activity-contribution-bar {
    background: #33312e !important;
    border-color: #4b4741 !important;
  }

  .activity-contribution-head small,
  .activity-contribution-legend span,
  .activity-contribution-legend small,
  .activity-contribution-legend .activity-decimal,
  .activity-contribution-empty {
    color: var(--ap-dark-muted) !important;
  }

  .activity-contribution-legend b,
  .activity-contribution-legend .activity-share {
    color: var(--ap-dark-text) !important;
  }

  /* Distribución de la composición corporal */
  .body-composition-card,
  .results-dashboard .body-composition-card {
    background: #242320 !important;
    border-color: #45413b !important;
    color: var(--ap-dark-text) !important;
  }

  .body-composition-copy h3 {
    color: var(--ap-dark-text) !important;
  }

  .body-composition-copy p,
  .body-composition-legend {
    color: var(--ap-dark-muted) !important;
  }

  .body-composition-legend strong {
    color: var(--ap-dark-text) !important;
  }

  .body-composition-legend .fat-dot {
    background: #8f8a83 !important;
  }

  .body-composition-pie {
    background: #2d2c29 !important;
    border-color: #514d47 !important;
    box-shadow: 0 20px 20px rgba(0, 0, 0, .28) !important;
  }

  .body-composition-pie span {
    color: var(--ap-dark-muted) !important;
  }

  .body-composition-pie:not(.is-empty) {
    border-color: #3b3833 !important;
  }

  /* Configuración */
  .config-panel {
    background: var(--ap-dark-surface) !important;
  }

  .config-title p,
  .config-data dd,
  .config-success span,
  .config-info,
  .config-footer {
    color: var(--ap-dark-muted) !important;
  }

  .config-db-actions,
  .config-backup-actions,
  .config-about > div {
    border-color: var(--ap-dark-border) !important;
  }

  .config-success {
    background: #182218 !important;
    border-color: #3d5739 !important;
  }

  .config-success strong {
    color: #85bd70 !important;
  }

  .config-button,
  .config-info {
    background: #252421 !important;
    border-color: #51483b !important;
    color: var(--ap-dark-text) !important;
  }

  .config-button:hover,
  .config-button:focus-visible {
    background: #302a22 !important;
    border-color: var(--ap-dark-gold) !important;
  }

  /* Acciones principales de guardado: siempre dorado AP. */
  .client-button.primary,
  .valuation-button.primary,
  .planning-save {
    background: var(--ap-dark-gold) !important;
    border-color: var(--ap-dark-gold) !important;
    color: #0b0b0b !important;
    box-shadow: 0 6px 16px rgba(203, 169, 119, .16);
  }

  .client-button.primary:hover,
  .client-button.primary:focus-visible,
  .valuation-button.primary:hover,
  .valuation-button.primary:focus-visible,
  .planning-save:hover,
  .planning-save:focus-visible {
    background: #d8b98c !important;
    border-color: #d8b98c !important;
    color: #0b0b0b !important;
  }

  .config-icon {
    background: rgba(203, 169, 119, .12) !important;
  }

  /* Consulta y búsqueda de asesorados */
  .existing-filters,
  .existing-results,
  .existing-footer,
  .home-status-grid {
    background: var(--ap-dark-surface) !important;
    border-color: var(--ap-dark-border) !important;
  }

  .existing-results-head,
  .existing-table th,
  .existing-table td,
  .home-status-grid > div {
    border-color: var(--ap-dark-border) !important;
  }

  .existing-heading p,
  .existing-table th,
  .existing-footer small,
  .home-status-grid small {
    color: var(--ap-dark-muted) !important;
  }

  .client-status.activo {
    background: #182218 !important;
    border-color: #3d5739 !important;
    color: #85bd70 !important;
  }

  .client-status.pausado {
    background: #2a2418 !important;
    border-color: #6a5430 !important;
    color: #dfb867 !important;
  }

  .client-status.finalizado {
    background: #252421 !important;
    border-color: #4b4842 !important;
    color: #b8b1a8 !important;
  }

  /* La sección de resultados ya usa una base oscura; solo se armonizan sus tarjetas. */
  .results-dashboard .results-group {
    background: var(--ap-dark-surface) !important;
    border-color: var(--ap-dark-border) !important;
    color: var(--ap-dark-text) !important;
  }

  .valuation-view input:not([readonly]),
  .valuation-view select,
  .valuation-view textarea {
    background: #2a2926 !important;
    border-color: #48443e !important;
    color: var(--ap-dark-text) !important;
  }

  .valuation-view input[readonly] {
    background: #242320 !important;
    border-color: #403d38 !important;
    color: #b8b1a8 !important;
  }

  .valuation-panel.results-panel,
  .results-panel .results-dashboard {
    background: #181817 !important;
    border-color: var(--ap-dark-border) !important;
  }

  .results-dashboard .result-value input,
  .results-dashboard .justification-row .result-value textarea {
    background: #292825 !important;
    border-color: var(--ap-dark-border) !important;
    color: var(--ap-dark-text) !important;
  }

  .results-dashboard .official-result .result-value input {
    background: #2b2419 !important;
    color: #e0b86d !important;
  }

  /* Pantalla de acceso */
  body:has(.screen) {
    background: var(--ap-dark-canvas) !important;
  }

  .screen .logo-frame .logo-desktop {
    content: url("assets/ap-horizontal-dark-transparent.png?v=2");
    position: static;
    width: 100%;
    height: 100%;
    object-fit: contain;
    margin: 0 auto;
    transform: none;
  }

  @media (max-width: 600px) {
    .logo-frame .logo-mobile-light {
      display: none !important;
    }

    .logo-frame .logo-mobile-dark {
      display: block;
      position: static;
      width: 100%;
      height: 100%;
      margin: 0 auto;
      object-fit: contain;
      transform: none;
    }
  }

  @media (max-width: 600px) and (min-height: 720px) {
    .logo-frame {
      height: auto;
      aspect-ratio: 944 / 561;
    }

    .logo-frame .logo-mobile-dark {
      display: none !important;
    }

    .logo-frame .logo-mobile-dark-with-tagline {
      display: block;
      position: static;
      width: 100%;
      height: 100%;
      margin: 0 auto;
      object-fit: contain;
      transform: none;
    }
  }

  .screen .field {
    background: rgba(32, 32, 30, .92) !important;
  }

  .screen .assessment {
    background: var(--ap-dark-surface) !important;
    border-color: var(--ap-dark-border) !important;
  }

  .screen .field-icon,
  .screen .eye,
  .screen .note {
    color: var(--ap-dark-muted) !important;
  }

  .screen .remember input {
    border-color: var(--ap-dark-muted);
  }

  .screen .version {
    color: var(--ap-dark-text);
  }

  .screen .primary {
    color: #0b0b0b;
  }

  .screen .primary:hover,
  .screen .primary:focus-visible {
    background: #f2ede6;
    color: #0b0b0b;
  }
}
