.lesson-shell{width:min(1040px,calc(100% - 48px));margin:0 auto;padding:48px 0 72px}
.lesson-shell.narrow{max-width:860px}
.lesson-breadcrumb{color:var(--muted);font-size:.9rem;display:block;margin-bottom:28px}
.lesson-header{max-width:780px;margin-bottom:32px}
.lesson-header h1{font-size:clamp(2.3rem,5vw,3.5rem);line-height:1.08;letter-spacing:-.04em;margin:10px 0 18px}
.lesson-header .lede{font-size:1.16rem;line-height:1.7;margin:0 0 24px}
.lesson-kicker{color:var(--accent-dark);font-size:.78rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}
.lesson-shell .lesson-kicker{color:#b92d2d}
.lesson-meta{display:flex;gap:12px 24px;flex-wrap:wrap;color:var(--muted);font-size:.9rem;margin:16px 0 24px}
.lesson-section{margin-top:48px;scroll-margin-top:100px}
.lesson-section h2{font-size:1.7rem;line-height:1.2;margin:0 0 18px;letter-spacing:-.025em}
.lesson-section h3{font-size:1.15rem;margin:24px 0 10px}
.lesson-section p,.lesson-section li{line-height:1.75}
.lesson-section p{max-width:76ch;margin:12px 0}
.lesson-section ol{padding-left:24px;margin:16px 0}
.lesson-section ol>li{padding-left:8px;margin:24px 0}
.lesson-section li p{margin:8px 0}
.lesson-section .button-row{margin:22px 0}
.lesson-player{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#eef0f0;aspect-ratio:3/2;position:relative}
.lesson-player img,.lesson-player iframe{width:100%;height:100%;display:block;object-fit:contain;border:0}
.lesson-player [hidden]{display:none}
.lesson-play-cover{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(transparent 55%,#edf0f0dd)}
.lesson-player-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:14px}
.lesson-mobile-controls{display:none}
.lesson-steps{margin:24px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}
.lesson-steps li{margin:0;border-bottom:1px solid var(--line)}
.lesson-steps a{display:flex;align-items:center;gap:20px;padding:20px 0;color:var(--ink);text-decoration:none;line-height:1.5}
.lesson-steps a:hover{color:var(--accent-dark)}
.lesson-step-number{font-size:1.5rem;color:var(--muted);font-weight:650;min-width:40px}
.lesson-steps strong{display:block;font-size:1.08rem}
.lesson-steps small{font-size:.91rem;color:var(--muted)}
.lesson-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:.95rem}
.lesson-table th,.lesson-table td{text-align:left;vertical-align:top;padding:12px 16px;border-bottom:1px solid var(--line);line-height:1.6}
.lesson-table th{font-weight:750;background:var(--panel)}
.lesson-table td:first-child{width:43%}
.lesson-checkpoint{padding:20px 24px;border:1px solid #afc8b9;border-left:4px solid #507c67;border-radius:8px;background:#f2f7f3;margin:28px 0}
.lesson-checkpoint p{margin:7px 0 0}
.lesson-callout{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:10px;margin:24px 0}
.lesson-callout p{margin:8px 0}
.lesson-figure{margin:28px 0}
.lesson-figure img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:10px}
.lesson-figure figcaption{color:var(--muted);font-size:.86rem;line-height:1.6;margin-top:10px}
.lesson-navigation{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding-top:28px;margin-top:48px}
.lesson-check{display:flex;align-items:center;gap:12px;line-height:1.6;padding:18px 0;cursor:pointer}
.lesson-check input{width:21px;height:21px;accent-color:#507c67;flex-shrink:0}
.lesson-status{font-size:.85rem;color:var(--muted);min-height:1.5em}
.lesson-badge{display:inline-block;color:#456e58;font-size:.85rem;font-weight:650}
.lesson-badge[hidden]{display:none}
.tutorial-library .recipe-card-media img{aspect-ratio:4/3;object-fit:contain}
.tutorial-collection{margin-bottom:36px}
.tutorial-collection-heading{margin:0 0 16px;font-size:1.35rem;line-height:1.3;letter-spacing:-.02em}
.tutorial-library .recipe-card-facts li{color:var(--muted)}
.lesson-flow{margin:20px 0;padding:20px 24px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:.95rem;line-height:1.8}
.lesson-flow strong{display:block}
.lab-settings{margin:28px 0 0;text-align:left;color:var(--ink,#202326)}
.lab-settings fieldset{border:1px solid var(--line,#d4d4d4);border-radius:10px;padding:20px 24px 24px;margin:0;min-width:0}
.lab-settings legend{font-size:1.12rem;font-weight:750;padding:0 8px}
.lab-settings-help{font-size:.94rem;line-height:1.65;margin:0 0 20px!important}
.lab-settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px}
.lab-settings[data-lab-settings="drop-lab"] .lab-settings-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.lab-settings-field{display:grid;gap:8px;font-size:.95rem;min-width:0}
.lab-settings-field>span{font-weight:650;line-height:1.5}
.lab-settings-field small{font-size:.8rem;font-weight:400;color:var(--muted,#566873);line-height:1.4}
.lab-settings-field input{box-sizing:border-box;width:100%;min-height:48px;border:1px solid #aeb7bd;border-radius:7px;padding:10px 12px;font:inherit;color:var(--ink,#202326);background:#fff}
.lab-settings-field input:focus-visible{outline:3px solid #245b7780;outline-offset:2px}
.lab-settings .button-row{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 12px}
.lab-settings-status{font-size:.85rem;line-height:1.6;margin:12px 0 0!important;color:var(--muted,#566873);min-height:1.6em}
.lab-settings-open{display:none;position:fixed;top:12px;right:12px;z-index:5;min-height:44px;padding:10px 16px;border:1px solid #b4bec4;border-radius:8px;background:#fffffff2;color:#283c4c;font:600 14px var(--font-sans);cursor:pointer}
.lab-standalone .lab-settings-open{display:block}
.lab-settings-dialog{box-sizing:border-box;width:min(720px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;padding:24px;border:1px solid #b4bec4;border-radius:14px;background:#f3f1ec;color:#202326;font-family:var(--font-sans)}
.lab-settings-dialog::backdrop{background:#18232c88}
.lab-settings-dialog .lab-settings{margin-top:22px}
.lab-settings-close{display:block;margin-left:auto;min-height:44px;padding:8px 16px;border:1px solid #b4bec4;border-radius:7px;background:#fff;color:#283c4c;font:600 14px var(--font-sans);cursor:pointer}
@media(max-width:650px){.lab-settings fieldset{padding:16px}.lab-settings-fields,.lab-settings[data-lab-settings="drop-lab"] .lab-settings-fields{grid-template-columns:1fr;gap:18px}.lab-settings .button-row .button{width:100%}.lab-settings-open{top:8px;right:8px;padding:8px 12px;font-size:12px}.lab-settings-dialog{padding:16px}}
@media(max-width:650px){.lesson-shell{width:calc(100% - 32px);padding-top:32px}.lesson-header h1{font-size:2.2rem}.lesson-section{margin-top:36px}.lesson-table th,.lesson-table td{padding:10px 8px;font-size:.9rem}.lesson-mobile-controls{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.lesson-mobile-controls button{min-height:48px;flex:1 1 150px}.lesson-breadcrumb{margin-bottom:22px}.lesson-player-actions a{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){.tutorial-library .recipe-card,.tutorial-library .recipe-card img{transition:none}}

.lab-readings { margin: 1.5rem 0; font-size: 1rem; }
.lab-readings h3 { margin: 0 0 .5rem; font-size: 1.15rem; }
.lab-readings table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: 1rem; }
.lab-readings th, .lab-readings td { padding: .65rem .4rem; border-bottom: 1px solid var(--border, #d9d7d1); text-align: right; }
.lab-readings th:first-child { text-align: left; }
.lab-readings th small { display: block; font-size: .85rem; font-weight: 400; }
.lab-reading-caption, .lab-reading-result { font-size: 1rem; line-height: 1.5; }
