:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#19202b;background:#f8f9fb;font-synthesis:none;--ink:#19202b;--secondary:#6d7584;--line:#e5e8ee;--blue:#365cd5;--blue-pale:#edf2ff;--paper:#fff;--sidebar:#fff}*{box-sizing:border-box}body{margin:0;font-size:14px;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}input,textarea,select{background:#fff;border:1px solid #d9dfe7;border-radius:8px;padding:11px 12px;color:var(--ink);width:100%;outline:none;transition:border-color .16s}input:focus,textarea:focus,select:focus{border-color:#6a83dd;box-shadow:0 0 0 3px #365cd516}textarea{resize:vertical;line-height:1.55}label{font-size:12px;font-weight:650;color:#4b5564;display:block;margin:0 0 7px}h1,h2,h3,h4,p{margin-top:0}h1{font-size:30px;letter-spacing:-1.25px;line-height:1.17}h2{font-size:17px;letter-spacing:-.35px}h3{font-size:15px}p{line-height:1.55}.muted{color:var(--secondary)}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:750;color:#6b7892}.workspace{display:flex;min-height:100svh}.sidebar{width:262px;min-width:262px;background:var(--sidebar);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:100svh;padding:0 14px;position:sticky;top:0;height:100svh}.side-top{height:75px;display:flex;align-items:center;padding:0 10px;border-bottom:1px solid var(--line);margin-bottom:20px;justify-content:space-between}.logo{font-size:21px;letter-spacing:-1px;font-weight:800;text-decoration:none;color:#121923}.logo span{font-size:12px;font-weight:550;letter-spacing:0;padding-left:8px;color:#737b89}.side-label{padding:16px 10px 8px;color:#939ba9;font-size:10px;font-weight:750;letter-spacing:1.15px}.nav-link{width:100%;border:0;display:flex;align-items:center;gap:12px;background:transparent;padding:12px 13px;text-align:left;border-radius:8px;font-weight:600;color:#4f5868}.nav-link.selected{background:#eff3fc;color:#214cad}.nav-symbol{font-size:20px;font-weight:400}.nav-count{margin-left:auto;background:#fff;border-radius:5px;font-size:11px;padding:2px 6px;color:#7c8695}.module-list{overflow-y:auto;min-height:0;max-height:50vh;margin-top:3px}.module-nav{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;background:none;border-radius:8px;text-align:left;color:#545f70;font-size:12.5px}.module-nav.selected{color:#264aa5;background:#eef3ff;font-weight:700}.module-nav:hover,.nav-link:hover{background:#f4f6f9}.module-nav .index{font-size:10px;color:#929caa;min-width:19px}.module-nav .module-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.module-nav .publish-dot{margin-left:auto;width:6px;min-width:6px;height:6px;border-radius:50%;background:#c3cad4}.module-nav .publish-dot.live{background:#378969}.add-module{border:1px dashed #bdc7d7;background:#fff;border-radius:8px;margin:12px 0;padding:11px;color:#3858a4;text-align:center;font-weight:650}.add-module:hover{background:#f6f8fe}.side-footer{margin-top:auto;display:flex;align-items:center;gap:11px;padding:18px 10px 26px;border-top:1px solid var(--line);font-size:12px;font-weight:650}.side-footer small{display:block;color:#9aa1ac;font-size:10px;font-weight:450;margin-top:3px}.badge-dot{height:9px;width:9px;border:2px solid #2e8766;border-radius:50%}.main-area{min-width:0;flex:1}.topbar{height:75px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px}.top-left,.top-actions,.editor-actions,.modal-buttons{display:flex;align-items:center;gap:10px}.breadcrumb{font-size:13px;color:#8d96a5}.breadcrumb span{padding:0 9px;color:#c2c8d0}.breadcrumb b{color:#374252;font-weight:650}.save-state{color:#8b94a0;font-size:12px}.quiet,.danger,.icon-button,.primary{border:1px solid #d9dfe7;border-radius:8px;background:#fff;padding:10px 15px;font-weight:650;font-size:12.5px;color:#455064;white-space:nowrap}.quiet:hover{background:#f4f6f9}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.primary:hover{background:#234abf}.primary span{margin-left:10px}.danger{color:#aa4b50;border-color:#efdfe1}.danger:hover{background:#fff2f3}.icon-button{padding:7px 10px}.content{max-width:1550px;margin:auto;padding:36px 36px 90px}.empty-state{padding:13vh 6vw;max-width:750px}.empty-state h1{font-size:clamp(34px,4.4vw,64px);letter-spacing:-2px;margin:19px 0}.empty-state h1 span{color:#9aa5b6}.empty-state p{max-width:450px;color:#788291;font-size:15px;margin-bottom:25px}.editor-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}.editor-heading h1{margin:12px 0 7px}.editor-heading p{margin:0;font-size:13px}.status-pill{font-size:9px;letter-spacing:1px;border:1px solid #dfe4ef;background:#fff;border-radius:5px;padding:5px 7px;margin-left:11px;color:#788395}.status-pill.published{background:#eef8f3;color:#32805f;border-color:#ccead9}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,380px);gap:24px;align-items:start}.builder{min-width:0}.panel{border:1px solid var(--line);background:#fff;border-radius:12px;padding:22px;margin-bottom:27px}.panel-heading,.block-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-heading h2{margin:0 0 19px}.hint{font-size:11px;color:#9ba3ae;margin-top:-17px}.form-grid{display:grid;grid-template-columns:1fr 125px;gap:13px}.field{margin-bottom:16px}.field:last-child{margin-bottom:0}.block-section-heading{margin-bottom:14px}.block-section-heading h2{margin:0}.block-section-heading p{font-size:12px;margin:6px 0 0}.block-section-heading h2 span{font-size:12px;font-weight:400;margin-left:4px}.block-list{display:flex;flex-direction:column;gap:11px}.block-item{border:1px solid var(--line);background:#fff;border-radius:11px;overflow:hidden}.block-item.active{border-color:#cbd5f2;box-shadow:0 2px 12px #263e7310}.block-top{display:flex;align-items:center;gap:11px;padding:14px 15px;min-width:0}.block-type-icon{height:33px;width:33px;display:grid;place-items:center;border-radius:8px;background:#f0f3f8;color:#53637f;font-size:15px;font-weight:700}.block-summary{flex:1;min-width:0}.block-name{font-size:13px;font-weight:700}.block-caption{font-size:11px;color:#8993a2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.block-controls{display:flex;gap:2px;align-items:center}.block-controls button{background:none;border:0;color:#778394;padding:6px 7px;border-radius:5px;font-size:13px}.block-controls button:hover{background:#f0f3f9;color:#3458ae}.block-controls button.remove:hover{color:#bc4a55}.block-fields{border-top:1px solid #edf0f4;padding:18px 16px 10px;background:#fdfdfd}.block-fields .field{margin-bottom:14px}.block-fields textarea{min-height:76px}.block-list .block-item:not(.active) .block-fields{display:none}.array-section{border:1px solid #e7ebf0;border-radius:8px;padding:11px;margin-bottom:14px;background:#fafbfd}.array-item{border:1px solid #e2e8f0;border-radius:8px;padding:12px;background:#fff;margin:8px 0}.array-item-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#7a8597;font-weight:700;margin-bottom:10px}.array-item-head button{border:0;background:none;color:#a05454}.mini-add{border:1px dashed #b6c4da;color:#3f60ac;border-radius:6px;padding:9px 11px;background:#fff;width:100%;font-size:12px;font-weight:650}.add-block{display:block;width:100%;border:1px dashed #b9c6dc;color:#365ac0;background:#f5f8ff;padding:17px 12px;border-radius:10px;margin:14px 0;font-weight:700}.add-block:hover{background:#eaf1ff}.below-actions{display:flex;gap:10px;flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--line);margin-top:24px}.live-preview{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden;position:sticky;top:18px;max-height:calc(100svh - 42px);overflow-y:auto}.preview-head{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid var(--line);font-weight:750;color:#798496;font-size:10px;letter-spacing:1px}.preview-chip{font-weight:500;letter-spacing:0;color:#8490a1}.lesson-preview{padding:25px 22px 45px}.lesson-preview .preview-kicker{font-weight:700;letter-spacing:1.3px;font-size:10px;color:#5268ae;margin:0 0 12px}.lesson-preview h2{font-size:27px;line-height:1.18;margin-bottom:13px;letter-spacing:-.9px;color:#1d2531}.lesson-preview .description{font-size:13px;line-height:1.65;color:#7c8594;margin-bottom:25px}.lesson-preview h3{font-size:18px;letter-spacing:-.6px;margin:24px 0 12px}.lesson-preview h4{font-size:15px;margin:21px 0 9px}.lesson-preview p{font-size:13px;line-height:1.65;white-space:pre-wrap;color:#647082}.preview-video{border-radius:9px;overflow:hidden;background:#131a23;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;color:#fff}.preview-video video{width:100%;height:100%;object-fit:contain}.preview-video a{color:white}.preview-section{padding-top:3px;border-top:1px solid #e8ebf0;margin-top:25px}.preview-resource{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 13px;border:1px solid #e0e5ee;border-radius:8px;margin:7px 0;font-size:12px;color:#344257;text-decoration:none}.preview-resource:hover{background:#f7f9ff}.preview-resource span{overflow-wrap:anywhere}.preview-resource small{display:block;color:#7b8695;font-size:10px;margin-top:4px}.preview-list{padding-left:20px;color:#627084;font-size:12.5px;line-height:1.8}.preview-code,.preview-prompt{white-space:pre-wrap;overflow-wrap:anywhere;background:#f2f5fa;border-radius:7px;padding:15px;color:#3d506c;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.preview-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:7px;background:#eef1f6}.preview-compare{display:grid;grid-template-columns:1fr 1fr;gap:8px}.preview-compare img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:8px}.preview-callout{border-left:3px solid #607bd8;padding:11px 13px;background:#f3f6ff;border-radius:0 6px 6px 0}.preview-callout.warning{border-color:#dca549;background:#fff9eb}.preview-callout.success{border-color:#4d9c7d;background:#effaf5}.preview-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.preview-table td{border-bottom:1px solid #e9edf3;padding:9px 7px;vertical-align:top}.preview-table td:first-child{font-weight:700}.chapter-button{display:flex;gap:10px;border:0;background:none;padding:7px 0;color:#4c66bb;font-size:12px;text-align:left}.preview-placeholder{font-size:11px;color:#9ca6b4;font-style:italic}.preview-caption{font-size:11px!important;color:#95a0af!important;margin-top:8px}.preview-block{margin-bottom:18px}dialog{border:1px solid var(--line);border-radius:13px;padding:26px;box-shadow:0 20px 70px #17294c35;max-height:85svh;overflow:auto;max-width:min(650px,calc(100vw - 28px));width:650px}dialog::backdrop{background:#10182887}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal-head h2{margin:0}.modal-head .eyebrow{margin-bottom:7px}dialog>p{font-size:12px;margin:12px 0 20px}.block-catalog{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.catalog-item{border:1px solid #e1e6ee;background:#fff;border-radius:9px;padding:13px;display:flex;text-align:left;gap:10px;min-width:0}.catalog-item:hover{border-color:#8eaae5;background:#f7f9ff}.catalog-icon{background:#eef2f9;border-radius:6px;min-width:30px;height:30px;display:grid;place-items:center;color:#3d5b93}.catalog-item strong{font-size:12px;display:block}.catalog-item small{display:block;color:#8e98a6;line-height:1.4;margin-top:4px;font-size:11px}#new-form{margin-top:23px}.modal-buttons{justify-content:flex-end;margin-top:22px}.version-entry{padding:13px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.version-entry small{display:block;color:#8a95a3;margin-top:5px}.toast{position:fixed;bottom:22px;right:22px;background:#1d2939;color:white;padding:12px 17px;border-radius:9px;font-size:12px;box-shadow:0 8px 30px #0002;opacity:0;transform:translateY(8px);transition:.2s;z-index:200}.toast.show{opacity:1;transform:none}.login-screen{min-height:100svh;display:grid;place-items:center;background:#f7f8fa;padding:20px}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:14px;padding:38px;box-shadow:0 14px 60px #2335520a}.login-card .identity{font-size:22px;font-weight:800;letter-spacing:-.8px;margin-bottom:48px}.identity span{font-size:12px;color:#9299a5;font-weight:600;letter-spacing:0}.login-card h1{font-size:29px;margin:14px 0}.login-card p{font-size:13px;margin-bottom:25px}.login-card form input{margin-bottom:17px}.full{width:100%}.login-foot{border-top:1px solid var(--line);padding-top:23px;margin-top:44px;color:#a2a9b4;font-size:10px}.alert{background:#fff8ec;border:1px solid #e8ce9f;padding:15px;border-radius:7px;line-height:1.5;color:#7d5b2c}.error{color:#b83b42!important;margin-top:13px}.mobile-only{display:none}.backdrop{display:none}[hidden]{display:none!important}@media(max-width:1150px){.editor-layout{grid-template-columns:minmax(0,1fr) 310px}.content{padding:28px 24px 70px}}@media(max-width:860px){.sidebar{position:fixed;z-index:80;height:100dvh;transform:translateX(-100%);transition:transform .2s;box-shadow:10px 0 35px #0d1b3014}.sidebar.open{transform:none}.backdrop.open{display:block;position:fixed;inset:0;z-index:79;background:#18233355}.mobile-only{display:inline-flex}.topbar{height:64px;padding:0 20px}.content{padding:25px 20px 70px}.editor-layout{grid-template-columns:1fr}.live-preview{position:static;max-height:none}.editor-heading{flex-wrap:wrap}.editor-actions{width:100%}.editor-actions button{flex:1}.save-state{display:none}}@media(max-width:530px){.content{padding:22px 14px 70px}.topbar{padding:0 13px}.top-actions{gap:4px}.top-actions .quiet{padding:8px;font-size:11px}.breadcrumb{font-size:12px}.editor-heading h1{font-size:27px}.editor-actions{gap:6px}.editor-actions button{padding:10px 8px}.panel{padding:17px}.form-grid{grid-template-columns:1fr 94px}.block-top{gap:8px;padding:12px 10px}.block-controls button{padding:5px}.block-catalog{grid-template-columns:1fr}dialog{padding:20px}.lesson-preview{padding:24px}.below-actions button{flex:1}.login-card{padding:26px}}

/* Appearance panel — separate from Studio shell for safe experimentation */
.theme-presets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.theme-preset{border:1px solid var(--line);padding:9px 7px;background:#fff;border-radius:10px;text-align:left;display:flex;flex-direction:column;gap:5px;color:#263140;min-width:0}
.theme-preset:hover{border-color:#8eaae5}.theme-preset.selected{border-color:#4b6fce;box-shadow:0 0 0 2px #365cd51b}
.theme-preset strong{font-size:11px;line-height:1.2}.theme-preset small{font-size:10px;color:#8792a0}
.preset-swatch{border:1px solid;display:block;width:100%;height:57px;border-radius:7px;padding:9px;position:relative;overflow:hidden}
.preset-swatch i{display:block;width:68%;height:100%;border:1px solid;border-radius:4px}
.preset-swatch b{position:absolute;display:block;right:7px;bottom:10px;width:31%;height:11px;border-radius:3px}
.appearance-helper{font-size:12px;margin:15px 0 0}
.theme-mode-toggle{display:flex;gap:8px;margin:0 0 20px}
.theme-mode-toggle .quiet{flex:1}.theme-mode-toggle .active{color:#2c52b0;background:#eaf0ff;border-color:#aabfec}
.theme-colors{display:flex;flex-direction:column;gap:0}
.theme-color-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid #edf0f5}
.theme-color-row:last-child{border:0}
.color-description{min-width:0}.color-description strong{display:block;font-size:12.5px;color:#303d51}.color-description small{display:block;font-size:11px;color:#8691a1;line-height:1.45;margin-top:4px}
.color-controls{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.color-controls input[type=color]{width:41px;height:36px;cursor:pointer;padding:3px;background:#fff;border:1px solid #cdd5df;border-radius:7px}
.color-controls input[type=text]{width:92px;padding:9px 8px;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.contrast-info{color:#277859;font-size:11px;margin-top:17px;padding:12px;background:#eff9f4;border-radius:7px;line-height:1.55}
.contrast-info.has-warning{background:#fff7e8;color:#985f17}
.shape-control{display:grid;grid-template-columns:105px 1fr 52px;gap:16px;align-items:center}.shape-control label{margin:0}.shape-control input{padding:0;accent-color:var(--blue)}.shape-control output{font-size:12px;text-align:right;color:#5d6880}
.appearance-info{padding:16px 18px;border:1px solid #dce5f2;background:#f4f7fc;border-radius:10px;font-size:12px;color:#405276}
.appearance-info strong{display:block;margin-bottom:5px}.appearance-info p{font-size:12px;margin:0;line-height:1.55}.appearance-info code{background:#e7edf9;padding:1px 3px;border-radius:3px}
.appearance-preview-shell{position:sticky}
.lesson-preview{--lesson-bg:#fff;--lesson-surface:#f6f7f9;--lesson-text:#19202b;--lesson-muted:#667487;--lesson-border:#e1e5ec;--lesson-accent:#365cd5;--lesson-accent-text:#fff;--lesson-radius:10px;background:var(--lesson-bg);color:var(--lesson-text);transition:background-color .15s,color .15s}
.lesson-preview .preview-kicker{color:var(--lesson-accent)}
.lesson-preview h2,.lesson-preview h3,.lesson-preview h4{color:var(--lesson-text)}
.lesson-preview p,.lesson-preview .description,.lesson-preview .preview-caption,.lesson-preview .preview-list{color:var(--lesson-muted)!important}
.lesson-preview .preview-block{color:var(--lesson-text)}
.lesson-preview .preview-resource{background:var(--lesson-surface);color:var(--lesson-text);border-color:var(--lesson-border);border-radius:var(--lesson-radius)}
.lesson-preview .preview-resource small{color:var(--lesson-muted)}
.lesson-preview .preview-resource:hover{filter:brightness(.96)}
.lesson-preview .preview-prompt,.lesson-preview .preview-code{background:var(--lesson-surface);color:var(--lesson-text);border:1px solid var(--lesson-border);border-radius:var(--lesson-radius)}
.lesson-preview .preview-callout{background:var(--lesson-surface);border-color:var(--lesson-accent);border-radius:0 var(--lesson-radius) var(--lesson-radius) 0}
.lesson-preview .preview-callout strong{color:var(--lesson-text)}
.lesson-preview .preview-callout.warning{border-color:#d6a34c}.lesson-preview .preview-callout.success{border-color:#4d9c7d}
.lesson-preview .preview-table td{border-color:var(--lesson-border)}
.lesson-preview .chapter-button{color:var(--lesson-accent)}
.lesson-preview .preview-video,.lesson-preview .preview-grid img,.lesson-preview .preview-compare img{border-radius:var(--lesson-radius)}
.theme-demo-video{background:var(--lesson-surface);border:1px solid var(--lesson-border);color:var(--lesson-muted);display:flex;flex-direction:column;gap:8px}
.theme-play-icon{background:var(--lesson-accent);color:var(--lesson-accent-text);display:grid;place-items:center;width:47px;height:47px;border-radius:50%;font-size:15px;padding-left:3px}
.theme-demo-button{border:0;background:var(--lesson-accent);color:var(--lesson-accent-text);padding:13px 16px;border-radius:var(--lesson-radius);font-weight:650;font-size:12px;width:100%;text-align:center;cursor:default}
.appearance-demo{padding:26px 22px 40px;min-height:650px}
@media(max-width:1150px){.theme-presets{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.theme-presets{grid-template-columns:repeat(5,minmax(0,1fr))}.appearance-preview-shell{position:static}}
@media(max-width:530px){.theme-presets{grid-template-columns:repeat(3,minmax(0,1fr))}.theme-color-row{gap:10px}.color-description small{font-size:10px}.color-controls input[type=text]{width:84px}.shape-control{grid-template-columns:95px 1fr 42px;gap:12px}}

/* Divider block: uses the published appearance border token, never a hardcoded light-only color. */
.lesson-preview .preview-divider-block{margin:0;padding:0}
.lesson-preview .preview-divider{display:block;box-sizing:border-box;border:0;border-top:1px solid var(--lesson-border,#e1e5ec);width:100%;height:0;opacity:1;margin:0}
.lesson-preview .preview-divider.dashed{border-top-style:dashed}
.lesson-preview .preview-divider.compact{margin-block:10px}
.lesson-preview .preview-divider.normal{margin-block:24px}
.lesson-preview .preview-divider.generous{margin-block:40px}


/* Text section block: heading + readable rich text, inheriting appearance tokens. */
.richtext-field{min-width:0}
.richtext-toolbar{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px;margin-bottom:7px}
.richtext-tool{border:1px solid #d9dfe7;background:#fff;color:#344054;border-radius:6px;
  font:600 12px/1.2 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  min-height:36px;padding:8px 11px;cursor:pointer}
.richtext-tool:hover,.richtext-tool:focus-visible{background:#edf2fd;border-color:#9cb2ed}
.richtext-tool:focus-visible{outline:2px solid #365cd5;outline-offset:2px}
.richtext-input{width:100%;min-height:150px;line-height:1.55;resize:vertical}
.richtext-hint{display:block;font-size:11px;line-height:1.5;color:#7b8695;margin-top:6px}
.lesson-preview .preview-text-section{min-width:0}
.lesson-preview .preview-text-section>h2,.lesson-preview .preview-text-section>h3,.lesson-preview .preview-text-section>h4{
  margin:0 0 12px;color:var(--lesson-text)}
.lesson-preview .preview-richtext{color:var(--lesson-muted);overflow-wrap:anywhere}
.lesson-preview .preview-richtext p{white-space:normal;margin:0 0 12px;line-height:1.7}
.lesson-preview .preview-richtext p:last-child{margin-bottom:0}
.lesson-preview .preview-richtext ul,.lesson-preview .preview-richtext ol{
  padding-left:20px;margin:6px 0 14px;line-height:1.7;font-size:13px;color:var(--lesson-muted)}
.lesson-preview .preview-richtext li{padding-left:2px;margin:4px 0}
.lesson-preview .preview-richtext strong{font-weight:700;color:var(--lesson-text)}
.lesson-preview .preview-richtext em{font-style:italic}
.lesson-preview .preview-richtext a{color:var(--lesson-accent);text-decoration:underline;text-underline-offset:2px}
.lesson-preview .preview-richtext code{padding:2px 4px;border-radius:4px;background:var(--lesson-surface);
  color:var(--lesson-text);font:0.94em ui-monospace,SFMono-Regular,Menlo,monospace}

/* Reorder handle — six dot grip, not up/down buttons. Keep mobile scrolling
   enabled everywhere except the handle itself. */
.block-drag-handle{flex:0 0 30px;width:30px;min-height:44px;border:0;background:transparent;color:#8c98aa;
  display:flex;align-items:center;justify-content:center;border-radius:7px;cursor:grab;touch-action:none;
  -webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:0}
.block-drag-handle:hover{color:#365cd5;background:#f0f4fb}
.block-drag-handle:focus-visible{outline:2px solid #365cd5;outline-offset:1px;color:#365cd5}
.grip-dots{display:grid;grid-template-columns:repeat(2,4px);grid-template-rows:repeat(3,4px);gap:3px;pointer-events:none}
.grip-dots i{width:4px;height:4px;background:currentColor;border-radius:50%;display:block}
.block-drag-active{user-select:none;-webkit-user-select:none;cursor:grabbing}
.block-drag-active *{cursor:grabbing!important}
.block-drop-placeholder{box-sizing:border-box;flex:0 0 auto;border:2px dashed #93a9d3;border-radius:11px;
  background:#edf3ff;min-height:58px;pointer-events:none}
.block-drag-ghost{position:fixed;z-index:99999;box-sizing:border-box;pointer-events:none;border:1px solid #bed0ed;
  border-radius:11px;background:#fff;box-shadow:0 14px 32px rgba(16,35,67,.19);opacity:.98;
  transform:scale(1.01);user-select:none}
.block-drag-ghost .block-controls{display:none}
.sr-only{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;
  overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
@media(max-width:530px){.block-drag-handle{flex-basis:28px;width:28px;min-height:44px}
  .block-top{gap:7px}.block-controls button{min-width:26px;min-height:34px}}

/* Video Studio module selector */
a.nav-link{text-decoration:none}
.video-library-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:9px}
.video-editor-link{border:1px solid #d9dfe7;padding:9px 12px;border-radius:7px;text-decoration:none;font-size:12px;color:#3759b2;font-weight:700}
.video-library-actions .quiet{font-size:12px;padding:9px 12px}

/* Optional lesson blueprints keep the modular structure intentionally lightweight. */
.blueprint-trigger{display:block;width:100%;border:1px solid #dae2f0;background:#fff;color:#51668d;
  padding:12px;border-radius:9px;margin-top:9px;font-weight:650;font-size:12px;cursor:pointer}
.blueprint-trigger:hover{background:#f6f9ff;border-color:#b4c3e6}
.blueprint-options{display:flex;flex-direction:column;gap:9px;max-height:min(65dvh,600px);overflow:auto}
.blueprint-option{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;
  background:#fff;color:#253348;border:1px solid #e0e5ee;border-radius:9px;text-align:left;padding:15px;cursor:pointer}
.blueprint-option:hover,.blueprint-option:focus-visible{border-color:#5473c8;background:#f5f8ff}
.blueprint-option strong{font-size:14px}.blueprint-option small{font-size:11px;color:#7d8b9f;line-height:1.5}

/* Dual-path video lesson editor; compact source cards instead of repeated generic fields. */
.video-block-info{margin:0 0 14px!important;line-height:1.55}
.video-source-card{border:1px solid #dfe5ef;background:#fbfcfe;border-radius:10px;padding:16px;margin:0 0 12px}
.video-source-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px}
.video-source-header strong{font-size:14px;color:#293548}
.video-source-header span{font-size:10px;color:#94a0af;text-transform:uppercase;letter-spacing:.7px;font-weight:700}
.video-source-card .field{margin-bottom:13px}
.video-source-card .field label{font-size:11.5px}
.video-source-card .field input,.video-source-card .field select{max-width:100%}
.video-source-hint{font-size:11px!important;line-height:1.55!important;color:#8190a4!important;margin:4px 0 0!important}
.lesson-preview .lesson-video-switch{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px;padding:4px;border-radius:10px;background:var(--lesson-surface,#f1f3f6);
  margin-bottom:14px;border:1px solid var(--lesson-border,#e1e5ec)}
.lesson-preview .lesson-video-switch button{appearance:none;border:0;border-radius:7px;min-height:42px;
  padding:10px 14px;font-size:12.5px;font-weight:700;cursor:pointer;color:var(--lesson-muted,#6c7a91);
  background:transparent;transition:background .15s ease,color .15s ease}
.lesson-preview .lesson-video-switch button.active{background:var(--lesson-bg,#fff);color:var(--lesson-accent,#3e5dcb);
  box-shadow:0 1px 5px rgba(16,30,53,.10)}
.lesson-preview .lesson-video-switch button:focus-visible{outline:2px solid var(--lesson-accent,#3e5dcb);outline-offset:1px}
@media(max-width:540px){.video-source-card{padding:13px}.lesson-preview .lesson-video-switch button{min-height:44px}}

/* Preview the customer-facing module at a meaningful desktop width.
   The compact inline preview remains available while editing. */
.preview-open-actions{display:flex;align-items:center;gap:5px;letter-spacing:0}
.preview-open-actions button{background:transparent;border:1px solid #dee5ef;border-radius:6px;
  color:#536783;font-size:11px;line-height:1;padding:7px 9px;font-weight:700}
.preview-open-actions button:hover{color:#365cd5;border-color:#a8b8e8;background:#f5f7ff}
.device-preview-dialog{position:fixed;inset:0;margin:auto;padding:0;
  width:min(1260px,calc(100vw - 36px));max-width:none;
  height:min(94dvh,1000px);max-height:none;border:1px solid #dfe5ef;border-radius:13px;
  background:#fff;box-shadow:0 24px 70px #12213b35;overflow:hidden;color:var(--ink)}
.device-preview-dialog::backdrop{background:rgba(15,23,42,.61)}
.device-preview-toolbar{height:70px;padding:13px 23px;display:flex;align-items:center;
  justify-content:space-between;gap:15px;border-bottom:1px solid #e0e6ef;background:#fff}
.device-preview-toolbar>div:first-child{display:flex;flex-direction:column;gap:3px}
.device-preview-toolbar strong{font-size:14px;color:#25334a}
.device-preview-subtitle{font-size:10px;color:#96a2b2}
.device-preview-tools{display:flex;align-items:center;gap:13px}
.device-switch{display:flex;gap:3px;padding:3px;border-radius:9px;background:#f0f3f8}
.device-switch button{border:0;border-radius:7px;background:transparent;min-height:34px;
  padding:7px 14px;font-size:12px;font-weight:700;color:#738199}
.device-switch button[aria-pressed="true"]{background:#fff;color:#3959c1;
  box-shadow:0 1px 4px #10223e20}
.preview-close{background:#fff;border:1px solid #dae2ed;border-radius:8px;
  width:37px;height:37px;font-size:24px;color:#66758b}
.device-preview-body{height:calc(100% - 70px);overflow:auto;overscroll-behavior:contain;
  background:#f1f3f7;padding:24px 24px 55px}
.device-preview-content{margin:0 auto;max-width:1080px;width:100%;min-height:100%;
  background:#fff;border:1px solid #e1e6ed;border-radius:10px;
  padding:42px clamp(24px,5vw,72px) 70px;box-shadow:0 4px 20px #26395709}
.device-preview-dialog.is-mobile .device-preview-content{max-width:390px;padding:24px 18px 50px}
.device-preview-dialog.is-mobile .preview-grid,
.device-preview-dialog.is-mobile .preview-compare{grid-template-columns:minmax(0,1fr)}
.device-preview-dialog.is-mobile .preview-table{font-size:12px}
.device-preview-dialog.is-desktop .device-preview-content .preview-kicker{font-size:11px}
.device-preview-dialog.is-desktop .device-preview-content h2{font-size:34px}
.device-preview-dialog.is-desktop .device-preview-content .description{font-size:15px}
.device-preview-dialog.is-desktop .device-preview-content p{font-size:14px}
.device-preview-dialog.is-desktop .device-preview-content h3{font-size:21px}
@media(max-width:540px){
  .device-preview-dialog{width:100vw;height:100dvh;border-radius:0;border:0}
  .device-preview-toolbar{padding:11px 14px;height:66px}
  .device-preview-body{height:calc(100% - 66px);padding:12px 10px 40px}
  .device-switch button{padding:7px 10px}
  .device-preview-content{padding:22px 16px}
  .preview-open-actions button{padding:7px}
}
