/* ==========================================================
   ULTRONSOFT · TEMA GLOBAL
   Base visual compartida por todos los módulos autenticados.
========================================================== */

:root,
html[data-dashboard-theme="light"] {
    color-scheme: light;
    --theme-bg: #f3f6fa;
    --theme-bg-rgb: 243, 246, 250;
    --theme-surface: #ffffff;
    --theme-surface-rgb: 255, 255, 255;
    --theme-surface-soft: #f8fafd;
    --theme-surface-hover: #eef4ff;
    --theme-surface-active: #e5efff;
    --theme-border: #dde4ee;
    --theme-border-strong: #cbd5e1;
    --theme-text: #0f172a;
    --theme-text-soft: #526078;
    --theme-text-muted: #8491a5;
    --theme-primary: #1464f4;
    --theme-primary-hover: #0b53d7;
    --theme-cyan: #1464f4;
    --theme-coral: #e33434;
    --theme-amber: #efa617;
    --theme-green: #148a4b;
    --theme-blue: #1464f4;
    --theme-shadow-sm: 0 4px 14px rgba(15, 23, 42, 0.055);
    --theme-shadow: 0 12px 32px rgba(15, 23, 42, 0.075);
    --theme-shadow-lg: 0 22px 56px rgba(15, 23, 42, 0.13);
    --theme-focus: 0 0 0 3px rgba(20, 100, 244, 0.14);

    --color-background: var(--theme-bg);
    --color-surface: var(--theme-surface);
    --color-border: var(--theme-border);
    --color-text: var(--theme-text);
    --color-muted: var(--theme-text-soft);

    --ultron-background: var(--theme-bg);
    --ultron-surface: var(--theme-surface);
    --ultron-surface-secondary: var(--theme-surface-soft);
    --ultron-surface-hover: var(--theme-surface-hover);
    --ultron-border: var(--theme-border);
    --ultron-border-strong: var(--theme-border-strong);
    --ultron-text: var(--theme-text);
    --ultron-text-strong: var(--theme-text);
    --ultron-text-muted: var(--theme-text-soft);
    --ultron-text-light: var(--theme-text-muted);
    --ultron-title: var(--theme-text);
    --ultron-muted: var(--theme-text-soft);
    --ultron-primary: var(--theme-blue);
    --ultron-primary-hover: #0b53d7;
    --ultron-primary-soft: #eaf1ff;
    --ultron-primary-border: rgba(20, 100, 244, 0.25);
    --ultron-neutral: #64748b;
    --ultron-neutral-soft: rgba(100, 116, 139, 0.1);
    --ultron-input-background: var(--theme-surface);
    --ultron-input-border: var(--theme-border-strong);
    --ultron-input-border-hover: #94a3b8;
    --ultron-input-border-focus: var(--theme-cyan);
    --ultron-input-placeholder: var(--theme-text-muted);
    --ultron-table-header-background: var(--theme-surface-soft);
    --ultron-table-header-text: var(--theme-text-soft);
    --ultron-table-row-hover: var(--theme-surface-hover);
    --ultron-table-border: var(--theme-border);
}

html[data-dashboard-theme="dark"] {
    color-scheme: dark;
    --theme-bg: #061321;
    --theme-bg-rgb: 6, 19, 33;
    --theme-surface: #091725;
    --theme-surface-rgb: 9, 23, 37;
    --theme-surface-soft: #0d1d2c;
    --theme-surface-hover: #12283a;
    --theme-surface-active: #173148;
    --theme-border: #243b4e;
    --theme-border-strong: #31506a;
    --theme-text: #f3f6fa;
    --theme-text-soft: #acb7c7;
    --theme-text-muted: #758397;
    --theme-primary: #8b72ff;
    --theme-primary-hover: #a08cff;
    --theme-cyan: #18d1cf;
    --theme-coral: #ff6258;
    --theme-amber: #ffc04b;
    --theme-green: #2bd38e;
    --theme-blue: #5590ff;
    --theme-shadow-sm: 0 5px 18px rgba(0, 0, 0, 0.2);
    --theme-shadow: 0 16px 42px rgba(0, 0, 0, 0.29);
    --theme-shadow-lg: 0 28px 76px rgba(0, 0, 0, 0.48);
    --theme-focus: 0 0 0 3px rgba(24, 209, 207, 0.15);

    --ultron-primary-soft: rgba(85, 144, 255, 0.13);
    --ultron-primary-border: rgba(85, 144, 255, 0.3);
    --ultron-neutral: #9aa8ba;
    --ultron-neutral-soft: rgba(154, 168, 186, 0.12);
    --ultron-success-soft: rgba(43, 211, 142, 0.12);
    --ultron-success-border: rgba(43, 211, 142, 0.26);
    --ultron-warning-soft: rgba(255, 192, 75, 0.12);
    --ultron-warning-border: rgba(255, 192, 75, 0.27);
    --ultron-danger-soft: rgba(255, 98, 88, 0.12);
    --ultron-danger-border: rgba(255, 98, 88, 0.27);
    --ultron-info-soft: rgba(24, 209, 207, 0.12);
    --ultron-info-border: rgba(24, 209, 207, 0.27);
}

html[data-dashboard-theme="dark"] .ud-dashboard {
    --ud-bg: #050a10;
    --ud-surface: rgba(8, 16, 25, 0.94);
    --ud-surface-strong: #09121c;
    --ud-surface-soft: #0c1620;
    --ud-border: #293643;
    --ud-border-strong: #3a4857;
    --ud-text: #f4f7fb;
    --ud-muted: #a9b2c1;
    --ud-soft-text: #778292;
    --ud-grid: rgba(100, 116, 139, 0.18);
    --ud-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);
}

html,
body {
    min-height: 100%;
}

body,
.app-content,
.main-content {
    color: var(--theme-text);
    background-color: var(--theme-bg) !important;
}

.app-content {
    background-image:
        radial-gradient(circle at 10% 0%, rgba(20, 100, 244, 0.055), transparent 30rem),
        radial-gradient(circle at 96% 8%, rgba(148, 163, 184, 0.08), transparent 28rem);
    transition: color 180ms ease, background-color 180ms ease;
}

html[data-dashboard-theme="dark"] .app-content {
    background-image:
        radial-gradient(circle at 0 0, rgba(28, 120, 181, 0.12), transparent 34rem),
        radial-gradient(circle at 100% 0, rgba(24, 209, 207, 0.05), transparent 30rem),
        linear-gradient(135deg, #071827 0%, #061321 52%, #071522 100%);
    background-attachment: fixed;
}

::selection {
    color: #ffffff;
    background: var(--theme-primary);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.page-title {
    color: var(--theme-text);
}

.page-description,
.text-secondary,
.text-muted,
small.text-muted {
    color: var(--theme-text-soft) !important;
}

a {
    color: var(--theme-blue);
}

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

hr,
.dropdown-divider {
    border-color: var(--theme-border);
    opacity: 1;
}

/* Superficies */
.card,
.content-card,
.card-ultron,
.ultron-page-header,
.ultron-section-card,
.ultron-filter-card,
.ultron-kpi-card,
.orders-toolbar-card,
.orders-list-card {
    color: var(--theme-text);
    background: rgba(var(--theme-surface-rgb), 0.96);
    border-color: var(--theme-border);
    box-shadow: var(--theme-shadow-sm);
}

.card,
.content-card {
    border-radius: 16px;
}

.card-header,
.card-footer,
.ultron-section-card__header,
.ultron-filter-card__header {
    color: var(--theme-text);
    background: var(--theme-surface-soft);
    border-color: var(--theme-border);
}

.ultron-page-header {
    border-radius: 18px;
    box-shadow: var(--theme-shadow);
}

.ultron-page-header__icon,
.ultron-section-card__icon,
.ultron-filter-card__icon {
    color: #ffffff;
    background: linear-gradient(145deg, #2875f5, var(--theme-blue));
    border: 1px solid rgba(255, 255, 255, 0.15);
    box-shadow: 0 0 20px rgba(40, 108, 255, 0.18);
}

.ultron-page-header__title,
.ultron-section-card__title,
.ultron-filter-card__title,
.ultron-kpi-card__value {
    color: var(--theme-text);
}

.ultron-page-header__description,
.ultron-section-card__description,
.ultron-filter-card__description,
.ultron-kpi-card__title,
.ultron-kpi-card__description {
    color: var(--theme-text-soft);
}

.ultron-kpi-card {
    overflow: hidden;
    border-radius: 17px;
    box-shadow: var(--theme-shadow);
}

/* Formularios */
.form-label,
.form-check-label,
.col-form-label {
    color: var(--theme-text-soft);
}

.form-control,
.form-select,
.input-group-text,
.form-control:disabled,
.form-select:disabled,
.form-control[readonly] {
    color: var(--theme-text);
    background-color: var(--theme-surface-soft);
    border-color: var(--theme-border-strong);
}

.form-control,
.form-select {
    min-height: 44px;
    border-radius: 10px;
}

.input-group > .form-control,
.input-group > .form-select,
.input-group > .input-group-text {
    border-radius: 0;
}

.input-group > :first-child {
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
}

.input-group > :last-child {
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
}

.form-control::placeholder {
    color: var(--theme-text-muted);
    opacity: 1;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    color: var(--theme-text);
    background-color: var(--theme-surface);
    border-color: var(--theme-cyan);
    box-shadow: var(--theme-focus);
}

.form-check-input {
    background-color: var(--theme-surface-soft);
    border-color: var(--theme-border-strong);
}

.form-check-input:checked {
    background-color: var(--theme-cyan);
    border-color: var(--theme-cyan);
}

.form-floating > label {
    color: var(--theme-text-soft);
}

.form-text {
    color: var(--theme-text-muted);
}

/* Botones */
.btn {
    border-radius: 10px;
    font-weight: 650;
    transition:
        color 150ms ease,
        background-color 150ms ease,
        border-color 150ms ease,
        box-shadow 150ms ease,
        transform 150ms ease;
}

.btn:hover:not(:disabled) {
    transform: translateY(-1px);
}

.btn-primary,
.btn-ultron-primary {
    color: #ffffff;
    background: linear-gradient(135deg, #2875f5, #1464f4);
    border-color: transparent;
    box-shadow: 0 7px 20px rgba(64, 87, 255, 0.22);
}

.btn-primary:hover,
.btn-ultron-primary:hover {
    color: #ffffff;
    background: linear-gradient(135deg, #1c67e9, #0b53d7);
    border-color: transparent;
}

.btn-success {
    color: #ffffff;
    background: linear-gradient(135deg, #169653, #148a4b);
    border-color: transparent;
}

.btn-danger {
    color: #ffffff;
    background: linear-gradient(135deg, #e94646, #e33434);
    border-color: transparent;
}

.btn-light,
.btn-secondary,
.btn-outline-secondary {
    color: var(--theme-text);
    background: var(--theme-surface-soft);
    border-color: var(--theme-border-strong);
}

.btn-light:hover,
.btn-secondary:hover,
.btn-outline-secondary:hover {
    color: var(--theme-cyan);
    background: var(--theme-surface-hover);
    border-color: var(--theme-cyan);
}

.btn-outline-primary {
    color: var(--theme-blue);
    border-color: rgba(40, 108, 255, 0.48);
}

.btn-outline-primary:hover {
    color: #ffffff;
    background: var(--theme-blue);
    border-color: var(--theme-blue);
}

.btn-outline-info {
    color: var(--theme-cyan);
    border-color: rgba(11, 191, 190, 0.48);
}

.btn-outline-warning {
    color: var(--theme-amber);
    border-color: rgba(239, 166, 23, 0.5);
}

.btn-outline-danger {
    color: var(--theme-coral);
    border-color: rgba(255, 79, 69, 0.5);
}

.btn-outline-success {
    color: var(--theme-green);
    border-color: rgba(21, 173, 117, 0.5);
}

/* Tablas: el color de hover se fija también en las celdas para evitar
   el destello claro de Bootstrap en modo oscuro. */
.table {
    --bs-table-color: var(--theme-text);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--theme-border);
    --bs-table-striped-color: var(--theme-text);
    --bs-table-striped-bg: rgba(var(--theme-bg-rgb), 0.35);
    --bs-table-hover-color: var(--theme-text);
    --bs-table-hover-bg: var(--theme-surface-hover);
    color: var(--theme-text);
    border-color: var(--theme-border);
}

.table > :not(caption) > * > * {
    color: var(--theme-text);
    background-color: transparent;
    border-bottom-color: var(--theme-border);
    box-shadow: none;
}

.table > thead > tr > th {
    color: var(--theme-text-soft);
    background-color: var(--theme-surface-soft);
    border-color: var(--theme-border);
}

.table-hover > tbody > tr:hover > *,
.orders-desktop-table .table-hover > tbody > tr:hover > * {
    --bs-table-bg-state: var(--theme-surface-hover);
    --bs-table-color-state: var(--theme-text);
    color: var(--theme-text) !important;
    background-color: var(--theme-surface-hover) !important;
    box-shadow: none !important;
}

html[data-dashboard-theme="dark"] .table-hover > tbody > tr:hover,
html[data-dashboard-theme="dark"] .table-hover > tbody > tr:hover > * {
    color: var(--theme-text) !important;
    background: #132131 !important;
}

.table-responsive {
    border-radius: 12px;
}

/* Elementos flotantes */
.dropdown-menu,
.user-dropdown,
.order-actions-menu,
.modal-content,
.offcanvas,
.popover {
    color: var(--theme-text);
    background: var(--theme-surface);
    border-color: var(--theme-border-strong);
    box-shadow: var(--theme-shadow-lg);
}

.dropdown-menu {
    --bs-dropdown-link-color: var(--theme-text-soft);
    --bs-dropdown-link-hover-color: var(--theme-cyan);
    --bs-dropdown-link-hover-bg: var(--theme-surface-hover);
    --bs-dropdown-link-active-color: #ffffff;
    --bs-dropdown-link-active-bg: var(--theme-primary);
    border-radius: 13px;
}

.dropdown-item {
    color: var(--theme-text-soft);
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: var(--theme-cyan);
    background: var(--theme-surface-hover);
}

.modal-header,
.modal-footer,
.offcanvas-header {
    color: var(--theme-text);
    background: var(--theme-surface);
    border-color: var(--theme-border);
}

.modal-title,
.modal-body {
    color: var(--theme-text);
}

html[data-dashboard-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(190%);
}

.modal-backdrop.show {
    opacity: 0.48;
    background: rgba(2, 8, 23, .72);
    backdrop-filter: blur(3px);
}

html[data-dashboard-theme="dark"]
    body
    > .modal-backdrop.show {
    background-color: #02060a;
    opacity: 0.36;
}

.list-group {
    --bs-list-group-color: var(--theme-text);
    --bs-list-group-bg: var(--theme-surface);
    --bs-list-group-border-color: var(--theme-border);
    --bs-list-group-action-hover-color: var(--theme-text);
    --bs-list-group-action-hover-bg: var(--theme-surface-hover);
}

.accordion {
    --bs-accordion-color: var(--theme-text);
    --bs-accordion-bg: var(--theme-surface);
    --bs-accordion-border-color: var(--theme-border);
    --bs-accordion-btn-color: var(--theme-text);
    --bs-accordion-btn-bg: var(--theme-surface);
    --bs-accordion-active-color: var(--theme-cyan);
    --bs-accordion-active-bg: var(--theme-surface-soft);
}

.nav-tabs {
    --bs-nav-tabs-border-color: var(--theme-border);
    --bs-nav-tabs-link-hover-border-color: var(--theme-border);
    --bs-nav-tabs-link-active-color: var(--theme-text);
    --bs-nav-tabs-link-active-bg: var(--theme-surface);
    --bs-nav-tabs-link-active-border-color: var(--theme-border);
}

.pagination {
    --bs-pagination-color: var(--theme-text-soft);
    --bs-pagination-bg: var(--theme-surface-soft);
    --bs-pagination-border-color: var(--theme-border);
    --bs-pagination-hover-color: var(--theme-cyan);
    --bs-pagination-hover-bg: var(--theme-surface-hover);
    --bs-pagination-hover-border-color: var(--theme-cyan);
    --bs-pagination-active-color: #ffffff;
    --bs-pagination-active-bg: var(--theme-primary);
    --bs-pagination-active-border-color: var(--theme-primary);
    --bs-pagination-disabled-color: var(--theme-text-muted);
    --bs-pagination-disabled-bg: var(--theme-surface-soft);
    --bs-pagination-disabled-border-color: var(--theme-border);
}

/* Alertas y estados */
.alert {
    color: var(--theme-text);
    border-radius: 12px;
}

.alert-success {
    color: var(--theme-green);
    background: rgba(21, 173, 117, 0.1);
    border-color: rgba(21, 173, 117, 0.25);
}

.alert-danger {
    color: var(--theme-coral);
    background: rgba(255, 79, 69, 0.1);
    border-color: rgba(255, 79, 69, 0.25);
}

.alert-warning {
    color: var(--theme-amber);
    background: rgba(239, 166, 23, 0.1);
    border-color: rgba(239, 166, 23, 0.25);
}

.alert-info {
    color: var(--theme-cyan);
    background: rgba(11, 191, 190, 0.1);
    border-color: rgba(11, 191, 190, 0.25);
}

.badge.bg-light {
    color: var(--theme-text) !important;
    background: var(--theme-surface-soft) !important;
    border-color: var(--theme-border) !important;
}

html[data-dashboard-theme="dark"] .ultron-badge--neutral {
    color: #aeb9c9;
    background: rgba(128, 145, 170, 0.12);
    border-color: rgba(128, 145, 170, 0.28);
}

/* Menú de usuario y control global */
.global-theme-option {
    display: flex;
    align-items: center;
    width: 100%;
}

.global-theme-option > i {
    color: var(--theme-cyan);
}

.global-theme-option [data-global-theme-label] {
    flex: 1 1 auto;
    text-align: left;
}

.global-theme-switch {
    position: relative;
    display: inline-flex;
    width: 36px;
    height: 20px;
    flex: 0 0 36px;
    padding: 2px;
    background: var(--theme-border-strong);
    border-radius: 999px;
    transition: background-color 160ms ease;
}

.global-theme-switch > span {
    display: block;
    width: 16px;
    height: 16px;
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.22);
    transition: transform 160ms ease;
}

html[data-dashboard-theme="dark"] .global-theme-switch {
    background: linear-gradient(135deg, var(--theme-primary), var(--theme-cyan));
}

html[data-dashboard-theme="dark"] .global-theme-switch > span {
    transform: translateX(16px);
}

/* Selectores de empresa y sucursal */
/* Orden de Servicio: formulario, selectores y resumen */
.os-order-summary,
.os-products-table-wrapper,
.os-related-documents,
.os-step-placeholder {
    color: var(--theme-text);
    background: var(--theme-surface);
    border-color: var(--theme-border);
    box-shadow: var(--theme-shadow-sm);
}

.os-order-summary-header,
.os-products-section > .ultron-section-card__header {
    color: var(--theme-text);
    background: var(--theme-surface-soft);
    border-color: var(--theme-border);
}

.os-order-summary strong,
.os-summary-total {
    color: var(--theme-text);
}

.os-order-summary span,
.os-order-summary small,
.os-step-placeholder p {
    color: var(--theme-text-soft);
}

.os-delivery-mode,
.os-summary-message {
    color: var(--theme-text);
    background: var(--theme-surface-soft);
    border-color: var(--theme-border-strong);
}

.js-seleccionar-producto {
    color: var(--theme-text);
    background: transparent;
    border-color: var(--theme-border);
}

.js-seleccionar-producto:hover {
    color: var(--theme-text);
    background: var(--theme-surface-hover);
}

.os-products-table {
    color: var(--theme-text);
    background: transparent;
    border-color: var(--theme-border);
}

html[data-dashboard-theme="dark"] #orden-servicio-form {
    --os-primary: var(--theme-blue);
    --os-primary-soft: rgba(85, 144, 255, 0.13);
    --os-navy: var(--theme-text);
    --os-text: var(--theme-text);
    --os-muted: var(--theme-text-soft);
    --os-placeholder: var(--theme-text-muted);
    --os-border: var(--theme-border);
    --os-border-hover: var(--theme-border-strong);
    --os-background: var(--theme-surface-soft);
    --os-danger: var(--theme-coral);
    --os-success: var(--theme-green);
    --os-shadow: var(--theme-shadow-sm);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-form-mode-badge.is-view,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-form-mode-badge.is-edit {
    color: var(--theme-blue);
    background: rgba(85, 144, 255, 0.13);
    border-color: rgba(85, 144, 255, 0.3);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-payment-trigger {
    color: #bfdbfe;
    background: rgba(30, 64, 175, 0.16);
    border-color: rgba(96, 165, 250, 0.38);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-payment-trigger.is-empty,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-payment-trigger.is-complete {
    color: #a7f3d0;
    background: rgba(5, 150, 105, 0.16);
    border-color: rgba(52, 211, 153, 0.46);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-payment-trigger.is-unselected {
    color: var(--theme-text-muted);
    background: rgba(51, 65, 85, 0.48);
    border-color: rgba(100, 116, 139, 0.32);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-payment-trigger.is-partial {
    color: #fde68a;
    background: rgba(161, 98, 7, 0.14);
    border-color: rgba(251, 191, 36, 0.38);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-payment-trigger-error,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .payment-pending-balance.is-error {
    color: #fca5a5;
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-payment-condition-panel,
html[data-dashboard-theme="dark"]
    .payment-pending-overview {
    background: rgba(15, 23, 42, 0.62);
    border-color: rgba(148, 163, 184, 0.18);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-payment-condition-heading b,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .payment-pending-balance {
    color: #a7f3d0;
}

html[data-dashboard-theme="dark"]
    .payment-pending-overview
    > strong {
    color: #cbd5e1;
}

html[data-dashboard-theme="dark"]
    .payment-pending-use-total {
    color: #5eead4;
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-products-currency-panel
    .ultron-field__icon,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .ultron-unit-field__icon {
    color: #ffffff;
    background: #102a46;
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-product-editor-total {
    background: linear-gradient(135deg, #2563eb, #0891b2);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-wizard
    .os-summary-next,
html[data-dashboard-theme="dark"]
    #orden-servicio-wizard
    .os-summary-edit {
    background: linear-gradient(
        135deg,
        #6d4aff 0%,
        #2563eb 52%,
        #0891b2 100%
    );
    border-color: rgba(34, 211, 238, 0.5);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-wizard
    .os-summary-generate {
    background: linear-gradient(
        135deg,
        #047857 0%,
        #059669 52%,
        #0d9488 100%
    );
    border-color: rgba(45, 212, 191, 0.48);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-products-table
    .form-control,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-products-table
    .form-select {
    color: var(--theme-text);
    background-color: var(--theme-surface-soft);
    border-color: var(--theme-border-strong);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .form-control::placeholder {
    color: var(--theme-text-muted);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-products-table
    input[readonly] {
    color: var(--theme-text-muted);
    background: rgba(255, 255, 255, 0.025);
    border-color: var(--theme-border);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .form-select
    option {
    color: var(--theme-text);
    background: var(--theme-surface);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-related-documents-empty {
    background: linear-gradient(
        180deg,
        rgba(14, 24, 36, 0.88),
        rgba(10, 18, 28, 0.98)
    );
    border-color: var(--theme-border-strong);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-related-documents-icon,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-products-empty
    > span {
    color: var(--theme-blue);
    background: rgba(85, 144, 255, 0.13);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-section-origin
    .ultron-section-card__icon {
    color: var(--theme-blue);
    background: rgba(85, 144, 255, 0.13);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-section-destination
    .ultron-section-card__icon,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-section-transfer
    .ultron-section-card__icon {
    color: var(--theme-green);
    background: rgba(43, 211, 142, 0.12);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-section-delivery-key
    .ultron-section-card__icon {
    color: #b9a7ff;
    background: rgba(139, 114, 255, 0.13);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-related-document-item,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-related-document-draft-item,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-related-documents-draft-empty,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-products-empty {
    color: var(--theme-text);
    background: var(--theme-surface-soft);
    border-color: var(--theme-border);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-products-table
    thead
    th {
    color: var(--theme-text-soft);
    background: var(--theme-surface-soft);
    border-color: var(--theme-border);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-products-table
    tbody
    td {
    color: var(--theme-text);
    background: var(--theme-surface);
    border-color: var(--theme-border);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-products-table
    tbody
    .fila-detalle {
    background: linear-gradient(
        135deg,
        rgba(14, 24, 36, 0.98),
        rgba(9, 18, 28, 0.98)
    );
    border-color: var(--theme-border);
    box-shadow:
        0 10px 28px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(85, 144, 255, 0.08);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-products-table
    tbody
    .fila-detalle
    > td {
    background: transparent;
    border-color: transparent;
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-product-quantity {
    border-color: var(--theme-border-strong);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-product-quantity
    button {
    color: var(--theme-cyan);
    background: rgba(24, 209, 207, 0.12);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-product-quantity
    button:hover:not(:disabled) {
    color: #031416;
    background: var(--theme-cyan);
    box-shadow: 0 0 14px rgba(24, 209, 207, 0.24);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-product-total-price-field
    .detalle-total {
    color: var(--theme-cyan);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-product-editor-field
    .input-group-text {
    color: var(--theme-text-soft);
    background: var(--theme-surface-soft);
    border-color: var(--theme-border-strong);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-product-editor-quantity {
    background: var(--theme-surface);
    border-color: var(--theme-border-strong);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-product-editor-quantity
    button {
    color: var(--theme-cyan);
    background: rgba(24, 209, 207, 0.12);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-product-editor-quantity
    input {
    color: var(--theme-text);
    border-color: var(--theme-border-strong);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-delivery-mode {
    background: var(--theme-surface-soft);
    border-color: var(--theme-border);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-delivery-mode-heading
    > span {
    color: var(--theme-blue);
    background: rgba(85, 144, 255, 0.14);
    border: 1px solid rgba(85, 144, 255, 0.24);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-delivery-mode-options
    > label {
    background: var(--theme-surface);
    border-color: var(--theme-border-strong);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-delivery-mode-options
    > label:has(input:checked) {
    background: rgba(43, 211, 142, 0.1);
    border-color: rgba(43, 211, 142, 0.38);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-delivery-mode-icon.is-pickup {
    color: var(--theme-blue);
    background: rgba(85, 144, 255, 0.13);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-delivery-mode-icon.is-delivery {
    color: var(--theme-green);
    background: rgba(43, 211, 142, 0.12);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-delivery-key-note {
    color: #c4b5fd;
    background: rgba(139, 114, 255, 0.12);
    border-color: rgba(139, 114, 255, 0.3);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-delivery-key-match.is-match {
    color: #86efac;
    background: rgba(43, 211, 142, 0.1);
    border-color: rgba(43, 211, 142, 0.35);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-delivery-key-match.is-mismatch {
    color: #fca5a5;
    background: rgba(255, 98, 88, 0.1);
    border-color: rgba(255, 98, 88, 0.35);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-summary-status {
    background: var(--theme-surface-soft);
    border-color: var(--theme-border);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-summary-status
    strong {
    color: var(--theme-amber);
    background: rgba(255, 192, 75, 0.13);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-summary-message {
    color: var(--theme-cyan);
    background: rgba(24, 209, 207, 0.09);
    border: 1px solid rgba(24, 209, 207, 0.2);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-wizard
    .os-summary-back {
    color: #dbeafe;
    background: linear-gradient(
        145deg,
        rgba(18, 33, 52, 0.96),
        rgba(10, 24, 42, 0.98)
    );
    border-color: rgba(85, 144, 255, 0.38);
    box-shadow:
        0 9px 22px rgba(0, 0, 0, 0.24),
        0 0 18px rgba(34, 211, 238, 0.06);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-wizard
    .os-summary-back
    > i {
    color: var(--theme-cyan);
    background: rgba(24, 209, 207, 0.1);
    border-color: rgba(24, 209, 207, 0.22);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-wizard
    .os-summary-back:not(:disabled):hover {
    color: #ffffff;
    background: linear-gradient(
        145deg,
        rgba(24, 45, 70, 0.98),
        rgba(12, 34, 56, 0.98)
    );
    border-color: rgba(24, 209, 207, 0.5);
    box-shadow:
        0 12px 27px rgba(0, 0, 0, 0.3),
        0 0 22px rgba(24, 209, 207, 0.12);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-wizard
    .os-summary-back:disabled,
html[data-dashboard-theme="dark"]
    #orden-servicio-wizard
    .os-summary-next:disabled {
    color: var(--theme-text-muted);
    background: rgba(255, 255, 255, 0.025);
    border-color: var(--theme-border);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-validation-toast {
    color: #fecaca;
    background: rgba(38, 13, 18, 0.98);
    border-color: rgba(255, 98, 88, 0.42);
    border-left-color: var(--theme-coral);
    box-shadow: var(--theme-shadow-lg);
}

html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-validation-toast-copy
    strong,
html[data-dashboard-theme="dark"]
    #orden-servicio-form
    .os-validation-toast-copy
    p {
    color: #fecaca;
}

/* Lista de Órdenes de Servicio */
.ultron-list-standard {
    --osl-bg: var(--theme-bg);
    --osl-surface: rgba(var(--theme-surface-rgb), 0.96);
    --osl-surface-strong: var(--theme-surface);
    --osl-surface-soft: var(--theme-surface-soft);
    --osl-surface-hover: var(--theme-surface-hover);
    --osl-border: var(--theme-border);
    --osl-border-strong: var(--theme-border-strong);
    --osl-text: var(--theme-text);
    --osl-text-soft: var(--theme-text-soft);
    --osl-muted: var(--theme-text-muted);
    --osl-violet: var(--theme-primary);
    --osl-cyan: var(--theme-cyan);
    --osl-coral: var(--theme-coral);
    --osl-amber: var(--theme-amber);
    --osl-green: var(--theme-green);
    --osl-blue: var(--theme-blue);
    --osl-shadow: var(--theme-shadow);
    color: var(--theme-text);
    background-color: var(--theme-bg);
}

html[data-dashboard-theme="dark"] .ultron-list-standard {
    background:
        radial-gradient(circle at 0 0, rgba(28, 120, 181, 0.09), transparent 32rem),
        radial-gradient(circle at 100% 0, rgba(24, 209, 207, 0.04), transparent 28rem),
        transparent;
}

.ultron-list-standard .os-table-date strong,
.ultron-list-standard .os-table-route-party strong,
.ultron-list-standard .os-load-title,
.ultron-list-standard .os-table-cargo,
.ultron-list-standard .os-table-weight,
.ultron-list-standard .os-table-value {
    color: var(--theme-text);
}

.ultron-list-standard .os-table-date span,
.ultron-list-standard .os-table-route-party span,
.ultron-list-standard .os-load-description {
    color: var(--theme-text-soft);
}

.ultron-list-standard .os-table-action {
    color: var(--theme-text-soft);
    background: var(--theme-surface-soft);
    border-color: var(--theme-border);
}

.ultron-list-standard .os-table-action:hover {
    color: var(--theme-cyan);
    background: rgba(11, 191, 190, 0.1);
    border-color: rgba(11, 191, 190, 0.38);
}

/* Detalles heredados de módulos antiguos */
dl, dt, dd,
.lead {
    color: var(--theme-text);
}

.border,
.border-top,
.border-end,
.border-bottom,
.border-start {
    border-color: var(--theme-border) !important;
}

.bg-white {
    background-color: var(--theme-surface) !important;
}

.bg-light {
    background-color: var(--theme-surface-soft) !important;
}

/* Acceso */
.ultron-login-page {
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% 10%, rgba(111, 82, 255, 0.16), transparent 28rem),
        radial-gradient(circle at 88% 90%, rgba(11, 191, 190, 0.13), transparent 27rem),
        var(--theme-bg) !important;
}

.ultron-login-shell {
    display: grid;
    min-height: 100vh;
    align-items: center;
}

.ultron-login-card {
    overflow: hidden;
    border: 1px solid var(--theme-border) !important;
    border-radius: 20px;
    box-shadow: var(--theme-shadow-lg);
    backdrop-filter: blur(18px);
}

.ultron-login-card::before {
    content: "";
    display: block;
    height: 3px;
    background: linear-gradient(90deg, var(--theme-primary), var(--theme-cyan));
}

.ultron-login-logo {
    display: inline-flex;
    width: 58px;
    height: 58px;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    color: #ffffff;
    background: linear-gradient(145deg, var(--theme-primary), var(--theme-blue));
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 17px;
    box-shadow: 0 0 25px rgba(40, 108, 255, 0.28);
    font-size: 1.45rem;
}

.ultron-login-submit {
    min-height: 46px;
}

@media (max-width: 767.98px) {
    .app-content > .container-fluid {
        padding-inline: 12px;
    }

    .ultron-page-header {
        border-radius: 15px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
