/* Estándar compartido de la Referencia visual. No define paletas ni tipografías. */
:root{
 --ui-space-1:4px;--ui-space-2:8px;--ui-space-3:12px;--ui-space-4:16px;
 --ui-space-5:20px;--ui-space-6:24px;--ui-control-height:40px;
 --ui-radius-control:6px;--ui-radius-panel:10px;--ui-panel-padding:20px;
 --ui-border:var(--line,#dce5ee);--ui-surface:#fff;
}
/* La portada conserva su composición; este lenguaje se aplica al área de trabajo y acceso. */
:where(.workspace,.auth-container) :is(.panel,.kpi,.budget-kpi){
 border-radius:var(--ui-radius-panel);min-width:0;
}
:where(.workspace,.auth-container) .admin-panel{padding:var(--ui-panel-padding)}
:where(.workspace,.auth-container) :is(.page-heading,.panel-heading){gap:var(--ui-space-4)}
:where(.workspace,.auth-container) .page-heading{align-items:center}
:where(.workspace,.auth-container) :is(.page-heading,.panel-heading)>div{min-width:0}
:where(.workspace,.auth-container) .page-heading h1{line-height:1.25}
:where(.workspace,.auth-container) .admin-form{gap:var(--ui-space-5)}
:where(.workspace,.auth-container) .form-grid{gap:var(--ui-space-5)}
:where(.workspace,.auth-container) .admin-form label{gap:var(--ui-space-2);min-width:0}
:where(.workspace,.auth-container) .admin-form :is(input,select,textarea){
 box-sizing:border-box;border-radius:var(--ui-radius-control);border-color:var(--ui-border);
 color:var(--ink);max-width:100%;min-width:0;
}
:where(.workspace,.auth-container) .admin-form :is(input,select):where(:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=color]):not([role=switch])){
 min-height:var(--ui-control-height);padding-block:9px;
}
:where(.workspace,.auth-container) .admin-form textarea{line-height:1.6;resize:vertical}
/* En un campo apilado, el input no debe heredar una base flex horizontal de 220 px. */
:where(.workspace,.auth-container) .password-field>.password-input-wrap{flex:none}
:where(.workspace) :is(.import-filters,.budget-filters,.pj-filters,.filters) :is(input,select):where(:not([type=hidden]):not([type=checkbox]):not([type=radio])){
 box-sizing:border-box;min-width:0;max-width:100%;min-height:var(--ui-control-height);
 border-radius:var(--ui-radius-control);color:var(--ink);border-color:var(--ui-border);
}
:where(.workspace,.auth-container) .admin-form :is(input,select,textarea):focus-visible,
:where(.workspace,.auth-container) :is(.filters,.budget-filters,.import-filters,.pj-filters) :is(input,select):focus-visible{
 outline:2px solid var(--brand-action-blue);outline-offset:2px;
}
:where(.workspace,.auth-container) .admin-form :is(input,textarea)[aria-invalid=true]{
 border-color:#a44259;
}
:where(.workspace,.auth-container) .admin-form :is(input,select,textarea):disabled{cursor:not-allowed}
:where(.workspace,.auth-container) :is(.form-error,.form-success,.auth-notice){
 border-radius:var(--ui-radius-control);padding:var(--ui-space-3) var(--ui-space-4);
 line-height:1.6;overflow-wrap:anywhere;
}
:where(.workspace,.auth-container) .row-actions{gap:var(--ui-space-2);flex-wrap:wrap}
:where(.workspace,.auth-container) :is(.table-scroll,.budget-table-scroll){min-width:0;max-width:100%;overscroll-behavior-x:contain}
:where(.workspace,.auth-container) :is(.table-scroll,.budget-table-scroll):focus-visible{
 outline:2px solid var(--brand-action-blue);outline-offset:-2px;
}
/* Sin cambiar anchos, filas, columnas fijas o alineaciones propias de cada tabla. */
:where(.workspace,.auth-container) :is(td,th).numeric{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
:where(.workspace,.auth-container) .action-control{--action-size:var(--ui-control-height);border-radius:var(--ui-radius-control)}
:where(.workspace,.auth-container) .action-control:not(.admin-icon-action){overflow-wrap:anywhere}
:where(.workspace,.auth-container) .action-control>.icon{flex-shrink:0}
:where(.workspace,.auth-container) .action-control[aria-busy=true]{white-space:nowrap}
@media(max-width:720px){
 :root{--ui-panel-padding:16px}
 :where(.workspace,.auth-container) .page-heading{align-items:flex-start;flex-wrap:wrap}
 :where(.workspace,.auth-container) .admin-form :is(input,select,textarea){font-size:16px}
 :where(.workspace) :is(.import-filters,.budget-filters,.pj-filters,.filters) :is(input,select){font-size:16px}
 :where(.workspace,.auth-container) .form-grid{gap:var(--ui-space-4)}
 :where(.workspace,.auth-container) .row-actions{row-gap:var(--ui-space-2)}
}
