/**/

.fx-main { --fx-gut: 40px; max-width: 1180px; padding-bottom: 0; }
/**/
@media (max-width: 900px) { .fx-main { --fx-gut: 24px; } }
@media (max-width: 768px) { .fx-main { --fx-gut: 16px; } }
.fx-main *, .fx-main *::before, .fx-main *::after { box-sizing: border-box; }
.fx-main p { text-wrap: pretty; }
.fx-main a:not(.btn) { color: var(--violet-ink); text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
/**/
.fx-main .ap-cta-l a { color: #fff; }
.fx-main ::selection { background: var(--violet-tint); }
.fx-main summary { list-style: none; cursor: pointer; }
.fx-main summary::-webkit-details-marker { display: none; }
.fx-main button { font: inherit; color: inherit; }
.fx-main :focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; border-radius: var(--radius-sm); }
/**/
@media (max-width: 768px) { .fx-main table { display: table !important; max-width: none !important; overflow: visible !important; white-space: normal; } }
.fx-hero h1 { max-width: 24ch; }
.fx-hero .exm-lede { max-width: 66ch; }

/**/
.fx-lnk { display: inline-flex; align-items: center; gap: 5px; min-height: 40px; padding: 0 2px; border: 0; background: none; font: 700 .86rem var(--ui), sans-serif; color: var(--blue-ink) !important; cursor: pointer; text-underline-offset: 3px; }
.fx-lnk:hover { text-decoration: underline; }
.fx-lnk .ap-i { width: 16px; height: 16px; }

/**/
.fx-m .fx-toc { position: static; }

/**/
.fx-xrow { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 18px; }
.fx-xrow-l { margin-right: 4px; font: 700 .88rem var(--ui), sans-serif; color: var(--ink); }
.fx-xrow .exm-chip { gap: 0; min-height: 40px; padding: 0 12px; font-size: .8rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 640px) {
  .fx-xrow { flex-wrap: nowrap; overflow-x: auto; margin-inline: -16px; padding: 2px 16px 6px; scrollbar-width: none; }
  .fx-xrow::-webkit-scrollbar { display: none; }
  .fx-xrow .exm-chip, .fx-xrow-l { flex: 0 0 auto; }
}

/**/
.fx-rc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 14px; }
.fx-rc { display: flex; flex-direction: column; padding: 18px 20px 16px; border-radius: 20px; background-color: var(--glass-bg); border: 1px solid var(--glass-border); box-shadow: var(--glass-up); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); scroll-margin-top: 130px; }
.fx-rc h3 { margin: 0; font: 600 1.12rem/1.3 var(--disp), sans-serif; letter-spacing: -.01em; color: var(--ink); }
.fx-rc-t { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 10px; padding: 0; border: 0; background: none; font: inherit; text-align: left; color: inherit; cursor: default; pointer-events: none; }
.fx-rc-t .ap-chev { display: none; }
.fx-freq { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 6px 0 0; font: 700 .8rem var(--ui), sans-serif; color: var(--violet-ink); }
.fx-bars { display: inline-flex; gap: 3px; }
.fx-bars i { width: 7px; height: 14px; border-radius: var(--radius-full); background-color: var(--soft); box-shadow: var(--glass-in); }
.fx-bars i.on { background-color: var(--violet); box-shadow: none; }
.fx-rc-s { list-style: none; counter-reset: rc; margin: 10px 0 0; padding: 0; }
.fx-rc-s li { counter-increment: rc; position: relative; padding: 10px 0 10px 30px; border-top: 1px solid var(--glass-edge); font-size: .94rem; line-height: 1.6; color: var(--ink); }
.fx-rc-s li:first-child { border-top: 0; }
.fx-rc-s li::before { content: counter(rc); position: absolute; left: 0; top: 10px; font: 700 .95rem var(--disp), sans-serif; color: var(--violet-ink); }
.fx-rc-s p { margin: 0; }
.fx-rc-go { margin: auto 0 0; padding-top: 12px; }
.fx-m .fx-rc { padding: 4px 16px; }
.fx-m .fx-rc-t { min-height: 44px; cursor: pointer; pointer-events: auto; }
.fx-m .fx-rc-t .ap-chev { display: block; }
.fx-m .fx-rc-t[aria-expanded="true"] .ap-chev { transform: rotate(180deg); }
/**/
.fx-m .fx-freq { margin: 4px 0 10px; }
.fx-m .fx-rc:not(.is-open) :is(.fx-rc-s, .fx-rc-go) { display: none; }
.fx-m .fx-rc.is-open { padding-bottom: 16px; }
.fx-m .fx-rc-grid { gap: 8px; }

/**/
.fx-tools { margin: 0 0 18px; }
.fx-chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px; scrollbar-width: none; }
.fx-chips::-webkit-scrollbar { display: none; }
.fx-chips .exm-chip { flex: 0 0 auto; }
.fx-main .exm-chip[aria-pressed="true"], .fx-main .exm-chip[aria-current="true"] { background-image: linear-gradient(var(--violet-tint), var(--violet-tint)); border-color: var(--violet-tint); color: var(--violet-ink); }
.fx-n { font-weight: 600; color: var(--muted); }
.fx-tipo { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 10px 0 0; font: 600 .9rem var(--ui), sans-serif; color: var(--ink); }
.fx-tipo b { font-family: var(--disp), sans-serif; font-weight: 600; }
.fx-rail, .fx-bar { display: none; }
.fx-m .fx-rail { position: sticky; top: 60px; z-index: 20; display: flex; gap: 8px; overflow-x: auto; margin: 0 calc(-1 * var(--fx-gut)) 14px; padding: 10px var(--fx-gut); background-color: var(--glass-chrome); -webkit-backdrop-filter: var(--glass-blur-chrome); backdrop-filter: var(--glass-blur-chrome); border-bottom: 1px solid var(--glass-border); scrollbar-width: none; }
.fx-m .fx-rail::-webkit-scrollbar { display: none; }
.fx-m .fx-rail .exm-chip { flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.fx-m .fx-rail .exm-chip.is-out { display: none; }
.fx-m .fx-bar { position: sticky; bottom: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 16px calc(-1 * var(--fx-gut)) 0; padding: 10px var(--fx-gut) calc(10px + env(safe-area-inset-bottom)); background-color: var(--glass-chrome); -webkit-backdrop-filter: var(--glass-blur-chrome); backdrop-filter: var(--glass-blur-chrome); border-top: 1px solid var(--glass-border); }
.fx-bar .ap-try { min-height: 44px; }
.fx-bar .ap-try[disabled] { opacity: .45; pointer-events: none; }
.fx-bar-n { font: 700 .86rem var(--ui), sans-serif; color: var(--ink); font-variant-numeric: tabular-nums; }

/**/
.fx-list { display: grid; gap: 22px; }
.fx-ex { padding: 20px 24px 16px; border-radius: 24px; background-color: var(--glass-bg); border: 1px solid var(--glass-border); box-shadow: var(--glass-up); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); scroll-margin-top: 92px; }
.fx-ex.is-out { display: none; }
.fx-m .fx-ex:not(.is-cur) { display: none; }
.fx-m .fx-ex { scroll-margin-top: 130px; padding: 16px 16px 12px; border-radius: 20px; }
.fx-ex-h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding-bottom: 14px; border-bottom: 1px solid var(--glass-edge); }
.fx-ex-t { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; margin: 0 auto 0 0; }
.fx-yr { font: 700 1.6rem/1 var(--disp), sans-serif; letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.fx-who { font: 700 .92rem/1.35 var(--ui), sans-serif; color: var(--ink); }
.fx-pts { display: inline-flex; align-items: center; gap: .3em; min-height: 28px; padding: 0 11px; border-radius: var(--radius-full); background-color: var(--glass-bg-2); border: 1px solid var(--glass-border); font: 700 .78rem var(--ui), sans-serif; color: var(--ink); white-space: nowrap; }
.fx-badge { display: inline-flex; align-items: center; gap: 5px; min-height: 28px; padding: 0 11px; border-radius: var(--radius-full); background-color: var(--glass-bg-2); font: 700 .78rem var(--ui), sans-serif; white-space: nowrap; }
.fx-badge .ap-i { width: 15px; height: 15px; stroke-width: 2.6; }
.fx-badge--ok { background-image: linear-gradient(var(--green-tint), var(--green-tint)); color: var(--green-ink); }
.fx-badge--diff { background-image: linear-gradient(var(--gold-tint), var(--gold-tint)); color: var(--gold-ink); }
.fx-also { flex-basis: 100%; font: 600 .84rem/1.5 var(--ui), sans-serif; color: var(--ink); }
.fx-also a { font-weight: 700; }

.fx-ex-b { display: grid; gap: 18px; margin-top: 16px; }
.fx-ex-b > * { min-width: 0; }
@media (min-width: 900px) {
  .fx-ex-b { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 32px; align-items: start; }
  /**/
  .fx-q { position: sticky; top: 92px; max-height: calc(100vh - 110px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--violet-tint) transparent; padding: 2px 6px 2px 2px; margin: -2px -6px -2px -2px; }
  .fx-ex-b--nocap .fx-q { position: static; max-height: none; overflow: visible; }
}

/**/
.fx-cap { margin: 0; }
.fx-cap-z { position: relative; display: block; width: 100%; padding: 0; border: 1px solid var(--glass-border); border-radius: 14px; background: #fff; box-shadow: var(--glass-sm); overflow: hidden; cursor: zoom-in; }
.fx-cap img { display: none; width: 100%; height: auto; }
html[lang="es"] .fx-cap:not(.is-alt) img[data-l="es"], html[lang="ca"] .fx-cap:not(.is-alt) img[data-l="ca"],
html[lang="es"] .fx-cap.is-alt img[data-l="ca"], html[lang="ca"] .fx-cap.is-alt img[data-l="es"], .fx-cap[data-one] img { display: block; }
[data-theme="dark"] .fx-cap img, [data-theme="dark"] .fx-fig img { filter: brightness(.93); }
.fx-cap-open { display: none; }
.fx-cap figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 0 16px; margin-top: 4px; }
.fx-cap-h { margin-right: auto; font: 700 .78rem var(--ui), sans-serif; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.fx-cap-only, .fx-cap-mask { flex-basis: 100%; font-size: .84rem; line-height: 1.5; color: var(--ink); }
html[lang="es"] .fx-cap.is-alt .fx-cap-other, html[lang="ca"] .fx-cap.is-alt .fx-cap-other, .fx-cap:not(.is-alt) .fx-cap-back { display: none; }
html[lang="ca"] .fx-cap-only { display: none; }
/**/
@media (max-width: 899px) {
  .fx-cap-z { max-height: 132px; }
  .fx-cap-z::after { content: ''; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, rgba(255,255,255,.96) 70%); }
  .fx-cap-open { position: absolute; left: 50%; bottom: 10px; z-index: 1; translate: -50% 0; display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; border-radius: var(--radius-full); background-color: var(--card); border: 1px solid var(--glass-border); box-shadow: var(--glass-sm); font: 700 .84rem var(--ui), sans-serif; color: var(--blue-ink); white-space: nowrap; }
  .fx-cap-zb { display: none; }
}

/**/
.fx-txt-t { margin-top: 8px; }
.fx-txt-t .ap-chev { width: 16px; height: 16px; stroke: currentColor; }
.fx-txt-t[aria-expanded="true"] .ap-chev { transform: rotate(180deg); }
.fx-txt-t[aria-expanded="true"] .fx-txt-show, .fx-txt-t[aria-expanded="false"] .fx-txt-hide { display: none; }
.fx-stxt { margin-top: 12px; }
.fx-ex-b--nocap .fx-stxt { margin-top: 0; }
@media (min-width: 900px) { .fx-ex-b:not(.fx-ex-b--nocap) .fx-stxt:not(.is-open) { display: none; } }
@media (max-width: 899px) { .fx-txt-t { display: none; } }
.fx-st { font-size: .97rem; line-height: 1.7; color: var(--ink); }
.fx-st p { margin: 0; }
.fx-st p + p { margin-top: 10px; }
.fx-st-h { font: 600 1.02rem/1.35 var(--disp), sans-serif; }
.fx-st .fx-st-pts { margin-top: 2px; font: 700 .8rem var(--ui), sans-serif; color: var(--muted); }
.fx-st .fx-st-opt { margin-top: 18px; font: 700 .82rem var(--disp), sans-serif; letter-spacing: .06em; color: var(--violet-ink); }
.fx-st-ap b { display: inline-grid; place-items: center; min-width: 30px; height: 24px; margin-right: 2px; padding: 0 7px; border-radius: var(--radius-full); background-color: var(--glass-bg-2); background-image: linear-gradient(var(--violet-tint), var(--violet-tint)); font: 700 .8rem var(--disp), sans-serif; color: var(--violet-ink); vertical-align: 1px; }
.fx-st .fx-st-dat { padding: 10px 12px; border-radius: 12px; background-color: var(--soft); box-shadow: var(--glass-in); font-size: .9rem; line-height: 1.65; }
/**/
.fx-st-tw { margin-top: 10px; overflow-x: auto; border-radius: 12px; background-color: var(--soft); box-shadow: var(--glass-in); }
.fx-st-tab { border-collapse: collapse; min-width: 100%; font-size: .88rem; line-height: 1.45; color: var(--ink); }
.fx-st-tab th, .fx-st-tab td { padding: 7px 10px; border-bottom: 1px solid var(--glass-border); text-align: center; vertical-align: middle; }
.fx-st-tab th { font-weight: 700; }
.fx-st-tab tr > :first-child { min-width: 10em; text-align: left; }
.fx-st-tab tbody tr:last-child td { border-bottom: 0; }
/**/
html[lang="es"] .fx-fig img[data-l="ca"], html[lang="ca"] .fx-fig img[data-l="es"] { display: none; }
.fx-own { margin: 0 0 10px; font: 600 .84rem/1.5 var(--ui), sans-serif; color: var(--ink); }
html[lang="ca"] .fx-own { display: none; }
.fx-fig { margin: 12px 0 0; padding: 8px; border-radius: 14px; background: #fff; border: 1px solid var(--glass-border); box-shadow: var(--glass-sm); }
.fx-fig img { display: block; width: auto; max-width: 100%; height: auto; margin: 0 auto; }
@media (min-width: 900px) { .fx-ex-b:not(.fx-ex-b--nocap) .fx-q .fx-fig { display: none; } .fx-ex-b:not(.fx-ex-b--nocap) .fx-stxt.is-open .fx-fig { display: block; } }
/**/
@media (min-width: 900px) { .fx-ex-b:not(.fx-ex-b--nocap) .fx-q .fx-fig.fx-fig--re { display: block; } }
.fx-fig-cap { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2px 12px; margin: 6px 4px 2px; font: 600 .8rem/1.45 var(--ui), sans-serif; color: #3b3554; text-align: center; }
.fx-fig .fx-fig-zb { color: #4b33b5; }

/**/
.fx-coach { display: flex; align-items: center; gap: 8px; margin: 0; font: 700 .88rem var(--ui), sans-serif; color: var(--ink); }
.fx-coach .ap-i { color: var(--violet-ink); }
.fx-opt { margin: 20px 0 0; font: 700 .82rem var(--disp), sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--violet-ink); }
.fx-ap { margin-top: 14px; padding: 14px 16px; border-radius: 18px; background-color: var(--glass-bg-2); border: 1px solid var(--glass-border); box-shadow: var(--glass-sm); scroll-margin-top: 130px; }
.fx-ap.is-hit { border-color: var(--violet); box-shadow: var(--glass-sm), 0 0 0 3px var(--violet-tint); }
.fx-ap-h { display: flex; align-items: center; gap: 10px; margin: 0 0 4px; }
.fx-apl { display: inline-grid; place-items: center; min-width: 38px; height: 30px; padding: 0 10px; border-radius: var(--radius-full); background-color: var(--glass-bg-2); background-image: linear-gradient(var(--violet-tint), var(--violet-tint)); font: 700 .92rem var(--disp), sans-serif; color: var(--violet-ink); white-space: nowrap; }
.fx-ap-pts { font: 700 .8rem var(--ui), sans-serif; color: var(--muted); }
.fx-plan { margin: 10px 0 0; font-size: .95rem; line-height: 1.6; color: var(--ink); }
.fx-plan > b { font-family: var(--disp), sans-serif; font-weight: 600; color: var(--violet-ink); }
.fx-steps { padding: 2px 0 0; }
.fx-steps li { animation: fxIn .3s var(--ease-out); }
.fx-end { margin-top: 6px; animation: fxIn .3s var(--ease-out); }
@keyframes fxIn { from { opacity: 0; transform: translateY(6px); } }
.fx-res { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 10px; align-items: baseline; margin: 0; padding: 10px 12px; border-radius: 14px; background-color: var(--glass-bg-2); background-image: linear-gradient(var(--green-tint), var(--green-tint)); font-size: .95rem; line-height: 1.55; color: var(--ink); }
.fx-res-l { font: 700 .76rem var(--ui), sans-serif; color: var(--green-ink); white-space: nowrap; }
.fx-res > span:last-child { min-width: 0; overflow-x: auto; }
/**/
.fx-res math, .fx-pv math { margin-block: 3px; }
/**/
.ap-ch { display: block; padding-left: 1.6em; text-indent: -1.6em; line-height: 1.9; }
.ap-ch + .ap-ch { margin-top: .3em; }
.ap-ch math { text-indent: 0; }
/**/
.fx-scw { position: relative; display: block; margin-top: 8px; }
.fx-scw > .ap-fx { margin-top: 0; }
.fx-sc:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }
.fx-sc { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 64px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 64px), transparent); }
.fx-sc.at-mid { -webkit-mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 64px), transparent); mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 64px), transparent); }
.fx-sc.at-end { -webkit-mask-image: linear-gradient(90deg, transparent, #000 40px); mask-image: linear-gradient(90deg, transparent, #000 40px); }
.fx-slide { position: absolute; right: 10px; top: -11px; display: inline-flex; align-items: center; gap: 2px; padding: 3px 8px 3px 10px; border-radius: var(--radius-full); background-color: var(--card); box-shadow: var(--glass-sm); font: 700 .74rem var(--ui), sans-serif; color: var(--violet-ink); pointer-events: none; transition: opacity .25s var(--ease-out, ease-out); }
.fx-slide svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.fx-scw:not(.is-over) .fx-slide { display: none; }
.fx-scw.seen .fx-slide { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .fx-slide { transition: none; } }
@media print { .fx-slide { display: none; } .fx-sc { -webkit-mask-image: none; mask-image: none; } }
.fx-pv { margin: 8px 0 0; font-size: .88rem; line-height: 1.5; color: var(--ink); overflow-x: auto; overflow-y: hidden; }
.fx-pv-v { font-weight: 700; font-variant-numeric: tabular-nums; }
/**/
.fx-js .fx-ap [data-s]:not(.is-on) { display: none; }
.fx-js .fx-steps:not(:has(> .is-on)) { display: none; }
.fx-ctl { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 12px 0 0; }
html:not(.fx-js) .fx-ctl, .fx-ap.is-done .fx-ctl { display: none; }
.fx-prog { display: flex; flex-basis: 100%; gap: 4px; }
.fx-prog i { flex: 1; height: 5px; border-radius: var(--radius-full); background-color: var(--soft); box-shadow: var(--glass-in); }
.fx-prog i.on { background-color: var(--violet); box-shadow: none; }
.fx-next { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: var(--radius-full); border: 1px solid var(--glass-border); background-color: var(--card); box-shadow: var(--glass-sm); font: 600 .9rem var(--disp), sans-serif; color: var(--blue-ink); cursor: pointer; transition: transform .12s var(--spring), box-shadow .12s; }
.fx-next:hover { transform: translateY(-2px); }
.fx-next:active { transform: none; box-shadow: var(--glass-in); }

/**/
.fx-ver { margin-top: 16px; padding: 12px 14px; border-radius: 16px; background-color: var(--glass-bg-2); background-image: linear-gradient(var(--gold-tint), var(--gold-tint)); font-size: .92rem; line-height: 1.6; color: var(--ink); }
.fx-ver p { margin: 0; }
.fx-ver-h { display: flex; align-items: center; gap: 8px; margin-bottom: 4px !important; }
.fx-ver-h .ap-i { width: 18px; height: 18px; color: var(--gold-ink); }
.fx-ver-h b { font-family: var(--disp), sans-serif; font-weight: 600; }

/**/
.fx-ex-tit { flex-basis: 100%; font: 600 1.18rem/1.3 var(--disp), sans-serif; letter-spacing: -.01em; color: var(--ink); text-wrap: balance; }
.fx-only { flex-basis: 100%; margin: 0; font: 600 .84rem/1.5 var(--ui), sans-serif; color: var(--ink); }
.fx-pr-note { max-width: 74ch; margin: 0 0 18px; font-size: .92rem; line-height: 1.6; color: var(--ink); }
@media (min-width: 900px) {
  .fx-ex-b--wide { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .fx-ex-b--wide .fx-q { position: static; max-height: none; overflow: visible; padding: 0; margin: 0; }
}
/**/
.fx-ex-b--wide :is(.fx-st, .fx-plan, .fx-coach, .fx-own) { max-width: 78ch; }
/**/
.fx-capd-s { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font: 700 .78rem var(--ui), sans-serif; letter-spacing: .04em; text-transform: uppercase; color: var(--ink); }
.fx-capd-s .ap-chev { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; transition: rotate .2s var(--spring); }
.fx-capd[open] > .fx-capd-s .ap-chev { rotate: 180deg; }
.fx-capd .fx-cap { max-width: 780px; }
.fx-capd .fx-cap-h { display: none; }

/**/
.fx-ap.fx-pr { padding: 16px 0 0; border: 0; border-top: 1px solid var(--glass-edge); border-radius: 0; background: none; box-shadow: none; }
.fx-ap.fx-pr.is-hit { border-top-color: var(--violet); }
.fx-ap-tit { font: 600 1.02rem/1.35 var(--disp), sans-serif; color: var(--ink); }
.fx-pr .fx-ap-h { flex-wrap: wrap; row-gap: 2px; }
.fx-pr-grid { display: grid; gap: 16px; margin-top: 14px; }
.fx-pr-grid > * { min-width: 0; }
@media (min-width: 900px) { .fx-pr-grid { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 20px; align-items: start; } }
.fx-pr-sh, .fx-pr-h { margin: 0; font: 600 1rem/1.35 var(--disp), sans-serif; letter-spacing: -.01em; color: var(--ink); }

/**/
.fx-pr-sheet { position: relative; display: grid; gap: 10px; padding: 18px 20px 20px 72px; border-radius: 16px; border: 1px solid var(--glass-border); background-color: var(--card); box-shadow: var(--glass-sm); }
.fx-pr-sheet::before { content: ''; position: absolute; left: 62px; top: 0; bottom: 0; width: 1px; background-color: var(--coral-tint); }
.fx-pr-par { position: relative; margin: 0 -8px; padding: 4px 8px; border-radius: 10px; scroll-margin: 120px 0 24px; transition: background-color .25s var(--ease-out); }
.fx-pr-par.on { background-color: var(--gold-tint); }
.fx-pr-par p { margin: 0; font-size: .96rem; line-height: 1.7; color: var(--ink); }
/**/
.fx-pr-mk { position: absolute; left: -60px; top: 6px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 3px; width: 50px; }
.fx-pr-mk b, .fx-pr-i::before { display: grid; place-items: center; flex: none; width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--coral-ink); font: 700 .72rem/1 var(--disp), sans-serif; color: var(--coral-ink); font-variant-numeric: tabular-nums; }
u.fx-tm { text-decoration: underline; text-decoration-color: var(--violet); text-decoration-thickness: 2px; text-underline-offset: 3px; }

/**/
.fx-pr-pauta { display: grid; gap: 10px; align-content: start; padding: 16px; border-radius: 16px; border: 1px solid var(--glass-border); background-color: var(--glass-bg-2); box-shadow: var(--glass-sm); }
@media (min-width: 900px) {
  .fx-pr-pauta { position: sticky; top: 92px; max-height: calc(100vh - 110px); overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--violet-tint) transparent; }
  /**/
  .fx-pr-score { position: sticky; bottom: 0; z-index: 1; }
}
.fx-pr-rule { margin: 0; font-size: .86rem; line-height: 1.5; color: var(--ink); }
/**/
.fx-pr-mh { margin: 4px 0 -6px; font: 700 .72rem var(--ui), sans-serif; letter-spacing: .04em; text-transform: uppercase; color: var(--ink); }
/**/
.fx-pr-list { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; counter-reset: pr; }
/**/
.fx-pr-list > li { display: flex; align-items: flex-start; border-radius: 12px; counter-increment: pr; transition: background-color .2s var(--ease-out), box-shadow .2s var(--ease-out); }
.fx-pr-list > li:has(input:checked) { background-color: var(--card); box-shadow: var(--glass-sm); }
.fx-pr-i { display: grid; flex: 1; grid-template-columns: 20px 22px minmax(0, 1fr) auto; column-gap: 10px; align-items: start; min-width: 0; min-height: 44px; padding: 11px 4px 11px 8px; font-size: .9rem; line-height: 1.45; color: var(--ink); cursor: pointer; }
.fx-pr-i::before { content: counter(pr); grid-column: 2; grid-row: 1; }
.fx-pr-i > input { grid-column: 1; grid-row: 1; margin-top: 1px; }
.fx-pr-i > [data-i18n-html] { grid-column: 3; grid-row: 1; }
.fx-pr-ip { grid-column: 4; grid-row: 1; font: 700 .8rem/1.8 var(--ui), sans-serif; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fx-main a.fx-pr-go { display: inline-grid; flex: none; place-items: center; min-width: 44px; min-height: 44px; border-radius: 12px; font: 700 .8rem var(--ui), sans-serif; text-decoration: none; }
.fx-main a.fx-pr-go:hover { text-decoration: underline; }
.fx-pr-terms { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.fx-pr-tg { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px 0 12px; border-radius: var(--radius-full); border: 1px solid var(--glass-border); font: 700 .84rem/1.3 var(--ui), sans-serif; color: var(--ink); cursor: pointer; transition: background-color .2s var(--ease-out), box-shadow .2s var(--ease-out); }
.fx-pr-tg:has(input:checked) { background-color: var(--card); box-shadow: var(--glass-sm); }
/**/
.fx-pr-opt { grid-column: 3; grid-row: 2; justify-self: start; margin-top: 4px; padding: 1px 9px; border-radius: var(--radius-full); background-color: var(--glass-bg-2); background-image: linear-gradient(var(--violet-tint), var(--violet-tint)); font: 700 .74rem/1.5 var(--ui), sans-serif; color: var(--violet-ink); white-space: nowrap; }
/**/
.fx-pr-ctr { display: grid; gap: 8px; margin-top: 16px; padding: 14px 18px 16px; border-radius: 16px; background-color: var(--soft); box-shadow: var(--glass-in); color: var(--ink); }
.fx-pr-ctr p { margin: 0; font-size: .96rem; line-height: 1.7; }
.fx-pr-ctr .fx-pr-ctrn { font-size: .85rem; line-height: 1.5; font-style: italic; }
/**/
.fx-pr-pauta :is(input, .fx-pr-go) { scroll-margin: 100px 0 150px; }

/**/
.fx-pr-score:empty { display: none; }
.fx-pr-score { display: grid; gap: 6px; padding: 14px 16px; border-radius: 16px; border: 1px solid var(--glass-border); background-color: var(--card); box-shadow: var(--glass-sm); color: var(--ink); }
.fx-pr-score p { margin: 0; }
.fx-pr-sc-h { font: 700 .72rem var(--ui), sans-serif; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.fx-pr-sc-t { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; font: 600 .95rem var(--disp), sans-serif; }
.fx-pr-sc-t b { font: 700 2rem/1 var(--disp), sans-serif; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.fx-pr-sc-bar { display: block; height: 8px; border-radius: var(--radius-full); background-color: var(--soft); box-shadow: var(--glass-in); overflow: hidden; }
.fx-pr-sc-bar i { display: block; width: 0; height: 100%; border-radius: inherit; background-color: var(--cta); transition: width .35s var(--ease-out); }
.fx-pr-sc-p { font: 600 .86rem/1.5 var(--ui), sans-serif; font-variant-numeric: tabular-nums; }
.fx-pr-how { margin: 0; font-size: .8rem; line-height: 1.5; color: var(--ink); }

@media (max-width: 899px) {
  .fx-ap.fx-pr { padding-top: 14px; }
  .fx-pr-sheet { padding: 14px 12px 16px 46px; }
  .fx-pr-sheet::before { left: 38px; }
  .fx-pr-par { margin: 0 -6px; padding: 4px 6px; scroll-margin-top: 140px; }
  .fx-pr-mk { left: -34px; width: 24px; flex-direction: column; align-items: flex-end; }
  .fx-pr-pauta { padding: 14px 12px; }
  .fx-pr-i { padding-inline: 6px 2px; column-gap: 8px; }
  /**/
  .fx-pr-ip { grid-column: 3; grid-row: 2; line-height: 1.5; }
  /**/
  .fx-pr-score { position: sticky; bottom: calc(76px + env(safe-area-inset-bottom)); z-index: 5; gap: 4px; padding: 10px 14px; box-shadow: var(--glass-up); }
  /**/
  .fx-pr-pauta :is(input, .fx-pr-go) { scroll-margin: 140px 0 calc(200px + env(safe-area-inset-bottom)); }
  .fx-pr-sc-t b { font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .fx-pr-par, .fx-pr-list > li, .fx-pr-tg, .fx-pr-sc-bar i, .fx-capd-s .ap-chev { transition: none; }
}

/**/
.fx-src { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--glass-edge); }
.fx-src p { margin: 0; font-size: .8rem; line-height: 1.55; color: var(--ink); }
.fx-src-l { display: flex; flex-wrap: wrap; gap: 0 18px; margin-top: 4px !important; }
.fx-src-l a { display: inline-flex; align-items: center; gap: 5px; min-height: 36px; font-weight: 700; font-size: .84rem; }
.fx-src-l .ap-i { width: 14px; height: 14px; }

/**/
.fx-oth { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }

/**/
.fx-lb[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); }
.fx-lb { width: min(1000px, 94vw); max-width: none; height: 92vh; max-height: none; padding: 0; border: 1px solid var(--glass-border); border-radius: 20px; background-color: var(--card); box-shadow: var(--glass-up); color: var(--ink); overflow: hidden; }
.fx-lb::backdrop { background: rgba(var(--shd), .55); }
.fx-lb-bar { display: flex; align-items: center; gap: 4px 12px; margin: 0; padding: 8px 8px 8px 18px; border-bottom: 1px solid var(--glass-border); }
.fx-lb-bar p { margin: 0; font: 600 1rem var(--disp), sans-serif; color: var(--ink); }
.fx-lb-hint { margin-right: auto; font: 600 .82rem var(--ui), sans-serif; color: var(--muted); }
.fx-lb-x { display: grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--glass-border); background-color: var(--card-2); box-shadow: var(--glass-sm); font: 400 1.6rem/1 var(--ui), sans-serif; color: var(--ink); cursor: pointer; }
.fx-lb-sc { overflow: auto; overscroll-behavior: contain; background: #fff; }
.fx-lb-sc img { display: block; width: 100%; height: auto; cursor: zoom-in; }
/**/
.fx-lb-sc.is-zoom img { width: 160%; max-width: none !important; cursor: zoom-out; }
@media (max-width: 899px) {
  .fx-lb { width: 100vw; height: 100dvh; border-radius: 0; border: 0; }
  .fx-lb-sc.is-zoom img { width: 230%; }
  .fx-lb-hint { display: none; }
  .fx-lb-bar p { margin-right: auto; }
}

/**/
.fx-cards { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.fx-cards .ap-card p:last-child { font-size: .88rem; color: var(--ink); }
.fx-papers { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap: 12px; }
.fx-paper { padding: 14px 16px; border-radius: 18px; background-color: var(--glass-bg-2); border: 1px solid var(--glass-border); box-shadow: var(--glass-sm); }
.fx-paper h3 { margin: 0 0 6px; font: 600 1rem/1.35 var(--disp), sans-serif; color: var(--ink); }
.fx-paper ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.fx-paper a { display: flex; flex-wrap: wrap; gap: 0 8px; align-items: baseline; min-height: 36px; padding: 6px 0; font-size: .9rem; line-height: 1.4; color: var(--ink); }
.fx-paper a b { color: var(--violet-ink); }
.fx-paper a:hover b { text-decoration: underline; text-underline-offset: 3px; }

/**/
.fx-paper-x { margin: -2px 0 4px; }
.fx-paper-x a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; font: 700 .86rem var(--ui), sans-serif; }
.fx-paper-x .ap-i { width: 16px; height: 16px; }

/**/
.fx-vh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.fx-one .fx-ex:not(.is-cur) { display: none; }
.fx-xsrc { margin-top: 10px !important; }
.fx-tabs .exm-chip b { display: inline-grid; place-items: center; min-width: 26px; height: 26px; margin-right: 2px; padding: 0 7px; border-radius: var(--radius-full); background-color: var(--soft); font: 700 .82rem var(--disp), sans-serif; color: var(--ink); font-variant-numeric: tabular-nums; }
.fx-tabs .exm-chip[aria-current="true"] b { background-color: var(--card); color: var(--violet-ink); }
@media (min-width: 900px) {
  /**/
  .fx-one .fx-rail { display: grid; grid-template-columns: repeat(var(--fx-n, 4), minmax(0, 1fr)); gap: 4px; margin: 0 0 18px; padding: 4px; border-radius: 24px; background-color: var(--soft); box-shadow: var(--glass-in); scroll-margin-top: 84px; }
  .fx-one .fx-rail .exm-chip { justify-content: center; min-height: 52px; padding: 6px 12px; border-color: transparent; border-radius: 20px; background: none; box-shadow: none; color: var(--ink); line-height: 1.3; text-align: center; }
  .fx-one .fx-rail .exm-chip:hover { background-color: var(--glass-bg-2); }
  .fx-one .fx-rail .exm-chip[aria-current="true"] { background-color: var(--card); background-image: none; border-color: var(--glass-border); box-shadow: var(--glass-sm); color: var(--violet-ink); }
  .fx-one .fx-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 18px; }
}
/**/
.fx-xsum h2 + .ap-sub { margin-bottom: 14px; }
.fx-xbar { display: flex; gap: 3px; height: 18px; border-radius: var(--radius-full); overflow: hidden; }
.fx-xbar i { display: block; min-width: 6px; }
.fx-f--violet { background-color: var(--violet); }
.fx-f--blue { background-color: var(--blue); }
.fx-f--green { background-color: var(--green); }
.fx-f--coral { background-color: var(--coral); }
.fx-f--gold { background-color: var(--gold); }
.fx-f--sky { background-color: var(--sky); }
.fx-f--streak { background-color: var(--streak); }
/**/
.fx-xopt { background-color: var(--card); background-image: repeating-linear-gradient(135deg, var(--c1) 0 6px, var(--c2) 6px 12px); }
.fx-xleg { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 12px 0 0; padding: 0; list-style: none; font: 600 .92rem/1.4 var(--ui), sans-serif; color: var(--ink); }
.fx-xleg li { display: flex; align-items: flex-start; gap: 8px; padding: 7px 0; }
.fx-xleg b { margin-left: 4px; font-family: var(--disp), sans-serif; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fx-xleg a { font-weight: 700; }
.fx-xsw { flex: none; width: 12px; height: 12px; margin-top: .2em; border-radius: 4px; }
/**/
.fx-xrule { margin: 14px 0 0; padding: 12px 14px; border-radius: 14px; background-color: var(--soft); box-shadow: var(--glass-in); font-size: .92rem; line-height: 1.6; color: var(--ink); }
.fx-xrule b { font-family: var(--disp), sans-serif; font-weight: 600; }
/**/
.fx-xyears { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.fx-xyears li { display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 10px; }
.fx-xyears li > b { font: 700 1.05rem var(--disp), sans-serif; color: var(--ink); font-variant-numeric: tabular-nums; }
.fx-xyears li > span { display: flex; flex-wrap: wrap; gap: 8px; }
.fx-xhere { gap: 8px; background-color: var(--card); background-image: linear-gradient(var(--violet-tint), var(--violet-tint)); border-color: var(--violet-tint); color: var(--ink); cursor: default; }
.fx-xhere small { font: 700 .74rem var(--ui), sans-serif; color: var(--ink); }

/**/
.fx-apuntes { margin: 24px 0 0; text-align: center; }

/**/
#fx-print { display: none; }
@media print {
  @page { size: A4; margin: 14mm; }
  body::before { display: none !important; }
  body.fx-printing > *:not(#fx-print) { display: none !important; }
  body.fx-printing #fx-print { display: block; color: #33304a; background: #fff; font: 11pt/1.5 var(--ui), sans-serif; }
  #fx-print h1 { margin: 0; font: 700 17pt/1.2 var(--disp), sans-serif; color: #33304a; }
  #fx-print h2 { margin: 0 0 4pt; font: 700 12pt/1.3 var(--disp), sans-serif; color: #33304a; }
  #fx-print h3 { margin: 8pt 0 2pt; font: 700 10.5pt var(--disp), sans-serif; color: #33304a; }
  #fx-print .pp-meta { margin: 4pt 0 0; padding-bottom: 8pt; border-bottom: 1.5pt solid #33304a; font-weight: 700; }
  #fx-print .pp-who { display: flex; gap: 24pt; margin: 12pt 0 8pt; }
  #fx-print .pp-who span { flex: 1; padding-bottom: 2pt; border-bottom: 1pt solid #b9b3c9; }
  #fx-print .pp-ex { margin-top: 12pt; break-inside: avoid; }
  #fx-print .pp-ex + .pp-ex { break-before: page; }
  #fx-print .pp-ex img { display: block; width: 100%; height: auto; border: 1pt solid #d6d1e1; }
  #fx-print .pp-lines { height: 150pt; margin-top: 8pt; background: repeating-linear-gradient(transparent 0 15pt, #d6d1e1 15pt 16pt); }
  #fx-print .pp-sol { break-before: page; }
  #fx-print .pp-sx { margin-top: 10pt; padding-top: 6pt; border-top: 1pt solid #d6d1e1; }
  #fx-print .pp-sx p, #fx-print .pp-sx li { color: #33304a; break-inside: avoid; }
  #fx-print .ap-steps { padding: 0 0 0 4pt; }
  #fx-print .ap-steps li { padding: 3pt 0 3pt 20pt; border: 0; }
  #fx-print .ap-steps li::before { width: 14pt; height: 14pt; top: 3pt; background: none; color: #33304a; font-size: 9pt; }
  #fx-print .ap-fx { margin-top: 2pt; padding: 2pt 0; background: none; box-shadow: none; color: #33304a; }
  #fx-print .fx-res { padding: 3pt 0; background: none; color: #33304a; }
  #fx-print .fx-plan > b { color: #33304a; }
  #fx-print .fx-res-l { color: #33304a; }
  #fx-print .fx-fig { border: 0; box-shadow: none; padding: 0; }
  #fx-print .fx-fig img { max-height: 160pt; }
  /**/
  #fx-print.pp-wide .fx-st, #fx-print.pp-wide .fx-st * { color: #33304a; }
  #fx-print.pp-wide .fx-st-dat, #fx-print.pp-wide .fx-st-tw { background: none; box-shadow: none; }
  #fx-print .fx-pr-grid { display: block; margin-top: 4pt; }
  #fx-print .fx-pr-sheet { display: block; padding: 2pt 0 2pt 30pt; border: 0; background: none; box-shadow: none; }
  #fx-print .fx-pr-sheet::before { left: 24pt; background-color: #d6d1e1; }
  #fx-print .fx-pr-par { margin: 0; padding: 2pt 0; break-inside: avoid; }
  #fx-print .fx-pr-par p { font-size: 10.5pt; line-height: 1.5; color: #33304a; }
  #fx-print .fx-pr-mk { left: -30pt; top: 3pt; width: 22pt; flex-direction: column; align-items: flex-end; }
  #fx-print .fx-pr-mk b, #fx-print .fx-pr-i::before { width: 14pt; height: 14pt; border-color: #33304a; color: #33304a; font-size: 7.5pt; }
  #fx-print :is(.fx-pr-sh, .fx-pr-h) { margin: 6pt 0 2pt; font-size: 10.5pt; color: #33304a; }
  #fx-print .fx-pr-pauta { display: block; position: static; max-height: none; overflow: visible; margin-top: 6pt; padding: 0; border: 0; background: none; box-shadow: none; }
  #fx-print .fx-pr-rule, #fx-print .fx-pr-ip { color: #33304a; }
  #fx-print .fx-pr-list > li { background: none; box-shadow: none; break-inside: avoid; }
  #fx-print .fx-pr-i { min-height: 0; padding: 2pt 0; grid-template-columns: 0 16pt minmax(0, 1fr) auto; column-gap: 6pt; color: #33304a; }
  #fx-print .fx-pr-terms { gap: 2pt 14pt; }
  #fx-print .fx-pr-tg { min-height: 0; padding: 0; border: 0; background: none; box-shadow: none; font-weight: 400; color: #33304a; }
  /**/
  #fx-print .fx-pr-sh, #fx-print .fx-pr-h { color: #33304a; }
  /**/
  #fx-print .fx-pr-ctr { margin-top: 6pt; padding: 4pt 0 0; border-radius: 0; background: none; box-shadow: none; color: #33304a; break-inside: avoid; }
  #fx-print .fx-pr-ctr p { font-size: 10.5pt; line-height: 1.5; color: #33304a; }
  #fx-print .fx-pr-opt { background: none; border: 1pt solid #b9b3c9; color: #33304a; }
  #fx-print u.fx-tm { text-decoration-color: #33304a; }
  #fx-print .pp-foot { margin-top: 14pt; padding-top: 6pt; border-top: 1pt solid #d6d1e1; font-size: 9pt; color: #5d5680; }
}

@media (prefers-reduced-motion: reduce) {
  .fx-steps li, .fx-end { animation: none; }
  .fx-next { transition: none; }
}
