/* BT-021: escala común; los colores y materiales siguen perteneciendo a cada tema. */
:root{
  --font-ui:"Segoe UI Variable Text","Segoe UI",Arial,sans-serif;
  --font-heading:"Segoe UI Variable Display","Segoe UI Variable Text","Segoe UI",Arial,sans-serif;
  --type-caption:12px;--type-label:13px;--type-body:14px;--type-section:16px;
  --type-section-lg:20px;--type-number:24px;--type-title:28px;--type-hero:32px;
  --type-widget-value:clamp(var(--type-section-lg),2vw,var(--type-number));
  --weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
  --leading-heading:1.2;--leading-compact:1.4;--leading-body:1.55;
  --tracking-heading:-.02em;--tracking-label:.04em;--tracking-small:.02em;
  --space-0:0px;--space-2:2px;--space-4:4px;--space-8:8px;--space-12:12px;
  --space-16:16px;--space-20:20px;--space-24:24px;--space-32:32px;--space-40:40px;
  --space-48:48px;--space-56:56px;--space-64:64px;--space-72:72px;--space-112:112px;
  /* Geometría existente del marco y de la cuadrícula, acoplada al motor de colocación. */
  --space-frame:14px;--space-widget-gutter:14px;
  /* Los glifos de los controles conservan su tamaño óptico y no son texto de lectura. */
  --icon-9:9px;--icon-10:10px;--icon-11:11px;--icon-12:12px;--icon-13:13px;
  --icon-14:14px;--icon-15:15px;--icon-16:16px;--icon-17:17px;--icon-18:18px;
  --icon-19:19px;--icon-20:20px;--icon-21:21px;--icon-22:22px;--icon-23:23px;
  --icon-24:24px;--icon-26:26px;--icon-28:28px;--icon-29:29px;--icon-34:34px;
}
:root[data-theme] body{
  font-family:var(--font-ui);font-size:var(--type-body);font-weight:var(--weight-regular);
  line-height:var(--leading-body);font-optical-sizing:auto;
}
:root[data-theme] :is(button,input,select,textarea){font-family:var(--font-ui);font-optical-sizing:auto}
:root[data-theme] :is(h1,h2,h3,h4){font-family:var(--font-heading);font-weight:var(--weight-semibold);line-height:var(--leading-heading)}
:root[data-theme] h2{font-size:var(--type-section-lg)}
:root[data-theme] h3{font-size:var(--type-section)}
:root[data-theme] h4{font-size:var(--type-body)}
:root[data-theme] small{font-size:var(--type-caption);line-height:var(--leading-compact)}
:root[data-theme] .pagehead h1{font-family:var(--font-heading);font-size:var(--type-title);letter-spacing:var(--tracking-heading)}
:root[data-theme] .drawer h2{font-size:var(--type-title);letter-spacing:var(--tracking-heading)}
:root[data-theme] :is(strong,b){font-weight:var(--weight-semibold)}
:root[data-theme] .brand strong{font-weight:var(--weight-bold)}
:root[data-theme] :is(.panelhead h2,.sectionbar h2,.research-card h3,.method-head strong){font-size:var(--type-section)}
:root[data-theme] .catalog-head strong{font-family:var(--font-heading);font-size:var(--type-section-lg)}
:root[data-theme] :is(.field-section h3,.form-section h3,.detail-section-toggle){font-size:var(--type-label);letter-spacing:var(--tracking-label);line-height:var(--leading-compact)}
:root[data-theme] :is(form label,.filtergrid label,.research-toolbar label){font-size:var(--type-label);line-height:var(--leading-compact);font-weight:var(--weight-medium)}
:root[data-theme] :is(input,select,textarea){font-size:var(--type-body);line-height:var(--leading-compact)}
:root[data-theme] :is(.primary,.secondary,.filter-toggle){font-size:var(--type-body);line-height:var(--leading-compact);font-weight:var(--weight-semibold)}
:root[data-theme] :is(.catalog-item,.catalog-groups) :is(.primary,.secondary,button),
:root[data-theme] :is(.position-actions,.drawer-controls) .secondary{font-size:var(--type-label)}
:root[data-theme] .table{font-size:var(--type-body)}
:root[data-theme] .table th{font-size:var(--type-label);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-small)}
:root[data-theme] .table td{font-size:var(--type-body);line-height:var(--leading-compact);padding:var(--space-12) var(--space-16)}
:root[data-theme] :is(.table,.metric .value,.insight-kpi strong,.insight-report-metric strong,.detailbox strong,
  .daypnl,.calendar-week-total strong,.numberpill,.journal-account-numbers strong,input[type="number"]){font-variant-numeric:lining-nums tabular-nums}
:root[data-theme] .pattern-choice{font-size:var(--type-label)!important;line-height:var(--leading-compact)}
:root[data-theme] :is(.sub,.research-prose,.research-excerpt,.research-term>p,.field-section p){font-size:var(--type-body);line-height:var(--leading-body)}
:root[data-theme] :is(.hinttext,.research-card small,.panelhead small,.visual-entry-body small){font-size:var(--type-caption);line-height:var(--leading-compact)}
:root[data-theme] .formgrid,:root[data-theme] .research-form-grid{gap:var(--space-16)}
:root[data-theme] .form-section{padding-block:var(--space-20)}
:root[data-theme] :is(.form-actions,.drawer-actions,.research-detail-actions,.position-actions){gap:var(--space-8)}
/* Calendario adaptable: la cuadrícula responde al widget, con importes exactos accesibles. */
:root[data-theme] .calendar-widget .calendar-scroll{overflow:hidden}
:root[data-theme] .calendar-widget .calendar-grid{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr)) minmax(0,.9fr);grid-template-rows:18px repeat(var(--calendar-rows,6),minmax(0,1fr))}
@media(max-width:600px){
  :root[data-theme] .pagehead h1,:root[data-theme] .drawer h2{font-size:var(--type-number)}
  :root[data-theme] .content{padding-inline:var(--space-16)}
  :root[data-theme] .calendar-widget .calendar-grid{height:100%;min-width:0}
  :root[data-theme] :is(.primary,.secondary):not(.small){min-height:44px}
}
