
/* V69 — Sistema visual unificado: azul base + color semántico por módulo */
:root{
  --ui-blue:#3157D5;
  --ui-blue-deep:#2444B4;
  --ui-blue-soft:#EEF2FF;
  --ui-blue-line:#C9D4FF;
  --ui-load:#C62828;
  --ui-load-deep:#9F1F1F;
  --ui-load-soft:#FFF0F0;
  --ui-load-line:#F1C5C5;
  --ui-green:#148A67;
  --ui-green-soft:#EAF8F3;
  --ui-purple:#6D4FD8;
  --ui-purple-soft:#F2EEFF;
  --ui-orange:#C56A16;
  --ui-orange-soft:#FFF4E8;
  --ui-slate:#536273;
  --ui-slate-soft:#F1F4F7;
}
/* App shell: neutralise the old editorial red/cream look without changing semantic status colours */
body{background:#F5F7FB;color:#172033;font-family:var(--font-body)}
#app-shell{background:#F5F7FB}
main{background:#F5F7FB!important}
.card,.panel,.kpi-card,.section-card,.table-wrap,.modal,.modal-content,.chart-card{background:#FFF}
/* Global product chrome: one blue language */
header,.topbar{border-bottom-color:#E2E7F0!important}
.brand-mark{background:linear-gradient(135deg,var(--ui-blue),var(--ui-blue-deep))!important;box-shadow:0 6px 18px rgba(49,87,213,.22)!important}
nav.sidebar-nav button.active,
.nav-group.active>.nav-group-toggle,
.nav-group-items button.active{background:linear-gradient(90deg,rgba(49,87,213,.16),rgba(49,87,213,.03))!important;border-left-color:var(--ui-blue)!important;color:#F8FAFF!important}
nav.sidebar-nav button.active .tab-icon,.nav-group.active>.nav-group-toggle .tab-icon,.nav-group-items button.active .dot{color:var(--ui-blue)!important;background-color:var(--ui-blue)!important}
button.btn-primary,.btn-primary,.primary-btn{background:var(--ui-blue)!important;border-color:var(--ui-blue)!important;color:#fff!important}
button.btn-primary:hover,.btn-primary:hover,.primary-btn:hover{background:var(--ui-blue-deep)!important}
:focus-visible{outline:2px solid rgba(49,87,213,.45)!important;outline-offset:2px}
/* Default accents: blue */
body:not([data-module="carga"]):not([data-module="wellness"]):not([data-module="planificacion"]):not([data-module="partidos"]) .section-title,
body:not([data-module="carga"]):not([data-module="wellness"]):not([data-module="planificacion"]):not([data-module="partidos"]) .kpi-value{color:var(--ui-blue)}
/* Carga = red, consistently */
body[data-module="carga"] .section-title,
body[data-module="carga"] .kpi-value,
body[data-module="carga"] .metric-value{color:var(--ui-load)}
body[data-module="carga"] .btn-primary,
body[data-module="carga"] .primary-btn,
body[data-module="carga"] .action-primary{background:var(--ui-load)!important;border-color:var(--ui-load)!important}
body[data-module="carga"] .btn-primary:hover,
body[data-module="carga"] .primary-btn:hover{background:var(--ui-load-deep)!important}
body[data-module="carga"] .active,
body[data-module="carga"] .selected{--accent:var(--ui-load)}
body[data-module="carga"] .panel-accent,
body[data-module="carga"] .section-card.accent,
body[data-module="carga"] .kpi-card.accent{border-top-color:var(--ui-load)!important}
/* Wellness = green */
body[data-module="wellness"] .section-title,
body[data-module="wellness"] .kpi-value{color:var(--ui-green)}
/* Planning = blue, with intensity/type colours reserved for the calendar semantics */
body[data-module="planificacion"] .section-title{color:var(--ui-blue)}
/* Matches/rotations = blue, while foul/result status colours remain semantic */
body[data-module="partidos"] .section-title{color:var(--ui-blue)}
/* Shared component language */
.card,.panel,.kpi-card,.section-card,.table-wrap,.chart-card{border:1px solid #E1E6EF!important;border-radius:12px!important;box-shadow:0 1px 3px rgba(15,23,42,.05)!important}
input,select,textarea{border:1px solid #D8DFEA!important;border-radius:9px!important;background:#FFF!important;color:#172033!important}
input:focus,select:focus,textarea:focus{border-color:var(--ui-blue)!important;box-shadow:0 0 0 3px rgba(49,87,213,.10)!important}
.badge,.chip,.pill{border-radius:999px}
/* Do not override semantic intensity/session colours in planning/calendar */
.intensity-1,.intensity-2,.intensity-3,.intensity-4,.intensity-5,
.session-pista,.session-gym,.session-pista-gym,.session-partido,.session-recovery,.session-amistoso{color:inherit}
/* Dark mode keeps the same accent hierarchy */
[data-theme="dark"] body{background:#0E1420;color:#E7ECF5}
[data-theme="dark"] main,#app-shell{background:var(--bg)!important}
