/* 0.0.62 · Lenguaje visual compartido con la UI local 0.0.37/38.
   Se carga después de cada módulo. No cambia el orden ni los permisos. */
:root{
 --ui-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
 --ui-shadow:0 1px 2px #1a111305,0 5px 18px #1a111305;
 --guinda:#C0102B;--negro:#111;--gris:#595959;--linea:#E4E4E4;--card:#fff;
 --ui-green:#1E7A6B;--ui-surface:#f4f2f1;--ui-border:#e4dfdc;
}
#chHub,.rh-dialog,.yxc,#cx-dialog,.mf,.portal-ui{font-family:var(--ui-font);color:var(--negro);-webkit-font-smoothing:antialiased}
#chHub{--rh-accent:var(--ui-green)}
.yxc{--cx-ink:var(--negro);--cx-muted:var(--gris);--cx-green:var(--ui-green);--cx-red:var(--guinda)}
.mf{--mf-accent:var(--guinda)}
#chHub .rh-title,.yxc h2,.mf h2,.portal-ui h1{font:650 clamp(24px,2.4vw,30px)/1.25 var(--ui-font);letter-spacing:-.035em;overflow-wrap:anywhere}
#chHub .rh-section-title,#chHub .rh-empty h3{font-weight:650}
#chHub :is(.rh-card,.rh-stat,.rh-nav,.rh-facts),.yxc .cx-stat,.mf .mf-kpis>div,.portal-ui .card{border-color:var(--ui-border);border-radius:12px;box-shadow:var(--ui-shadow);min-width:0}
#chHub .rh-stat,.portal-ui .overview .card{border-top:3px solid var(--ui-green)}
#chHub .rh-stat:first-child,.portal-ui .overview .card:first-child{border-top-color:var(--guinda)}
#chHub .rh-stat .rh-value,.yxc .cx-stat b,.mf .mf-kpis strong,.portal-ui .metric{font:650 30px/1.2 var(--ui-font);letter-spacing:-.04em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#chHub .rh-stat .rh-value.rh-no-data{font-size:18px;letter-spacing:0}
#chHub .rh-description,.yxc .cx-lead,.portal-ui :is(.intro,.help,.empty){color:var(--gris)}
#chHub .rh-card:hover{border-color:#c6d5cf}
#chHub .rh-card:focus-within{border-color:var(--ui-green)}
:is(#chHub,.rh-dialog,.yxc,#cx-dialog,.mf,.portal-ui) :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--guinda);outline-offset:3px}
:is(#chHub,.rh-dialog,.yxc,#cx-dialog,.mf,.portal-ui) button:disabled{cursor:not-allowed}
:is(#chHub,.rh-dialog) .rh-btn,.yxc .cx-btn,#cx-dialog .cx-btn,.mf button,.portal-ui button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;line-height:1.4;text-align:center;border-radius:8px;font-weight:600;max-width:100%;overflow-wrap:anywhere}
.yxc .cx-primary{background:var(--guinda);border-color:var(--guinda)}
.yxc .cx-link{color:var(--guinda);min-height:44px;display:inline-flex;align-items:center}
:is(#chHub,.rh-dialog) .rh-table-wrap,.yxc .cx-table-wrap,.mf .mf-table{border-radius:10px;border-color:var(--ui-border);scrollbar-width:thin;overscroll-behavior:contain}
:is(#chHub,.rh-dialog) .rh-table{font-variant-numeric:tabular-nums}
:is(#chHub,.rh-dialog) .rh-table th{background:#f7f4f2;color:var(--gris);font-weight:650;letter-spacing:.04em}
:is(#chHub,.rh-dialog) .rh-table tbody tr:focus-within{background:#edf5f2}
:is(#chHub,.rh-dialog) .rh-table td{vertical-align:middle}
:is(#chHub,.rh-dialog) .rh-table .rh-money{text-align:right;white-space:nowrap;overflow-wrap:normal;font-variant-numeric:tabular-nums}
:is(#chHub,.rh-dialog) .rh-table .rh-action-cell{position:sticky;right:0;background:#fff;min-width:160px;max-width:220px;box-shadow:-4px 0 8px #1a111306;z-index:1}
:is(#chHub,.rh-dialog) .rh-table th.rh-action-cell{background:#f7f4f2;z-index:2}
:is(#chHub,.rh-dialog) .rh-table tr:focus-within td.rh-action-cell{background:#edf5f2}
:is(#chHub,.rh-dialog) .rh-action-cell .rh-actions{align-items:center}
:is(#chHub,.rh-dialog) .rh-table-wrap:focus-visible{outline:2px solid var(--guinda);outline-offset:3px}
:is(#chHub,.rh-dialog) .rh-toolbar label{min-width:0;max-width:100%}
:is(#chHub,.rh-dialog) .rh-toolbar :is(input,select){min-width:0;width:100%}
.mf .mf-kpis,.mf .mf-workbench,.mf .mf-head{min-width:0}
.mf .mf-pages{flex-wrap:wrap;gap:12px}
/* Portal: misma marca, guinda, verde, superficies y tipografía del escritorio. */
body.portal-ui{background:var(--ui-surface);line-height:1.45}
.portal-ui .topbar{background:#1a1113;border-bottom:3px solid var(--ui-green);gap:24px}
.portal-ui .brand{display:flex;align-items:center;gap:12px;color:#f3e9ea;font:700 25px/1.1 Georgia,serif;text-decoration:none;flex-shrink:0;letter-spacing:1px}
.portal-ui .brand img{width:42px;height:42px;object-fit:contain;border-radius:10px}
.portal-ui .brand .brand-word{font:inherit;color:inherit;letter-spacing:inherit;margin:0}
.portal-ui .brand .brand-word small{display:block;font:9px/1.5 var(--ui-font);letter-spacing:1.5px;margin-top:5px;color:#c9a9ae}
.portal-ui .portal-label{color:#e5d8db;border-color:#62454c}
.portal-ui .topbar button{background:transparent;color:#f3e9ea;border-color:#73545c}
.portal-ui .topbar button:hover{background:#ffffff12}
.portal-ui .primary{background:var(--guinda);border-color:var(--guinda)}
.portal-ui .primary:hover{background:#a20d24;border-color:#a20d24}
.portal-ui .eyebrow,.portal-ui a{color:var(--ui-green)}
.portal-ui .login{border-top:3px solid var(--guinda)}
.portal-ui :is(input,select,textarea){color:var(--negro);border-color:#cfc7c3}
.portal-ui .record .state{border-radius:5px;font-weight:600;color:var(--ui-green);background:#edf5f2}
.portal-ui .section-head{flex-wrap:wrap}
.portal-ui .notice:not(.error){color:#245f51}
.portal-ui footer{color:var(--gris)}
@media(max-width:650px){
 :is(#chHub,.rh-dialog) .rh-table .rh-action-cell{position:static;min-width:150px;box-shadow:none}
 #chHub .rh-header>*{min-width:0;max-width:100%}
 .portal-ui .topbar{gap:12px;flex-wrap:wrap;padding:16px}
 .portal-ui .brand{font-size:22px}
 .portal-ui .topbar button{font-size:12px}
 .mf .mf-workbench form{flex-wrap:wrap}
 .mf .mf-workbench form label{flex-basis:100%}
}
@media(prefers-reduced-motion:reduce){
 :is(#chHub,.rh-dialog,.yxc,#cx-dialog,.mf,.portal-ui) *{scroll-behavior:auto;transition:none!important}
}
/* Detalles y diálogos externos al contenedor principal. */
.rh-dialog .rh-dialog-head h2,.yxc h3,#cx-dialog h2,#cx-dialog h3{font-family:var(--ui-font);font-weight:650;letter-spacing:-.025em}
#chHub .rh-header{background:var(--card);border-color:var(--ui-border);box-shadow:var(--ui-shadow)}
#chHub .rh-title{color:var(--negro)}
#chHub .rh-eyebrow{color:var(--ui-green)}
.yxc :is(input,select),#cx-dialog :is(input,select){min-height:44px}
.yxc .cx-person,.mf .mf-link{min-height:32px;line-height:1.4}
.portal-ui footer a{display:inline-flex;align-items:center;min-height:44px;margin-right:16px;font-weight:600;text-underline-offset:4px}

.yxc .cx-section h3,.yxc .cx-empty h3,#cx-dialog .cx-source h3,#cx-dialog .cx-history h3,#cx-dialog .cx-form h3{font-family:var(--ui-font);font-weight:650}
.rh-dialog .rh-dialog-head>.rh-btn,#cx-dialog .cx-dialog-head>.cx-btn{flex:0 0 auto;white-space:nowrap;overflow-wrap:normal}
.rh-dialog .rh-dialog-head h2,#cx-dialog .cx-dialog-head h2{min-width:0;overflow-wrap:anywhere}
