/* FlowTabs structural stylesheet + token themes. Typography inherits from the template.
   Tokens: --fs-border --fs-accent --fs-gap --fs-radius --fs-title-weight --fs-active-bg --fs-panel-bg --fs-panel-pad --fs-title-pad
   Layout model (plan D6): one DOM, two presentations. Buttons row 1 + panels row 2 in tabs mode;
   button/panel pairs on alternating rows in accordion mode. No DOM reordering, no duplication. */
.fs-set{--fs-border:1px solid color-mix(in srgb,currentColor 22%,transparent);--fs-accent:currentColor;--fs-gap:.5rem;--fs-radius:.25rem;--fs-title-weight:600;--fs-active-bg:transparent;--fs-panel-bg:transparent;--fs-panel-pad:1rem 0;--fs-title-pad:.6em 1em;margin-block:1.25em;container-type:inline-size;font:inherit;color:inherit}
.fs-set--tabs{display:grid;grid-template-columns:repeat(var(--fs-count,1),minmax(0,1fr));column-gap:0;row-gap:0;align-items:stretch}
.fs-align-left.fs-set--tabs,.fs-align-center.fs-set--tabs,.fs-align-right.fs-set--tabs{grid-template-columns:repeat(var(--fs-count,1),max-content) minmax(0,1fr)}
.fs-align-center.fs-set--tabs{justify-content:center}
.fs-align-right.fs-set--tabs{justify-content:end}
.fs-tablist,.fs-heading{display:contents}
.fs-heading{margin:0;font:inherit}
.fs-set--tabs .fs-title{grid-row:1;grid-column:var(--fs-i,auto)}
.fs-set--tabs .fs-panel{grid-row:2;grid-column:1/-1}
.fs-pos-bottom.fs-set--tabs .fs-title{grid-row:2}
.fs-pos-bottom.fs-set--tabs .fs-panel{grid-row:1}
.fs-align-left.fs-set--tabs .fs-title,.fs-align-center.fs-set--tabs .fs-title,.fs-align-right.fs-set--tabs .fs-title{grid-column:auto}
.fs-title{appearance:none;-webkit-appearance:none;margin:0;white-space:normal;max-inline-size:100%;box-sizing:border-box;background:none;border:0;border-block-end:var(--fs-border);font:inherit;font-weight:var(--fs-title-weight);color:inherit;padding:var(--fs-title-pad);text-align:center;cursor:pointer;line-height:1.3;min-inline-size:0;overflow-wrap:anywhere}
.fs-title__text{font:inherit;font-weight:inherit;margin:0}
.fs-title[aria-selected="true"],.fs-title[aria-expanded="true"]{border-block-end:2px solid var(--fs-accent);background:var(--fs-active-bg)}
.fs-title:hover{background:color-mix(in srgb,currentColor 6%,transparent)}
.fs-title:focus-visible{outline:2px solid var(--fs-accent);outline-offset:-2px}
.fs-title--placeholder{min-block-size:2.5em}
.fs-panel{padding:var(--fs-panel-pad);background:var(--fs-panel-bg);min-inline-size:0}
.fs-panel:focus-visible{outline:2px solid var(--fs-accent);outline-offset:2px}
.fs-panel>:first-child{margin-block-start:0}
.fs-panel>:last-child{margin-block-end:0}
/* accordion presentation: default breakpoint by container query (correct first paint with no JS),
   explicit mode classes set by the module win in both directions */
@container (max-width:576px){
  .fs-set--tabs:not(.fs-mode-tabs){grid-template-columns:minmax(0,1fr)}
  .fs-set--tabs:not(.fs-mode-tabs) .fs-title{grid-row:calc(var(--fs-i,1)*2 - 1);grid-column:1;text-align:start;border:var(--fs-border);border-radius:var(--fs-radius);margin-block-start:var(--fs-gap)}
  .fs-set--tabs:not(.fs-mode-tabs) .fs-panel{grid-row:calc(var(--fs-i,1)*2);grid-column:1;padding:var(--fs-panel-pad);padding-inline:1em}
}
.fs-mode-accordion.fs-set--tabs{grid-template-columns:minmax(0,1fr)}
.fs-mode-accordion.fs-set--tabs .fs-title{grid-row:calc(var(--fs-i,1)*2 - 1);grid-column:1;text-align:start;border:var(--fs-border);border-radius:var(--fs-radius);margin-block-start:var(--fs-gap)}
.fs-mode-accordion.fs-set--tabs .fs-panel{grid-row:calc(var(--fs-i,1)*2);grid-column:1;padding:var(--fs-panel-pad);padding-inline:1em}
.fs-mode-accordion .fs-title[aria-expanded="true"]{border-color:var(--fs-accent)}
.fs-icons.fs-mode-accordion .fs-title::after,.fs-icons.fs-set--accordion .fs-title::after{content:"";float:inline-end;inline-size:.6em;block-size:.6em;margin-inline-start:.5em;border-inline-end:2px solid currentColor;border-block-end:2px solid currentColor;transform:translateY(.15em) rotate(45deg);transition:transform .2s}
.fs-icons.fs-mode-accordion .fs-title[aria-expanded="true"]::after,.fs-icons .fs-item[open]>.fs-title::after{transform:translateY(.45em) rotate(225deg)}
/* native accordion */
.fs-set--accordion .fs-item{border:var(--fs-border);border-radius:var(--fs-radius);margin-block:var(--fs-gap)}
.fs-set--accordion .fs-title{display:block;list-style:none;border:0;text-align:start}
.fs-set--accordion .fs-title::-webkit-details-marker{display:none}
.fs-set--accordion .fs-item[open]>.fs-title{border-block-end:var(--fs-border);background:var(--fs-active-bg)}
.fs-set--accordion .fs-panel{padding-inline:1em}
/* themes */
.fs-theme-colorful{--fs-accent:var(--fs-color-accent,#1f5a94);--fs-active-bg:color-mix(in srgb,var(--fs-accent) 12%,transparent);--fs-title-pad:.7em 1em}
.fs-theme-colorful.fs-color-panels .fs-panel,.fs-theme-neutral.fs-color-panels .fs-panel{--fs-panel-pad:1rem;background:color-mix(in srgb,var(--fs-accent) 6%,transparent);border:var(--fs-border);border-block-start:0}
.fs-theme-colorful .fs-title{border-block-end:2px solid color-mix(in srgb,var(--fs-accent) 35%,transparent)}
.fs-theme-accent-lines .fs-title{border-block-start:3px solid transparent;border-block-end:var(--fs-border)}
.fs-theme-accent-lines .fs-title[aria-selected="true"]{border-block-start-color:var(--fs-accent);border-block-end-color:transparent;background:transparent}
.fs-theme-accent-lines.fs-color-panels .fs-panel{--fs-panel-pad:1rem;background:color-mix(in srgb,currentColor 4%,transparent)}
.fs-theme-bare .fs-title,.fs-theme-bare .fs-panel,.fs-theme-bare .fs-item{border:0;background:none;padding:0}
[data-fs-color="blue"],.fs-panel--blue{--fs-accent:#1f5a94}[data-fs-color="green"],.fs-panel--green{--fs-accent:#3a7d44}[data-fs-color="red"],.fs-panel--red{--fs-accent:#b63a32}[data-fs-color="orange"],.fs-panel--orange{--fs-accent:#c9741a}[data-fs-color="purple"],.fs-panel--purple{--fs-accent:#6b4c9a}[data-fs-color="grey"],[data-fs-color="gray"],.fs-panel--grey,.fs-panel--gray{--fs-accent:#6c757d}
/* print: every panel, in document order, with its title */
@media print{
  .fs-set--tabs{display:grid;grid-template-columns:minmax(0,1fr)}
  .fs-set--tabs .fs-title{grid-row:calc(var(--fs-i,1)*2 - 1);grid-column:1;text-align:start;border:0;border-block-end:var(--fs-border)}
  .fs-set--tabs .fs-panel{grid-row:calc(var(--fs-i,1)*2);grid-column:1;display:block!important}
  .fs-set--accordion .fs-item:not([open])>.fs-panel{display:block}
}
@media (prefers-reduced-motion:reduce){.fs-title::after{transition:none}}
