
/* INFISAD 10.1.3 · Contraste global y colores institucionales */
:root{
  color-scheme:light dark;
  --infisad-navy-950:#071525;
  --infisad-navy-900:#0B1F33;
  --infisad-navy-850:#102940;
  --infisad-navy-800:#16344F;
  --infisad-gold-500:#D7AD42;
  --infisad-gold-400:#E8C866;
  --infisad-gold-300:#F0D98C;
  --infisad-ink:#122033;
  --infisad-paper:#F7F9FC;
  --infisad-white:#FFFFFF;
  --infisad-muted-light:#667085;
  --infisad-muted-dark:#B7C4D4;
  --infisad-danger:#B42318;
  --infisad-success:#067647;
  --if-bg:#F5F7FB;
  --if-surface:#FFFFFF;
  --if-surface-2:#EEF3F8;
  --if-text:#122033;
  --if-muted:#5E6E82;
  --if-border:#CFD9E6;
  --if-accent:#D7AD42;
  --if-accent-text:#111827;
  --if-on-dark:#F8FAFC;
  --if-on-light:#122033;
  --if-input-bg:#FFFFFF;
  --if-input-text:#111827;
  --if-placeholder:#667085;
}

/* Institutional areas: Superadministrador and office users */
[data-infisad-area="institutional"],
.infisad-institutional-shell{
  --if-accent:var(--infisad-gold-500);
  --if-accent-text:#101828;
  --if-sidebar-bg:var(--infisad-navy-900);
  --if-sidebar-bg-2:var(--infisad-navy-850);
  --if-sidebar-text:#F8FAFC;
  --if-sidebar-muted:#CAD5E2;
  --if-sidebar-active-bg:var(--infisad-gold-500);
  --if-sidebar-active-text:#111827;
}

/* Light mode */
html:not([data-theme="dark"]) body,
body[data-theme="light"],
body.light-theme,
body.theme-light{
  --if-bg:#F4F7FB;
  --if-surface:#FFFFFF;
  --if-surface-2:#EDF2F7;
  --if-text:#122033;
  --if-muted:#5B6B7E;
  --if-border:#CCD7E4;
  --if-input-bg:#FFFFFF;
  --if-input-text:#111827;
  --if-placeholder:#68778A;
  background:var(--if-bg);
  color:var(--if-text);
}

/* Dark mode */
html[data-theme="dark"] body,
body[data-theme="dark"],
body.dark-theme,
body.theme-dark,
body[data-client-theme="dark"]{
  --if-bg:#081522;
  --if-surface:#102131;
  --if-surface-2:#152A3D;
  --if-text:#F4F7FB;
  --if-muted:#B8C5D5;
  --if-border:#30465D;
  --if-input-bg:#0B1825;
  --if-input-text:#F8FAFC;
  --if-placeholder:#9EB0C3;
  background:var(--if-bg);
  color:var(--if-text);
}

body,
main,
.erp-main,
.premium-page-main,
.erp-content{
  color:var(--if-text);
}

h1,h2,h3,h4,h5,h6,
.page-head h1,
.section-heading h2,
.card-head h2,
.panel h2,
.metric b,
.erp-content h1,
.erp-content h2,
.premium-page-main h1,
.premium-page-main h2{
  color:var(--if-text)!important;
}

p,li,dd,dt,label,
.muted,.help,.hint,.description,
small:not(.badge):not(.tag){
  color:var(--if-muted);
}

/* Institutional shell */
[data-infisad-area="institutional"] .erp-sidebar,
.infisad-institutional-shell .erp-sidebar,
[data-infisad-area="institutional"] .side,
.infisad-institutional-shell .side{
  background:linear-gradient(180deg,var(--infisad-navy-950),var(--infisad-navy-900))!important;
  color:var(--if-sidebar-text)!important;
  border-color:#28405A!important;
}
[data-infisad-area="institutional"] .erp-brand,
[data-infisad-area="institutional"] .erp-brand a,
[data-infisad-area="institutional"] .erp-brand b,
[data-infisad-area="institutional"] .erp-user-card b,
[data-infisad-area="institutional"] .sidebar-nav summary,
[data-infisad-area="institutional"] .sidebar-nav a,
.infisad-institutional-shell .erp-brand,
.infisad-institutional-shell .erp-brand a,
.infisad-institutional-shell .erp-brand b,
.infisad-institutional-shell .erp-user-card b,
.infisad-institutional-shell .sidebar-nav summary,
.infisad-institutional-shell .sidebar-nav a{
  color:var(--if-sidebar-text)!important;
}
[data-infisad-area="institutional"] .erp-brand small,
[data-infisad-area="institutional"] .erp-user-card small,
[data-infisad-area="institutional"] .erp-side-foot small,
.infisad-institutional-shell .erp-brand small,
.infisad-institutional-shell .erp-user-card small,
.infisad-institutional-shell .erp-side-foot small{
  color:var(--if-sidebar-muted)!important;
}
[data-infisad-area="institutional"] .sidebar-nav a:hover,
[data-infisad-area="institutional"] .sidebar-nav summary:hover,
.infisad-institutional-shell .sidebar-nav a:hover,
.infisad-institutional-shell .sidebar-nav summary:hover{
  background:#1B3854!important;
  color:#FFFFFF!important;
}
[data-infisad-area="institutional"] .sidebar-nav a.active,
[data-infisad-area="institutional"] .sidebar-nav .active,
.infisad-institutional-shell .sidebar-nav a.active,
.infisad-institutional-shell .sidebar-nav .active{
  background:var(--if-sidebar-active-bg)!important;
  color:var(--if-sidebar-active-text)!important;
  font-weight:800;
}
[data-infisad-area="institutional"] .erp-topbar,
.infisad-institutional-shell .erp-topbar{
  background:var(--infisad-navy-900)!important;
  border-color:#314963!important;
}
[data-infisad-area="institutional"] .erp-topbar *,
.infisad-institutional-shell .erp-topbar *{
  color:#F8FAFC!important;
}
[data-infisad-area="institutional"] .erp-status i,
.infisad-institutional-shell .erp-status i{
  background:var(--infisad-gold-500)!important;
}
[data-infisad-area="institutional"] button,
[data-infisad-area="institutional"] .btn,
.infisad-institutional-shell button,
.infisad-institutional-shell .btn{
  --button-bg:var(--infisad-gold-500);
  --button-text:#111827;
}

/* Panels and cards */
.panel,.card,.metric,.dashboard-widget,.premium-card,
.module-card,.workspace-card,.financial-card,
.access-card,.section-shell,.table-shell{
  background:var(--if-surface)!important;
  color:var(--if-text)!important;
  border-color:var(--if-border)!important;
}
.panel *,
.card *,
.metric *,
.dashboard-widget *,
.premium-card *,
.module-card *,
.workspace-card *,
.financial-card *{
  text-shadow:none;
}

/* Tables */
table{
  color:var(--if-text);
}
thead th,
table th,
.table thead th{
  background:var(--if-surface-2)!important;
  color:var(--if-text)!important;
  border-color:var(--if-border)!important;
}
tbody td,
table td{
  color:var(--if-text)!important;
  border-color:var(--if-border)!important;
}
tbody tr:hover td{
  background:color-mix(in srgb,var(--if-accent) 8%,var(--if-surface))!important;
}

/* Inputs and form controls */
input,select,textarea,
.input,.form-control{
  background:var(--if-input-bg)!important;
  color:var(--if-input-text)!important;
  border-color:var(--if-border)!important;
  caret-color:var(--if-input-text);
}
input::placeholder,textarea::placeholder{
  color:var(--if-placeholder)!important;
  opacity:1;
}
select option{
  background:var(--if-input-bg);
  color:var(--if-input-text);
}
input:focus,select:focus,textarea:focus{
  border-color:var(--if-accent)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--if-accent) 24%,transparent)!important;
  outline:none;
}
input:disabled,select:disabled,textarea:disabled{
  opacity:.72;
  color:var(--if-muted)!important;
}

/* Buttons and links */
button,.btn,.button,
input[type="submit"],input[type="button"]{
  background:var(--if-accent)!important;
  color:var(--if-accent-text)!important;
  border-color:color-mix(in srgb,var(--if-accent) 72%,#000)!important;
  font-weight:800;
}
button:hover,.btn:hover,.button:hover,
input[type="submit"]:hover,input[type="button"]:hover{
  filter:brightness(.94);
}
button.ghost,.btn.ghost,.outline-button,.secondary-button{
  background:transparent!important;
  color:var(--if-text)!important;
  border-color:var(--if-border)!important;
}
a{
  color:var(--if-link,var(--if-accent));
}
a:hover{
  color:var(--if-link-hover,var(--if-text));
}

/* Badges and status */
.badge,.tag,.chip,.plan-chip,.status-chip{
  color:var(--if-text);
  border-color:var(--if-border);
}
.flash,.notice,.alert{
  color:var(--if-text)!important;
}
.success,.status-success,.badge-success{
  color:#067647!important;
  background:#ECFDF3!important;
}
.danger,.status-danger,.badge-danger,.error,.access-error{
  color:#B42318!important;
  background:#FEF3F2!important;
}
.warning,.status-warning,.badge-warning{
  color:#8A5B00!important;
  background:#FFFAEB!important;
}
html[data-theme="dark"] .success,
body[data-theme="dark"] .success{
  color:#86E9B5!important;
  background:#123A2C!important;
}
html[data-theme="dark"] .danger,
body[data-theme="dark"] .danger,
html[data-theme="dark"] .error,
body[data-theme="dark"] .error{
  color:#FFB4AE!important;
  background:#4B1E1C!important;
}
html[data-theme="dark"] .warning,
body[data-theme="dark"] .warning{
  color:#FFD982!important;
  background:#4A3611!important;
}

/* Superclient and ERP headers/menu use client-selected accent with safe text */
[data-infisad-area="superclient"] .premium-module-bar a.active,
[data-infisad-area="superclient"] .premium-function-bar a.active,
[data-infisad-area="erp"] .premium-module-bar a.active,
[data-infisad-area="erp"] .premium-function-bar a.active,
[data-infisad-area="superclient"] .plan-chip,
[data-infisad-area="erp"] .plan-chip{
  background:var(--if-accent)!important;
  color:var(--if-accent-text)!important;
}
[data-infisad-area="superclient"] .premium-global-header,
[data-infisad-area="erp"] .premium-global-header{
  background:var(--if-surface)!important;
  border-color:var(--if-border)!important;
}
[data-infisad-area="superclient"] .premium-global-header *,
[data-infisad-area="erp"] .premium-global-header *{
  color:var(--if-text);
}
[data-infisad-area="superclient"] .premium-module-bar,
[data-infisad-area="superclient"] .premium-function-bar,
[data-infisad-area="erp"] .premium-module-bar,
[data-infisad-area="erp"] .premium-function-bar{
  background:var(--if-surface)!important;
  border-color:var(--if-border)!important;
}
[data-infisad-area="superclient"] .premium-module-bar a,
[data-infisad-area="superclient"] .premium-function-bar a,
[data-infisad-area="erp"] .premium-module-bar a,
[data-infisad-area="erp"] .premium-function-bar a{
  color:var(--if-text)!important;
}
[data-infisad-area="superclient"] .premium-module-bar a:hover,
[data-infisad-area="superclient"] .premium-function-bar a:hover,
[data-infisad-area="erp"] .premium-module-bar a:hover,
[data-infisad-area="erp"] .premium-function-bar a:hover{
  background:color-mix(in srgb,var(--if-accent) 12%,var(--if-surface))!important;
}

/* Login surfaces */
.access-page{
  background:linear-gradient(145deg,var(--if-bg),color-mix(in srgb,var(--if-accent) 7%,var(--if-bg)))!important;
}
.access-page .access-card{
  background:var(--if-surface)!important;
  color:var(--if-text)!important;
}
[data-infisad-area="institutional"].access-page .access-logo,
[data-infisad-area="institutional"] .access-logo{
  color:var(--infisad-gold-500)!important;
}
[data-infisad-area="institutional"].access-page .access-card{
  border-top:4px solid var(--infisad-gold-500)!important;
}

/* Ensure selected custom backgrounds never inherit unreadable text */
[style*="background-color"],
[style*="background:"]{
  --computed-readable-text:inherit;
}
.auto-contrast,
[data-auto-contrast="true"]{
  color:var(--auto-contrast-text,var(--if-text))!important;
}
.auto-contrast *,
[data-auto-contrast="true"] *{
  color:inherit!important;
}

/* Focus visibility */
:focus-visible{
  outline:3px solid color-mix(in srgb,var(--if-accent) 74%,#FFFFFF)!important;
  outline-offset:2px;
}

/* Print remains neutral and readable */
@media print{
  :root{
    --if-bg:#FFFFFF;
    --if-surface:#FFFFFF;
    --if-text:#000000;
    --if-muted:#333333;
    --if-border:#BBBBBB;
  }
  body,*{
    color:#000!important;
    background:#FFF!important;
    box-shadow:none!important;
  }
}
