/*
 * CORTANA-FEATURE:light-list-style-r87
 * CORTANA-FEATURE:dark-background-light-text-r92
 * CORTANA-FEATURE:row-click-navigation-r100
 */

/* =============================================================
   Cortana Operaciones v1.00-r64
   Tema claro global basado en la etapa visual r25.
   Se carga después de app.css y se vuelve a cargar al final de la
   página para prevalecer sobre estilos locales heredados.
   ============================================================= */

:root {
    --bg: #eef5fc;
    --bg2: #f8fbff;
    --panel: #ffffff;
    --text: #172033;
    --muted: #5f7082;
    --line: #cbdbe9;
    --primary-soft: rgba(var(--primary-rgb), .10);
    --danger: #b42318;
    --ok: #167245;
    --shadow: 0 14px 36px rgba(15, 44, 75, .10);
    --shadow-soft: 0 5px 16px rgba(15, 44, 75, .07);
    --r25-surface: #ffffff;
    --r25-surface-soft: #f7fbff;
    --r25-surface-alt: #eef5fb;
    --r25-text: #172033;
    --r25-heading: #123a5b;
    --r25-muted: #52677b;
    --r25-line: #c7d8e7;
    --r25-input: #ffffff;
}

html {
    background: #eef5fc !important;
    color-scheme: light;
}

body.theme-r25-global {
    background:
        radial-gradient(circle at top left, rgba(var(--primary-rgb), .12), transparent 34%),
        linear-gradient(180deg, #eef5fc 0%, #f8fbff 54%, #ffffff 100%) !important;
    color: var(--r25-text) !important;
}

body.theme-r25-global,
body.theme-r25-global button,
body.theme-r25-global input,
body.theme-r25-global select,
body.theme-r25-global textarea {
    color-scheme: light;
}

body.theme-r25-global a:not(.btn):not(.nav-btn) {
    color: #075f98;
}
body.theme-r25-global a:not(.btn):not(.nav-btn):hover {
    color: var(--primary-dark);
}

/* Cabecera clara r25 */
body.theme-r25-global .topbar {
    background: rgba(255,255,255,.96) !important;
    border-top: 5px solid var(--primary) !important;
    border-bottom: 1px solid rgba(var(--primary-rgb), .16) !important;
    box-shadow: 0 4px 18px rgba(15,44,75,.08) !important;
    backdrop-filter: blur(10px);
}
body.theme-r25-global .topbar-title strong,
body.theme-r25-global .topbar .topbar-left strong,
body.theme-r25-global .topbar .topbar-left span,
body.theme-r25-global .topbar .topbar-left small {
    color: var(--r25-heading) !important;
    text-shadow: none !important;
}
body.theme-r25-global .topbar-title span {
    color: var(--r25-muted) !important;
}
body.theme-r25-global .user-pill,
body.theme-r25-global .user-summary {
    background: #ffffff !important;
    border-color: var(--r25-line) !important;
    color: var(--r25-text) !important;
    box-shadow: var(--shadow-soft) !important;
}
body.theme-r25-global .user-welcome,
body.theme-r25-global .user-welcome strong,
body.theme-r25-global .user-pill span {
    color: var(--r25-text) !important;
    text-shadow: none !important;
}
body.theme-r25-global .user-pill small,
body.theme-r25-global .lang-pill,
body.theme-r25-global .role-chip,
body.theme-r25-global .topbar .stat-chip,
body.theme-r25-global .topbar .badge {
    background: rgba(var(--primary-rgb), .10) !important;
    border-color: rgba(var(--primary-rgb), .18) !important;
    color: var(--primary-dark) !important;
    text-shadow: none !important;
}
body.theme-r25-global .topbar .license-pill-header,
body.theme-r25-global .topbar .company-pill-header,
body.theme-r25-global .topbar .license-status-header,
body.theme-r25-global .platform-context-company {
    background: #ffffff !important;
    border: 1px solid rgba(var(--primary-rgb), .20) !important;
    color: var(--r25-heading) !important;
    box-shadow: var(--shadow-soft) !important;
    text-shadow: none !important;
}
body.theme-r25-global .topbar .license-pill-header *,
body.theme-r25-global .topbar .company-pill-header *,
body.theme-r25-global .topbar .license-status-header *,
body.theme-r25-global .platform-context-company * {
    color: inherit !important;
    text-shadow: none !important;
}

/* Superficies generales */
body.theme-r25-global :is(
    .panel,.login-box,.card,.stat-card,.table-wrap,.modal-content,
    .box,.erp-card,.erp-form,.erp-table,.print-header,
    .portal-card,.hogar-card,.cal-day,.cal-agenda,.cal-board,.cal-filter-panel,
    .ai-map-card,.ai-stat,.ai-route-card,.bi-card,.bi-kpi,.bi-table,.bi-widget-row,
    .client-document-row,.continuity-card,.crm-card,.crm-kpi,.work-card,.work-kpi,
    .act-card,.act-kpi,.fc-panel,.fc-kpi,.obj-panel,.obj-kpi,
    .crm-detail-panel,.crm-side-panel,.crm-funnel-shell,
    .project-overview-card,.project-column,.project-board-card,.project-gantt-shell,
    .project-doc-list li,.project-orphans,.viewer-item,.viewer-empty,
    .fac-flow,.fac-flow-stage,.fac-invoice-card,
    .tv-visual,.tv-kpi,.tv-box,.tv-item,
    .production-card,.production-kpi,.prod-card,.prod-kpi,
    .order-card,.order-section,.detail-card,.summary-card,
    .menu-hero-switch,.menu-subgroup-panel
) {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
    border-color: rgba(var(--primary-rgb), .16) !important;
    color: var(--r25-text) !important;
    box-shadow: var(--shadow-soft) !important;
}
body.theme-r25-global :is(
    .panel,.login-box,.card,.stat-card,.table-wrap,.modal-content,
    .box,.erp-card,.erp-form,.erp-table,.print-header,
    .portal-card,.hogar-card,.cal-day,.cal-agenda,.cal-board,.cal-filter-panel,
    .ai-map-card,.ai-stat,.ai-route-card,.bi-card,.bi-kpi,.bi-table,.bi-widget-row,
    .client-document-row,.continuity-card,.crm-card,.crm-kpi,.work-card,.work-kpi,
    .act-card,.act-kpi,.fc-panel,.fc-kpi,.obj-panel,.obj-kpi,
    .crm-detail-panel,.crm-side-panel,.crm-funnel-shell,
    .project-overview-card,.project-column,.project-board-card,.project-gantt-shell,
    .project-doc-list li,.project-orphans,.viewer-item,.viewer-empty,
    .fac-flow,.fac-flow-stage,.fac-invoice-card,
    .tv-visual,.tv-kpi,.tv-box,.tv-item,
    .production-card,.production-kpi,.prod-card,.prod-kpi,
    .order-card,.order-section,.detail-card,.summary-card
) :is(h1,h2,h3,h4,h5,h6,strong,b,legend,.section-title) {
    color: var(--r25-heading) !important;
    text-shadow: none !important;
}
body.theme-r25-global :is(.muted,.help,.hint,.description,.erp-muted,.small-muted,.subtle,.secondary-text) {
    color: var(--r25-muted) !important;
}
body.theme-r25-global hr {
    border-color: rgba(var(--primary-rgb), .18) !important;
}

/* Formularios */
body.theme-r25-global label,
body.theme-r25-global .field-label,
body.theme-r25-global .form-label {
    color: #24364b !important;
    text-shadow: none !important;
}
body.theme-r25-global input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body.theme-r25-global select,
body.theme-r25-global textarea,
body.theme-r25-global .input-small,
body.theme-r25-global .input-money,
body.theme-r25-global .select-small {
    background: #ffffff !important;
    color: var(--r25-text) !important;
    border-color: var(--r25-line) !important;
    -webkit-text-fill-color: var(--r25-text) !important;
    box-shadow: none;
}
body.theme-r25-global select option {
    background: #ffffff !important;
    color: var(--r25-text) !important;
}
body.theme-r25-global input::placeholder,
body.theme-r25-global textarea::placeholder {
    color: #697b8d !important;
    opacity: 1 !important;
}
body.theme-r25-global input:focus,
body.theme-r25-global select:focus,
body.theme-r25-global textarea:focus {
    background: #ffffff !important;
    border-color: #60a5fa !important;
    box-shadow: 0 0 0 4px rgba(96,165,250,.16) !important;
}
body.theme-r25-global input:disabled,
body.theme-r25-global select:disabled,
body.theme-r25-global textarea:disabled,
body.theme-r25-global input[readonly],
body.theme-r25-global textarea[readonly] {
    background: #edf2f6 !important;
    color: #52677b !important;
    -webkit-text-fill-color: #52677b !important;
    opacity: 1 !important;
}
body.theme-r25-global input:-webkit-autofill,
body.theme-r25-global input:-webkit-autofill:hover,
body.theme-r25-global input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--r25-text) !important;
    -webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
}
body.theme-r25-global input[type="checkbox"],
body.theme-r25-global input[type="radio"] {
    accent-color: var(--primary);
}

/* Tablas */
body.theme-r25-global .table-wrap,
body.theme-r25-global .erp-table {
    background: #ffffff !important;
    border-color: rgba(var(--primary-rgb), .16) !important;
}
body.theme-r25-global table {
    color: var(--r25-text) !important;
    background: transparent !important;
}
body.theme-r25-global thead th,
body.theme-r25-global table th,
body.theme-r25-global .erp-table th,
body.theme-r25-global .fc-table th,
body.theme-r25-global .obj-table th,
body.theme-r25-global .work-table th {
    background: linear-gradient(180deg,#f8fbff 0%,#eef6ff 100%) !important;
    color: #365a78 !important;
    border-color: var(--r25-line) !important;
    text-shadow: none !important;
}
body.theme-r25-global table td,
body.theme-r25-global .erp-table td {
    color: #24364b !important;
    border-color: #d8e4f0 !important;
    text-shadow: none !important;
}
body.theme-r25-global tbody tr:not([style*="background"]):nth-child(odd) {
    background: #ffffff;
}
body.theme-r25-global tbody tr:not([style*="background"]):nth-child(even) {
    background: #edf6ff;
}
body.theme-r25-global tbody tr:not([style*="background"]):hover {
    background: #dfefff !important;
}
body.theme-r25-global table td a:not(.btn) {
    color: #075f98 !important;
    font-weight: 750;
}
body.theme-r25-global table small {
    color: var(--r25-muted) !important;
}

/* Botones y navegación */
body.theme-r25-global :is(.btn,.nav-btn,button.btn,a.btn) {
    background: linear-gradient(180deg, var(--primary), #0878b3) !important;
    border: 1px solid rgba(var(--primary-rgb), .24) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-shadow: none !important;
    box-shadow: 0 8px 18px rgba(var(--primary-rgb), .16) !important;
}
body.theme-r25-global :is(.btn,.nav-btn,button.btn,a.btn):hover {
    background: linear-gradient(180deg, #149ed9, var(--primary-dark)) !important;
    color: #ffffff !important;
}
body.theme-r25-global :is(.secondary,.nav-back) {
    background: linear-gradient(180deg,#5b6f82,#3f5264) !important;
    border-color: #475569 !important;
}
body.theme-r25-global :is(.danger,.nav-logout,.cal-danger) {
    background: linear-gradient(180deg,#a63c23,#7c2d12) !important;
    border-color: #7c2d12 !important;
}
body.theme-r25-global :is(.ok,.success-btn) {
    background: linear-gradient(180deg,#16883f,#166534) !important;
    border-color: #166534 !important;
}

/* Pestañas, chips y estados */
body.theme-r25-global :is(.tabs,.tab-list,.nav-tabs) {
    border-color: var(--r25-line) !important;
}
body.theme-r25-global :is(.tab,.tab-link,.nav-tab) {
    background: #f3f8fd !important;
    border-color: var(--r25-line) !important;
    color: #365a78 !important;
}
body.theme-r25-global :is(.tab,.tab-link,.nav-tab).active,
body.theme-r25-global :is(.tab,.tab-link,.nav-tab)[aria-selected="true"] {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
    color: #ffffff !important;
}
body.theme-r25-global :is(.badge,.stat-chip,.erp-badge,.pill,.chip,.status-pill,.menu-mode-pill) {
    background: rgba(var(--primary-rgb), .10) !important;
    border-color: rgba(var(--primary-rgb), .18) !important;
    color: var(--primary-dark) !important;
    text-shadow: none !important;
}

/* Mensajes */
body.theme-r25-global :is(.alert,.notice,.message,.flash) {
    background: #eef6ff !important;
    color: var(--r25-heading) !important;
    border-color: #bfdbfe !important;
}
body.theme-r25-global :is(.alert-danger,.error,.message-error,.flash-error) {
    background: #fee2e2 !important;
    color: #991b1b !important;
    border-color: #fecaca !important;
}
body.theme-r25-global :is(.alert-warning,.warning,.message-warning,.flash-warning) {
    background: #fff7ed !important;
    color: #8a3f12 !important;
    border-color: #fdba74 !important;
}
body.theme-r25-global :is(.notice.ok,.success.ok,.notice.success,.alert.ok,.alert-success,.flash.ok,.flash-success,.message.ok,.message-success),
body.theme-r25-global :is(.notice.ok,.success.ok,.notice.success,.alert.ok,.alert-success,.flash.ok,.flash-success,.message.ok,.message-success) * {
    background: #16883f !important;
    border-color: #16883f !important;
    color: #ffffff !important;
}

/* Login */
body.theme-r25-global .login-wrap {
    background:
        radial-gradient(circle at 50% 20%, rgba(var(--primary-rgb), .12), transparent 32%),
        linear-gradient(180deg, rgba(238,245,252,.50), rgba(255,255,255,.85)) !important;
}
body.theme-r25-global .login-box {
    background: #ffffff !important;
    border-color: rgba(var(--primary-rgb), .22) !important;
    box-shadow: 0 24px 60px rgba(15,44,75,.14) !important;
}
body.theme-r25-global .login-box p {
    color: var(--r25-muted) !important;
}

/* Modal */
body.theme-r25-global .modal,
body.theme-r25-global .modal-backdrop {
    color: var(--r25-text) !important;
}
body.theme-r25-global .modal-content {
    background: #ffffff !important;
}

/* Footer claro */
body.theme-r25-global .site-footer {
    background: linear-gradient(180deg,#ffffff 0%,#f8fbff 100%) !important;
    border-top: 1px solid rgba(var(--primary-rgb), .16) !important;
    color: var(--r25-muted) !important;
}
body.theme-r25-global .footer-powered,
body.theme-r25-global .footer-macopal,
body.theme-r25-global .footer-powered span {
    color: var(--r25-muted) !important;
}
body.theme-r25-global .footer-version {
    background: rgba(var(--primary-rgb), .10) !important;
    border-color: rgba(var(--primary-rgb), .18) !important;
    color: var(--primary-dark) !important;
    box-shadow: var(--shadow-soft) !important;
}

/* Centros de control: pasan del tema oscuro específico al mismo tema claro. */
body.theme-r25-global.theme-control-body {
    --tc-bg: #eef5fc;
    --tc-bg-soft: #f8fbff;
    --tc-bg-deep: #ffffff;
    --tc-panel: #ffffff;
    --tc-panel-2: #f7fbff;
    --tc-line: #c7d8e7;
    --tc-line-soft: #d8e4f0;
    --tc-text: #172033;
    --tc-muted: #52677b;
    --tc-shadow: 0 12px 30px rgba(15,44,75,.10);
    background:
        radial-gradient(circle at 75% -10%, rgba(var(--primary-rgb), .12), transparent 30%),
        linear-gradient(180deg, #eef5fc 0%, #f8fbff 46%, #ffffff 100%) !important;
    color: var(--r25-text) !important;
}
body.theme-r25-global.theme-control-body :is(.cv-card,.cc-card,.cv-live,.cc-live) {
    background: linear-gradient(180deg,#ffffff,#f8fbff) !important;
    border-color: var(--r25-line) !important;
    color: var(--r25-text) !important;
    box-shadow: var(--shadow-soft) !important;
}
body.theme-r25-global.theme-control-body :is(.cv-card,.cc-card) :is(h1,h2,h3,h4,strong,b) {
    color: var(--r25-heading) !important;
}
body.theme-r25-global.theme-control-body :is(.cv-head p,.cc-head p,.cv-title p,.cv-kpi small,.cc-kpi small,.cc-row small,.cv-empty,.cc-empty) {
    color: var(--r25-muted) !important;
}
body.theme-r25-global.theme-control-body :is(.cv-row,.cc-row) {
    border-color: #d8e4f0 !important;
}
body.theme-r25-global.theme-control-body .control-theme-watermark {
    color: var(--primary-dark) !important;
    opacity: .045 !important;
}
body.theme-r25-global.theme-control-body ::-webkit-scrollbar-thumb {
    background: #9db7ca !important;
    border-color: #eef5fc !important;
}
body.theme-r25-global.theme-control-body ::-webkit-scrollbar-track {
    background: #eef5fc !important;
}

/* Producción y formularios complejos */
body.theme-r25-global :is(.prod-detail-grid,.production-detail-grid,.order-detail-grid) > *,
body.theme-r25-global :is(.prod-actions,.production-actions,.order-actions) {
    background: #ffffff !important;
    color: var(--r25-text) !important;
    border-color: rgba(var(--primary-rgb), .16) !important;
}
body.theme-r25-global :is(.prod-actions,.production-actions,.order-actions) label {
    color: #24364b !important;
}
body.theme-r25-global :is(.kpi-card,.metric-card,.summary-kpi) {
    background: linear-gradient(180deg,#fff9e8,#fffdf6) !important;
    border-color: #ead8a5 !important;
    color: var(--r25-heading) !important;
}

/* Evita residuos de texto claro heredado sobre superficies claras. */
body.theme-r25-global .container :is(h1,h2,h3,h4,h5,h6) {
    text-shadow: none !important;
}
body.theme-r25-global .container > :is(h1,h2,h3,h4),
body.theme-r25-global :is(.panel-heading,.toolbar,.actions-row,.filters,.pagination,fieldset) {
    color: var(--r25-text) !important;
}
body.theme-r25-global :is(.panel,.card,.box,.table-wrap,.modal-content,.erp-card,.erp-form) small:not(.badge):not(.chip) {
    color: var(--r25-muted) !important;
}

/* Scrollbars */
body.theme-r25-global ::-webkit-scrollbar {
    width: 11px;
    height: 11px;
}
body.theme-r25-global ::-webkit-scrollbar-thumb {
    background: #9db7ca;
    border-radius: 999px;
    border: 2px solid #eef5fc;
}
body.theme-r25-global ::-webkit-scrollbar-track {
    background: #eef5fc;
}

@media (max-width: 900px) {
    body.theme-r25-global .topbar {
        position: static !important;
    }
}

@media print {
    body.theme-r25-global {
        background: #ffffff !important;
        color: #000000 !important;
    }
    body.theme-r25-global :is(.panel,.card,.box,.table-wrap,.print-header) {
        background: #ffffff !important;
        color: #000000 !important;
        box-shadow: none !important;
    }
}

/* r64 · Ajustes de contraste detectados en la revisión estática de todos los PHP. */
body.theme-r25-global :is(.btn,.nav-btn,button.btn,a.btn) {
    background: linear-gradient(180deg, #0b77bd, #075f98) !important;
}
body.theme-r25-global :is(.btn,.nav-btn,button.btn,a.btn):hover {
    background: linear-gradient(180deg, #075f98, #064b78) !important;
}
body.theme-r25-global :is(.footer-status-lab .footer-status-pill,.operaciones-lab-banner) {
    background: #f59e0b !important;
    color: #4a2a00 !important;
    -webkit-text-fill-color: #4a2a00 !important;
    text-shadow: none !important;
}
body.theme-r25-global .footer-status-partial .footer-status-pill {
    background: #1d4ed8 !important;
    color: #ffffff !important;
}
body.theme-r25-global .footer-status-error .footer-status-pill {
    background: #b91c1c !important;
    color: #ffffff !important;
}
body.theme-r25-global :is(.assignar-dte-amount.is-empty,.mini-day.other,.frepat-check,.fac-outcome-box,.fac-step-dot) {
    color: #52677b !important;
}
body.theme-r25-global :is(.reason.warning,.crm-badge.warning,.warn-pill) {
    color: #9a3412 !important;
}
body.theme-r25-global .fac-flow-stage.partial .dot {
    color: #7c4a00 !important;
}
body.theme-r25-global .project-gantt-today::before {
    background: #b91c1c !important;
    color: #ffffff !important;
}
body.theme-r25-global :is(.input-readonly-soft,tr.tarifa-horeca .general-editable,tr.tarifa-liquidacio .general-editable,.assignar-disabled-fieldset[disabled] .assignar-table td,.bi-pill.off,.tarifa-client-baixa-row td) {
    color: #52677b !important;
    -webkit-text-fill-color: #52677b !important;
}
body.theme-r25-global :is(.tarifa-status.ok,.status-ok-bg) {
    background: #166534 !important;
    color: #ffffff !important;
}

/* r92 · contraste obligatorio en fondos oscuros */
body.theme-r25-global :is(.fac-step.danger,.cf-card,.cf-stage,.dark-card,.card-dark,.panel-dark,.status-dark,[data-dark-background]),
body.theme-r25-global :is(.fac-step.danger,.cf-card,.cf-stage,.dark-card,.card-dark,.panel-dark,.status-dark,[data-dark-background]) * {color:#fff!important;-webkit-text-fill-color:#fff!important;text-shadow:none!important}
body.theme-r25-global :is(.fac-step.danger,.cf-card,.cf-stage,.dark-card,.card-dark,.panel-dark,.status-dark,[data-dark-background]) a{color:#fef3c7!important}
body.theme-r25-global :is(.fac-step.danger,.cf-card,.cf-stage,.dark-card,.card-dark,.panel-dark,.status-dark,[data-dark-background]) .muted{color:#e5eef7!important;-webkit-text-fill-color:#e5eef7!important}


/* CORTANA-FEATURE:row-click-navigation-r100 */
body.theme-r25-global table tbody tr.erp-row-link { cursor:pointer; }
body.theme-r25-global table tbody tr.erp-row-link:hover > td,
body.theme-r25-global table tbody tr.erp-row-link:focus-visible > td {
    box-shadow:inset 0 0 0 9999px rgba(var(--primary-rgb),.075) !important;
}
body.theme-r25-global table tbody tr.erp-row-link:focus-visible {
    outline:3px solid rgba(var(--primary-rgb),.34);
    outline-offset:-3px;
}

