@font-face{font-family:Sora;src:url("fonts/sora-latin-400-normal.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Sora;src:url("fonts/sora-latin-500-normal.woff2") format("woff2");font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Sora;src:url("fonts/sora-latin-600-normal.woff2") format("woff2");font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Sora;src:url("fonts/sora-latin-700-normal.woff2") format("woff2");font-style:normal;font-weight:700;font-display:swap}

:root.jsfna-dialog-open{overflow:hidden}
.jsfna-fullscreen-page{margin:0!important;background:#faf8fc!important}
.jsfna-fullscreen-page .jsfna-standalone-canvas{min-height:100vh}
.jsfna-app{
	--jsfna-primary:#6840b0;
	--jsfna-primary-deep:var(--jsfna-secondary,#5a2d91);
	--jsfna-lilac:#d0b8f0;
	--jsfna-lavender:#f6f1fc;
	--jsfna-bg:#faf8fc;
	--jsfna-neutral:#eee;
	--jsfna-ink:#1a1e1c;
	--jsfna-muted:#616966;
	--jsfna-surface:#fff;
	--jsfna-danger:#a52b3a;
	--jsfna-border:rgba(90,45,145,.19);
	--jsfna-border-strong:rgba(90,45,145,.32);
	--jsfna-shadow:0 12px 32px rgba(52,31,75,.09);
	--jsfna-shadow-hover:0 16px 36px rgba(52,31,75,.13);
	--jsfna-radius-sm:8px;
	--jsfna-radius-control:12px;
	--jsfna-radius-card:16px;
	--jsfna-radius-panel:24px;
	--jsfna-radius-pill:999px;
	--jsfna-max:1200px;
	font:400 16px/1.55 Sora,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
	color:var(--jsfna-ink);
	background:var(--jsfna-bg);
	min-height:100vh;
	isolation:isolate;
	-webkit-font-smoothing:antialiased;
}
.jsfna-app,.jsfna-app *,.jsfna-app *::before,.jsfna-app *::after{box-sizing:border-box}
.jsfna-app button,.jsfna-app input,.jsfna-app select,.jsfna-app textarea{font:inherit}
.jsfna-app button,.jsfna-app summary,.jsfna-app select{touch-action:manipulation}
.jsfna-app button{color:inherit}
.jsfna-app a{color:var(--jsfna-primary-deep);text-underline-offset:3px;text-decoration-thickness:1px}
.jsfna-app img{max-width:100%;height:auto}
.jsfna-app h1,.jsfna-app h2,.jsfna-app h3,.jsfna-app p{margin-top:0}
.jsfna-app h1,.jsfna-app h2,.jsfna-app h3{letter-spacing:-.035em;line-height:1.12}
.jsfna-app h1{font-size:clamp(2.25rem,7vw,4.8rem);margin-bottom:16px}
.jsfna-app h2{font-size:clamp(1.65rem,4vw,2.6rem);margin-bottom:12px}
.jsfna-app h3{font-size:clamp(1.2rem,2vw,1.65rem);margin-bottom:8px}
.jsfna-app :focus-visible{outline:3px solid var(--jsfna-primary);outline-offset:3px}
.jsfna-app [hidden]{display:none!important}
.jsfna-icon{display:inline-block;flex:0 0 auto;vertical-align:middle}
.jsfna-skip-link{position:fixed;left:16px;top:-80px;z-index:1000;background:var(--jsfna-ink);color:#fff!important;padding:12px 16px;border-radius:0 0 12px 12px;text-decoration:none;font-weight:700}
.jsfna-skip-link:focus{top:0}
.jsfna-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--jsfna-bg)}

/* Cabecera y navegación compartidas */
.jsfna-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);border-bottom:1px solid var(--jsfna-border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.jsfna-header-inner{width:min(calc(100% - 24px),var(--jsfna-max));min-height:68px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
.jsfna-brand{min-width:0;min-height:52px;padding:4px 0;display:flex;align-items:center;gap:10px;background:transparent;border:0;text-align:left;cursor:pointer}
.jsfna-brand-mark{width:44px;height:44px;object-fit:contain;flex:0 0 44px}
.jsfna-brand-copy{min-width:0;display:flex;flex-direction:column;gap:1px}
.jsfna-brand-copy strong{font-size:15px;letter-spacing:.12em;line-height:1.2}
.jsfna-brand-copy small{display:none;font-size:12px;color:var(--jsfna-muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jsfna-desktop-nav{display:none;align-items:center;justify-content:center;gap:4px}
.jsfna-desktop-nav button{min-height:44px;padding:9px 12px;display:flex;align-items:center;gap:7px;background:transparent;border:1px solid transparent;border-radius:var(--jsfna-radius-control);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.jsfna-desktop-nav button:hover{background:var(--jsfna-lavender)}
.jsfna-desktop-nav button[aria-current="page"]{color:var(--jsfna-primary-deep);background:var(--jsfna-lavender);border-color:var(--jsfna-border)}
.jsfna-space-button{min-width:44px;min-height:44px;padding:8px 12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-pill);font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 3px 12px rgba(52,31,75,.05)}
.jsfna-space-button:hover{border-color:var(--jsfna-primary);color:var(--jsfna-primary-deep)}
.jsfna-space-button span{display:none}
.jsfna-mobile-nav{position:fixed;z-index:45;left:0;right:0;bottom:0;min-height:68px;padding:6px max(4px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:rgba(255,255,255,.97);border-top:1px solid var(--jsfna-border);box-shadow:0 -10px 28px rgba(52,31,75,.08);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.jsfna-mobile-nav button{min-width:0;min-height:56px;padding:5px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:transparent;border:0;border-radius:var(--jsfna-radius-control);color:#69706d;font-size:12px;font-weight:600;cursor:pointer}
.jsfna-mobile-nav button span{max-width:100%;line-height:1.05;text-align:center}
.jsfna-mobile-nav button[aria-current="page"]{color:var(--jsfna-primary-deep);background:var(--jsfna-lavender)}
.jsfna-mobile-nav button[aria-current="page"] .jsfna-icon{fill:rgba(104,64,176,.12)}

.jsfna-system-banner{width:100%;min-height:48px;padding:10px 16px;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--jsfna-primary-deep);color:#fff;font-size:12px;line-height:1.4}
.jsfna-system-banner button{min-height:44px;padding:8px 12px;background:#fff;color:var(--jsfna-primary-deep);border:0;border-radius:var(--jsfna-radius-pill);font-size:12px;font-weight:700;cursor:pointer}
.jsfna-main{width:min(calc(100% - 28px),var(--jsfna-max));margin:0 auto;padding:32px 0 120px;flex:1}
.jsfna-footer{width:100%;margin:0;padding:34px 22px 104px;display:grid;grid-template-columns:1fr;align-items:center;justify-items:center;gap:12px;border-top:1px solid var(--jsfna-border);background:var(--jsfna-surface);color:var(--jsfna-muted);font-size:12px;text-align:center}
.jsfna-footer p{margin:0}
.jsfna-footer button,.jsfna-footer a,.jsfna-text-button{min-height:44px;padding:8px 0;display:inline-flex;align-items:center;gap:7px;background:transparent;border:0;color:var(--jsfna-ink);font-size:12px;font-weight:600;cursor:pointer;text-align:left;text-decoration:none}
.jsfna-footer-about{font-weight:700!important}
.jsfna-footer-ai{line-height:1.55}
.jsfna-footer-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 18px}
.jsfna-footer-meta span{white-space:nowrap}

/* Componentes base */
.jsfna-eyebrow{margin-bottom:8px;color:var(--jsfna-primary-deep);font-size:12px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.jsfna-button{min-height:44px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--jsfna-surface);border:1px solid var(--jsfna-border-strong);border-radius:var(--jsfna-radius-control);font-size:12px;font-weight:700;line-height:1.25;text-decoration:none;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.jsfna-button:hover:not(:disabled){border-color:var(--jsfna-primary);transform:translateY(-1px);box-shadow:0 6px 16px rgba(52,31,75,.08)}
.jsfna-button:active:not(:disabled){transform:translateY(0)}
.jsfna-button:disabled{opacity:.5;cursor:not-allowed}
.jsfna-button-primary{background:var(--jsfna-primary);border-color:var(--jsfna-primary);color:#fff!important}
.jsfna-button-primary:hover:not(:disabled){background:var(--jsfna-primary-deep);border-color:var(--jsfna-primary-deep)}
.jsfna-button-quiet{background:var(--jsfna-lavender);border-color:transparent;color:var(--jsfna-primary-deep)}
.jsfna-button-danger{background:var(--jsfna-danger);border-color:var(--jsfna-danger);color:#fff}
.jsfna-button-danger-quiet{color:var(--jsfna-danger);border-color:rgba(165,43,58,.32)}
.jsfna-icon-button{width:44px;height:44px;padding:0;display:grid;place-items:center;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:50%;cursor:pointer}
.jsfna-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.jsfna-badge,.jsfna-counter{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-pill);background:var(--jsfna-lavender);color:var(--jsfna-primary-deep);font-size:12px;font-weight:700;line-height:1.25}
.jsfna-counter{background:var(--jsfna-surface);color:var(--jsfna-ink)}
.jsfna-adult-badge{background:#fff3f4;border-color:rgba(165,43,58,.25);color:var(--jsfna-danger)}
.jsfna-eco{display:inline-flex;align-items:center;gap:8px;color:var(--jsfna-primary-deep);font-size:12px;font-weight:700;white-space:nowrap}
.jsfna-eco-segments{display:grid;grid-template-columns:repeat(3,18px);gap:4px}
.jsfna-eco-segment{height:5px;border:1px solid #c9cecb;border-radius:var(--jsfna-radius-pill);background:var(--jsfna-neutral)}
.jsfna-eco-segment.is-active{background:var(--jsfna-eco,var(--jsfna-primary));border-color:var(--jsfna-eco,var(--jsfna-primary))}
.jsfna-page-head,.jsfna-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.jsfna-page-head{padding:16px 0 8px}
.jsfna-page-head h1{font-size:clamp(2.2rem,6vw,4.25rem);margin-bottom:8px}
.jsfna-page-head p:not(.jsfna-eyebrow),.jsfna-section-heading p:not(.jsfna-eyebrow){max-width:68ch;margin-bottom:0;color:var(--jsfna-muted);line-height:1.65}
.jsfna-page-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.jsfna-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.jsfna-field label,.jsfna-notebook-page>label,.jsfna-version-picker label{font-size:12px;font-weight:700;color:var(--jsfna-ink)}
.jsfna-field input,.jsfna-field select,.jsfna-version-picker select{width:100%;min-height:48px;padding:10px 38px 10px 12px;border:1px solid var(--jsfna-border-strong);border-radius:var(--jsfna-radius-control);background:var(--jsfna-surface);color:var(--jsfna-ink);font-size:13px}
.jsfna-field-wide{grid-column:1/-1}
.jsfna-filter-grid{display:grid;grid-template-columns:1fr;gap:16px}
.jsfna-field-label{margin-bottom:8px;color:var(--jsfna-primary-deep);font-size:12px!important;font-weight:700;letter-spacing:.1em;text-transform:uppercase}

/* Inicio */
.jsfna-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr;gap:24px;align-items:center;padding:28px 22px;background:linear-gradient(145deg,#fff 15%,var(--jsfna-lavender));border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-panel);box-shadow:var(--jsfna-shadow)}
.jsfna-hero::after{content:"";position:absolute;right:-110px;top:-160px;width:340px;height:340px;border-radius:50%;background:rgba(208,184,240,.38);pointer-events:none}
.jsfna-hero-copy{position:relative;z-index:2}
.jsfna-hero h1{max-width:760px}
.jsfna-slogan{margin-bottom:12px;color:var(--jsfna-primary-deep);font-size:clamp(1rem,2.5vw,1.25rem);font-weight:600}
.jsfna-lead{max-width:64ch;margin-bottom:24px;color:var(--jsfna-muted);font-size:14px;line-height:1.7}
.jsfna-hero-visual{position:relative;z-index:1;display:grid;place-items:center;order:-1}
.jsfna-hero-visual img{width:min(78vw,310px);aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 18px 26px rgba(72,40,96,.14))}
.jsfna-continue{width:100%;min-height:64px;margin-top:20px;padding:12px 14px;display:grid;grid-template-columns:1fr auto;gap:3px 10px;align-items:center;background:rgba(255,255,255,.78);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-card);text-align:left;cursor:pointer}
.jsfna-continue>span{display:flex;align-items:center;gap:8px;color:var(--jsfna-muted);font-size:12px;grid-column:1}
.jsfna-continue strong{font-size:12px;grid-column:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jsfna-continue>.jsfna-icon{grid-column:2;grid-row:1/3;color:var(--jsfna-primary)}
.jsfna-home-section{padding:48px 0 0}
.jsfna-daily-card{position:relative;overflow:hidden;padding:24px;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-panel);box-shadow:var(--jsfna-shadow)}
.jsfna-daily-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--jsfna-primary)}
.jsfna-daily-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.jsfna-daily-card h3{max-width:24ch;font-size:clamp(1.7rem,5vw,3rem)}
.jsfna-daily-card>p{max-width:72ch;color:var(--jsfna-muted);line-height:1.65;white-space:pre-line}
.jsfna-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.jsfna-home-collections{display:grid;grid-template-columns:1fr;gap:10px}
.jsfna-home-collections button{min-height:104px;padding:18px;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;gap:2px 12px;align-items:center;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-card);text-align:left;cursor:pointer}
.jsfna-home-collections button:hover{border-color:var(--jsfna-primary);box-shadow:var(--jsfna-shadow)}
.jsfna-home-collections button>span{width:42px;height:42px;grid-row:1/3;display:grid;place-items:center;border-radius:12px;background:var(--jsfna-lavender);color:var(--jsfna-primary-deep)}
.jsfna-home-collections strong{font-size:12px;line-height:1.35}
.jsfna-home-collections small{font-size:12px;color:var(--jsfna-muted)}
.jsfna-eco-choice-grid{display:grid;grid-template-columns:1fr;gap:10px}
.jsfna-eco-choice{min-height:152px;padding:20px;display:grid;grid-template-columns:1fr auto;align-content:start;gap:8px;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-card);text-align:left;cursor:pointer}
.jsfna-eco-choice:hover{border-color:var(--jsfna-primary);box-shadow:var(--jsfna-shadow-hover)}
.jsfna-eco-choice .jsfna-eco{grid-column:1/-1}
.jsfna-eco-choice strong{font-size:17px}
.jsfna-eco-choice>span:not(.jsfna-eco){grid-column:1;color:var(--jsfna-muted);font-size:12px;line-height:1.55}
.jsfna-eco-choice>.jsfna-icon{grid-column:2;grid-row:2/4;color:var(--jsfna-primary)}
.jsfna-home-summary{margin-top:48px;padding:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;background:var(--jsfna-primary-deep);color:#fff;border-radius:var(--jsfna-radius-panel)}
.jsfna-home-summary>div{min-width:0;display:grid;gap:2px;text-align:center;justify-items:center}
.jsfna-home-summary strong{font-size:22px}
.jsfna-home-summary small{font-size:12px;color:rgba(255,255,255,.78)}
.jsfna-home-summary .jsfna-text-button{grid-column:1/-1;justify-self:center;color:#fff}

/* Ficha de ejercicio */
.jsfna-exercise-slot{max-width:940px;margin:0 auto}
.jsfna-exercise{overflow:hidden;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-panel);box-shadow:var(--jsfna-shadow)}
.jsfna-exercise-header{padding:24px 22px 20px;background:linear-gradient(145deg,#fff,var(--jsfna-lavender));border-bottom:1px solid var(--jsfna-border)}
.jsfna-exercise-kicker,.jsfna-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.jsfna-meta{margin:20px 0 12px;color:var(--jsfna-muted);font-size:12px}
.jsfna-meta>span:not(.jsfna-eco){min-height:24px;padding:3px 8px;border:1px solid rgba(97,105,102,.18);border-radius:var(--jsfna-radius-pill);background:rgba(255,255,255,.58)}
.jsfna-exercise-header h2{max-width:26ch;margin:0;font-size:clamp(2rem,6vw,4rem)}
.jsfna-exercise-copy{padding:24px 22px;max-width:78ch;margin:0 auto}
.jsfna-exercise-introduction{margin-bottom:24px;padding:18px;background:var(--jsfna-lavender);border-left:4px solid var(--jsfna-lilac);border-radius:0 var(--jsfna-radius-control) var(--jsfna-radius-control) 0}
.jsfna-exercise-introduction p:last-child{margin:0;font-size:14px;line-height:1.65;white-space:pre-line}
.jsfna-instructions,.jsfna-progressive-part{font-size:clamp(1rem,2.2vw,1.16rem);line-height:1.72;white-space:pre-line}
.jsfna-progressive-part{margin-top:24px;padding-top:24px;border-top:1px solid var(--jsfna-border)}
.jsfna-reveal{margin-top:24px}
.jsfna-version-picker{padding:20px 22px;display:grid;grid-template-columns:1fr;gap:16px;background:var(--jsfna-bg);border-top:1px solid var(--jsfna-border);border-bottom:1px solid var(--jsfna-border)}
.jsfna-version-picker p{margin:0;color:var(--jsfna-muted);font-size:12px;line-height:1.55}
.jsfna-version-picker label{display:flex;flex-direction:column;gap:7px}
.jsfna-reading,.jsfna-editorial-details,.jsfna-filter-panel,.jsfna-explore-filters{border:0;border-top:1px solid var(--jsfna-border);background:var(--jsfna-surface)}
.jsfna-reading summary,.jsfna-editorial-details summary,.jsfna-filter-panel summary,.jsfna-explore-filters summary{min-height:56px;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;color:var(--jsfna-primary-deep);font-size:12px;font-weight:700;cursor:pointer}
.jsfna-reading summary::-webkit-details-marker,.jsfna-editorial-details summary::-webkit-details-marker,.jsfna-filter-panel summary::-webkit-details-marker,.jsfna-explore-filters summary::-webkit-details-marker{display:none}
.jsfna-reading[open] summary>.jsfna-icon:last-child,.jsfna-editorial-details[open] summary>.jsfna-icon:last-child,.jsfna-filter-panel[open] summary>.jsfna-icon:last-child,.jsfna-explore-filters[open] summary>.jsfna-icon:last-child{transform:rotate(180deg)}
.jsfna-reading-body{max-width:78ch;margin:0 auto;padding:8px 22px 32px}
.jsfna-reading-body h3{font-size:clamp(1.5rem,4vw,2.2rem)}
.jsfna-reading-author,.jsfna-reading-note{color:var(--jsfna-muted);font-size:12px}
.jsfna-reading-text{font-size:clamp(.98rem,2.1vw,1.1rem);line-height:1.75;white-space:pre-line}
.jsfna-editorial-details>div{max-width:78ch;margin:0 auto;padding:0 22px 28px;color:var(--jsfna-muted);font-size:12px;line-height:1.65}
.jsfna-editorial-details p{white-space:pre-line}
.jsfna-editorial-details strong{color:var(--jsfna-ink)}
.jsfna-reflection-questions ul{padding-left:20px}
.jsfna-development{margin:0;padding:18px 22px;display:flex;flex-direction:column;gap:6px;background:#fff8e7;border-top:1px solid #eed79d;font-size:12px;white-space:pre-line}
.jsfna-exercise-actions{padding:20px 22px;display:flex;flex-wrap:wrap;gap:8px;background:var(--jsfna-lavender);border-top:1px solid var(--jsfna-border)}
.jsfna-filter-panel{max-width:940px;margin:24px auto 0;border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-card);overflow:hidden}
.jsfna-filter-panel summary{border:0}
.jsfna-filter-panel summary>span{display:flex;flex:1;flex-direction:column;gap:1px}
.jsfna-filter-panel summary small{color:var(--jsfna-muted);font-size:12px;font-weight:400}
.jsfna-filter-panel form,.jsfna-explore-filters form{padding:20px;border-top:1px solid var(--jsfna-border);background:var(--jsfna-lavender)}
.jsfna-filter-panel form>p{color:var(--jsfna-muted);font-size:12px}
.jsfna-filter-panel .jsfna-actions,.jsfna-explore-filters .jsfna-actions{margin-top:20px}

/* Explorar, colecciones y estados */
.jsfna-explore-filters{margin-bottom:24px;overflow:hidden;border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-card)}
.jsfna-grid{display:grid;grid-template-columns:1fr;gap:12px}
.jsfna-card{min-width:0;padding:20px;display:flex;flex-direction:column;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-card);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.jsfna-card:hover{transform:translateY(-2px);border-color:var(--jsfna-primary);box-shadow:var(--jsfna-shadow-hover)}
.jsfna-card-top{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}
.jsfna-card h2{font-size:clamp(1.25rem,3vw,1.6rem)}
.jsfna-card>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;color:var(--jsfna-muted);font-size:12px;line-height:1.65}
.jsfna-card-meta{margin-top:auto;padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--jsfna-border)}
.jsfna-card-open{min-height:44px;padding:8px 0;display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;color:var(--jsfna-primary-deep);font-size:12px;font-weight:700;cursor:pointer}
.jsfna-pagination{margin-top:32px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.jsfna-pagination span{font-size:12px;color:var(--jsfna-muted)}
.jsfna-collection-list{display:grid;gap:12px}
.jsfna-collection{position:relative;overflow:hidden;padding:22px;display:grid;grid-template-columns:1fr;gap:20px;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-card)}
.jsfna-collection-number{position:absolute;right:12px;top:4px;color:rgba(104,64,176,.08);font-size:72px;font-weight:700;line-height:1}
.jsfna-collection-icon{width:48px;height:48px;margin-bottom:14px;display:grid;place-items:center;background:var(--jsfna-lavender);border-radius:14px;color:var(--jsfna-primary-deep)}
.jsfna-collection h2{position:relative;max-width:27ch;font-size:clamp(1.35rem,4vw,2rem)}
.jsfna-collection p{position:relative;max-width:70ch;color:var(--jsfna-muted);font-size:12px;line-height:1.65}
.jsfna-state{max-width:720px;margin:24px auto;padding:28px;display:grid;justify-items:start;gap:8px;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-card)}
.jsfna-state>.jsfna-icon{width:46px;height:46px;padding:10px;background:var(--jsfna-lavender);border-radius:14px;color:var(--jsfna-primary-deep)}
.jsfna-state h2{margin:4px 0 0;font-size:1.3rem}
.jsfna-state p{margin:0 0 8px;color:var(--jsfna-muted);font-size:12px;line-height:1.6}
.jsfna-state-error{border-color:rgba(165,43,58,.25)}
.jsfna-state-error>.jsfna-icon{background:#fff3f4;color:var(--jsfna-danger)}
.jsfna-loading{min-height:240px;display:grid;place-items:center;align-content:center;gap:14px;color:var(--jsfna-muted);font-size:12px}
.jsfna-loading>span{width:32px;height:32px;border:3px solid var(--jsfna-lilac);border-top-color:var(--jsfna-primary);border-radius:50%;animation:jsfna-spin .8s linear infinite}
@keyframes jsfna-spin{to{transform:rotate(360deg)}}

/* Cuaderno */
.jsfna-notebook-page{max-width:980px;margin:0 auto;padding:22px;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-panel);box-shadow:var(--jsfna-shadow)}
.jsfna-notebook-context{margin-bottom:20px;padding:18px;background:var(--jsfna-lavender);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-card)}
.jsfna-notebook-context h2{margin:12px 0 4px;font-size:clamp(1.35rem,4vw,2.1rem)}
.jsfna-notebook-page>label{display:block;margin-bottom:8px}
.jsfna-notebook-page textarea{width:100%;min-height:56vh;padding:20px;resize:vertical;border:1px solid var(--jsfna-border-strong);border-radius:var(--jsfna-radius-card);background:#fffefb;color:var(--jsfna-ink);font:400 16px/1.75 Sora,system-ui,sans-serif;box-shadow:inset 0 1px 4px rgba(52,31,75,.04)}
.jsfna-notebook-status{min-height:44px;padding:10px 2px;display:flex;align-items:center;gap:8px;color:var(--jsfna-muted);font-size:12px}
.jsfna-notebook-status .jsfna-icon{color:var(--jsfna-primary)}
.jsfna-print-draft{display:none}
.jsfna-notebook-choices{max-width:720px;margin:32px auto}
.jsfna-notebook-choices h2{font-size:1.35rem}
.jsfna-notebook-choices button{width:100%;min-height:52px;padding:10px 4px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:transparent;border:0;border-bottom:1px solid var(--jsfna-border);text-align:left;cursor:pointer}

/* Acerca */
.jsfna-about-hero{overflow:hidden;padding:24px;display:grid;grid-template-columns:1fr;gap:24px;align-items:center;background:var(--jsfna-primary-deep);color:#fff;border-radius:var(--jsfna-radius-panel)}
.jsfna-about-hero .jsfna-eyebrow{color:var(--jsfna-lilac)}
.jsfna-about-hero h1{font-size:clamp(2.2rem,7vw,4.5rem)}
.jsfna-about-hero p:not(.jsfna-eyebrow){max-width:68ch;color:rgba(255,255,255,.82);line-height:1.7}
.jsfna-about-hero img{width:min(70vw,330px);max-height:430px;margin:0 auto;object-fit:cover;object-position:center 16%;border:1px solid rgba(255,255,255,.25);border-radius:var(--jsfna-radius-card)}
.jsfna-about-hero .jsfna-about-logo{width:min(58vw,280px);max-height:280px;padding:18px;object-fit:contain;object-position:center;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);border-radius:var(--jsfna-radius-panel)}
.jsfna-about-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:24px}
.jsfna-about-grid section{padding:22px;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-card)}
.jsfna-about-grid h2{font-size:1.35rem}
.jsfna-about-grid p,.jsfna-about-grid li{color:var(--jsfna-muted);font-size:12px;line-height:1.7}
.jsfna-about-vicens{overflow:hidden;display:grid;grid-template-columns:1fr;gap:24px;align-items:center}
.jsfna-about-vicens>img{width:min(100%,300px);aspect-ratio:4/5;margin:0 auto;object-fit:cover;object-position:center 18%;border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-card);background:var(--jsfna-lavender)}

/* Contacto */
.jsfna-contact-page{max-width:980px;margin:0 auto}
.jsfna-contact-head{align-items:center}
.jsfna-contact-aside{max-width:34ch!important;padding:16px 18px;background:var(--jsfna-lavender);border-left:4px solid var(--jsfna-primary);border-radius:0 var(--jsfna-radius-control) var(--jsfna-radius-control) 0;color:var(--jsfna-ink)!important;font-size:12px}
.jsfna-contact-form{position:relative;overflow:hidden;padding:24px 20px;display:grid;gap:16px;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-top:6px solid var(--jsfna-primary);border-radius:var(--jsfna-radius-card);box-shadow:var(--jsfna-shadow)}
.jsfna-contact-form label{display:grid;gap:7px;color:var(--jsfna-ink);font-size:12px;font-weight:700}
.jsfna-contact-form label span b{color:var(--jsfna-primary-deep)}
.jsfna-contact-form input,.jsfna-contact-form textarea{width:100%;min-height:48px;padding:11px 12px;border:1px solid var(--jsfna-border-strong);border-radius:var(--jsfna-radius-control);background:#fff;color:var(--jsfna-ink);font-size:14px;font-weight:400}
.jsfna-contact-form textarea{min-height:180px;resize:vertical;line-height:1.65}
.jsfna-contact-name-row{display:grid;grid-template-columns:1fr;gap:16px}
.jsfna-contact-submit{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.jsfna-contact-feedback{margin:0;color:var(--jsfna-muted);font-size:12px;line-height:1.55}
.jsfna-contact-feedback.is-success{color:#267247}
.jsfna-contact-feedback.is-error{color:var(--jsfna-danger)}
.jsfna-contact-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Mi espacio y diálogos */
.jsfna-overlay{position:fixed;inset:0;z-index:100;display:flex;background:rgba(26,30,28,.56);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.jsfna-space-overlay{align-items:flex-end;justify-content:center}
.jsfna-space-panel{width:100%;max-height:min(88dvh,760px);overflow:auto;padding:24px 20px calc(24px + env(safe-area-inset-bottom));background:var(--jsfna-bg);border:1px solid var(--jsfna-border);border-radius:24px 24px 0 0;box-shadow:-18px 0 50px rgba(26,30,28,.2)}
.jsfna-space-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}
.jsfna-space-head h2{margin:0;font-size:2rem}
.jsfna-space-stats{display:grid;gap:8px}
.jsfna-space-stats button{min-height:58px;padding:10px 12px;display:grid;grid-template-columns:28px 1fr 20px;align-items:center;gap:8px;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-control);text-align:left;cursor:pointer}
.jsfna-space-stats button>span{font-size:12px}
.jsfna-space-stats button strong{font-size:16px;color:var(--jsfna-primary-deep)}
.jsfna-space-recent{margin-top:24px}
.jsfna-space-recent h3{font-size:1rem}
.jsfna-space-recent button{width:100%;min-height:52px;padding:10px 0;display:flex;align-items:center;justify-content:space-between;gap:10px;background:transparent;border:0;border-bottom:1px solid var(--jsfna-border);text-align:left;cursor:pointer}
.jsfna-space-recent button span{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jsfna-space-recent button small{color:var(--jsfna-muted);font-size:12px}
.jsfna-space-panel .jsfna-state{padding:18px;margin:16px 0}
.jsfna-install-space{width:100%;margin-top:24px}
.jsfna-space-note{margin:20px 0 0;color:var(--jsfna-muted);font-size:12px;line-height:1.6}
.jsfna-confirm-overlay,.jsfna-install-help{align-items:center;justify-content:center;padding:16px}
.jsfna-confirm-dialog,.jsfna-install-dialog{position:relative;width:min(100%,480px);padding:28px;background:var(--jsfna-surface);border:1px solid var(--jsfna-border);border-radius:var(--jsfna-radius-panel);box-shadow:0 24px 70px rgba(26,30,28,.25)}
.jsfna-dialog-icon{width:48px;height:48px;margin-bottom:16px;display:grid;place-items:center;background:var(--jsfna-lavender);border-radius:14px;color:var(--jsfna-primary-deep)}
.jsfna-confirm-dialog h2,.jsfna-install-dialog h2{font-size:1.65rem}
.jsfna-confirm-dialog p,.jsfna-install-dialog p,.jsfna-install-dialog li{color:var(--jsfna-muted);font-size:12px;line-height:1.65}
.jsfna-install-dialog ol{padding:16px 16px 16px 34px;background:var(--jsfna-lavender);border-radius:var(--jsfna-radius-control)}
.jsfna-dialog-close{position:absolute;right:16px;top:16px}
.jsfna-toast{position:fixed;z-index:140;left:16px;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));min-height:52px;padding:12px 16px;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--jsfna-ink);color:#fff;border-radius:var(--jsfna-radius-control);box-shadow:0 14px 34px rgba(0,0,0,.2);font-size:12px;text-align:center}

/* 480 px: móvil amplio */
@media (min-width:480px){
	.jsfna-header-inner{width:min(calc(100% - 32px),var(--jsfna-max))}
	.jsfna-brand-copy strong{font-size:16px}
	.jsfna-main{width:min(calc(100% - 40px),var(--jsfna-max))}
	.jsfna-hero{padding:36px 32px}
	.jsfna-home-collections{grid-template-columns:repeat(2,minmax(0,1fr))}
	.jsfna-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.jsfna-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.jsfna-exercise-header,.jsfna-exercise-copy,.jsfna-reading-body,.jsfna-editorial-details>div,.jsfna-exercise-actions{padding-left:30px;padding-right:30px}
	.jsfna-notebook-page{padding:30px}
	.jsfna-contact-form{padding:34px 30px}
	.jsfna-contact-name-row{grid-template-columns:repeat(2,minmax(0,1fr))}
	.jsfna-toast{left:auto;right:20px;bottom:calc(88px + env(safe-area-inset-bottom));max-width:380px}
}

/* 768 px: tableta */
@media (min-width:768px){
	.jsfna-main{padding-top:48px}
	.jsfna-hero{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);min-height:520px;padding:48px}
	.jsfna-hero-visual{order:initial}
	.jsfna-hero-visual img{width:min(34vw,410px)}
	.jsfna-daily-card{padding:36px 40px}
	.jsfna-daily-card::before{width:8px}
	.jsfna-eco-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
	.jsfna-grid{gap:16px}
	.jsfna-collection{padding:30px;grid-template-columns:minmax(0,1fr) auto;align-items:end}
	.jsfna-version-picker{grid-template-columns:minmax(0,1fr) minmax(240px,.55fr);align-items:end;padding:24px 30px}
	.jsfna-exercise-header{padding-top:36px;padding-bottom:30px}
	.jsfna-exercise-copy{padding-top:36px;padding-bottom:36px}
	.jsfna-about-hero{grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);padding:42px}
	.jsfna-about-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.jsfna-about-grid section{padding:28px}
	.jsfna-about-vicens{grid-column:1/-1;grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);padding:32px!important}
	.jsfna-about-vicens>img{width:100%;max-width:300px}
	.jsfna-space-overlay{align-items:stretch;justify-content:flex-end}
	.jsfna-space-panel{width:min(440px,92vw);max-height:none;padding:34px 30px;border-radius:24px 0 0 24px}
	.jsfna-toast{bottom:24px}
}

/* 1024 px: escritorio y tableta amplia */
@media (min-width:1024px){
	.jsfna-header-inner{min-height:76px;grid-template-columns:minmax(205px,1fr) auto 44px}
	.jsfna-brand-copy small{display:block}
	.jsfna-desktop-nav{display:flex}
	.jsfna-space-button{justify-self:end}
	.jsfna-space-button span{display:none}
	.jsfna-mobile-nav{display:none}
	.jsfna-main{padding-bottom:80px}
	.jsfna-footer{padding:22px max(32px,calc((100% - var(--jsfna-max))/2));grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:28px;text-align:left}
	.jsfna-footer-about{justify-self:start}
	.jsfna-footer-ai{justify-self:center;text-align:center}
	.jsfna-footer-meta{justify-self:end}
	.jsfna-home-section{padding-top:64px}
	.jsfna-home-collections{grid-template-columns:repeat(4,minmax(0,1fr))}
	.jsfna-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
	.jsfna-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
	.jsfna-field-wide{grid-column:span 2}
	.jsfna-exercise-header,.jsfna-exercise-copy,.jsfna-reading-body,.jsfna-editorial-details>div,.jsfna-exercise-actions{padding-left:48px;padding-right:48px}
	.jsfna-notebook-page{padding:40px}
	.jsfna-about-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* 1280 px: escritorio amplio */
@media (min-width:1280px){
	.jsfna-desktop-nav{gap:6px}
	.jsfna-desktop-nav button{padding-left:14px;padding-right:14px;font-size:12px}
	.jsfna-header-inner{grid-template-columns:minmax(230px,1fr) auto minmax(150px,1fr)}
	.jsfna-space-button span{display:inline}
	.jsfna-hero{min-height:570px;padding:64px}
	.jsfna-daily-card{padding:44px 52px}
	.jsfna-card{padding:24px}
}

/* 1440 px: pantallas grandes */
@media (min-width:1440px){
	.jsfna-app{--jsfna-max:1280px}
	.jsfna-main{padding-top:56px}
	.jsfna-hero{grid-template-columns:minmax(0,1.3fr) minmax(360px,.7fr)}
}

@media (max-width:479px){
	.jsfna-brand-copy strong{display:block;font-size:12px}
	.jsfna-page-head,.jsfna-section-heading{align-items:flex-start;flex-direction:column;gap:10px}
	.jsfna-page-tools{justify-content:flex-start}
	.jsfna-exercise-actions .jsfna-button{width:100%}
	.jsfna-home-summary{gap:7px;padding:16px 10px}
	.jsfna-home-summary small{font-size:12px}
}

@media (display-mode:standalone){
	.jsfna-header{padding-top:env(safe-area-inset-top)}
	.jsfna-brand-copy small,.jsfna-space-button span{display:none}
	.jsfna-footer{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
}

@media (prefers-reduced-motion:reduce){
	.jsfna-app *,.jsfna-app *::before,.jsfna-app *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

@media (prefers-contrast:more){
	.jsfna-app{--jsfna-border:rgba(26,30,28,.55);--jsfna-border-strong:rgba(26,30,28,.8);--jsfna-shadow:none;--jsfna-shadow-hover:none}
	.jsfna-button,.jsfna-card,.jsfna-exercise,.jsfna-collection{border-width:2px}
}

@media print{
	.jsfna-app.jsfna-printing-notebook .jsfna-header,.jsfna-app.jsfna-printing-notebook .jsfna-mobile-nav,.jsfna-app.jsfna-printing-notebook .jsfna-footer,.jsfna-app.jsfna-printing-notebook .jsfna-page-head,.jsfna-app.jsfna-printing-notebook .jsfna-notebook-context button,.jsfna-app.jsfna-printing-notebook .jsfna-notebook-status,.jsfna-app.jsfna-printing-notebook .jsfna-notebook-page>.jsfna-actions,.jsfna-app.jsfna-printing-notebook .jsfna-system-banner,.jsfna-app.jsfna-printing-notebook .jsfna-overlay,.jsfna-app.jsfna-printing-notebook .jsfna-toast{display:none!important}
	.jsfna-app.jsfna-printing-notebook,.jsfna-app.jsfna-printing-notebook .jsfna-shell,.jsfna-app.jsfna-printing-notebook .jsfna-main{background:#fff!important;width:100%!important;margin:0!important;padding:0!important}
	.jsfna-app.jsfna-printing-notebook .jsfna-notebook-page{max-width:none;padding:0;border:0;box-shadow:none}
	.jsfna-app.jsfna-printing-notebook .jsfna-notebook-context{background:#fff;border:0;border-bottom:1px solid #333;border-radius:0;padding:0 0 16px}
	.jsfna-app.jsfna-printing-notebook textarea,.jsfna-app.jsfna-printing-notebook .jsfna-notebook-page>label{display:none!important}
	.jsfna-app.jsfna-printing-notebook .jsfna-print-draft{display:block!important}
	.jsfna-app.jsfna-printing-notebook .jsfna-print-draft h1{font-size:20pt;margin:0 0 24pt}
	.jsfna-app.jsfna-printing-notebook .jsfna-print-draft-text{font-size:12pt;line-height:1.65;white-space:pre-wrap}
}
