/* Composición de páginas. Tokens y controles provienen del kit publicado. */
.tpl-main { padding-block: var(--space-7); }
.tpl-main > * + * { margin-block-start: var(--space-6); }
.tpl-heading { max-inline-size: var(--layout-reading); }
.tpl-heading h1 { margin-block: 0 var(--space-3); }
.tpl-heading p { margin: 0; }
.tpl-document { min-inline-size: 0; }
.tpl-document > * + * { margin-block-start: var(--space-6); }
.tpl-prose { line-height: 1.65; }
.tpl-document .ui-content { border: 0; padding-block: 0; }
.tpl-index { align-self: start; }
.tpl-index h2 { font-size: var(--fs-16); margin-block: 0 var(--space-3); }
.tpl-index ul { display: grid; gap: var(--space-3); list-style: none; padding: 0; }
.ux-tabla { max-inline-size: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.ux-tabla table { min-inline-size: 34rem; }
.ux-tabla caption { text-align: start; padding-block-end: var(--space-3); }
.tpl-main :is(th, td).num { text-align: end; font-variant-numeric: tabular-nums; }
.tpl-main [hidden] { display: none !important; }
.tpl-form { max-inline-size: var(--layout-reading); gap: var(--space-5); }
.tpl-form fieldset { display: grid; min-inline-size: 0; gap: var(--space-5); }
.tpl-form legend { margin-block-end: var(--space-4); font-size: var(--fs-14); }
.tpl-field { display: grid; gap: var(--space-2); min-inline-size: 0; }
.tpl-field :is(input, p) { max-inline-size: 100%; margin: 0; }
.tpl-choice { display: flex; gap: var(--space-3); align-items: start; }
.tpl-choice input { flex: 0 0 auto; margin-block-start: var(--space-1); }
.tpl-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.tpl-form .ui-validation-summary { grid-template-columns: minmax(0, 1fr); }
.tpl-form .ui-validation-summary h2 { font-size: var(--fs-16); }
.tpl-form details { display: grid; gap: var(--space-3); }
.tpl-filters { display: flex; flex-wrap: wrap; align-items: end; gap: var(--space-4); }
.tpl-filters .tpl-field { flex: 1 1 15rem; }
.tpl-catalog-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); gap: var(--space-6); list-style: none; padding: 0; }
.tpl-catalog-item { min-inline-size: 0; border-block-start: 1px solid var(--line); padding-block-start: var(--space-4); }
.tpl-catalog-item h2 { font-size: var(--fs-20); }
.tpl-catalog-item h2 a { min-block-size: 44px; display: flex; align-items: center; text-decoration: underline; }
.tpl-catalog-item p { margin-block-start: var(--space-3); }
.tpl-catalog-item [data-catalog-value] span { font-size: var(--fs-12); }
.tpl-dominant { max-inline-size: var(--layout-reading); }
.tpl-dominant strong { font-size: var(--fs-38); }
.tpl-figure { max-inline-size: var(--layout-reading); }
.tpl-figure svg { inline-size: 100%; block-size: auto; }
.tpl-figure figcaption { font-size: var(--fs-14); line-height: 1.6; }
.tpl-tool > * + * { margin-block-start: var(--space-5); }
.tpl-tool .tpl-heading > p + p { margin-block-start: var(--space-3); font-size: var(--fs-14); }
.tpl-tool-content { min-inline-size: 0; display: grid; gap: var(--space-5); }
.tpl-tool-sidebar { align-self: start; }
.tpl-tool .ui-sidebar-nav :is(summary, a) { min-block-size: var(--nav-target); display: flex; align-items: center; }
.tpl-tool .ui-state { display: block; }
.tpl-row-select { display: flex; min-inline-size: var(--nav-target); min-block-size: var(--nav-target); align-items: center; justify-content: center; }
.tpl-tool :is([data-tool-assistant], .tpl-tool-content > details) summary { min-block-size: var(--nav-target); display: flex; align-items: center; cursor: pointer; text-decoration: underline; }
.tpl-tool:not([data-tool-ready]) [data-open-dialog], .tpl-sidebar-trigger { display: none; }
.tpl-tool-dialog { margin: auto; max-block-size: calc(100dvh - 2rem); overflow-y: auto; }
.tpl-tool-dialog > header { flex-wrap: wrap; }
.tpl-tool-dialog h2 { font-size: var(--fs-18); }
.tpl-tool-dialog > div { padding: var(--space-5); display: grid; gap: var(--space-4); }
.tpl-tool-dialog .ui-sidebar-nav { max-inline-size: none; border: 0; }
.tpl-hero { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--space-6); }
.tpl-hero-copy > * + * { margin-block-start: var(--space-5); }
.tpl-hero-copy .tpl-actions { margin-block-start: var(--space-6); }
.tpl-product-preview { min-inline-size: 0; }
.tpl-product-preview img { inline-size: 100%; block-size: auto; border: 1px solid var(--line); }
.tpl-product-preview figcaption { margin-block-start: var(--space-3); font-size: var(--fs-14); }
.tpl-product-preview figcaption a { text-decoration: underline; }
[data-template="landing"] .tpl-main .l-measure a { text-decoration: underline; }
.tpl-product-preview img[data-product-theme="dark"] { display: none; }
:root[data-theme="dark"] .tpl-product-preview img[data-product-theme="light"] { display: none; }
:root[data-theme="dark"] .tpl-product-preview img[data-product-theme="dark"] { display: block; }
@media (max-width: 48rem) {
  .tpl-hero { grid-template-columns: minmax(0, 1fr); }
  .tpl-tool-sidebar { display: none; }
  .tpl-tool .l-sidebar { grid-template-columns: minmax(0, 1fr); }
  .tpl-tool[data-tool-ready] .tpl-sidebar-trigger { display: inline-flex; }
  .tpl-tool-dialog { inset: var(--space-4); margin: 0; inline-size: calc(100% - 2rem); block-size: calc(100dvh - 2rem); max-block-size: none; }
}
