:root {
  color-scheme: light; --paper:#fcfcf9; --card:#fff; --ink:#1d2c26; --muted:#52635a;
  --forest:#174d3c; --pine:#256446; --mint:#e8f2e8; --plum:#694a80; --lav:#f3eef6;
  --line:#d7dfd6; --shadow:0 14px 42px rgb(20 61 43 / .065);
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);font:16px/1.55 var(--sans);color:var(--ink);overflow-wrap:anywhere}
button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}
button{cursor:pointer}button:disabled{cursor:default;opacity:.59}
button,a,input,select,summary{ -webkit-tap-highlight-color:transparent }
:focus-visible{outline:3px solid #875dac;outline-offset:3px}
[hidden]{display:none!important}
h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.17}button,a{color:inherit}
p+p{margin-top:.75rem}.frame{width:min(1110px,calc(100% - 54px));margin-inline:auto}
.skip{position:fixed;top:-95px;left:12px;z-index:9;background:var(--ink);color:white;padding:.65rem 1rem;border-radius:.5rem}.skip:focus{top:8px}
.site-head{border-bottom:1px solid var(--line);background:#fff}.head-in,.brand,.head-label,.foot-in,.row,.button-row,.card-actions,.section-top,.library-head,.badge-row{display:flex;align-items:center;gap:12px}
.head-in{justify-content:space-between;min-height:76px}.brand{line-height:1.12}.brand img{border-radius:12px}.brand strong{display:block;font-size:1.12rem;letter-spacing:.09em;font-weight:850;color:var(--forest)}.brand span{font-size:.78rem;font-weight:650;display:block;margin-top:3px}
.head-label{font-size:.8rem;font-weight:650;color:var(--forest)}.live-dot{width:8px;height:8px;border-radius:50%;background:#458961}
.site-foot{border-top:1px solid var(--line)}.foot-in{min-height:66px;justify-content:space-between;color:var(--muted);font-size:.81rem}.site-foot .plain{font-size:inherit}
.foot-brand{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px}
.web-release{font-size:.81rem;line-height:1.5;font-weight:600;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.profile-release{margin:-8px 0 18px}
.legal-brief{margin:18px 0;padding:12px 15px;border-left:3px solid #8aa992;background:#f0f5ef;border-radius:0 9px 9px 0;font-size:.82rem;line-height:1.5}
.legal-brief strong,.legal-brief h3{display:block;color:var(--forest);font-size:.9rem}
.legal-brief p{margin:.3rem 0}
.legal-brief a,.legal-help .plain,.legal-subsection .plain{color:var(--forest);text-underline-offset:.2em}
.legal-card{max-width:680px;margin:clamp(12px,3vw,36px) auto;padding:clamp(20px,4vw,42px)}
.legal-card .workspace-heading{margin:0 0 20px}
.legal-card .workspace-heading h1{margin:.3em 0 .4em;line-height:1.16;font-size:clamp(1.8rem,4vw,2.65rem)}
.legal-card .workspace-heading h1[tabindex="-1"]:focus{outline:none}
.legal-card h2,.legal-profile-entry h2{font-size:1.12rem;line-height:1.3}
.legal-documents{display:grid;gap:10px}
.legal-document{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:14px 16px;color:var(--forest);border:1px solid #cbd8cc;border-radius:12px;text-decoration:none;background:var(--paper)}
.legal-document:hover{background:var(--mint)}
.legal-document small{display:block;margin-top:3px;color:var(--muted);font-size:.84rem}
.legal-note{margin:18px 0;color:var(--muted);font-size:.93rem}
.legal-preview{width:fit-content;margin:0 0 12px;padding:3px 10px;background:var(--lav);color:var(--plum);font-size:.78rem;font-weight:650;border-radius:9px}
.legal-consent{padding-top:17px;border-top:1px solid var(--line)}
.legal-consent .accept{margin:0;align-items:flex-start}
.legal-consent .button-row{margin-top:18px}
.legal-help{display:flex;flex-wrap:wrap;gap:2px 18px;align-items:center;margin-top:15px}
.legal-help .plain{font-size:.84rem;padding:9px 0}
.legal-profile-entry,.legal-record{margin:16px 0;padding:16px 18px;background:#f3f5ef;border:1px solid var(--line);border-radius:12px}
.legal-profile-entry .btn,.legal-subsection .btn,.legal-card>.plain{margin-top:10px}
.legal-subsection,.legal-card>.admin-section {margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.legal-record p,.legal-profile-entry p,.legal-subsection p{margin-top:6px}
.legal-card>.back-link{margin-bottom:12px}
.member-entry,.reader-entry{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin:14px 0;padding:15px 20px;border:1px solid #cbd8cc;border-radius:14px;background:#edf5ed;
}
.reader-entry{background:#faf8fc;border-color:#e1d8e7;margin-top:18px}
.member-entry h2,.reader-entry h2{font-size:1.15rem;line-height:1.3}
.member-entry .fine,.reader-entry h2{margin-top:3px}
.offer-page{max-width:740px;margin:12px auto;padding:clamp(16px,4vw,35px)}
.offer-page .workspace-heading{margin:0 0 10px}
.offer-status{display:inline-block;border-radius:100px;background:var(--mint);color:var(--forest);font-size:.83rem;font-weight:700;padding:4px 12px}
.offer-lead{margin-top:12px;color:var(--muted)}
.offer-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,175px),1fr));gap:12px;margin:20px 0 12px}
.offer-plan{padding:16px;border:1px solid #cbd8cc;border-radius:12px;background:#f4f8f3}
.offer-plan.annual{background:#f6f2f8;border-color:#ded2e5}
.offer-price{color:var(--forest);font-size:clamp(1.5rem,4.2vw,2rem);font-weight:750;margin:8px 0 2px;line-height:1.15}
.offer-renewal{font-size:.9rem;color:var(--muted)}
.offer-current{margin:18px 0;padding-top:16px;border-top:1px solid var(--line)}
.offer-current h2{margin-bottom:6px}
.offer-includes{padding-inline-start:1.2rem}
@media(max-width:480px){.foot-brand{width:100%}}
.access-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,425px);align-items:center;gap:clamp(40px,8vw,125px);min-height:calc(100svh - 144px);padding-block:clamp(30px,6vw,76px)}
.eyebrow{display:flex;gap:9px;align-items:center;color:var(--forest);font-size:.72rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;line-height:1.55}.eyebrow i{width:24px;height:3px;background:var(--plum);border-radius:1px}.eyebrow.plum{color:var(--plum)}
.welcome h1{margin:.23em 0;font-family:var(--sans);font-weight:500;letter-spacing:-.05em;font-size:clamp(62px,6.6vw,100px)}.welcome h1 em{color:var(--forest);font-weight:500}.lede{font-size:clamp(1rem,1.4vw,1.17rem);color:var(--muted);max-width:31rem}
.cover-art{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;gap:28px;margin-top:30px;min-height:154px;background:linear-gradient(112deg,#e8f1e7,#edf4e9 65%,#edf0e2);border:1px solid #d8e1d3;border-radius:16px;padding:19px 25px}.art-lines{position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(0deg,transparent,transparent 19px,#60927619 20px);transform:rotate(-9deg) scale(1.4)}.notebook{flex:0 0 128px;align-self:center;transform:rotate(-5deg);padding:11px;background:#fffdf4;border:1px solid #c2cdbd;border-left:7px solid var(--forest);border-radius:4px 10px 10px 4px;box-shadow:4px 6px 0 #bdcaba}.notebook img{display:block;width:59px;height:59px;border-radius:11px;margin:8px auto}.book-label,.book-bottom{display:flex;align-items:center;justify-content:space-between;color:var(--forest)}.book-label{font-size:.37rem;letter-spacing:.045em;font-weight:800}.book-bottom{border-top:1px solid var(--line);padding-top:4px;font-size:.4rem}.book-bottom b{font-size:.67rem}.art-caption span{font-weight:800;letter-spacing:.13em;font-size:.59rem;color:var(--pine)}.art-caption b{display:block;font:italic 1.75rem/1.07 var(--sans);color:var(--forest);margin:.28rem 0}.art-caption i{display:block;background:var(--plum);width:29px;height:3px;margin-top:9px}
.login-card,.panel,.study-item,.exercise,.resource-view{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.login-card{padding:clamp(23px,3vw,38px);border-top:4px solid var(--forest)}.login-card h2{font:500 clamp(1.8rem,3vw,2.5rem)/1.1 var(--sans);letter-spacing:-.045em;margin:12px 0 7px}.muted,.fine,small{color:var(--muted)}.fine,small{font-size:.83rem}.login-card .muted{font-size:.93rem}
.field{display:grid;gap:6px;margin-top:14px}.field label,.field-label{font-size:.84rem;font-weight:670}.field input,.field select,.search-input,.sort-input{width:100%;min-height:47px;padding:9px 12px;background:white;color:var(--ink);border:1px solid #a5b5a8;border-radius:9px}.field input:focus,.field select:focus,.search-input:focus,.sort-input:focus{border-color:var(--forest)}.secret{position:relative}.secret input{padding-right:80px}.secret button{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:7px;background:#fff}.link-small,.plain{background:none;border:0;text-decoration:underline;text-underline-offset:3px;font-size:.87rem;font-weight:650;color:var(--forest);padding:0}.accept{display:flex;align-items:flex-start;gap:9px;margin:13px 0;font-size:.83rem}.accept input{accent-color:var(--forest);width:17px;height:17px;flex:none}.accept .link-small{font-size:inherit}
.feedback:empty{display:none}.feedback,.notice{padding:11px 13px;border-radius:9px;background:#f2f6ef;color:var(--forest);margin:14px 0;font-size:.91rem}.feedback.error,.notice.error{background:#fff1ea;color:#8b3b26}.notice{border:1px solid var(--line)}.btn,.chip,.back-link,.icon-btn,.nav-item,.shortcut,.kind-button,.mark,.progress-link{display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;font-weight:650;border:1px solid transparent;border-radius:10px;min-height:43px;padding:8px 14px;background:#fff}.btn.primary{color:white;background:var(--forest)}.btn.primary:hover{background:#103f30}.btn.secondary,.icon-btn,.mark{border-color:var(--line);color:var(--forest);background:#fff}.btn.secondary:hover,.mark:hover{background:var(--mint)}.btn.soft,.chip{color:var(--plum);background:var(--lav)}.btn.full{width:100%;margin-top:19px}
.auth-recover{display:block;margin:12px auto 0;text-align:center}.auth-switch{margin-top:18px;padding-top:15px;border-top:1px solid var(--line);font-size:.89rem;text-align:center}
.workspace{min-height:calc(100svh - 144px);padding:32px 0 78px;max-width:988px}.dashboard-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(235px,.75fr);gap:16px}.panel{padding:19px 21px}.profile-panel{overflow:hidden;padding:0;background:linear-gradient(115deg,#fff,#f3f8f2);border-color:#cbd8cc}.profile-row{display:flex;align-items:center;gap:15px;padding:18px}.portrait{width:72px;height:89px;flex:none;display:grid;place-items:center;border-radius:10px;overflow:hidden;background:#dcead9;color:#345c42;font:italic 1.75rem var(--sans)}.portrait img{width:100%;height:100%;object-fit:cover}.profile-name{font:500 clamp(1.35rem,2.5vw,1.9rem)/1.12 var(--sans);letter-spacing:-.04em;margin:4px 0 5px}.mini{font-size:.75rem;color:var(--muted)}.progress-link{border:0;border-top:1px solid #cdded1;border-radius:0;width:100%;justify-content:space-between;padding:11px 18px;background:#e4f0e5;color:var(--forest)}.progress-link:hover{background:#d9eadc}.meter{accent-color:var(--forest);height:8px;width:min(32%,120px);border:0;border-radius:4px;overflow:hidden;background:#cedccf}.meter::-webkit-progress-bar{background:#cedccf}.meter::-webkit-progress-value{background:var(--forest)}.meter::-moz-progress-bar{background:var(--forest)}
.continue-panel{background:var(--lav);border-color:#e1d8e7;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.continue-panel h3{margin:7px 0;font-size:1.12rem}.continue-panel .btn{margin-top:12px}.workspace h1{font:500 clamp(2rem,5vw,3.3rem)/1.1 var(--sans);color:var(--ink);letter-spacing:-.055em;margin:6px 0}.workspace-heading{margin:24px 0 19px}.workspace-heading .muted,.section-top .muted{margin-top:6px}.section-top{justify-content:space-between;align-items:end;margin:23px 0 13px}.section-top h2,.panel h2,.exercise h2,.resource-view h2{font:550 clamp(1.35rem,2.2vw,1.65rem)/1.15 var(--sans);letter-spacing:-.025em}.section-top p{font-size:.88rem}
.shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.shortcut{justify-content:flex-start;border-color:var(--line);background:#fff;font-size:.86rem;text-align:left}.shortcut .symbol{color:var(--plum)}.kinds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.kind-button{border:1px solid var(--tint-line);color:var(--tint-ink);justify-content:space-between;text-align:left;background:var(--tint);min-height:73px;padding:12px;border-radius:12px}.kind-button:hover{box-shadow:inset 0 0 0 1px var(--tint-ink)}.kind-button .label{flex:1;line-height:1.2}.kind-button .label b{display:block;font-size:.92rem}.kind-button .label small{display:block;color:inherit;font-weight:500;font-size:.75rem;margin-top:4px}.kind-button .icon-tile{background:#ffffffb8;padding:8px;border-radius:8px}.symbol{display:inline-block;width:1.1rem;height:1.1rem;flex:none;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.green{--tint:#e6f3e8;--tint-ink:#225a3a;--tint-line:#c2dec6}.purple{--tint:#f0eaf7;--tint-ink:#654180;--tint-line:#dcd0e7}.blue{--tint:#e8f1fa;--tint-ink:#235f85;--tint-line:#caddeb}.pink{--tint:#f9eaf1;--tint-ink:#963c68;--tint-line:#edd0df}.peach{--tint:#fceee5;--tint-ink:#94491e;--tint-line:#ebd5c5}
.tabbar{display:flex;justify-content:center;gap:8px;position:sticky;bottom:0;border-block:1px solid var(--line);background:#fffffff5;z-index:3;padding:5px 10px max(5px,env(safe-area-inset-bottom))}.nav-item{color:var(--muted);font-size:.82rem;background:none}.nav-item[aria-current=page]{color:var(--forest);background:var(--mint)}.head-person{color:var(--forest);border-radius:99px;max-width:18rem;font-size:.84rem}
.back-link{color:var(--forest);padding:4px 0;min-height:36px;background:transparent}.profile-form,.exercise,.resource-view,.progress-view{max-width:750px;margin:15px auto}.profile-form .field{margin-top:17px}.profile-form h1,.resource-view h1{font-size:clamp(1.7rem,4vw,2.6rem)}.profile-form .button-row,.resource-view .button-row{margin-top:18px}.photo-row{display:flex;gap:14px;align-items:center;margin:18px 0}.photo-row .portrait{width:62px;height:76px}.button-row,.card-actions,.badge-row{flex-wrap:wrap}.section-list{display:grid;gap:8px}.library-head{align-items:start;justify-content:space-between;margin-bottom:15px}.library-head h1{font-size:clamp(1.8rem,4vw,2.6rem)}.filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,.33fr);gap:10px;margin:14px 0}.filters .field{margin:0}.tabs-inline{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chip{min-height:33px;font-size:.82rem;padding:4px 11px;border-radius:99px;background:#fff;border-color:var(--line);color:var(--muted)}.chip[aria-pressed=true]{background:var(--lav);color:var(--plum);border-color:#cbb7d9}
.study-item{border-radius:12px;box-shadow:none;display:grid;grid-template-columns:auto minmax(0,1fr);gap:13px;padding:13px 15px;border-left:5px solid var(--tint-line)}.thumb{width:61px;height:75px;border-radius:6px;display:grid;place-items:center;background:var(--tint);color:var(--tint-ink);overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.thumb .symbol{width:27px;height:27px}.item-copy h3{font-size:.99rem;line-height:1.38}.item-copy .badge-row{font-size:.76rem;color:var(--muted);gap:8px;margin-top:4px}.card-actions{margin-top:7px;gap:7px}.card-actions .btn,.mark{font-size:.8rem;min-height:35px;padding:4px 10px}.mark[aria-pressed=true]{background:var(--mint);color:var(--forest)}.empty{padding:20px;background:#f4f6f1;border:1px dashed #b8c7bb;border-radius:12px;color:var(--muted)}.load-more{margin:12px auto;display:flex}.random-box{background:#eff4eb;border:1px solid #d2dfcf;border-radius:12px;margin:0 0 18px;padding:15px 18px}.random-box h2{font-size:1.12rem}.random-box .button-row{margin-top:9px}.random-box .btn{font-size:.86rem;min-height:36px}
.exercise,.resource-view{padding:clamp(18px,3.5vw,33px)}.exercise-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.meter.full{width:100%;max-width:none;margin:12px 0}.question{font-size:clamp(1.08rem,2vw,1.35rem);font-weight:650;line-height:1.5;text-align:justify;text-align-last:start;background:var(--lav);border-radius:12px;padding:16px;margin:10px 0 13px}.options{border:0;margin:0;padding:0;display:grid;gap:9px}.options.binary{grid-template-columns:repeat(2,minmax(0,1fr))}.option{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border-radius:12px;border:1px solid var(--tint-line);background:var(--tint);cursor:pointer;text-align:justify;text-align-last:start;color:var(--ink)}.option input{accent-color:var(--forest);margin:6px 0 0;flex:none}.option b{font-size:.82rem;color:var(--tint-ink)}.option:has(input:checked){outline:2px solid var(--tint-ink);outline-offset:0}.exercise .button-row{margin-top:16px}.response-box{border:1px solid var(--line);border-left:4px solid var(--tint-ink);background:var(--tint);border-radius:10px;padding:13px;margin-top:14px}.response-box p{margin-top:6px;text-align:justify;text-align-last:start}
.resource-frame{width:100%;height:clamp(360px,68vh,800px);border:1px solid var(--line);border-radius:10px;margin-top:16px}.resource-frame.video{height:auto;aspect-ratio:16/9}.resource-view .fine{margin-top:10px}.section-top .count{color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:13px 0}.metric{background:var(--tint);border:1px solid var(--tint-line);border-radius:10px;padding:10px 5px;text-align:center;display:grid;justify-items:center;align-content:start;color:var(--tint-ink);font-size:.8rem}.metric b{display:block}.ring{width:65px;height:65px;position:relative;display:grid;place-items:center;margin-bottom:3px;font-size:.95rem;font-weight:800}.ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.ring-track{fill:none;stroke:#fff;stroke-width:4}.ring-value{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round}.ring span{z-index:1}.history-row{border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0}.history-row strong{font-size:.9rem}.history-row .btn{flex:none}
dialog{width:min(520px,calc(100% - 28px));max-height:85svh;overflow:auto;border:1px solid var(--line);border-radius:17px;padding:0;color:var(--ink);background:white}dialog::backdrop{background:#122a20a8}.dialog-wrap{padding:24px}.dialog-wrap h2{margin:11px 0}.dialog-wrap p{margin:10px 0}.dialog-wrap .btn{margin-top:9px}
@media(max-width:770px){.frame{width:min(100% - 30px,650px)}.access-grid{grid-template-columns:1fr;gap:23px;padding:25px 0}.welcome{max-width:450px}.welcome h1 br{display:none}.welcome h1{font-size:clamp(2.4rem,7vw,3.7rem);line-height:1.2;margin:5px 0}.welcome h1 em::before{content:" "}.cover-art{display:none}.lede{font-size:.94rem}.login-card{max-width:540px;width:100%;justify-self:center}.dashboard-top{grid-template-columns:1fr}.continue-panel{display:block}.continue-panel .btn{margin-top:9px}.kinds{grid-template-columns:repeat(2,minmax(0,1fr))}.shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{padding-top:18px}.workspace-heading{margin:18px 0 15px}.profile-row{padding:13px}.foot-in{min-height:60px}.head-in{min-height:63px}.tabbar{gap:4px}}
@media(max-width:480px){.head-label{font-size:.7rem;gap:5px}.brand img{width:36px;height:36px}.brand{gap:7px}.brand strong{font-size:.98rem}.brand span{font-size:.7rem}.panel{padding:14px}.profile-panel{padding:0}.kind-button{min-height:77px;gap:6px;padding:9px}.kind-button .icon-tile{padding:5px}.kind-button .label b{font-size:.84rem}.kind-button .label small{font-size:.72rem}.kind-button>.arrow{display:none}.nav-item{flex:1;flex-direction:column;gap:2px;min-width:0;font-size:.7rem;padding:4px}.filters{grid-template-columns:1fr}.filters .field{gap:3px}.filters .sort-input{min-height:39px}.study-item{grid-template-columns:43px minmax(0,1fr);gap:9px;padding:10px}.thumb{width:43px;height:59px}.head-person{font-size:.73rem;max-width:110px}.head-person .symbol{display:none}.profile-name{font-size:1.35rem}.portrait{width:55px;height:68px}.options.binary .option{padding:9px 7px;gap:6px}.site-foot .foot-in{flex-wrap:wrap;gap:4px;padding:8px 0}.btn,.shortcut{font-size:.89rem}.profile-form .button-row .btn{flex:1}.ring{width:52px;height:52px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:0s!important}}
.sample-link{display:block;margin:12px auto 0;width:fit-content;text-align:center;font-size:.83rem;color:var(--forest);text-underline-offset:.2em}.progress-view>.fine{text-align:justify}
.kind-button.upcoming{background:#f2f5f7;color:#495c66;border:1px dashed #c0cdd3;cursor:default}.kind-button.upcoming small{color:#576670}
.thumb .original-cover{object-fit:contain}
.google-login { max-width:100%;min-height:40px;margin:18px 0 10px; }
#google-retry { margin:.75rem 0 .25rem; }
.video-card {
  position:relative;
  grid-template-columns:clamp(160px,22vw,224px) minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  padding:12px 16px 12px 12px;
  border-left-color:var(--tint-ink);
}
.video-card .thumb {
  width:100%;height:auto;aspect-ratio:16 / 9;
  background:var(--tint);border-radius:7px;
}
.video-card .thumb img { display:block;object-fit:contain; }
.video-kind {
  display:block;margin-bottom:4px;color:var(--tint-ink);
  font-size:.74rem;font-weight:700;
}
.video-title {
  border:0;padding:0;color:var(--ink);background:none;
  font:inherit;font-weight:680;text-align:inherit;
}
/* El título extiende su zona de activación sobre la portada. El marcador es independiente. */
.video-title::after { content:"";position:absolute;inset:0;border-radius:12px; }
.video-title:focus-visible { outline:none; }
.video-title:focus-visible::after { outline:3px solid var(--tint-ink);outline-offset:2px; }
.video-title:hover { color:var(--tint-ink);text-decoration:underline;text-underline-offset:3px; }
.video-card .item-copy h3 { font-size:1.07rem;line-height:1.35; }
.video-card .badge-row { margin-top:7px;gap:8px 12px; }
.video-card .row { gap:4px; }
.video-card .row .symbol { width:.95rem;height:.95rem; }
.video-status { padding:1px 8px;border-radius:20px;background:var(--tint);color:var(--tint-ink);font-weight:600; }
.video-card .mark {
  position:relative;z-index:1;align-self:start;min-height:42px;gap:6px;
}
@media(max-width:770px) {
  .video-card { grid-template-columns:clamp(130px,24vw,170px) minmax(0,1fr);gap:6px 13px; }
  .video-card .thumb { grid-row:span 2; }
  .video-card .mark { grid-column:2;justify-self:start; }
}
@media(max-width:520px) {
  .video-card { grid-template-columns:minmax(0,1fr);gap:9px;padding:10px 12px; }
  .video-card .thumb,.video-card .mark { grid-column:1;grid-row:auto; }
  .video-card .item-copy h3 { font-size:1rem; }
  .video-card .badge-row { margin-top:5px; }
}
.mistakes-shortcut{
  display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;
  width:100%;min-height:46px;margin-top:14px;padding:9px 12px;text-align:start;
  border:1px solid #dbcee4;border-radius:10px;background:var(--lav);color:var(--plum);
}
.mistakes-shortcut:hover{background:#eae1f0}
.mistakes-shortcut small{font-size:.82rem}
.mistakes-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.mistakes-kind{display:flex;flex-direction:column;align-items:flex-start;gap:9px;border-top:4px solid var(--tint-ink)}
.mistakes-kind .row{color:var(--tint-ink)}
.mistakes-kind .btn{margin-top:auto}
.result-hint{margin-top:10px}
.privacy-page{max-width:46rem;padding:2rem 0 3rem}
.privacy-page h1{line-height:1.15;margin:.5rem 0 1.25rem}
.privacy-page p{margin:1rem 0}
.privacy-page .btn{margin-top:1rem}
@media(max-width:600px){.mistakes-list{grid-template-columns:1fr}.mistakes-kind{gap:6px}}
@media(max-width:440px){
  .mistakes-shortcut{grid-template-columns:auto 1fr auto;gap:0 9px}
  .mistakes-shortcut .symbol{grid-row:1 / 3}
  .mistakes-shortcut .symbol:last-child{grid-column:3}
  .mistakes-shortcut small{grid-column:2}
}
.admin-panel>h2,.admin-section{margin-top:2rem}
.admin-panel h2{font-size:clamp(1.2rem,3vw,1.6rem)}
.admin-metrics{display:grid;gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,9.8rem),1fr));padding:0}
.admin-metrics>div{padding:.9rem 1rem;border:1px solid #d9e3dc;border-radius:.85rem}
.admin-metrics dt{color:#43554c;font-size:.86rem}
.admin-metrics dd{font-size:1.3rem;font-weight:700;margin:.35rem 0 0}
.admin-table-wrap{max-width:100%;overflow-x:auto;margin:1rem 0 1.4rem}
.admin-table{width:100%;border-collapse:collapse;text-align:left;font-size:.91rem}
.admin-table caption{text-align:center;font-weight:700;padding:.5rem 0}
.admin-table td,.admin-table th{padding:.6rem .45rem;border-bottom:1px solid #d9e3dc}
.admin-table th{color:#234b3a;background:#edf4ed}
.admin-verify{display:grid;gap:.65rem;max-width:32rem}
.admin-secret,.admin-section code{overflow-wrap:anywhere}
.admin-secret{background:#edf4ed;padding:.8rem;user-select:all}
.ceaa-pdf-page{display:block;max-width:100%;height:auto;margin:.8rem auto;background:white;border:1px solid #d9e3dc}
.ceaa-pdf-view .button-row{align-items:center}

/* Lector de las páginas protegidas de CEAA. */
.ceaa-reader { max-width: 100%; min-width: 0; margin-block: 1rem; }
.reader-controls, .reader-tools { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; margin-bottom: .6rem; }
.reader-controls .btn, .reader-tools .btn { padding: .45rem .8rem; min-height: 42px; }
.reader-controls { justify-content: space-between; }
.reader-page-label { font-weight: 700; }
.reader-zoom-label { font-size: .86rem; font-variant-numeric: tabular-nums; }
.reader-viewport { border: 1px solid #c5d5ce; border-radius: 8px; background: #edf2ee; overflow-x: auto; max-width: 100%; }
.reader-viewport .reader-sheet { display: block; width: 100%; height: auto; max-width: none; margin: 0; user-select: none; }
.reader-viewport[data-zoom="150"] .reader-sheet { width: 150%; }
.reader-viewport[data-zoom="200"] .reader-sheet { width: 200%; }
.reader-viewport[data-zoom="300"] .reader-sheet { width: 300%; }
.reader-status { min-height: 1.3em; margin-block: .5rem; }
.ceaa-reader:fullscreen { background: #fff; padding: .75rem; width: 100%; height: 100%; overflow: auto; }
@media print { .ceaa-reader { display: none !important; } }

/* La barra ocupa su propio espacio al final de la página y acompaña al lector ampliado. */
html:has(#tabbar:not([hidden])) { scroll-padding-bottom: calc(4.25rem + env(safe-area-inset-bottom)); }
.tabbar {
  padding-inline: max(8px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-right));
  background: #fff;
}
.tabbar .nav-item { min-height: 44px; line-height: 1.2; }
.nav-item:hover { background: #f2f6ef; color: var(--forest); }
.nav-membership { color: var(--forest); }
.nav-logout { color: #654643; }
.ceaa-reader:fullscreen { display:flex;flex-direction:column;align-items:stretch; }
.ceaa-reader:fullscreen > * { flex-shrink:0; }
.ceaa-reader:fullscreen .tabbar { margin: auto -.75rem -.75rem; }
@media(max-width:770px) {
  .tabbar { gap: 2px; }
  .tabbar .nav-item { flex-direction: column; gap: 3px; min-width: 0; padding: 4px 6px; font-size: .78rem; }
}
@media(max-width:520px) {
  html:has(#tabbar.with-study-links:not([hidden])) { scroll-padding-bottom: calc(7.5rem + env(safe-area-inset-bottom)); }
  .tabbar.with-study-links { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 0 3px; }
  .with-study-links .nav-item { grid-column: span 3; }
  .with-study-links .nav-membership,.with-study-links .nav-logout { grid-column: span 6; }
  .tabbar .nav-membership,.tabbar .nav-logout { flex-direction: row; gap: 7px; }
  .with-study-links .nav-membership,.with-study-links .nav-logout { border-top-color: var(--line); }
}
@media print { .tabbar { display:none !important; } }

/* Encabezados que la interfaz presenta como texto fuerte, precios o rótulos de tarjeta. */
.legal-brief > strong, .legal-document strong, .response-box > strong,
.history-row > div > strong, .kind-button .label b, .offer-price {
  display: block;
  text-align: center;
  text-align-last: auto;
}
.field > small, .legal-document small, .accept, .button-row label,
.privacy-page li, .offer-includes li, .options legend {
  text-align: justify;
  text-align-last: start;
  hyphens: auto;
}
/* El encabezado ocupa el ancho disponible también en filas con icono o acción. */
.section-top > div:only-child { flex: 1; min-width: 0; }
.profile-row > div:last-child, .progress-view > .row > div,
.history-row > div, .mistakes-kind .row h2 { flex: 1; min-width: 0; }
.member-entry > div, .reader-entry > div { flex: 1 1 15rem; min-width: 0; }
.continue-panel > :is(h3,p), .mistakes-kind > :is(.row,p) { align-self: stretch; }
.welcome .lede { margin-inline: auto; }
@media (max-width:770px) { .access-grid .welcome { width: 100%; margin-inline: auto; } }
