@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#0b1019;--panel:#121a27;--line:#293240;--ink:#f4f6f8;--muted:#a7b3c4;--mint:#bcf8d1;--violet:#b9a4ff;--dark:#101b15;--font:'DM Sans',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--mint);outline-offset:5px}a:hover{color:var(--mint)}.wrap{max-width:1320px;margin:auto;padding:0 56px}.skip{position:absolute;top:-100px;background:var(--mint);color:var(--dark);padding:10px;z-index:100}.skip:focus{top:10px}.header{height:96px;position:sticky;top:0;z-index:30;background:rgba(11,16,25,.93);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.header .wrap{display:flex;align-items:center;height:100%;justify-content:space-between;gap:28px}.brand{font-family:'Space Grotesk',sans-serif;font-size:27px;font-weight:700;letter-spacing:3px;display:flex;align-items:center;gap:11px}.brand-mark{width:30px;height:30px;display:inline-grid;place-items:center;border:1px solid var(--mint);border-radius:50%;color:var(--mint);font-size:24px;letter-spacing:0;font-weight:400}.nav{display:flex;gap:32px;align-items:center}.nav a{font-size:14px;color:var(--muted)}.nav a[aria-current=page]{color:var(--ink)}.nav a:hover{color:var(--mint)}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--mint);border:1px solid var(--mint);color:var(--dark)!important;border-radius:6px;padding:14px 23px;font-weight:600;font-size:14px;transition:background .2s,transform .2s;min-height:48px}.btn:hover{background:#d8ffe5;transform:translateY(-2px)}.btn.ghost{background:transparent;color:var(--ink)!important;border-color:#44505d}.btn.ghost:hover{border-color:var(--mint)}.btn.small{padding:9px 16px;min-height:42px}.menu-button{display:none;background:none;border:1px solid var(--line);color:var(--ink);padding:8px 12px;border-radius:4px}.eyebrow{font-family:'Space Grotesk',sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:2.5px;color:var(--mint);font-weight:500;display:block;margin:0 0 24px}.eyebrow .line{display:inline-block;vertical-align:middle;width:24px;height:1px;background:var(--mint);margin-right:12px}h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;line-height:1.12;font-weight:500;margin:0}h1{font-size:clamp(44px,5.7vw,80px);letter-spacing:-3.5px}h2{font-size:clamp(32px,3.5vw,48px);letter-spacing:-1.8px}h3{font-size:23px;letter-spacing:-.6px}p{margin:18px 0;color:var(--muted)}.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:1.07fr 1fr;align-items:center;min-height:640px;gap:16px;padding-top:60px;padding-bottom:58px}.hero h1 em{font-style:normal;color:var(--mint)}.hero .intro{max-width:440px;font-size:17px;margin:28px 0 30px}.actions{display:flex;flex-wrap:wrap;gap:12px}.hero-foot{display:flex;gap:18px;align-items:center;margin-top:48px;font-size:13px;color:var(--muted)}.hero-foot span+span{border-left:1px solid var(--line);padding-left:18px}.hero-science{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-height:440px}.science-top{display:flex;justify-content:space-between;font:12px 'Space Grotesk',sans-serif;color:#90a4b5;letter-spacing:1px}.canvas-container{height:365px;position:relative}.surface-canvas{width:100%;height:100%;display:block}.formula-tag{position:absolute;top:18px;right:14px;padding:8px 13px;border:1px solid #354050;border-radius:5px;background:#121a27bd;font-size:13px;color:#b9c9d4}.science-control{display:flex;align-items:center;gap:18px;font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding:18px 0 6px}.science-control input{width:100%;accent-color:var(--mint);min-width:50px}.science-control output{color:var(--mint);min-width:30px}.science-caption{font-size:12px;color:#8c9bab;margin:10px 0}.ticker{display:flex;justify-content:space-between;gap:20px;padding-top:22px;padding-bottom:22px;text-transform:uppercase;letter-spacing:1.5px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}.ticker b{color:var(--violet);font-size:17px;font-weight:400}.section{padding-top:96px;padding-bottom:96px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:40px}.section-head p{max-width:400px;font-size:16px;margin:0}.text-link{color:var(--mint);font-size:14px;border-bottom:1px solid #587562;padding-bottom:4px;white-space:nowrap}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.level-card{padding:27px;min-height:240px;border:1px solid var(--line);border-radius:8px;transition:border-color .2s,background .2s;display:flex;flex-direction:column;align-items:start}.level-card:hover{background:var(--panel);border-color:var(--mint)}.level-card .number{font-size:12px;color:var(--muted);margin-bottom:33px}.level-card p{font-size:14px;margin:14px 0 20px}.level-card .label{font-size:13px;color:var(--mint);margin-top:auto}.accent-section{background:#111925;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.feature-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px}.feature{border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#0d141e;display:flex;flex-direction:column}.feature-visual{height:230px;background:#141e2c;display:grid;place-items:center;position:relative;overflow:hidden}.feature-content{padding:28px 32px}.feature-content p{font-size:15px}.tag{display:inline-block;font-size:12px;color:var(--muted);border:1px solid #394455;border-radius:4px;padding:4px 9px;margin-right:6px;margin-bottom:12px}.feature .tag{color:var(--mint)}.geometry-demo{width:100%;height:100%}.feature-side{padding:36px;background:var(--mint);color:var(--dark);border-radius:10px;display:flex;flex-direction:column;justify-content:space-between}.feature-side .eyebrow{color:#305d43}.feature-side h3{font-size:36px;line-height:1.15}.feature-side p{color:#3a5345}.feature-side .btn{background:#12231a;color:var(--mint)!important;border-color:#12231a;align-self:start}.feature-side .math{font:48px 'Space Grotesk';margin:24px 0 32px;letter-spacing:-2px}.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.resource{background:#111925;border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;transition:transform .2s,border-color .2s}.resource:hover{transform:translateY(-4px);border-color:#62756a}.resource-symbol{height:120px;padding:22px 26px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(120deg,#182637,#151e2d);font-family:'Space Grotesk';color:var(--mint)}.resource-symbol b{font-size:46px;font-weight:400}.resource-symbol small{font:12px var(--font);color:var(--muted);text-transform:uppercase;letter-spacing:1.2px}.resource-body{padding:25px;flex:1;display:flex;flex-direction:column}.resource-body h3{font-size:21px;line-height:1.25}.resource-body p{font-size:14px;margin:12px 0 22px}.resource-bottom{font-size:12px;color:var(--muted);margin-top:auto;display:flex;justify-content:space-between;gap:10px}.resource-bottom span:last-child{color:var(--mint)}.business{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.business h2{font-size:52px}.business p{font-size:17px}.steps{border-top:1px solid var(--line)}.step{display:grid;grid-template-columns:40px 1fr;gap:18px;padding:24px 0;border-bottom:1px solid var(--line)}.step b{color:var(--mint);font-size:13px}.step h3{font-size:19px}.step p{font-size:14px;margin:10px 0 0}.closing{padding:64px;text-align:center;border:1px solid #455342;border-radius:10px;background:radial-gradient(ellipse at top,#1c302a,#111925 70%)}.closing p{max-width:540px;margin:22px auto 30px}.footer{border-top:1px solid var(--line);padding-top:50px;padding-bottom:30px}.footer-top{display:flex;justify-content:space-between;gap:40px}.footer p{font-size:14px;max-width:310px}.footer-links{display:flex;gap:65px}.footer-links div{display:flex;flex-direction:column;gap:10px;font-size:14px;color:var(--muted)}.footer-links strong{color:var(--ink);font-weight:500;margin-bottom:8px}.footer-bottom{border-top:1px solid var(--line);margin-top:45px;padding-top:22px;display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.page-intro{padding-top:65px;padding-bottom:44px}.page-intro h1{font-size:56px;letter-spacing:-2px;max-width:800px}.page-intro p{max-width:650px;font-size:18px}.catalog-controls{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;margin-bottom:18px}.field{display:flex;flex-direction:column;gap:8px}.field label{font-size:14px;color:var(--muted)}input[type=search],select,input[type=number],input[type=text]{width:100%;color:var(--ink);background:var(--panel);border:1px solid #3c4959;border-radius:5px;padding:13px 14px;min-height:48px}select{color-scheme:dark}.results-label{font-size:14px;color:var(--muted);margin:20px 0}.empty{grid-column:1/-1;padding:50px;border:1px dashed #4b5664;text-align:center}.breadcrumb{font-size:13px;color:var(--muted);margin:30px 0}.breadcrumb a{color:var(--mint)}.article-layout{display:grid;grid-template-columns:220px minmax(0,800px);gap:60px;margin-top:45px;margin-bottom:90px;justify-content:center}.article-side{position:sticky;top:128px;align-self:start}.article-side p{font-size:12px;text-transform:uppercase;letter-spacing:1.5px}.article-side a{display:block;padding:10px 0;font-size:14px;color:var(--muted)}.article-side .btn{margin-top:25px;color:var(--ink);width:100%}.article{background:#f6f7f5;color:#142028;border-radius:10px;padding:48px}.article p,.article li{color:#42505b;line-height:1.85}.article h2{font-size:28px;letter-spacing:-.8px;margin:42px 0 18px;scroll-margin-top:125px}.article h2:first-child{margin-top:0}.article .formula{background:#e6ece8;border-left:3px solid #427258;padding:22px;text-align:center;font:25px 'Space Grotesk';margin:25px 0;color:#193726;border-radius:5px}.article .example{background:#e9e7f1;border-radius:6px;padding:22px;margin:25px 0}.article .example p{margin:10px 0 0}.article a{color:#285e3c;text-decoration:underline}.quiz{border-top:1px solid #d6ded6;margin-top:32px;padding-top:20px}.quiz-options{display:grid;gap:10px}.quiz-options button{padding:14px 18px;background:white;border:1px solid #bdc9c0;color:#24392a;text-align:left;border-radius:5px}.quiz-options button:hover{border-color:#325841;background:#eef5ee}.quiz-options button.correct{background:#d7efdf;border-color:#308446}.quiz-options button.wrong{background:#f7e0dd;border-color:#af6359}.quiz-feedback{min-height:54px;font-size:15px;color:#264d31!important}.lab-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;margin-bottom:35px}.lab-stage{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:26px;min-width:0}.lab-stage canvas{display:block;width:100%;height:420px;touch-action:none}.lab-controls{border:1px solid var(--line);border-radius:9px;padding:26px}.lab-controls h3{font-size:20px;margin-bottom:25px}.coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 24px}.coordinate-grid label{font-size:13px;color:var(--muted)}.calculation{padding:20px 0;border-top:1px solid var(--line)}.calculation span{font-size:13px;color:var(--muted)}.calculation strong{display:block;font:29px 'Space Grotesk';color:var(--mint);margin-top:8px}.lab-note{max-width:760px}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.course-card{border:1px solid var(--line);padding:29px;border-radius:7px}.course-card p{font-size:15px}.course-card h3{font-size:22px}.contact-box{margin-top:45px;border:1px solid #5f776a;padding:32px;border-radius:8px;background:#182820}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:25px 0}.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:40px 0}.timeline strong{color:var(--mint);font:42px 'Space Grotesk'}.timeline p{font-size:15px}.route-list{display:grid;gap:18px;max-width:900px}.route-item{display:grid;grid-template-columns:70px 1fr auto;align-items:center;border:1px solid var(--line);border-radius:8px;padding:28px;gap:20px;background:var(--panel)}.route-item .num{font:32px 'Space Grotesk';color:var(--mint)}.route-item p{margin:10px 0 0;font-size:15px}.route-item h3{font-size:22px}.body-copy{max-width:760px}.body-copy p{font-size:18px}.article [role=status]{color:#284d35}body.print-view{background:white;color:black}.logo-original{width:50px;height:50px;border-radius:50%;object-fit:cover}.brand-detail{display:flex;gap:15px;align-items:center}.wave-controls{display:flex;gap:20px;flex-wrap:wrap}.wave-controls label{display:flex;align-items:center;gap:12px;font-size:14px}.wave-controls input{accent-color:var(--mint)}
@media(min-width:1500px){.hero-grid{min-height:710px}.canvas-container{height:420px}}@media(max-width:1000px){.wrap{padding-left:30px;padding-right:30px}.nav{gap:19px}.hero-grid{grid-template-columns:1.1fr 1fr}h1{font-size:58px}.business{gap:35px}.level-grid{grid-template-columns:repeat(2,1fr)}.resource-grid,.course-grid{grid-template-columns:repeat(2,1fr)}.article-layout{grid-template-columns:170px minmax(0,1fr);gap:25px}.article{padding:30px}.lab-layout{grid-template-columns:1fr 280px}.feature-side{padding:28px}.feature-side h3{font-size:30px}}
@media(max-width:740px){.wrap{padding-left:22px;padding-right:22px}.header{height:76px}.brand{font-size:23px}.menu-button{display:block}.nav{display:none;position:absolute;top:76px;left:0;right:0;background:#101925;padding:25px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}.nav.open{display:flex}.nav a{font-size:16px}.hero-grid{display:block;padding-top:47px;padding-bottom:28px;min-height:0}h1{font-size:52px;letter-spacing:-2.5px}.hero .intro{font-size:16px;max-width:100%}.hero-foot{margin-top:30px;font-size:12px}.hero-science{margin-top:38px;min-height:330px}.canvas-container{height:270px}.hero h1{max-width:580px}.ticker{flex-wrap:wrap;justify-content:center;font-size:10px;gap:12px 25px}.section{padding-top:62px;padding-bottom:62px}.section-head{display:block}.section-head p{margin-top:20px}.section-head .text-link{display:inline-block;margin-top:22px}.feature-grid,.business,.lab-layout{grid-template-columns:1fr}.level-grid{gap:12px}.level-card{padding:20px;min-height:240px}.level-card h3{font-size:21px}.feature-side .math{font-size:40px}.resource-grid,.course-grid{grid-template-columns:1fr}.business h2{font-size:40px}.closing{padding:35px 22px}.footer-top{flex-direction:column}.footer-links{gap:45px;flex-wrap:wrap}.footer-bottom{flex-direction:column;gap:10px}.page-intro{padding-top:42px}.page-intro h1{font-size:43px}.page-intro p{font-size:16px}.catalog-controls{grid-template-columns:1fr 1fr}.catalog-controls .field:first-child{grid-column:1/-1}.article-layout{display:block;margin-top:15px}.article-side{position:static;margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:20px}.article-side nav{display:flex;flex-wrap:wrap;gap:5px 18px}.article-side a{font-size:13px}.article-side .btn{width:auto;margin-top:10px}.article{padding:26px 21px}.article .formula{font-size:21px;overflow-wrap:anywhere}.article h2{font-size:26px}.route-item{grid-template-columns:35px 1fr;padding:22px;gap:15px}.route-item .btn{grid-column:2}.contact-form,.timeline{grid-template-columns:1fr}.timeline{gap:16px}.lab-stage{padding:12px}.lab-stage canvas{height:330px}.wave-controls{gap:15px}.contact-box{padding:24px}.hero .actions .btn{padding:13px 19px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.header,.footer,.article-side,.breadcrumb,.quiz,.actions,.skip{display:none!important}body{background:white!important;color:black}.wrap{padding:0;max-width:none}.page-intro{padding:20px 0}.page-intro h1{font-size:30px;color:black}.page-intro p,.eyebrow{color:#333}.article-layout{display:block;margin:0}.article{padding:0;background:white}.article h2{break-after:avoid}.example,.formula{break-inside:avoid}}
/* Biblioteca y rutas — versión 2 */
.catalog-controls{grid-template-columns:1.7fr 1fr 1fr 1fr}.route-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.route-tile{display:flex;flex-direction:column;background:linear-gradient(135deg,#172534,#111925);border:1px solid var(--line);border-radius:9px;padding:32px;transition:border-color .2s,transform .2s}.route-tile:hover{border-color:var(--mint);transform:translateY(-3px)}.route-tile-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;color:var(--muted);font-size:13px}.route-tile-top b{font-family:'Space Grotesk';font-size:42px;font-weight:400;color:var(--mint)}.route-tile h3{font-size:29px;line-height:1.2}.route-tile p{font-size:16px;max-width:420px}.route-tile-bottom{margin-top:auto;padding-top:22px;display:flex;justify-content:space-between;gap:16px;font-size:13px;color:var(--muted);border-top:1px solid var(--line)}.route-tile-bottom span:last-child{color:var(--mint)}.worksheet-content{max-width:900px;margin:0 auto 60px}.exercises{padding-left:24px}.exercises li{padding-left:8px;margin:30px 0}.answer-space{height:90px;background:repeating-linear-gradient(transparent,transparent 28px,#d2dcd4 29px)}.answer-key{padding:22px;background:#e6ece8;border:1px solid #b5c8bb;border-radius:5px;margin-top:40px}.answer-key summary{cursor:pointer;font-weight:600;color:#234930}.answer-key summary:focus-visible{outline:3px solid #386749;outline-offset:6px}.lesson-navigation{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-bottom:75px}.lesson-navigation .eyebrow{margin-bottom:15px}.resource-symbol small{max-width:50%;text-align:right}.resource-body .tag{align-self:flex-start}
@media(max-width:1050px){.catalog-controls{grid-template-columns:1fr 1fr}.catalog-controls .field:first-child{grid-column:auto}}
@media(max-width:740px){.route-grid{grid-template-columns:1fr}.route-tile{padding:25px}.route-tile h3{font-size:26px}.catalog-controls{grid-template-columns:1fr 1fr}.catalog-controls .field:first-child{grid-column:1/-1}.catalog-controls .field:last-child{grid-column:1/-1}.lesson-navigation{align-items:start;flex-direction:column}.worksheet-content .article{padding:23px 20px}.route-tile-bottom{flex-wrap:wrap}}
@media print{.lesson-navigation,.answer-key{display:none}.answer-space{height:80px}.exercises li{break-inside:avoid}.worksheet-content{margin:0}}

/* Buscador de la portada */
.hero-search {
    max-width: 490px;
    margin-top: 30px;
}

.hero-search label {
    display: block;
    margin-bottom: 10px;
    color: var(--ink);
    font-size: 15px;
}

.hero-search-row {
    display: flex;
    gap: 10px;
}

.hero-search-row input {
    flex: 1;
    min-width: 0;
}

.hero-search-row .btn {
    flex-shrink: 0;
}

.hero-search + .hero-foot {
    margin-top: 24px;
}

@media (max-width: 420px) {
    .hero-search-row {
        flex-direction: column;
    }

    .hero-search-row .btn {
        width: 100%;
    }
}

/* Comodidad de lectura */
.article {
    font-size: var(--reading-size, 16px);
}

.article .quiz-feedback {
    font-size: 1em;
}

.reading-tools {
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.reading-tools h3 {
    margin: 0 0 12px;
    font-family: var(--font);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0;
    color: var(--ink);
}

.reading-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.reading-actions button {
    min-width: 44px;
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid #44505d;
    border-radius: 5px;
    background: var(--panel);
    color: var(--ink);
    font-size: 14px;
}

.reading-actions button:hover:not(:disabled) {
    border-color: var(--mint);
    color: var(--mint);
}

.reading-actions button:disabled {
    opacity: 0.4;
    cursor: default;
}

.reading-value {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    color: var(--muted);
}

@media print {
    .article {
        font-size: 12pt;
    }
}

/* Avance de estudio */
.study-control {
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.study-control h3 {
    font-family: var(--font);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0;
}

.study-control .btn {
    margin-top: 12px;
    white-space: normal;
}

.study-control .btn[aria-pressed="true"] {
    border-color: var(--mint);
    color: var(--mint) !important;
}

.study-status {
    display: block;
    margin-top: 10px;
    color: var(--muted);
    font-size: 13px;
}

.study-route-progress {
    max-width: 900px;
    margin-bottom: 28px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--panel);
}

.study-progress-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.study-progress-heading h2 {
    font-size: 20px;
    letter-spacing: -0.4px;
}

.study-progress-heading span {
    color: var(--mint);
    font-size: 14px;
}

.study-route-progress progress {
    display: block;
    width: 100%;
    height: 10px;
    margin-top: 18px;
    accent-color: var(--mint);
}

.study-route-progress p {
    margin: 12px 0 0;
    font-size: 13px;
}

.route-item.is-studied {
    border-color: #587562;
}

.studied-badge {
    display: inline-block;
    margin-top: 10px;
    color: var(--mint);
    font-size: 13px;
}

@media print {
    .study-control,
    .study-route-progress,
    .studied-badge {
        display: none;
    }
}

/* Regresar a la última lección */
.resume-section {
    padding-top: 32px;
}

.resume-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 26px 30px;
    background: var(--panel);
    border: 1px solid #40584b;
    border-left: 3px solid var(--mint);
    border-radius: 8px;
}

.resume-description {
    min-width: 0;
}

.resume-label {
    display: block;
    margin-bottom: 10px;
    color: var(--mint);
    font-size: 13px;
}

.resume-card h2 {
    font-size: 24px;
    line-height: 1.3;
    letter-spacing: -0.5px;
    overflow-wrap: anywhere;
}

.resume-card p {
    margin: 10px 0 0;
    font-size: 14px;
}

.resume-card .btn {
    flex-shrink: 0;
}

@media (max-width: 740px) {
    .resume-card {
        flex-direction: column;
        align-items: flex-start;
        padding: 24px;
    }

    .resume-card h2 {
        font-size: 22px;
    }
}

/* Explorador de fracciones dentro de la lección */
.fraction-lab {
    margin: 32px 0;
    padding: 24px;
    border: 1px solid #b5c8bb;
    border-radius: 8px;
    background: #edf3ef;
}

.article .fraction-lab h2 {
    margin-top: 0;
}

.fraction-controls {
    display: grid;
    gap: 10px;
    margin: 24px 0;
}

.fraction-controls label {
    color: #243c2c;
}

.fraction-controls input {
    width: 100%;
    min-height: 32px;
    margin: 0 0 12px;
    accent-color: #356947;
}

.fraction-bar {
    display: flex;
    width: 100%;
    height: 76px;
    overflow: hidden;
    border: 2px solid #356947;
    border-radius: 5px;
}

.fraction-bar span {
    flex: 1;
    min-width: 0;
    background: white;
}

.fraction-bar span + span {
    border-left: 1px solid #356947;
}

.fraction-bar .is-selected {
    background: #70ba87;
}

.fraction-result {
    margin-top: 18px;
    color: #244d32;
    font-weight: 600;
}

.article .fraction-challenge {
    margin-bottom: 0;
    padding-top: 16px;
    border-top: 1px solid #c3d3c8;
}

@media print {
    .fraction-controls {
        display: none;
    }

    .fraction-lab {
        break-inside: avoid;
    }

    .fraction-bar {
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }
}

/* Comparación visual de fracciones */
.fraction-comparison {
    margin: 32px 0;
    padding: 24px;
    border: 1px solid #c5c0d5;
    border-radius: 8px;
    background: #efedf5;
}

.article .fraction-comparison h2 {
    margin-top: 0;
}

.comparison-counter {
    font-size: 14px;
}

.comparison-figures {
    display: grid;
    gap: 22px;
    margin: 24px 0;
}

.comparison-figures strong {
    display: block;
    margin-bottom: 8px;
    color: #253b2b;
    font-size: 22px;
}

.comparison-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.comparison-options button,
.comparison-next {
    min-height: 44px;
    padding: 10px 16px;
    border: 1px solid #7f8f83;
    border-radius: 5px;
    background: white;
    color: #24392a;
}

.comparison-options button:hover:not(:disabled) {
    border-color: #356947;
    background: #e3efe6;
}

.comparison-options .is-correct {
    background: #d7efdf;
    border-color: #308446;
}

.comparison-options .is-incorrect {
    background: #f7e0dd;
    border-color: #af6359;
}

.comparison-options button:disabled {
    cursor: default;
}

.comparison-options button:focus-visible,
.comparison-next:focus-visible {
    outline: 3px solid #356947;
    outline-offset: 3px;
}

.comparison-feedback {
    min-height: 3em;
}

.comparison-next {
    background: #244d32;
    color: white;
}

@media print {
    .fraction-comparison {
        display: none;
    }
}

/* Suma visual de fracciones */
.fraction-sum {
    margin: 32px 0;
    padding: 24px;
    background: #edf3ef;
    border: 1px solid #b5c8bb;
    border-radius: 8px;
}

.article .fraction-sum h2 {
    margin-top: 0;
}

.fraction-sum label {
    display: block;
    margin-bottom: 8px;
    color: #24392a;
}

.fraction-sum select {
    background: white;
    color: #24392a;
    color-scheme: light;
    border-color: #7f8f83;
}

.sum-explanation {
    margin: 24px 0;
    line-height: 1.8;
    color: #24392a;
}

.fraction-bar .sum-second {
    background: #b9a4e5;
}

.article .sum-legend {
    font-size: 0.9em;
}

.sum-step-button {
    min-height: 44px;
    margin-top: 12px;
    padding: 12px 18px;
    border: 1px solid #244d32;
    border-radius: 5px;
    background: #244d32;
    color: white;
}

.fraction-sum select:focus-visible,
.sum-step-button:focus-visible {
    outline: 3px solid #356947;
    outline-offset: 3px;
}

@media print {
    .fraction-sum {
        display: none;
    }
}

/* Explorador de funciones */
.function-lab {
    margin: 32px 0;
    padding: 24px;
    border: 1px solid #b5c8bb;
    border-radius: 8px;
    background: #edf3ef;
}

.article .function-lab h2 {
    margin-top: 0;
}

.function-lab label {
    display: block;
    margin-top: 18px;
    color: #24392a;
}

.function-lab input[type="range"] {
    display: block;
    width: 100%;
    min-height: 36px;
    accent-color: #356947;
}

.function-lab input:focus-visible {
    outline: 3px solid #356947;
    outline-offset: 3px;
}

.article .function-equation {
    color: #244d32;
    font-size: 1.3em;
    font-weight: 600;
}

.function-graph {
    display: block;
    width: 100%;
    height: auto;
}

.article .function-caption {
    font-size: 0.9em;
}

.function-table {
    width: 100%;
    border-collapse: collapse;
    color: #24392a;
}

.function-table caption {
    margin: 12px 0;
    text-align: left;
    font-weight: 600;
}

.function-table th,
.function-table td {
    padding: 10px 16px;
    border: 1px solid #b5c8bb;
    text-align: center;
}

.function-table thead {
    background: #dce9df;
}

@media print {
    .function-lab input,
    .function-lab label {
        display: none;
    }

    .function-lab {
        break-inside: avoid;
    }
}

/* Resultado del simulador de Ohm */
.ohm-results {
    display: grid;
    gap: 8px;
    margin: 24px 0;
    padding: 22px;
    border-radius: 6px;
    background: #244d32;
    color: white;
}

.ohm-results strong {
    font-family: "Space Grotesk", sans-serif;
    font-size: 32px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.ohm-results span {
    font-size: 15px;
}

.ohm-challenge {
    padding-top: 20px;
    border-top: 1px solid #b5c8bb;
}

.ohm-challenge h3 {
    font-size: 22px;
}

.ohm-challenge li {
    margin-bottom: 12px;
}

.ohm-challenge summary {
    padding: 12px 0;
    color: #244d32;
    font-weight: 600;
    cursor: pointer;
}

.ohm-challenge summary:focus-visible {
    outline: 3px solid #356947;
    outline-offset: 3px;
}

/* Ejecución paso a paso de un algoritmo */
.algorithm-inputs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.algorithm-inputs input {
    margin-top: 8px;
    background: white;
    color: #24392a;
    border-color: #7f8f83;
}

.algorithm-steps {
    padding-left: 28px;
    margin: 26px 0;
}

.algorithm-steps li {
    padding: 10px 12px;
    margin-bottom: 8px;
    border-left: 3px solid transparent;
}

.algorithm-steps .is-current-step {
    background: #d7e9dc;
    border-left-color: #356947;
    color: #183c25;
    font-weight: 600;
}

.article .algorithm-output {
    padding: 18px;
    border-radius: 6px;
    background: #e3e0ef;
    color: #302747;
}

.algorithm-lab button:disabled {
    opacity: 0.45;
    cursor: default;
}

@media (max-width: 480px) {
    .algorithm-inputs {
        grid-template-columns: 1fr;
    }
}

/* Preguntas frecuentes de clases */
.classes-faq {
    padding-bottom: 30px;
}

.classes-faq details {
    border-bottom: 1px solid var(--line);
}

.classes-faq details:first-of-type {
    border-top: 1px solid var(--line);
}

.classes-faq summary {
    padding: 24px 8px;
    color: var(--ink);
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    cursor: pointer;
}

.classes-faq summary::marker {
    color: var(--mint);
}

.classes-faq summary:hover {
    color: var(--mint);
}

.classes-faq summary:focus-visible {
    outline: 2px solid var(--mint);
    outline-offset: 4px;
}

.faq-answer {
    max-width: 780px;
    padding: 0 8px 22px;
}

.faq-answer p {
    margin: 0;
    font-size: 16px;
    line-height: 1.8;
}

@media (max-width: 740px) {
    .classes-faq summary {
        font-size: 16px;
        padding: 20px 6px;
    }
}

/* Notas personales dentro de las lecciones */
.lesson-notes {
  margin-top: 36px;
  padding: 24px;
  border: 1px solid #cbd8cf;
  border-radius: 18px;
  background: #edf3ef;
  color: #142028;
}

.lesson-notes h2 {
  margin-top: 0;
}

.lesson-notes label {
  display: block;
  margin: 20px 0 8px;
  font-weight: 700;
}

.lesson-notes textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  min-height: 150px;
  padding: 14px;
  border: 1px solid #829889;
  border-radius: 12px;
  background: #fff;
  color: #142028;
  font: inherit;
  line-height: 1.6;
  resize: vertical;
}

.lesson-notes textarea:focus-visible {
  outline: 3px solid #356947;
  outline-offset: 3px;
}

.lesson-notes .notes-help,
.lesson-notes .notes-status {
  font-size: 0.875em;
  line-height: 1.5;
  color: #42574a;
}

.lesson-notes .notes-status {
  min-height: 1.5em;
  margin-bottom: 0;
}

@media print {
  .lesson-notes {
    display: none;
  }
}

.notes-download {
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid #356947;
  border-radius: 10px;
  background: #356947;
  color: #fff;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.notes-download:hover:not(:disabled) {
  background: #284f36;
}

.notes-download:focus-visible {
  outline: 3px solid #356947;
  outline-offset: 3px;
}

.notes-download:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Materiales relacionados */
.related-learning {
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid #cbd8cf;
}

.related-learning-list {
  display: grid;
  gap: 12px;
  margin-top: 20px;
}

.article .related-learning-card {
  display: block;
  padding: 20px;
  border: 1px solid #cbd8cf;
  border-radius: 14px;
  background: #fff;
  color: #142028;
  text-decoration: none;
}

.article .related-learning-card:hover {
  border-color: #356947;
  background: #edf3ef;
}

.related-learning-card:focus-visible {
  outline: 3px solid #356947;
  outline-offset: 3px;
}

.article .related-learning-card h3 {
  margin: 0 0 8px;
  color: #142028;
}

.article .related-learning-card p {
  margin: 0 0 12px;
  color: #42574a;
}

.related-learning-card span {
  color: #285337;
  font-weight: 700;
}

@media print {
  .related-learning {
    display: none;
  }
}

/* Visible al recibir el foco del teclado */
.skip-to-content {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 10000;
  padding: 14px 20px;
  border-radius: 10px;
  background: #bcf8d1;
  color: #0b1019;
  font-weight: 700;
  text-decoration: none;
  transform: translateY(calc(-100% - 24px));
}

.skip-to-content:focus {
  transform: translateY(0);
  outline: 3px solid #0b1019;
  outline-offset: 3px;
  box-shadow: 0 0 0 6px #fff;
}

main[tabindex="-1"] {
  scroll-margin-top: 100px;
}

@media print {
  .skip-to-content {
    display: none;
  }
}