/* ANT DESIGN BLAZOR TEMA PERSONALIZADO */

/* 1. VARIABLES DE TEMA */
:root {
  /* Colores principales (basados en LurpelanTheme) */
  --ant-primary-color: #FF7C00;
  --ant-primary-color-hover: #ff9633;
  --ant-primary-color-active: #cc6300;
  --ant-primary-color-outline: rgba(255, 124, 0, 0.2);
  --ant-primary-1: #fff7e6;
  --ant-primary-2: #ffe7ba;
  --ant-primary-3: #ffd591;
  --ant-primary-4: #ffc069;
  --ant-primary-5: #ffa940;
  --ant-primary-6: #FF7C00;
  --ant-primary-7: #d96800;
  --ant-primary-8: #ad4e00;
  --ant-primary-9: #873800;
  --ant-primary-10: #612500;
  
  --ant-secondary-color: #28a745;
  --ant-secondary-color-hover: #48c366;
  --ant-secondary-color-active: #208637;
  
  --ant-error-color: #dc3545;
  --ant-error-color-hover: #e25663;
  --ant-error-color-active: #b02a37;
  --ant-error-color-outline: rgba(220, 53, 69, 0.2);
  
  --ant-warning-color: #ffc107;
  --ant-warning-color-hover: #ffcd39;
  --ant-warning-color-active: #cc9a06;
  --ant-warning-color-outline: rgba(255, 193, 7, 0.2);
  
  --ant-info-color: #666666;
  --ant-info-color-hover: #858585;
  --ant-info-color-active: #525252;
  --ant-info-color-outline: rgba(102, 102, 102, 0.2);
  
  /* Fondos */
  --ant-bg-color: #ffffff;
  --ant-component-bg: #ffffff;
  --ant-layout-body-background: #f8f8f8;
  --ant-layout-header-background: #333333;
  
  /* Textos */
  --ant-text-color: #333333;
  --ant-text-color-secondary: #666666;
  --ant-text-color-inverse: #ffffff;
  --ant-text-color-disabled: rgba(0, 0, 0, 0.25);
  
  /* Bordes */
  --ant-border-radius-base: 4px;
  --ant-border-radius-sm: 2px;
  --ant-border-color-base: #d9d9d9;
  --ant-border-color-split: #f0f0f0;
  --ant-border-width-base: 1px;
  
  /* Tamaños */
  --ant-font-size-base: 14px;
  --ant-font-size-lg: 16px;
  --ant-font-size-sm: 12px;
  --ant-height-base: 32px;
  --ant-height-lg: 40px;
  --ant-height-sm: 24px;
}

/* 2. COMPONENTES BÁSICOS */

/* Botones */
.ant-btn {
  border-radius: var(--ant-border-radius-base);
  transition: all 0.3s ease;
}

.ant-btn:hover,
.ant-btn:focus {
  opacity: 0.85;
}

.ant-btn-primary {
  background-color: var(--ant-primary-color);
  border-color: var(--ant-primary-color);
  color: #fff;
}

.ant-btn-primary:hover,
.ant-btn-primary:focus {
  background-color: var(--ant-primary-color-hover);
  border-color: var(--ant-primary-color-hover);
}

.ant-btn-primary:active {
  background-color: var(--ant-primary-color-active);
  border-color: var(--ant-primary-color-active);
}

.ant-btn-dangerous {
  color: var(--ant-error-color);
  border-color: var(--ant-error-color);
}

.ant-btn-dangerous.ant-btn-primary {
  background-color: var(--ant-error-color);
  border-color: var(--ant-error-color);
  color: #fff;
}

.ant-btn-dangerous:hover,
.ant-btn-dangerous:focus {
  color: var(--ant-error-color-hover);
  border-color: var(--ant-error-color-hover);
}

.ant-btn-dangerous.ant-btn-primary:hover,
.ant-btn-dangerous.ant-btn-primary:focus {
  background-color: var(--ant-error-color-hover);
  border-color: var(--ant-error-color-hover);
}

.ant-btn-link {
  color: var(--ant-primary-color);
}

.ant-btn-link:hover,
.ant-btn-link:focus {
  color: var(--ant-primary-color-hover);
}

/* Inputs */
.ant-input {
  border-radius: var(--ant-border-radius-base);
}

.ant-input:hover {
  border-color: var(--ant-primary-color-hover);
}

.ant-input:focus,
.ant-input-focused {
  border-color: var(--ant-primary-color);
  box-shadow: 0 0 0 2px var(--ant-primary-color-outline);
}

.ant-input-affix-wrapper:hover {
  border-color: var(--ant-primary-color-hover);
}

.ant-input-affix-wrapper:focus,
.ant-input-affix-wrapper-focused {
  border-color: var(--ant-primary-color);
  box-shadow: 0 0 0 2px var(--ant-primary-color-outline);
}

/* Selects */
.ant-select:not(.ant-select-disabled):hover .ant-select-selector {
  border-color: var(--ant-primary-color-hover);
}

.ant-select-focused:not(.ant-select-disabled) .ant-select-selector {
  border-color: var(--ant-primary-color);
  box-shadow: 0 0 0 2px var(--ant-primary-color-outline);
}

.ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
  background-color: var(--ant-primary-1);
  color: var(--ant-primary-color);
}

.ant-select-item-option-active:not(.ant-select-item-option-disabled) {
  background-color: var(--ant-primary-1);
}

/* Checkbox y Radio */
.ant-checkbox-checked .ant-checkbox-inner {
  background-color: var(--ant-primary-color);
  border-color: var(--ant-primary-color);
}

.ant-checkbox-wrapper:hover .ant-checkbox-inner,
.ant-checkbox:hover .ant-checkbox-inner {
  border-color: var(--ant-primary-color);
}

.ant-radio-checked .ant-radio-inner {
  border-color: var(--ant-primary-color);
}

.ant-radio-inner::after {
  background-color: var(--ant-primary-color);
}

.ant-radio-wrapper:hover .ant-radio,
.ant-radio:hover .ant-radio-inner {
  border-color: var(--ant-primary-color);
}

/* Switch */
.ant-switch-checked {
  background-color: var(--ant-primary-color);
}

/* 3. COMPONENTES DE NAVEGACIÓN */

/* Menu */
.ant-menu {
  color: var(--ant-text-color);
  background: var(--ant-component-bg);
}

.ant-menu-horizontal {
  border-bottom: var(--ant-border-width-base) solid var(--ant-border-color-split);
}

.ant-menu-item:hover,
.ant-menu-item-active,
.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open,
.ant-menu-submenu-active,
.ant-menu-submenu-title:hover {
  color: var(--ant-primary-color);
}

.ant-menu-item-selected {
  color: var(--ant-primary-color);
}

.ant-menu-item-selected a,
.ant-menu-item-selected a:hover {
  color: var(--ant-primary-color);
}

.ant-menu-item::after {
  border-bottom: 2px solid var(--ant-primary-color);
}

.ant-menu-submenu-vertical > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,
.ant-menu-submenu-vertical-left > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,
.ant-menu-submenu-vertical-right > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,
.ant-menu-submenu-inline > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::after,
.ant-menu-submenu-vertical > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,
.ant-menu-submenu-vertical-left > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,
.ant-menu-submenu-vertical-right > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before,
.ant-menu-submenu-inline > .ant-menu-submenu-title:hover .ant-menu-submenu-arrow::before {
  background: linear-gradient(to right, var(--ant-primary-color), var(--ant-primary-color));
}

/* Tabs */
.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn {
  color: var(--ant-primary-color);
  font-weight: 500;
}

.ant-tabs-tab:hover {
  color: var(--ant-primary-color-hover);
}

.ant-tabs-ink-bar {
  background-color: var(--ant-primary-color);
}

/* Pagination */
.ant-pagination-item:focus-visible,
.ant-pagination-item:hover {
  border-color: var(--ant-primary-color);
}

.ant-pagination-item:focus-visible a,
.ant-pagination-item:hover a {
  color: var(--ant-primary-color);
}

.ant-pagination-item-active {
  border-color: var(--ant-primary-color);
}

.ant-pagination-item-active a {
  color: var(--ant-primary-color);
}

.ant-pagination-prev:focus-visible .ant-pagination-item-link,
.ant-pagination-next:focus-visible .ant-pagination-item-link,
.ant-pagination-prev:hover .ant-pagination-item-link,
.ant-pagination-next:hover .ant-pagination-item-link {
  color: var(--ant-primary-color);
  border-color: var(--ant-primary-color);
}

/* 4. COMPONENTES DE PRESENTACIÓN */

/* Card */
.ant-card {
  border-radius: var(--ant-border-radius-base);
}

.ant-card-head {
  border-bottom: var(--ant-border-width-base) solid var(--ant-border-color-split);
}

/* Table */
.ant-table-thead > tr > th {
  background: #EEEEEE;
  font-size: 12px;
  font-weight: bold;
}

.ant-table-tbody > tr:hover > td {
  background: rgba(255, 124, 0, 0.1);
}

/* Tag */
.ant-tag-primary {
  color: var(--ant-primary-color);
  background: var(--ant-primary-1);
  border-color: var(--ant-primary-3);
}

.ant-tag-success {
  color: var(--ant-secondary-color);
  background: rgba(40, 167, 69, 0.1);
  border-color: rgba(40, 167, 69, 0.2);
}

.ant-tag-error {
  color: var(--ant-error-color);
  background: rgba(220, 53, 69, 0.1);
  border-color: rgba(220, 53, 69, 0.2);
}

.ant-tag-warning {
  color: var(--ant-warning-color);
  background: rgba(255, 193, 7, 0.1);
  border-color: rgba(255, 193, 7, 0.2);
}

.ant-tag-info {
  color: var(--ant-info-color);
  background: rgba(102, 102, 102, 0.1);
  border-color: rgba(102, 102, 102, 0.2);
}

/* Badge */
.ant-badge-status-processing {
  background-color: var(--ant-primary-color);
}

.ant-badge-status-processing::after {
  border: 1px solid var(--ant-primary-color);
}

/* 5. COMPONENTES DE FEEDBACK */

/* Alert */
.ant-alert-success {
  background-color: rgba(40, 167, 69, 0.1);
  border: 1px solid rgba(40, 167, 69, 0.2);
}

.ant-alert-info {
  background-color: rgba(102, 102, 102, 0.1);
  border: 1px solid rgba(102, 102, 102, 0.2);
}

.ant-alert-warning {
  background-color: rgba(255, 193, 7, 0.1);
  border: 1px solid rgba(255, 193, 7, 0.2);
}

.ant-alert-error {
  background-color: rgba(220, 53, 69, 0.1);
  border: 1px solid rgba(220, 53, 69, 0.2);
}

/* Modal */
.ant-modal-header {
  border-bottom: var(--ant-border-width-base) solid var(--ant-border-color-split);
}

.ant-modal-footer {
  border-top: var(--ant-border-width-base) solid var(--ant-border-color-split);
}

/* Message */
.ant-message-success .anticon {
  color: var(--ant-secondary-color);
}

.ant-message-error .anticon {
  color: var(--ant-error-color);
}

.ant-message-warning .anticon {
  color: var(--ant-warning-color);
}

.ant-message-info .anticon,
.ant-message-loading .anticon {
  color: var(--ant-primary-color);
}

/* Notification */
.ant-notification-notice-success .ant-notification-notice-icon {
  color: var(--ant-secondary-color);
}

.ant-notification-notice-info .ant-notification-notice-icon {
  color: var(--ant-primary-color);
}

.ant-notification-notice-warning .ant-notification-notice-icon {
  color: var(--ant-warning-color);
}

.ant-notification-notice-error .ant-notification-notice-icon {
  color: var(--ant-error-color);
}

/* 6. COMPONENTES DE DATOS */

/* Progress */
.ant-progress-success-bg, 
.ant-progress-bg {
  background-color: var(--ant-primary-color);
}

.ant-progress-status-success .ant-progress-bg {
  background-color: var(--ant-secondary-color);
}

.ant-progress-status-exception .ant-progress-bg {
  background-color: var(--ant-error-color);
}

/* Slider */
.ant-slider-track {
  background-color: var(--ant-primary-color);
}

.ant-slider-handle {
  border: solid 2px var(--ant-primary-color);
}

.ant-slider-handle:focus {
  border-color: var(--ant-primary-color-hover);
  box-shadow: 0 0 0 5px var(--ant-primary-color-outline);
}

.ant-slider:hover .ant-slider-track {
  background-color: var(--ant-primary-color-hover);
}

.ant-slider:hover .ant-slider-handle {
  border-color: var(--ant-primary-color-hover);
}

/* DatePicker */
.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner,
.ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,
.ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner {
  background: var(--ant-primary-color);
}

.ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner::before {
  border: 1px solid var(--ant-primary-color);
}

.ant-picker:hover, 
.ant-picker-focused {
  border-color: var(--ant-primary-color-hover);
}

.ant-picker-focused {
  border-color: var(--ant-primary-color);
  box-shadow: 0 0 0 2px var(--ant-primary-color-outline);
}

/* 7. LAYOUT Y CONTENEDOR */

/* Layout */
.ant-layout {
  background: var(--ant-layout-body-background);
}

.ant-layout-header {
  background: var(--ant-layout-header-background);
  color: var(--ant-text-color-inverse);
}

.ant-layout-footer {
  background: var(--ant-layout-body-background);
  color: var(--ant-text-color-secondary);
}

/* Divider */
.ant-divider {
  border-top-color: var(--ant-border-color-split);
}

.ant-divider-horizontal.ant-divider-with-text::before,
.ant-divider-horizontal.ant-divider-with-text::after {
  border-top-color: var(--ant-border-color-split);
}

/* 8. NAVEGACIÓN */

/* Breadcrumb */
.ant-breadcrumb a {
  color: var(--ant-text-color-secondary);
}

.ant-breadcrumb a:hover {
  color: var(--ant-primary-color-hover);
}

.ant-breadcrumb-separator {
  color: var(--ant-text-color-secondary);
}

/* Steps */
.ant-steps-item-process .ant-steps-item-icon {
  background-color: var(--ant-primary-color);
  border-color: var(--ant-primary-color);
}

.ant-steps-item-finish .ant-steps-item-icon {
  border-color: var(--ant-primary-color);
}

.ant-steps-item-finish .ant-steps-item-icon > .ant-steps-icon {
  color: var(--ant-primary-color);
}

.ant-steps-item-finish .ant-steps-item-icon .ant-steps-icon-dot {
  background: var(--ant-primary-color);
}

.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {
  background-color: var(--ant-primary-color);
}

/* 9. OTROS COMPONENTES */

/* Drawer */
.ant-drawer-title {
  color: var(--ant-text-color);
}

/* Tooltip */
.ant-tooltip-inner {
  background-color: rgba(0, 0, 0, 0.85);
}

/* Popover */
.ant-popover-inner {
  background-color: var(--ant-component-bg);
}

.ant-popover-title {
  border-bottom: 1px solid var(--ant-border-color-split);
}

/* Spin */
.ant-spin-dot-item {
  background-color: var(--ant-primary-color);
}

/* 10. MODIFICADORES DE TEMA */

/* Tema oscuro - se aplicaría cuando el body tenga la clase 'dark-theme' */
body.dark-theme {
  --ant-component-bg: #1f1f1f;
  --ant-bg-color: #141414;
  --ant-layout-body-background: #000000;
  --ant-layout-header-background: #141414;
  --ant-text-color: rgba(255, 255, 255, 0.85);
  --ant-text-color-secondary: rgba(255, 255, 255, 0.45);
  --ant-border-color-base: #434343;
  --ant-border-color-split: #303030;
}

/* Ajustes para dispositivos móviles */
@media (max-width: 576px) {
  :root {
    --ant-font-size-base: 12px;
    --ant-height-base: 28px;
  }
}

