body {
  color: var(--aguacol-text-primary);
  background: var(--aguacol-bg-app);
  accent-color: var(--aguacol-action-primary);
}

a,
.like-disabled-input {
  color: var(--aguacol-action-primary);
}

a:hover {
  color: var(--aguacol-action-primary-hover);
}

.navbar,
.layout-side-section,
.standard-sidebar,
.desk-sidebar {
  background-color: var(--aguacol-bg-navigation);
}

.navbar {
  border-bottom: 1px solid var(--aguacol-border);
  box-shadow: var(--aguacol-shadow-sm);
}

.navbar .navbar-brand .app-logo,
.navbar-brand img,
#brand-logo {
  width: auto;
  max-width: 58px;
  max-height: 38px;
  object-fit: contain;
}

.page-head,
.page-container,
.layout-main-section,
.workspace-container,
.form-layout,
.list-row-container,
.report-wrapper,
.frappe-card {
  color: var(--aguacol-text-primary);
  background-color: var(--aguacol-bg-surface);
  border-color: var(--aguacol-border);
}

.widget,
.workspace-card,
.number-card,
.dashboard-widget,
.form-dashboard-section,
.form-section,
.list-row,
.grid-row,
.kanban-column {
  border-color: var(--aguacol-border);
  border-radius: var(--aguacol-radius-card);
  background: var(--aguacol-bg-card);
  box-shadow: var(--aguacol-shadow-sm);
}

.form-control,
.input-with-feedback,
.control-input,
.awesomplete > input,
.ql-container,
.select2-selection,
.multiselect-list .form-control {
  color: var(--aguacol-text-primary);
  background-color: var(--aguacol-bg-field);
  border-color: var(--aguacol-border);
  border-radius: var(--aguacol-radius-control);
  min-height: var(--aguacol-control-height);
}

.form-control:focus,
.input-with-feedback:focus,
.control-input:focus-within,
.awesomplete > input:focus {
  border-color: var(--aguacol-focus);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--aguacol-focus) 22%, transparent);
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
  color: var(--aguacol-text-disabled);
  opacity: 1;
}

.btn {
  border-radius: var(--aguacol-radius-control);
  transition: background-color var(--aguacol-duration-fast) var(--aguacol-ease),
    border-color var(--aguacol-duration-fast) var(--aguacol-ease),
    color var(--aguacol-duration-fast) var(--aguacol-ease),
    box-shadow var(--aguacol-duration-fast) var(--aguacol-ease);
}

.btn-primary,
.btn-primary-dark,
.primary-action {
  color: #fff;
  background: var(--aguacol-action-primary);
  border-color: var(--aguacol-action-primary);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary-dark:hover,
.primary-action:hover {
  color: #fff;
  background: var(--aguacol-action-primary-hover);
  border-color: var(--aguacol-action-primary-hover);
}

.btn-default,
.btn-secondary {
  color: var(--aguacol-text-primary);
  background: var(--aguacol-bg-elevated);
  border-color: var(--aguacol-border);
}

.dropdown-menu,
.popover,
.modal-content,
.tooltip-inner,
.awesomplete > ul,
.list-group,
.menu-item-container {
  color: var(--aguacol-text-primary);
  background-color: var(--aguacol-bg-elevated);
  border-color: var(--aguacol-border);
  border-radius: var(--aguacol-radius-card);
  box-shadow: var(--aguacol-shadow-md);
}

.dropdown-item:hover,
.dropdown-item:focus,
.list-group-item:hover,
.awesomplete > ul > li:hover,
.awesomplete > ul > li[aria-selected="true"] {
  color: var(--aguacol-text-primary);
  background: var(--aguacol-action-secondary);
}

.modal-backdrop,
.freeze-message-container {
  background-color: var(--aguacol-overlay);
}

.modal-content {
  border-radius: var(--aguacol-radius-dialog);
}

.modal-header,
.modal-footer,
.table thead th,
.grid-heading-row,
.list-row-head,
.report-summary {
  border-color: var(--aguacol-divider);
  background-color: var(--aguacol-bg-subtle);
}

.table,
.table td,
.table th,
.grid-row,
.list-row,
.datatable .dt-cell,
.datatable .dt-header {
  color: var(--aguacol-text-primary);
  border-color: var(--aguacol-divider);
}

.table-hover tbody tr:hover,
.list-row:hover,
.grid-row:hover,
.datatable .dt-row:hover .dt-cell {
  background-color: var(--aguacol-bg-subtle);
}

.nav-tabs,
.nav-tabs .nav-link,
.form-tabs-list,
.form-tab-row {
  border-color: var(--aguacol-border);
}

.nav-tabs .nav-link.active,
.form-tabs-list .nav-link.active {
  color: var(--aguacol-action-primary);
  border-bottom-color: var(--aguacol-action-primary);
}

.indicator-pill.green,
.indicator.green::before {
  color: var(--aguacol-success);
}

.indicator-pill.orange,
.indicator.orange::before,
.indicator-pill.yellow,
.indicator.yellow::before {
  color: var(--aguacol-warning);
}

.indicator-pill.red,
.indicator.red::before,
.invalid-feedback,
.help-block.text-danger {
  color: var(--aguacol-error);
}

.indicator-pill.blue,
.indicator.blue::before {
  color: var(--aguacol-info);
}

svg.icon,
.icon {
  color: currentColor;
  flex: 0 0 auto;
}

.btn svg.icon {
  width: 16px;
  height: 16px;
}

.sidebar-item.selected,
.desk-sidebar-item.selected,
.standard-sidebar-item.selected,
[aria-current="page"] {
  color: var(--aguacol-action-primary);
  background-color: var(--aguacol-action-secondary);
  border-radius: var(--aguacol-radius-control);
}

.progress-bar {
  background: var(--aguacol-gradient-brand);
}

.skeleton,
.skeleton-box {
  background: linear-gradient(90deg, var(--aguacol-bg-subtle), var(--aguacol-bg-elevated), var(--aguacol-bg-subtle));
}

* {
  scrollbar-color: var(--aguacol-border) transparent;
  scrollbar-width: thin;
}

/* --- Identidad del desarrollador ---------------------------------------- */

.aguacol-solo-lectores {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  border: 0;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Marca fija de Desk. Va por debajo de diálogos, alertas y menús (que usan
   z-index >= 1000) y se esconde con el modal abierto, de modo que nunca tapa
   contenido operativo. */
.aguacol-marca {
  position: fixed;
  z-index: 3;
  right: max(10px, env(safe-area-inset-right));
  bottom: max(8px, env(safe-area-inset-bottom));
  padding: 3px 10px;
  color: var(--aguacol-text-secondary);
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: 0.01em;
  text-decoration: none;
  background: color-mix(in srgb, var(--aguacol-bg-elevated) 86%, transparent);
  border: 1px solid var(--aguacol-border);
  border-radius: var(--aguacol-radius-pill);
  box-shadow: var(--aguacol-shadow-sm);
  opacity: 0.72;
  backdrop-filter: blur(6px);
  transition: opacity var(--aguacol-duration-fast) var(--aguacol-ease),
    color var(--aguacol-duration-fast) var(--aguacol-ease);
}

.aguacol-marca:hover,
.aguacol-marca:focus-visible {
  color: var(--aguacol-action-primary);
  text-decoration: none;
  opacity: 1;
}

body.modal-open .aguacol-marca {
  display: none;
}

/* El área de trabajo de Desk es la que desplaza. Se le reserva el alto de la
   marca para que, al llegar al final, no quede contenido debajo de ella. */
.aguacol-ui .main-section {
  padding-bottom: 34px;
}

/* El elemento de soporte se convierte en un ancla real; sin esto tomaría el
   color de enlace y desentonaría con el resto del menú. */
.frappe-menu a[data-aguacol-enlace] {
  color: inherit;
  text-decoration: none;
}

/* Diálogo «Acerca de» */
.aguacol-acerca {
  padding: var(--aguacol-space-2) 0 var(--aguacol-space-1);
  text-align: center;
}

.aguacol-acerca__firma {
  margin: 0 0 var(--aguacol-space-1);
  color: var(--aguacol-text-primary);
  font-size: 19px;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.aguacol-acerca__sitio {
  display: inline-block;
  margin-bottom: var(--aguacol-space-4);
  color: var(--aguacol-action-primary);
  font-size: 14px;
}

.aguacol-acerca__redes {
  display: flex;
  gap: var(--aguacol-space-2);
  justify-content: center;
  margin-bottom: var(--aguacol-space-6);
}

.aguacol-acerca__red {
  display: inline-flex;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  color: var(--aguacol-text-secondary);
  background: var(--aguacol-bg-subtle);
  border: 1px solid var(--aguacol-border);
  border-radius: var(--aguacol-radius-pill);
  transition: color var(--aguacol-duration-fast) var(--aguacol-ease),
    background-color var(--aguacol-duration-fast) var(--aguacol-ease);
}

.aguacol-acerca__red:hover,
.aguacol-acerca__red:focus-visible {
  color: var(--aguacol-action-primary);
  background: var(--aguacol-action-secondary);
}

.aguacol-acerca__red svg {
  width: 18px;
  height: 18px;
}

.aguacol-acerca__seccion {
  padding-top: var(--aguacol-space-3);
  color: var(--aguacol-text-secondary);
  font-size: 12px;
  font-weight: 600;
  text-align: left;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-top: 1px solid var(--aguacol-divider);
}

.aguacol-acerca__version {
  padding-top: var(--aguacol-space-1);
  color: var(--aguacol-text-secondary);
  font-size: 13px;
  text-align: left;
}

@media (max-width: 767px) {
  .btn,
  .form-control,
  .input-with-feedback {
    min-height: var(--aguacol-control-height-touch);
  }

  .modal-dialog {
    margin: var(--aguacol-space-3);
  }

  .aguacol-marca {
    padding: 2px 8px;
    font-size: 10px;
    opacity: 0.62;
  }
}

@media print {
  :root,
  html[data-theme="dark"] {
    color-scheme: light;
    --aguacol-bg-app: #fff;
    --aguacol-bg-surface: #fff;
    --aguacol-bg-card: #fff;
    --aguacol-text-primary: #111;
    --aguacol-text-secondary: #333;
    --aguacol-border: #aaa;
    --aguacol-divider: #ccc;
  }

  .navbar,
  .layout-side-section,
  .desk-sidebar {
    display: none !important;
  }

  .widget,
  .frappe-card,
  .form-section {
    box-shadow: none;
  }
}
