:root{--paper:#f6f3ec;--surface:#fffdf8;--ink:#1d2327;--ink-soft:#55606a;--line:#d9d3c6;--accent:#1f4e5f;--accent-ink:#fff;--accent-soft:#e3eef1;--success:#1e6b3a;--success-soft:#e5f3e9;--danger:#a3261f;--danger-soft:#fbe9e7;--info:#6a4b00;--info-soft:#fbf1d6;--focus:#d97706;--radius:10px;--space:1rem;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:ui-serif, Georgia, "Times New Roman", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#161a1d;--surface:#1f2428;--ink:#ecebe6;--ink-soft:#a9b1b8;--line:#353c42;--accent:#7cc3d6;--accent-ink:#0d1b20;--accent-soft:#1d3339;--success:#7fd19b;--success-soft:#173323;--danger:#ff9b92;--danger-soft:#3a1c1a;--info:#f3cf72;--info-soft:#362c12}}*,:before,:after{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font:16px/1.55 var(--font);margin:0}h1,h2,h3{font-family:var(--font-display);margin:0 0 .6em;line-height:1.2}h1{font-size:clamp(1.6rem,4vw,2.2rem)}h2{font-size:1.3rem}h3{font-size:1.1rem}a{color:var(--accent)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:var(--space);top:var(--space);background:var(--surface);z-index:10;padding:.5rem 1rem}.app-header{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;padding:.75rem clamp(1rem,4vw,2.5rem);display:flex}.brand{font-family:var(--font-display);color:var(--ink);align-items:center;gap:.5rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent);border-radius:4px;width:1.2rem;height:1.2rem;display:inline-block}.main-nav{flex-wrap:wrap;flex:1;gap:.25rem 1rem;display:flex}.main-nav a{border-bottom:2px solid #0000;padding:.25rem 0;text-decoration:none}.main-nav a.active{border-bottom-color:var(--accent);font-weight:600}.account{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.account-email{color:var(--ink-soft);overflow-wrap:anywhere;font-size:.9rem}.app-content,.standalone{max-width:60rem;margin:0 auto;padding:clamp(1rem,4vw,2.5rem)}.public-shell{flex-direction:column;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.public-brand{font-family:var(--font-display);align-items:center;gap:.5rem;margin-bottom:1.5rem;font-weight:700;display:flex}.public-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:28rem;padding:clamp(1.25rem,5vw,2rem)}.form-footer{margin-top:1.25rem}.field{flex-direction:column;gap:.3rem;margin-bottom:1rem;display:flex}.field label{font-weight:600}.field input,.field textarea{font:inherit;color:inherit;background:var(--paper);border:1px solid var(--line);border-radius:6px;width:100%;padding:.55rem .7rem}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--danger);border-width:2px}.field-hint{color:var(--ink-soft);margin:0;font-size:.875rem}.field-error{color:var(--danger);margin:0;font-size:.9rem;font-weight:600}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:0 .75rem;margin-top:.75rem;display:flex}.inline-form .field{flex:16rem}.inline-form>.button{margin-bottom:1rem}.inline-form>.notice{flex-basis:100%}.button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;border-radius:6px;min-height:2.5rem;padding:.55rem 1.1rem;font-weight:600;text-decoration:none;display:inline-block}.button-secondary{color:var(--accent);background:0 0}.button-small{min-height:2rem;padding:.3rem .65rem;font-size:.875rem}.button:disabled{opacity:.5;cursor:not-allowed}.notice{border-left:4px solid;border-radius:6px;margin:0 0 1rem;padding:.7rem .9rem}.notice-label{font-weight:700}.notice-success{background:var(--success-soft);border-color:var(--success)}.notice-error{background:var(--danger-soft);border-color:var(--danger)}.notice-info{background:var(--info-soft);border-color:var(--info)}.loading{color:var(--ink-soft);align-items:center;gap:.6rem;padding:1rem;display:flex}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:1rem;height:1rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.empty-state{border:1px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--ink-soft);padding:1.5rem}.empty-title{color:var(--ink);margin:0 0 .25rem;font-weight:700}.muted{color:var(--ink-soft)}.lead{color:var(--ink-soft);font-size:1.1rem}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:0 0 .4rem;font-size:.8rem}.breadcrumb{margin:0 0 .75rem;font-size:.9rem}.inline-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.badge{border:1px solid;border-radius:999px;padding:.1rem .55rem;font-size:.8rem;font-weight:700;display:inline-block}.badge-draft{color:var(--info)}.badge-published,.badge-delivery-sent{color:var(--success)}.badge-delivery-failed{color:var(--danger)}.badge-delivery-pending{color:var(--ink-soft)}.card-list{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;padding:0;list-style:none;display:grid}.card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.25rem}.panel{margin-bottom:1.5rem}.card-title{margin-bottom:.4rem}.card-text{color:var(--ink-soft);margin:.5rem 0 0}.module-list{padding-left:1.25rem}.module{margin-bottom:1.25rem}.module-title{margin:0 0 .4rem}.lesson-list{padding-left:1.25rem}.lesson-list li{margin:.25rem 0}.module-list.editor,.lesson-list.editor{padding-left:0;list-style:none}.module-list.editor>.module{border:1px solid var(--line);border-radius:var(--radius);padding:.75rem 1rem}.lesson-list.editor{border-left:3px solid var(--accent-soft);margin:.5rem 0;padding-left:.75rem}.item-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1rem;display:flex}.reorder-buttons{gap:.4rem;display:inline-flex}.lesson-pager{flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:1.5rem;display:flex}.confirm-box{border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:.75rem}.confirm-box p{margin-top:0}.blockers{color:var(--info)}.error-state .button{margin-top:.25rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;background:var(--surface);width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.6rem .75rem}td:first-child{overflow-wrap:anywhere}.button-danger{background:var(--danger);border-color:var(--danger);color:var(--surface)}.video-badge{margin-inline-start:.5rem}.video-none{color:var(--ink-soft)}.video-uploading,.video-finalizing{color:var(--info)}.video-ready{color:var(--success)}.video-failed{color:var(--danger)}.video-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:.5rem 0 1rem;padding:.75rem 1rem}.video-panel .notice{margin:.5rem 0}.upload-progress progress{width:100%;height:.9rem;accent-color:var(--accent)}.file-picker{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.file-picker input[type=file]{max-width:100%}.lesson-video{aspect-ratio:16/9;background:#000;border-radius:.5rem;width:100%;max-height:70vh;margin:1rem 0;display:block}.progress-panel{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:0 0 1.5rem;display:flex}.progress-panel-title{flex-basis:100%;margin:0;font-size:1rem}.progress-panel .progress-line{margin:0}.progress-panel .notice,.progress-panel .error-state{flex-basis:100%}.badge-progress-new{color:var(--ink-soft)}.badge-progress-started{color:var(--info)}.badge-progress-done{color:var(--success)}.course-progress{margin:.5rem 0 0;font-weight:600}.lesson-progress{color:var(--ink-soft);margin-left:.5rem;font-size:.9rem}.lesson-progress:before{content:"— "}
